计算机体系中数据存储设备主要分为易失性设备(如内存DRAM)和非易失性设备(如磁盘,固态硬盘等),计算机体系架构中的存储层次结构(memory hierarchy),操作系统中的文件系统(file system)等会涉及如何管理存储设备,以便获得更好的性能。本文作为基础篇介绍常用的存储设备,为后续讲解进行铺垫。
1.物理存储设备
第一部分介绍市面上常见的存储设备,主要包括易失性和非易失性存储设备。易失性存储设备因为断电后数据丢失主要用于作为缓存或内存使用,而非易失性存储设备断电后仍能保证数据不丢失,主要用于持久化存储数据。
1.1.易失性存储设备
- DRAM
DRAM(Dynamic Random Access Memory)动态随机访问存储器主要用于作为主内存使用。存储器内部是一个按行和列寻址的长方形矩阵,为了在每个芯片中容纳更多的位,DRAM仅使用一个晶体管来存储一位数据,信息的读取过程会破坏该信息,所以需要进行恢复,为了防止在没有读写一个位时丢失信息,必须定期“刷新”该位,不过只需要对一行数据读取就能刷新该行,存储器系统中的DRAM必须在特定时间间隔(比如8ms)访问每一行,这也是称为动态RAM的原因。
现代DRAM通常是以“组(Bank)”为单位来组织行的,DDR4通常有16组,每一组有一系列行构成,当发送Act(Activate)指令时,会打开一个组将一行数据读取到缓冲区,当发送Pre(precharge)指令时,会关闭组和行,为下次访问做准备。当行已经在缓冲区时,可以采用2种方式进行传送,一种是根据DRAM的宽度采取连续列地址传送(通常是4,8,16位);另一种是指定块传送方式,并给出初始地址。每个命令和块传送过程都是通过时钟同步。 - SRAM
SRAM(Static Random Access Memory)静态随机访问存储器, 和DRAM的差异是DRAM数据需要持续刷新,而SRAM不需要刷新, 只要保持通电, 存储的数据就能稳定不变。SRAM采用6个晶体管保持1bit数据, 导致单位面积容量有限, 由于无需刷新数据, SRAM性能比DRAM好, 但价格高, 一般作为CPU的L1, L2, L3缓存使用。 - 寄存器
寄存器(Processor Register)是CPU内部一小块用于存储数据的单元, 类型包括指令寄存器, 数据寄存器, 地址寄存器, 程序计数器, 通用寄存器等, 大小包括8位, 32位及64位, 主要用于处理器进行计算或数据缓存。
1.2.非易失性存储设备
- 软盘
软盘(floppy disk,又称FDD)是在早期计算机中广泛使用的存储媒介,一般是在聚氯乙烯制成的盘面上覆盖磁性材料来记录数据。典型的3.5英寸软盘容量是1.44M,它包含80个磁道,每个磁道有18个扇区,两面都可以存储数据,一个扇区512字节,故容量为80×18×2×512=1440KB。软盘主要由控制电路板、马达、磁头定位器和磁头组成。主要特点是小巧可插拔,方便携带;但容量小,存取速度慢。随着u盘,光盘,移动硬盘的普及,软盘逐渐淡出人们视野。 - 光盘
光盘(compact disc)是以光信息为存储载体的设备,利用激光原理来读写数据。主要分为2类:只读型光盘,如CD-ROM,DVD-ROM等;可擦写光盘,如CD-RW,DVD-R,DVD+R,DVD+RW等;根据光盘结构差异(即烧录读取激光波长和物镜孔径),主要分为CD,DVD,蓝光等。容量为CD(700M)、DVD(4.7G)、蓝光(25G)。
结构包括基板、记录层、反射层、保护层、印刷层。其中记录层用来存储数据,对于只读型光盘,是在基板上涂抹有机染料;对于可擦写光盘,是涂抹碳性材料。通过激光烧录时改变碳性材料的极性或有机染料的反射率,从而形成对应计算机二进制码的0和1。 - 硬盘
硬盘(hard disk,又称HDD)是计算机主要存储设备,一般是在铝制或玻璃制碟片上覆盖磁性材料来记录数据,通常是会永久性固定在磁盘驱动器中。磁盘主要包括主轴马达、柱面、磁道、扇区、内存芯片等组成,磁盘转速(RPM)越快则内部数据传输速率越快,平均访问时间越短。服务器为了追求磁盘读写性能转速通常为10000rpm,甚至高达15000rpm。几个硬盘相关的核心概念:
平均访问时间(access):磁头从起始位置到达目标磁道,并从目标磁道找到访问数据所在扇区所需时间,平均在8~12ms。
平均寻道时间(seek):磁头移到到目标磁道时间,