《计算机组成原理新课件第五章中央处理器.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理新课件第五章中央处理器.ppt(138页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第五章 中央处理器5.1 CPU的功能和组成5.2 指令周期5.3 时序产生器和时序控制方式5.4 硬布线控制器5.5 微程序控制器5.6 微程序设计技术 5.1 CPU的功能和组成CPU(Central Process Unit):计算机系统的核心部件,由运算器和控制器构成.5.1.1 CPU的功能 指令控制:产生下一条指令在内存中的地址;操作控制:产生各种操作信号送往相应部件,以控制完成指令所要求的动作;时序控制:对各种操作信号实施时间上的控制,以保证计算机有条不紊地连续自动工作;数据加工:执行所有的算术运算和逻辑运算,并进行逻辑测试;异常处理和中断处理MDR译码器时序与 控制DBCB内部
2、控制线内部控制线ACLALBSHPSWRIRPC SP GPRGPRMARAB内部总线内部总线5.1.2 CPU的组成 1.控制器的构成 指令部件:程序计数器(PC)、指令寄存器(IR)、指令译码器(ID-Instruction Decoder)、地址形成部件等;时序部件:脉冲源、启挺控制逻辑、节拍信号发生器等;ALU图5.1 CPU内部组成MDR译码器时序与 控制DBCB内部控制线内部控制线ACLALBSHPSWRIRPC SP GPRGPRMARAB内部总线内部总线ALU5.1.2 CPU的组成1.控制器的构成中断控制逻辑 微操作信号发生器:亦称控制单元CU,控制器的核心,通常有3种实现方
3、法:组合逻辑型、存储逻辑型、可编程逻辑阵列。CU的一般模型见下图。图5.1 CPU内部组成控制单元CU指令译码器指令寄存器 操作码时序信号状态反馈信号CPU内的控制信号来自系统总线的控制信号至系统总线的控制信号控制单元模型上图显示了CU中输入和输出信号之间的关系来自系统总线的控制信号:中断信号和存储器完成信号等至系统总线的控制信号:对存储器的控制信号和对外设的控制信号等5.1.2 CPU的组成 2.运算器由通用寄存器组GPR、算术逻辑单元(ALU)、累加寄存器(AC)、程序状态字寄存器(PSWR)、数据暂存器(LA、LB)和移位器(SH)等组成。功能是执行所有的算术运算和逻辑运算。MDR译码器
4、时序与 控制DBCB内部控制线内部控制线ACLALBSHPSWRIRPC SP GPRGPRMARAB内部总线内部总线ALU(1)通用寄存器GPR(General Purpose Register)可用于存放操作数(包括源操作数、目的操作数及中间结果)、各种地址信息,或作为基址寄存器、变址寄存器,或作为计数器等.MDR译码器时序与 控制DBCB内部控制线内部控制线ACLALBSHPSWRIRPC SP GPRGPRMARAB内部总线内部总线ALU3.CPU中的寄存器设置(2).专用寄存器SPR用于控制的寄存器 程序计数器PC(Program Counter)存放当前或下一条要执行的指令的地址,
5、控制指令的执行顺序.顺序执行时,PC增量计数;遇到转移指令,则将转移地址送至PC.MDR译码器时序与 控制DBCB内部控制线内部控制线ACLALBSHPSWRIRPC SP GPRGPRMARAB内部总线内部总线ALU(2).专用寄存器SPR 用于控制的寄存器指令寄存器IR(Instruction Register)存放正在执行的指令代码.堆栈指示器SP(Stack Pointer)存放堆栈栈顶指针.MDR译码器时序与 控制DBCB内部控制线内部控制线ACLALBSHPSWRIRPC SP GPRGPRMARAB内部总线内部总线ALUGPR(2)专用寄存器SPR 用于控制的寄存器状态标志寄存器
6、(PSWR):存放运算结果的状态和机器运行的状态.一条指令执行完毕,根据运行结果自动修改标志位的有关内容,这些内容可被后面的条件转移指令所测试,作为决定程序流向的因素之一.常用运算结果的状态标志包括:进位标志C:当运算结果产生进位时,C=1 溢出标志V:当运算结果产生溢出时,V=1 零结果标志Z:当运算结果为零时,Z=1 负结果标志N:当运算结果为负时,N=1(2)专用寄存SPR用于主存接口的寄存器存储器地址寄存器(MAR):接受指令地址(PC)、操作数地址或结果地址,以确定要访问的单元.存储器数据寄存器(MDR):亦称为存储器数据缓冲寄存器(MBR).写入主存的数据一般先送至MDR,再送主存
7、;从主存读出的指令或数据一般先送入MDR,再送指定寄存器.主存接口的寄存器MAR、MDR的作用:作为 CPU与主存、外设之间信息传递的中转站;补偿CPU与主存、外设之间操作速度的差别.4.总线(2)计算机中各部件的连接方式 在各部件之间用专门的通路连接 优点:直观 缺点:结构复杂,硬件设备量增大 在各部件之间设置总线来传送信息 优点:减少传送线数量,使数据通路结构简化,便于控制.(1)总线定义:一组能为多个部件分时共享的公共信息传送线路.它分时接受各部件送来的信息,并发送信息到有关部件.缺点:当多个部件争用总线时,需设置总线控制逻辑解决总线控制权的问题.(3)总线分类 CPU内部总线:连接CP
8、U内的各寄存器与ALU,主要用于传送数据信息;系统总线:连接CPU、主存与I/O接口,通常包括数据总线、地址总线、控制总线.5.CPU内部数据通路总线结构:将所有寄存器的输入端和输出端都连接到一条或多条公共的通路上.又分为单总线结构(见图5.2)、双总线结构、多总线结构(见图5.3).(1)数据通路:CPU中寄存器及ALU之间的连接线路.通常有两种形式,同4(1),即:专用数据通路结构:根据指令执行过程中的数据和地址的流动方向安排连接线路,结构见图5.1.指令周期的基本概念5.2 指令周期 指令周期:取指令、分析指令到执行完该指令所需的时间.由于各种指令的操作类型不同、寻址方式不同,所以它们的
9、指令也不同.如访存指令与不访存指令、加法指令与乘法指令的指令周期不同.机器周期:亦称CPU周期,一般将一个指令周期划分为若干机器周期,每个机器周期完成一个基本操作,如取指周期、取数周期、执行周期、中断周期等.一般情况下,一条指令所需的最短时间为两个机器周期:取指周期和执行周期.许多计算机以访问主存的工作周期(存取周期)为基础来规定CPU周期.三者关系:一个指令周期包含若干个CPU周期,一个CPU周期的功能由多个时钟周期来完成 T周期CPU周期(取指令)CPU周期(执行指令)指令周期时钟周期(节拍,T周期):将一个机器周期划分为若干相等的时间段,每个时间段内完成一步基本操作.每个时间段用一个电平
10、信号宽度对应,称为节拍或时钟周期.节拍长度的确定,一般取决于CPU内部的操作需要.5.2.2 指令执行的基本过程 一条指令执行过程分为3个阶段:取指、分析指令、执行指令.取指令:将现行指令从主存取出并送至IR.PC MARIR MDRAB DB CB主存(1)(1)(1)(2)(3)(3)(4)+1(5)(1)将PC内容送MAR,并送地址总线;(2)向存储器发读命令;(3)从主存取出指令,通过数据总线,送到MDR;(4)将MDR内容送IR;(5)将PC内容递增,为取下一条指令做准备.注意:取指阶段的操作对任何一条指令来说,都是必须要执行的操作,称为公操作,完成取指阶段任务的时间,称为取指周期.
11、分析指令:指令译码器(ID-Instruction Decoder)可以识别和区分不同的指令类型及各种获取操作数的方法.由于各条指令功能不同,寻址方式不同,所以分析指令阶段的操作各不相同.执行指令:执行指令规定的各种操作,形成稳定的运算结果,并存储起来.可以看出,计算机的基本工作可以概括为:取指令(公操作)、分析指令(包括指令译码、计算操作数地址和取操作数等)、执行指令,然后再取下一条指令,。如此循环,直到程序执行完毕,或外来干预为止.20 250 000 CLA021 030 030 ADD 30022 021 031 STA 40023 000 000 NOP 八进制地址 八进制内容024
12、 140 021 JMP 21030 000 006031 000 040 040 存和数单元数据表5.1 五条典型指令组成的程序(P.158-164)五条典型指令的执行过程图例。首先了解五条指令的具体内容,详见P.158表5.1CPU内部结构见下图所示.0 助记符PC地址总线 ABUS数据总线DBUSDRIR时钟状态反馈指令寄存器AR微操作控制信号算术逻辑单元累加器 程序计数器地址寄存器数据缓冲寄存器CPUPSWR状态条件寄存器图5.1采用专用数据通路结构的CPU模型返回取指令PC+1对指令译码开始执行指令取下条指令PC+1取指令周期(FETCH)执行周期(EXE)一个CPU周期CLA指令周
13、期5.2.3 CLA指令的指令周期非访内指令功能:累加器清零,即0AC一个CPU周期PC地址 指令或数据内容20 CLA21 ADD 3022 STA 4023 NOP24 JMP 21 30 000 0063140 存和数+1地址总线 ABUS数据总线DBUSMDRIR时钟状态反馈指令寄存器MAR微操作控制信号算术逻辑单元累加器程序计数器地址寄存器数据缓冲寄存器存储器CPU图5.4 取出CLA指令PC地址 指令或数据内容20 CLA21 ADD 3022 STA 4023 NOP24 JMP 21 30 000 0063140 存和数地址总线 ABUS数据总线DBUSMDRIR时钟状态反馈指
14、令寄存器MAR微操作控制信号算术逻辑单元累加器程序计数器地址寄存器数据缓冲寄存器存储器CPU C(清AC)图5.5 CLA指令 执行阶段5.2.4 ADD指令的指令周期需要访问内存去取数并要执行加法指令 ADD 30的功能:(AC)+(30)AC取指令PC+1指令译码送操作数地址取出操作数执行加法操作开始取下条指令PC+1取指令周期 执行周期1 执行周期2 FETCH EXE1 EXE2一个CPU周期 一个CPU周期 一个CPU周期ADD指令周期PC地址 指令或数据内容20 CLA21 ADD 3022 STA 4023 NOP24 JMP 21 30 000 0063140 存和数地址总线
15、ABUS数据总线DBUSMDRIR时钟状态反馈指令寄存器MAR微操作控制信号算术逻辑单元累加器程序计数器地址寄存器数据缓冲寄存器存储器CPU+1取出ADD指令(取指令周期)PC地址 指令或数据内容20 CLA21 ADD 3022 STA 4023 NOP24 JMP 21 30 000 0063140 存和数地址总线 ABUS数据总线DBUSMDRIR时钟状态反馈指令寄存器MAR微操作控制信号算术逻辑单元累加器程序计数器地址寄存器数据缓冲寄存器存储器CPU图5.6 送(ADD指令的)操作数地址(执行周期一)PC地址 指令或数据内容20 CLA21 ADD 3022 STA 4023 NOP2
16、4 JMP 21 30 000 0063140 存和数地址总线 ABUS数据总线DBUSMDRIR时钟状态反馈指令寄存器MAR微操作控制信号算术逻辑单元累加器程序计数器地址寄存器数据缓冲寄存器存储器CPU图5.7 取操作数并 执行加法操作(执行周期二)取指令PC+1开始指令译码送操作数地址送操作数执行写内存操作取下条指令PC+1一个CPU周期 一个CPU周期 一个CPU周期取指令周期 执行周期1 执行周期2 FETCH EXE1 EXE2STA指令周期5.2.5 STA指令的指令周期访问内存的存数指令 STA 40的功能:(AC)40PC地址 指令或数据内容20 CLA21 ADD 3022
17、STA 4023 NOP24 JMP 21 30 000 0063140 存和数地址总线 ABUS数据总线DBUSMDRIR时钟状态反馈指令寄存器MAR微操作控制信号算术逻辑单元累加器程序计数器地址寄存器数据缓冲寄存器存储器CPU+1取出STA指令(取指周期)PC地址 指令或数据内容20 CLA21 ADD 3022 STA 4023 NOP24 JMP 21 30 000 0063140 存和数地址总线 ABUS数据总线DBUSMDRIR时钟状态反馈指令寄存器MAR微操作控制信号算术逻辑单元累加器程序计数器地址寄存器数据缓冲寄存器存储器CPU送操作数地址(执行周期一)PC地址 指令或数据内容
18、20 CLA21 ADD 3022 STA 4023 NOP24 JMP 21 30 000 0063140 000 006地址总线 ABUS数据总线DBUSMDRIR时钟状态反馈指令寄存器MAR微操作控制信号算术逻辑单元累加器程序计数器地址寄存器数据缓冲寄存器存储器CPU图5.8 存储和数(执行周期二)取指令PC+1开始指令译码送转移地址取下条指令地址PC+1一个CPU周期 一个CPU周期5.2.7 NOP指令和JMP指令的指令周期NOP:空操作,只取指令;JMP 21:21PC取指令周期 执行周期 FETCH EXEJMP指令的指令周期PC地址 指令或数据内容20 CLA21 ADD 30
19、22 STA 4023 NOP24 JMP 21 30 000 0063140 存和数地址总线 ABUS数据总线DBUSMDRIR时钟状态反馈指令寄存器MAR微操作控制信号算术逻辑单元累加器程序计数器地址寄存器数据缓冲寄存器存储器CPU取出NOP指令(取指 周期)执行周期CU不发任何控制信号+1NOPPC地址 指令或数据内容20 CLA21 ADD 3022 STA 4023 NOP24 JMP 21 30 000 0063140 存和数地址总线 ABUS数据总线DBUSMDRIR时钟状态反馈指令寄存器MAR微操作控制信号算术逻辑单元累加器程序计数器地址寄存器数据缓冲寄存器存储器CPU+1取出
20、JMP指令(取指周期)PC地址 指令或数据内容20 CLA21 ADD 3022 STA 4023 NOP24 JMP 21 30 000 0063140 存和数地址总线 ABUS数据总线DBUSMDRIR时钟状态反馈指令寄存器MAR微操作控制信号算术逻辑单元累加器程序计数器地址寄存器数据缓冲寄存器存储器CPU图5.9 JMP指令 的执行阶段 5.2.8 用方框图语言表示指令周期PCARABUSDBUSDRIRPC+1开始RD译码或测试IR(AR)AR IR(AR)ARIR(AR)PC0 ACCLA ADD STA JMP NOPAR ABUSDBUS DRDR ALUALU ACAR ABU
21、SAC DRDRDBUSRD WE例1(P166):下图所示为双总线结构机器的数据通路,M为主存(受R/W信号控制),IR为指令寄存器,AR为地址寄存器,DR为数据缓冲寄存器,PC为程序计数器(具有自加功能),ALU由加、减控制信号决定完成何种操作,控制信号G控制的是一个门电路。另外,线上标注有小圈表示有控制信号,如yi表示y寄存器的输入控制信号,R1o为寄存器R1的输出控制信号,未标注字符的线为直通线,不受控制。(1)ADD R2,R0的功能为(R0)+(R2)R0,画出指令周期流程图,并列出相应的微操作控制信号序列。(2)SUB R1,R3的功能为(R3)-(R1)R3,要求同上。ALU总
22、线双总线结构机器的数据通路IRoIRiIR PCPCiPCoARARiR/W MDRDRiDRoR0R1R2R3yixiXY+_G控制器总线 PC ARM DRDR IR(R0)+(R2)R0R0 XR2 Y(R3)-(R1)R3R1 XR3 YDR IRM DRPC ARPCo,G,ARiR/W=RDRo,G,IRiR2o,G,YiR0o,G,Xi+,G,R0iR3o,G,YiR1o,G,Xi-,G,R3i取指图5.10 加法和减法指令周期流程图PC+1 PCPC+1 PC+1P.209 2、3题 2、参见图5.15的数据通路。画出存数指令“STA R1,(R2)”的指令周期流程图,其含义是
23、将寄存器R1的内容传送至(R2)为地址的主存单元中。标出各微操作信号序列。3、参见图5.15的数据通路。画出取数指令“LDA(R3),R0”的指令周期流程图,其含义是将(R3)为地址的主存单元的内容取至寄存器R0中,标出各微操作控制信号序列。STARTPCARMDRDRIRDECODER2ARR1DRDRMR3ARMDRDRR0(取指部分略)2、3、PCo,G,ARiR/W*=R(RD M)DRo,G,IRiR2o,G,ARiR1o,G,DRiP.209 2、3题解答.PC+1 PC+15.3 时序(信号)产生器和(控制器的)时序控制方式5.3.1 时序信号的作用和体制1、作用计算机的控制器必
24、须提供一个时序系统,由它产生一组时序信号送到操作控制器,为每个微操作带上时间标志,再输出到全机,控制完成指令所规定的动作。CPU执行指令的过程就是时序控制的过程。2、计算机中时序信号的体制(1)计算机中的时序信号通常采用“电位脉冲”制;是由计算机中所使用的逻辑器件的特性决定的。(2)三级时序系统和二级时序系统 三级时序系统硬布线控制器常采用。(主)状态周期电位节拍电位节拍(工作)脉冲 二级时序系统微程序控制器常采用。节拍电位节拍脉冲由于指令周期不作为时序的一级,下图反映了机器周期、时钟周期、时钟脉冲三级时序信号的关系。一个指令周期机器周期(状态周期电位)M1M2M3时钟周期(节拍电位)T1T2
25、T3时钟脉冲(工作脉冲)CLK三级时序信号间的关系3、时序系统的组成主振时钟发生器启动暂停周期状态触发器节拍发生器M1M2T1T2CLK时序系统框图 主振:石英晶体震荡器,产生频率稳定的主振信号;时钟发生器:将主振信号整形分频后,得到时钟脉冲信号;启停控制电路:控制时钟脉冲的发与不发;节拍发生器:通常由计数译码电路构成,按先后顺序,循环发出若干节拍信号.周期状态触发器的结构与其类似.5.3.2 时序控制方式 时序控制方式:形成控制不同微操作序列的时序控制信号,可以有不同的方法,叫做控制器的控制方式,一般有三种方式。1、同步控制方式(集中控制方式,中央控制方式):对各项操作由统一的时序信号进行同
26、步控制.控制器产生统一的、顺序固定的、周而复始的状态周期电位、节拍电位和工作脉冲信号,用这些统一的时序信号,定时各种操作.特点:时序关系简单,但以牺牲速度为代价.注意:前面所讨论多级时序关系的层次均针对同步控制方式而言.2、异步控制方式(分散控制方式,局部控制方式):每条指令、每个微操作需要多少时间就占用多少时间,不采用统一的周期和节拍,时间上的衔接通过应答通讯方式(握手方式)实现.特点:运行速度快,但时序控制电路比较复杂.3、联合控制方式:是同步控制与异步控制相结合.即:大部分指令按照同步方式执行,小部分特殊指令(微操作时间难以确定的指令)采用异步控制方式.5.4 硬布线控制器(Hardwi
27、red control unit)与PLA控制器硬布线控制器(组合逻辑控制器)是由大量逻辑门电路和触发器电路构成的非常复杂而庞大的树形逻辑网络.核心为微操作产生部件(控制单元CU),以组合逻辑设计思想,布尔代数为主要工具设计而成.硬布线控制器的基本思想:某一微操作控制信号是指令操作码译码输出、时序信号和状态条件的逻辑函数,即用布尔代数写出逻辑表达式,然后用门电路和触发器等器件实现。微操作=周期 节拍 脉冲 指令码 其它条件 控制器发出的控制信号是空间和时间因素的函数,前者是指操作在什么条件下进行,后者是指在什么时刻进行。操作码 地址码指令译码器硬布线逻辑(组合逻辑)PC周期状态触发器节拍发生器
28、时钟发生器结果反馈信息M2 M3T1T4CPIR中断控制逻辑转移地址+1RESET中断信号微操作控制命令(内部控制信号及外部控制信号)组合逻辑控制器总框图M1I1 ImC1 C2 Cn5.4.1 组合逻辑控制器的设计步骤 1.根据CPU的结构图写出每条指令的操作流程图并分解成微操作序列,并综合成一个总的流程图.2.选择合适的控制方式和控制时序.3.对微操作流程图安排时序,排出微操作时间表.4.根据操作时间表写出微操作的表达式,即 5.根据微操作的表达式,画出组合逻辑电路.微操作=周期 节拍 脉冲 指令码 其它条件CLA;清ACADD I D;I=0为直接寻址,即(AC)+(D)AC I=1为间
29、接寻址,即(AC)+(D)ACSTA I D;I=0为直接寻址,即(AC)D;I=1为间接寻址,即(AC)(D)LDA I D;I=0为直接寻址,即(D)AC;I=1为间接寻址,即(D)ACJMP I D;I=0为直接寻址,即(D)PC;I=1为间接寻址,即(D)PC5.4.2 组合逻辑控制器的设计举例 CPU结构框图如下图所示,设计以下几条指令的组合逻辑控制器.以下指令均为单字长单地址指令(16位),指令格式如下所示:OP I DIR15IR14IR13IR12IR0IR11IRALU状态寄存器ACPCAR指令译码器控制单元CU存储器 数据总线+1PC ARMREQR/WDBUS ARDBU
30、S PCCDR ACDR ACDR ALUIRDRDR IRIR(AR)DBUS+_DBUS DRDR DBUS IR(AR)OPDBUS DR DBUS PC内部控制信号MREQR/W 外部控制信号(1)根据CPU结构框图写出指令的操作流程图,如下图所示:I=1?I=1?I=1?I=1?0 ACM AR M ARM DBUSDBUS PCPC ARM DR DR IRPC+1 PCPC ARMREQ,R,DBUS DR IR+1 CLAIR15IR14IR13=000ADD001STA010LDA011JMP100IR(AR)DBUSDBUS ARIR(AR)DBUS DBUS ARIR(A
31、R)DBUS DBUS ARIR(AR)DBUS NYM DR(AC)+(DR)ACNYM AR AC DR DR M M DR DR ACNY(IR12)=1NY(IR12)=1(IR12)=1(IR12)=1(2)选同步控制方式DBUS AR(3)选二级时序 由于以上指令均是单字长单地址指令,所以安排三个机器周期:取指周期FETCH、取数周期DOF、执行周期EXEC。每个机器周期安排四个节拍T1、T2、T3和T4,时序见下图所示。FETCHDOFEXECT1T3T4取指周期取数周期执行周期指令周期CLKT2(4)为微操作序列安排时序I=1?I=1?I=1?I=1?CPC ARR,MREQ,
32、+1 DBUS DRDR IRCLA ADDSTALDA JMPIR(AR)DBUSDBUS ARIR(AR)DBUS DBUS ARIR(AR)DBUS DBUS ARIR(AR)DBUS NYNY AC DR NYNY(IR12)=1(IR12)=1FETCHT1T2T3T4R,MREQDBUS ARR,MREQDBUS ARR,MREQDBUSARDBUS ARR,MREQDBUS DRDR ALU+WR,MREQDBUS DRDR ACT1T2T3T4DOFT1T2T3T4EXECR,MREQDBUS PCDR DBUS(5).操作时间表见下表:微操作 FETCHT1 T2 T3 T4
33、 DOF EXECPC ARR/W=1 R/W=0MREQDR IR+1CIR(AR)DBUSALLALLALLALLALLT1 T2 T3 T4 T1 T2 T3 T4ADD+LDAADD+LDASTASTACLACLA(ADD+STA+LDA+Jmp)*I(ADD+STA+LDA+JMP)*I(5).操作时间表见下表:微操作 FETCHT1 T2 T3 T4DOF EXECT1T2T3T4T1T2 T3 T4DBUS ARDBUS DRDBUS PCDR ALUDR ACAC DR+ALLADD+LDA JMPADDLDASTAADDADD+STA+LDA+JMP*I(ADD+STA+LD
34、A)*IDR DBUSSTA(6).综合微操作表达式如下:PC AR=FETCH*T1 R/W=FETCH*T2+DOF*T3*CLA*I+EXEC*T1*(ADD+LDA)R/W=STA*EXEC*T2 MREQ=FETCH*T2+DOF*T3*CLA*I+EXEC*T1*(ADD+LDA)+STA*EXEC*T2(7)逻辑电路框图如下所示:OP D I指令译码器时序产生器组合逻辑控制器LDA ADDSTA LDA JMPIRIIR0 IR11 IR12 IR13 IR14 IR15FETCHDOFEXECT1T2 T3T4PC ARDBUS DRDBUS PC+微操作控制信号OP I DI
35、R0 IR11 IR12 IR13 IR14 IR15译码器 译码器时钟发生器节拍发生器=&T1T2T4DBUS DRLDA ADDI=0I=1微操作控制信号DBUS DR的逻辑表达式为:DBUS DR=FETCH*T3+EXEC*(ADD+LDA)*T2微操作执行逻辑示意图T3&=周期状态触发器EXECDOFFETCH概括起来,设计组合逻辑控制器的方法和过程是:根据所有机器指令流程图,寻找出产生同一个微操作信号的所有条件,并与适当的状态周期电位与节拍电位组合,从而写出其布尔表达式并进行简化,然后用门电路或可编程器件来实现。组合逻辑控制器的特点 优点:微操作控制信号产生的速度快,只需几级门电路
36、的延时就可以产生.缺点:(1)缺乏规整性:将几百个微操作的执行逻辑组合在一起,构成的微操作产生部件,是计算机中最复杂、最不规整的逻辑部件.不适合于指令复杂的机器.(2)缺乏灵活性:各微命令的实现是用硬连的逻辑电路完成,设计结果用印刷电路版(硬连逻辑)固定下来后,改动不易,设计困难.例:CPU结构图如下所示,其中包括一个累加器AC、一个状态寄存器和其它四个寄存器,各部分之间的连线表示数据通路,箭头表示信息传送方向。(1).标明图中四个寄存器的名称.(2)简述取指令的数据通路.(3)简述完成指令LDA X的数据通路(X为内存地址,LDA功能为(X)(AC).(4)简述完成 ADD Y的数据通路(Y
37、为内存地址,ADD功能为(AC)+(Y)(AC).(5)简述完成 STA Z的数据通路(Z为内存地址,STA功能为本(AC)(Z).主存储器 MAACCD控制单元状态寄存器B+1ALUCPU解:(1)A为数据缓冲寄存器MDR,B为指令寄存器IR,C为主存地址寄存器MAR,D为程序计数器PC.(2)取指令的数据通路:PC MAR MM MDR IR(3)指令LDA X的数据通路:X MAR MM MDR ALU AC(4)指令ADD Y的数据通路:Y MAR MM MDR ALU ADD AC(5)指令 STA Z的数据通路:Z MAR,AC MDR MM 5.5 微程序控制器(Micropro
38、grammed Control)鉴于组合逻辑控制器设计方法的两大缺点:(1)逻辑实现复杂,(2)不易扩充和修改,1951年剑桥的Wilkes教授提出微程序控制器的设计思想:将机器指令分解成若干基本的微命令序列,用二进制代码表示这些微命令,并编成微指令,多条微指令再形成微程序,在制造CPU时固化在CPU中的一个控制存储器(CM)中,执行一条机器指令时,CPU依此从CM中取出微指令,从而产生微命令.上述思想用一篇论文的形式提出,论文题为“The Best Way to Design an Automatic Calculating Machine.”Proceedings,Manchester U
39、niversity Computer Inaugural Conference,July 1951文中给出的设计方案叫做Wilkes模型。5.5.1 微程序控制器的提出 由于需要快速和相对廉价的控制存储器(Control Memory),而当时的技术水平难以提供支持.1964年2月,Hill“Stored Logical Programming and Applications”Datamation,February 1964,对微程序的未来做了展望.同年4月,采用微程序的IBM 360问世,至此,微程序的各种应用得到不断发展,作为应用之一的,就是微程序控制器.5.5.2 基本概念(Basic
40、 Concepts)微命令:即微操作控制信号,是构成控制信号序列的最小单位,由控制器通过控制线向有关部件发出.微操作:执行部件接受微命令后进行的操作。关系:微命令是微操作的控制信号,而微操作是微命令所控制的操作过程,二者一一对应,在计算内部实质上是同一个信号。微指令(Microinstructions):在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合,以编码的形式存放在CM的一个单元中.控制存储器中每个单元存放一条微指令.把一条机器指令中一个机器周期内的微命令信息放 在一条微指令中 微命令字段:可直接按位或通过译码提供微命令 微指令格式微命令字段 微地址字段微操作控制字段 顺序控
41、制字段 微地址字段:控制产生下一条微指令地址 机器指令与微指令、微程序的关系 机器指令指提供给使用者编成的基本单位,每一条指令可以完成一个独立的算术运算或逻辑运算操作.一条机器指令对应一组微指令组成的微程序.可见,一条机器指令对应多条微指令,而一条微指令可为多个机器指令服务.关系如下图所示:微程序(Microprogram):由微指令组成的序列称为微程序,一条机器指令的功能由一段微程序来实现.求解问题的算法ADD R1,R2STA M11ii+1m主存ADD指令的微程序STA指令的微程序控存(CM)主存:用于存放程序和数据,在CPU外部,用RAM实现.控存:用于存放微程序,在CPU内部,用RO
42、M实现.控制存储器的字长等于微指令的长度,其总容量取决于微指令的字长和微程序的总长度.机器语言程序机器语言程序与微程序关系示意图例:已知某计算机有80条指令,平均每条指令由 12条微指令组成,其中有一条取指微指令是所有指令共用的,设微指令长度为32位,计算CM容量.解:微指令所占的二进制位数=(12+79*11)*32=881*32 所以,CM容量可选1K*32 另见教材P.210第6题.注意:一条机器指令对应一段微程序,而任何一条机器指令的取指阶段的操作都是相同的(公操作),所以,通常将公共的部分提出来,编成一个共用微程序(取指微程序),放在控存的开始位置.微指令周期:读出微指令的时间+执行
43、该指令的时间,通常一个微指令周期与一个CPU周期的时间相等.T1 T2 T3 T4 T1 T2 T3 T4读微指令 执行微指令微指令周期CPU周期 CPU周期与微指令周期的关系 相斥性微命令:在同一微周期中不可能同时出现的微命令;相容性微命令:在同一微周期中可以同时出现的微命令;例如:P166页双总线CPU结构图中,找相斥性微命令(1)将数据送到内部总线的信号(XXo)是相斥的,如DRo,PCo等;(2)由内部总线接受数据的信号(XXin)是不存在相斥关系,但由于两个寄存器同时获得同一数据的可能性不大,因此算做相斥性命令;(3)同一部件的同一类操作是互斥的,如对ALU的各种操作+,-,对内存的
44、读写操作R/W等;5.5.3 微程序控制器的构成及工作原理 1、微控制器主要由控制存储器(CM)、微指令寄存器(IR)、微地址寄存器(AR)、微地址转移逻辑几部分组成.控制存储器:存放实现全部指令系统的微指令,它是一种ROM.微地址转移逻辑:不出现分支时,微地址寄存器直接给出下一条微指令的地址;当出现分支时,则需要修改微地址寄存器的值,然后给出下一条微指令的地址.地址转移逻辑自动完成修改微地址的任务.微指令寄存器:存放由控制存储器(CM)读出的一条微指令,其字长与微指令字长相同.微地址寄存器:存放要访问的下一条微指令的地址.微地址转移逻辑微地址寄存器地址译码驱动IR主存RAM译 码微操作控制字
45、段 顺序控制字段.控制存储器ROM微程序控制器原理框图微指令寄存器微命令运行状态指令操作码CM的一行表示存放的是一条微指令,列线输出微指令代码,行列交叉处有黑点表示该位信息为“1”,否则为“0”.2、工作原理(1)执行娶指微程序。机器开始运行时,自动将取指令微程序的入口微地址(一般为CM的0号单元)送到微地址寄存器(AR),并从CM中读出相应的微指令送入微指令寄存器(IR)。取指微程序中各个微命令使CPU访问主存,将取出的机器指令送到指令寄存器IR,并修改程序计数器的内容。(2)IR中机器指令的操作码字段通过“微地址转移逻辑”产生与该机器指令功能对应的微程序的入口地址,并送入微地址寄存器(AR
46、)。(3)从被选的控制存储器单元中取出一条微指令,送入微指令寄存器。其中的微操作控制字段经译码或直接产生一组微命令,并送往有关功能部件,控制其完成规定的微操作。(4)微地址寄存器中的顺序控制字段及有关状态条件送 往“微地址转移逻辑”,产生下一条微指令的微地址。(5)执行完一条机器指令的微程序后,回到公用的“取机器指令”微程序(即,回到CM的0号单元),继续第(1)步。5.6 微程序设计技术 主要内容为微指令结构的设计:微命令编码(微操作控制字段的设计)微地址的形成(顺序控制字段的设计)微指令格式:水平型和垂直型微指令5.6.1 微命令编码 即对微指令中的微操作控制字段进行编码的方法.1.直接表
47、示法(直接控制法、不译法)将微指令操作控制字段的每个二进制位定义为一个微命令,直接送往相应的控制点.选用或不选用某个微命令时,只要将表示该微命令的对应位置设置成0或1即可,所以,微命令的产生不需要译码.顺序控制字段 操作控制字段微操作控制信号 优点:简单直观,执行速度快;微命令的并行控制能力强,编制的微程序短.缺点:微指令字太长;空间不能充分利用.2.字段直接译码法 将微指令的控制字段分为若干个小字段,各小字段分别编码,每种编码代表一种微命令.见下图:译码 译码 译码 微命令 微命令 微命令微操作控制字段 顺序控制字段v 特点:既缩短了指令字长,又有并行操作的高效率,执行速度也较快。译码器有时
48、间延迟。分段原则 相斥性微命令分在同一段内,相容性微命令分在不同段内;每个小段中包含的信息位不能太多,否则增加译码线路的时间和复杂性;一般每个小段还要留出一个状态,表示本字段不发任何现行命令.3.混合表示法 以上两种的结合使用:将速度要求高,或与其他控制信号都相容的微操作控制信号以直接方式表示,其他信号以编码方式表示。便于综合考虑微指令字长、灵活性和执行速度方面的要求。字段1字段2 字段n顺序控制字段操作控制译码 译码微命令 微命令 微命令IRv例1:某机采用微程序控制方式,微指令字长24位,微指令格式的控制部分为水平型编码;共有微命令30个,构成4个相斥类,各包含5个、8个、14个和3个微命
49、令。请设计出微指令控制部分的具体格式。解:按一般原则分段共4段,使用相应译码器。具体格式见下图:X X X X X X X X X X X X X 3:8译码器 4:16译码器 4:16译码器 2:4译码器 选5个微命令选8个微命令选14个微命令选3个微命令例2:教材P.210第8题。某机有8条微指令I1I8,每条微指令所包含的微命令控制信号如下表所示。aj分别对应10种不同性质的微命令信号。假设一条微指令的控制字段仅限8位,请安排微指令的控制字段格式。微指令 a b c d e f g h I jI1I2I3I4I5I6I7I8 解答:e,f,h两两互斥;b,I,j也是两两互斥。由此而设计符
50、合要求的微指令控制字段格式如下:X X X X X X X X00:无操作01:e10:f11:h00:无操作01:b10:i11:j0:无操作1:a0:无操作1:c0:无操作1:d0:无操作1:g 5.6.2 顺序控制字段的设计 顺序控制字段的作用,是解决微指令执行的顺序控制问题,即,如何产生后继微指令地址。首先,看如何形成微程序的入口地址。一、微程序入口地址的形成 1.执行取指微程序 位置:通常放在CM的0号或1号单元开始的一段连续单元中.作用:将一条机器指令从内存取出,送到IR.2.根据机器指令的操作码指出微程序的入口地址(初始微地址),这是一种多分支(多路转移)的情况.例:某机采用微程