当前位置:文档之家› 计算机系统结构习题课-10级

计算机系统结构习题课-10级


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)
2.
在没有定向(或旁路)硬件的支持下,请画出该指令序 列执行的流水线时空图。假设采用排空流水线的策略处 理分支指令,且所有的存储器访问都可以命中Cache, 那么执行上面循环需要多少时钟周期 假设该DLX流水线有正常的定向路径,请画出该指令序 列执行的流水线时空图。假设采用预测分支失败的策略 处理分支指令,其所有的存储器访问都可以命中Cache, 那么执行上面循环需要多少时钟周期
例题选讲(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
例题选讲(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
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)
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
流水段 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];
i 1 n
或者写为 CPI (
i 1
n
ICi CPIi) ,它表明CPI为所有CPIi的加权平均值。 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
例题2的解答
• 对于瓶颈部分进行改进可以获得最大的改进效果。(第一问)
Sn 1 0.7 1 0.7 10 2.7

对于瓶颈部分进行改进可以获得最大的改进效果。(第二问) 同样情况下使用改进加速比大的方法
Sn 1 0 .7 0 .2 1 0 .7 0 .2 10 30 5.66
n
另一方面,我们又可以写 n Te Ti ( ICi CPIi CYCLE ) ( ICi CPIi ) CYCLE i 1 i 1 i 1 比较上面第一式与最后一式,可以得到CPI与CPIi的关系 IC CPI (ICi CPIi)
表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;
Sn
1 1 0.4 0.4 10

1 1.56 0.64
它说明局部(40%)的大幅度改进(10倍)对全局的作用要小得多(1.56倍)。 方法二: 40 4 60
例题选讲(2)
• 计算机系统中有三个部件可以改进,这三个部件 的部件加速比如下: 部件加速比1=30; 部件加速比2=20; 部件加速比3=10; 如果某个测试程序在三个部件上的比例分别为20%, 20%,70%,要达到最好改进效果,仅对一个部件 进行改进时,选择那个部件?如果运行两个部件, 又如何选择?
CPU的性能公式
CPI是衡量CPU执行指令效率的重要指标。让我们先考虑一个标准测 速程序的全部执行时间Te和其中所有第i种指令的累计时间Ti,易知
Te IC CPI CYCLE Ti ICi CPIi CYCLE 1 其中:CYCLE , f
n n
IC ICi
i 1
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 IFLW来自R10( R2)需要进行396/4=99次循环,由于每次分支预测都失败,并且在 ID段需要计算分支目标和分支条件。从上图可以看出每次循 环需要9个时钟周期,因此总共需要的时钟周期数为 98×9+10=892(或者891)
Exec Write Issue Comp Result
1 Load1 Load2 Load3
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;
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
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
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
RS Qj
RS Qk
Register result status: Clock
0 FU
F0
F2
F4
F6
F8
F10
F12
...
F30
Tomasulo Example Cycle 1
Instruction status:
相关主题