《计算机组成原理新课件第五章中央处理器.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理新课件第五章中央处理器.ppt(138页珍藏版)》请在三一办公上搜索。
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,译码器,时序
2、与 控制,DB,CB,内部控制线,内部控制线,AC,LA,LB,SH,PSWR,IR,PC,SP,GPR,GPR,MAR,AB,内部总线,内部总线,5.1.2 CPU的组成 1.控制器的构成 指令部件:程序计数器(PC)、指令寄存器(IR)、指令译码器(ID-Instruction Decoder)、地址形成部件等;时序部件:脉冲源、启挺控制逻辑、节拍信号发生器等;,ALU,图5.1 CPU内部组成,MDR,译码器,时序与 控制,DB,CB,内部控制线,内部控制线,AC,LA,LB,SH,PSWR,IR,PC,SP,GPR,GPR,MAR,AB,内部总线,内部总线,ALU,5.1.2 CPU的
3、组成1.控制器的构成中断控制逻辑 微操作信号发生器:亦称控制单元CU,控制器的核心,通常有3种实现方法:组合逻辑型、存储逻辑型、可编程逻辑阵列。CU的一般模型见下图。,图5.1 CPU内部组成,控制单元CU,指令译码器,指令寄存器,操作码,时序信号,状态反馈信号,CPU内的控制信号,来自系统总线的控制信号,至系统总线的控制信号,控制单元模型,上图显示了CU中输入和输出信号之间的关系来自系统总线的控制信号:中断信号和存储器完成信号等至系统总线的控制信号:对存储器的控制信号和对外设的控制信号等,5.1.2 CPU的组成 2.运算器由通用寄存器组GPR、算术逻辑单元(ALU)、累加寄存器(AC)、程
4、序状态字寄存器(PSWR)、数据暂存器(LA、LB)和移位器(SH)等组成。功能是执行所有的算术运算和逻辑运算。,MDR,译码器,时序与 控制,DB,CB,内部控制线,内部控制线,AC,LA,LB,SH,PSWR,IR,PC,SP,GPR,GPR,MAR,AB,内部总线,内部总线,ALU,(1)通用寄存器GPR(General Purpose Register)可用于存放操作数(包括源操作数、目的操作数及中间结果)、各种地址信息,或作为基址寄存器、变址寄存器,或作为计数器等.,MDR,译码器,时序与 控制,DB,CB,内部控制线,内部控制线,AC,LA,LB,SH,PSWR,IR,PC,SP,
5、GPR,GPR,MAR,AB,内部总线,内部总线,ALU,3.CPU中的寄存器设置,(2).专用寄存器SPR用于控制的寄存器 程序计数器PC(Program Counter)存放当前或下一条要执行的指令的地址,控制指令的执行顺序.顺序执行时,PC增量计数;遇到转移指令,则将转移地址送至PC.,MDR,译码器,时序与 控制,DB,CB,内部控制线,内部控制线,AC,LA,LB,SH,PSWR,IR,PC,SP,GPR,GPR,MAR,AB,内部总线,内部总线,ALU,(2).专用寄存器SPR 用于控制的寄存器指令寄存器IR(Instruction Register)存放正在执行的指令代码.堆栈指
6、示器SP(Stack Pointer)存放堆栈栈顶指针.,MDR,译码器,时序与 控制,DB,CB,内部控制线,内部控制线,AC,LA,LB,SH,PSWR,IR,PC,SP,GPR,GPR,MAR,AB,内部总线,内部总线,ALU,GPR,(2)专用寄存器SPR 用于控制的寄存器状态标志寄存器(PSWR):存放运算结果的状态和机器运行的状态.一条指令执行完毕,根据运行结果自动修改标志位的有关内容,这些内容可被后面的条件转移指令所测试,作为决定程序流向的因素之一.,常用运算结果的状态标志包括:,进位标志C:当运算结果产生进位时,C=1 溢出标志V:当运算结果产生溢出时,V=1 零结果标志Z:当
7、运算结果为零时,Z=1 负结果标志N:当运算结果为负时,N=1,(2)专用寄存SPR用于主存接口的寄存器存储器地址寄存器(MAR):接受指令地址(PC)、操作数地址或结果地址,以确定要访问的单元.存储器数据寄存器(MDR):亦称为存储器数据缓冲寄存器(MBR).写入主存的数据一般先送至MDR,再送主存;从主存读出的指令或数据一般先送入MDR,再送指定寄存器.主存接口的寄存器MAR、MDR的作用:作为 CPU与主存、外设之间信息传递的中转站;补偿CPU与主存、外设之间操作速度的差别.,4.总线,(2)计算机中各部件的连接方式 在各部件之间用专门的通路连接 优点:直观 缺点:结构复杂,硬件设备量增
8、大 在各部件之间设置总线来传送信息,优点:减少传送线数量,使数据通路结构简化,便于控制.,(1)总线定义:一组能为多个部件分时共享的公共信息传送线路.它分时接受各部件送来的信息,并发送信息到有关部件.,缺点:当多个部件争用总线时,需设置总线控制逻辑解决总线控制权的问题.,(3)总线分类 CPU内部总线:连接CPU内的各寄存器与ALU,主要用于传送数据信息;系统总线:连接CPU、主存与I/O接口,通常包括数据总线、地址总线、控制总线.,5.CPU内部数据通路,总线结构:将所有寄存器的输入端和输出端都连接到一条或多条公共的通路上.又分为单总线结构(见图5.2)、双总线结构、多总线结构(见图5.3)
9、.,(1)数据通路:CPU中寄存器及ALU之间的连接线路.通常有两种形式,同4(1),即:,专用数据通路结构:根据指令执行过程中的数据和地址的流动方向安排连接线路,结构见图5.1.,指令周期的基本概念,5.2 指令周期,指令周期:取指令、分析指令到执行完该指令所需的时间.由于各种指令的操作类型不同、寻址方式不同,所以它们的指令也不同.如访存指令与不访存指令、加法指令与乘法指令的指令周期不同.,机器周期:亦称CPU周期,一般将一个指令周期划分为若干机器周期,每个机器周期完成一个基本操作,如取指周期、取数周期、执行周期、中断周期等.一般情况下,一条指令所需的最短时间为两个机器周期:取指周期和执行周
10、期.,许多计算机以访问主存的工作周期(存取周期)为基础来规定CPU周期.,三者关系:一个指令周期包含若干个CPU周期,一个CPU周期的功能由多个时钟周期来完成,T周期,CPU周期(取指令),CPU周期(执行指令),指令周期,时钟周期(节拍,T周期):将一个机器周期划分为若干相等的时间段,每个时间段内完成一步基本操作.每个时间段用一个电平信号宽度对应,称为节拍或时钟周期.节拍长度的确定,一般取决于CPU内部的操作需要.,5.2.2 指令执行的基本过程,一条指令执行过程分为3个阶段:取指、分析指令、执行指令.,取指令:将现行指令从主存取出并送至IR.,PC,MAR,IR,MDR,AB,DB,CB,
11、主存,(1),(1),(1),(2),(3),(3),(4),+1,(5),(1)将PC内容送MAR,并送地址总线;,(2)向存储器发读命令;,(3)从主存取出指令,通过数据总线,送到MDR;,(4)将MDR内容送IR;,(5)将PC内容递增,为取下一条指令做准备.,注意:取指阶段的操作对任何一条指令来说,都是必须要执行的操作,称为公操作,完成取指阶段任务的时间,称为取指周期.,分析指令:指令译码器(ID-Instruction Decoder)可以识别和区分不同的指令类型及各种获取操作数的方法.由于各条指令功能不同,寻址方式不同,所以分析指令阶段的操作各不相同.,执行指令:执行指令规定的各种
12、操作,形成稳定的运算结果,并存储起来.,可以看出,计算机的基本工作可以概括为:取指令(公操作)、分析指令(包括指令译码、计算操作数地址和取操作数等)、执行指令,然后再取下一条指令,。如此循环,直到程序执行完毕,或外来干预为止.,250 000 CLA,021 030 030 ADD 30,022 021 031 STA 40,023 000 000 NOP,八进制地址 八进制内容,024 140 021 JMP 21,030 000 006,031 000 040,040 存和数单元,数据,表5.1 五条典型指令组成的程序,(P.158-164)五条典型指令的执行过程图例。首先了解五条指令的具
13、体内容,详见P.158表5.1CPU内部结构见下图所示.,0,助记符,ALU,AC,PC,地址总线 ABUS,数据总线DBUS,DR,IR,指令译码器,操作控制器时序产生器,时钟状态反馈,指令寄存器,AR,微操作控制信号,算术逻辑单元,累加器,程序计数器,地址寄存器,数据缓冲寄存器,CPU,存储器,输入/输出,PSWR,状态条件寄存器,图5.1采用专用数据通路结构的CPU模型,返回,取指令PC+1,对指令译码,开始,执行指令,取下条指令PC+1,取指令周期(FETCH)执行周期(EXE),一个CPU周期,CLA指令周期,5.2.3 CLA指令的指令周期非访内指令功能:累加器清零,即0AC,一个
14、CPU周期,ALU,AC,000 020,PC,000 020,地址 指令或数据内容,20 CLA,21 ADD 30,22 STA 40,23 NOP,24 JMP 21,30 000 006,31,40 存和数,+1,地址总线 ABUS,CLA,数据总线,DBUS,MDR,CLA,IR,指令译码器,操作控制器时序产生器,时钟状态反馈,指令寄存器,MAR,微操作控制信号,算术逻辑单元,累加器,程序计数器,地址寄存器,数据缓冲寄存器,存储器,CPU,图5.4 取出CLA指令,ALU,000 000,000 021,PC,000 020,地址 指令或数据内容,20 CLA,21 ADD 30,2
15、2 STA 40,23 NOP,24 JMP 21,30 000 006,31,40 存和数,地址总线 ABUS,CLA,数据总线,DBUS,MDR,CLA,IR,指令译码器,操作控制器时序产生器,时钟状态反馈,指令寄存器,MAR,微操作控制信号,算术逻辑单元,累加器,程序计数器,地址寄存器,数据缓冲寄存器,存储器,CPU,C(清AC),图5.5 CLA指令 执行阶段,5.2.4 ADD指令的指令周期需要访问内存去取数并要执行加法指令 ADD 30的功能:(AC)+(30)AC,取指令PC+1,指令译码,送操作数地址,取出操作数,执行加法操作,开始,取下条指令PC+1,取指令周期 执行周期1
16、执行周期2 FETCH EXE1 EXE2,一个CPU周期 一个CPU周期 一个CPU周期,ADD指令周期,ALU,000 000,000 021,PC,000 021,地址 指令或数据内容,20 CLA,21 ADD 30,22 STA 40,23 NOP,24 JMP 21,30 000 006,31,40 存和数,地址总线 ABUS,ADD 30,数据总线,DBUS,MDR,ADD,30,IR,指令译码器,操作控制器时序产生器,时钟状态反馈,指令寄存器,MAR,微操作控制信号,算术逻辑单元,累加器,程序计数器,地址寄存器,数据缓冲寄存器,存储器,CPU,+1,取出ADD指令(取指令周期)
17、,ALU,000 000,000 022,PC,000 030,地址 指令或数据内容,20 CLA,21 ADD 30,22 STA 40,23 NOP,24 JMP 21,30 000 006,31,40 存和数,地址总线 ABUS,ADD 30,数据总线,DBUS,MDR,ADD,30,IR,指令译码器,操作控制器时序产生器,时钟状态反馈,指令寄存器,MAR,微操作控制信号,算术逻辑单元,累加器,程序计数器,地址寄存器,数据缓冲寄存器,存储器,CPU,图5.6 送(ADD指令的)操作数地址(执行周期一),ALU,000 006,000 022,PC,000 030,地址 指令或数据内容,2
18、0 CLA,21 ADD 30,22 STA 40,23 NOP,24 JMP 21,30 000 006,31,40 存和数,地址总线 ABUS,000 006,数据总线,DBUS,MDR,ADD,30,IR,指令译码器,操作控制器时序产生器,时钟状态反馈,指令寄存器,MAR,微操作控制信号,算术逻辑单元,累加器,程序计数器,地址寄存器,数据缓冲寄存器,存储器,CPU,图5.7 取操作数并 执行加法操作(执行周期二),取指令PC+1,开始,指令译码,送操作数地址,送操作数,执行写内存操作,取下条指令PC+1,一个CPU周期 一个CPU周期 一个CPU周期,取指令周期 执行周期1 执行周期2
19、FETCH EXE1 EXE2,STA指令周期,5.2.5 STA指令的指令周期访问内存的存数指令 STA 40的功能:(AC)40,ALU,000 006,000 022,PC,000 022,地址 指令或数据内容,20 CLA,21 ADD 30,22 STA 40,23 NOP,24 JMP 21,30 000 006,31,40 存和数,地址总线 ABUS,STA 40,数据总线,DBUS,MDR,STA,40,IR,指令译码器,操作控制器时序产生器,时钟状态反馈,指令寄存器,MAR,微操作控制信号,算术逻辑单元,累加器,程序计数器,地址寄存器,数据缓冲寄存器,存储器,CPU,+1,取
20、出STA指令(取指周期),ALU,000 006,000 023,PC,000 040,地址 指令或数据内容,20 CLA,21 ADD 30,22 STA 40,23 NOP,24 JMP 21,30 000 006,31,40 存和数,地址总线 ABUS,STA 40,数据总线,DBUS,MDR,STA,40,IR,指令译码器,操作控制器时序产生器,时钟状态反馈,指令寄存器,MAR,微操作控制信号,算术逻辑单元,累加器,程序计数器,地址寄存器,数据缓冲寄存器,存储器,CPU,送操作数地址(执行周期一),ALU,000 006,000 023,PC,000 040,地址 指令或数据内容,20
21、 CLA,21 ADD 30,22 STA 40,23 NOP,24 JMP 21,30 000 006,31,40 000 006,地址总线 ABUS,000 006,数据总线,DBUS,MDR,STA,40,IR,指令译码器,操作控制器时序产生器,时钟状态反馈,指令寄存器,MAR,微操作控制信号,算术逻辑单元,累加器,程序计数器,地址寄存器,数据缓冲寄存器,存储器,CPU,图5.8 存储和数,(执行周期二),取指令PC+1,开始,指令译码,送转移地址,取下条指令地址PC+1,一个CPU周期 一个CPU周期,5.2.7 NOP指令和JMP指令的指令周期NOP:空操作,只取指令;JMP 21:
22、21PC,取指令周期 执行周期 FETCH EXE,JMP指令的指令周期,ALU,000 006,000 023,PC,000 023,地址 指令或数据内容,20 CLA,21 ADD 30,22 STA 40,23 NOP,24 JMP 21,30 000 006,31,40 存和数,地址总线 ABUS,NOP,数据总线,DBUS,MDR,IR,指令译码器,操作控制器时序产生器,时钟状态反馈,指令寄存器,MAR,微操作控制信号,算术逻辑单元,累加器,程序计数器,地址寄存器,数据缓冲寄存器,存储器,CPU,取出NOP指令(取指周期)执行周期CU不发任何控制信号,+1,NOP,ALU,000 0
23、06,000 024,PC,000 024,地址 指令或数据内容,20 CLA,21 ADD 30,22 STA 40,23 NOP,24 JMP 21,30 000 006,31,40 存和数,地址总线 ABUS,JMP 21,数据总线,DBUS,MDR,JMP,21,IR,指令译码器,操作控制器时序产生器,时钟状态反馈,指令寄存器,MAR,微操作控制信号,算术逻辑单元,累加器,程序计数器,地址寄存器,数据缓冲寄存器,存储器,CPU,+1,取出JMP指令(取指周期),ALU,000 006,000 021,PC,000 021,地址 指令或数据内容,20 CLA,21 ADD 30,22 S
24、TA 40,23 NOP,24 JMP 21,30 000 006,31,40 存和数,地址总线 ABUS,JMP 21,数据总线,DBUS,MDR,JMP,21,IR,指令译码器,操作控制器时序产生器,时钟状态反馈,指令寄存器,MAR,微操作控制信号,算术逻辑单元,累加器,程序计数器,地址寄存器,数据缓冲寄存器,存储器,CPU,图5.9 JMP指令 的执行阶段,5.2.8 用方框图语言表示指令周期,PCARABUSDBUSDRIRPC+1,开始,RD,译码或测试,IR(AR)AR,IR(AR)AR,IR(AR)PC,0 AC,CLA ADD STA JMP NOP,AR ABUSDBUS D
25、RDR ALUALU AC,AR ABUSAC DRDRDBUS,RD 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的功能
26、为(R3)-(R1)R3,要求同上。,ALU,总线,双总线结构机器的数据通路,IRo,IRi,IR,PC,PCi,PCo,AR,ARi,R/W,M,DR,DRi,DRo,R0,R1,R2,R3,yi,xi,X,Y,+,_,G,控制器,总线,PC AR,M DR,DR IR,(R0)+(R2)R0,R0 X,R2 Y,(R3)-(R1)R3,R1 X,R3 Y,DR IR,M DR,PC AR,PCo,G,ARiR/W=RDRo,G,IRi,R2o,G,YiR0o,G,Xi+,G,R0i,R3o,G,YiR1o,G,Xi-,G,R3i,取指,图5.10 加法和减法指令周期流程图,PC+1 PC,
27、PC+1 PC,+1,P.209 2、3题,2、参见图5.15的数据通路。画出存数指令“STA R1,(R2)”的指令周期流程图,其含义是将寄存器R1的内容传送至(R2)为地址的主存单元中。标出各微操作信号序列。3、参见图5.15的数据通路。画出取数指令“LDA(R3),R0”的指令周期流程图,其含义是将(R3)为地址的主存单元的内容取至寄存器R0中,标出各微操作控制信号序列。,START,PCAR,MDR,DRIR,DECODE,R2AR,R1DR,DRM,R3AR,MDR,DRR0,(取指部分略),2、,3、,PCo,G,ARi,R/W*=R(RD M),DRo,G,IRi,R2o,G,A
28、Ri,R1o,G,DRi,P.209 2、3题解答,.,PC+1 PC,+1,5.3 时序(信号)产生器和(控制器的)时序控制方式,5.3.1 时序信号的作用和体制1、作用计算机的控制器必须提供一个时序系统,由它产生一组时序信号送到操作控制器,为每个微操作带上时间标志,再输出到全机,控制完成指令所规定的动作。CPU执行指令的过程就是时序控制的过程。,2、计算机中时序信号的体制(1)计算机中的时序信号通常采用“电位脉冲”制;是由计算机中所使用的逻辑器件的特性决定的。,(2)三级时序系统和二级时序系统 三级时序系统硬布线控制器常采用。(主)状态周期电位节拍电位节拍(工作)脉冲 二级时序系统微程序控
29、制器常采用。节拍电位节拍脉冲,由于指令周期不作为时序的一级,下图反映了机器周期、时钟周期、时钟脉冲三级时序信号的关系。,一个指令周期,机器周期(状态周期电位)M1,M2,M3,时钟周期(节拍电位)T1,T2,T3,时钟脉冲(工作脉冲)CLK,三级时序信号间的关系,3、时序系统的组成,主振,时钟发生器,启动,暂停,周期状态触发器,节拍发生器,M1,M2,T1,T2,CLK,时序系统框图,主振:石英晶体震荡器,产生频率稳定的主振信号;时钟发生器:将主振信号整形分频后,得到时钟脉冲信号;启停控制电路:控制时钟脉冲的发与不发;节拍发生器:通常由计数译码电路构成,按先后顺序,循环发出若干节拍信号.周期状
30、态触发器的结构与其类似.,5.3.2 时序控制方式,时序控制方式:形成控制不同微操作序列的时序控制信号,可以有不同的方法,叫做控制器的控制方式,一般有三种方式。,1、同步控制方式(集中控制方式,中央控制方式):对各项操作由统一的时序信号进行同步控制.控制器产生统一的、顺序固定的、周而复始的状态周期电位、节拍电位和工作脉冲信号,用这些统一的时序信号,定时各种操作.特点:时序关系简单,但以牺牲速度为代价.注意:前面所讨论多级时序关系的层次均针对同步控制方式而言.,2、异步控制方式(分散控制方式,局部控制方式):每条指令、每个微操作需要多少时间就占用多少时间,不采用统一的周期和节拍,时间上的衔接通过
31、应答通讯方式(握手方式)实现.特点:运行速度快,但时序控制电路比较复杂.,3、联合控制方式:是同步控制与异步控制相结合.即:大部分指令按照同步方式执行,小部分特殊指令(微操作时间难以确定的指令)采用异步控制方式.,5.4 硬布线控制器(Hardwired control unit)与PLA控制器,硬布线控制器(组合逻辑控制器)是由大量逻辑门电路和触发器电路构成的非常复杂而庞大的树形逻辑网络.核心为微操作产生部件(控制单元CU),以组合逻辑设计思想,布尔代数为主要工具设计而成.,硬布线控制器的基本思想:某一微操作控制信号是指令操作码译码输出、时序信号和状态条件的逻辑函数,即用布尔代数写出逻辑表达
32、式,然后用门电路和触发器等器件实现。,微操作=周期 节拍 脉冲 指令码 其它条件,控制器发出的控制信号是空间和时间因素的函数,前者是指操作在什么条件下进行,后者是指在什么时刻进行。,操作码 地址码,指令译码器,硬布线逻辑(组合逻辑),PC,周期状态触发器,节拍发生器,时钟发生器,结果反馈信息,M2,M3,T1,T4,CP,IR,中断控制逻辑,转移地址,+1,RESET,中断信号,微操作控制命令(内部控制信号及外部控制信号),组合逻辑控制器总框图,M1,I1,Im,C1,C2,Cn,5.4.1 组合逻辑控制器的设计步骤 1.根据CPU的结构图写出每条指令的操作流程图并分解成微操作序列,并综合成一
33、个总的流程图.2.选择合适的控制方式和控制时序.3.对微操作流程图安排时序,排出微操作时间表.4.根据操作时间表写出微操作的表达式,即 5.根据微操作的表达式,画出组合逻辑电路.,微操作=周期 节拍 脉冲 指令码 其它条件,CLA;清ACADD I D;I=0为直接寻址,即(AC)+(D)AC I=1为间接寻址,即(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)PC,5.4.2 组合逻辑控制
34、器的设计举例,CPU结构框图如下图所示,设计以下几条指令的组合逻辑控制器.以下指令均为单字长单地址指令(16位),指令格式如下所示:,OP,I,D,IR15,IR14,IR13,IR12,IR0,IR11,IR,ALU,状态寄存器,AC,PC,AR,指令译码器,控制单元CU,存储器,数据总线,+1,PC AR,MREQ,R/W,DBUS AR,DBUS PC,C,DR AC,DR AC,DR ALU,IR,DR,DR IR,IR(AR)DBUS,+,_,DBUS DR,DR DBUS,IR(AR),OP,DBUS DR,DBUS PC,内部控制信号,MREQ,R/W,外部控制信号,(1)根据C
35、PU结构框图写出指令的操作流程图,如下图所示:,I=1?,I=1?,I=1?,I=1?,0 AC,M AR,M AR,M DBUS,DBUS PC,PC AR,M DR,DR IR,PC+1 PC,PC AR,MREQ,R,DBUS DR,IR,+1,CLA,IR15IR14IR13=000,ADD,001,STA,010,LDA,011,JMP,100,IR(AR)DBUS,DBUS AR,IR(AR)DBUS,DBUS AR,IR(AR)DBUS,DBUS AR,IR(AR)DBUS,N,Y,M DR,(AC)+(DR)AC,N,Y,M AR,AC DR,DR M,M DR,DR AC,N
36、,Y,(IR12)=1,N,Y,(IR12)=1,(IR12)=1,(IR12)=1,(2)选同步控制方式,DBUS AR,(3)选二级时序 由于以上指令均是单字长单地址指令,所以安排三个机器周期:取指周期FETCH、取数周期DOF、执行周期EXEC。每个机器周期安排四个节拍T1、T2、T3和T4,时序见下图所示。,FETCH,DOF,EXEC,T1,T3,T4,取指周期,取数周期,执行周期,指令周期,CLK,T2,(4)为微操作序列安排时序,I=1?,I=1?,I=1?,I=1?,C,PC AR,R,MREQ,+1,DBUS DR,DR IR,CLA,ADD,STA,LDA,JMP,IR(A
37、R)DBUS,DBUS AR,IR(AR)DBUS,DBUS AR,IR(AR)DBUS,DBUS AR,IR(AR)DBUS,N,Y,N,Y,AC DR,N,Y,N,Y,(IR12)=1,(IR12)=1,FETCH,T1,T2,T3,T4,R,MREQ,DBUS,AR,R,MREQ,DBUS,AR,R,MREQ,DBUS,AR,DBUS,AR,R,MREQ,DBUS DR,DR ALU,+,W,R,MREQ,DBUS DR,DR AC,T1,T2,T3,T4,DOF,T1,T2,T3,T4,EXEC,R,MREQ,DBUS,PC,DR DBUS,(5).操作时间表见下表:,微操作,FETC
38、H,T1,T2,T3,T4,DOF,EXEC,PC AR,R/W=1,R/W=0,MREQ,DR IR,+1,C,IR(AR)DBUS,ALL,ALL,ALL,ALL,ALL,T1,T2,T3,T4,T1,T2,T3,T4,ADD+LDA,ADD+LDA,STA,STA,CLA,CLA,(ADD+STA+LDA+Jmp)*I,(ADD+STA+LDA+JMP)*I,(5).操作时间表见下表:,微操作,FETCH,T1,T2,T3,T4,DOF,EXEC,T1,T2,T3,T4,T1,T2,T3,T4,DBUS AR,DBUS DR,DBUS PC,DR ALU,DR AC,AC DR,+,AL
39、L,ADD+LDA,JMP,ADD,LDA,STA,ADD,ADD+STA+LDA+JMP*I,(ADD+STA+LDA)*I,DR DBUS,STA,(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,ADD,STA,LDA,JMP,IR,I,IR0,IR11,IR
40、12,IR13,IR14,IR15,FETCH,DOF,EXEC,T1,T2,T3,T4,PC AR,DBUS DR,DBUS PC,+,微操作控制信号,OP,I,D,IR0,IR11,IR12,IR13,IR14,IR15,译码器,译码器,时钟发生器,节拍发生器,=,&,T1,T2,T4,DBUS DR,LDA,ADD,I=0,I=1,微操作控制信号DBUS DR的逻辑表达式为:DBUS DR=FETCH*T3+EXEC*(ADD+LDA)*T2,微操作执行逻辑示意图,T3,&,=,周期状态触发器,EXEC,DOF,FETCH,概括起来,设计组合逻辑控制器的方法和过程是:根据所有机器指令流程
41、图,寻找出产生同一个微操作信号的所有条件,并与适当的状态周期电位与节拍电位组合,从而写出其布尔表达式并进行简化,然后用门电路或可编程器件来实现。,组合逻辑控制器的特点 优点:微操作控制信号产生的速度快,只需几级门电路的延时就可以产生.,缺点:(1)缺乏规整性:将几百个微操作的执行逻辑组合在一起,构成的微操作产生部件,是计算机中最复杂、最不规整的逻辑部件.不适合于指令复杂的机器.(2)缺乏灵活性:各微命令的实现是用硬连的逻辑电路完成,设计结果用印刷电路版(硬连逻辑)固定下来后,改动不易,设计困难.,例:CPU结构图如下所示,其中包括一个累加器AC、一个状态寄存器和其它四个寄存器,各部分之间的连线
42、表示数据通路,箭头表示信息传送方向。(1).标明图中四个寄存器的名称.(2)简述取指令的数据通路.(3)简述完成指令LDA X的数据通路(X为内存地址,LDA功能为(X)(AC).(4)简述完成 ADD Y的数据通路(Y为内存地址,ADD功能为(AC)+(Y)(AC).(5)简述完成 STA Z的数据通路(Z为内存地址,STA功能为本(AC)(Z).,主存储器 M,A,AC,C,D,控制单元,状态寄存器,B,+1,ALU,CPU,解:A为数据缓冲寄存器MDR,B为指令寄存器IR,C为主存地址寄存器MAR,D为程序计数器PC.取指令的数据通路:PC MAR MM MDR IR指令LDA X的数据
43、通路:X MAR MM MDR ALU AC指令ADD Y的数据通路:Y MAR MM MDR ALU ADD AC指令 STA Z的数据通路:Z MAR,AC MDR MM,5.5 微程序控制器(Microprogrammed Control),鉴于组合逻辑控制器设计方法的两大缺点:(1)逻辑实现复杂,(2)不易扩充和修改,1951年剑桥的Wilkes教授提出微程序控制器的设计思想:将机器指令分解成若干基本的微命令序列,用二进制代码表示这些微命令,并编成微指令,多条微指令再形成微程序,在制造CPU时固化在CPU中的一个控制存储器(CM)中,执行一条机器指令时,CPU依此从CM中取出微指令,从
44、而产生微命令.上述思想用一篇论文的形式提出,论文题为“The Best Way to Design an Automatic Calculating Machine.”Proceedings,Manchester University Computer Inaugural Conference,July 1951文中给出的设计方案叫做Wilkes模型。,5.5.1 微程序控制器的提出,由于需要快速和相对廉价的控制存储器(Control Memory),而当时的技术水平难以提供支持.1964年2月,Hill“Stored Logical Programming and Applications”
45、Datamation,February 1964,对微程序的未来做了展望.同年4月,采用微程序的IBM 360问世,至此,微程序的各种应用得到不断发展,作为应用之一的,就是微程序控制器.,5.5.2 基本概念(Basic Concepts),微命令:即微操作控制信号,是构成控制信号序列的最小单位,由控制器通过控制线向有关部件发出.,微操作:执行部件接受微命令后进行的操作。,关系:微命令是微操作的控制信号,而微操作是微命令所控制的操作过程,二者一一对应,在计算内部实质上是同一个信号。,微指令(Microinstructions):在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合,以编
46、码的形式存放在CM的一个单元中.控制存储器中每个单元存放一条微指令.把一条机器指令中一个机器周期内的微命令信息放 在一条微指令中,微命令字段:可直接按位或通过译码提供微命令,微指令格式,微命令字段,微地址字段,微操作控制字段 顺序控制字段,微地址字段:控制产生下一条微指令地址,机器指令与微指令、微程序的关系 机器指令指提供给使用者编成的基本单位,每一条指令可以完成一个独立的算术运算或逻辑运算操作.一条机器指令对应一组微指令组成的微程序.可见,一条机器指令对应多条微指令,而一条微指令可为多个机器指令服务.关系如下图所示:,微程序(Microprogram):由微指令组成的序列称为微程序,一条机器
47、指令的功能由一段微程序来实现.,求解问题的算法,ADD R1,R2,STA M1,1ii+1,m,主存,ADD指令的微程序,STA指令的微程序,控存(CM),主存:用于存放程序和数据,在CPU外部,用RAM实现.控存:用于存放微程序,在CPU内部,用ROM实现.控制存储器的字长等于微指令的长度,其总容量取决于微指令的字长和微程序的总长度.,机器语言程序,机器语言程序与微程序关系示意图,例:已知某计算机有80条指令,平均每条指令由 12条微指令组成,其中有一条取指微指令是所有指令共用的,设微指令长度为32位,计算CM容量.,解:微指令所占的二进制位数=(12+79*11)*32=881*32 所
48、以,CM容量可选1K*32 另见教材P.210第6题.,注意:一条机器指令对应一段微程序,而任何一条机器指令的取指阶段的操作都是相同的(公操作),所以,通常将公共的部分提出来,编成一个共用微程序(取指微程序),放在控存的开始位置.,微指令周期:读出微指令的时间+执行该指令的时间,通常一个微指令周期与一个CPU周期的时间相等.,T1,T2,T3,T4,T1,T2,T3,T4,读微指令,执行微指令,微指令周期,CPU周期,CPU周期与微指令周期的关系,相斥性微命令:在同一微周期中不可能同时出现的微命令;,相容性微命令:在同一微周期中可以同时出现的微命令;,例如:P166页双总线CPU结构图中,找相
49、斥性微命令(1)将数据送到内部总线的信号(XXo)是相斥的,如DRo,PCo等;,(2)由内部总线接受数据的信号(XXin)是不存在相斥关系,但由于两个寄存器同时获得同一数据的可能性不大,因此算做相斥性命令;,(3)同一部件的同一类操作是互斥的,如对ALU的各种操作+,-,对内存的读写操作R/W等;,5.5.3 微程序控制器的构成及工作原理,1、微控制器主要由控制存储器(CM)、微指令寄存器(IR)、微地址寄存器(AR)、微地址转移逻辑几部分组成.,控制存储器:存放实现全部指令系统的微指令,它是一种ROM.,微地址转移逻辑:不出现分支时,微地址寄存器直接给出下一条微指令的地址;当出现分支时,则
50、需要修改微地址寄存器的值,然后给出下一条微指令的地址.地址转移逻辑自动完成修改微地址的任务.,微指令寄存器:存放由控制存储器(CM)读出的一条微指令,其字长与微指令字长相同.,微地址寄存器:存放要访问的下一条微指令的地址.,微地址转移逻辑,微地址寄存器,地址译码驱动,IR,主存RAM,译 码,微操作控制字段,顺序控制字段,.,控制存储器ROM,微程序控制器原理框图,微指令寄存器,微命令,运行状态,指令操作码,CM的一行表示存放的是一条微指令,列线输出微指令代码,行列交叉处有黑点表示该位信息为“1”,否则为“0”.,2、工作原理,(1)执行娶指微程序。机器开始运行时,自动将取指令微程序的入口微地