第五部分cpu控制单元设计_第1页
第五部分cpu控制单元设计_第2页
第五部分cpu控制单元设计_第3页
第五部分cpu控制单元设计_第4页
第五部分cpu控制单元设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五部分 CPU与控制单元设计一、CPU的功能与组成二、数据通路设计三、指令执行流程分析四、硬布线控制器设计五、微程序原理六、微程序控制器设计七、MIPS数据通路实现简介八、流水线技术简介7.1 概述MIPS 寄存器结构32位虚拟地址空间32个32位GPRs(通用寄存器)32个32 位FPRs(浮点数寄存器)HI, LO, PC7.1 概述MIPS 指令格式Op: 6 bits, OpcdoeRs: 5 bits, The first register source operandRt: 5 bits, The second register source operandRd: 5 bits,

2、 The register destination operandShamt: 5 bits, Shift amount ( shift instruction)Func: 6 bits, function code ( another Opcode)R类型I类型J类型7.1 概述MIPS 寻址方式7.2 MIPS的数据通路实现MIPS基本实现(子集)MIPS指令系统子集存储访问指令:load word(lw)和store word(sw)算术逻辑指令:add、sub、and、or和 slt跳转指令: branch equal(beq)和jump(j)指令类型R型指令:add、sub、sltI

3、型指令:addi、ori、lw、sw、beqJ型指令:j7.2 MIPS的数据通路实现7.2 MIPS的数据通路实现通路设计考虑使用指令存储区和数据存储区分别保存指令和数据指令执行的共性根据PC从内存读取指令,取指令后,PC+4;所有类型的指令在读取寄存器后,都要使用ALU存储访问指令用ALU计算地址算术逻辑指令用来执行计算分支指令用ALU进行比较7.2 MIPS的数据通路实现取指和PC自增数据通路7.2 MIPS的数据通路实现R型指令数据通路部件add rd, rs, rt /* rd (rs) op (rt)指令格式:部件:寄存器堆、ALU7.2 MIPS的数据通路实现内存指令(sw,lw

4、)数据通路部件lw rt, rs, imm16指令格式:指令功能:rt Mem (rs) + imm167.2 MIPS的数据通路实现分支指令数据通路 beq rs, rt, imm16指令格式:指令功能: If ( (rs) - (rt) =0) then PC (PC) + imm16*47.2 MIPS的数据通路实现访存指令与 R型指令数据通路组合7.2 MIPS的数据通路实现MIPS各种数据通路组合7.2 MIPS的数据通路实现MIPS数据通路(多路复用 + 控制信号)指令存储区数据存储区寄存器堆7.2 MIPS的数据通路实现MIPS数据通路(带控制单元)指令存储区寄存器堆数据存储区控

5、制单元控制单元7.2 MIPS的数据通路实现R型指令的数据通路(例如: add $t1,$t2,$t3)指令存储区寄存器堆数据存储区控制单元7.2 MIPS的数据通路实现取数指令(lw)数据通路控制单元指令存储区寄存器堆数据存储区7.2 MIPS的数据通路实现存数指令(sw)数据通路控制单元指令存储区寄存器堆数据存储区7.2 MIPS的数据通路实现相等则转移(beq)指令数据通路7.2 MIPS的数据通路实现MIPS数据通路(扩展实现跳转指令j)7.3 MIPS的多周期数据通路实现方案为什么不使用单周期实现方式单周期设计中,时钟周期对所有指令等长。而时钟周期由计算机中可能的最长路径决定,一般为

6、取数指令。但某些指令类型本来可以在更短时间内完成。多周期方案将一条指令的执行分解为一系列步骤指令的每一步将占用一个时钟周期一个功能单元可以在一条指令的执行过程中使用多次,只要是在不同周期中(这种共享可减少所需的硬件数量)允许指令的执行占用不同周期数、功能单元共享是多周期设计的主要优点7.3 MIPS的多周期数据通路实现方案多周期数据通路高层视图(和单周期数据通路区别)指令和数据使用同一个存储器单元只有一个ALU,而不是一个ALU和两个加法器每个主要功能单元都加上了一个或多个寄存器存储输出值,以便在后面的时钟周期中使用7.3 MIPS的多周期数据通路实现方案MIPS的多周期数据通路给ALU的第一

7、个输入添加了一个多路复用器,它在寄存器A和PC间进行选择ALU第二个输入的多路复用器由2路改为4路,其新加的两个输入为常数4(用于PC增值)和符号扩展及移位后的偏移量字段(用于计算分支地址)7.3 MIPS的多周期数据通路实现方案数据通路加上控制线路数据通路用多个时钟周期完成一条指令,所以需要一套不同的控制信号PC,存储器,寄存器,IR需要写控制信号;存储器还需要一个读信号ALU控制器需要控制信号进行ALU操作类型控制每个2输入、4输入多路复用器分别需要1、2根控制线7.3 MIPS的多周期数据通路实现方案多周期实现的完整的数据通路和必要的控制线路7.3 MIPS的多周期数据通路实现方案将指令

8、分解到各个时钟周期,可以最大化性能把任意指令的执行分解为一系列步骤,每步一个时钟周期,基本上长度相当。比如规定,每一步最多包含一次ALU操作,或一次寄存器堆访问,或一次存储器访问。将指令的执行分到各个时钟周期取指指令译码和读取寄存器指令的执行,存储地址的计算或分支的完成存储器的访问或R型指令的完成读取存储器完成第五部分 CPU与控制单元设计一、CPU的功能与组成二、数据通路设计三、指令执行流程分析四、硬布线控制器设计五、微程序原理六、微程序控制器设计七、MIPS数据通路实现简介八、流水线技术简介8.1 流水线原理洗衣店流程4个流程:洗衣、烘干、熨烫、折叠非流水线模式流水线模式非流水线模式时间流

9、水线模式时间8.1 流水线原理指令执行流程(不失一般性,指令执行的六个步骤)取指令(FI):从存储器取出一条指令存入指令缓冲区;指令译码(DI):确定操作性质和操作数地址计算方式;计算操作数地址(CO):计算操作数有效地址;取操作数(FO):从存储器中取操作数(若操作数在寄存器,则无需该步骤)执行指令(EI):执行指令所需操作;写操作数(WO):将结果存入存储器。串行执行假定各个步骤需要的时间:FI=20ns,DI=10ns, CO=10ns,FO=20ns, EI=15ns , WO=20ns;一条指令的执行时间:20+10+10+20+15+20=95ns8.1 流水线原理流水线模型每个步

10、骤分配相等的时间(20ns)6级流水模型;处理器包含6个操作部件;指令执行时间:20*6=120ns每20ns完成一条指令8.1 流水线原理(MIPS单周期模型与流水线模型对比)假定以下每步操作所花时间为:取指操作:2ns寄存器读:1nsALU操作:2ns存储器读:2ns寄存器写:1ns单周期模型每条指令在一个时钟周期内完成时钟周期等于最长的lw指令的执行时间,即:8ns串行执行时,N条指令的执行时间为:8Nns流水线性能时钟周期等于最长阶段所花时间为:2ns每条指令的执行时间为:5步,共 10nsN条指令的执行时间为:(2+2xN+1)ns在N很大时,比串行方式提高约 4 倍MIPS 的Lo

11、ad指令执行时间总计为:8ns (假定控制单元、PC访问、信号传递等没有延迟)流水线方式下,单条指令的执行时间不能缩短,但能大大提高指令的吞吐量8.1 流水线原理(流水线指令集)具有什么特征的指令集有利于流水线执行呢?指令长度尽量一致,有利于简化取指令和指令译码操作MIPS指令都是32位,每次取四个单元的指令,且下址计算方便: PC+4X86指令从1字节到17字节不等,使取指部件及其复杂指令格式少,且源寄存器位置相同,有利于在指令未知时就可取操作数MIPS指令的Rs和Rt位置一定,在指令译码时就可读Rs和Rt的值(若位置随指令不同而不同,则需先译码确定指令后才能取寄存器编号)只有load /

12、Store指令才能访问存储器,有利于减少操作步骤,规整流水线可以把lw/sw指令的地址计算和运算指令的执行步骤规整在同一个周期X86运算类指令的操作数可以是内存数据,故需计算地址、访存、执行数据和指令在内存中要”对齐”存放,有利于减少访存次数和流水线的规整指令的流水线执行能大大提高指令的吞吐率,现代计算机都采用流水线方式8.2 流水线冒险问题ClockCycle 1Cycle 2Cycle 3Cycle 4Cycle 5Cycle 6Cycle 7IfetchReg/DecExecMemWr1st lwIfetchReg/DecExecMemWr2nd lwIfetchReg/DecExecM

13、emWr3rd lwMIPS Load指令的流水线每条load指令五个步骤取指令(ifetch)、寄存器取数/译码(Reg/Dec)、ALU计算地址(Exec)、存储器读操作(Mem)、数据写寄存器(Wr)每个周期有一条指令进入流水线,每个周期都有一条指令完成每条指令的有效周期(CPI)为18.2 流水线冒险问题Cycle 1Cycle 2Cycle 3Cycle 4IfetchReg/DecExecWrR-typeMIPS R型指令的流水每条指令4个步骤Ifetch: 取指令并计算PC+4Reg/Dec: 从寄存器取数,同时指令在译码器进行译码Exec: 在ALU中对操作数进行计算Wr: A

14、LU计算的结果写到寄存器8.2 流水线冒险问题MIPS R型指令与load指令混合IfetchReg/DecExecWrR-typeIfetchReg/DecExecWrR-typeClockCycle 1Cycle 2Cycle 3Cycle 4Cycle 5Cycle 6Cycle 7Cycle 8Cycle 9IfetchReg/DecExecWrR-typeIfetchReg/DecExecWrR-typeIfetchReg/DecExecMemWrLoadWe have a problem!上述流水线有个问题: 两条指令试图同时写寄存器Load在第5阶段用寄存器写口R-type在第4

15、阶段用寄存器写口一个功能部件同时被多条指令使用的现象:结构冒险(Struture Hazard)8.2 流水线冒险问题流水线冒险(Hazard,也称流水线相关问题):流水线相近指令出现某些关联,下一个时钟周期不能执行下一条指令,指令流水线必须出现停顿。结构冒险(structural hazard):硬件不支持多条指令在同一个时钟周期执行。若系统只有一个存储器部件,就会带来结构冒险问题。数据冒险(data hazard):指令执行所需的数据暂时不可用而造成的指令执行的停顿。数据冒险一般发生在相近指令共用一个存储单元或寄存器时。控制冒险(control hazard):也称为分支冒险(branch

16、 hazard),必须根据前一条指令的执行结果才能确定下一条真正要执行的指令,此时流水线中取得的可能不是真正要执行的指令。8.2 流水线冒险问题简介结构冒险(如:访存冲突问题)一条指令的取数据(FO)与另一指令的取指令(FI)冲突一条指令的存数据(WO)与另一条指令的取数据(FO)冲突访问内存冲突设置两个独立的存储器分别存放指令和数据,避免冲突8.2 流水线冒险问题流水线中插入“Bubble”,以禁止同一周期两次写寄存器。缺点:控制逻辑复杂第5周期没有指令被完成(CPI不是1,而实际上是2)方案可行性差ClockCycle 1Cycle 2Cycle 3Cycle 4Cycle 5Cycle

17、6Cycle 7Cycle 8Cycle 9IfetchR-typeIfetchReg/DecExecMemWrLoadIfetchReg/DecExecR-typeIfetchReg/DecR-typeIfetchReg/DecExecWrReg/DecExecWrIfetchReg/DecExecWrExecWrReg/DecExecWrIfetchReg/DecExecWrExecWrPipelineBubbleMIPS解决结构冒险方案1:插入气泡(Bubble)8.2 流水线冒险问题MIPS解决结构冒险方案2R型指令改成5段流水,插入Mem操作(实际无操作,NOOP)这样所有指令的流水

18、步骤一致ClockCycle 1Cycle 2Cycle 3Cycle 4Cycle 5Cycle 6Cycle 7Cycle 8Cycle 9IfetchReg/DecWrR-typeIfetchReg/DecWrR-typeIfetchReg/DecExecMemWrLoadIfetchReg/DecWrR-typeIfetchReg/DecWrR-typeMemExecExecExecExecMemMemMemIfetchReg/DecExecWrR-type12345MemNOOP!8.2 流水线冒险问题简介数据冒险后一条指令使用前一条指令的执行结果作为操作数数据冒险采用后推法解决数据

19、冒险8.2 流水线冒险问题简介控制冒险控制冒险主要有条件转移指令引起,前面指令执行的结果可能会是程序执行发生转移,流水线中提前取来的指令可能不应该被执行。阻塞:阻塞流水线(停顿),直到结果出来,才取真正执行的指令。分支预测:存在预测失败的情况。MIPS指令流水线R型指令流水5段流水,Mem操作(实际无操作,NOOP)ClockCycle 1Cycle 2Cycle 3Cycle 4Cycle 5Cycle 6Cycle 7Cycle 8Cycle 9IfetchReg/DecWrR-typeIfetchReg/DecWrR-typeIfetchReg/DecExecMemWrLoadIfetchReg/DecWrR-typeIfetchReg/DecWrR-typeMemExecExecExcExecMemMemMemIfetchReg/DecExecWrR-type12345MemNOOP!MIPS指令流水线ClockCycle 1Cycle 2Cycle 3Cycle 4Cycle 5Cycle 6Cycle 7IfetchReg/DecExecMemWr1st lwIfetchReg/DecExecMemWr2nd lw

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论