计算机体系结构复习题

更新时间:2023-12-19 17:08:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.7 将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间仅为整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少?

解由题可知:可改进比例 = 40% = 0.4 部件加速比 = 10 根据Amdahl定律可知:

1系统加速比??1.5625

0.4?1?0.4??10采用此增强功能方法后,能使整个系统的性能提高到原来的1.5625倍。

1.8计算机系统中有三个部件可以改进,这三个部件的部件加速比为:

部件加速比1=30;部件加速比2=20;部件加速比3=10

(1) 如果部件1和部件2的可改进比例均为30%,那么当部件3的可改进比例为多少时,系统加速比才可以达到10?

(2) 如果三个部件的可改进比例分别为30%、30%和20%,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少?

解:(1)在多个部件可改进情况下,Amdahl定理的扩展:

Sn?(1?1?Fi)??FiSi

已知S1=30,S2=20,S3=10,Sn=10,F1=0.3,F2=0.3,得:

10?1

1(-0.3?0.3?F3)?(0.3/30?0.3/20?F3/10)得F3=0.36,即部件3的可改进比例为36%。

(2)设系统改进前的执行时间为T,则3个部件改进前的执行时间为:(0.3+0.3+0.2)T = 0.8T,不可改进部分的执行时间为0.2T。

已知3个部件改进后的加速比分别为S1=30,S2=20,S3=10,因此3个部件改进后的执行时间为:

'Tn?0.3T0.3T0.2T???0.045T 302010改进后整个系统的执行时间为:Tn = 0.045T+0.2T = 0.245T

那么系统中不可改进部分的执行时间在总执行时间中占的比例是:

0.2T?0.82

0.245T

3.4 设一条指令的执行过程分成取指令、分析指令和执行指令三个阶段,每个阶段所需

的时间分别为△t、△t和2△t 。分别求出下列各种情况下,连续执行N条指令所需的时间。

(1)顺序执行方式;

(2)只有“取指令”与“执行指令”重叠; (3)“取指令”、“分析指令”与“执行指令”重叠。 解:(1)每条指令的执行时间为:△t+△t+2△t=4△t

连续执行N条指令所需的时间为:4N△t

(2)连续执行N条指令所需的时间为:4△t+3(N-1)△t=(3N+1)△t (3)连续执行N条指令所需的时间为:4△t+2(N-1)△t=(2N+2)△t

4.2 简述Tomasulo算法的基本思想。

答:核心思想是:①记录和检测指令相关,操作数一旦就绪就立即执行,把发生RAW冲突的可能性减小到最少;②通过寄存器换名来消除WAR冲突和WAW冲突。寄存器换名是通过保留站来实现,它保存等待流出和正在流出指令所需要的操作数。

基本思想:只要操作数有效,就将其取到保留站,避免指令流出时才到寄存器中取数据,这就使得即将执行的指令从相应的保留站中取得操作数,而不是从寄存器中。指令的执行结果也是直接送到等待数据的其它保留站中去。因而,对于连续的寄存器写,只有最后一个才真正更新寄存器中的内容。一条指令流出时,存放操作数的寄存器名被换成为对应于该寄存器保留站的名称(编号)。

? Consider a program with the given characteristics

? Instruction count (I-Count) = 10 instructions ? 30% of instructions are loads and stores

? D-cache miss rate is 5% and I-cache miss rate is 1% ? Miss penalty is 100 clock cycles for instruction and data caches

? Compute combined misses per instruction and memory stall cycles

? Combined misses per instruction in I-Cache and D-Cache

? 1% + 30% ? 5% = 0.025 combined misses per instruction ? Equal to 25 misses per 1000 instructions ? Memory stall cycles

? 0.025 ? 100 (miss penalty) = 2.5 stall cycles per instruction

? Total memory stall cycles = 10? 2.5 = 2,500,000

6

6

CPI with Memory Stalls

? A processor has CPI of 1.5 without any memory stalls

? Cache miss rate is 2% for instruction and 5% for data

? 20% of instructions are loads and stores

? Cache miss penalty is 100 clock cycles for I-cache and D-cache

? What is the impact on the CPI? ? Answer:

Mem Stalls per Instruction =0.02×100 + 0.2×0.05×100 = 3 CPIMemoryStalls =1.5 + 3 = 4.5 cycles per instruction CPIMemoryStalls/ CPIPerfectCache =4.5 / 1.5 = 3

Processor is 3 times slower due to memory stall cycles CPINoCache =1.5 + (1 + 0.2) × 100 = 121.5 (a lot worse)

3.13有一个流水线由4段组成,其中每当流经第3段时,总要在该段循环一次,然后才能流到第4段。如果每段经过一次所需要的时间都是?t,问:

(1) 当在流水线的输入端连续地每?t时间输入任务时,该流水线会发生什么情况? (2) 此流水线的最大吞吐率为多少?如果每2?t输入一个任务,连续处理10个任务

时的实际吞吐率和效率是多少? (3) 当每段时间不变时,如何提高该流水线的吞吐率?仍连续处理10个任务时,其

吞吐率提高多少?

解:(1)会发生流水线阻塞情况。

第1个任务 第2个任务 第3个任务 第4个任务 S1 S2 S1 S3 S2 S1 S3 stall stall S4 S3 S2 S1 S3 stall stall S4 S3 S2 S3 stall S4 S3 S3 S4

(2)

段 4 2 6 7 3 4 5 8 9 10 3 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 2 5 1 2 3 4 6 7 8 9 10 时间 1 1 2 3 4 5 6 7 8 9 10 23 ? t 1

TPmax?TpipelineTp?n12?t?23?tTpipeline?1023?t

?E?TP?5?t?50?54.35I2

(3)重复设置部件

Δt 3_1 1 2 4 3_2 Δt Δt Δt Δt

段 4 3_2 3_1 2 1 111 24 34 46 56 68 78 8 9 10 1 1 2 3 245 3 56 5 67 5 78 7 89 7 9 9 1010 9 10 23 34 时间 21014 ?t

TP?nTpipeline?10?514??t7??t

5107?t23?t吞吐率提高倍数==1.64

3.17 假设各种分支指令数占所有指令数的百分比如下:

条件分支 跳转和调用 20%(其中的60%是分支成功的) 5% 现有一条段数为4的流水线,无条件分支在第二个时钟周期结束时就被解析出来,而条件分支要到第三个时钟周期结束时才能够被解析出来。第一个流水段是完全独立于指令类型的,即所有类型的指令都必须经过第一个流水段的处理。请问在没有任何控制相关的情况下,该流水线相对于存在上述控制相关情况下的加速比是多少?

解:没有控制相关时流水线的平均CPI=1 存在控制相关时:由于无条件分支在第二个时钟周期结束时就被解析出来,而条件分支 要到第3个时钟周期结束时才能被解析出来。所以:

(1)若使用排空流水线的策略,则对于条件分支,有两个额外的stall,对无条件分支,有一个额外的stall:

CPI = 1+20%*2+5%*1 = 1.45 加速比S=CPI/1 = 1.45

(2)若使用预测分支成功策略,则对于不成功的条件分支,有两个额外的stall,对无条件分支和成功的条件分支,有一个额外的stall 1:

CPI = 1+20%*(60%*1+40%*2) +5%*1 = 1.33 加速比S=CPI/1 = 1.33

(3)若使用预测分支失败策略,则对于成功的条件分支,有两个额外的stall;对无条件分支,有一个额外的stall;对不成功的条件分支,其目标地址已经由PC 值给出,不必等待,所以无延迟:

CPI = 1+20%*(60%*2 + 40%*0) +5%*1 = 1.29 加速比S=CPI/1 = 1.29

4.4 假设有一条长流水线,仅仅对条件转移指令使用分支目标缓冲。假设分支预测错误的开销为4个时钟周期,缓冲不命中的开销为3个时钟周期。假设:命中率为90%,预测精度为90%,分支频率为15%,没有分支的基本CPI为1。

(1) 求程序执行的CPI。

(2) 相对于采用固定的2个时钟周期延迟的分支处理,哪种方法程序执行速度更快? 解:(1)程序执行的CPI = 没有分支的基本CPI(1) + 分支带来的额外开销 分支带来的额外开销是指在分支指令中,缓冲命中但预测错误带来的开销与缓冲没有命中带来的开销之和。

分支带来的额外开销= 15% * (90%命中×10%预测错误×4 + 10%没命中×3)= 0.099 所以,程序执行的CPI = 1 + 0.099 = 1.099

(2)采用固定的2 个时钟周期延迟的分支处理CPI = 1 + 15%×2 = 1.3 由(1)(2)可知分支目标缓冲方法执行速度快。

4.9 设指令流水线由取指令、分析指令和执行指令3个部件构成,每个部件经过的时间为△t,连续流入12条指令。分别画出标量流水处理机以及ILP均为4的超标量处理机、超长指令字处理机、超流水处理机的时空图,并分别计算它们相对于标量流水处理机的加速比。

解:标量流水处理机的时空图:

执行 分析 取指 14 时间

执行完12条指令需T1=14△t。

超标量流水处理机与超长指令字处理机的时空图:

本文来源:https://www.bwwdw.com/article/jux5.html

Top