版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机组织与系统结构
设计流水线处理器
DesigningaPipelineProcessor
(第十五讲)
程旭
2000-12-18
北京大学计算机科学技术系微处理器研究开发中心
串行洗衣店
6PM78910111212AM
30'30'30'30'30'30'30'30'30'30'30'30'30'30'30'30
d迳
工作时间
务
田回A
次
忑
序
也
.
串行洗衣店需要8个小时完成4个工作量
如果他们了解流水技术,那么需要多长时间完成上述工作呢?
北京大学计算机科学技术系微处理器研究开发中心
流水技术无助于减少单个任务
流水技术性质的处理延迫(latency),但宥助
于提高整体工作负莪的吞吐率
多个不同任务同时操作,使用不
同资源
潜在加速比二流水线级数
流水线的速率受限于最慢的流
水段
流水段的执行时间如果不均衡,
那么加速比就会降低
开始填充流水线的时间和最后
排放流水线的时间降低加速比
相关将导致流水线暂停
北京大学计算机科学技术系微处理器研究开发中心
理想流水线
假设所有指令都完全独立!
IFDCDEXMEMWB
IFDCDEXMEMWB
IFDCDEXMEMWB
IFDCDEXMEMWB
IFDCDEXMEMWB
最大加速比v流水线段数
加速比<非流水化操作的时间
____________________曩长段的呻____________________
例如:40ns数据通路,5段,最长段为10ns,加速比<4
北京大学计算机科学技术系微处理器研究开发中心
流水技术会产生哪些问题?
流水线冒险(PipelineHazards)
•结构冒险(structuralhazards):试图同时以两种不同的方式
使用同一资源
-例如,多次存储器访问、多次寄存器写
-解决方案:多个存储器、暂停
•数据冒险(datahazards):在产生数据之前,就试图使用它们
-例如,addrl,r2,r3;subr4,rl,r5;Iwr6,0(r7);orr8,r6,r9
-解决方案:前递/旁路、暂停/气泡
•控制冒险(controlhazards):在判定转移条件之前,就试图决
策转移方向
-例如,条件转移
-解决方案:预测、延迟转移
北京大学计算机科学技术系微处理器研究开发中心
具有数据・E3定控制的流水化数据通路
就象时间■状态!
Ilw$2,20($5)IPC.
VI操作数寄存器选择
<=PC+4+immed
结果寄存器选择和使能
北京大学计算机科学技术系微处理器研究开发中心
总结
°流水处理是非常基本的概念
•使用不同资源的多个处理步骤
°通过流水化指令处理利用数据通路的处理能力
•在处理当前指令的同时,开始处理下一指令
•受最长段的时间限制
■需要检测和处理冒险
°哪些策略使得流水容易实现?
•所有的指令长度相同
•只有少量的指令格式
•Ld/St结构
°相关冒险问题是难点
北京大学计算机科学技术系微处理器研究开发中心
教学目标:已经掌握的内容
°计算机的五个基本部件
处理器
输入
存储器
输出
°本讲主题:为流水化数据通路设计控制
北京大学计算机科学技术系微处理器研究开发中心
控制图
MuS
UA
O/
Bo
OuH
£/
S
Ua§)A
_
北京大学计算机科学技术系微处包器研究开发中心
控制信号
°重要发现:N段的控制信号=Func(N段的指令)
•N=Exec、Mem或Wr
°示例:Exec段的控制信号=Func(Load的Exec)
:Ifetch:Reg/DecMem
RegWrBranch
l—
O.
|qa
E
IIX
FD
//'
IEM
D
xi
RR
eeR
gge
iig
ssi
ffs
eet
rre
r
RegDst=0ALUSrc=lMemWrMemtoReg
北京大学计算机科学技术系微处理器研究开发中心
流水线控制
在Reg/Dec段,主控产生控制信号
•Exec(ExtOp,ALUSrc,…)的控制信号在1个周期后使用
•Mem(MemWrBranch)的控制信号在2个周期后使用
•Wr(MemtoRegMemWrj的控制信号在3个周期后使用
Reg/DecExecMem
2ExtOpExtOp
ALUSrcALUSrcM
Ie
FALUOpALUOpm
/
IMain'
DRegDstRecDstw
Rr
eControl
gR
iemWrMemWrMemWre
sg
ti
eranchBranchBranchs
rf
e
r
emtoReg.MemtoRegMemtoRegVIemtoRee,
ReiWr、RegWrRecWrReqWr4
北京大学计算机科学技术系微处理器研究开发中心
回写段的开始:现实中的问题
Clk
RegAdrWrAdrX
RegWrMemWr
RegWr'sClk-to-QMemWr'sClk-to-Q
―►—
RegAdr^CIk-to-QWrAdr^Clk-to-Q
RegWrMemWr
W
redr
Da
at
°在Wr段的开始,如果下式成立,现实中就会出现问题:
•RegAdr、(RdorRt)Clk-to-Q>RegWr'sClk-to-Q
•在Address和WriteEnable之间出现了竞争!
°同样,在Mem段的开始,如果下式成立,现实中就会出现问题:
•WrAdrJsClk-to-Q>MemWrJsClk-to-Q
•在Address和WriteEnable之间出现了竞争!
北京大学计算玩科学技术系微处理器研究开发中心
流水线的问题
多周期设计是如何防止Addr和WrEn之间的竞争的?
■确保在第N个周期结束时地址是稳定的
■在第N+1个周期使WrEn有效
°这种方法在流水线设计中不能使用!这是因为
北京大学计算机科学技术系微处理器研究开发中心
同步寄存器堆和同步存储器
解决方案:将WriteEnable信号和时钟进行逻辑与
•只有这里可以使用门控的时钟信号
•必须咨询电路专家,确保没有定时违例:
-例如:ClockHighTime>WriteAccessDelay
同步存储器和同步寄存器
至少在时钟沿前的建立时间之间,
Address>Data和WrEn必须稳定
在捕获这些信号的时钟沿之后的
时钟周期,发生写操作
北京大学计算机科学技术系微处理器研究开发中心
Cycle4Cycle5Cycle6Cycle7
EndofCycle4:Ld'sMem,R-tpeJsExec,SfsReg,Beq'sIfetch
EndofCycle5:Ld'sWr,R-typeJsMem,SfsExec,Beq'sReg
EndofCycle6:R-typeJsWr,SfsMem,Beq、Exec
EndofCycle7:Store、Wr,Beq'sMem
北京大学计算机科学技术系微处理器研究开发中心
流水示例:第US周期结束
0:Load、Mem4:R-type5sExec8:Store、Reg12:Beq、Ifetch
8:Store'sReg4:R-type'sExec:0:Load'sMem
12:Beq'sIfetALUOp=R-type
RegWr=0ExtOp=xBranch=0
Clk
PC+4
Imml6
busAZeroData
A
Mem
IbusB
RADo
s
二.WA
Di
I
RegDst=lALUSrc=0ClkMemtoReg=x
北京大学计算机科学技术系MemWr=微处理器研究开发中心
流水示例:第五周期结束
0:Lw'sWr4:R5sMem8:St'sExec12:Beq、Reg16:R'sIfetch
12:Beq,sReg,8:Store'sExec4:R-type'sMem
0:Load'sWr
16:R'sRfetALUpp=Add
RegW「]ExtOp:1Branch=0
Clk
aQ
pcE
X
+4I
DPC+4'
/M
Ee
xImml6
:m
:ZerolData
BbusA
es
qbusBfMem
oo
sr
e-j-►RADo
bc
us!—►WA
sA-I-kDi
Ad
d
&<r
e
Bs
s
ALUSrc=lClk----|-J-MemtoRegM
MemWr=0~
北京大学计算机科学技术系微处理器研究开发中心
流水示例:第六周期结束
4:R'sWr8:St'sMem12:Beq'sExec16:R'sReg20:RJsIfet
12:Beq'sExec8:Store'sMem
◄---------------►
4:R-type'sWr
ALUpp=Sub
ExtOp二1Branch=0
Ik
o-D。A
lcI
D
I+4f
F/PC+4E
=EX
DXImml6、
:M
:
RbusAiZeroData
I—
nt:
sybusBMem
fpB
reeRADo
ucq
cso
dbsWA
ou
sRDi
n
@Ase
I<u
2&-
0sf
■
RegDskxA,USrc=0ClkMemtoRegM)
北京大学计算机科学技术系MemWr=微处理器研究开发中心
流水示例:第七周期结束
8:St'sWr12:Beq、Mem16:R'sExec20:R'sReg24:R'sIfet
20:R-type'sReg16:R-type'sExeq:12:Beq'sMem
24:8:Store'sWr
ALUOp=R-typp
R-type'sIfet
RegWr=0ExtOp=x.Branch=l
ClkI
-
—
Qo凸
Il
ls/lPC+4
Elg'lJ
XM
:Imml6e
Rm
—
fbusA:ZenData
y
pR
ebusBtMem
cy
spRADo
be
uo
ssWA
AR
eDi
us
lg
I
RegDstf=lALUSrc=0qk—p)MemtoReghx
MemWr=0~'
北京大学计算机科学技术系微处理器研究开发中心
延迟转移现象
Cycle4Cycle5:Cycle6Cycle7Cycle8Cycle9Cycle10Cycle11
.___
Clk_|_|1_|_1_|_|_|_|1_
12:BeqIfetch|Reg/Dec|Exec|MemWr
■、-
(targetis1000)11
Ifetch^Reg/Dec|ExeciMem|Wr
16:R-type■
20:R-type|'【fetch|Reg/Dec'[ExecMem|Wr
24:R-typeIfetchkeg/Dec|ExecMemWr
1000:TargetofBrIfetch|Reg/Dec||Exec|Mem|Wr
虽然Beq在第4周期取指:
•目标地址在第7个周期结束时才能写入PC
•转移的目标在第8个周期前不能被取指
•在转移发生效果之前,有解指令被延迟
这也就是转移冒险(BranchHazard):
非常精致的设计有可能将这一延迟减小至一条指令
北京大学计算机科学技术系微处理器研究开发中心
延迟装入现象
Cycle1Cycle2Cycle3Cycle4:Cycle5Cycle6Cycle7Cycle8
i_i-
Clock1_|_|i_rn1iI_|1_
10:LoadIfetch|Reg/Dec|Exec|Mem|Wr
■■■J
Plus1Ifetch|Reg/Dec|Exec|卜Mem\Wr
Plus2Ifetch|Reg/Dec|〜Exec,IMem|Wr
Plus3Ifetch|Reg/Dec[ExecMem1Wr
Plus4IfetchReg/Dec|ExecMemWr
V
虽然Load在第一个周期就被取指:
•它的数据直到第五个周期结束时才被写入到寄存器堆
•在第六个周期之前,不可能从寄存器堆中读取这一数值
•在装入指令结束之前,有栋指令被延迟
北京大学计算机科学技术系微处理器研究开发中心
数据通路+数据一E3定控制
北京大学计算机科学技术系微处理器研究开发中心
指令流水示例
10lwr1,r2(35)
14addir2,r2,3
20sub
24beqr6,r7,100
30orir8,r9,17
34addr10,r11,r12
100andr13,r14,15地址以八进制表示
北京大学计算机科学技术系微处理器研究开发中心
北京大学计算机科学技术系微处理器研究开发中心
北京大学计算机科学技术系微处理器研究开发中心
北京大学计算机科学技术系微处理器研究开发中心
北京大学计算机科学技术系微处理器研究开发中心
Fetch30并Decode24并Exec20并Meml4并WB10
k/B
M
0b
ID
IF
34addr1O,r11,r12
O
注意延迟转移:在B;q之后总是执行ori100andr13,r14,15
北京大学计算机科学技术系微处理器研究开发中心
FetchlOO并Decode30并Exec24并Mem20并WB14
□□□
oWB
00MemCtrl
Ctrl
o
IRxxX
IO
r6■
iZI
110lwr1,r2(35)
>0B14addl2r2,3
IM20subr3,r4,r5
E*
o24hftnr6r7100
R30orir8,r9,17
34addr10,r11,r12
O
注意延迟转移:在Beq之后总是执行oriIF100andr13,r14.15
北京大学计算机科学技术系微处理器研究开发中心
Fetchl04并Decodel00并Exec30并MeIn24并WB20
北京大学计算机科学技术系微处理器研究开发中心
FetchllO并口3(30(16104并£乂3(3100并皿11130并帕24
北京大学计算机科学技术系微处理器研究开发中心
Fetchll4^Decodell0^Execl04^Meml00^WB30
北京大学计算机科学技术系微处理器研究开发中心
再谈流水线冒险
IFDC;ExMem
IF|DCD|OFIExIRSWARDataHazard
(writeafterread)
北京大学计算机科学技术系微处理器研究开发中心
数据冒险
°如何避免一些冒险
•通过总是在流水线的前段(DCD)取操作数,来消除WAR
•通过按序完成所有回写操作(在最后一级,静态),来消除
WAW
°检测并解决RAW
暂停,并尽可能前递
北京大学计算机科学技术系微处理器研究开发中心
冒险检测
°照例令i将被发射,它的前指令J在指令流水线中
°关于寄存器r存在RAW冒险,如果rGRregs(i)nWregs(j)
•保存流水线中指令的尚未完成写的纪录信息,并与当前指令的操
作数寄存器进行比较
•当发送指令时,预留它的结果寄存器
•当完成操作后,删除它的写预留(writereservation)
关于寄存器r存在WAW冒险,如果rGWregs(i)nWregs(j)
关于寄存器r存在WAR冒险,如果rGWregs(i)cRregs(j)
北京大学计算机科学技术系微处理器研究开发中心
未完成写的纪录
/当前操作数寄存器
/未完成写操作
冒险<=
((rs==rwex)®Wex)OR
((rs==rwmem)®Wme)OR
((rs==rwwb)®Wwb)OR
(“t==rwex)®Wex)OR
((rt==rwmem)®Wme)OR
((rt==rwwb)®Wwb)
北京大学计算机科学技术系微处理器研究开发中心
通过前递解决RAW冒险检测最近的valid
写操作操作数寄存
器笄forward到
op就存需
bypassing流水
线中的其他部分
增加多路选择器来
增设来自流水线寄
存器的通路
DataForwarding
=DataBypassing
北京大学计算机科学技术系微处理器研究开发中心
存储器操作
•如果指令按序开始处理,并且在相
同段执行操作,那么存储器操作之
间就没有冒险!
•延迟算术操作的回写会产生哪些开
销?
•时钟周期?
•硬件?
・关于装入指令的数据相关如何?
•R1R4+R5
•R2<=Mem[R2+i]
•R3<=R2+R1
=>
至寄存器堆
"DelayedLoads"
北京大学计算机科学技术系微处理器研究开发中心
编译消除装入暂停的效果
%loadsstallingpipeline
北京大学计算机科学技术系微处理器研究开发中心
如何处理中断、自陷、故障?
°外部中断:
•允许流水线排空,
•PCU中断地址
°故障(指令内部、可重启)
・强制自陷指令进入IF
•禁止写操作直到自陷指令达到WB
•必须保存多个PCs或者PC+state
RefertoMIPSsolution
北京大学计算机科学技术系微处理器研究开发中心
意外事件处理
检测错误指令地址
Ilw$2,20($5)1
检测错误指令
Iimhfnhoprwj
检测溢出
检测错误数据地址
允许意外事件生效!
北京大学计算机科学技术系微处理器研究开发中心
意外事件中的问题
°意外事件/中断:在5段流水线中执行着5条指令
•如何停止流水线?
•重启?
•哪些问题产生中断?
段名可能出现的中断问题
IF取指页失效、未对准存储器访问、存储保护违例
ID未定义或非法操作码
EX算术意外事件
MEM取数据页失效、未对准存储器访问、存储保护违例、存储器错误
°产生数据页失效的Load指令、产生指令页失效的Add指令?
°解决方案1:中断向量/指令
°解决方案2:尽可能早地中断执行,之后,重启所有未执行完的操作
北京大学计算机科学技术系微处理器研究开发中心
解决方案:上部冻结&下部加空泡
北京大学计算机科学技术系微处理器研究开发中心
参考:MIPSR3000的时钟定时策略
phi1---------------I-
phi2__________
°双相无重叠时钟(2・phasenonoveHappingclocks)
°流水线段两级锁存(电平使能)
边沿触发
北京大学计算机科学技术系微处理器研究开发中心
MIPSR3000指令流水线
Decode
InstFetchReg.ReadALU/E.AMemoryWriteReg
TLBl-CacheRFOperationWB
E.A.TLBD-Cache
北京大学计算机科学技术系微处理器研究开发中心
关于rl的数据冒险
•立即向后相关就可能出现冒险
时间(时钟周期}IFID/RFEXMEMWB
addrl,r2,r3IMi£RegDM
指IM上
subr4,rlJr3DM
令
andr6rl,r7IMXReg
次5
序
:
orr83rl,r9IMJReg
仅orMemMemReg
在MIPSR3000流水线中,无需从WB段进行前递!
北京大学计算机科学技术系微处理器研究开发中心
MIPSR3000的多周期操作
例如:乘法、除法、Cache失效
暂停流水线中多周期操
作之上的所有流水段
排空(空泡)它之下的
所有段
使用本地流水段状态的
控制字来一步步执行多
周期操作
北京大学计算机科学技术系微处理器研究开发中心
流水化设计中的指令发送
基本流水线
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 儿童五官护理
- 危急值护理的风险评估
- 政教处小学廉洁教育活动方案
- 福建省厦门一中海沧校区2023-2024学年高三9月月考生物试题(解析版)
- 电解槽节能技术改造及配套项目环境影响报告书
- 广东省深圳市石厦校2026届初三中考猜题卷(一)语文试题含解析
- 浙江省温州市翔升2026届初三3月教学情况调研(一)英语试题含解析
- 山东省泰安市宁阳县2026年初三下学期第三次验收英语试题理试卷含解析
- 江苏省南通市崇川区启秀中学2026届初三语文试题下学期第四次质量检测试题含解析
- 湖南省长沙市一中学湘一南湖校2025-2026学年初三第二次模拟考试试卷语文试题含解析
- 卫生部病历书写基本规范2025年版
- QGDW11337-2023输变电工程工程量清单计价规范
- 大学生创新创业基础(创新创业课程)完整全套教学课件
- 沉井专项施工方案-9310
- DB32∕T 3916-2020 建筑地基基础检测规程
- 更换风口操作规程
- 小儿喂养与膳食安排
- SMED快速换模教程
- 汇川IS620系列伺服应用案例7一伺服非标应用
- 机械制造技术基础 第2章
- 黎族文化简介课件
评论
0/150
提交评论