您的位置:首页 > 移动开发

CSAPP 第六章-存储器层次结构 小结

2012-03-03 18:32 253 查看



简单模型中,存储器是一个线性的字节数组。真实模型中,是一个具有不同容量,成本,访问时间的存储层次结构(存储器山)

程序的局部性很重要,对程序性能有很重要的影响。

计算机系统一个基本而持久的思想,如果你理解了系统是如何将数据在存储器层级结构中上下移动,你就可以编写程序,让数据存储在层次结构中较高的地方,从而CPU可以更快的访问到他们。

编写程序实现功能是最简单的,如何让编写的程序拥有最高的性能,例如利用程序的局部性原理,才是更重要的




程序的局部性分为时间局部性和空间局部性。
时间局部性:程序更多的引用最近访问过的数据项集合。
空间局部性:程序更多的引用邻近的数据项集合。
原则有三:重复引用同一个变量;步长尽可能小;循环体越小,迭代次数越多。



能量墙:增加CPU的时钟频率,芯片的功耗太大,于是转向多核。

现代计算机系统的各个层次,从硬件到操作系统,再到应用程序,他们的设计都利用了局部性:缓存
存储器层次结构:中心思想:对于每个K,位于K层的更小更快的存储设备作为K+1层设备的缓存。
传送单元:block。
缓存命中和缓存不命中:LRU替换策略。(操作系统)



关于延迟:

CPU:0;
L1:1;
L2:10;
L3:30;
虚拟存储器:100(MM)
缓冲区缓存:100(MM+OS)
磁盘:100,000
网络:10 000 000
web缓存:1 000 000 000

编写缓存友好的代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: