程序代写代做 流水线处理器作业

流水线处理器作业
PCSrc
Ad Shift
left 2
ALU
1 0
d
Instruction Memory
Read Address
Read Addr 1
Register Read Data 1
Read Addr 2
File
Write Addr Read
Data 2 Write Data
Data Memory
Address Read Data
Write Data
ALU cntrl
16 Sign 32 Extend
IF/ID.RegisterRs
0 1
IF/ID.RegisterRt
IF/ID.RegisterRt
Forward Unit
IF/ID.RegisterRd
ID/EX.RegisterRt
1 0
Add 4
Hazard Unit
Control 0
ID/EX
ID/EX.MemRead
EX/MEM
IF/ID
0 1
Branch
MEM/WB
1 0
图 1:流水线数据通路,带转发(Forwarding)和冒险检测(Hazard)单元 考虑图 1 所示流水线数据通路中执行以下指令序列:
add $3, $2, $1
add $3, $2, $1
and $5, $3, $4
lw $5, 0($5)
add $6, $5, $5
1. 考虑图 1 中硬件单元和指令序列,分别说明在第 5 个时钟周期和第 6 个时钟周期,寄
存器堆的哪些寄存器被读取,哪些寄存器被写入(认为空指令 NOP、FLUSH 等操作并 不会访问寄存器堆)。
2. 考虑图 1 中硬件单元和指令序列,说明在第 5 个时钟周期,转发单元进行的比较操作 及执行结果(需要考虑 RegWrite 信号对于比较结果的影响,忽略访问寄存器$0 的比 较,比较操作可以用伪代码描述,执行结果可用文字描述)
PC

3. 考虑图 1 中硬件单元和指令序列,说明在第 5 个时钟周期,说明在第 6 个时钟周期, 冒险探测单元进行的比较操作和执行结果(考虑 MemRead 信号,忽略寄存器$0,比
较操作可以用伪代码描述,执行结果可用文字描述)
4. 考虑图 1 中硬件单元,假设有一个包含足够多条形如“lw, add, lw, add …”指令的程序。
其中 add 指令仅依赖于它之前的那条 lw 指令,lw 指令仅依赖于它之前的那条 add 指
令,如果这个程序被图 1 的流水线数据通路执行。问:
1) 实际 CPI 是多少?
2) 如果没有转发机制,CPI 是多少?
(本题为主观题,需要阐释答题思路,不要像填空题一样只给个结果)
5. 已知某处理器中功能单元的延迟分别如下:
➢ 访存时间 200ps (包括访问数据和指令) ➢ ALU 操作时间 100ps
➢ 寄存器堆读写延时 50ps 需要执行的指令分布如下:
➢ 25% load 指令
➢ 10% store 指令
➢ 52% ALU 计算指令
➢ 11% 分支(branch)指令
➢ 2% 跳转(jump) 指令
由于访存时间远高于 ALU 操作时间,导致内存访问限制了多周期处理器和流水线处理 器的时钟频率,影响处理器性能。 假设有一种新型内存,访问需要两个时钟周期才能完成,但是每个周期只需要 100ps。 现在我们将这种新的内存技术应用到多周期和流水线处理器中。
IF ID
EX EX EX EX EX
MEM MEM WB
WB
load store alu branch jump
图 2:五阶段多周期处理器状态转移图

1) 多周期处理器,分为 IF, ID, EX, MEM, WB 五个阶段。如果没有新型内存,状态转 移图如图 2 所示。将上述新型内存应用到该五阶段多周期处理器之后,请画出多 周期处理器有限状态机的状态转移图(跳转条件可以不用标出,但是要标出各个 阶段名称以及指令类型,可参考图 2)。给出此时多周期处理器的平均 CPI 和平均 单条指令耗时。
2) 哈佛结构流水线处理器(MEM 阶段分支电路)还是 IF, ID, EX, MEM, WB 五阶 段。如果没有新型内存,流水线示意图如图 3 所示。现将新型内存应用到该五阶 段流水线处理器中,请画出改进后的流水线示意图(画出各级流水阶段,标明流 水线时钟频率,可参考图 3)。列举新流水线中所有可能转发位置和所有可能的冒 险(可以在图上标出转发和冒险位置,然后用文字描述,可参考图 3)。
200ps 200ps
IF ID EX MEM WB
前条指令load冒险
从前前条load指 IF ID EX MEM WB 令MDR转发
前前前条指令 branch冒险
IF ID EX MEM WB
从前条alu指令 EX/MEM转发
IF ID EX MEM WB 图 3:五级流水线处理器示意图