(2)
(3) 重复设置部件
5-9
吞吐率提高倍数= =1.64
16. 假设我们考虑条件分支指令的两种不同设计方法如下:
(1) CPUA:通过比较指令设置条件码,然后测试条件码进行分支; (2) CPUB:在分支指令中包括比较过程。
在两种CPU中,条件分支指令都占用2个时钟周期而所有其它指令占用1个时钟周期,对于CPUA,执行的指令中分支指令占30%;由于每个分支指令之前都需要有比较指令,因此比较指令也占30%。由于CPUA在分支时不需要比较,因此假设它的时钟周期时间比CPUB快1.4倍。哪一个CPU更快?如果CPUA的时钟周期时间仅仅是CPUB的1.15倍,哪一个CPU更快呢?
解:我们不考虑所有系统问题,所以可以用CPU性能公式。占用2个时钟周期的分支指令占总指令的30%,剩下的指令占用1个时钟周期。所以
CPIA = 0.3 × 2 + 0.70 × 1 = 1.3 则CPU性能为:
总CPU时间A = IC × 1.3 × 时钟周期A 根据假设,有:
时钟周期B = 1.4 × 时钟周期A
在CPUB中没有独立的比较指令,所以CPUB的程序量为CPUA的70%,分支指令的比例为: 30%/70% = 42.8%
这些分支指令占用2个时钟周期,而剩下的57.2%的指令占用1个时钟周期,因此: CPIB = 0.428 × 2 + 0.572 × 1 = 1.428 因为CPUB不执行比较,故: ICB = 0.7 × ICA 因此CPUB性能为:
总CPU时间B = ICB × CPIB × 时钟周期B
= 0.7 × ICA × 1.428 × (1.4× 时钟周期A) = 1.44 × ICA × 时钟周期A
在这些假设之下,尽管CPUB执行指令条数较少,CPUA因为有着更短的时钟周期,所以比CPUB快。 如果CPUA的时钟周期时间仅仅是CPUB的1.15倍,则 时钟周期B = 1.15 × 时钟周期A CPUB的性能为:
总CPU时间B = ICB × CPIB × 时钟周期B
= 0.7 × ICA × 1.428 × (1.15 × 时钟周期A) = 1.18 × ICA × 时钟周期A
因此CPUB由于执行更少指令条数,比CPUA运行更快。 17. 动态多功能流水线由6个功能段组成,如下图:
6-9
其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为△t,假设该流
水线的输出结果可以直接返回输入端,而且设置有足够地缓冲寄存器,若以最快的方式用该流水计算:
(1) 画出时空图;
(2) 计算实际的吞吐率、加速比和效率。
答:本题解题的关键是弄清楚机器一共要做10次乘法,4次加法,而且应进行适当的指令调度,以得到最大的吞吐率。
第五章 存储层次
1. 全相联映像、组相联映像、直接映像的优缺点是什么?(例如:块冲突概率直接映像的最高,全相联映像的最低,组相联映像的居于二者之中,和全相联映像相比,组相联映像所用的目录表较小……) 2. 伪相联Cache中,确定另一块的一种简单的方法是将索引字段的最高位取反。 3. Victim Cache是一种能减少冲突失效次数而又不影响失效开销的方法。 4. 虚拟存储器常用的地址映像是全相联映像。
5. 大小为N的直接映像Cache的失效率约等于大小为N/2的两路组相联Cache的失效率。
1.让读失效优先于写。○2.子块放置技术。○3.请求字处理技术。○4.非阻塞Cache6. 减小Cache失效开销的五种方法:○
5.采用两级Cache。 技术。○
7-9
1增加Cache块大小。增加块大小利用了程序的空间局部性。○2提高相联度,降低冲突7. 降低Cache失效率的方法:○
3Victim Cache,降低冲突失效。○4伪相联Cache,降低冲突失效。○5硬件预取技术,指令和数据都可以在处理失效。○
6由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用器提出访问请求前进行预取。○
7编译器优化,通过对软件的优化来降低失效率。 到之前发出预取请求。○
8. 给定以下的假设,试计算直接映象Cache和两路组相联Cache的平均访问时间以及CPU的性能。由计算结果能得出
什么结论?
1理想Cache情况下的CPI为2.0,时钟周期为2ns,平均每条指令访存1.2次; ○
2两者Cache容量均为64KB,块大小都是32字节; ○
3组相联Cache中的多路选择器使CPU的时钟周期增加了10%; ○
4这两种Cache的失效开销都是80ns; ○
5命中时间为1个时钟周期; ○
664KB直接映象Cache的失效率为1.4%,64KB两路组相联Cache的失效率为1.0%。 ○
平均访问时间=命中时间+失效率×失效开销
平均访问时间1-路=2.0+1.4% *80=3.12ns
平均访问时间2-路=2.0*(1+10%)+1.0% *80=3.0ns 两路组相联的平均访问时间比较低(3分)
CPUtime=(CPU执行+存储等待周期)*时钟周期
CPU time=IC(CPI执行+总失效次数/指令总数*失效开销) *时钟周期 =IC((CPI执行*时钟周期)+(每条指令的访存次数*失效率*失效开销*时钟周期)) CPU time 1-way=IC(2.0*2+1.2*0.014*80)=5.344IC CPU time 2-way=IC(2.2*2+1.2*0.01*80)=5.36IC
CPUtime?2way相对性能比:
CPUtime?1way?5.36/5.344=1.003(5分)
两路组相联cache的访问速度比直接映象cache要快1.04倍,而直接映象Cache的平均性能比两路组相联cache要高1.003倍。因此这里选择两路组相联。
9. VAX-11/780在cache命中时的指令平均执行时间是9.5时钟周期,cache不命中时间是5个时钟周期。假设不命中率是12%,每条指令平均访存2.5次。试计算考虑了cache不命中时的指令平均执行时间。它比cache命中时的指令平均执行时间延长了百分之几?
cache不命中时:5*12%*2.5=1.5
考虑了cache不命中时的指令平均执行时间:9.5+1.5=11(时钟周期) (11-9.5)/ 9.5 = 15.79%
它比cache命中时的指令平均执行时间延长了15.79%。
10. 我们考虑一个机器。假设cache读不命中开销为25个时钟周期,写不命中开销为70个时钟周期,当不考虑存储器停顿时,所有指令的执行时间都是2.0个时钟周期,cache的读不命中率和写不命中率均为4%,平均每条指令读存储器0.8次,写存储器0.5次。试分析考虑cache的不命中后,cache对性能的影响。
平均每条指令存储器停顿时钟周期数=读的次数*读不命中率*读不命中开销+
写的次数*写不命中率*写不命中开销
CPU时间=IC*[CPI+(存储停顿周期数/指令数)]*时钟周期时间
CPU时间=IC *(2.0+2.2)* 时钟周期时间 = IC *4.2* 时钟周期时间
考虑了cache不命中影响后,CPI从理想计算机的2.0增加到了4.2,是原来的2.1倍。
第六章 输入输出系统
1. 通道分为数组多路通道、选择通道、字节多路通道三种类型。选择通道适合于连接高优先级的磁盘、磁带等高速设备。
2. 输入输出数据不经过CPU内部寄存器的输入输出方式是直接存储器访问方式。
1.存储器中可能不是CPU产生的最新3. 在有cache的计算机系统中,进行I/O操作时,产生数据不一致问题的情况:○
8-9
2.I/O系统与存储器交换数据之后,在cache中,被CPU使用数据,所以I/O系统从存储器中取出来的是陈旧数据。○
的可能是陈旧数据。解决方案:第一种情况利用写直达cache解决;第二种情况,操作系统可以保证I/O操作的数据不在cache中,如果不能保证,就作废cache中相应的数据。
4. 非专用总线控制方式中确定优先序可有菊花链、计数器和独立请求等三种方式。 5. 输入输出系统包括输入输出设备、设备控制器及与输入输出操作有关的软硬件。 6. 当计算机系统通过执行通道程序完成输入输出工作时,通道负责执行通道程序。 7. 评价I/O系统性能的参数主要有连接特性、I/O系统的容量、响应时间和吞吐率。
第七章 多处理机
1. 多处理机是指有两台以上的处理机,共享I/O子系统,机间经共享主存或高速通信网络通信,在操作系统控制下,协同求解大而复杂问题的计算机系统。多处理机有紧耦合和松耦合两种不同的构形。
2. 在基于总线互连的多处理机中,采用总线监听协议来解决cache一致性问题。总线监听协议在本地Cache的数据块被修改时,通过总线把改写的数据块广播到有该数据块的所有远程Cache中,这是监听协议的写更新策略。 3. 目录协议中Cache块状态有共享、未缓冲、专有三种。
9-9