CSAPP存储器层次结构

一、存储技术

作为一名程序员,需要理解存储器的层次结构,因为它对应用程序的性能有着巨大的影响。因为与下一层次的存储设备相比来说,一个编写良好的程序会更频繁的访问某一层次上的存储设备。这里就是计算机系统中的一个基本而持久的思想,如果你理解系统是如何将数据在存储器层次结构中上上下下移动的,你就可以编写自己的应用程序,使得它们的数据存储在数据层次较高的地方,CPU可以更快的访问到它们。这个思想围绕计算机程序的一个基本原理「局部性原理」。

二、存储类型

1、随机访问存储器:静态RAM、动态RAM、传统的DRAM、增强DRAM、非易失性存储器ROM

2、磁盘存储:磁盘大概由柱面、盘片、磁道、扇区

磁盘容量有多个技术因素决定:记录密度:磁道一英寸的段中可以放入的数,磁道密度:从盘片中心出发半径上一英寸内可以有的磁道数。面密度:记录密度与磁道密度的乘积。

磁盘操作:磁盘读写存储在磁性表面的位。读写头连接到传动臂上,驱动器将读写头固定在盘面上的任何磁道,称为寻道。读写头可以对此位上的值进行读取和修改。

磁盘对扇区的访问时间有三个主要部分:

寻道:为了读取某个目标扇区的内容,传动臂首先将读写头定位到包含目标扇区的磁道上。寻道时间依赖于传动臂的移动速度和读写头当前磁道和目标磁道的距离。

旋转:读写头到达期望的磁道后,驱动器等待目标扇区的的第一个旋转位到读写头下。这个时间依赖于当读写头到达目标磁道的扇区位置以及磁盘的旋转速度。

传送:当目标扇区的第一个位位于读写头下时,驱动器就开始读或者写该扇区的内容了。一个扇区的传送时间依赖于旋转速度和每条磁道的扇区数目。

3、固态硬盘:是一种基于闪存的存储技术

ssd的基本思想

三、局部性原理

一个编写良好的计算机程序常常具有良好的局部性。也就是倾向于使用邻近于其他最近使用过的数据项,或者最近使用过的数据项本身。对硬件和软件的设计和性能都有着极大的影响。现代计算机频繁使用高级缓存,弥补处理器和内存之间的差距。两种形式:时间局部性和空间局部性。

局部性的一些简单原则:重复使用相同变量的程序有良好的时间局部性。对于具有步长为K的引用模式的程序,步长越小,空间局部性越好。对于取指令来说,循环有良好的时间和空间局部性。循环体越小,循环次数越多,局部性越好。

四、存储器层次结构

较慢的存储设备比较快的存储设备便宜和程序的局部性原理使得基于缓存的存储器层次结构行之有效。

利用时间局部性:由于时间局部性,同一对象可能会被使用多次,一旦一个数据对象在第一次不被命中而进入缓存区域,我们就会期望后面对该目标有一系列的访问命中。因为缓存比低一级的存储设备更快。

利用空间局部性:块通常包含多个数据对象。由于空间局部性,我们会期望后面对该块中其他访问能够补偿不命中后复制该块的花费。

你可能感兴趣的:(CSAPP存储器层次结构)