ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:1,009.87KB ,
资源ID:10540756      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10540756.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Cache的发展工作过程及作用论文.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Cache的发展工作过程及作用论文.docx

1、Cache的发展工作过程及作用论文目 录一、Cache的发展 1(一)PC初期无需Cache 1(二)80386没有L1Cache 1(三)80486出现Cache 2(四)Peutium的分离L1 Cache和L2 Cache 2(五)Pentium Pro内嵌式L2 Cache 3(六)Pentium MMX容量增大的L1和L2Cache 3(七)Pentium设有双独立总线连接L2 Cache 3(八)Pentium的L2 Cache增大 4(九)Merced设有L0 4(十)与Cache相配合的缓存控制指令 5(十一)Cache在PC中其它设备的应用 5二、Cache的工作过程 61、

2、Cache的基本工作原理 62、80486片内高速缓冲存储器(Cache) 11(1)80486 片内Cache结构 11(2)80486片Cache的工作模式 123、Cache的作用 13参考文献 15注释 15 CACHE的发展及其在各类计算机中的工作过程和作用论文摘要Cache是一种高速缓冲存储器,是为了解决CPU和主存之间的速度不匹配而采用的一项重要技术,Cache是介于CPU和主存之间的小容量存储器,但存取速度比主存快。Cache随CPU的发展而不断改变,可以概括为:从无到有,由小到大,先外后内,纵深配备,软硬兼施。初期的CPU没有Cache,在80386时期出现外部Cache;8

3、0486时期开始有内部仅8kB的Cache。Cache的分级也由L1和L2级,发展到L0和L3级的纵深配备;Cache的大小由当初的8kB,直到Merced的12MB。为了更好地利用Cache,使得计算机处理信息的速度更加快速。关键词 Cache CPU 数据传输一、 CACHE的发展 纵观PC系统和CPU二十年的发展,随着半导体加工工艺水平的不断提高,CPU和存储器的性能都有了很大的提高。CPU频率的提高,必然要求系统中存储器的存取速度要提高,还要求其容量要增大。主存储器DRAM容量的提高还是比较快的,但是DRAM读取时间的提高却很慢。从而在速度上与CPU主频的提高产生了极不相配的情况,这样

4、会影响整个系统的性能。二十年来,CPU设计的问题之一就是解决高速CPU和低速DRAM之间的平衡或匹配问题,以求系统性能的整体提高。在它们之间加入高速缓冲存储器Cache,就是这个问题的解决方案之一。Cache随CPU的发展而不断改变,可以概括为:从无到有,由小到大,先外后内,纵深配备,软硬兼施。初期的CPU没有Cache,在80386时期出现外部Cache;80486时期开始有内部仅8kB的Cache。Cache的分级也由L1和L2级,发展到L0和L3级的纵深配备;Cache的大小由当初的8kB,直到Merced的12MB。为了更好地利用Cache,还专门配有缓存控制指令。(一) PC初期无需

5、Cache在八十年代初,由于CPU主频很低,DRAM的存取时间甚至快于CPU存取时间,因此无需Cache。例如,当时PC机采用8088CPU,系统主频为4.77MHz,一个基本总线周期为4拍,即840ns。此时64kB的DRAM存取周期200ns,造成DRAM等待CPU的执行的局面,无需Cache。在PC/AT机采用80286CPU后,系统主频增加到10MHz,1个基本总线周期为2拍,即200ns。此时必须用读取时间为100ns的DRAM。在采用25MHz的80386DX时,一个基本总线周期为2拍,即80ns,当时已没有速度相匹配的DRAM可用。解决方案有2种:一种是在基本总线周期中插入等待,

6、降低CPU的处理能力;另一种是采用内部和外部Cache,使用SRAM芯片以提高存储器的读取速度。(二)80386没有L1 Cache80386初期主频为20MHz。Intel公司十分重视80386的设计制造,把它定位于“新一代个人电脑架构”,想把一些新技术设计在芯片中。但由于当时工艺所限,内置高速缓存的芯片体积过大,造成成本上升,同时工期有限,几经权衡,最后决定在80386芯片不设置高速缓冲存储器,可以生产另外的Cache,以配合80386运作。尽管人们意识到CPU主频的增加与内存DRAM存取时间过慢的矛盾已愈加突出,但因条件所限,80386内部没有L1 Cache,只有外部的Cache。(三

7、)80486出现Cache80486是由80386CPU加80387数字协处理器以及8kB Cache构成。当CPU的时钟频率继续增加时,外部Cache的SRAM芯片速度也要相应提高,这样会增加系统成本,为此在设计80486时采用了内部Cache。80486芯片内由8kB的Cache来存放指令和数据。同时,80486也可以使用处理器外部的第二级Cache,用以改善系统性能并降低80486要求的总线带宽。Cache可以工作在80486所有的操作模式:实地址模式、保护模式和X86模式。对Cache的操作是由系统自动进行的,对程序员透明。而在多处理器系统中,可能要求系统软件的干预。对于一般的计算机,

8、在系统CMOS设置中均有Cache使用模式的设置。80486内部Cache是一个4路组相联Cache,在主存储器中给定单元的数据能够存储在Cache内4个单元中的任何一个。这种4路相联方式是高命中率的全相联Cache和快速的直接映像Cache的一种折衷,因而能进行快速查找并获得高的命中率。 “Cache主存”与“主存辅存”层次的区别比较项目 存储层次“Cache主存”层次“主存辅存”层次目的为了弥补主存速度的不足为了弥补主存容量的不足存储管理实现主要由专业硬件实现主要由软件实现访问速度的比值(第一级和第二级)几比一几万比一典型的块(页)大小几十个字节几百到几千个字节CPU对第二级的访问方式可直

9、接访问均通过第一级不命中时CPU是否切换不切换切换到其他进程(四)Peutium的分离L1 Cache和L2 CachePentium处理器采用了超标量结构双路执行的流水线,有分支预测技术。由于Pentium设计有2条并行整数流水线,可同时执行2条命令。整数单元的潜在处理能力实际可增加一倍,处理器也需要对命令和数据进行双倍的访问。为使这些访问不互相干涉,Intel把在486上共用的内部Cache,分成2个彼此独立的8kB代码Cache和8kB数据Cache,这两个Cache可以同时被访问。这种双路高速缓存结构减少了争用Cache所造成的冲突,提高了处理器效能。Pentium的Cache还采用了

10、回写写入方式,这同486的贯穿写入方式相比,可以增加Cache的命中率。此外,还采用了一种称为MESI高速缓存一致性协议,为确保多处理器环境下的数据一致性提供了保证。 INCLUDEPICTURE * MERGEFORMATINET (五)Pentium Pro内嵌式L2 Cache为使Pentium Pro的性能超过Pentium,必需使用创新的设计方法。Pentium Pro使用了新的超标量和级流水线技术,包括无序执行、动态分支预测和推测执行的动态执行新技术。它可以使CPU在一个时钟周期执行3条微操作。CPU并行处理速度的加快,意味着它同时处理指令和数据的数量增加,为不使CPU处于等待状态

11、,需要重新设计Cache。Pentium Pro在片内第一级Cache的设计方案中,使指令Cache与数据Cache分别设置。指令Cache的容量为8kB,采用2路组相联映像方式。数据Cache的容量也为8kB,但采用4路组相联映像方式。Pentium Pro采用MESI(修改、排他、共享、作废)协议来维持Cache和主存储器之间的一致性。通常,人们总以为,像Pentium Pro这样的3路超标量结构的微处理器会采用更大容量的片内第一级Cache和更大的第二级Cache。然而,Intel公司的设计者却选择了另一条设计思路设计一种Cache存储阶层结构,使得能够从一个Cache流动到另一个Cac

12、he,而不用阻塞执行。Pentium Pro采用了内嵌式或称捆绑式L2Cache,大小为256kB或512kB。此时的L2已经用线路直接连到CPU上,益处之一就是减少了对急剧增多L1 Cache的需求。L2 Cache还能与CPU同步运行。即当L1 Cache不命中时,立刻访问L2 Cache,不产生附加延迟。为进一步减少因要访问的信息不在高速缓冲中时所带来的性能损失,Pentium Pro的L1和L2都设计成非锁定型。即当哪个Cache中没有CPU所需的信息时,它不妨碍后面访问Cache的处理过程。Cache可以直接处理最多4次的Cache缺页情况,借助CPU的内存有序缓冲区可以顺序保存最多

13、12次的内存访问。非锁定型Cache适用于Pentium Pro的乱序执行核心,因为在可能引发流水线延迟的长等待内存操作期间,这些Cache可以让CPU继续运行。Pentium Pro的如此捆绑封装,带来器件成本提高。一方面专用的L2 Cache芯片成本高,另一方面两个不同功能的芯片只有放在一起联结后才能最后测试其性能的完整性。而当其中有一个有缺陷时,两个芯片都被报废。在以后的Pentium Pro产品中,又将L2 Cache从芯片中去掉。(六)Pentium MMX容量增大的L1和L2CachePentium MMX是能运行多媒体指令MMX的高能奔腾处理器。Pentium MMX具有改进的分

14、支预测和增强型流水线技术,并将L1 Cache容量增加到32kB,L2 Cache为512kB。Pentium MMX的片内L1数据和指令的Cache,每个增到16kB,4路相联。较大的独立内部Cache、减少平均内存存取时间,同时提供对近期所用指令和数据的快速存取,性能因此得到提高。数据Cache支持采用回写方式更新内存。由于CacheL1容量的增大,使当时的应用程序运行速度提高了10左右。(七)Pentium设有双独立总线连接L2 CachePentium是Pentium Pro的改进型,具有MMX指令,使用动态执行技术,采用双独立总线结构。Pentium同样有2级Cache,L1为32k

15、B(指令和数据Cache各16kB)是Pentium Pro的一倍。L2为512kB。 INCLUDEPICTURE * MERGEFORMATINET Pentium 与Pentium Pro在L2 Cache 的不同是由于制作成本原因。L2 Cache已不在内嵌芯片上,而是与CPU通过专用64位高速缓存总线相联,与其它元器件共同被组装在同一基板上,即“单边接触盒”上。双独立总线结构就是:L2高速缓存总线和处理器至主内存(Processortomainmemory)的系统总线。 Pentium处理器可以同时使用这两条总线,与单一总线结构的处理器相比,该处理器可以进出两倍多的数据,可允许 Pe

16、ntium处理器的L2高速缓存比Pentium处理器的L2高速缓存要快1倍。随着 Pentium处理器主频的提高,L2高速缓存的速度也将加快。最后,流水线型系统总线可允许同时并行传输,而不是单个顺序型传输。改进型的双重独立总线结构,可以产生超过与单总线结构三倍带宽的性能。另外,在Pentium中,采用了ECC技术,此技术应用到二级高速缓存中,大大提高了数据的完整性和可靠性。为开发低端市场,曾在 Pentium的基板上除去L2,牺牲一些性能,制造廉价CPU。这就是最初的Celeron处理器。以后的Celeron仍加有较小的片上L2 Cache,其大小为128kB。(八)Pentium的L2 Ca

17、che增大Pentium也是基于Pentium Pro结构为核心,在原有MMX多媒体指令的基础上,又增了70多条多媒体指令。它使用动态执行技术,采用双独立总线结构。Pentium具有32kB非锁定L1 Cache和512kB非锁定L2 Cache。L2可扩充到12MB,具有更合理的内存管理,可以有效地对大于L2缓存的数据块进行处理,使CPU、Cache和主存存取更趋合理,提高了系统整体性能。在执行视频回放和访问大型数据库时,高效率的高速缓存管理使P避免了对L2 Cache的不必要的存取。由于消除了缓冲失败,多媒体和其它对时间敏感的操作性能更高了。对于可缓存的内容,P通过预先读取期望的数据到高速

18、缓存里来提高速度,这一特色提高了高速缓存的命中率,减少了存取时间。(九)Merced设有L0即将推出的第7代处理器Merced主频可达1GHz。很明显,对Cache的要求更高了。为此,lntel本着“大力提高执行单元和缓存间数据交换速度”的思想,在芯片内开发新的Cache,并增加L1 Cache的容量,来平衡CPU和DRAM间的速度。为此,在Merced的片上最接近执行单元旁再设另一处Cache,称为L0缓存,是指令/数据分离型。由于L0Cache在物理位置上比L1离执行单元更近,布线距离的缩短,使它与执行单元间的数据交换速度比L1还快,可以进一步提高工作主频。同时,还要在芯片内部配置超过1M

19、B的大容量L1 Cache。芯片内部Cache比外部Cache更易于提升与执行单元间的数据传送速度。内部Cache的加大,执行单元不易发生“等待”。现行的内部Cache容量仅为32kB128kB。内部Cache容量的增加会引起芯片面积增大,提高制造成本。但大部分公司认为,由于内部Cache容量增大而导致成本的上扬,可以用制造技术来弥补。(十)与Cache相配合的缓存控制指令为进一步发挥Cache的作用,改进内存性能并使之与CPU发展同步来维护系统平衡,一些制造CPU的厂家增加了控制缓存的指令。如Intel公司在Pentium处理器中新增加了70条3D及多媒体的SSE指令集。其中有很重要的一组指

20、令是缓存控制指令。AMD公司在K62和K63中的3DNow多媒体指令中,也有从L1数据Cache中预取最新数据的数据预取指令(Prefetch)。Pentium处理器的缓存控制指令,用于优化内存连续数据流。针对数据流的应用需要对以前的Cache运作方式进行了改进,减少了一些不必要的中间环节,节省了时间,增加了CPU数据总线的实际可用带宽,也提高了Cache的效率。有两类缓存控制指令。一类是数据据预存取(Prefetch)指令,能够增加从主存到缓存的数据流;另一类是内存流优化处理(Memory Streaming)指令,能够增加从处理器到主存的数据流。这两类指令都赋予了应用开发人员对缓存内容更大

21、控制能力,使他们能够控制缓存操作以满足其应用的需求。数据预存取指令允许应用识别出所需的信息,并预先将其从主存中取出存入缓存。这样一来,处理器可以更快地获取信息,从而改进应用性能。为了进一步削减内存延迟,内存访问还可以与计算机周期保持流水操作。例如,如果一个应用需要计算一些数值以供3D图形使用,当它在计算一个值的同时就可以预取下一个需要计算的数值。内存流优化处理指令允许应用越过缓存直接访问主存。通常情况下,处理器写出的数据都将暂时存储在缓存中以备处理器稍后使用。如果处理器不再使用它,数据最终将被移至主存。然而,对于多媒体应用来就,通常不再需要使用这些数据。因此,这时将数据尽快地移到主存中则显得至

22、关重要。采用了Pentium处理器的内存流优化处理指令后,应用程序就能让数据搭乘“直达快车”,直接到达主存。当数据流直接到达主存时,处理器负责维护缓存的一致性。因为这种方式避免了为数据流留出空间清空缓存的当前内容,从而也提高了缓存的利用率。总而言之,缓存控制指令改进了进出处理器的数据据流,使处理器保持其高速率运作。通过这些指令(同时还需要一些专为其设计以使其发挥优势的软件),商业用户可以在操作系统和图形设备驱动程序中感受其性能优势。(十一)Cache在PC中其它设备的应用Cache作为一种速度匹配技术,不仅用在提高CPU对内存的读写速度上,而且也用在CPU结构的其它部分和PC系统中。PC的显示

23、系统中,由于3D应用的迅猛发展,大量的显示内存使用着高速缓存技术,如前台缓存、后台缓存、深度缓存和纹理缓存等。PC的磁盘系统中,为提高内存对磁盘(主要是硬盘)的读写速度,就要建立磁盘高速缓存。因为DRAM内存的存取速度对CPU来说较慢,但对磁盘的存取速度却是很快的。这是因为磁盘存储系统包含有磁头的机械运动,而机械运动无法跟传送电信号的电子速度相比。此外,磁头中电与磁的信号转换也对速度有影响。这样,为了提高磁盘存取速度而采用Cache也就顺理成章了。硬盘Cache无需使用高速的SRAM,它只需在内存(DRAM)中划出一个区域,作为专用的磁盘缓冲区,采用一定的数据结构,即可实现磁盘存取的Cache

24、技术。它的过程也是把即将访问的数据整块地拷贝到高速缓存区中,然后内存再到高速缓存中去逐个读取数据。由于数据在RAM空间内部传送要比在RAM与磁盘间传送快得多,系统由此提高了存取速度。硬盘的Cache可以放在常规内存中。不过,为了不占用宝贵的用户程序空间,通常是把它设在扩展内存或扩充内存里。硬盘Cache是由人们共知的SMARTDRIVE.EXE文件自动建立的,用户只需在AUTOEXEC.BAT与CONFIG.SYS中加入相应的命令行就成了。在较慢速的其它外围设备和内存的数据交换中,在网络通讯中,都需要使用Cache技术。推而广之,凡是在传输速度有较大差异的设备之间,都可以利用Cache的速度匹

25、配技术。PC中的Cache主要是为了解决高速CPU和低速DRAM内存间速度匹配的问题,是提高系统性能,降低系统成本而采用的一项技术。随着CPU和PC的发展,20年来,现在的Cache已成为CPU和PC不可缺少的组成部分,是广大用户衡量系统性能优劣的一项重要指标。据预测,在21世纪初期,CPU主频加快发展的趋势,加上内存DRAM的存取时间也会提高,从系统的性价比考虑,Cache的配备仍然是重要的技术之一。二、 CACHE的工作过程1、 Cache的基本工作原理高速缓存Cache是位于CPU和主存储器之间规模较小、存取速度快捷的静态存储器。Cache除包含SRAM外,还有控制逻辑。若Cache在C

26、PU芯片外,它的控制逻辑一般与主存的控制逻辑合成在一起,称为主存/Cache控制器;若Cache在CPU内,则由CPU提供它的控制逻辑。 CPU与Cache之间的数据交换是以字为单位,而Cache与主存之间的数据交换是以块为单位。一个块由若干字组成,是定长的。当CPU读取主存中的一个字时,便发出此字的内存地址到Cache和主存。此时Cache控制逻辑依据地址判断此字当前是否在Cache中:若是,此字立即传送给CPU;若非,则用主存读周期把此字从主存读出到CPU,与此同时,把含有这个字的整个数据块从主存读出到Cache中。Cache原理图:假设Cache读出时间为50ns,主存读出时间为250n

27、s。存储系统是模块化的,主存中每个8K模块和容量16字的Cache相联系。Cache分为4行,每行4个子(W)。分配给Cache的地址存放在一个相联存储器CAM中,当CPU执行访存指令时,就把所要访问的字的地址送到CAM;如果W不在Cache中,则将W从主存传送到CPU。与此同时,把包含W的由前后相继的4个字所组成的一行数据送入Cache,它替换了原来Cache中最近最少使用(LRU)的一行数据。在这里,由始终管理Cache使用情况的硬件逻辑电路来实现LRU1替换算法。例: Cache及主存地址组成部分:主存有n条地址线,主存容量为2n,把主存划分为大小相等的2m块,每块有2n-m (=2r)

28、个单元。把主存划分为大小相等的2c块,每块有2p-c (=2r)个单元。Cache的基本结构:Cache的工作过程:Cache的工作原理是基于程序访问的局部性。对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。指令地址的分布本来就是连续的。再加上循环程序段和子程序段要重复执行多次。因此,对这些地址的访问就自然地具有时间上集中分布的倾向。数据分市的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的

29、局部性。根据程序的局部性原理,可以在主存和CPU通用寄存器之间设置一个高速的容量相对较小的存储器,用SRAM存放CPU常用的指令和数据,于是,CPU对存储器的访问主要体现在对Cache的存取保持高速操作。可见,在存储系统中,小容量的高速SRAM作为高速存储器,而大容量的慢速DRAM用作内存,这样的系统以接近DRAM的价格提供了SRAM的性能。系统正是依据此原理,不断地将与当前指令集相关联的一个不太大团后继指令集从内存读到cache,然后再与CPU高速传送,从而达到速度匹配。CPU对存储器进行数据请求时,通常先访问cache。由于局部性原理不能保证所谓求的数据百分之百地在Cache中,这里便存在

30、一个命中率。即CPU在任一时刻从Cache中可靠获取数据的几率。命中率越高,正确获取数据的可靠性就越大。Cache的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低;也没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显地增长。只要Cache的空间与主存空间在一定范围内保持适当比例的映射关系,Cache的命中率还是相当高的。一般规定Cache与内存的空间比为4:1000,即128kBCache可映射32MB内存;256kBCache可映射64MB内存。在这种情况下,命中率都在90以上。至于没有命中的数据,CPU只好直接从内存获取。获取的同时,也把它

31、拷进Cache,以备下次访问。当要访问的字在Cache中时,若是读操作,则CPU可以直接从Cache中读取数据,不涉及主存。若是写操作,则需要改变Cache和主存中相应两个单元的内容。这时,有两种处理办法,一种是Cache单元和主存单元中相应的单元同时被修改,称为“直通存储法”。另一种方法是只修改Cache单元的内容,同时用一个标志位作为标志,当有标志位的信息块从Cache中移去时再修改相应的主存单元,把修改信息一次写回主存,称为“写回法”。显然直通存储法比较简单,但对于需要多次修改的单元来说,可能导致不必要的主存重写工作。若数据不在Cache中,则CPU直接对主存进行操作。若是读操作,则把主存中相应的信息块送到Cache中,在送字块到Cache的同时就把所需的字送到CPU,不必等待整个块都装入Cache的这种方法称为“直通取数”。若是写操作,则将信息直接写入内存。一般情况下,此时,主存中相应块并不调入缓存。因为一个写操作所涉及的往往是程序中某个数据区的一个单元,其访问的局部性并不明显。主存和Cache的存储区均划分成块(Block)。每块由多个信息字组成,两者之间以块为单位交换信息。Cache中能容纳多个信息块。Cache

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1