存储器系统是一个具有不同容量,成本和访问时间的存储设备的层次结构。CPU寄存器妇女放着最常用的数据。靠近CPU小的、快速的高速缓存存储器(SRAM)作为存储在相对慢速的主存储器(简称主存,又名DRAM,白话内存条。。。)中数据和指令子集的缓冲区域。主存暂时存放存储在交大的慢速磁盘(不解释。。。)上的数据,而这些cipa你有常常作为存储在通过网络连接的其他机器上的磁盘上的数据的缓冲区域。
存储器层次结构的原理:与下一个更低层次的存储设备相比,一个编写良好的程序倾向于更频繁的访问某一个层次上的存储设备。所以,下一层的存储设备可以慢一点,大一点,便宜一点。整体效果是一个大大存储器池,其成本与层次结果底层最便宜的存储设备相当,但是却以接近于层次结构顶部存储设备的高速率向程序提供数据。
作为一个程序员,需要理解存储器层次结构,因为它对程序性能有着巨大影响,因为如果数据存储在CPU寄存器中,执行器零个周期内就能访问它们,如果存储在高速缓存中,需要1~10个周期,如果存储在主存中,需要50~100个时钟周期,如果存储在磁盘上。。。你们都懂得,需要两千万个时钟周期。。。
所以应该把应用程序的数据尽可能的存储在层次结构中较高的地方,使CPU能快速访问到他们。说到这里,就要介绍下计算机系统的一个特性--局部性。它不在本文的介绍范围之内,详见本博客的另外一篇文章。
没写完,待续。。。