处理机
设计
计 算 机 组 成 原 理,2024年2月16日,处理机设计,1、处理机的基本构成 单总线、专用通路结构模型2、指令的执行过程 运算指令,访存指令,控制指令3、ALU、寄存器堆的设计4、处理机的数据路径取指令电路,算术逻辑操作电路,存储器访问电路,转移控制电路,总体数据路径5、单周期处理机的控制部件设计控制信号定义,处理机执行指令的步骤(ALU指令,存储器访问指令,转移指令)控制信号的产生,单周期处理机的缺点6、多周期处理机的控制部件设计多周期处理机的总体电路,处理机执行指令的5个周期,状态转移图及状态转移表,输出控制表,性能7、硬布线控制器的构成及时序8、微程序控制器 微程序控制器基本概念 微程序控制器的原理及电路,增量方式,断定方式,多周期处理机微程序控制器实现,微程序设计技术9、异常事件处理,主要内容安排,将解决的主要问题,CPU的功能和组成方法;控制器的控制方式;硬布线控制器和微程序控制器的工作原理和设计方法,深入理解计算机中一条机器指令的完整执行过程;掌握计算机中指令的执行过程,各部件的工作过程,控制器的原理以及控制信号是如何产生,建立计算机硬件结构的完整概念。,1、处理机的基本构成,最基本的处理机至少应能完成以下操作,1、算术逻辑指令算术加指令、算术减指令、逻辑与指令、逻辑或指令,2、存储器访问指令从存储器取数据、存储数据的存储器,3、转移/跳转指令条件转移指令、无条件转移指令,处理机的基本构成:运算器,寄存器,控制器,数据路径数据路径:数据总线(单总线,双总线,多总线)专用通路(如MIPS),处理器的结构,单总线结构,专用通路结构,1.分析指令系统通过描述每条指令的意图,数据通路必须具备必要的存储元件2.选择一组数据通路部件3.根据需求组装数据通路4.分析每条指令的实现,以确定如何设置影响寄存器传输的控制点5.装配控制逻辑,如何设计处理器:,ALU指令 add rd,rs1,rs2 addi rd,rs1,imme sub rd,rs1,rs2 subi rd,rs1,imme and rd,rs1,rs2 andi rd,rs1,imme or rd,rs1,rs2 ori rd,rs1,imme存储器访问 load rd,rs1,imme stroe rd,rs1,imme条件转移:beq disp bne disp无条件跳转:Branch disp,指令系统,opcode:指令的操作码 rs1,rs2,rd:源1和源2以及目的寄存器描述符 displacement:偏移量 immediate:立即数数值,所有的指令都是32位 具有如下三种指令格式:,RR型,RI型,BR型,ALU 指令:RR型和RI型 RR型 rd(rs1)op(rs2)或 R(rd)R(rs1)op R(rs2)RI型 rd(rs1)op imme 或 R(rd)R(rs1)op imme 存储器访问指令:RI型load:rd(rs1)+imme)或 R(rd)mem(rs1)+imme store rd(rs1)+imme)或 R(rd)mem(rs1)+imme 转移/跳转:BR型条件转移 beq:if z=1 then pc=pc+disp,else pc=pc+1 bne:if z=0 then pc=pc+disp,else pc=pc+1无条件转移:Branch:pc=pc+disp,指令将完成的操作:,多路选择器ALU寄存器堆数据路径(数据通路),组合逻辑部件,多路选择器,当S=0时,选择A0端输出,即F=A0,当S=1时,选择A1端输出,即F=A1,n个1位的全加器(FA)可级联成一个n位的行波进位加减器。,ALU,ALU的设计,0 0 and0 1 or1 0 add1 1 sub,ALU控制码的定义,产生标志码的方法及意义:,N:直接把加法器的最高位送出。在算术运算结果最高位为1时,N=1,否则N=0,C:直接把加法器的进位位送出。在算术运算产生进位时,C=1,否则C=0,Z:对ALU所有输出位做逻辑或运算,再取反送出。在算术/逻辑运算结果为0时,Z=1,否则Z=0,V:直接把加法器的溢出位送输出。在算术运算结果超出可表示的范围时,V=1,否则V=0,32个32位寄存器堆的内部结构,寄存器堆的设计,两个读端口和一个写端口的寄存器堆,N1,N2-两个读端口的地址输入端,对应输出端为Q1和 Q2,ND-为写端口的地址输入端,DI-为32位数据输入端,封装后,寄存器堆包含32个32位寄存器:类似于D触发器 两条32位输出线:Q1 和 Q2 一条32位输入线:DI N1 将地址为N1号寄存器的数据读出放到Q1线上 N2 将地址为N2号寄存器的数据读出放到Q2线上 ND 写使能为1时,将DI线上内容写入到地址为ND号寄存器中 时钟输入(CLK)只有在写操作中,CLK输入才有作用 在读操作中,寄存器的行为与组合逻辑电路一样:WE-Write Enable,寄存器堆,处理机执行指令步骤:,1、取指令,2、分析指令,3、取操作数,4、执行指令,5、保存结果,1、取指令电路,处理机的数据路径,用PC的内容作为指令存储器的访问地址,从中读出一条指令,在顺序执行时,PC的内容应该加1,指向下一条指令。,写使能WritePC为1时,在CLK上升沿处,把PC+1写入PC中。,从理论上讲,PC是一个输入到指令存储器的32位的字节地址:串行操作:PC=PC+4 转移操作:PC=PC+4+SignExtdisp 这是因为:32位PC是一个字节地址,并且所有的指令都是4字节(32位)长 32位PC的最小两位(LSB)总是0,因而,没有必要用硬件保存这两位实际上,可以只使用30位PC:串行操作:PC=PC+1 转移操作:PC=PC+1+SignExtdisp,到底是PC+1还是PC+4:,2、算术逻辑操作电路,RR型,RI型,算术逻辑操作RR型和RI型电路,当控制端SelImme=1时,多路选择器选择扩展的立即数送B端,当控制端SelImme=0时,多路选择器选择寄存器堆的Q2送B端,3、存储器访问电路-LOAD指令,RI型,3、存储器访问电路-STORE指令,RI型,R(rd)mem(rs1)+imme,4、转移控制电路,BR型,bne:if z=0 then pc=pc+disp,else pc=pc+1,bnq:if z=1 then pc=pc+disp,else pc=pc+1无条件转移:Branch:pc=pc+disp,5、总体数据路径,单周期处理机的控制部件设计,单周期:处理机执行每条指令都需要一个时钟周期。,ALU 指令:RR型,1、取指令操作,以后每条指令的取指令操作都相同,略,2、指令译码(分析)操作,ALU 指令:RR型,3、取操作数,ALU 指令:RR型,1,0,1,0,0,1,ALU 指令:RR型,4、执行指令,1,0,1,0,0,1,ALU 指令:RR型,5、保存结果,写使能WritePC为1,在CLK上升沿处,把PC+1写入PC中。,写堆WriteReg为1,在CLK上升沿处,把结果写入寄存器堆Rrd中。,WriteZero为1,在CLK上升沿处,把Zero标志写入Zero标志寄存器中。,执行指令结束,同时下一条指令执行开始,ALU 指令:RI型,指令译码及取操作数,存储器访问:load指令,指令译码及取操作数,存储器访问:load指令,计算地址、访问存储器以及保存结果,存储器访问:stroe指令,