0%

存储系统

存储系统

层次化存储结构

1
2
3
4
5
6
7
8
9
10
11
12
13
从上到下速度越来越慢,容量越来越大
^ CPU 寄存器,单位是bit,32位、64
|
| Cache 按内容存取,单位是M
|
| 内存 单位是G,4G、8G、16G
|
| 外存(辅存) 如硬盘、光盘、U盘等,512G、1T
|
|
v
虚拟存储器 = 内存+外存
三级存储体系 = Cache+内存+外存

局部性原理是层次化存储结构的支撑

  • 时间局部性 刚被访问的内容,立即又被访问(如循环体)
  • 空间局部性 刚被访问的内容,临近的内容很快会被访问(顺序执行)

存取方式

  • 按内容存取

    相联存储器(如Cache)

  • 按地址存取

    随机存取存储器(如内存)

    顺序存取存储器(如磁带)

    直接存取存储器(如磁盘)

工作方式

  • 随机存取存储器RAM,掉电会丢失,如内存RAM

    内存中用的是DRAM,

    DRAM集成率相对较高,功耗高,需要动态刷新

    SRAM集成率相对较低,功耗低,不需要动态刷新

  • 只读存储器,掉电不会丢失,如BIOS

    EEPROM在断电情况下仍能保持所存储的数据信息,数据删除以字节为单位

    闪存是电子可擦除只读存储器(EEPROM)的变种,数据删除是以固定区块为单位的,比一般的EEPROM更新速度更快,通常被用来保存设置信息

内存

内存指的是计算机的主存储器,简称主存,主存通过控制芯片等与CPU相连,主要负责存储指令和数据。

分为两类

  • 随机存储器 RAM
  • 只读存储器 ROM

高速缓存Cache

由于CPU和内存之间的速度相差较大,两者之间还有一个高速缓存。

高速缓存地址映像方式

地址映像是将主存和cache的存储空间划分为若干大小相同的页或者块。

如 主存容量为1G,划分为2048页,每页512K,Cache容量为8M,划分为16页,每页512K

  • 直接相联映像 硬件电路较简单,但冲突率最高。也就是在将主存划为2048/16 = 128个区域,每个区域为16页,主存的块与Cache块的对应关系是固定的

    直接相联

  • 全相联映像 电路难于设计和实现,只适用于小容量的cache,冲突率较低。允许主存的任一块可以放到Cache任意页的位置,冲突率低

    全相联

  • 组相联映像 直接相联和全相联的折中,在直接相联的区的基础上又加入了组,组内可以全相联,组之间直接映射,降低了冲突率

主存和cache之间的地址映射由硬件直接完成

高速缓存的替换策略

  • 随机算法
  • 先进先出算法FIFO(使用队列)
  • 最不经常使用算法LFU (需要额外空间记录使用频率)
  • 最近最少使用算法LRU(一般使用双向链表实现)

欢迎关注我的其它发布渠道