计算机系统结构习题课(2011)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例题选讲(5)
• 在DLX流水线上运行如右代码序列。 LOOP: 其中,R3的初值是R2+396。假设, 在整个代码序列的运行过程中,所 有的存储器访问都是命中的,并且 在一个时钟周期中对同一个寄存器 的读操作和写操作可以通过寄存器 文件定向。问:
1.
LW R1 0(R2) ADDI SW ADDI SUB BNZ R1 R1 R2 R4 R4 R1 0(R2) R2 R3 LOOP #4 R2 #1
Typical Mix
(% Time) (33%) (27%) (13%) (27%)
例题选讲(4)
CPU能耗问题: CPU的动态功率为:
P k i A C dyn i V if
2 i units
例4 某8核CPU能够动态启动和关闭工作的核,假设某一程 序80%部分可以并行执行,下面有两个调度方案,不考虑L1, L2$对于计算过程的影响,CPI在两种情况下都不变; T0为 程序原来执行的时间,P0为单核执行不改变时的功率。请 分别计算该程序运行在两种情况下的实际功耗。 (1)只使用一个核,其它核关闭,CPU电压增加10%,主频 增加20%; (2)使用全部8个核,CPU电压增加10%,主频不变
Sn
1 1 0.4 0.4 10
1 1.56 0.64
它说明局部(40%)的大幅度改进(10倍)对全局的作用要小得多(1.56倍)。 方法二: 40 4 60
例题选讲(2)
• 例2:计算机系统中有三个部件可以改进,这三个 部件的部件加速比如下: 部件加速比1=30; 部件加速比2=20; 部件加速比3=10;
解答
• T0为程序原来执行的时间,P0为单核执行不改变时的功 率,其执行程序的总能耗为W0= T0*P0 (1)T1=T0/(1+0.2)=(5/6)T0; P1=(1+10%)2* (1+20% )* P0 =1.452* P0 W1=T1* P1=1.167 W0 (2) T2=(20%+80%/8)*T0=30%T0 P2=(1+10%)2* 8* P0 =9.68 W2=T2* P2=2.904 W0
0(R 2) R2
R1
IF
S
AD DI SU B BN Z
R2
#4
S
IF
R4
R3
R2
IF
R4
LO O P
IF
IDs IF
LW
R1
0( R2)
需要进行396/4=99次循环,由于每次分支预测都失败,并且在 ID段需要计算分支目标和分支条件。从上图可以看出每次循 环需要9个时钟周期,因此总共需要的时钟周期数为 98×9+10=892(或者891)
对于瓶颈部分进行改进可以获得最大的改进效果。(第二问) 同样情况下使用改进加速比大的方法
Sn 1 0 .7 0 .2 1 0 .7 0 .2 10 30 5.66
CPU的性能公式
CPI是衡量CPU执行指令效率的重要指标。让我们先考虑一个标准测 速程序的全部执行时间Te和其中所有第i种指令的累计时间Ti,易知
0(R 2)
S
S
AD DI SU B BN Z
R2
R 2 R 3 L O O P
#4
S
S
IF
S
S
I D I F
M E M S
W B S E X I D M E M S W B S E X M E M
IF
R4
R 2
S
S
R4
S
S
需要进行396/4=99次循环,由于每次分支都清空流水线。从上 图可以看出每次循环需要16个时钟周期,因此总共需要的时 钟周期数为99×16=1584(或1583)
RS Qj
RS Qk
Register result status: Clock
0 FU
F0
F2
F4
F6
F8
F10
F12
...
F30
Tomasulo Example Cycle 1
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
Exec Write Issue Comp Result
EX
或 EX/MEM.ALUoutput ← ID/EX.A op ID/EX.Imm; EX/MEM.cond ← 0; MEM/WB.IR ← EX/MEM.IR;
MEM/WB.IR ← EX/MEM.IR; MEM/WB.LMD ← Mem[EX/MEM.ALUoutput]; 或 Mem[EX/MEM.ALUoutput] ← EX/MEM.B;
2.
在没有定向(或旁路)硬件的支持下,请画出该指令序 列执行的流水线时空图。假设采用排空流水线的策略处 理分支指令,且所有的存储器访问都可以命中Cache, 那么执行上面循环需要多少时钟周期 假设该DLX流水线有正常的定向路径,请画出该指令序 列执行的流水线时空图。假设采用预测分支失败的策略 处理分支指令,其所有的存储器访问都可以命中Cache, 那么执行上面循环需要多少时钟周期
流水段 IF/ID.IR ← Mem[PC]; IF
任何指令类型
IF/ID.NPC,PC ← (if EX/MEM.cond {EX/MEM.NPC} else {PC+4}); ID/EX.A ← Regs[IF/ID.IR6..10]; ID/EX.B ← Regs[IF/ID.IR11..15];
Te IC CPI CYCLE Ti IC i CPI i CYCLE
其中: CYCLE 1
f
,
IC
源自文库
IC i i
1
n
另一方面,我们又可以写 n Te Ti (IC i CPI i CYCLE ) (IC i CPI i ) CYCLE i 1 i 1 i 1 比较上面第一式与最后一式,可以得到CPI与CPIi的关系
如果相对某个测试程序三个部件的可改进比例分别 为20%,20%,70%,要达到最好改进效果,仅对 一个部件进行改进时,选择那个部件?如果运行 两个部件,又如何选择?
例题2的解答
• 对于瓶颈部分进行改进可以获得最大的改进效果。(第一问)
Sn 1 0.7 1 0.7 10 2.7
Store Buffers
To Mem FP multipliers
LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6
34+ 45+ F2 F6 F0 F8
R2 R3 F4 F2 F6 F2
Latency 1 1 10 2 40 2
Common Data Bus (CDB)
ID
ID/EX.NPC ← IF/ID.NPC;ID/EX.IR ← IF/ID.IR; ID/EX.Imm ← (IR16)16##IR16..31; ALU指令 EX/MEM.IR ← ID/EX.IR; EX/MEM.ALUoutput ← ID/EX.A op ID/EX.B EX/MEM.IR ← ID/EX.IR; EX/MEM.ALUoutput ←ID/EX.A + ID/EX.Imm; Load/Store指令 分支指令 EX/MEM.ALUoutput ← ID/EX.NPC + D/EX.Imm; EX/MEM.cond ← (ID/EX.A op 0);
1
2
3
4
5
6
7
8
9
1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
… … 5 5
5 6
5 7
34 LD F6 + R2 I 45 LD F2 + R3 M UL TD F0 F2 F4 SU BD F8 F6 F2 DI V F1 D 0 F0 F6 A D D F6 F8 F2
ES EC W I ES EC W
表3.5列出了在改进后的流水线数据通路上处理分支 指令的一些操作
流水段 IF/ID.IR ← Mem[PC]; IF/ID.NPC , PC IF ← ( if ID/EX.cond {ID/EX.NPC } else {PC + 4} ); 分支指令操作
ID/EX.A ← Regs[IF/ID.IR6..10]; ID/EX.B ← Regs[IF/ID.IR11..15]; ID/EX.NPC ← IF/ID.NPC + ( IR16 )16 ## IR16..31; ID ID/EX.IR ← IF/ID.IR; ID/EX.cond ← ( Regs[IF/ID.IR6..10] op 0 ); ID/EX.Imm ← ( IR16 )16 ## IR16..31;
I
S
I
ES E
ES E
E
E
E
E
E
E
E
E
EC W
EC W
I
S I
S S S S S S S E E E W S C
S
S
S
ES E
E
… … E
EC W
Tomasulo Example
Instruction status:
Instruction LD F6 LD F2 MULTD F0 SUBD F8 DIVD F10 ADDD F6 j 34+ 45+ F2 F6 F0 F8 k R2 R3 F4 F2 F6 F2
EX
MEM
WB
1
LOO P: LW R1 0( R2) IF
2
ID
3
E X
4
M E M S
5
W B
6
7
8
9 1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
2 0
2 1
AD DI SW
R1
R1
#1
IF
ID
E X ID
M E M E X ID
W B M E M E X ID W B M E M EX W B M E M I D i W B E X i IF M E M i
MEM
MEM/WB.ALUoutput EX/MEM.ALUoutput;
Regs[MEM/WB.IR16..20] ← MEM/WB.ALUoutput; WB 或 Regs[MEM/WB.IR11..15] ← MEM/WB.ALUoutput; Regs[MEM/WB.IR11..15] ← MEM/WB.LMD;
例题选讲(6)
• 在下面Tomasulo结构上执行指令,分别计算 每条指令写结果阶段的时间(时钟周期 数),并画出相应的时空图。
From Mem FP Op Queue Load Buffers
FP Registers
Load1 Load2 Load3 Load4 Load5 Load6 Add1 Add2 Add3 FP adders Mult1 Mult2 Reservation Stations
Exec Write Issue Comp Result
Load1 Load2 Load3
Busy Address
No No No
Reservation Stations:
Time Name Busy Add1 No Add2 No Add3 No Mult1 No Mult2 No
Op
S1 Vj
S2 Vk
高级计算机系统结构习题课
题目讲解 2012-1-4
第一章 计算机设计基本原理
• Amdahl定律
可改进比例:该部件的原执行时间在原系统总执行时 间中所占的比例
总执行时间 1 改进前 系统加速比= = 可改进比例 总执行时间 改进后 ( - 可改进比例)+ 1 部件加速比
例题选讲(1)
例1 假设将某系统的某一部件的处理速度加快到10倍,但该系统的 原处理时间仅为整个运行时间的40%,则采用加快措施后能使整个 系统的性能提高多少? 方法一:依 Amdahl定律公式,已知:Fe=0.4,Se=10,求Sn。
n n
IC CPI
或者写为
(IC i i
1
n
CPI i) CPI i),它表明CPI为所有CPI i的加权平均值。
CPI
( ICi i
1
n
IC
例题选讲(3)
Base Machine (Reg / Reg) Op Freq Cycles CPI(i) ALU 50% 1 .5 Load 20% 2 .4 Store 10% 2 .2 Branch 20% 2 .4 1.5
1
LO OP: LW R1 0( R 2) R 1 R 1 #1 IF
2
I D
3
E X
4
M E M S
5
W B
6
7
8
9 1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 1 1 7 8 9
2 0
2 1
AD DI SW
R1
IF
I D IF
S
E X I D
M E M S
W B S E X M E M E X I D IF W B