- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Ch6:InstructionPipeline
指令流水线
第一讲流水线数据通路和控制逻辑
第二讲流水线冒险处理
第三讲高级流水线技术
第一讲流水线数据通路和控制
主要内
°日常生活中的流水线处理例子:洗衣服
°单周期处理器模型和流水线性能比较
°什么样的指令集适合于流水线方式执行
°如何设计流水线数据通路
•以MIPS指令子集来说明
°如何设计流水线控制逻辑
•分析每条指令执行过程中的控制信号
•给出控制器设计过程
°流水线冒险的概念
单周期指令模型与流水模型的性能比较
°假定以下每步操作所花时间为:
-取指:2ns
-寄存器读:1nsLoad指令执行时间总计为:8ns
-ALU操作:2ns(假定控制单元、PC访问、信号传
-存储器读:2ns递等没有延迟)
-寄存器写:1ns
°单周期模型
•每条指令在一个时钟周期内完成
•时钟周期等于最长的lw指令的执行时间,即:8ns
•串行执行时,N条指令的执行时间为:8Nns
°流水线性能
•时钟周期等于最长阶段所花时间为:2ns
•每条指令的执行时间为:2nsx5=10ns
•N条指令的执行时间为:(4+N)x2ns
•在N很大时,比串行方式提高约4倍
•若各阶段操作均衡(例如,各阶段都是2ns),则提高倍数为5倍。
流水线方式下,单条指令执行时间不能缩短,但能大大提高指令吞吐率!
流水线指令集的设计
°具有什么特征的指令集有利于流水线执行呢?
•长度尽量一致,有利于简化取指令和指令译码操作
-MIPS指令32位,下址计算方便:PC+4
-X86指令从1字节到17字节不等,使取指部件极其复杂
•格式少,且源寄存器位置相同,有利于在指令未知时就可取操作数
-MIPS指令的rs和rt位置一定,在指令译码时就可读rs和rt的值
312621161160
oprsrtrdshamtfunc
6bits5bits5bits5bits5bits6bits
若位置随指令不同而不同,则需先确定指令类型才能取寄存器编号
•load/Store指令才能访问存储器,有利于减少操作步骤,规整流水线
-lw/sw指令的地址计算和运算指令的执行步骤规整在同一个周期
-X86运算类指令操作数可为内存数据,需计算地址、访存、执行
•内存中”对齐”存放,有利于减少访存次数和流水线的规整
总之,规整、简单和一致等特性有利于指令的流水线执行
R-type指令的4个阶段
Cycle1Cycle2Cycle3Cycle4
R-typeIfetchReg/DecExecWr
°Ifetch:取指令并计算PC+4
°Reg/Dec:从寄存器取数,同时指令在译码器进行译码
°Exec:在ALU中对操作数进行计算
°Wr:ALU计算的结果写到寄存器
Load指令的流水线
Cycle1Cycle2Cycle3Cycle4Cycle5Cycle6Cycle7
Clock
1stlwIfetchReg/DecExecMeWr
2ndlwIfetchReg/DecExecMeWr
文档评论(0)