第8讲MIPS的多周期实现方案 控制器的设计.pptVIP

  • 13
  • 0
  • 约6千字
  • 约 45页
  • 2019-06-10 发布于江西
  • 举报

第8讲MIPS的多周期实现方案 控制器的设计.ppt

实验1 ? 实验2,注意文西301机房的开放时间(上午9:30-11:30): 3月26日(有教师指导)、4月5日(无教师指导) 4月9日(有教师指导)、 4月16日(无教师指导) 4月23日(有教师指导)、 4月30日(无教师指导) 实验3(下周4课堂上介绍) 单周期方案的不足 效率低下 不同类型的指令所完成的工作量有很大的差别,所要用到的部件和所通过的数据通路不同,所用的时间的长短也有很大的差别。 每个时钟周期中功能部件最多被使用一次,如果要在执行一条指令的过程中,多次使用某一部件,那么就需要重复设置该部件。 (增加实现成本) 4.5 多周期实现方案 解决上述问题的方法:采用多周期方案 采用更短的时间作为时钟周期,允许指令的执行时间为多个时钟周期。 这个时钟周期往往是一个基本部件的延迟时间。 好处之一:可以共享同一个功能部件(如果是在不同的时钟周期使用该部件的话)。 例如:指令存储器和数据存储器可以合并为一个存储器 做PC+4的加法器可以和ALU合并 4.5 多周期实现方案 对图4.13进行改造 在一些部件的后面增设临时寄存器,用于存放该部件产生且下一个时钟周期要用的结果。 IR(指令寄存器)——存放从指令存储器读出的指令; LMD——存放从数据存储器读出的数据; 因为访存读取的数据来不及在同一个时钟周期中写入寄存器组。 A和B——分别存放从寄存器组读出的两个数据; ALUo——存放ALU的运算结果; cond(1位)——存放判0部件“=0?”的结果。 Imm(32位) 4.5 多周期实现方案 需要设置哪些临时寄存器取决于两个因素 什么样的组合逻辑电路正好适合作为一个周期; 哪些数据在该指令后面的执行周期中需要用到。 增加两个写控制信号 IRWrite PCWrite 各指令的分步执行情况 取指令周期(IF) IR?IM[PC] PC+4 对控制信号设置如下: IRWrite=1 //把新取出的指令写入指令寄存器IR。 4.5 多周期实现方案 指令译码/读寄存器周期(ID) A?Regs[rs] B?Regs[rt] Imm?(IR[15:0]按符号位扩展为32位数) 指令的译码操作和读寄存器操作是并行进行的。 原因:在MIPS指令格式中,操作码字段以及rs、rt 字段都是在固定的位置。 这种技术称为固定字段译码技术。 执行/有效地址计算周期(EX) 不同指令所进行的操作不同: 4.5 多周期实现方案 存储器访问指令 ALUo?A + Imm 控制信号设置如下: ALUSrcA=1 //使得该多路器选择A中的内容,送给ALU的上一个输入端 ALUSrcB=01 //使得该多路器选择Imm中的内容,送给ALU的下一个输入端 ALUOp=00 //使ALU进行加法操作。 R类算术逻辑运算指令 ALUo?A funct B 控制信号设置如下: ALUSrcA=1 //使得该多路器选择A中的内容,送给ALU的上一个输入端 ALUSrcB=00 //使得该多路器选择B中的内容,送给ALU的下一个输入端 ALUOp=10 //使ALU按照指令中函数码funct规定的操作进行运算。 4.5 多周期实现方案 分支指令 ALUo?PC+(Imm2); cond?(A = = 0) 对控制信号设置如下: ALUSrcA=0 //使得该多路器选择PC+4,送给ALU的上一个输入端 ALUSrcB=10 //使得该多路器选择Imm左移两位后的内容, //送给ALU的下一个输入端。 ALUOp=00 //使ALU进行加法操作。 4.5 多周期实现方案 存储器访问/R类指令和分支指令完成周期(MEM) 存储器访问指令 load指令:LMD?DM[ALUo] 对控制信号设置如下: DMRead=1 //从DM读取数据。 store指令:DM[ALUo]?B

文档评论(0)

1亿VIP精品文档

相关文档