1、Computer Architecture计算机学院w Cache性能评价性能评价w 提高提高Cache性能性能本章内容 Cache存储系统Computer Architecture计算机学院本章内容 Cache存储系统Cache性能w CPU执行时间执行时间w 平均存储器访问时间(平均存储器访问时间(AMAT)Computer Architecture计算机学院本章内容 Cache存储系统Cache性能Cache性能评价缺失代价缺失率指令存储器访问次数指令数缺失代价指令缺失次数指令数缺失代价缺失次数存储器停顿周期数3 之 1Computer Architecture计算机学院本章内容 Cac
2、he存储系统Cache性能Cache性能评价假定有一台计算机,当所有存储器访问操作都能在假定有一台计算机,当所有存储器访问操作都能在Cache中命中时,中命中时,CPI为为1.0;数据访问只有;数据访问只有load和和store指令,这些指令占全部指令的指令,这些指令占全部指令的50%;缺失代价;缺失代价为为25个时钟周期,缺失率为个时钟周期,缺失率为2%。问当所有指令都在。问当所有指令都在Cache中命中时,计算机性能能提高多少?中命中时,计算机性能能提高多少?Cache始终命中时的计算机性能为:始终命中时的计算机性能为:时钟周期指令数时钟周期指令数时钟周期存储器停顿周期数时钟周期数执行时间
3、理想0.1)0CPI()CPU(CPU3 之 2Computer Architecture计算机学院本章内容 Cache存储系统Cache性能Cache性能评价时钟周期指令数时钟周期指令数指令数时钟周期存储器停顿周期数时钟周期数执行时间实际75.1)2502.0)5.01(CPI()CPU(CPU实际实际Cache的计算机性能为:的计算机性能为:两者的性能比为:两者的性能比为:不发生不发生Cache缺失时计算机性能是原来的缺失时计算机性能是原来的1.75倍倍75.10.175.1CPUCPU时钟周期指令数时钟周期指令数执行时间执行时间理想实际3 之 3Computer Architecture
4、计算机学院本章内容 Cache存储系统Cache性能Cache性能评价3 之 1Computer Architecture计算机学院本章内容 Cache存储系统Cache性能Cache性能评价一个由一个由8KB的的I-Cache和和8KB的的D-Cache所构成的分所构成的分立立Cache()与一个)与一个16KB的统一的统一Cache哪哪一个具有更低的缺失率一个具有更低的缺失率?假设命中所需的开销为假设命中所需的开销为1个个时钟周期,不命中的开销为时钟周期,不命中的开销为50个时钟周期,统一个时钟周期,统一Cache的的load或或store命中需花费命中需花费1个时钟周期的额外个时钟周期的
5、额外开销。开销。75%的存储器存取是指令访问。的存储器存取是指令访问。Cache大小大小I-Cache缺失率缺失率 D-Cache缺失率缺失率统一统一Cache缺失率缺失率4KB1.78%15.94%7.24%8KB1.10%10.19%4.57%16KB0.64%6.47%2.87%32KB0.39%4.82%1.99%3 之 2Computer Architecture计算机学院分立分立Cache的整体缺失率为:的整体缺失率为:由表中可知,由表中可知,16KB的统一的统一Cache的缺失率为的缺失率为2.87%。因此,统一因此,统一Cache结构具有较低的缺失率。结构具有较低的缺失率。尽管
6、分立尽管分立Cache具有较高的缺失率,但其具有较高的缺失率,但其AMAT与统与统一一Cache的的AMAT是基本相同的,可见哈佛结构有优势。是基本相同的,可见哈佛结构有优势。大多数现代处理器都采用分立大多数现代处理器都采用分立Cache技术。技术。本章内容 Cache存储系统Cache性能Cache性能评价3.37%10.19%)(25%1.10%)(75%2.686 50)10.19%(1 25%50)1.10%(1 75%AMATsplit2.685 50)2.87%1 (1 25%50)2.87%(1 75%AMATunified3 之 3Computer Architecture计算
7、机学院本章内容 Cache存储系统Cache性能 可见主要途径有:可见主要途径有:w 降低缺失代价降低缺失代价w 降低缺失率降低缺失率w 通过并行性降低缺失代价通过并行性降低缺失代价/缺失率缺失率w 降低降低Cache命中时间命中时间 Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能w 多级多级Cachew 关键字优先和提前重启动关键字优先和提前重启动w 给出读缺失对写的优先级给出读缺失对写的优先级w 合并写缓冲区合并写缓冲区w 牺牲者牺牲者CacheComputer Architecture计算机学院本章内容 Cache存储系统
8、Cache性能提高Cache性能降低缺失代价w 基本思想基本思想w 性能分析性能分析w 设计考虑设计考虑Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失代价多级Cache 通过在原始通过在原始Cache和存储器之间增加和存储器之间增加另一级另一级Cache,第一级第一级Cache可以小到足以可以小到足以跟上飞快的跟上飞快的CPU,而第二级而第二级Cache能够大能够大到足以捕捉到对主存进行的大多数访问,因到足以捕捉到对主存进行的大多数访问,因而可以减少有效缺失代价。而可以减少有效缺失代价。Computer Architec
9、ture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失代价多级Cache 本级本级Cache的缺失数除以对本级的缺失数除以对本级Cache的存储器访问总的存储器访问总数。例如:第一级数。例如:第一级Cache的局部缺失率为的局部缺失率为,第二第二级级Cache的局部缺失率为的局部缺失率为 本级本级Cache的缺失数除以的缺失数除以CPU产生的存储器访问总数。产生的存储器访问总数。例如:第一级例如:第一级Cache的全局缺失率为的全局缺失率为,第二级第二级Cache的全局缺失率为的全局缺失率为。Computer Architecture计算机学院本章内容 Cach
10、e存储系统Cache性能提高Cache性能降低缺失代价多级Cache 采用大容量设计。因为第一级采用大容量设计。因为第一级Cache中的所有中的所有信息都可能会出现在第二级信息都可能会出现在第二级Cache中,所以第二中,所以第二级级Cache应该比第一级应该比第一级Cache大得多。如果第二大得多。如果第二级级Cache只是稍微大一点,则局部缺失率会很高。只是稍微大一点,则局部缺失率会很高。采用组相联映射比采用直接映射性能要好。采用组相联映射比采用直接映射性能要好。2 之 1Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺
11、失代价多级Cache2 之 2w 是否第一级是否第一级Cache中所有数据都包含在第二级中所有数据都包含在第二级Cache中?中?有两种方案:有两种方案:多级包含多级包含 L1中的数据通常都出现在中的数据通常都出现在L2中。这是通常做法。中。这是通常做法。多级排除多级排除 L1中的数据从不会出现在中的数据从不会出现在L2中。当中。当L2 Cache容量容量略大于略大于L1 Cache时可以采用此法,不浪费时可以采用此法,不浪费L2 Cache的空间。的空间。Computer Architecture计算机学院 因为因为CPU在同一时刻只需要块中的一个字,所以本技术在同一时刻只需要块中的一个字,
12、所以本技术不必等到全部块装入就可以将所需字送出,然后重新启动不必等到全部块装入就可以将所需字送出,然后重新启动CPU。首先向存储器请求缺失首先向存储器请求缺失的字,一旦它到了就将它的字,一旦它到了就将它发送到发送到CPU中;让中;让CPU继继续执行,同时装入块中的续执行,同时装入块中的其他字。其他字。本章内容 Cache存储系统Cache性能提高Cache性能降低缺失代价 按正常次序获取字,只按正常次序获取字,只要被请求的字一到达就将要被请求的字一到达就将它发送到它发送到CPU中,让中,让CPU继续执行。继续执行。2 之 1Computer Architecture计算机学院 本技术的收益取决
13、于块的大小(块越本技术的收益取决于块的大小(块越大,收益越大)和对块中未装入部分的访问大,收益越大)和对块中未装入部分的访问可能性。可能性。本章内容 Cache存储系统Cache性能提高Cache性能降低缺失代价2 之 2Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失代价 对于一个写直达的对于一个写直达的Cache,需要设置容量适中的写缓冲需要设置容量适中的写缓冲区(见后图)。然而写缓冲区使得存储器访问变的复杂,区(见后图)。然而写缓冲区使得存储器访问变的复杂,因为其中可能包含读缺失时所需要的更新数据。因为其中可能包含读
14、缺失时所需要的更新数据。SW R3,512(R0);M512R3 (Cache Index 0)LW R1,1024(R0);R1 M1024 (Cache Index 0)LW R2,512(R0);R2 M512 (Cache Index 0)3 之 1Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失代价writebufferCPUin out DRAM (or lower mem)3 之 2Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失代价 最
15、简单的解决方法:读缺失等待,直到写缓冲区为空为最简单的解决方法:读缺失等待,直到写缓冲区为空为止;但该方法会增加读缺失代价。另一种解决方法:在读止;但该方法会增加读缺失代价。另一种解决方法:在读缺失时查看写缓冲区中的内容,如果没有冲突而且存储器缺失时查看写缓冲区中的内容,如果没有冲突而且存储器系统可以访问,就让读缺失继续;即:系统可以访问,就让读缺失继续;即:。3 之 3在写回法的在写回法的Cache中,在中,在替换块时也要使用一个简替换块时也要使用一个简单的写缓冲,同样处理。单的写缓冲,同样处理。Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提
16、高Cache性能降低缺失代价 在写缓冲在写缓冲区中,将多区中,将多个连续的数个连续的数据组合起来,据组合起来,加快存储器加快存储器的写速度。的写速度。Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失代价 在在Cache和它的替换路径之间增加一个小的、全相联的和它的替换路径之间增加一个小的、全相联的Cache(牺牲者牺牲者Cache),),这个牺牲者这个牺牲者Cache中只包含中只包含Cache中因为缺失而被替换出的块(牺牲者),然后在缺中因为缺失而被替换出的块(牺牲者),然后在缺失发生时,在要访问下层存储器之前,先检查牺牲
17、者失发生时,在要访问下层存储器之前,先检查牺牲者Cache,看其中是否包含有期望的数据,如果有,则牺牲看其中是否包含有期望的数据,如果有,则牺牲块与块与Cache块互换(见后图)块互换(见后图)。依赖于特定的程序,一个包含依赖于特定的程序,一个包含4个存储字的牺牲者个存储字的牺牲者Cache能减少能减少20%90%的冲突缺失。的冲突缺失。2 之 1Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失代价2 之 2Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能w
18、导致缺失的原因导致缺失的原因w 降低缺失率的技术降低缺失率的技术增加块容量增加块容量增加增加Cache容量容量增加相联度增加相联度路预测和伪相联路预测和伪相联Cache编译优化编译优化Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率w 对一个块的第一次访问一定不在对一个块的第一次访问一定不在Cache中,所以该块必中,所以该块必须被调入到须被调入到Cache中(这也称为:冷启动缺失、首次访问中(这也称为:冷启动缺失、首次访问缺失等)。缺失等)。w 如果如果Cache容纳不了一个程序持续执行所需要的所有块,容纳不了一个程序
19、持续执行所需要的所有块,将会发生容量缺失,某些块将被放弃,随后再被调入。将会发生容量缺失,某些块将被放弃,随后再被调入。如果采用组相联如果采用组相联/直接相联,则可能有多个块映射到同一直接相联,则可能有多个块映射到同一块中,发生冲突缺失。块中,发生冲突缺失。4 之 1Computer Architecture计算机学院SPEC92;32B blocks;LRU;DECstation 5000;本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率4 之 2Miss Rate per Type0.020.040.060.080.10.120.14Cache Size(KB)012
20、48163264128Compulsory Capacity 4-way2-way1-way8-wayConflictComputer Architecture计算机学院 一个容量为一个容量为N的的直接映射直接映射Cache同容同容量为量为N/2的的2-路组相路组相联联Cache有着大致相有着大致相同的总缺失率。同的总缺失率。本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率4 之 3Cache Size(KB)Cache Size(KB)Miss Rate per TypeMiss Rate per Type0 00.020.020.040.040.060.060.080
21、.080.10.10.120.120.140.141 12 24 48 81616323264641281281-way1-way2-way2-way4-way4-way8-way8-wayCapacity Capacity Compulsory Compulsory ConflictComputer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率4 之 4C Ca ac ch he e S Si iz ze e (K KB B)M Mi is ss s R Ra at te e p pe er r T Ty yp pe e0 0%2
22、20 0%4 40 0%6 60 0%8 80 0%1 10 00 0%1 12 24 48 81 16 63 32 26 64 41 12 28 81 1-w wa ay y2 2-w wa ay y4 4-w wa ay y8 8-w wa ay yC Ca ap pa ac ci it ty y C Co om mp pu ul ls so or ry y ConflictComputer Architecture计算机学院五种不同容量五种不同容量Cache的缺失率与块容量的关系的缺失率与块容量的关系本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率0.49%1.15
23、%3.29%9.51%22.01%2560.49%1.02%2.77%7.78%16.64%1280.51%1.06%2.64%7.00%13.76%640.70%1.35%2.87%7.24%13.34%321.09%2.04%3.94%8.57%15.05%16256641641Cache size(KB)Block size(B)5 之 1Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率1K4K16K64K256KCache SizeBlock Size(bytes)Miss Rate 0%5%10%15%20%2
24、5%1632641282565 之 2Computer Architecture计算机学院 增加块容量会降低强制缺失率,这是利用了空间局部性增加块容量会降低强制缺失率,这是利用了空间局部性原理。但因为它减少了原理。但因为它减少了Cache中的块数,加重了冲突缺失,中的块数,加重了冲突缺失,如果如果Cache容量较小时,甚至会有容量缺失。容量较小时,甚至会有容量缺失。本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率块容量应为多大块容量应为多大AMAT最小?最小?5 之 3Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cac
25、he性能降低缺失率 假设命中时间为假设命中时间为1个时钟周期,缺失时系统开销为个时钟周期,缺失时系统开销为80个时钟周期,以后每个时钟周期,以后每2个时钟周期传送个时钟周期传送16B,缺失率参见缺失率参见前表。结果显示:前表。结果显示:。5 之 4Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率5 之 5 :低延迟和高带宽存储器使得块容:低延迟和高带宽存储器使得块容量要大些,因为这样在每次缺失时量要大些,因为这样在每次缺失时Cache可可以获得更多的字节,而缺失代价只有少量的以获得更多的字节,而缺失代价只有少量的增加;相
26、反,高延迟和低带宽存储器希望块增加;相反,高延迟和低带宽存储器希望块容量要小些,因为较大的块并不能节省多少容量要小些,因为较大的块并不能节省多少时间。时间。Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率 增加增加Cache容量可以降低容量缺失,但容量可以降低容量缺失,但增加了命中时间和成本。这种技术在片外增加了命中时间和成本。这种技术在片外Cache中很通用。中很通用。Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率Miss Rate per T
27、ype0.020.040.060.080.10.120.14Cache Size(KB)01248163264128Compulsory Capacity 4-way2-way1-way8-wayConflict3 之 1Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率3 之 2Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率实验结果显示:实验结果显示:。3 之 3Computer Architecture计算机学院本章内容 Cache存储系统Ca
28、che性能提高Cache性能降低缺失率 在在Cache中设置一些特殊位来预测下次中设置一些特殊位来预测下次Cache访问中可访问中可能会在组中用到的路能会在组中用到的路/块。块。在降低冲突缺失的同时,保持直接映象在降低冲突缺失的同时,保持直接映象Cache的命中速的命中速度。度。Alpha 21264在在2-路组相联指令路组相联指令Cache使用路预测,使用路预测,SPEC95仿真结果显示:预测正确率超过仿真结果显示:预测正确率超过85%。3 之 1Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率 在命中时,伪相联在命中
29、时,伪相联Cache访问过程同直接映象访问过程同直接映象Cache(););但当缺失发生时,在访问下层存储器之前但当缺失发生时,在访问下层存储器之前(),通过检查另外一个),通过检查另外一个Cache块来看看是否在块来看看是否在那里命中(那里命中()。)。3 之 2Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率 伪相联伪相联Cache的的AMAT短,但变化的命中时间会使流水短,但变化的命中时间会使流水线线CPU设计复杂度增加,因此较适合用于离设计复杂度增加,因此较适合用于离CPU较远的较远的Cache中,例如:中,例如
30、:L2 Caches。这两个技术都综合了这两个技术都综合了1-路组相联(直接相联)的命路组相联(直接相联)的命中时间短和中时间短和2-路组相联的冲路组相联的冲突低。突低。3 之 3Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率 在不影响正确性的前提下重新安排程序在不影响正确性的前提下重新安排程序代码,可能会降低冲突缺失,从而降低指令代码,可能会降低冲突缺失,从而降低指令缺失率。例如:缺失率。例如:McFarling1989在容量在容量2KB、块容量块容量4B的直接相联的直接相联Cache中使用中使用本方法将本方法将Ca
31、che的缺失率降低的缺失率降低50%,若,若Cache容量为容量为8KB,则缺失率降低则缺失率降低75%。Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率 数据比指令代码在位置上的限制甚至更数据比指令代码在位置上的限制甚至更少,这些变换的目标是尽力提高数据的空间少,这些变换的目标是尽力提高数据的空间和时间局部性。和时间局部性。下面通过下面通过3个例子进行介绍:个例子进行介绍:循环交换循环交换循环融合循环融合分分 块块Computer Architecture计算机学院 一些程序带有嵌套一些程序带有嵌套循环,它们访问存储循
32、环,它们访问存储器中的数据是非顺序器中的数据是非顺序的,简单的交换嵌套的,简单的交换嵌套循环可以使得代码按循环可以使得代码按照存储顺序来访问数照存储顺序来访问数据。据。for(k=0;k 100;k=k+1)xij=2*xij;for(k=0;k Cache存储系统Cache性能提高Cache性能降低缺失率编译优化 通过提高空间局部通过提高空间局部性来减少缺失。性来减少缺失。Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率编译优化 一些程序有分立的代码段,这些代码按一些程序有分立的代码段,这些代码按照相同的循环访问相同的
33、数组,对相同的数照相同的循环访问相同的数组,对相同的数据进行不同的计算。通过据进行不同的计算。通过“融合融合”这些代码这些代码到一个循环中,使得装入到到一个循环中,使得装入到Cache中的数据中的数据在被替换出来之前可以被重复地利用。在被替换出来之前可以被重复地利用。2 之 1Computer Architecture计算机学院for(i=0;i N;i=i+1)for(j=0;j N;j=j+1)=1/bij*;for(i=0;i N;i=i+1)for(j=0;j N;j=j+1)dij=+;for(i=0;i N;i=i+1)for(j=0;j Cache存储系统Cache性能提高Cac
34、he性能降低缺失率编译优化通过提高时间局部性来减少缺失。通过提高时间局部性来减少缺失。2 之 2Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率编译优化 分块不是对矩阵中的整行分块不是对矩阵中的整行/列进行操作,列进行操作,而是对子矩阵或矩阵块进行操作,目标是在而是对子矩阵或矩阵块进行操作,目标是在调入到调入到Cache中的块被替换之前最大限度地中的块被替换之前最大限度地利用它。利用它。3 之 1Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能降低缺失率编译
35、优化for(i=0;i N;i=i+1)for(j=0;j N;j=j+1)r=0;for(k=0;k N;k=k+1)r=r+yik*zkj;xij=r;XijYikZkjNeweraccessesOlderaccesses i i循环一次,要读取矩阵循环一次,要读取矩阵z z的所有的所有N NN N个元素,对矩阵个元素,对矩阵y y一行中的一行中的N N个个元素进行重复访问,对矩阵元素进行重复访问,对矩阵x x一行一行中的中的N N个元素进行写操作。个元素进行写操作。3 之 2Computer Architecture计算机学院for(jj=0;jj N;jj=jj+B)for(kk=0;
36、kk N;kk=kk+B)for(i=0;i N;i=i+1)for(j=jj;j min(jj+B-1,N);j=j+1)r=0;for(k=kk;k Cache存储系统Cache性能提高Cache性能降低缺失率编译优化3 之 3Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能w 用非阻塞用非阻塞Cache减少减少Cache缺失暂停缺失暂停w 指令和数据硬件预取指令和数据硬件预取w 编译控制的预取编译控制的预取Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能通过并行
37、性降低缺失代价/缺失率 在处理器访问指令和数据之前就将它们预在处理器访问指令和数据之前就将它们预取到取到Cache或预取到可以比主存访问速度更或预取到可以比主存访问速度更快的外部缓冲区中。快的外部缓冲区中。预取技术依赖于存储器带宽,编译器可预取技术依赖于存储器带宽,编译器可以帮助减少不必要的预取。以帮助减少不必要的预取。2 之 1Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能通过并行性降低缺失代价/缺失率 AXP21064AXP21064微处理器在缺失时取两个块:被请求的块和微处理器在缺失时取两个块:被请求的块和其后紧挨着的块。
38、被请求的块装入到指令其后紧挨着的块。被请求的块装入到指令CacheCache中,而预中,而预取的块被装入到指令流缓冲区中。如果被请求块在指令流取的块被装入到指令流缓冲区中。如果被请求块在指令流缓冲区中找到,则原缓冲区中找到,则原CacheCache请求被取消,块被从流缓冲区请求被取消,块被从流缓冲区中读入,然后下一个预取请求被发出。中读入,然后下一个预取请求被发出。Jouppi1990研究发现:对于容量为研究发现:对于容量为4KB、块容量为块容量为16B的直接映象指令的直接映象指令Cache来说,单个的指令流缓冲区可来说,单个的指令流缓冲区可以捕捉到以捕捉到15%25%的缺失;如指令流缓冲区中
39、可保存的缺失;如指令流缓冲区中可保存4个块,命中率提高到大约个块,命中率提高到大约50%,保存,保存16个块提高到个块提高到72%。2 之 2Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能通过并行性降低缺失代价/缺失率 利用编译器来插入预取指令,提前发出数据请利用编译器来插入预取指令,提前发出数据请求,可以将数据预取到寄存器(求,可以将数据预取到寄存器(,例,例如:如:HP PA-RISC)或将数据预取到或将数据预取到Cache(,例如:,例如:MIPS IV、PowerPC、SPARC v.9)。)。循环是重要的目标;而且生成
40、预取指令需要时循环是重要的目标;而且生成预取指令需要时间,必须注意这些开销不能超过收益。间,必须注意这些开销不能超过收益。Computer Architecture计算机学院本章内容 Cache存储系统Cache性能提高Cache性能w 小而简单的小而简单的Cache w 在在Cache索引过程中避免地址变换索引过程中避免地址变换 w 流水流水Cache存取存取 w 跟踪跟踪Cache Computer Architecture计算机学院本章内容 存储系统的组织方式:存储系统的组织方式:w 两个存储系统的组织方式两个存储系统的组织方式w 一个存储系统的组织方式一个存储系统的组织方式w 全全Ca
41、che存储系统存储系统Computer Architecture计算机学院本章内容三级存储系统 有有“Cache-主存主存”和和“主存主存-磁盘磁盘”两个独立两个独立的存储系统,这种结构也称为的存储系统,这种结构也称为。目前的大部分处理机均采用这种两级存。目前的大部分处理机均采用这种两级存储系统。储系统。CPU虚拟虚拟地址地址MMUCache主存主存储器储器物理物理地址地址数据或指令数据或指令物理地址物理地址CPU虚拟虚拟地址地址MMUCache主存主存储器储器物理物理地址地址数据或指令数据或指令物理地址物理地址存储管理部件存储管理部件Computer Architecture计算机学院本章内
42、容三级存储系统 将将Cache、主存和磁盘组织在一起构成一个主存和磁盘组织在一起构成一个“Cache-主存主存-磁盘磁盘”存储系统,这种结构也称为存储系统,这种结构也称为。如。如Intel公司的公司的i860等等处理机采用这种组织方式。处理机采用这种组织方式。CPU虚拟地址虚拟地址MMUCache主存主存储器储器数据或指令数据或指令物理物理地址地址数据数据或指令或指令Computer Architecture计算机学院本章内容三级存储系统 没有主存储器,只用没有主存储器,只用Cache和磁盘构和磁盘构成成“Cache磁盘磁盘”存储系统。例如:多处存储系统。例如:多处理机中的全理机中的全Cache存储系统。存储系统。Computer Architecture计算机学院本章内容