答:不一定。因为组相联命中率的提高是以增加命中时间为代价的,组相联需要增加多路选择开关。
5.10 假设对指令Cache的访问站全部访问的75%;而对数据Cache的访问占全部访问的25%。Cache的命中时间为1个时钟周期,失效开销为50个时钟周期,在混合Cache中一次load或store操作访问Cache的命中时间都要增加一个时钟周期,32KB的指令Cache的失效率为0.39%,32KB的数据Cache的失效率为4.82%,64KB的混合Cache的失效率为1.35%。又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。试问指令Cache和数据Cache容量均为32KB的分离Cache和64KB的混合Cache相比,哪种Cache的失效率更低?两种情况下平均访存时间各是多少? 解:
(1)分离Cache的总体失效率:
F分离?访存失效总次数访存总次数指令访存失效次数?数据访存失效次数?访存总次数指令访存次数?指令访存失效率?数据访存次数?数据访存失效率?访存总次数指令访存次数数据访存次数??指令访存失效率??数据访存失效率
访存总次数访存总次数?指令访存比例?指令访存失效率?数据访存比例?数据访存失效率.?75%?0.39%?25%?4.82%?1.4975 而容量为64 KB的混合Cache的失效率略低一些,只有1.35%。 (2)平均访存时间分析
平均访存时间?访存总时间访存总次数指令访存总时间?数据访存总时间?访存总次数指令访存次数?平均指令访存时间?数据访存次数?平均数据访存时间?访存总次数指令访存次数?平均指令访存时间数据访存次数?平均数据访存时间??访存总次数访存总次数?指令访存比例?平均指令访存时间?数据访存比例?平均数据访存时间所以:
平均访存时间分离 =75%×(1+0.39%×50)+25%×(1+4.82%×50) =(75%×1.195)+(25%×3.41) =1.74875
平均访存时间混合 =75%×(1+1.35%×50)+25%×(1+1+1.35%×50) =(75%×1.675)+(25%×2.675) =1.925
因此,尽管分离Cache的实际失效率比混合Cache的高,但其平均访存时间反而较低。
5.11 给定以下的假设,试计算直接映像Cache和2路组相联Cache的平均访问时间以及CPU的性能。由计算结果能得出什么结论?
(1)理想Cache情况下的CPI为2.0,时钟周期为2ns,平均每条指令访存1.2次。 (2)两者Cache容量均为64KB,块大小都是32B。
(3)组相联映像Cache中的多路选择器使CPU的时钟周期增加了10%。 (4)这两种Cache的失效开销都是80ns。 (5)命中时间为1个时钟周期。
(6)64KB直接映像Cache的失效率为1.4%,64KB2路组相联Cache的失效率为1.0%。
解:
(1) 平均访问时间=命中时间+失效率×失效开销
平均访问时间1-路=2.0+1.4% ×80=3.12ns 平均访问时间2-路=2.0×(1+10%)+1.0% ×80=3.0ns 两路组相联的平均访问时间比较低
(2)CPU时间 =(CPU执行周期+存储等待周期)×时钟周期时间
= IC(CPI执行+总失效次数/指令总数×失效开销) ×时钟周期 = IC((CPI执行×时钟周期)+(每条指令的访存次数×失效率×失效开销 ×时钟周期))
所以:
CPU时间 1路 =IC(2.0×2+1.2×0.014×80)=5.344IC CPU时间 2路=IC(2.2×2+1.2×0.01×80)=5.36IC
相对性能比:
CP时间2路CPU时间1路?5.36/5.344=1.003
直接映象cache的访问速度比两路组相联cache要快1.04倍,而两路组相联Cache的平均性能比直接映象cache要高1.003倍。因此这里选择两路组相联。
第七章 互连网络
7.1 解释下列术语(不要求写在作业本上,但应作为复习内容)
线路交换 分组交换 静态网络 动态网络 互连网络 互连函数 网络直径 结点度 网络规模 等分宽度 对称网络
答:答案略
7.3 设E为交换函数,S为均匀洗牌函数,B为蝶式函数,PM2I为移数函数,函数的自变量是十进制数表示的处理机编号。现在有32台处理机,其编号为0,1,2,…., 31。 (1)分别计算下列互连函数
E2(12) S(8) B(9) PM2I+3(28) E0(S(4)) S(E0(18))
(2)用E0和S构成均匀洗牌交换网(每步只能使用E0和S一次),网络直径是多少?从5号处理机发送数据到7号处理机,最短路径要经过几步?请列出经过的处理几号。
(3)采用移数网络构成互连网络,网络直径是多少?结点度是多少?与2号处理机距离最
远的是几号处理机? 解:
(1)共有32台处理机,因此用log232 = 5比特表示各处理器编号。
E2(12) 十进制 = E2(01100) 二进制=(01000)二进制= (8) 十进制 S(8) 十进制 = S(01000)二进制= (10000)二进制= (16) 十进制 B(9) 十进制 = B(01001)二进制= (11000)二进制= (24) 十进制 PM2I+3(28) = (28 +23) mod 32 = 4 E0(S(4))十进制 = E0(S(00100))二进制= E0(01000)= (01001)二进制= (9) 十进制 S(E0(18)) 十进制 = S (E0(10010))二进制=S(10011)= (00111)二进制= (7) 十进制 n
(2)2个结点的均匀洗牌交换网的网络直径是2n-1,32个结点的均匀洗牌交换网的网络直径为9。
从5号处理机发送数据到7号处理机,最短路径要经过6步:
E0E0E0SSS0010?1??0010?0??0100?0??0100?1??1001?0??1001?1??0011 1(3)网络直径是3,节点度是9,与2号处理机距离最远的是13、15、21、23号处理机。.
第八章 多处理机
8.1 解释下列术语(不要求写在作业本上,但应作为复习内容)
集中式共享多处理机 分布式共享多处理机 通信延迟 计算/通信比 监听协议 目录协议 写作废协议 写更新协议
答:答案略
8.2 一个具有32个处理器的多处理机,对远程存储器访问时间为2000 ns。除了通信以外,假设所有其他访问均命中局部存储器。当发出一个远程请求时,本处理器挂起。处理器的时钟周期时间是10ns,假设指令基本的CPI为1.0(设所有访存均命中局部存储器)。对于下述两种情况:
(1)没有远程访问。
(2)有0.5%的指令需要远程访问。 试问前者比后者快多少? 解:
已知远程访问率p=0.5%,远程访问时间t=2000ns,时钟周期时间T=10ns,则 远程访问开销C=t/T = 2000ns/10ns = 200 个时钟周期 则有0.5%远程访问的机器的实际CPI2为: CPI2= CPI1 + p×C = 1.0 + 0.5%×200 = 2.0 只有局部访问的机器的基本CPI1 =1.0 ,故 CPI2/CPI1 = 2.0/1.0 = 2(倍)
因此,没有远程访问状态下的机器速度是有0.5%远程访问的机器速度的2倍。