《计算机系统结构教程课后答案.pdf》由会员分享,可在线阅读,更多相关《计算机系统结构教程课后答案.pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-1.71.7*台主频为台主频为 400MHz400MHz 的计算机执行标准测试程序,的计算机执行标准测试程序,程序中指令类型、程序中指令类型、执行数量和执行数量和平均时钟周期数如下:平均时钟周期数如下:指令类型指令类型整数整数指令执行数量指令执行数量平均时钟周期数平均时钟周期数45000450001 175000750002 24 42 2数据传送数据传送浮点浮点分支分支8000800015001500求该计算机的有效求该计算机的有效 CPICPI、MIPSMIPS 和程序执行时间。和程序执行时间。解:解:1 1CPICPI(45000(450001 175000750002 2800080
2、004 4150015002)/1295002)/1295001.7761.7762 2MIPSMIPS 速率速率f/CPIf/CPI 400/1.776400/1.776 225.225MIPS225.225MIPS3 3程序执行时间程序执行时间=(45000=(450001 175000750002 2800080004 41 15005002)2)400=575s400=575s1.91.9 将计算机系统中将计算机系统中*一功能的处理速度加快一功能的处理速度加快 1010 倍,但该功能的处理时间仅为整倍,但该功能的处理时间仅为整个系统运行时间的个系统运行时间的 40%40%,则采用此增强
3、功能方法后,则采用此增强功能方法后,能使整个系统的性能提高多能使整个系统的性能提高多少少.解:由题可知:解:由题可知:可改良比例可改良比例 Fe=40%=0.4Fe=40%=0.4部件加速比部件加速比 Se=10Se=10根据根据SnT0111.5625Fe(10.4)0.4/10Tn1 FeSe1.101.10 计算机系统中有三个部件可以改良,这三个部件的部件加速比为:计算机系统中有三个部件可以改良,这三个部件的部件加速比为:部件加速比部件加速比 1=301=30;部件加速比部件加速比 2=202=20;部件加速比部件加速比 3=103=10.z.-1 1如果部件如果部件 1 1 和部件和部
4、件 2 2 的可改良比例均为的可改良比例均为 30%30%,则当部件,则当部件 3 3 的可改良比例的可改良比例为多少时,系统加速比才可以到达为多少时,系统加速比才可以到达 10.10.2 2如果三个部件的可改良比例分别为如果三个部件的可改良比例分别为 30%30%、30%30%和和 20%20%,三个部件同时改,三个部件同时改良,则系统中不可加速局部的执行时间在总执行时间中占的比例是多少良,则系统中不可加速局部的执行时间在总执行时间中占的比例是多少.解:解:1 1在多个部件可改良情况下,在多个部件可改良情况下,AmdahlAmdahl 定理的扩展:定理的扩展:S1S13030,S2S2202
5、0,S3S31010,SnSn1010,F1F10.30.3,F2F20.30.3,得:,得:得得 F3F30.360.36,即部件,即部件 3 3 的可改良比例为的可改良比例为 36%36%。2 2设系统改良前的执行时间为设系统改良前的执行时间为T T,则,则 3 3 个部件改良前的执行时间为:个部件改良前的执行时间为:0.3+0.3+0.20.3+0.3+0.2T=0.8TT=0.8T,不可改良局部的执行时间为不可改良局部的执行时间为1Fe1Fe2Fe3=0.2T=0.2T。3 3 个部件改良后的加速比分别为个部件改良后的加速比分别为 S1S13030,S2S22020,S3S31010,
6、因此,因此 3 3 个部件改良后个部件改良后的执行时间为:的执行时间为:改良后整个系统的执行时间为:改良后整个系统的执行时间为:Tn=Tn=1 Fe1 Fe2 Fe3=0.045T+0.2T=0.245T=0.045T+0.2T=0.245T则系统中不可改良局部的执行时间在总执行时间中占的比例是:则系统中不可改良局部的执行时间在总执行时间中占的比例是:0.2/0.245=81.6%0.2/0.245=81.6%1.111.11 假设浮点数指令假设浮点数指令 FPFP 指令的比例为指令的比例为 30%30%,其中浮点数平方根其中浮点数平方根 FPSQRFPSQR 占全部指占全部指令的比例为令的比
7、例为 4%4%,FPFP 操作的操作的 CPICPI 为为 5 5,FPSQRFPSQR 操作的操作的 CPICPI 为为 2020,其他指令的平,其他指令的平均均 CPICPI 为为 1.251.25。解:解:改良前:改良前:CPI=5CPI=5 30%+1.2530%+1.25 (1-30%)=2.375(1-30%)=2.375设除设除 FPSQRFPSQR 外其余指令的平均外其余指令的平均 CPICPI 为为*则则 2.375=202.375=20 4%+(1-4%)*4%+(1-4%)*,解出,解出*=1.640625*=1.640625Fe1Fe2Fe3Se1Se2Se3.z.-方
8、案方案 1 1:方案方案 2 2:2.112.11解:解:CPI1=3CPI1=3 4%+1.6406254%+1.640625 (1-4%)=1.695(1-4%)=1.695CPI2=3CPI2=3 30%+1.2530%+1.25 (1-30%)=1.775(1-30%)=1.775指令指令ADDADDCLACLASUBSUB1 1频度频度 p pi i0.430.43操作码使用哈夫曼编码操作码使用哈夫曼编码操作码长度操作码长度l li i0 01 11 11 10.570.570 010101 1 01 1 01 1 1 0 01 1 1 0 00 01 1 1 0 11 1 1 0
9、11 10 00 00 01 12 23 35 55 55 5JMPJMP0.070.070.220.220.350.351 10.220.220.130.13JMPJMP1 10.090.090.070.070.060.060 0JOMJOM0.040.041 1STOSTO0.020.021 1SHRSHR0.010.010.050.05CILCIL0.020.021 1 1 1 01 1 1 1 00 0STOSTO0.050.05JOMJOM0.130.13CILCIL0.010.01SHRSHRSTPSTP0 0STPSTP0.020.020.010.010.010.011 1 1
10、1 1 01 1 1 1 1 00.060.061 1 1 1 1 1 01 1 1 1 1 1 01 1 1 1 1 1 11 1 1 1 1 1 16 60.130.137 77 7SUBSUBCLACLA0.220.22ADDADD043043L=L=Pli i=0.43*1+0.22*2+0.13*3+0.07*5+0.06*5+0.05*5+0.02*6+0.01*7+0.01*7=0.43*1+0.22*2+0.13*3+0.07*5+0.06*5+0.05*5+0.02*6+0.01*7+0.01*7i19=2.42=2.422.122.12解:解:二地址指令的构造是二地址指令的
11、构造是 4 4 位操作码位操作码 OPOP,6 6 位地址码位地址码 A1A1,6 6 位地址码位地址码A2A2。一地址指令的构造是一地址指令的构造是 1010 位操作码位操作码 OPOP,6 6 位地址码位地址码 A A。.z.-二地址指令,最多共二地址指令,最多共 1616 条二地址指令。条二地址指令。每少一条二地址指令,则多每少一条二地址指令,则多 2 26 6条一地址指令,条一地址指令,所以一地址指令最多有所以一地址指令最多有16-A16-A*2*26 6条条3.53.5 在一台单流水线多操作部件的处理机上执行下面的程序,在一台单流水线多操作部件的处理机上执行下面的程序,每条指令的取指
12、令、每条指令的取指令、指令译码需要一个时钟周期,指令译码需要一个时钟周期,MOVEMOVE、ADDADD 和和 MULMUL 操作分别需要操作分别需要 2 2 个、个、3 3 个和个和4 4 个时钟周期,每个操作都在第一个时钟周期从通用存放器中读操作数,在最后个时钟周期,每个操作都在第一个时钟周期从通用存放器中读操作数,在最后一个时钟周期把运算结果写到通用存放器中。一个时钟周期把运算结果写到通用存放器中。k k:MOVEMOVER1R1,R0R0;R1R1(R0)(R0)k+1k+1:MULMULR0R0,R2R2,R1R1;R0R0(R2)(R2)(R1)(R1)k+2k+2:ADDADDR
13、0R0,R2R2,R3R3;R0R0(R2)+(R3)(R2)+(R3)画出指令执行过程的流水线时空图,画出指令执行过程的流水线时空图,并计算完成这并计算完成这 3 3 条指令共需要多少个时条指令共需要多少个时钟周期钟周期.解:解:在程序实际执行过程中,在程序实际执行过程中,二种数据相关会引起流水线停顿。二种数据相关会引起流水线停顿。一是一是“先写后读“先写后读相关,相关,k k 指令对指令对 R1R1 的写在程序执行开场后的第四个时钟;的写在程序执行开场后的第四个时钟;k+1k+1 指令对指令对 R1R1 的读对的读对指令本身是第三个时钟,但指令本身是第三个时钟,但 k+1k+1 指令比指令
14、比 k k 指令晚一个时钟进入流水线,则在程指令晚一个时钟进入流水线,则在程序执行开场后的第四个时钟要读序执行开场后的第四个时钟要读 R1R1。不能在同一时钟周期读写同一存放器,因。不能在同一时钟周期读写同一存放器,因此此 k+1k+1 指令应推迟一个时钟进入流水线,产生了流水线停顿。二是“写写指令应推迟一个时钟进入流水线,产生了流水线停顿。二是“写写相关,相关,k+1k+1 指令对指令对 R0R0 的写对指令本身是第六个时钟,而要求该指令进入流水线的写对指令本身是第六个时钟,而要求该指令进入流水线应在程序执行开场后的第三个时钟,所以对应在程序执行开场后的第三个时钟,所以对 R0R0 的写是在
15、程序执行开场后的第八的写是在程序执行开场后的第八个时钟。个时钟。k+2k+2 指令对指令对 R0R0 的写对指令本身是第五个时钟,而的写对指令本身是第五个时钟,而 k+2k+2 指令比指令比 k+1k+1 指令指令晚一个时钟进入流水线,则在程序执行开场后的第四个时钟,所以对晚一个时钟进入流水线,则在程序执行开场后的第四个时钟,所以对 R0R0 的写是的写是在程序执行开场后的第八个时钟。不能在同一时钟周期写写同一存放器,因此在程序执行开场后的第八个时钟。不能在同一时钟周期写写同一存放器,因此k+2k+2 指令应推迟一个时钟进入流水线,产生了流水线停顿。另外,可分析“先读指令应推迟一个时钟进入流水
16、线,产生了流水线停顿。另外,可分析“先读后写相关不会产生流水线的停顿。后写相关不会产生流水线的停顿。该指令流水线由六个功能段取指、译码、取数、运一、运二和存数等组成,该指令流水线由六个功能段取指、译码、取数、运一、运二和存数等组成,则程序指令执行过程的流水线时空图如以下图所示。则程序指令执行过程的流水线时空图如以下图所示。假设假设 3 3 条指令顺序流动,条指令顺序流动,共共需要需要 9 9 个时钟周期。个时钟周期。空间空间存数存数K K 存数存数K+1K+1 存数存数 K+2K+2 存数存数运二运二K+1K+1 运二运二运一运一K+1K+1 运一运一K+2K+2 运一运一取数取数K K 取数
17、取数K+1K+1 取数取数K+2K+2 取数取数译码译码K K 译码译码K+1K+1 译码译码K+2K+2 译码译码.z.-取指取指K K 取指取指K+1K+1 取指取指K+2K+2 取指取指时间时间0 01 12 23 34 45 56 67 78 89 93.63.6 有一指令流水线如下所示有一指令流水线如下所示(1 1)求连续输入求连续输入 1010 条指令,该流水线的实际吞吐率和效率;条指令,该流水线的实际吞吐率和效率;(2 2)该流水线的“瓶颈在哪一段该流水线的“瓶颈在哪一段.请采取两种不同的措施消除此“瓶请采取两种不同的措施消除此“瓶颈。对于你所给出的两种新的流水线,连续输入颈。对
18、于你所给出的两种新的流水线,连续输入1010 条指令时,其实条指令时,其实际吞吐率和效率各是多少际吞吐率和效率各是多少.解:解:1 12 2瓶颈在瓶颈在 3 3、4 4 段。段。变成八级流水线细分变成八级流水线细分重复设置部件重复设置部件3.73.7 有一个流水线由有一个流水线由 4 4 段组成,其中每当流经第段组成,其中每当流经第 3 3 段时,总要在该段循环一段时,总要在该段循环一次,然后才能流到第次,然后才能流到第 4 4 段。如果每段经过一次所需要的时间都是段。如果每段经过一次所需要的时间都是t,问:,问:(1 1)当在流水线的输入端连续地每当在流水线的输入端连续地每t时间输入任务时,
19、该流水线会发生时间输入任务时,该流水线会发生什么情况什么情况.(2 2)此流水线的最大吞吐率为多少此流水线的最大吞吐率为多少.如果每如果每2t输入一个任务,连续处理输入一个任务,连续处理1010 个任务时的实际吞吐率和效率是多少个任务时的实际吞吐率和效率是多少.(3 3)当每段时间不变时,当每段时间不变时,如何提高该流水线的吞吐率如何提高该流水线的吞吐率.仍连续处理仍连续处理 1010 个任个任务时,其吞吐率提高多少务时,其吞吐率提高多少.解:解:1 1会发生流水线阻塞情况。会发生流水线阻塞情况。第第 1 1 个任个任S1S1务务第第 2 2 个任个任务务S1S1S2S2stallstallS
20、3S3S3S3S4S4S2S2S3S3S3S3S4S44-13-1123-24-34-44-2第第 3 3 个任个任S1S1S2S2stallstallstallstallS3S3S3S3S4S4.z.-务务第第 4 4 个任个任务务2 23 3重复设置部件重复设置部件吞吐率提高倍数吞吐率提高倍数5107t23tS1S1S2S2stallstallstallstallstallstallS3S3S3S3S4S41.641.643.83.8 有一条静态多功能流水线由有一条静态多功能流水线由 5 5 段组成,加法用段组成,加法用 1 1、3 3、4 4、5 5 段,乘法用段,乘法用 1 1、2 2
21、、5 5 段,段,其余各段的时间均为其余各段的时间均为t t,而且流水线的输出可以直而且流水线的输出可以直4第第 3 3 段的时间为段的时间为 2 2t t,(Ai Bi)i1接返回输入端或暂存于相应的流水存放器中。现要在该流水线上计接返回输入端或暂存于相应的流水存放器中。现要在该流水线上计算算,画出其时空图,并计算其吞吐率、加速比和效率。,画出其时空图,并计算其吞吐率、加速比和效率。解:首先,应选择适合于流水线工作的算法。对于此题,应先计算解:首先,应选择适合于流水线工作的算法。对于此题,应先计算 A A1 1B B1 1、A A2 2B B2 2、A A3 3B B3 3和和 A A4 4
22、B B4 4;再计算;再计算(A(A1 1B B1 1)(A(A2 2B B2 2)和和(A(A3 3B B3 3)(A(A4 4B B4 4);然;然后求总的结果。后求总的结果。其次,画出完成该计算的时空图,如下图,图中阴影局部表示该段在工作。其次,画出完成该计算的时空图,如下图,图中阴影局部表示该段在工作。段54321ABCDABCDABCDA=A1B1B=A2B2C=A3B3D=A4B4输0123入456789A1A2A3A4B1B2B3B41011 12131415 16 17 18ABACBDCD时间由图可见,它在由图可见,它在 1818 个个t t时间中,给出了时间中,给出了 7
23、7 个结果。所以吞吐率为:个结果。所以吞吐率为:如果不用流水线,由于一次求积需如果不用流水线,由于一次求积需 3 3t t,一次求和需,一次求和需 5 5t t,则产生上述,则产生上述 7 7个结果共需4个结果共需45 5+3+33 3t t=29=29t t。所以加速比为:。所以加速比为:该流水线的效率可由阴影区的面积和该流水线的效率可由阴影区的面积和 5 5 个段总时空区的面积的比值求得:个段总时空区的面积的比值求得:3.83.8 有一条动态多功能流水线由有一条动态多功能流水线由5 5段组成,加法用段组成,加法用1 1、3 3、4 4、5 5段,乘法用段,乘法用1 1、2 2、5 5段,第
24、段,第2 2段的时间为段的时间为2 2t t,其余各段时间均为,其余各段时间均为t t,而且流水线的输出可以直接返,而且流水线的输出可以直接返(AiBi)i14.z.-回输入端或暂存于相应的流水存放器中。假设在该流水线上计算回输入端或暂存于相应的流水存放器中。假设在该流水线上计算:试计算其吞吐率、加速比和效率。试计算其吞吐率、加速比和效率。解解段ABCDABCDABC5由图可见,它在由图可见,它在 1818 个个t t时间中,给出了时间中,给出了 7 7 个结果。所以吞吐率为:个结果。所以吞吐率为:A=如果不用流水线,由于一次求积需如果不用流水线,由于一次求积需 4 4t t,一次求和需,一次
25、求和需 4 4t t,则产生上述,则产生上述 7 74B=个结果共需4个结果共需44 4+3+34 4t t=28=28t t。所以加速比为:。所以加速比为:C=3D=该流水线的效率可由阴影区的面积和该流水线的效率可由阴影区的面积和 5 5 个段总时空区的面积的比值求得:个段总时空区的面积的比值求得:24.54.5 在在CRAY-1CRAY-1机器上,按照方式执行下述机器上,按照方式执行下述4 4条向量指令括号中给出了相应功能条向量指令括号中给出了相应功能14567891011 12131415 16 1718时CAB部件的执行时间,如果向量存放器和功能部件之间的数据传送需要部件的执行时间,如
26、果向量存放器和功能部件之间的数据传送需要1 1拍,试求拍,试求A2A3A4A入A1输0123B1B2B3此流水线的通过时间是多少拍此流水线的通过时间是多少拍.如果向量长度为如果向量长度为6464,则需多少拍才能得到全部结,则需多少拍才能得到全部结果果.V0存储器从存储器中取数:V0存储器从存储器中取数:7 7拍拍V2V0+V1向量加:V2V0+V1向量加:3 3拍拍V3V2A3按V3V2A3按A3A3左移:左移:4 4拍拍V5V3V5V3V4V4向量逻辑乘:向量逻辑乘:2 2拍拍解:解:通过时间就是每条向量指令的第一个操作数执行完毕需要的时间,通过时间就是每条向量指令的第一个操作数执行完毕需要
27、的时间,也就是各也就是各功能流水线由空到满的时间,功能流水线由空到满的时间,在流水线充满之后,在流水线充满之后,向量中后继操作数继续以流水向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。方式执行,直到整组向量执行完毕。T T通过通过1+7+11+7+1+(1+3+1)+(1+4+1)+(1+2+1)=24(+(1+3+1)+(1+4+1)+(1+2+1)=24(拍拍)T T总共总共T T通过通过+(64-1)=24+63+(64-1)=24+638787拍拍4.64.6T T通过通过1+7+11+7+1+(1+3+1)+(1+5+1)+(1+2+1)+(1+7+1)=34(+(1+3
28、+1)+(1+5+1)+(1+2+1)+(1+7+1)=34(拍拍)T T总共总共T T通过通过+(64-1)=63+34+(64-1)=63+349797拍拍4.74.7*机有机有1616个向量存放器,其中个向量存放器,其中V0V0V5V5中分别放有向量中分别放有向量A A、B B、C C、D D、E E、F F,B4BDCD向量长度均为向量长度均为8 8,向量各元素均为浮点数;处理部件采用二个单功能流水线,加,向量各元素均为浮点数;处理部件采用二个单功能流水线,加.z.-法功能部件时间为法功能部件时间为2 2拍,乘法功能部件时间为拍,乘法功能部件时间为3 3拍。用类似拍。用类似Cray 1
29、Cray 1的技术,先计算的技术,先计算(A+B)*C,(A+B)*C,在流水线不停流的情况下,接着计算在流水线不停流的情况下,接着计算(D+E)*F(D+E)*F。解答:解答:(1)(A+B)*C(1)(A+B)*C 可用以下可用以下 2 2 条指令完成:条指令完成:V0A+BV0A+BV1V0*CV1V0*C流水线流过时间为流水线流过时间为(1+2+1)+(1+3+1)=9(1+2+1)+(1+3+1)=9 拍拍(2)(2)实际吞吐率为实际吞吐率为4.84.8分段开采分段开采LVLVV1V1,RbRb;取向量取向量 B BMULTVSMULTVSV2V2,V1V1,FsFs;向量和标量相乘
30、向量和标量相乘SVSVRaRa,V2V2;存向量存向量三条指令三个编队三条指令三个编队T200=4*(15+Tstart)+200*3T200=4*(15+Tstart)+200*3=660+(4*Tstart)=660+(4*Tstart)Tstart=12+7+12=31Tstart=12+7+12=31T200=660+4*31=784T200=660+4*31=7844.94.9解:解:2*8*21000=26.7MFLOPS=26.7MFLOPS9(8*2 1)50向量指令序列中浮点运算次数时钟频率R limn向量指令序列执行所需的时钟周期数Cray Y-MP/8Cray Y-MP/
31、8 的峰值性能为:的峰值性能为:R R=(1+1)=(1+1)8/(6*108/(6*10-3-3)=16=2667MFLOPS)=16=2667MFLOPS.z.-5.8.5.8.假设有一条长流水线,假设有一条长流水线,仅仅对条件转移指令使用分支目标缓冲。仅仅对条件转移指令使用分支目标缓冲。假设分支预假设分支预测错误的开销为测错误的开销为 4 4 个时钟周期,个时钟周期,缓冲不命中的开销为缓冲不命中的开销为 3 3 个时钟周期。假设:命个时钟周期。假设:命中率为中率为 90%90%,预测精度为,预测精度为 90%90%,分支频率为,分支频率为 15%15%,没有分支的根本,没有分支的根本 C
32、PICPI 为为 1 1。求程序执行的求程序执行的 CPICPI。相对于采用固定的相对于采用固定的 2 2 个时钟周期延迟的分支处理,个时钟周期延迟的分支处理,哪种方法程序执行速度更哪种方法程序执行速度更快快.解:解:1 1程序执行的程序执行的 CPI=CPI=没有分支的根本没有分支的根本 CPICPI1 1+分支带来的额外开销分支带来的额外开销分支带来的额外开销是指在分支指令中,分支带来的额外开销是指在分支指令中,缓冲命中但预测错误带来的开销与缓冲命中但预测错误带来的开销与缓冲没有命中带来的开销之和。缓冲没有命中带来的开销之和。分支带来的额外开销分支带来的额外开销=15%*=15%*(90%
33、(90%命中命中10%10%预测错误预测错误4+104+10 不命中不命中3)=0.0993)=0.099所以,程序执行的所以,程序执行的 CPICPI 1 1 0.099=1.0990.099=1.0992 2采用固定的采用固定的 2 2 个时钟周期延迟的分支处理个时钟周期延迟的分支处理 CPI=1+15%CPI=1+15%2=1.32=1.3由由1 1 2 2可知分支目标缓冲方法执行速度快。可知分支目标缓冲方法执行速度快。5.9.5.9.假设分支目标缓冲的命中率为假设分支目标缓冲的命中率为 90%90%,程序中无条件转移指令的比例为,程序中无条件转移指令的比例为 5%5%,没有无条件转移指
34、令的程序没有无条件转移指令的程序 CPICPI 值为值为 1 1。假设分支目标缓冲中包含分支目标假设分支目标缓冲中包含分支目标指令,允许无条件转移指令进入分支目标缓冲,则程序的指令,允许无条件转移指令进入分支目标缓冲,则程序的 CPICPI 值为多少值为多少.假假设原来的设原来的 CPI=1.1CPI=1.1参考答案:参考答案:解:设每条无条件转移指令的延迟为解:设每条无条件转移指令的延迟为*,则有:,则有:1 15%5%*1.11.1*2 2当分支目标缓冲命中时,无条件转移指令的延迟为当分支目标缓冲命中时,无条件转移指令的延迟为 0 0。所以程序的所以程序的 CPICPI 1 1 2 2 5
35、%5%(1(1 90%)90%)1.011.017.8.7.8.假设对指令假设对指令 CacheCache 的访问占全部访问的的访问占全部访问的 75%75%;而对数据;而对数据CacheCache 的访问占全部的访问占全部访问的访问的 25%25%。CacheCache 的命中时间为的命中时间为 1 1 个时钟周期,不命中开销为个时钟周期,不命中开销为5050 个时钟周期,个时钟周期,在混合在混合 CacheCache 中一次中一次 loadload 或或 storestore 操作访问操作访问 CacheCache 的命中时间都要增加一个时钟的命中时间都要增加一个时钟.z.-周期,周期,3
36、2KB32KB 的指令的指令 CacheCache 的不命中率为的不命中率为 0.15%0.15%,32KB32KB 的数据的数据 CacheCache 的不命中率的不命中率为为 3.77%3.77%,64KB64KB 的混合的混合 CacheCache 的不命中率为的不命中率为 0.95%0.95%。又假设采用写直达策略,且。又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。试问指令有一个写缓冲器,并且忽略写缓冲器引起的等待。试问指令 CacheCache 和数据和数据 CacheCache容量均为容量均为 32KB32KB 的别离的别离 CacheCache 和容量为和容
37、量为 64KB64KB 的混合的混合 CacheCache 相比,哪种相比,哪种 CacheCache 的的不命中率更低不命中率更低.两种情况下平均访存时间各是多少两种情况下平均访存时间各是多少.参考答案:参考答案:解:解:1 1根据题意,约根据题意,约 75%75%的访存为取指令,的访存为取指令,25%25%的访存为数据。的访存为数据。因此,别离因此,别离 CacheCache 的总体不命中率为:的总体不命中率为:75%75%0.15%0.15%25%25%3.77%3.77%1.055%1.055%;容量为容量为 64KB64KB 的混合的混合 CacheCache 的不命中率略低一些,只
38、有的不命中率略低一些,只有 0.95%0.95%。2 2平均访存时间公式可以分为指令访问和数据访问两局部:平均访存时间公式可以分为指令访问和数据访问两局部:平均访存时间指令所占的百分比平均访存时间指令所占的百分比 读命中时间读不命中率不命中开读命中时间读不命中率不命中开销数据所占的百分比数据命中时间数据不命中率不命中开销销数据所占的百分比数据命中时间数据不命中率不命中开销所以,两种构造的平均访存时间分别为:所以,两种构造的平均访存时间分别为:别离别离 CacheCache 的平均访存时间的平均访存时间75%75%1 10.15%0.15%505025%25%1 13.77%3.77%50507
39、5%75%1.0751.07525%25%2.8852.8851.52751.5275因为混合因为混合 CacheCache 读数据的都要增加读数据的都要增加 1 1 个时钟周期个时钟周期所以混合所以混合 CacheCache 的平均访存时间的平均访存时间75%75%1 10.95%0.95%505025%25%1 11 10.95%0.95%505075%75%1.4751.47525%25%2.4752.4751.7251.725因此,尽管别离因此,尽管别离CacheCache 的实际不命中率比混合的实际不命中率比混合 CacheCache 的高,但其平均访存时的高,但其平均访存时间反而较
40、低。别离间反而较低。别离 CacheCache 提供了两个端口,消除了构造相关。提供了两个端口,消除了构造相关。7.97.9 假设在假设在 30003000 次访存中,次访存中,第一级第一级 CacheCache 不命中不命中 110110 次,次,第二级第二级 CacheCache 不命中不命中 5555次。试问:在这种情况下,该次。试问:在这种情况下,该CacheCache 系统的局部不命中率和全局不命中率各是多系统的局部不命中率和全局不命中率各是多少少.解:解:局部不命中率局部不命中率=该级该级CacheCache的不命中次数的不命中次数/到达该级到达该级CacheCache的访存次数。
41、的访存次数。局部不命中率局部不命中率 L1=110/3000=0.0367L1=110/3000=0.0367,不命中率,不命中率 L2=55/110=0.50L2=55/110=0.50。全局不命中率全局不命中率 L1=L1=不命中率不命中率 L1=0.0367L1=0.0367,全局不命中率全局不命中率 L2=L2=不命中率不命中率 L1L1不命中率不命中率 L2=0.0367L2=0.03670.50=0.01840.50=0.0184。7.107.10 给定以下的假设,试计算直接映象给定以下的假设,试计算直接映象CacheCache 和两路组相联和两路组相联 CacheCache 的平
42、均访问时的平均访问时间以及间以及 CPUCPU 的性能。由计算结果能得出什么结论的性能。由计算结果能得出什么结论.(1)(1)理想理想 CacheCache 情况下的情况下的 CPICPI 为为 2.02.0,时钟周期为,时钟周期为 2ns2ns,平均每条指令访存,平均每条指令访存 1.21.2 次;次;(2)(2)两者两者 CacheCache 容量均为容量均为 64KB64KB,块大小都是,块大小都是 3232 字节;字节;(3)(3)组相联组相联 CacheCache 中的多路选择器使中的多路选择器使 CPUCPU 的时钟周期增加了的时钟周期增加了 1010;(4)(4)这两种这两种 C
43、acheCache 的不命中开销都是的不命中开销都是 80ns80ns;(5)(5)命中时间为命中时间为 1 1 个时钟周期;个时钟周期;(6)64KB(6)64KB 直接映象直接映象 CacheCache 的不命中率为的不命中率为 1.41.4,64KB64KB 两路组相联两路组相联 CacheCache 的不命中的不命中率为率为 1.01.0。.z.-解:平均访问时间命中时间不命中率不命中开销解:平均访问时间命中时间不命中率不命中开销平均访问时间平均访问时间1-1-路路=2.0+1.4%*80=3.12ns=2.0+1.4%*80=3.12ns平均访问时间平均访问时间2-2-路路=2.0*
44、(1+10%)+1.0%*80=3.0ns=2.0*(1+10%)+1.0%*80=3.0ns两路组相联的平均访问时间比拟低两路组相联的平均访问时间比拟低CPUCPUtimetime=CPUCPU执行执行+存储等待周期存储等待周期*时钟周期时钟周期CPUCPUtimetime=IC=ICCPICPI执行执行+总不命中次数总不命中次数/指令总数指令总数*不命中开销不命中开销*时钟周期时钟周期=IC=IC CPICPI执行执行*时钟周期时钟周期+每条指令的访存次数每条指令的访存次数*不命中率不命中率*不命中开销不命中开销*时钟周期时钟周期 CPUCPUtime 1-waytime 1-way=IC
45、(2.0*2+1.2*0.014*80)=IC(2.0*2+1.2*0.014*80)5.344IC5.344ICCPUCPUtime 2-waytime 2-way=IC(2.2*2+1.2*0.01*80)=IC(2.2*2+1.2*0.01*80)5.36IC5.36IC相对性能比:相对性能比:CPUtime2wayCPUtime1way5.36/5.344=1.0035.36/5.344=1.003直接映象直接映象 cachecache 的访问速度比两路组相联的访问速度比两路组相联 cachecache 要快要快 1.041.04 倍,倍,而两路组相联而两路组相联 CacheCache
46、的平均性能比直接映象的平均性能比直接映象 cachecache 要高要高 1.0031.003 倍。因此这里选择两路组相联倍。因此这里选择两路组相联7.147.14 假设一台计算机具有以下特性:假设一台计算机具有以下特性:(1 1)9595的访存在的访存在 CacheCache 中命中;中命中;(2 2)块大小为两个字,且不命中时整个块被调入;块大小为两个字,且不命中时整个块被调入;(3 3)CPUCPU 发出访存请求的速率为发出访存请求的速率为 10109 9字字/s/s;(4 4)2525的访存为写访问;的访存为写访问;(5 5)存储器的最大流量为存储器的最大流量为 10109 9字字/s
47、/s包括读和写包括读和写;(6 6)主存每次只能读或写一个字;主存每次只能读或写一个字;(7 7)在任何时候,在任何时候,CacheCache 中有中有 3030的块被修改正;的块被修改正;(8 8)写不命中时,写不命中时,CacheCache 采用按写分配法。采用按写分配法。现欲给该计算机增添一台外设,为此首先想知道主存的频带已用了多少。现欲给该计算机增添一台外设,为此首先想知道主存的频带已用了多少。试对于以下两种情况计算主存频带的平均使用比例。试对于以下两种情况计算主存频带的平均使用比例。(1 1)写直达写直达 CacheCache;(2 2)写回法写回法 CacheCache。解:采用按
48、写分配解:采用按写分配1 1写直达写直达 cachecache 访问命中,有两种情况:访问命中,有两种情况:读命中,不访问主存;读命中,不访问主存;.z.-写命中,更新写命中,更新 cachecache 和主存,访问主存一次。和主存,访问主存一次。访问不命中,有两种情况:访问不命中,有两种情况:读不命中,将主存中的块调入读不命中,将主存中的块调入 cachecache 中,访问主存两次;中,访问主存两次;写不命中,将要写的块调入写不命中,将要写的块调入cachecache,访问主存两次,再将修改的数,访问主存两次,再将修改的数据写入据写入 cachecache 和主存,访问主存一次,共三次。上
49、述分析如下表所示。和主存,访问主存一次,共三次。上述分析如下表所示。访问命中访问命中访问类访问类型型Y YY YN NN N读读写写读读写写95%*75%=71.3%95%*75%=71.3%95%*25%=23.8%95%*25%=23.8%5%*75%=3.8%5%*75%=3.8%5%*25%=1.3%5%*25%=1.3%频率频率访存次访存次数数0 01 12 23 3一次访存请求最后真正的平均访存次数一次访存请求最后真正的平均访存次数=(71.3%*0)+(23.8%*1)+(3.8%*2)+(1.3%*3)=(71.3%*0)+(23.8%*1)+(3.8%*2)+(1.3%*3)
50、0.350.35已用带宽已用带宽=35.0%=35.0%2 2写回法写回法 cachecache 访问命中访问命中,有两种情况:有两种情况:读命中,不访问主存;读命中,不访问主存;写命中,不访问主存。采用写回法,只有当修改的写命中,不访问主存。采用写回法,只有当修改的cachecache 块被换块被换出时,才写入主存;出时,才写入主存;访问不命中访问不命中,有一个块将被换出,这也有两种情况:有一个块将被换出,这也有两种情况:如果被替换的块没有修改正,将主存中的块调入如果被替换的块没有修改正,将主存中的块调入 cachecache 块中,访问主存块中,访问主存两次;两次;如果被替换的块修改正,则