深入理解计算机系统之六--存储器层次结构

一、小结

1、存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。CPU寄存器保存着最常用的数据。靠近CPU的小的、快速的高速缓存存储器作为一部分存储在相对慢速的主存储器中数据和指令的缓冲区域。主存缓存存储在容量较大的、慢速磁盘上的数据,而这些磁盘常常作为存储在通过网络连接的其他机器的磁盘或磁带上的数据的缓冲区域。

2、作为程序员需要理解存储器层次结构,因为它对应用程序的性能有着极大的影响。如果你的程序需要的数据是存储在CPU寄存器中的,那么在指令的执行期间,在0个周期内就能访问它们。如果存储在高速缓存中,需要4~75个周期。如果存储在主存中需要上百个周期。而如果存储在磁盘上,就需要大约几千万个周期!

3、基本存储技术包括随机存储器(RAM)、非易失性存储器(ROM)和磁盘。随机访问存储器(RAM)分为两类:静态的和动态的。静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵得多。SRAM用来作为高速缓存存储器,既可以在CPU芯片上,也可以在片下。DRAM用来作为主存以及图形系统的帧缓冲区。即使在关电的时候,ROM也能保持它们的信息,可以用来存储固件。旋转磁盘是机械的非易失性存储设备,以每个位很低的成本保存大量的数据,但是其访问时间比DRAM长得多。固态硬盘(SSD)基于非易失性的闪存,对某些应用来说,越来越成为旋转磁盘的具有吸引力的替代产品。

4、一般而言,较快的存储技术每个位会更贵,而且容量更小。DRAM和磁盘访问时间远远大于CPU周期时间。系统通过将存储器组织成存储设备的层次结构来弥补这些差异,在这个层次结构中,较小、较快的设备在顶部,较大、较慢的设备在底部。因为编写良好的程序有好的局部性,大多数数据都可以从较高层得到服务,结果就是存储系统能以较高层的速度运行,但却有较低层的成本和容量。

5、程序员可以通过编写有良好空间和时间局部性的程序来显著地改进程序的运行时间。利用基于SRAM的高速缓存存储器特别重要。主要从高速缓存取数据的程序能比内存取数据的程序运行得快很多。

 

致谢

1、《深入理解计算机系统》[第3版],作者 Randal E.Bryant, David R.O`Hallaron 译者 龚奕利 贺莲   

 

 

 

你可能感兴趣的:(深入理解计算机系统)