计算机组成原理cache课程报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机组成原理课程报告

学号:

班级:

姓名:

Cache的发展历程及应用

在计算机组成原理课学过Cache之后我才发现原来我对Cache了解的如此之少,以前在买电脑时经常看到一级缓存、二级缓存和三级缓存,然而当时并不懂这是什么东西,现在学过Cache之后才知道了缓存在电脑中的地位。原来Cache 在提高计算机速度方面有如此大的作用。那么就让我们来了解一下Cache的发展历程。

经过我查资料得知,Cache一词来源于法语,其原意是“藏匿处,隐秘的地方”,而自从被应用于计算机科学之后,就已经成为了英语中的一个计算机体系结构专有名词。Sun Microsystems的前首席科学家Billy Joy,作为BSD unix,csh,vi,NFS,java,TCP/IP等的发明者,他曾经说过,在计算机科学领域,如果没有了cache的发明,其他的一切发明都将失去意义。而正是他,将给予分页的虚拟内存系统引入了Unix,影响了之后所有的新操作系统开发。Cache的出现正是为了解决CPU日益增长的核心时钟频率以及系统主内存日益落后的速度之间的矛盾①。这就是Cache解决的主要问题。那么,这个问题是怎样显现出来以及Cache 是如何出现的呢?

纵观PC系统和CPU二十年的发展,随着半导体加工工艺水平的不断提高,集成电路技术的不断进步,导致生产成本不断降低,CPU的功能不断增强,运算速度越来越快,CPU和存储器的性能都有了很大的提高。CPU频率的提高,必然要求系统中存储器的存取速度要提高,还要求其容量要增大。主存储器DRAM容量的提高还是比较快的,但是DRAM读取时间的提高却很慢。从而在速度上与CPU主频的提高产生了极不相配的情况,这样会影响整个系统的性能。二十年来,CPU设计的问题之一就是解决高速CPU和低速DRAM之间的平衡或匹配问题,以求系统性能的整体提高。在它们之间加入高速缓冲存储器Cache,就是这个问题的解决方案之一。

Cache随CPU的发展而不断改变,可以概括为:从无到有,由小到大,先外后内,纵深配备,软硬兼施。初期的CPU没有Cache,在80386时期出现外部Cache;80486时期开始有内部仅8kB的Cache。Cache的分级也由L1和L2级,发展到L0和L3级的纵深配备;Cache的大小由当初的8kB,直到Merced的1~

2MB。为了更好地利用Cache,还专门配有缓存控制指令②。

通过Cache的发展历程我们可以看出来,Cache是为了解决CPU速度与内存访问速度不匹配而生,Cache的出现使得它们之间的矛盾得到解决。确实,正是因为Cache,计算机的速度有了很大的提升。Cache是位于主存与CPU之间的高速小容量存储器,用来存放系统中当前最活跃的程序和数据。Cache的容量比主存小得多。当CPU需要数据或指令时,它首先访问Cache,看看所需要的数据或指令是否在Cache中,方法是将CPU提供的数据或指令在内存中存放的位置的内存地址,首先与Cache中已存放的数据或指令的地址比较,如相等,说明可以在Cache中找到需要的数据和指令,成为Cache命中;如不相等,说明CPU需要的指令和数据不在Cache中,成为未命中,需要从内存中提取。若CPU需要的指令或数据在Cache中,则不需要任何等待状态,Cache就可以将信息传送给CPU。若数据或指令不在Cache中,存储器控制电路会从内存中取出数据或指令传送给CPU,同时在Cache中拷备一份副本,之所以这样做,是为了防止CPU以后再访问同一信息时又会出现不命中的情况,从而尽量降低CPU访问速度相对较慢的内存的概率。换言之,CPU访问Cache的命中率越高,系统性能就越好。所以,如果要让计算机的处理速度非常快,就要想办法的尽量提高Cache的命中率。因此,很多人都提出了Cache的优化方法来提高Cache的命中率,如分块矩阵乘法的Cache优化方法,这一技术的基本思想是使用数组扩展定义的方法控制相应元素的地址差来降低冲突不命中以达到提高Cache利用率的目的③。

Cache的命中率取决于下面三个因素:Cache的大小、Cache的组织结构和程序的特性。容量相对较大的Cache命中率会相应提高,但容量太大,成本就会变得不合理。遵循局部性原理的程序在运行时,Cache的命中率也会提高。然而,Cache的直接结构的好坏对命中率也会产生较大的影响。按照主存和Cache之间的映象关系有三种组织方式。即:

(1)全相联方式。按这种方式,主存的一个区块可能映象到Cache的任何一个地方。

(2)直接映象方式。在这种方式下,主存的一个区块只能映象到Cache的一个固定对应的地方。

(3)组相联方式。即主存的一个区块可以映象到Cache的有限的地方。具体说,

在这种方式下,一个Cache系统分为许多组,在一个组内有二个或多个区块,主存的区块映象到某个对应的组中,但是,这个区块可能出现在这个组内的任何地方。④

现在Cache的应用已经非常广泛了,可以说现在的任何一台计算机都运用Cache来提高的自己的运行速度,至于他们运用到几级缓存就要看各自的性能了。Cache可以说以一项伟大的发明,它提升了计算机的运行速度,解决了CPU速度快和内存访问速度不匹配的矛盾。试想一下,如果没有Cache,CPU高速的运行速度必然会被相对而言过慢的内存速度拖累,不能很好地发挥CPU的性能,那我们现在也不会使用运行速度如此之快的计算机了。但是我认为Cache并未从根本上解决CPU速度与内存速度不匹配的矛盾,只能说它在很大程度上缓解了这一矛盾。因为就现在来说,虽然科学技术取得了很大的进步,但是CPU的速度依然远远大于内存的速度,只要他们的速度还不匹配,这一矛盾就会一直存在,而Cache这一解决方案并不会从根本上解决问题。要想从根本上解决这一问题,就要使内存的速度跟上CPU的速度,但是就目前来说,这一想法似乎并不能实现,因为CPU增长的速度远远大于内存访问的速度。不过内存的访问速度随着科学技术的进步也在不断的提高。就拿显得机械硬盘和固态硬盘来说,固态硬盘的速度比机械硬盘的速度快了不知多少倍,但是由于价格的原因固态硬盘还未完全普及,但是我相信随着科技的发展,终有一天机械硬盘会被淘汰的。所以,也许会有那么一天内存的速度赶上了CPU的速度,那么Cache就会被淘汰了吧。

通过学习Cache,我知道了很多关于Cache的知识,明白了它的工作原理,更重要的是计算机内部是这样运行的有了更进一步的理解,作为一名计算机学院的学生,我感觉这是必不可少的。以后有同学问我电脑中的一级缓存、二级缓存或三级缓存是什么意思,我也能很好地回答出来。总而言之,在学习计算机组成原理的过程中,我学到了很多东西,明白了速度在计算机中占有很重要的位置,不然谷歌现在研究量子计算机干什么,因为量子计算机的速度更快啊!!!!!!

参考资料:

①ChinaUnix博文:Cache浅析。

相关文档
最新文档