2-流水线处理机及其设计精讲.pdf
文本预览下载声明
6.3.3 流水线各级信号的产生
至此,我们已经描述过了所有3种指令类型的流水线操作。下面我们来总结控制信号
的产生方法。控制信号分布在流水线处理机的各级,我们当然可以在它们要被使用的流水
线级产生,例如SIMM可在EXE级产生。但这样,除了译码将会造成本级一些延迟之外,
还要使用流水线寄存器来传递必要的信息,例如指令操作码等。我们采用的方法是,控制
信号集中在ID级由译码电路产生,并使用流水线寄存器把每一个控制信号传递到它被使用
的流水线级。我们把所有的控制信号归纳在表6.4 中。表6.5列出了除了ALUOP 的各
控制信号的产生表达式。表6.6列出了ALUOP控制信号的产生表达式。
由以上表达式,我们可以有如图6.29所示的控制电路。图中使用了流水线寄存器来
把控制信号传递到合适的流水线级。我们可以看出,流水线控制部件的设计方法与非流水
线单周期处理机的控制部件的设计方法非常类似,而有限状态机和微程序的设计方法显得
不太适合。
表6.4 流水线各级控制信号的定义
流水线级 控制信号 注释
IF级 BTAKEN 转移发生
ID级 SS 选择store(rd)
SIMM 选择立即数
EXE级 ALUOP ALU操作码
WZ 写Z标志
MEM级 WMEM 写存储器
SLD 选择load
WB级
WREG 写寄存顺堆
表6.5 控制信号的产生表达式
BTAKEN=branch+bne +beqZZ
SST=store
SIMM=andi+ori+addi+subi+load+store
WZ=andi+ori+addi+subi+and+or+add+sub
WMEM=store
SLD=load
WREG=andi+ori+addi+subi+and+or+add+sub+load
表6.6 ALU控制信号的产生表达式
指令 ALUOP1 ALUOP0 操作 指令 ALUOP1 ALUOP0 操作
and 0 0 与 andi 0 0 与
or 0 1 或 ori 0 1 或
add 1 0 加 addi 1 0 加
sub 1 1 减 subi 1 1 减
load 1 0 加 store 1 0 加
ALUOPl =add+addi+sub+subi+load+store
ALUOPO =or+ori+sub+subi
图6 .29 流水线处理机的数据路径和控制部件
6 .4
显示全部