专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 移动开发

【1.5+1.6】系统遨游——高速缓存和金字塔型存储设备

发布时间:2010-05-30 02:40:55 文章来源:www.iduyao.cn 采编人员:星星草
【1.5+1.6】系统漫游——高速缓存和金字塔型存储设备

        从上一节:【1.4】系统漫游——系统硬件结构以及程序执行过程 中可以看到,hello执行过程中,代码和数据由硬盘copy到内存中,再由内存copy到寄存器中,最后由寄存器copy到显存中。为完成这么一个简单的数据显示动作,竟然需要对”倒腾“这么多次数据,而且根据”木桶理论“,系统的执行效率由最慢的设备决定,有必要对这个过程进行优化一下了。题外话:依稀记得好像有人说过”程序员的工作就是搬数“,计算机的工作又何尝不是搬数呢,把数据从一个地方搬过来,进行处理后再搬到另一个地方,仅此而已!

1、高速缓存的产生

        根据机械原理,容量大的设备运行速度要慢于容量小的设备,速度快的设备要贵于速度慢的设备。同理,寄存器文件能存储几百个字节,而内存能存储几百万字节,而寄存器的操作速度要几百倍的快于内存的操作。这就造成了处理器和内存之间的速度鸿沟,更郁闷的是,处理器的技术进步速度(可以搜索inter的Tick-Tock策略)要远远快于内存技术的进步,现在的处理器22nm的制程,4核甚至8核的出现,而内存技术才发展到DDR3(1333MHZ-1600MHZ)。始终使系统处于这样一种状态:cpu一直处于饥饿状态,内存一直处于忙碌状态。需要做出一些改变了……

        如何改变?那就是在处理器和内存之间,增加一个临时存储空间叫做高速缓存cache。cache的容量介于处理器和内存之间,速度也介于两者之间,主要保存一些处理器当前和未来“最需要”的数据。系统结构如下图所示:


        示例图中出现了两种缓存1级缓存L1和2级缓存L2,他们都是SRAM结构而内存是DRAM结构(关于它们的区别,可以自行搜索)。为什么出现了两个级别cache呢?就像刚才讨论的那样,增加了一级cache还是感觉速度瓶颈,所以就再增加一级,不行就再增加一级,所以现在看到的cpu,基本上都是3个级别cache。L1-L2-L3-主存,它们的速度依次降低,容量依次增加,成本依次降低。这里提一点:既然知道了缓存的重要性,那么在bios设置中千万不要关掉缓存,否则那速度你懂得!还有人说过“看cpu性能高低,除了看频率还要看缓存大小”,这句话是片面的,如果对于同一厂商的cpu基本正确,但是千万不要拿这两个指标来对比inter和AMD的cpu,因为他们的缓存设计策略不同,缓存大小没有可比性。

        缓存的原理:缓存可以提高执行效率,是利用了程序的局部性原理,包括时间局部性和空间局部性。因为多数时候代码执行是有规律的,它们之间呈现局部聚集特性,就是说某个地址addr的代码在执行后,下一个要执行的代码地址多数时候就在addr附近,这时候系统cpu完全可以自作主张的事先把addr附近的代码放入cache中供ALU使用。既然是事先,那么就有命中率的问题,现代cpu命中率基本可以达到80%甚至更高。所以,就对我们程序员提出了更高的要求,如果想提高效率,那么编写的程序就尽量符合局部性原理。

2、金字塔型存储设备

       经过实践验证,在cpu和memory之间增加cache,能大幅度提高系统效率,但我们并不满足于此,还要进一步完善“缓存”策略挖掘系统潜能,最终做成“金字塔型”存储方案。现代计算机基本都属于这样一个存储模型,如下图所示:


        该模型的主要思想是:某一层的存储空间是它下一层空间的缓存,从上到下速度越来越慢,空间越来越大。例如:寄存器是L1的缓存,内存是硬盘的缓存,本地硬盘式网络硬盘的缓存。重点讲一下最后两层,我们上网浏览网页听音乐,都会在本地磁盘上产生大量的临时文件并保存浏览记录,这些文件都可以认为是网络服务器中的文件的“缓存”,这样当我们点“后退”按钮,或者重新打开某个网页时,就会直接从本地磁盘调用文件,而不是从网络下载。还有当处理网络异常时,有的人喜欢打开浏览器,一看到“百度”的页面就说网络修好了,其实有可能那是假象,你打开的很可能是自己磁盘的页面,所以如果想验证网络好坏,最好打开一个你平时不打开的页面,这样在本次磁盘没有缓存,系统会直接从网络索取,如果网络畅通就能打开,如果不畅则会404。

         注意:“金字塔型”存储结构的核心是“缓冲”,一定要结合生活实践理解缓冲的概念,学习“缓冲”的思想。



友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: