其他分享
首页 > 其他分享> > 存储器层次结构

存储器层次结构

作者:互联网

                                           **存储器层次结构**## 标题
到目前为止,在对系统的研究中,我们依赖于一个简单的计算机系统模型,CPU执行指令,而存储器系统为CPU存放指令和数据。再简单模型中,存储器系统是一个线性的字节数组,而CPU能够在一个常数时间内访问每个存储器位置。虽然迄今为止,这都是一个有效的模型,但是它没有反映现代系统实际工作的方式。
实际上,存储器系统是一个具有不同容量,成本和访问时间的存储设备的层次结构。CPU寄存器保存着最常用的数据。靠近CPU的小的,快速的*高速缓存存储器*     作为一部分存储在相对慢速的主存储器中数据和指令的缓冲区域。主存缓存存储在容量较大的,慢速磁盘上的数据,而这些磁盘常常有作为存储在通过网络连接的其他机器的磁盘或磁带上的数据的缓冲区域。
作为一个程序员,你需要理解存储器层次结构,因为它对应用程序的性能有着巨大的影响。如果你的额程序需要的数据是存储在CPU寄存器中的,那么在指令的执行期间,在0个周期内就能访问到他们。如果存储在高速缓存中,需要4到75个周期。如果存储在主存中,需要上百个周期。而如果存储在磁盘上,大约需要几千万格周期!
这里就是计算机系统中一个基本而持久的思想:如果你理解了系统是如何将数据在存

储器层次结构中上上下下移动的,那么你就可以编写自己的应用程序,使得它们的数据项
存储在层次结构中较高的地方,在那里 CPU 能更快地访问到它们。
这个思想围绕着计算机程序的一个称为局部性(locality)的基本属性。具有良好局部性
的程序倾向于一次又一次地访问相同的数据项集合,或是倾向于访问邻近的数据项集合。
具有良好局部性的程序比局部性差的程序更多地倾向于从存储器层次结构中较高层次处访
问数据项,因此运行得更快。例如,在 Core i7 系统,不同的矩阵乘法核心程序执行相同
数量的算术操作,但是有不同程度的局部性,它们的运行时间可以相差 40倍!

标签:数据项,存储,存储器,层次结构,局部性,CPU
来源: https://blog.csdn.net/qq_49017400/article/details/109946384