计算机硬件——存储系统
每天一个计算机知识点:存储
一、存储结构
计算机存储系统是按速度、容量与成本分层组织的多级体系,核心目标是通过“局部性原理”和缓存机制,在有限成本下逼近最快存储的性能与最大存储的容量。
存储器的层次结构是为了在成本、速度和容量之间取得平衡。典型结构从快到慢依次为:寄存器、高速缓存(Cache)、(内存)、辅存(外存)、脱机存储。
具体的数据流向如下:

各存储模块的大小和速度关系如下:

局部性原理:总的来说,在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址内,包括下面两个方面:
1、时间局部性:如果一个数据项正在被访问,那么在近期它很可能会被再次访问,即在相邻的时间里会访问同一个数据项。
2、空间局部性:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问。
二、寄存器
寄存器(Register)位于CPU内部,由SRAM构成,速度最快(亚纳秒级)、容量最小(数十~数百字节),直接参与指令执行,由编译器/硬件自动管理。
三、高速缓存(Cache)
高速缓存Cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍。分L1、L2、L3三级(多核共享L3),用SRAM实现,容量从KB到数十MB,访问延迟1~10周期。通过地址映射(直接、组相联、全相联)和替换算法缓存主存热点数据。
地址映射:在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换为Cache存储器地址,这种地址的转换称为地址映像,由硬件自动完成映射。

替换算法:是指在缓存或虚拟内存已满时,决定淘汰哪个已有数据块以腾出空间加载新数据的策略,其目标就是使Cache获得尽可能高的命中率。常用算法有如下几种。
1、随机替换:就是用随机数发生器产生一个要替换的块号,将该块替换出去。
2、先进先出:就是将最先进入Cache的信息块替换出去。
3、近期最少使用:这种方法是将近期最少使用的Cache中的信息块替换出去。
4、优化替换:这种方法必须先执行一次程序,统计Cache的替换情况。有了这样的先验信息,在第二次执行该程序时便可以用最有效的方式来替换。
四、主存
主存(Main Memory)即内存,主流为DRAM(需刷新,成本低、密度高),通过DIMM插槽连接,容量GB~TB级,访问延迟~100ns。包括易失性(RAM)与非易失性(如早期ROM/BIOs,现多被Flash取代);现代系统还通过虚拟内存(分页+Swap)将部分辅存(如SSD)逻辑扩展为内存。
五、辅存
辅存(Secondary Storage):非易失、大容量、慢速(ms级),包括HDD(磁盘旋转+磁头寻道)、SSD(NAND Flash,无机械部件,随机读写快)、光盘/磁带(归档)。SSD已成主流,接口从SATA演进至NVMe(PCIe通道,带宽↑10倍)。
磁盘结构如下:

磁盘有正反两个盘面,每个盘面有多个同心圆,每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就被存放在一个个扇区中。
磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转,旋转到指定的扇区,才能读取到对应的数据。因此,会产生寻道时间和等待时间。
公式为:存取时间=寻道时间+等待时间(平均定位时间+转动延迟)
注意:寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。
磁盘数据的读取时间分为寻道时间+旋转时间,即先找到对应的磁道,而后再旋转到对应的扇区才能读取数据,其中寻道时间耗时最长,需要重点调度,有如下调度算法:
1、先来先服务FCFS:根据进程请求访问磁盘的先后顺序进行调度。
2、最短寻道时间优先SSTF:请求访问的磁道与当前磁道最近的进程优先调度,使得每次的寻道时间最短。会产生“饥饿”现象,即远处进程可能永远无法访问。
3、扫描算法SCAN:又称“电梯算法”,磁头在磁盘上双向移动,其会选择离磁头当前所在磁道最近的请求访问的磁道,并且与磁头移动方向一致,磁头永远都是从里向外或者从外向里一直移动完才掉头,与电梯类似。
4、单向扫描调度CSCAN:与SCAN不同的是,其只做单向移动,即只能从里向外或者从外向里。
六、脱机存储
脱机存储,如磁带库、离线光盘,需人工加载,用于冷备份,速度最慢但单位成本最低。
七、总结
存储系统依赖层次化设计:上层是下层的缓存(如Cache是主存的缓存,主存是SSD的缓存),利用时间/空间局部性提升效率。
管理上,Cache由硬件自动调度,虚拟内存由OS+MMU协同实现地址翻译(逻辑→物理)。新型非易失内存(如PCM、MRAM、ReRAM)正探索填补Cache与主存间“内存墙”,而HBM(3D堆叠DRAM)用于AI/高性能计算以突破带宽瓶颈。
外存架构上,常见有DAS(直连)、NAS(文件级网络共享)、SAN(块级光纤/iSCSI网络),云存储则基于分布式+虚拟化。现代趋势是存储级内存(SCM,如Intel Optane)与软件定义存储(SDS)融合,但经典五级结构仍是理解基础。