




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、u第第 5 5 周周 第第 1 1 节课节课u授课教师:授课教师: 陈天洲陈天洲u课件下载课件下载 http:/3.1 流水线基本概念流水线基本概念3.2 DLX基本指令流水线基本指令流水线3.3 流水线障碍流水线障碍流水线竞争流水线竞争3.4 数据竞争数据竞争3.5 控制竞争控制竞争3.6 流水线实现难点流水线实现难点3.7 多周期操作的指令流水线多周期操作的指令流水线3.8 指令集结构设计与指令流水线的关系指令集结构设计与指令流水线的关系3.9 进一步开发指令级并行性进一步开发指令级并行性一、什么是流水线一、什么是流水线 例例1 “摩登时代摩登时代”中的装配生产线中的装配生产线 例例2 浮
2、点加法流水线浮点加法流水线二、流水线分类二、流水线分类u按处理级别按处理级别 操作级流水操作级流水 操作重叠操作重叠 指令级流水指令级流水 指令执行重叠指令执行重叠 处理器级(宏流水线)处理器级(宏流水线) 任务重叠任务重叠 u按完成功能按完成功能 单功能流水线单功能流水线 多功能流水线多功能流水线 静态流水线静态流水线 、 动态流水线动态流水线 u按处理的数据类型按处理的数据类型 标量流水线标量流水线 向量流水线向量流水线u按流水线结构按流水线结构 线性流水线线性流水线 非线性流水线非线性流水线u按流水方式按流水方式 顺序流水方式:顺序流水方式: 指令流出顺序指令流出顺序 = 指令流入顺序指
3、令流入顺序 异步流水方式:异步流水方式: 指令流出顺序指令流出顺序 指令流入顺序指令流入顺序1234567S1S2S3S4u预约表预约表u禁止表禁止表 3, 4, 6u状态图状态图10110011111011011111111111011012521=.75=.75=.7 是使得多条指令重叠执行的一种处理是使得多条指令重叠执行的一种处理器实现技术器实现技术 图图 流水线的基本结构流水线的基本结构1、特点、特点u指令执行分成若干个阶段指令执行分成若干个阶段流水级;流水级;u每个流水级由各自独立的功能部件(流水功能每个流水级由各自独立的功能部件(流水功能部件)完成,任一时刻各流水级并行地对不同部件
4、)完成,任一时刻各流水级并行地对不同指令作不同阶段的操作;指令作不同阶段的操作;u各流水级在同一时钟控制下在同一时刻将本级各流水级在同一时钟控制下在同一时刻将本级的输出数据(信号)送到下一流水级;两次传的输出数据(信号)送到下一流水级;两次传送时间间隔称为:机器周期送时间间隔称为:机器周期;u各流水级完成功能的时间不同,机器周期由最慢各流水级完成功能的时间不同,机器周期由最慢的流水级决定;的流水级决定;u一条指令按序经过各流水级,从最后一级流出才一条指令按序经过各流水级,从最后一级流出才算执行完成。算执行完成。2、指令流水线的目的、指令流水线的目的u提高指令处理速度提高指令处理速度提高吞吐率:
5、单位时间内提高吞吐率:单位时间内完成的指令数完成的指令数 不用流水线技术程序执行时间不用流水线技术程序执行时间Speedup= 用流水线技术程序执行时间用流水线技术程序执行时间 CPUtime= IC *CPI*CC 平均每条指令的执行时间(平均每条指令的执行时间(CPI) Told Told / 流水级数流水级数 时钟周期缩短时钟周期缩短(CC) CCold=Told Told / 流流水级数水级数=CCnewu提高提高CPU内各功能部件的利用率内各功能部件的利用率3、指令流水线的描述指令流水线的描述u流水状态图流水状态图u流水线时空图流水线时空图每条指令可以在每条指令可以在5个时钟周期内完
6、成。个时钟周期内完成。1、取指令周期(、取指令周期(IF) IR MemPC NPC PC + 42 、译码、译码/读寄存器周期(读寄存器周期(ID) A RegIR 6.10 B RegIR11.15 Imm ( (IR16)16# IR16.31)3、执行、执行/有效地址计算(有效地址计算(ALU) Load/Store: ALUoutput A+Imm R-R ALU: ALUoutput A func B R-I ALU: ALUoutput A op Imm Branch: ALUoutput NPC + Imm; Cond A op 04、存储器访问、存储器访问/转移完成(转移完成
7、(MEM) Load/Store: LMD MemALUoutput MemALUoutput B Branch: if (Cond) then PCALUoutput else PC NPC5、写回周期(、写回周期(WB) R-R ALU: RegsIR16.20 ALUoutput R-I ALU: RegsIR11.15 ALUoutput Load: RegsIR11.15 LMD 转移指令:(转移指令:(16%+8%)/ 2 = 12% 4其他指令:其他指令: 88% 5CPI = 4 12% + 5 88% = 4.88改进改进1:ALU: 4个时钟周期个时钟周期 CPI = 4
8、(12%+44%)+5 44%=4.44改进改进2:减小硬件冗余度:减小硬件冗余度 Add、ALU合用一个合用一个ALU 指令指令memory 与数据与数据memory合用一合用一个个memoryCPI =1 CC2CC1u临时寄存器可省去临时寄存器可省去u一般不采用的原因:一般不采用的原因:u低效率低效率 指令要执行的操作总量变化较大指令要执行的操作总量变化较大u重复设置功能部件(方案一中可共享)重复设置功能部件(方案一中可共享) 非流水线实现的非流水线实现的DLX u一条指令一条指令5个时钟周期个时钟周期u一个流水级一个流水级 花一个时钟周期花一个时钟周期u每个时钟周期启动一条指令每个时钟
9、周期启动一条指令关键:同一时钟周期里,不同指令不会使用同一数据通路关键:同一时钟周期里,不同指令不会使用同一数据通路资源资源uIM 与与DM不能用单一不能用单一memory IM:指令:指令Cache DM:数据:数据Cache 存储器带宽要提高存储器带宽要提高5倍倍 2次次 /5个时钟周期个时钟周期 2次次/1个时钟周期个时钟周期u ID的读的读Reg 与与WB的写的写Reg 2个个Reg读读 + 1个个Reg写写 / 时钟周期时钟周期 2个读口,一个写口个读口,一个写口 Reg 读读 = Reg写写 数据竞争数据竞争uPC 非流水:非流水: IF读读PC,MEM写写PC 流水:流水: IF
10、完成完成 PC+4 PC 前面的前面的Branch指令可能要写指令可能要写PC u流水线锁存器(在两级之间传递值和控制信号)流水线锁存器(在两级之间传递值和控制信号) 某一值在后续流水级中要用到,就必须送入某一值在后续流水级中要用到,就必须送入Latch如:如:IF/ID中有中有IR ID中要译码中要译码 MEM/WB中有中有IR ALU(IR16.20) 或或Load( IR11.15)的目的域段的目的域段 ID/EX中有中有IR uALU:PC增值增值 1个个Adder算术逻辑部件算术逻辑部件 ALU不访存不访存 有效地址计算有效地址计算 访存指令不做访存指令不做ALU操作操作 1个个AL
11、Uu控制信号(控制信号( MUX) 1. EX级的级的MUX: 由指令类型控制由指令类型控制 是:是: NPC ALU 是是Branch? 否:否:IR6.10 ALU 是:是: IR11.15 ALU 是是R-R ALU指令?指令? 否:立即数否:立即数/位移量位移量 ALU 2. IF级的级的MUX: 由由Cond判断控制判断控制 3. WB级的级的MUX: 由指令类型控制(由指令类型控制( Load/ALU) 4. ALU级的级的MUX:由指令类型控制由指令类型控制 ALU R-R( IR11.15 ) ALU R-I ( IR16.20 ) 五级流水线的每一级的具体操作五级流水线的每一
12、级的具体操作 ( P136) 提高吞吐率,但不减少单条指令的执行时间提高吞吐率,但不减少单条指令的执行时间 程序执行快,总时间减少程序执行快,总时间减少理想理想Speedup = 流水级数流水级数流水级数的限制:流水级数的限制:u 流水线延时流水线延时u流水线开销(流水周期流水线开销(流水周期 latch开销开销+时钟上升沿和时钟上升沿和下降沿)下降沿)u流水级间的不平衡性流水级间的不平衡性 t = maxtiEarle latch:对时钟上升延敏感、对时钟上升延敏感、latch延时是常数、可在延时是常数、可在latch中中实现二级逻辑实现二级逻辑unpipeline: CC=10ns, AL
13、U(40%)、Branch(20%) 4CCLoad/Store (40%) 5CCpipeline CC = (10+1) = 11ns问:用流水线,执行速度提高几倍?问:用流水线,执行速度提高几倍?单条指令执行时间单条指令执行时间 = CC 平均平均CPI = 10 (60% 4 + 40% 5)= 44ns平均指令执行时间平均指令执行时间 CCpipeline = 11nsSpeedup = 44 /11 = 4已知已知CPI=1。设各流水级的执行时间分别为:。设各流水级的执行时间分别为:IF:10ns;ID:8ns;ALU:10ns;MEM:10nsWB:7ns平均指令执行时间平均指令
14、执行时间 = 10+8+10+10+7 = 45ns流水线时平均指令执行时间流水线时平均指令执行时间 = 11nsSpeedup = 45/11 = 4.1一、流水线竞争种类一、流水线竞争种类u结构竞争:资源冲突(不支持某些指令组合)结构竞争:资源冲突(不支持某些指令组合)u数据竞争:后续指令的执行依赖于前面指令的数据竞争:后续指令的执行依赖于前面指令的执行结果执行结果u控制竞争:因转移或修改控制竞争:因转移或修改PC引起的竞争引起的竞争流水线停顿流水线停顿(stall):若若 i 指令引起竞争,在指令引起竞争,在 I 指令之前进入流水线的指令继续执行,而在指令之前进入流水线的指令继续执行,而
15、在 I 指令之后进入流水线或尚未进入流水线的指令指令之后进入流水线或尚未进入流水线的指令停下来等待竞争消除停下来等待竞争消除 平均指令执行时间平均指令执行时间unpipelineSpeedup = - 平均指令执行时间平均指令执行时间pipeline CPIun *CCun = - CPIp * CCpCPI pipeline = CPI ideal + 流水线流水线stall周期周期 = 1 + 流水线流水线stall周期周期 CPIun CPIunSpeedup = - = - CPIp 1+流水线流水线stall周期周期最简单情况:最简单情况: 所有指令的执行周期数相等,均为所有指令的执
16、行周期数相等,均为流水级数流水级数 CPIun = 流水级流水级 流水级流水级Speedup = - 1+流水线流水线stall周期周期 1 CCunSpeedup = - * - 1+流水线流水线stall周期周期 CCp若流水线各级完成时间均衡,且无其他开销,则若流水线各级完成时间均衡,且无其他开销,则 CCun - = 流水级流水级 CCp 流水级流水级Speedup = - 1+流水线流水线stall周期周期如果流水线因资源冲突不能支持某些指令组如果流水线因资源冲突不能支持某些指令组合的重叠执行,则称之为结构竞争。合的重叠执行,则称之为结构竞争。u原因原因u功能部件非完全流水功能部件非完全流水 u硬件资源数量不足硬件资源数量不足 结构竞争例结构竞争例结构竞争解决办法结构竞争解决办法已知已知CPIideal = 1,数据访存占,数据访存占40%, CRhazard = 1.05 CRideal平均指令执行时间平均指令执行时间 = IC* CPIhazard * CChazard = IC*(1+0.4*1)*CCideal/1.05 = 1.3 *IC*CCidea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业种植确权管理办法
- 高层建筑火灾模拟与人员安全疏散策略研究
- 教育的进阶之路:学校改进策略与实践探索
- 普通设备租赁管理办法
- 液氯企业安全风险隐患排查表
- 景区物业收费管理办法
- 电气工程双创人才培养模式探讨与实践
- 重点高校自学考试课程体系优化研究
- 幕墙工程工作总结
- 高校数字化资源服务系统用户体验优化
- GB/T 8312-2002茶咖啡碱测定
- 2023年苏州国发创业投资控股有限公司招聘笔试题库及答案解析
- 通信线路工程施工组织设计方案【实用文档】doc
- 护士注册健康体检表下载【可直接打印版本】
- 预计财务报表编制及分析课件
- 学生集体外出活动备案表
- Q∕SY 1347-2010 石油化工蒸汽透平式压缩机组节能监测方法
- 西门子顺序功能图语言S7-Graph的应用
- 中医治疗室工作制度管理办法
- 提花装造工艺技术培训课程
- 直播传媒公司简介PPT课件(参考)
评论
0/150
提交评论