系列文章目录
存储器层次结构
学习内容
1、存储器系统的每层结构所运用的存储技术以及这些技术的底层原理
2、磁盘的构造原理、存储方式和操作原理,以及和固态硬盘之间的区别
3、固态硬盘的擦除和局部性
4、广泛存在于存储器层次结构中的缓存概念的深入理解
更新时间
2022年01月01日(未完待续)
学习产出
1、存储器系统简介
存储器系统(memory system)是由不同容量、成本和访问时间的存储设备组成的层次结构。存储器层次结构对应用程序的性能有者巨大的影响。
2、基本的存储技术
包括 SRAM 存储器、DRAM 存储器、ROM 存储器、旋转硬盘以及固态硬盘。
(1)随机访问存储器(Random-Access Memory, RAM)
分为两类:静态的动态的。静态RAM(SRAM)比动态 RAM(DRAM)更快,但也更贵。
SRAM 常用来作为高速缓存存储器,DRAM 常用来作为主存以及图形系统的帧缓冲区。
1)静态 RAM(SRAM)
SRAM 将每个位存储在一个双稳态存储器单元中。所谓双稳态,指的是该存储器单元可以无限期地保持在两个不同的电压配置之一。也就是说,只要有电,SRAM 存储器单元就会永远保持它的值,即使有干扰扰乱电压,当干扰消除时电路就会恢复到稳定值。
2)动态RAM(DRAM)
DRAM 将每个位存储为对一个电容的充电,存储器单元由一个电容和一个访问晶体管组成。与 SRAM 不同,DRAM 存储器单元对干扰非常敏感,且受到干扰后永远不会恢复。由于计算机运行的时钟周期相对于 DRAM 单元电荷保持的时间来说还是比较长的。因此,内存系统会周期性地通过读出后重写来刷新内存中的每一位。
传统DRAM
(2)内存模块
在实际的计算机体系结构中,DRAM 芯片被封装在内存模块(memory module)中并插到主板的扩展槽上。内存模块的基本思想是使用多个 DRAM 芯片,每个芯片中的每个超单元存储主存中的一个字节,并用相应超单元地址为 (i, j) 的 8 个超单元来表示主存中字节地址 A 处的 64 位字。
(3)磁盘构造与存储
1)构造
磁盘由盘片(platter)和可以旋转的主轴(spindle)构成。
磁盘容量主要由记录密度、磁道密度和面密度决定
2)存储
随机访问存储器必须在有电的时候才能存取数据,而磁盘则能够永久存储大量的数据。
3)操作
磁盘通过读写头来读写存储在磁性表面的位,而读写头连接到一个传动臂一端。通过沿着半径方向移动传动臂,驱动器可以将读写头定位在盘片的任何磁道上。在这个过程中读写头垂直排列,一致行动。因此,决定磁盘读写数据的时间的因素为:寻道时间、旋转时间和传送时间。
(4)逻辑磁盘块
磁盘控制器维护逻辑块号和实际磁盘扇区之间的映射关系
(5)固态硬盘(Solid State Disk, SSD)
是一种基于闪存的存储技术。一个SSD 由一个或多个闪存芯片以及闪存翻译层组成。闪存芯片取代了磁盘中机械驱动器。闪存翻译层则扮演与磁盘控制器相同的角色,主要将操作系统对逻辑块的请求翻译成对物理设备的访问。
1)擦除
在 SSD 中,一个闪存由若干个块组成,每个块又由若干页组成。数据在 SSD 中是以页为单位读写的。在写入数据之前,需要对一页所属的块进行擦
除操作。所谓擦除,指的是将该块中所有位置为 1。而写入的操作实际上就是将部分位置为 0。
当擦除次数过多后,块会因磨损而损坏。为了减少这种磨损带来的影响,闪存翻译层使用一种平均磨损算法,来将擦除平均到各个块上。
2)局部性
指的是在每次引用数据时倾向于引用最近引用过的数据项邻近的数据项,或最近引用过的数据项本身,分为时间局部性和空间局部性。
良好的时间局部性指的是被引用过一次的数据项会在不远的将来再次被多次引用;
良好的空间局部性指的是,如果某个数据在某个位置被引用了一次,那么在不远的将来将引用它附近的内存位置。
步长对局部性的影响
程序按一个接一个的顺序访问数组,我们称这种访问顺序为“步长为 1 的引用模式”,或称为“顺序引用模式”。在一些循环中,会对一个连续向量每隔 k 个元素进行访问,这时称其为“步长为 k 的引用模式”。
容易看出,步长为 1 的引用模式时空间局部性较好的引用模式。一般来说,步长越大,空间局部性就越差。
(6)存储器层次结构中的缓存