没有合适的资源?快使用搜索试试~ 我知道了~
流水线实验报告1
需积分: 0 0 下载量 142 浏览量
2022-08-04
15:14:46
上传
评论
收藏 2.88MB PDF 举报
温馨提示
试读
23页
引入流水线寄存器,增加硬件成本;产生流水线寄存器延时,使单条指令运行时间延长,使时钟频率并不能提高 5 倍;并行指令间可能存在依赖关系,引入冲突,需要额外增加硬
资源详情
资源评论
资源推荐
COMP130144.01 计算机系统基础(下) 16307130194 陈中钰
2
1 总体状况
1.1 流水线 MIPS 处理器
单周期处理器在一个周期内执行一条完整的指令,结构易于解释且控制单元简单,
不需要其他非体系结构状态。但存在以下缺点:
时钟周期是由最慢的指令决定的,因此对于其他指令,每个周期都会有多余的时
间,整个处理器都处于空闲状态;
在一个时钟周期内,只执行一条指令,因此在任意时刻,大部分处理器硬件都处于
空闲状态,极大地限制了处理器的吞吐量。
因此,如要提高处理器效率,则需要减少处理器硬件空闲、提高吞吐量。而通过以
下的操作,可以实现上述的优化,获得流水线处理器:
在单周期处理器中插入 5 个流水线寄存器,分解成 5 个流水线阶段,使得可以在
每阶段流水线中同时执行 5 条指令,还可以几乎把时钟频率提高 5 倍,进而在理
想情况下,整个处理器的吞吐量可以提高 5 倍;
每个阶段的执行所需要的数据,包括 controller 控制信号,都要储存在流水线寄
存器中,随着流水线向前传播并保持同步;
正在并行处理的指令之间可能存在依赖关系(一条指令依赖另一条指令的结果),
这时候就会产生冲突,因此需要另外设计硬件来解决冲突。
尽管引入流水线寄存器增大了硬件成本,同时引入了一些开销,使吞吐量并不能达
到 5 倍之高,单条指令运行时间延长,但是流水线仍然有小成本的强大优势,并得到了
广泛的应用。
1.2 指令集(共 29 条指令,红色的是添加的 19 条指令)
逻辑运算:addi, and, or, add, sub, andi, ori, xor, xori, nor
移位运算:sll, srl, sra, lui, nop
分支跳转:beq, bne, bgez, bgtz, blez, bltz
比较运算:slt, slti
内存读写:sw, lw
跳转: j, jal, jalr, jr
注意:
以上指令的实现按照 MIPS 指令集文档中的格式,故不再附上指令格式要求
jal/jalr 指令调用函数,jr 函数返回后,紧跟 jal/jalr 的指令不会被执行
1.3 规格
register file: 32bit*32
data memory: 32bit*128
instruction memory: 32bit*128
1.4 实现功能
1. stop:屏蔽时钟,暂停运行
2. next:可在暂停的情况下,运行一条指令
3. reset:重置处理器
COMP130144.01 计算机系统基础(下) 16307130194 陈中钰
3
4. LED[15:0]:查看电路所有的控制信号
5. C[6:0] + AN[7:0]:查看电路所有的值
1.5 总体结构
top: 顶层模块
beepdiv, disdiv, dis0~7: 显示模块
clkdiv: 分频模块
mips, imem, dmem: 处理器模块
2 流水线设计
2.1 流水线阶段
类似于多周期处理器中执行 lw 指令的 5 个步骤,可以分为 Fetch、Decode、Execute、
Memory、Writeback 共 5 个阶段,在每个阶段加入流水线寄存器,储存该阶段运行所需的
数据。于是,每个阶段只有整个逻辑的 1/5,并负责单条指令在该阶段的操作,并在下一个
周期送入下一个阶段去运行下一步骤。
SignImmE
CLK
A RD
Instruction
Memory
+
4
A1
A3
WD3
RD2
RD1
WE3
A2
CLK
Sign Extend
Register
File
0
1
0
1
A RD
Data
Memory
WD
WE
0
1
PCF
0
1
PC' InstrD
25:21
20:16
15:0
SrcBE
20:16
15:11
RtE
RdE
<<2
+
ALUOutM
ALUOutW
ReadDataW
WriteDataE
WriteDataM
SrcAE
PCPlus4D
PCBranchM
ResultW
PCPlus4E
PCPlus4F
ZeroM
CLK CLK
ALU
WriteRegE
4:0
CLK
CLK
CLK
SignImm
CLK
A RD
Instruction
Memory
+
4
A1
A3
WD3
RD2
RD1
WE3
A2
CLK
Sign Extend
Register
File
0
1
0
1
A RD
Data
Memory
WD
WE
0
1
PC
0
1
PC' Instr
25:21
20:16
15:0
SrcB
20:16
15:11
<<2
+
ALUResult ReadData
WriteData
SrcA
PCPlus4
PCBranch
WriteReg
4:0
Result
Zero
CLK
ALU
Fetch Decode Execute Memory Writeback
Fetch:从 instruction memory 中读取指令;
Decode:对 Fetch 传来的指令进行译码以便产生控制信号,并从寄存器文件中读
取源操作数;
Execute:使用 ALU 进行计算;
COMP130144.01 计算机系统基础(下) 16307130194 陈中钰
4
Memory:读写 data memory;
Writeback:如果需要,把结果写回 register file。
2.2 特点
Time (ps)
Instr
Fetch
Instruction
Decode
Read Reg
Execute
ALU
Memory
Read / Write
Write
Reg
1
2
0 100 200 300 400 500 600 700 800 900 1100 1200 1300 1400 1500 1600 1700 1800 19001000
Instr
1
2
3
Fetch
Instruction
Decode
Read Reg
Execute
ALU
Memory
Read / Write
Write
Reg
Fetch
Instruction
Decode
Read Reg
Execute
ALU
Memory
Read/Write
Write
Reg
Fetch
Instruction
Decode
Read Reg
Execute
ALU
Memory
Read/Write
Write
Reg
Fetch
Instruction
Decode
Read Reg
Execute
ALU
Memory
Read/Write
Write
Reg
Single-Cycle
Pipelined
优点
缺点
每 阶 段 流 水
线 中 同 时 执
行 5 条指令;
时 钟 频 率 几
乎可以提高 5
倍;
吞吐量可以
提高近 5 倍。
引入流水线寄存器,增加硬件成本;
产生流水线寄存器延时,使单条指令运行时间延长,使时钟频率
并不能提高 5 倍;
并行指令间可能存在依赖关系,引入冲突,需要额外增加硬件逻
辑来解决冲突,同时还可能带来 stall 而降低流水线效率;
5 阶段运行所需时间并不平均,memory、decode 所需时间更长,
因此时钟频率需要以用时最长的阶段为准,故时钟频率并不能提
高 5 倍。
尽管流水线增大了单条指令的延时,增加了硬件成本,引入冲突,但是由于处理器每秒
执行上百万甚至更多条指令,所以吞吐量的提高尤为重要。由于引入了延时开销、5 阶段时
间不均匀,使得吞吐量并不能达到理想的 5 倍,但是流水线依然有小成本的强大优势,并被
广泛使用。
2.3 流水线控制
流水线处理器与单周期使用大致相同的控制信号,但是与特定指令相关的所有信号还必
须通过流水线一起向前传播,与指令的其他部分保持同步。(蓝色部分)
剩余22页未读,继续阅读
Orca是只鲸
- 粉丝: 27
- 资源: 317
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0