|「计算机组成原理」:现代存储器的结构( 五 )

  • 磁盘控制器接收到Read命令后 , 会通过上述方法直接将磁盘内容传送到主存中 。 这种设备可以自己执行读写总线事务而无需CPU干涉的过程 , 称为直接内存访问(Direct Memory Access , DMA) 。
  • 磁盘发送完数据后 , 会给CPU发送一个中断信号 , 暂停CPU正在做的工作 , 然后将控制返回到CPU被中断的地方 。 1.3 固态硬盘
  • 固态硬盘(Solid State Disk , SSD)是一种基于闪存的存储技术 , 插在I/O总线上标准硬盘插槽(通常为USB或SATA) , 处于磁盘和DRAM存储器的中间点 。 从CPU的角度来看 , SSD与磁盘完全相同 , 有相同的接口和包装 。 它由闪存和闪存翻译层(Flash Translation Layer)组成
    • 闪存翻译层是一个硬件/固件设备 , 用来将对逻辑块的请求翻译成对底层物理设备的访问 。
    • 闪存的基本属性决定了SSD随机读写的性能 , 通常由B个块的序列组成 , 每个块由P页组成 , 页作为数据的单位进行读写 。 通常页大小为512字节~4KB , 块中包含32~128页 , 则块的大小有16KB~512KB 。
    当对页进行写操作时 , 首先需要先对该页所处的整个块进行擦除 。
    |「计算机组成原理」:现代存储器的结构
    本文插图

    以上是Intel SSD 730的性能 , IOPS是每秒I/O操作数 , 吞吐量数量基于4KB块的读写 。 我们可以发现随机写操作较慢 , 这是因为:
    • 对页进行写操作时 , 通常需要花费较长时间来擦除块 , 比访问页所需的时间慢了一个数量级
    • 当块中包含其他数据时 , 会先将块中带有有效数据的页复制到被擦出过的块中 , 才能对那个块进行擦除 。 在闪存翻译层中实现了复杂的逻辑 , 试图最小化这些重复的操作 。
    块的擦除次数是有限的 , 当块磨损后 , 就不能再使用了 , 闪存翻译层中的平均磨损(Wear Leveling)逻辑会试图将擦除平均到所有块中 , 来最大化每个块的寿命 。
    SSD的优缺点:
    • 优点:由于闪存是半导体存储器 , 没有移动的部件 , 所以速度比磁盘更快且磨损小 , 能耗低
    • 缺点:SSD每字节比磁盘贵大约30倍 , 所以常用的存储容量比磁盘小100倍左右 。
    1.4 存储技术趋势
    具有以下重要思想:
    • 不同存储技术有不同的价格和性能折中:从性能而言 , SRAM>DRAM>SSD>磁盘 , 而从每字节造价而言 , SRAM>DRAM>SSD>磁盘 。
    • 不同存储技术的价格和性能属性以不同的速率变化着

    |「计算机组成原理」:现代存储器的结构
    本文插图

    从上一图中可看出 , DRAM主存和磁盘的性能滞后于CPU性能 , 访问时间比单个处理器的周期时间慢很多 , 而SRAM的性能虽然也滞后于CPU性能 , 但是还保持增长 , 所以现代计算机会使用基于SRAM的高速缓存 , 来弥补CPU和内存之间的差距 。
    2 局部性
    具有良好局部性(Locality)的程序 , 会倾向于引用最近引用过的数据项本身 , 或者引用最近引用过的数据项周围的数据项 。 局部性主要具有两种形式:
    • 时间局部性(Temporal Locality):引用过的数据项在不久会被多次引用 。
    • 空间局部性(Spatial Locality):引用过的数据项 , 在不久会引用附近的数据项 。
    从硬件到操作系统 , 再到应用程序 , 都利用了局部性 。