版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、甘肃政法学院 微机原理与接口技术论文目 录一、Cache的发展1(一)PC初期无需Cache1(二)80386没有L1Cache1(三)80486出现Cache2(四)Peutium的分离L1 Cache和L2 Cache2(五)Pentium Pro内嵌式L2 Cache3(六)Pentium MMX容量增大的L1和L2Cache3(七)Pentium设有双独立总线连接L2 Cache3(八)Pentium的L2 Cache增大4(九)Merced设有L04(十)与Cache相配合的缓存控制指令5(十一)Cache在PC中其它设备的应用5二、Cache的工作过程61、Cache的基本工作原理
2、62、80486片内高速缓冲存储器(Cache)11(1)80486 片内Cache结构11(2)80486片Cache的工作模式123、 Cache的作用13参考文献15注释15第15页CACHE的发展及其在各类计算机中的工作过程和作用论文摘要Cache是一种高速缓冲存储器,是为了解决CPU和主存之间的速度不匹配而采用的一项重要技术,Cache是介于CPU和主存之间的小容量存储器,但存取速度比主存快。Cache随CPU的发展而不断改变,可以概括为:从无到有,由小到大,先外后内,纵深配备,软硬兼施。初期的CPU没有Cache,在80386时期出现外部Cache;80486时期开始有内部仅8kB
3、的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初期无需Cache在八十年代初,由于C
5、PU主频很低,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种:一种是在基本总线周期中插入等待,降低CPU的处理能力;另一种是
6、采用内部和外部Cache,使用SRAM芯片以提高存储器的读取速度。(二)80386没有L1 Cache80386初期主频为20MHz。Intel公司十分重视80386的设计制造,把它定位于“新一代个人电脑架构”,想把一些新技术设计在芯片中。但由于当时工艺所限,内置高速缓存的芯片体积过大,造成成本上升,同时工期有限,几经权衡,最后决定在80386芯片不设置高速缓冲存储器,可以生产另外的Cache,以配合80386运作。尽管人们意识到CPU主频的增加与内存DRAM存取时间过慢的矛盾已愈加突出,但因条件所限,80386内部没有L1 Cache,只有外部的Cache。(三)80486出现Cache80
7、486是由80386CPU加80387数字协处理器以及8kB Cache构成。当CPU的时钟频率继续增加时,外部Cache的SRAM芯片速度也要相应提高,这样会增加系统成本,为此在设计80486时采用了内部Cache。80486芯片内由8kB的Cache来存放指令和数据。同时,80486也可以使用处理器外部的第二级Cache,用以改善系统性能并降低80486要求的总线带宽。Cache可以工作在80486所有的操作模式:实地址模式、保护模式和X86模式。对Cache的操作是由系统自动进行的,对程序员透明。而在多处理器系统中,可能要求系统软件的干预。对于一般的计算机,在系统CMOS设置中均有Cac
8、he使用模式的设置。80486内部Cache是一个4路组相联Cache,在主存储器中给定单元的数据能够存储在Cache内4个单元中的任何一个。这种4路相联方式是高命中率的全相联Cache和快速的直接映像Cache的一种折衷,因而能进行快速查找并获得高的命中率。 “Cache主存”与“主存辅存”层次的区别比较项目 存储层次“Cache主存”层次“主存辅存”层次目的为了弥补主存速度的不足为了弥补主存容量的不足存储管理实现主要由专业硬件实现主要由软件实现访问速度的比值(第一级和第二级)几比一几万比一典型的块(页)大小几十个字节几百到几千个字节CPU对第二级的访问方式可直接访问均通过第一级不命中时CP
9、U是否切换不切换切换到其他进程(四)Peutium的分离L1 Cache和L2 CachePentium处理器采用了超标量结构双路执行的流水线,有分支预测技术。由于Pentium设计有2条并行整数流水线,可同时执行2条命令。整数单元的潜在处理能力实际可增加一倍,处理器也需要对命令和数据进行双倍的访问。为使这些访问不互相干涉,Intel把在486上共用的内部Cache,分成2个彼此独立的8kB代码Cache和8kB数据Cache,这两个Cache可以同时被访问。这种双路高速缓存结构减少了争用Cache所造成的冲突,提高了处理器效能。Pentium的Cache还采用了回写写入方式,这同486的贯穿
10、写入方式相比,可以增加Cache的命中率。此外,还采用了一种称为MESI高速缓存一致性协议,为确保多处理器环境下的数据一致性提供了保证。(五)Pentium Pro内嵌式L2 Cache为使Pentium Pro的性能超过Pentium,必需使用创新的设计方法。Pentium Pro使用了新的超标量和级流水线技术,包括无序执行、动态分支预测和推测执行的动态执行新技术。它可以使CPU在一个时钟周期执行3条微操作。CPU并行处理速度的加快,意味着它同时处理指令和数据的数量增加,为不使CPU处于等待状态,需要重新设计Cache。Pentium Pro在片内第一级Cache的设计方案中,使指令Cach
11、e与数据Cache分别设置。指令Cache的容量为8kB,采用2路组相联映像方式。数据Cache的容量也为8kB,但采用4路组相联映像方式。Pentium Pro采用MESI(修改、排他、共享、作废)协议来维持Cache和主存储器之间的一致性。通常,人们总以为,像Pentium Pro这样的3路超标量结构的微处理器会采用更大容量的片内第一级Cache和更大的第二级Cache。然而,Intel公司的设计者却选择了另一条设计思路设计一种Cache存储阶层结构,使得能够从一个Cache流动到另一个Cache,而不用阻塞执行。Pentium Pro采用了内嵌式或称捆绑式L2Cache,大小为256kB
12、或512kB。此时的L2已经用线路直接连到CPU上,益处之一就是减少了对急剧增多L1 Cache的需求。L2 Cache还能与CPU同步运行。即当L1 Cache不命中时,立刻访问L2 Cache,不产生附加延迟。为进一步减少因要访问的信息不在高速缓冲中时所带来的性能损失,Pentium Pro的L1和L2都设计成非锁定型。即当哪个Cache中没有CPU所需的信息时,它不妨碍后面访问Cache的处理过程。Cache可以直接处理最多4次的Cache缺页情况,借助CPU的内存有序缓冲区可以顺序保存最多12次的内存访问。非锁定型Cache适用于Pentium Pro的乱序执行核心,因为在可能引发流水
13、线延迟的长等待内存操作期间,这些Cache可以让CPU继续运行。Pentium Pro的如此捆绑封装,带来器件成本提高。一方面专用的L2 Cache芯片成本高,另一方面两个不同功能的芯片只有放在一起联结后才能最后测试其性能的完整性。而当其中有一个有缺陷时,两个芯片都被报废。在以后的Pentium Pro产品中,又将L2 Cache从芯片中去掉。(六)Pentium MMX容量增大的L1和L2CachePentium MMX是能运行多媒体指令MMX的高能奔腾处理器。Pentium MMX具有改进的分支预测和增强型流水线技术,并将L1 Cache容量增加到32kB,L2 Cache为512kB。P
14、entium MMX的片内L1数据和指令的Cache,每个增到16kB,4路相联。较大的独立内部Cache、减少平均内存存取时间,同时提供对近期所用指令和数据的快速存取,性能因此得到提高。数据Cache支持采用回写方式更新内存。由于CacheL1容量的增大,使当时的应用程序运行速度提高了10左右。(七)Pentium设有双独立总线连接L2 CachePentium是Pentium Pro的改进型,具有MMX指令,使用动态执行技术,采用双独立总线结构。Pentium同样有2级Cache,L1为32kB(指令和数据Cache各16kB)是Pentium Pro的一倍。L2为512kB。Pentiu
15、m 与Pentium Pro在L2 Cache 的不同是由于制作成本原因。L2 Cache已不在内嵌芯片上,而是与CPU通过专用64位高速缓存总线相联,与其它元器件共同被组装在同一基板上,即“单边接触盒”上。双独立总线结构就是:L2高速缓存总线和处理器至主内存(Processortomainmemory)的系统总线。 Pentium处理器可以同时使用这两条总线,与单一总线结构的处理器相比,该处理器可以进出两倍多的数据,可允许 Pentium处理器的L2高速缓存比Pentium处理器的L2高速缓存要快1倍。随着 Pentium处理器主频的提高,L2高速缓存的速度也将加快。最后,流水线型系统总线可
16、允许同时并行传输,而不是单个顺序型传输。改进型的双重独立总线结构,可以产生超过与单总线结构三倍带宽的性能。另外,在Pentium中,采用了ECC技术,此技术应用到二级高速缓存中,大大提高了数据的完整性和可靠性。为开发低端市场,曾在 Pentium的基板上除去L2,牺牲一些性能,制造廉价CPU。这就是最初的Celeron处理器。以后的Celeron仍加有较小的片上L2 Cache,其大小为128kB。(八)Pentium的L2 Cache增大Pentium也是基于Pentium Pro结构为核心,在原有MMX多媒体指令的基础上,又增了70多条多媒体指令。它使用动态执行技术,采用双独立总线结构。P
17、entium具有32kB非锁定L1 Cache和512kB非锁定L2 Cache。L2可扩充到12MB,具有更合理的内存管理,可以有效地对大于L2缓存的数据块进行处理,使CPU、Cache和主存存取更趋合理,提高了系统整体性能。在执行视频回放和访问大型数据库时,高效率的高速缓存管理使P避免了对L2 Cache的不必要的存取。由于消除了缓冲失败,多媒体和其它对时间敏感的操作性能更高了。对于可缓存的内容,P通过预先读取期望的数据到高速缓存里来提高速度,这一特色提高了高速缓存的命中率,减少了存取时间。(九)Merced设有L0即将推出的第7代处理器Merced主频可达1GHz。很明显,对Cache的
18、要求更高了。为此,lntel本着“大力提高执行单元和缓存间数据交换速度”的思想,在芯片内开发新的Cache,并增加L1 Cache的容量,来平衡CPU和DRAM间的速度。为此,在Merced的片上最接近执行单元旁再设另一处Cache,称为L0缓存,是指令/数据分离型。由于L0Cache在物理位置上比L1离执行单元更近,布线距离的缩短,使它与执行单元间的数据交换速度比L1还快,可以进一步提高工作主频。同时,还要在芯片内部配置超过1MB的大容量L1 Cache。芯片内部Cache比外部Cache更易于提升与执行单元间的数据传送速度。内部Cache的加大,执行单元不易发生“等待”。现行的内部Cach
19、e容量仅为32kB128kB。内部Cache容量的增加会引起芯片面积增大,提高制造成本。但大部分公司认为,由于内部Cache容量增大而导致成本的上扬,可以用制造技术来弥补。(十)与Cache相配合的缓存控制指令为进一步发挥Cache的作用,改进内存性能并使之与CPU发展同步来维护系统平衡,一些制造CPU的厂家增加了控制缓存的指令。如Intel公司在Pentium处理器中新增加了70条3D及多媒体的SSE指令集。其中有很重要的一组指令是缓存控制指令。AMD公司在K62和K63中的3DNow多媒体指令中,也有从L1数据Cache中预取最新数据的数据预取指令(Prefetch)。Pentium处理器
20、的缓存控制指令,用于优化内存连续数据流。针对数据流的应用需要对以前的Cache运作方式进行了改进,减少了一些不必要的中间环节,节省了时间,增加了CPU数据总线的实际可用带宽,也提高了Cache的效率。有两类缓存控制指令。一类是数据据预存取(Prefetch)指令,能够增加从主存到缓存的数据流;另一类是内存流优化处理(Memory Streaming)指令,能够增加从处理器到主存的数据流。这两类指令都赋予了应用开发人员对缓存内容更大控制能力,使他们能够控制缓存操作以满足其应用的需求。数据预存取指令允许应用识别出所需的信息,并预先将其从主存中取出存入缓存。这样一来,处理器可以更快地获取信息,从而改
21、进应用性能。为了进一步削减内存延迟,内存访问还可以与计算机周期保持流水操作。例如,如果一个应用需要计算一些数值以供3D图形使用,当它在计算一个值的同时就可以预取下一个需要计算的数值。内存流优化处理指令允许应用越过缓存直接访问主存。通常情况下,处理器写出的数据都将暂时存储在缓存中以备处理器稍后使用。如果处理器不再使用它,数据最终将被移至主存。然而,对于多媒体应用来就,通常不再需要使用这些数据。因此,这时将数据尽快地移到主存中则显得至关重要。采用了Pentium处理器的内存流优化处理指令后,应用程序就能让数据搭乘“直达快车”,直接到达主存。当数据流直接到达主存时,处理器负责维护缓存的一致性。因为这
22、种方式避免了为数据流留出空间清空缓存的当前内容,从而也提高了缓存的利用率。总而言之,缓存控制指令改进了进出处理器的数据据流,使处理器保持其高速率运作。通过这些指令(同时还需要一些专为其设计以使其发挥优势的软件),商业用户可以在操作系统和图形设备驱动程序中感受其性能优势。(十一)Cache在PC中其它设备的应用Cache作为一种速度匹配技术,不仅用在提高CPU对内存的读写速度上,而且也用在CPU结构的其它部分和PC系统中。PC的显示系统中,由于3D应用的迅猛发展,大量的显示内存使用着高速缓存技术,如前台缓存、后台缓存、深度缓存和纹理缓存等。PC的磁盘系统中,为提高内存对磁盘(主要是硬盘)的读写速
23、度,就要建立磁盘高速缓存。因为DRAM内存的存取速度对CPU来说较慢,但对磁盘的存取速度却是很快的。这是因为磁盘存储系统包含有磁头的机械运动,而机械运动无法跟传送电信号的电子速度相比。此外,磁头中电与磁的信号转换也对速度有影响。这样,为了提高磁盘存取速度而采用Cache也就顺理成章了。硬盘Cache无需使用高速的SRAM,它只需在内存(DRAM)中划出一个区域,作为专用的磁盘缓冲区,采用一定的数据结构,即可实现磁盘存取的Cache技术。它的过程也是把即将访问的数据整块地拷贝到高速缓存区中,然后内存再到高速缓存中去逐个读取数据。由于数据在RAM空间内部传送要比在RAM与磁盘间传送快得多,系统由此
24、提高了存取速度。硬盘的Cache可以放在常规内存中。不过,为了不占用宝贵的用户程序空间,通常是把它设在扩展内存或扩充内存里。硬盘Cache是由人们共知的SMARTDRIVE.EXE文件自动建立的,用户只需在AUTOEXEC.BAT与CONFIG.SYS中加入相应的命令行就成了。在较慢速的其它外围设备和内存的数据交换中,在网络通讯中,都需要使用Cache技术。推而广之,凡是在传输速度有较大差异的设备之间,都可以利用Cache的速度匹配技术。PC中的Cache主要是为了解决高速CPU和低速DRAM内存间速度匹配的问题,是提高系统性能,降低系统成本而采用的一项技术。随着CPU和PC的发展,20年来,
25、现在的Cache已成为CPU和PC不可缺少的组成部分,是广大用户衡量系统性能优劣的一项重要指标。据预测,在21世纪初期,CPU主频加快发展的趋势,加上内存DRAM的存取时间也会提高,从系统的性价比考虑,Cache的配备仍然是重要的技术之一。二、 CACHE的工作过程1、 Cache的基本工作原理高速缓存Cache是位于CPU和主存储器之间规模较小、存取速度快捷的静态存储器。Cache除包含SRAM外,还有控制逻辑。若Cache在CPU芯片外,它的控制逻辑一般与主存的控制逻辑合成在一起,称为主存/Cache控制器;若Cache在CPU内,则由CPU提供它的控制逻辑。 CPU与Cache之间的数据
26、交换是以字为单位,而Cache与主存之间的数据交换是以块为单位。一个块由若干字组成,是定长的。当CPU读取主存中的一个字时,便发出此字的内存地址到Cache和主存。此时Cache控制逻辑依据地址判断此字当前是否在Cache中:若是,此字立即传送给CPU;若非,则用主存读周期把此字从主存读出到CPU,与此同时,把含有这个字的整个数据块从主存读出到Cache中。Cache原理图:假设Cache读出时间为50ns,主存读出时间为250ns。存储系统是模块化的,主存中每个8K模块和容量16字的Cache相联系。Cache分为4行,每行4个子(W)。分配给Cache的地址存放在一个相联存储器CAM中,当
27、CPU执行访存指令时,就把所要访问的字的地址送到CAM;如果W不在Cache中,则将W从主存传送到CPU。与此同时,把包含W的由前后相继的4个字所组成的一行数据送入Cache,它替换了原来Cache中最近最少使用(LRU)的一行数据。在这里,由始终管理Cache使用情况的硬件逻辑电路来实现LRU1替换算法。例: Cache及主存地址组成部分:主存有n条地址线,主存容量为2n,把主存划分为大小相等的2m块,每块有2n-m (=2r)个单元。把主存划分为大小相等的2c块,每块有2p-c (=2r)个单元。Cache的基本结构:Cache的工作过程:Cache的工作原理是基于程序访问的局部性。对大量
28、典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。指令地址的分布本来就是连续的。再加上循环程序段和子程序段要重复执行多次。因此,对这些地址的访问就自然地具有时间上集中分布的倾向。数据分市的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的局部性。根据程序的局部性原理,可以在主存和CPU通用寄存器之间设置一个高速的容量相对较小的存储器,用SRAM存放CPU常用的指令和数据,于是,CPU对存储器的访问主要
29、体现在对Cache的存取保持高速操作。可见,在存储系统中,小容量的高速SRAM作为高速存储器,而大容量的慢速DRAM用作内存,这样的系统以接近DRAM的价格提供了SRAM的性能。系统正是依据此原理,不断地将与当前指令集相关联的一个不太大团后继指令集从内存读到cache,然后再与CPU高速传送,从而达到速度匹配。CPU对存储器进行数据请求时,通常先访问cache。由于局部性原理不能保证所谓求的数据百分之百地在Cache中,这里便存在一个命中率。即CPU在任一时刻从Cache中可靠获取数据的几率。命中率越高,正确获取数据的可靠性就越大。Cache的存储容量比主存的容量小得多,但不能太小,太小会使命
30、中率太低;也没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显地增长。只要Cache的空间与主存空间在一定范围内保持适当比例的映射关系,Cache的命中率还是相当高的。一般规定Cache与内存的空间比为4:1000,即128kBCache可映射32MB内存;256kBCache可映射64MB内存。在这种情况下,命中率都在90以上。至于没有命中的数据,CPU只好直接从内存获取。获取的同时,也把它拷进Cache,以备下次访问。当要访问的字在Cache中时,若是读操作,则CPU可以直接从Cache中读取数据,不涉及主存。若是写操作,则需要改变Cache和主存中相
31、应两个单元的内容。这时,有两种处理办法,一种是Cache单元和主存单元中相应的单元同时被修改,称为“直通存储法”。另一种方法是只修改Cache单元的内容,同时用一个标志位作为标志,当有标志位的信息块从Cache中移去时再修改相应的主存单元,把修改信息一次写回主存,称为“写回法”。显然直通存储法比较简单,但对于需要多次修改的单元来说,可能导致不必要的主存重写工作。若数据不在Cache中,则CPU直接对主存进行操作。若是读操作,则把主存中相应的信息块送到Cache中,在送字块到Cache的同时就把所需的字送到CPU,不必等待整个块都装入Cache的这种方法称为“直通取数”。若是写操作,则将信息直接
32、写入内存。一般情况下,此时,主存中相应块并不调入缓存。因为一个写操作所涉及的往往是程序中某个数据区的一个单元,其访问的局部性并不明显。主存和Cache的存储区均划分成块(Block)。每块由多个信息字组成,两者之间以块为单位交换信息。Cache中能容纳多个信息块。Cache的内容是在读/写过程中逐步调入的,是主存中部分内容的副本。信息块调往Cache时的存放地址与它在主存时的地址可能不一致,两种地址之间有一定的对应关系,这种对应关系通常称为地址映像函数。将主存地址变换成Cache地址的地址变换过程,一般是通过用硬件组成的地址变换机构按照所采用的地址映像函数来自动完成的。程序局部性原理:是指程序
33、在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分。相应地,执行所访问的存储空间也局限于某个存储区域。局部性原理又表现为:时间局部性( temporal locality)和空间局部性(spatial locality)。 程序的调用返回行为时间局部性是指如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问。2、80486片内高速缓冲存储器(Cache)lntel 80386处理器只有集成在主板上的Cache(L2 Cache),无片内Cache,Intel80486不仅有L2 Cache,而且还在
34、CPU内部有一个8KB Cache(L1 Cache),以存放指令和数据。Pentium芯片内具有独立的8KB指令Cache和8KB数据Cache,同时支持更大容L2 Cache(256KB/512KB). 固 此有必要介绍 80486 片 内Cache 的组织和操作,这有助 于理解Pentium片内两个独立的指令Cache和数据Cache (1)80486 片内Cache结构 80486 片内 Cache 是一个 4路分组相联存储器,主存中给定但愿的数据能够存储在Cache的4个单元中的任何一个。4路相联方式是快速的直接映像Cache和高命中率全相联Cache的一种折衷,因而能快速查找并获得
35、高的命中率,Cache的结构如80486片内Cache分为3部分;数据块、标签块和有效、LRU块 数据块可容纳8KB数据和指令。数据块由512条Cache线构成,分为4路:0路1、路、2路和3路。每路包含128条Cache线。每条Cache线包含16个相邻的存储单元,并开始于能被16整出的地址。数据块可分为128组:0组、1组、2组、127组,由物理地址的地410位构成索引号进行选择。每组包含4条Cache线,每条Cache线包含16宇节.可由物理地址的低4位进行选择 标签块与数据块相对应,由512个标签构成,每个标签由21位构成。512个标签也可分为4路128组,标签包含了对应路、组的Cac
36、he线所存放数据的物理地址的高21位第11 -31位有效性/LRU块包含128项,每项对应于数据块中的1组,每项由7位构成,其低4位用来表示该组对应4条Cache线的有效性:为1表示有效:为0表示无效。其高3位是 LRU值。LRU是近期最少使用替换算法的英文缩写,80486在此采用伪LRU替换算法。当该组的4条Cache线均在有效条件下又有属于该组的新数据需要填入时,则按照这3位LRU值替换最近最少使用的项,32位物理地址可分为3个域,第410位为索引域。这7位构成组号,即索引域用于选择组,一个组有4条Cache线,选择Cache线由物理地址的高21位,即由标签域和4条Cache线的标签比较确
37、定。物理地址的低4位用来确定Cache线内的16个单元之一。(2)80486片Cache的工作模式 片内Cache可以通过软件设置3种模式;工作模式、部分无效模式(此时软件设置为无效模式,但Cache内部存在有效的Cache线,因而形成部分无效模式)和完全无效模式 (软件设置为无效模式,同时刷新Cache,使全部Cache线均无效),控制寄存器CR0的第30位CD和第29位NW的状态可确定Cache的工作模式CR0的内容可由CPL为0的代码控制。 CD位是Cache无效位:该位为1,Cache无效:为0。Cache工作,当该位为1时,访问Cache脱靶,不引起Cache线填充,而是直接访问主存
38、;访问Cache命中,则操作仍正常进行;若通过指令刷新Cache使所有Cache无效,则Cache就完全无效。NW位是不通写位;该位为0时,表示对片内Cache进行通写,即将数据写入Cache时,同时也写到主存;当NW位为1时(CD位也应为1),表示写Cache而不写主存CD位和NW位的状态确定了Cache的工作模式。使Cache完全作废的方法是设置CD位和NW位为1后,再用INVD或WBINVD指令刷新Cache,使全部Cache线无效。这两条指令刷新片内Cache,并产生一个特殊的总线周期,表示也应刷新外部Cache,这两条指令的区别仅在于WBINVD指令还产生一个特定的总线周期,表示外部
39、回写Cache时应将修改过的Cache数据写回主存。如果程序要修改代码,应该在写代码后立即通过JMP指令刷新CPU内的指令预取队列中去了。80486处理器中出现了Cache给计算机性能带来了飞跃,早期的80486相当于把80386和完成浮点运算的数学协处理器80387以及8kB的高速缓存集成到一起,这种片内高速缓存称为一级(L1)缓存,80486还支持主板上的二级(L2)缓存。内含8KB的高速缓存,同样是80486处理器的创举。缓存可以用于对频繁访问的指令和数据实现快速的混合存放,使整个芯片的性能得到大幅度提升。缓存概念由此诞生,并一直延续到今天成为影响CPU性能的重要因素。在Cache中的数
40、据是内存中的一小部分(我们可以理解为CPU的缓存是内存的高速镜像),但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从Cache中调用,从而加快读取速度。由此可见,在CPU中加入Cache是一种高效的解决方案,这样整个内存储器(Cache+内存)就变成了既有Cache的高速度,又有内存的大容量的存储系统了。在CPU里面内置了高速缓存可以提高CPU的运行效率,这也正是当时的486DLC比386DX-40快的原因。内置的L1高速缓存的容量和结构对CPU的性能影响较大,容量越大,性能也相对会提高不少,所以这也正是一些公司力争加大L1级高速缓冲存储器容量的原因。面对越来
41、越激烈的竞争,Intel于1993年推出了新一代高性能处理器Pentium(奔腾),之所以称其为Pentium而不是80586,是因为Intel想通过注册商标来防止别的厂商使用相同的名字,根本原因是Intel沿用多年的数字商标如80X86是不受法律保护的,竞争对手通常用这些商标偷换概念宣传以自己的产品。Pentium将一级缓存增加到了16kB,这种改进大大提升了CPU的性能,使得Pentium的速度比80486快数倍。总体来说缓存的规模扩大在Pentium时代,已经成为业界对于CPU性能提升的重要共识,而缓存的大小也逐渐成为判断CPU性能的重要标准。当然我们需要知道,直到Pentium时代,也
42、只有一级缓存是在CPU核心内部的,因为构成缓存的电路使用6T SRAM晶体管,SRAM的每一个比特位需要占用6个晶体管,存储密度较低,1MB容量的二级缓存就需要占用5000万个晶体管,这是一个相当惊人的数字。当时的Pentium集成度只达到了310万个晶体管。构成缓存的6T SRAM晶体管结构图实际上Pentium的一级缓存是由8KB数据cache和8KB指令cache构成的,这种缓存结构叫做双cache哈弗结构。CPU没有内部cache,被称作纯粹的冯诺依曼结构,又称作普林斯顿体系结构(Princeton architecture),这是传统的电子计算机结构。哈佛结构是指程序和数据空间独立的
43、体系结构,目的是为了减轻程序运行时的访存瓶颈。哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。 三、 CACHE的作用现在使用的绝大多数CPU都带有高速缓Cache,有的甚至集成了多极缓存;而我们选择主板时,板上的Cache数量也是一个重要的考虑因素。早期的486集成了48K的一级片内Cache,而现在的Pentium II至强处理器不仅集成了32K一级片内Cache,还将512K2M的二级Cache全速Cache集成进去。那么,Cache对于系统的作用是什么呢?为什么要集成越来越多的Cache呢?这是我对Cache的思考,在学习汇
44、编语言的同时,我也从图书馆中查找了一些有关为什么集成Cache的资料,从中分析归纳了一些:现在计算机系统中都采用高速 DRAM(动态RAM)芯片作为主存储器。早期的 CPU 速度比较慢,CPU与内存间的数据交换过程中,CPU处于等待状态的情况很多。以早期的8MHz的286为例,其时钟周期为125ns,而DRAM的存取时间一般为60100ns。因此CPU与主存交换数据无须等待,这种情况称为零等待状态。所以CPU与内存直接打交道是完全不影响速度的。可是近年来CPU的时钟频率的发展速度远远超过了DRAM读写速度的进展。在短短几年内,CPU的时钟周期从100ns加速到几个ns,而DRAM经历了FPM,EDO,SDRAM几个发展阶段,速度只不过从几十ns提高到10ns左右,DRAM和CPU之间的速度差,使得CPU在存储器读写总线周期中必须插入等待周期;由于CPU与内存的频繁交换数据,这极大地影响了整个系统的性能。这使得存储器的存取速度已成为整个系统的瓶颈。当然,另一种方案是采用高速的静态 RAM(SRAM)作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度房产交易税费代缴服务合同3篇
- 非标储罐制作安装施工组织方案
- 二零二五年度厂房及土地使用权赠与合同3篇
- 2025年度股权收购与公司股权结构调整协议3篇
- 2024年餐饮业务技术升级合作合同版
- 家庭用电安全的意识培养与行为习惯养成
- 小学教育中语文学科的语言教学策略
- 工厂作业安全培训
- 二零二五年度影视作品衍生品粉丝增长合同3篇
- 2025年度P2P出借资金托管与安全保障服务合同2篇
- 2025年四川长宁县城投公司招聘笔试参考题库含答案解析
- 2024年06月上海广发银行上海分行社会招考(622)笔试历年参考题库附带答案详解
- TSG 51-2023 起重机械安全技术规程 含2024年第1号修改单
- 计算机科学导论
- 浙江省杭州市钱塘区2023-2024学年四年级上学期英语期末试卷
- 《工程勘察设计收费标准》(2002年修订本)
- 2024年一级消防工程师《消防安全技术综合能力》考试真题及答案解析
- 2024-2025学年六上科学期末综合检测卷(含答案)
- 安徽省森林抚育技术导则
- 2023七年级英语下册 Unit 3 How do you get to school Section A 第1课时(1a-2e)教案 (新版)人教新目标版
- 泌尿科主任述职报告
评论
0/150
提交评论