




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章中央处理器熟练掌握CPU的功能、组成;指令执行的周期、时序、控制方式;微命令、微操作、微指令、微程序、水平型微指令和垂直型微指令的概念;
熟练掌握指令执行的流程图及相应的微操作序列;
熟练掌握微命令的编码方法;
熟练掌握微地址的设计技术;
灵活运用控制器的设计技术进行组合逻辑控制器的设计和微程序控制器的设计。了解流水线的基本工作原理学时:
126.1中央处理器的功能和组成1.中央处理器的功能中央处理器简称CPU,它具有如下四方面的功能:
(1)程序的顺序控制。
(2)操作控制
产生取出并执行指令的微操作信号,并把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
(3)时间控制
对各种操作实施时间上的控制。
(4)数据加工
对数据进行算术运算和逻辑运算处理。6.1中央处理器的功能和组成2.中央处理器的组成中央处理器由控制器、运算器和总线组成。
(1)控制器
控制器是全机的指挥中心,其基本功能就是执行指令。控制器由程序计数器PC、指令寄存器IR、地址寄存器(AR)、数据寄存器(DR)、指令译码器、时序系统和微操作信号发生器组成。6.1中央处理器的功能和组成①
程序计数器PC用以指出下条指令在主存中的存放地址,CPU根据PC的内容去主存取得指令。因程序中指令是顺序执行的,所以PC有自增功能。②
指令寄存器(IR):
用来保存当前正在执行的一条指令的代码。③
地址寄存器(AR):
用来存放当前CPU访问内存单元的地址。④
数据寄存器(DR):
用来暂存由内存储器中读出或写如入内存的指令或数据。6.1中央处理器的功能和组成⑤
指令译码器:
分别对操作码字段、寻址方式字段、地址码字段进行译码,向控制器提供操作的特定信号。⑥
时序部件:
用来产生各种时序信号,时序信号可分为CPU周期信号、节拍周期信号和节拍脉冲信号,它们都是由统一时钟CLOCK分频得到。⑦
微操作形成部件:
根据IR的内容(指令)、PSW的内容(状态信息)以及时序线路三方面的内容,产生控制整个计算机系统所需的各种控制信号。其结构有组合逻辑型和存储逻辑型。6.1中央处理器的功能和组成(2)运算器运算器由算术逻辑单元(ALU)、通用寄存器、程序状态字寄存器、数据暂存器、移位器等组成。它接收从控制器送来的命令并执行响应的动作,负责对数据的加工和处理。各组成部件的作用是:①算术逻辑单元(ALU):
用以进行双操作数的算术逻辑运算。②通用寄存器组:
用来存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。
③暂存器:
用来暂存从主存储器读出的数据,这个数据是不能存放在通用寄存器中,否则会破坏其原有的内容。6.1中央处理器的功能和组成④程序状态字寄存器(PSW)
保留由算术逻辑运算指令或测试指令的结果建立的各种状态信息。⑤移位器 在ALU输出端设暂存器用来存放运算结果,它具有对运算结果进行移位运算的功能。控制器的组成图6.3是控制器基本组成的逻辑框图。组成控制器的基本电路一类是具有记忆功能的触发器以及由它组成的寄存器、计数器和存储单元等。其特点是:当输入信号消失后,原信息仍保留其中。图6.4即是这样的电路。该图表示在时间J2时,将A触发器的内容传送到B触发器中,在时间t3以后,A触发器在其他信号作用下变为“0”,但B触发器仍保持不变。组成控制器的基本电路另一类是没有记忆功能的门电路及由它组成的加法器、算术逻辑运算单元(ALU)和各种逻辑电路等。特点是:当输入信号改变后,输出跟着变化。图6.5为加法器电路,对A、B进行加法运算,设A=1,B=0,则“和”S=1,该值仅在A,B保持不变时才成立,若在t2时间A变为“0”,则S立即发生变化(如果忽略电路延迟时间),也变为“0”,而与原来的状态无关,所以这种电路没有记忆作用。6.1中央处理器的功能和组成(3)总线与数据通路结构
①
内部总线
CPU内部连节各寄存器的总线。
②系统总线
系统总线是CPU与主存储器MM、外部设备接口相联的总线,它包括地址总线、数据总
线和控制总线。
CPU向地址总线提供访问主存单元或I/O接口的地址。
CPU向数据总线发送或接收数据,以完成与主存单元或I/O接口之间的数据传送,主存M和I/O设备之间也可以通过数据总线传送数据。
CPU通过控制总线向主存或I/0设备发出有关控制信号,或接收控制信号;I/O没备也可以向控制总线发出控制信号。算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC存储器I/OCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制ccccc缓冲寄存器DR6.2指令的执行
1.指令执行的周期(1)取指周期取指周期要解决两个问题:一是CPU到哪个存储单元去取指令;二是如何形成后继指令地址。指令地址由PC给出,取出指令后PC内容递增;当出现转移情况时,指令地址在执行周期被修改。6.2指令的执行(2)取操作数周期取操作数周期要解决的问题是,计算操作数地址并取出操作数。操作数有效地址的形成由寻址方式确定。寻址方式不同,有效地址获得的方式、过程不同,提供操作数的途径也不同。因此,取操作数周期所进行的操作对不同的寻址方式是不相同的。(3)执行周期
执行周期的主要任务是完成由指令操作码规定的动作,包括传送结果及记录状态信息。操作结果送到什么地方由寻址方式确定;状态信息,主要是条件码,记录在PSW中。若程序出现转移时,则在执行周期内还要决定转移地址。因此,执行周期的操作对不同指令也不相同。6.2指令的执行
指令周期
:
CPU从内存取出一条指令并执行完这条指令的时间总和
机器周期
:
又称CPU周期(总线周期),CPU访问内存所花的时间较长,因此用CPU从内存读取一条指令字的所需的最短时间来定义
时钟周期
:
通常称为节拍脉冲或T周期。一个CPU周期包含若干个时钟周期T
相互关系:
1个指令周期=若干个机器周期
1个CPU周期=若干T周期
取指时间+执行指令时间6.2指令的执行一个指令周期由若干个机器周期组成,每个机器周期又由若干个时钟周期组成。
一个机器周期内包含的时钟周期个数决定于该机器周期内完成的动作所需的时间。一个指令周期包含的机器周期个数亦与指令所要求的动作有关,如单操作数指令,只需要一个取操作数周期,而双操作数指令需要两个取操作数周期。6.2指令的执行2.指令的执行(1)指令的执行过程
①
取指令根据指令计数器PC提供的地址从主存储器中读取现行指令,送到主存数据缓冲器MDR中。然后再送往CPU内的指令寄存器IR中。同时改变指令计数器的内容,使之指向下一条指令地址或紧跟现行指令的立即数或地址码。6.2指令的执行②
取操作数如果是无操作数指令则可直接进入下一个过程。如果需要操作数则根据寻址方式计算地址,然后到存储器中去取操作数。如果是双操作数指令则需两个取数周期;
③
执行操作根据操作码完成相应的操作并根据目的操作数的寻址方式存结果。(2)指令之间的衔接方式
指令之间的衔接方式有:串行的顺序执行方式、并行的重叠处理方式和流水执行方式。6.2控制器的组成【例如】一段简单的汇编源程序如下所示,分析其执行过程。
020
CLA
;累加器清0021
ADD30
;(AC)+(30)→AC
022
STA40
;(AC)→(40)023
NOP
;空操作
024
JMP21
;21→PC…030000006 ;数据
…040存和数 ;数据指令的执行过程如下:6.2控制器的组成(1)CLA指令的指令周期一个机器周期一个机器周期取指令阶段执行指令阶段开始取指令PC+1对指令译码执行指令取下条指令PC+1取出CLA指令算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+1000020202122232430CLAADD30STA40NOPJMP21000006000020CLACLA000021算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+1202122232430CLAADD30STA40NOPJMP21000006000020CLACLA000021000000执行CLA指令6.2控制器的组成(2)ADD指令的指令周期
一个机器周期一个机器周期取指令阶段执行指令阶段开始取指令PC+1对指令译码送操作数地址取下条指令PC+1取出操作数执行加操作一个机器周期算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+12021222324303140CLAADD30STA40NOPJMP21000006000021ADDADD300000210000220000300000060+6=6000006取出并执行ADD指令6.2控制器的组成(3)STA指令的指令周期
算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+120212223243040CLAADD30STA40NOPJMP21000006000022STASTA40000022000023000040000006000006000006取出并执行STA指令6.2控制器的组成(4)NOP指令和JMP指令的指令周期算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+1202122232430CLAADD30STA40NOPJMP21000006000024JMP21JMP21000024000021000006000025000021取出并执行JMP指令6.2指令的执行一条加法指令的执行过程
假设运算器的框图如图6.6所示。6.2指令的执行6.2控制器的组成运算器由8个通用寄存器GR及一个算逻运算部件ALU组成,并有4个记忆运算结果状态的标志触发器N,Z,V和C。其中:
N(负数):当运算结果为负数时,置“1”,否则为“0”。
Z(零):当运算结果为零时,Z=1,否则Z=0。
V(溢出):当运算结果溢出时,V=1,否则V=0。
C(进位):当加法运算产生进位信号或减法运算产生借位信号时,C=1,否则C=0。图6.6中的“•”表示两线相接,小圆圈“O”表示受控制的“与”门,带*号的是控制命令,各控制命令均来自控制器,其功能在图上已标明。图6.7是加法指令的操作时序图:6.2指令的执行6.2指令的执行图中CLK为时钟,假设一个基本操作需要2个时钟(T1和T2)才能完成。在一般情况下,当控制命令为1(高电平)时,将受控门打开(例如PC→AB等);控制命令为0(低电平)时,将门关闭。而在控制命令(或回答信号)的上面有符号“一”时,其作用相反。例如,ADS当其为高电位时,表示向存储器送去了一个读/写启动命令,存储器根据另一控制命令W/R来决定进行写操作还是读操作。当W/R=1时,进行写操作;当W/R=0时,进行读操作。本例中,存储器和I/O设备中的寄存器是统一编制的,因此利用M/IO信号来区分究竟是访问存储器还是I/O设备。当存储器或I/O设备完成读写操作时,向CPU送回面而信号。6.2控制器的组成假设指令格式如下:rs,rd,rs1为通用寄存器地址;imm(或disp)为立即数(或位移量)。加法指令功能:将寄存器(rs)中的一个数与存储器中的一个数(其地址为(rs1)+disp)相加,结果放在寄存器rd中,rs与rd为同一寄存器。6.2控制器的组成加法指令完成以下操作:①从存储器取指令,送入指令寄存器,并进行操作码译码(分析指令)。程序计数器加1,为下一条指令作好准备。
控制器发出的控制信号:PC→AB,W/R=0,M/IO=1;DB→IR;PC+1。②计算数据地址,将计算得到的有效地址送地址寄存器AR。
控制器发出的控制信号:rsl→GR,(rsl)→ALU,disp→ALU(将rsl的内容与disp送ALU);“+”(加法命令送ALU);ALU→AR(有效地址送地址寄存器)。6.2控制器的组成③到存储器取数。控制器发出的控制信号:AR→AB,W/R=0,M/IO=1;DB→DR(将地址寄存器内容送地址总线,同时发访存读命令,存储器读出数据送数据总线后,打入数据寄存器)。④进行加法运算,结果送寄存器,并根据运算结果置状态位N,Z,V,C。控制器送出的控制信号:rs→GR,(rs)→ALU,DR→ALU(两个源操作数送ALU);“+”(ALU进行加法运算):rd→GR,ALU→rd置N,Z,V,C(结果送寄存器,并置状态位)。6.2控制器的组成以上操作需要四个机器周期,其时间安排如下:其中取指令和取数周期通过总线访问存储器;计算地址和运算送结果周期在CPU内部进行操作,此时总线空闲。
CPU内部的寄存器,如程序计数器(PC)、指令寄存器(IR)、通用寄存器(GR)等都是在一个周期的末尾接受信息的,即在T2时,利用CLK时钟的下降沿打入寄存器,在图6.7中末标明。大部分计算机CPU中的触发器、寄存器都是利用与时钟同步的脉冲打入的。6.2控制器的组成②如转移条件成立,根据指令规定的寻址方式计算有效地址,转移指令经常采用相对寻址方式,此时转移地址;PC+disp。此处PC是指本条指令的地址,而在上一机器周期已执行PC+1操作,因此计算时应取原PC值,或对运算进行适当修正。最后将转移地址送PC。本条指令只需要两个机器周期,如转移条件成立,在第二机器周期增加一个ALU→PC信号;另外,如为相对转移,则用PC→ALU信号取代加法指令第二周期中的(rs1)→ALU信号,其他信号与加法指令的前两个机器周期中的信号相同。6.2控制器的组成某些计算机对条件转移指令的功能规定为:先进行比较运算,根据运算(比较)结果置条件码,并根据条件码决定是否转移。要完成这样的功能显然要增加周期数。其他指令的控制信号也按同样方法分析,根据每条指令的功能确定所需的机器周期数,并得出每个机器周期所需要的控制信号,最后将所有的控制信号进行综合简化。控制器的功能就是按每条指令的要求产生所需的控制信号。因此在设计控制器时要求系统设计师提供一个完整的无二义性的指令系统说明书。到此为止,只讲到为什么需要控制信号及需要什么样的控制信号,下面将说明如何产生控制信号。产生控制信号一般有微程序控制和硬布线控制两种方法。6.3微程序控制的计算机一、微程序控制的基本概念基本概念和术语(1)微命令与微操作
微命令——控制完成微操作的命令。例如:打开或关闭某个控制门的电位信号,某个寄存器的打入脉冲等。微命令由控制器通过控制线向有关的部件发出。
微操作——由微命令控制实现的最基本操作。
(2)微指令与微周期
微指令——若干个微命令的组合,以编码形式存放在控制存储器的一个单元中,控制实现一步操作。6.3微程序控制的计算机
微周期——通常指从控制存储器中读取一条微指令并执行相应的微操作所需的时间。若一个微周期的全部微命令用一个同步脉冲定时,则这种微周期称为单周期;若一个微周期内用一个以上的同步脉冲定时全部微命令,则称多周期。(3)机器语言程序与微程序
机器语言程序——一系列指令的有序集合称为机器语言程序。
微程序——一系列微指令的有序集合称为微程序,一条指令的功能由一段微程序来实现。6.3微程序控制的计算机(4)控制存储器微程序控制器的核心是控制存储器CM,用它存放各指令对应的微程序,CM可用只读存储器ROM构成。若采用可擦除可编程只读存储路EPROM作CM,则有利于微程序的修改和动态微程序设计。一般计算机指令系统是固定的,所以实现指令系统的微程序也是固定的。由于机器内控制信号数量比较多,再加上决定下址的地址码有一定宽度,所以控制存储器的字长比机器字长要长得多。执行一条指令实际上就是执行一段存放在控制存储器中的微程序。6.3微程序控制的计算机二、微程序控制的基本原理1、控制信号上一节讲到的运算器和控制器组合在一起,即为图6.8所示。图中假设ALU可以进行加(+)、减(-)、逻辑加(∨)逻辑乘(∧)四种运算,图中的控制信号用符号1,2,3,…表示,其意义参见表6.1。6.3微程序控制的计算机6.3微程序控制的计算机6.3微程序控制的计算机以执行一条加法指令为例,它由四条微指令解释执行,一条微指令中的所有控制信号是同时发出的。每条微指令所需的控制信号如下:(1)取指微指令
①指令地址送地址总线:PC→AB(1)②发访存控制命令,ADS(21),M/IO=1(22),
W/R=0(23)。从存储器取指令送数据总线。③指令送指令寄存器:DB→IR(5)④程序计数器+1:PC十1(3)6.3微程序控制的计算机(2)计算地址微指令
①取两个源操作数(计算地址用):rsl→GR(8),
(rsl)→ALU(10),disp→ALU(4)。②加法运算:“+”(13)。③有效地址送地址寄存器:ALU→AR(19)。(3)取数微指令
①数据地址送地址总线:AR→AB(20)。②发访存控制命令:ADS(21),M/IO(22),W/R(23)。由存储器将数据送数据总线DB。③数据送数据寄存器:DB→DR(6)6.3微程序控制的计算机(4)加法运算和送结果微指令
①两源操作数送ALU:rs→GR(9),(rs)→ALU(11);
DR→ALU(12)。②加法运算:“+”(13)③送结果;ALU→GR(17)如何组织微指令产生上述信号:最简单的组成形式是将每个控制信号用一个控制位来表示,当该位为“1”时,定义为有控制信号,当该位为“0”时,没有控制信号。M/IO、W/R则根据是访问存储器还是I/O设备,是写还是读而设置成“1”或“0”。图6.8中总共有23个控制信号,所以总共有23个控制位,如控制存储器容量为4K字,则每条微指令还需要12位来表示下址。微指令格式可表示如下:6.3微程序控制的计算机控制字段每一位的功能与表6.1中所表示的相符。例如,第1位表示PC→AB。实际的计算机的控制信号数量要比上例大得多,而且控制存储器容量一般大于4K字,因此微指令字的长度通常在100位以上。控制存储器的容量取决于实现指令系统所需的微程序长度。6.3微程序控制的计算机图6.9为加法指令的四条微指令编码,每一小格表示一位(二进制),空格表示0,第24位到第35位为下址。6.3微程序控制的计算机当前正在执行的微指令从控制存储器取出后放在微指令寄存器中,该寄存器的各个控制位的输出直接连到各个控制门上。例如,上述第四条微指令,由于第9,11,12,13,17位为1,因而产生将两个数送ALU进行加法运算和将结果送通用寄存器的控制信号并根据运算结果置状态位NZVC。微程序也可以用流程图来表示(图6.10)。图中每一方框表示一条微指令,方框上方表示的是该条微指令的地址,方框内为执行的操作,在其右下角为下一条要执行的微指令的地址,表示在微指令的下址字段中(见图6.9)。取指微指令的操作对所有的指令都是相同的。所以是一条公用的微指令,其下址由操作码译码产生。6.3微程序控制的计算机例2CPU结构框图如图所示写出以下几条指令的操作流程图CLA;清ACADDID
;I=0为直接寻址,即:(AC)+(D)→AC
;I=1为间接寻址,即:(AC)+((D))→ACSTAID
;I=0为直接寻址,即:(AC)→D
;I=1为间接寻址,即:(AC)→(D)LDAID
;I=0为直接寻址,即:(D)→AC
;I=1为间接寻址,即:((D))→ACJMPID
;I=0为直接寻址,即:
D→(PC);I=1为间接寻址,即:(D)→(PC)
解:指令的操作流程图如图所示
例3已知CPU数据通路如图所示,线上标有控制信号。写出以下指令的操作流程图,并标出相应的微操作序列。(有偏移量时为双字长指令,无偏移量时为单字长指令)
①指令ADD(Rd),Rs的功能是:((Rd))+(Rs)→(Rd)。②指令ADDRd,@#disp的功能是:(Rd)+(disp)→Rd。
③指令ADDRd,disp(Rs)的功能是:((Rs)+disp)+(Rd)→Rd
。CPU数据通路如下图①ADD(Rd),Rs指令的操作流程如图6.3微程序控制的计算机2、微程序控制器微程序控制器如图6.11所示。图中的控制存储器与微指令寄存器替代了图6.3和图6.8中的时序控制信号形成部件6.3微程序控制的计算机微程序控制器的基本工作原理如下:当指令取入IR中以后,根据操作码进行译码,得到相应指令的第一条微指令的地址。在图6.10中,当执行加法指令时,译码得到的地址为1001,当执行减法指令时,译码得到的地址为1004,…,当执行条件转移指令时,译码得到的地址为1100。之后,都由微指令的下址字段指出下一条微指令的地址。指令译码部件可用只读存储器组成,将操作码作为只读存储器的输入地址,该单元的内容即为相应的微指令在控制存储器中的地址,根据此地址从控制存储器取出微指令,并将它存放在微指令寄存器中。6.3微程序控制的计算机微指令分成两部分,产生控制信号的部分一般称为控制字段,产生下址的部分称为下址字段。控制字段各位的输出通过连接线直接与受控制的门相连,于是就提供了在本节所提出的控制信号。线路图如下:6.3微程序控制的计算机6.3微程序控制的计算机3、时序信号及工作脉冲的形成在图6.8中,没有画出使一些寄存器(例如指令寄存器、程序计数器等)接收数据或计数的工作脉冲(打人脉冲),这些脉冲是如何形成的呢?另外在波形图中的CLK,T1,T2等信号又是如何产生的?下面进行简单的解答。首先讨论图6.7中的CLK及T1,T2是怎样产生的,分析它们之间的关系,可以知道,CLK2经过二分频得到CLK,再将CLK分频得到T1。而T2可从T1反相得到。一般利用触发器电路进行分频,因此从触发器的另一端输出即为T2。如图6.12(a)所示。图6.12(a)画出了产生CLK和T1,T2信号的二分频电路图。6.3微程序控制的计算机6.3微程序控制的计算机前面曾假设一个机器周期由T1和T2组成,在T2的末尾需要产生一个工作脉冲CP来保存计算结果或接收传送的数据及指令等。例如,在第一个机器周期的末尾要将从存储器取来的指令送入指令寄存器,并完成程序计数器加1的操作。在图6.12(b)中画出的工作脉冲CP可用逻辑式表示如下:
CP=T2·CLK·CLK2#同样将上述一些信号组合可以得到我们想得到的任意时序脉冲。例如,利用一个“与”门实现CP1=T1·CLK·CLK2#
功能可在T1末尾得到另一个工作脉冲;而实现CLK·CLK2#
功能的“与”门则可得到上述两个工作脉冲的叠加信号,
CP+CP1=CLK·CLK2#。如图6.12(b)所示。6.3微程序控制的计算机6.3微程序控制的计算机在一个机器周期内设置一个或多个工作脉冲?机器周期时间多长?这是由设计者根据逻辑设计和电路性能而决定的,将随机器而异。机器中一些寄存器的打入脉冲是如何形成的。例如,在取指周期,要将指令送人指令寄存器,并将程序计数器的内容加1,从图6.9可见,此时微指令的控制位DB→IR和PC+1为“1”,因此采用“与”门,如图6.13(a)和图6.13(b)所示即可形成IR和PC的打入脉冲(CP—IR和CP—PC)。6.3微程序控制的计算机6.3微程序控制的计算机有些寄存器,在每个机器周期都要接受新内容。例如,微指令寄存器,由于每个机器周期要完成一条微指令,所以每个机器周期都要从控制存储器中取出一条微指令,并将它送入微指令寄存器中,此时可直接利用CP作为微指令寄存器的打人脉冲。计算机内所有寄存器和触发器接受信息都需要有打人脉冲(施密特触发器例外),都可以用类似的方法产生。有些信号,例如ADS,仅在T1时间起作用,可利用微指令控制位ADS和T1相“与”,即可得到ADS如图6.13(c)所示。6.3微程序控制的计算机4、电路配合中的常见问题
(1)电路延迟引起的波形畸变信号通过逻辑电路时,由于电路内部的原因以及寄生参数(如寄生电容)的影响,可能产生不期望的信号畸变或“毛刺”。6.3微程序控制的计算机例如,在图6.14所示的“符合”电路(当A=B时输出C为高电位)中,输出端C=AB+A#B#。假如A,B起始状态均为1,在时间t由“1”变“0”,由于A#B#比AB多经过一个门,而信号通过“门”时会产生延迟时间,因此当AB变成0时,A#B#仍为0,于是在输出C产生一个脉冲;假如A,B输入信号是理想的方波(上升边、下降边时间为0)且没有延迟,那么该脉冲是不会发生的。这一脉冲有人把它称为“毛刺”。6.3微程序控制的计算机又如图6.15(a)是一个分频电路,由触发器和“与”门组成。如触发器无延迟,则在与门的输出端可得到宽度与CLK相同、频率降低一半的CLKA脉冲,但若触发器有延迟,其输出波形为Q’,则在“与”门的输出端的波形将如CLKA'所示,使信号宽度变窄,又产生了“毛刺”。这样的电路会引起计算机操作错误。6.3微程序控制的计算机(2)机器周期的确定一条微指令要完成若干个微操作,不同的微指令要完成的微操作是不同的,所有的微操作都应在一个机器周期内完成,也就是说机器周期时间应大于或等于执行时间最长的微操作时间。一般来说人们首先注意的是访问存储器时间,因为存储器的速度比逻辑电路慢,然后考虑一次算术运算所需的时间。6.3微程序控制的计算机例如,当进行加法操作时,要考虑形成“和”可能需要的最长时间以及置状态位并判断运算结果是否溢出等所需的时间。当运算结果溢出时,有的计算机不希望将运算结果送入寄存器中,以避免扩散错误造成的影响;同时假如寄存器中的原始数据不被破坏,那么当查出溢出原因后,就有可能继续运行下去。一些更为复杂的运算,例如乘法或除法运算,利用若干条微指令实现,每条微指令仅完成加(减)法和移位等操作。机器周期对机器速度影响很大,是计算机的主要指标之一。6.3微程序控制的计算机在图6.7的波形图中,有一个ready信号,它是CPU访问存储器时,由存储器送回CPU的回答信号,这是考虑到存储器的速度可能与CPU不一致,假如存储器的速度较低,则ready信号出现较晚,CPU将延长一个或一个以上T2节拍信号。6.3微程序控制的计算机图6.16是用来产生CLK及T1,T2信号的分频电路,当T2且无ready#信号时,封锁CLK2信号(T的计数脉冲),而满足:
(T2·ready#)#=T2#+ready
=T1+ready
=T1+ready##
条件时,允许T计数,采用这种办法后,CPU可以与不同存取速度的存储器配合工作。6.3微程序控制的计算机(3)时钟脉冲CLK和工作脉冲CP的标准性CLK和CP是控制全机工作的脉冲,因此对它的幅度及宽度要求是很严格的。CP主要作为寄存器和触发电路的打入脉冲。例如,有A,B,C三个触发器,当满足条件cond时,将A触发器内容送B,同时将原B触发器内容送C。对CP的控制有两种方式:一种方式是控制CP—B与CP—C信号如图6.17(a)所示,当满足cond条件时,才产生CP—B和CP-C信号。另一种方式是CP脉冲不受控制,总是作用在触发器上,但当条件不成立时,使触发器处于保持状态(即维持原状态不变),而当条件成立时,接受新状态如图6.17(b)所示。6.3微程序控制的计算机6.3微程序控制的计算机触发器A,B,C是具有维持阻塞功能的D型触发器。在图6.17中假设CP—B与CP-C是同时作用的脉冲,因此能可靠传送数据,但假如CP—B比CP—C来得早,那么有可能将B触发器刚接收的新数据传送到C触发器。在图6.17(a)中,CP—B和CP—C不是来自同一处,假如设计时不注意这一问题,就可能产生CP—B早于CP—C的情况。在控制打人脉冲的机器中,总是尽量将CP信号送到控制门的最后一级。6.3微程序控制的计算机例如,图6.18(a)与(b)都能实现F=A.B.C.D.E.CP的功能,但在图6.18(a)中,CP所经过的门比图6.8(b)少一级,所以图6.8(a)的电路比图6.18(b)为好。6.3微程序控制的计算机实际上同种类(或同型号)器件的延迟时间可在一定范围内变化,经过的门越多,越容易产生参差不齐的现象。尤其是当负载不均匀时,更容易造成这种情况。图6.17(b)利用时钟脉冲CP直接作为触发器的打人脉冲,提高了可靠性,但是增加了电路的复杂性,因为在某些情况下,要保持原触发器状态不变。另外也要看到,在这种计算机中CP的负载一定很重,实际上要用若干个驱动电路并行工作如图6.19所示。各CLKi(i=1,2,3,…)之间的波形不会完全相同,但由于它们经过的门的级数相同,而且在同一芯片内部,所以相差不大,又由于寄存器或触发器的状态变化有一定的延迟时间,因此允许CLK在一定范围内变化。如图6.19的电路由多个芯片组成,则要选择性能相同的芯片。6.3微程序控制的计算机经过多级门的时钟脉冲,还可能改变脉冲宽度。例如,TTL电路的输出波形,上升边较坏,下降边较陡,假如各级门负载不同,会导致脉冲宽度增加或减少。在传送CLK的线上或产生打人脉冲的信号线上不允许出现“毛刺”,否则将引起误动作。6.3微程序控制的计算机5、微程序控制计算机的工作过程简单的总结(参阅图6.8)机器加电后,首先由reset信号在PC内置入开机后执行的第一条指令的地址,同时在微指令寄存器内置入一条“取指”微指令,并将其他一些有关的状态位或寄存器置于初始状态。当电压达到稳定值后,自动启动机器工作,产生节拍电位T1,T2和CP。为保证机器正常工作,必须由电路保证开机工作后第一个机器周期信号的完整性,在该周期的末尾,产生开机后第一个工作脉冲CP。然后机器开始执行程序,不断地取出指令、分析指令、执行指令。程序可以存放在固定存储器中,也可以利用一小段引导程序(在固存中)将要执行的程序和数据从外部设备调入主存。6.3微程序控制的计算机实现各条指令的微程序是存放在微程序控制器中的。当前正在执行的微指令从微程序控制器中取出后放在微指令寄存器中,由微指令的控制字段中的各位直接控制信息和数据的传送,并进行相应的处理。当遇到停机指令或外来停机命令时,应该待当前这条指令执行完再停机或至少在本机器周期结束时再停机。机器的启动停止、工作节拍和脉冲的关系如图6.20所示。在停机后重新启动要保证机器继续工作且不出任何错误。6.3微程序控制的计算机6.3微程序控制的计算机停机与停电是两个不同的概念:停机时电压仍维持正常,因此寄存器与存储器仍保持信息不变,重新启动后从程序停顿处(称为断点)继续执行下去。而停电后情况大不相同,此时寄存器与存储器的内容已消失,加电后产生的reset信号,使机器从固定人口重新开始运行。某些机器不设停机指令,而是不断循环执行一条或几条无实质内容的指令实现动态停机。此时一般依靠外来中断请求信号,启动机器继续工作。6.3微程序控制的计算机某些机器具有停电后自动再启动功能。当停电时,依靠接在直流电上的大电容或后备电源使直流电压维持一段时间,此时将主存储器的内容、程序计数器的内容(即程序断点)、寄存器的内容以及状态字(包括N,Z,V,C)等调入磁盘或磁带等外存储器;因为主存储器一般由半导体组成,停电后信息会丢失,而磁存储器停电后仍能保持原信息,所以接受到停电信号时,先把主存信息保存在磁存储器中,然后停机。当交流电源恢复正常时,具有自动再启动功能的计算机自动将磁存储器的内容调人主存,并从断点继续工作。这种工作方式适用于电源有故障或短时间内交流电压不稳定的情况,在无人操作的情况下还能保证机器继续工作。而更为一般的工作方式是在人工操作下让机器重新开始工作。6.3微程序控制的计算机计算机从启动、执行程序、停机直到停电的过程。实现这一过程的方法及硬件结构可以有很大的差别。上例仅说明了一种可以实现的方法,并给出了相应的经过简化的逻辑图。在下节中我们将讨论微程序控制器中会遇到的更为普遍的问题。6.4微程序控制器设计技术 前面我们讲述了微程序控制计算机的基本工作原理,目的是说明在计算机中程序是如何实现的以及控制器的功能。在实际进行微程序设计时,还应关心下面三个问题:
(1)如何缩短微指令字长;
(2)如何安排微程序的微地址;
(3)如何提高微程序的执行速度。这就是在本节所要讨论的微程序设计技术。6.4微程序控制器设计技术微指令编码方法(1)直接控制编码(不译码法)
直接控制编码是指微指令的微命令字段中每一位都代表一个微命令。设计微指令时,选用或不选用某个微命令,只要将表示该微命令的对应位设置成1或0就可以了。因此,微命令的产生不需译码。这种编码的优点是简单、直观,执行速度快,操作并行性最好;其缺点是微指令字长过长,使控制存储器单元的位数过多。而且,在给定的任何一个微指令中,往往只需部分微命令,因此只有部分位置1,造成有效的空间不能充分利用。6.4微程序控制器设计技术(2)字段直接编译法①
相斥性微命令和相容性微命令同一微周期中不能同时出现的微命令称为相斥性微命令;在同一微周期中可以同时出现的微命令称为相容性微命令。
②分段直接编译法将微指令的微命令字段分成若干小字段,把相斥性微命令组合在同一字段中,而把相容性微命令组合在不同的字段中,每个字段独立编码,每种编码代表一个微命令且各字段编码含义单独定义,与其它字段无关,这就称为分段直接编译法。6.4微程序控制器设计技术③分段的原则
A.互斥性的微命令分在同一段内,兼容性的微命令分在不同段内。
B.与数据通路结构相适应。
C.每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。
D.一般每个小段还要留出一个状态,表示本字段不发出任何现行命令。因此当某字段的长度为三位时,最多只能表示七个互斥的微命令,通常用000表示不操作。6.4微程序控制器设计技术(3)分段间接编译法
分段间接编译法是在直接编译法基础上,进一步缩短微指令字长的一种编码方法。在这种编译法中,一个字段的含义不仅决定于本字段编码,还兼由其它字段来解释,以便使用较少的信息位表示更多的微命令。(4)混合控制法——直接控制法与译码控制法的混合使用。6.4微程序控制器设计技术例1对图6.8中的微命令进行编码【相关知识】
分段直接编译法是将微指令的微命令字段分成若干小字段,把相斥性微命令组合在同一字段中,而把相容性微命令组合在不同的字段中,每个字段独立编码,每种编码代表一个微命令且各字段编码含义单独定义,与其它字段无关。在此采用混合控制法。例1【例题分析】(1)按照CPU结构图找互斥性微操作:①以AB总线为单位:AR→AB、PC→AB是互斥的②以ALU为单位:DR→ALU、PC→ALU、(rs1)→ALU是互斥的
imm(disp)→ALU、(rs)→ALU是互斥的ALU→GR、ALU→DR、ALU→PC、ALU→AR是互斥的+、-、∧、∨是互斥的③以GR为单位:
rs1→GR、rsrd→GR是互斥的④以DB为单位:
DB→DR、DB→IR、DR→DB是互斥的例1(2)分组DR→ALU、PC→ALU、(rs1)→ALU这一组微命令用2位控制。ALU→GR、ALU→DR、ALU→PC、ALU→AR这一组微命令是相斥的,用3位控制。DB→DR、DB→IR、DR→DB这一组微命令用2位控制。AR→AB、PC→AB这一组微命令放在一起,但若用译码控制需加译码器,仍需2位控制,所以就用直接控制。例1rs1→GR、rsrd→GR这一组微命令也用直接控制,原因同上。ADS、M/IO、W/R是相容的,用直接控制,用3位。因为PC+1与imm(disp)→ALU、(rs)→ALU不会同时出现,为了节省位数,所以将他们放在一起用2位控制。【例题答案】微指令格式图6.14所示:例1例2已知CPU数据通路如图所示,线上标有控制信号。设计适合此数据通路的微指令。解:此数据通路的微指令格式如下
6.4.2微程序的顺序控制1、微程序入口地址的形成
由于每条机器指令都需要取指操作,所以将取指操作编制成一段公用微程序,通常安排在控制存储器的0号或1号单元开始的一段CM空间。每一条机器指令对应着一段微程序,其入口就是初始微地址。首先由“取指令”微程序取出一条机器指令到IR中,然后根据机器指令操作码转换成该指令对应的微程序入口地址。这是一种多分支(或多路转移)的情况,常用以下方式形成入口地址:如操作码为P,则入口地址为×…×P或P×…×。6.4.2微程序的顺序控制2、后继微地址的形成
在转移到一条机器指令对应的微程序入口地址后,则开始执行微程序,这时每条微指令执行完毕时,需根据其中的顺序控制字段的要求形成后继微指令地址。①
计数器方式这种方式与用程序计数器产生机器指令地址的方式相类似。在顺序执行微指令时,后续微指令地址由现行微指令加上一个增量来产生;在非顺序执行微指令时,由转移微指令实行转移,转移微指令的控制字段分成两部分:条件选择字段与转移地址字段。由这两个字段结合,当转移条件满足时,将转移地址字段作下一个微地址;若转移条件不满足,
则直接从微程序计数器中取得下一条指令。6.4.2微程序的顺序控制用计数器法产生微地址的缺点是微程序中出现大量的转移微指令。它们约占整个微指令数的25%,导致执行时间大大增加。另外,在编制微程序中,因微指令的地址受到限制,因而不方便;要区分微命令微指令和转移微指令使得微程序控制电路复杂化。
②
下址字段法——也称为断定方式
下址字段法与计数器法不同,它不采用uPC,而是在微指令格式中,设置一个下址字段,用于指明下一条要执行的微指令地址。当一条微指令被取出时,下一条微指令的地址已获得。它相当于每条微指令都具有转移微指令的功能。采用这种方法就不必设置专门的转移微指令,但增加了微指令字的长度。6.4.2微程序的顺序控制③
增量方式与断定方式的结合在这种控制方式中微指令寄存器有计数的功能,但在微指令中仍设置一个顺序控制字段,它分成两部分:转移控制字段与转移地址字段。由这两个字段结合,当转移条件满足时,将转移地址字段作下一个微地址;若无转移要求,则直接从微程序计数器中取得下一条指令。例1用增量方式与断定方式结合法设计ADD、SUB、JC指令的微地址,并画出微程序控制器组成框图。【例题解答】此方法与下址字段法有些类似。例如图6.19所示,详细微命令见图6.8。微指令格式为:微命令字段转移控制BCF转移地址字段BAF设控存为1K,微指令寄存器为10位,BAF也为10位;图中有12条微指令,地址需4位编码,假设将图6.17中的取指微指令放在000H单元中,其余微指令安排在110H∽11FH这16个单元中。例BCF的定义如下:①BCF=0,由PC计数得到下址地址。②BCF=1:无条件转移③BCF=2:由ADD控制修改μPC2或由SUB控制修改μPC0
④BCF=3:由IR17IR16控制修改μPC3μPC2⑤BCF=4:由C控制,C=0则转移,否则μPC1计数例地址转移逻辑表达式为:μPC3=IR17•
3•T2μPC2=IR16•3•T2μPC1=ADD•2•T2μPC0=SUB•2•T2例通常第一条微指令安排在000H号单元;000H号单元是多路分支转移,按修改方案分别转到110H、114H、118H、11CH四个单元。①110H号单元执行完后无条件转移到117H。②114H号单元执行完后计数到地址115H;115H号单元执行完后计数到地址116H;116H号单元执行完后计数到地址117H;117H号单元执行完后由ADD控制转移到112H或由SUB控制转移到111H;112H号单元执行完后无条件转移到000H,开始下一条微指令的执行;111H号单元执行完后无条件转移到000H,开始下一条微指令的执行;例③118H号单元执行完后无条件转移到115H。④11CH单元是一条空操作微指令,当C=0时转000H单元,否则μPC+1到11DH单元。11DH号单元执行完后无条件转移到000H,开始下一条微指令的执行;说明1、通常第一条微指令安排在000H号单元;2、000H号单元是多路分支转移,按修改方案分别转到
110H、114H、118H、11CH四个单元。3、安排顺序微指令,尽量满足计数;4、二分支时不满足条件,则计数得到下址;否则按下址转移。增量与下址字段结合产生后继微地址说明P186在P187图6.24中将微指令的下址字段分成两部分:转移控制字段BCF和转移地址字段BAF,当微程序实现转移时,将BAF送μPC,否则顺序执行下一条微指令(μPC+1)。
执行微程序条件转移时,决定转移与否的硬件条件有好几种。例如,“运算结果为零”、“溢出”、“已完成指定的循环次数”等。在图6.24中,我们假设有八种转移情况,定义了八个
微命令(BCF取3位)。在图中设置计数器CT,用来控制循环次数。如在执行乘(或除)法指令时,经常采用循环执行“加、移位”(或减、移位)的方法,指令开始执行时,在CT中置循环次数,每执行一次循环,计数器减1,当计数器为零时结束循环。又考虑到执行微子程序时,
要保留返回微地址,因此图中设置了一个返回寄存器RR。
关于BAF的长度BAF的长度有两种情况:
①与μPC的位数相等;可以从控制存储器的任一单元取微指令。
②比μPC短;考虑到转移点在μPC附近,或者在控制存储器的某区域内,所以由原来的μPC的若干位与BAF组合成转移微地址。第一种情况,转移灵活,但增加了微指令的长度;第二种情况,转移地址受到限制,但可缩短微指令长度。微程序控制器的设计小结①根据CPU的结构图写出每条指令的操作流程图并分解成微操作序列②
用混合控制法对微命令进行编码③选择合适的控制和时序④选用微程序的顺序控制方法为微指令安排微地址⑤画出微程序控制器组成框图关于多路转移方式
—条微指令存在多个转移分支的情况称为多路转移。
(1)根据操作码产生不同的后继微地址。实现此功能的电路通常是由PROM组成的,也有把它称为MAPROM(映像只读存储器)的。该存储器的特点是以指令的操作码作为地址输入,而相应的存储单元内容即为该指令的第一条微指令的入口地址。该存储器的容量等于或略大于机器的指令数,所以容量小,速度快。(2)根据某些硬件状态来决定后继微地址属于这些状态的可以是根据运算结果所置的标志位(N,Z,V,C)、计数器状态、数据通路状态等。根据一种状态(非0即1)来决定微地址可以有两种情况,即两路转移;两路转移只涉及微地址的一位;根据两种状态来决定微地址可以有四种情况,即四路转移。四路转移涉及微地址的两位;根据三种状态来决定微地址可以有八种情况,即八路转移。八路转移涉及微地址的三位。以此类推。关于微中断在微程序执行过程中,一旦出现微中断请求信号,通常在完成现行指令的微程序后响应该微中断请求,这时中止当前正在执行的程序,而转去执行微中断处理程序,微中断请求信号是由程序中断请求信号引起的。
设计人员在进行微程序设计时,已安排好微中断处理程序在控制存储器的位置,因此该微程序段的入口地址是已知的。当CPU响应微中断请求时,由硬件产生微中断程序的入口地址。当中断处理完毕后,再返回到原来被中断的程序。这也是产生后继微地址的一种情况。
P189微程序控制器AM2910
AM2910由μPC、微堆栈、计数器/寄存器、命令译码器及多路地址选择器组成。其输出Y11~Y0直接送到控存。与P187图6.24相比,它将多个逻辑电路集成在一个芯片上,并具有更强的功能。
AM2910的多路地址选择器,用来选择下一条微指令的地址,它可从片内的微程序计数器μPC、寄存器/计数器、微堆栈或直接从输入微地址(D11~D0)中选择一个作为输出。
微程序计数器是由12位增量器和12位寄存器组成。当增量器的进位输入CI为高电平时,多路器的输出Y加1后装入μPC,用于实现微程序的顺序执行;而当CI为低电平时,多路器的输出Y直接装入μPC,用于实现一条微指令的多次执行。
寄存器/计数器由12个D型触发器组成。当它用作寄存器时,主要用于保存一个微地址,用以实现微程序分支;当它用作计数器时,具有减“1”功能(受AM2910的命令码I3∽I0控制),主要用于控制微程序的循环次数,若装入的初值为N,则可执行N+1次。
微堆栈由寄存器堆和微堆栈指示器组成,其中寄存器堆可保存5个字(12位/字),主要用于保存微子程序调用的返回地址和微程序循环的首地址。微堆栈指示器uSP总是指向最后一次压入的数据,因此,执行微程序循环时,允许不执行弹出操作而直接访问微堆栈的栈顶。当堆栈中的数据达到五个时,就发出堆栈已满信号(FULL=0),这时,任何压入操作都将覆盖掉栈顶的数据。
命令译码器接收从微指令有关控制字段送来的命令码(I3∽I0)及硬件状态CC,用来执行AM2910的内部操作及选择下址输出。
P189微程序控制器AM2910AM2910引出线定义(1)输入线
D11~D0:外部输入的数据,既可作为寄存器/计数器的初值,也可直接经地址多路选择器从Y输出,作为下一条微指令的地址。
13~I0:AM2910的命令码,来自微指令字的有关字段,与CC一起用以控制AM2910的内部操作及选择下址。
CC:条件输入。
RLD:寄存器/计数器装入信号,当为低电平时,把输入D11~D0装入寄存器/计数器。
CI:增量器进位输入,当为高电平时,Y+1→uPC;当为低电平时,
Y→
uPC
。
OE:Y输出允许信号,低电平有效,当为高电平时,y输出为高阻态。
CP:时钟脉冲信号,由低变高的上升边沿触发所有内部状态的变化。
(2)输出线Y11~Y0:下一条微指令的地址,它直接作为控制存储器的地址。FULI:微堆栈满信号,低电平有效。PL,MAP,VECT:三个使能信号,用于决定输入D的来源。当PL有效时(即PL=0),D来源于微指令的下地址字段,用于实现微程序转移;当MAP=0,D来源于MAPROM,给出相应指令的第一条微指令地址。当VECT=0,D来源于中断逻辑,给出中断处理微程序的入口地址。
AM2910的命令码I3∽I0说明4位命令码可提供十六条命令,用来选择下一条将要执行的微指令地址。其中有4条命令(I3∽I0为0、2、12或14)是无条件转移命令;3条命令(8,9或、15)受内部计数器当前值的控制;10条命令(1,3,4,5,6,7,10,11,13,15)受到条件输入(CC和CCEN)的控制;命令15同时受到条件输入和计数器当前值的控制,可以实现三路(F,D,PPC)转移。
6.4.3微指令格式及执行方式(1)微指令格式①水平型微指令一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。水平型微指令的一般格式如下:控制字段判别测试字段下地址字段6.4.3微指令格式及执行方式按照控制字段的编码方法不同,水平型微指令又分为三种:第一种是全水平型(不译法)微指令;第二种是字段译码法水平型微指令;第三种是直接和译码相混合的水平型微指令。6.5.5微指令格式及执行方式②
垂直型微指令垂直型微指令中设置微操作码字段,由微操作码规定微指令的功能。垂直型微指令的结构类似于机器指令的结构。它有操作码,在一条微指令中只有1~2个微操作命令,每条微指令的功能简单,因此,实现一条机器指令的微程序要比水平型微指令编写的微程序长得多,它是采用较长的微程序结构去换取较短的微指令结构。6.4.3微指令格式及执行方式③
水平型微指令与垂直型微指令的比较
A.水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则较差。
B.水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。
C.由水平型微指令解释指令的微程序,具有微指令字比较长,但微程序短的特点;垂直型微指令则相反,微指令字比较短而微程序长。
D.水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。6.4.3微指令格式及执行方式(2)微指令的执行方式
①
串行执行方式
串行执行方式,又称顺序执行方式。它是指取微指令、执行微指令完全按顺序进行,即只有在上一条微指令执行完后,才能取下一条微指令。
串行执行方式微指令执行速度慢,但微程序控制器结构简单。6.4.3微指令格式及执行方式②
并行执行方式
并行执行方式,又称重叠执行方式,在这种方式中,取微指令与执行微指令是重叠进行的。在一条微指令取出并开始执行时,同时去取下一条微指令。
由于一个微周期内执行微操作的时间与取下一条微指令的时间是重叠的,因此,大大缩短了微指令的执行周期,加快了微指令序列的执行速度。值得指出,这些优点是用控制的复杂性换来的,即为了解决由重叠引起的各种问题,使微程序控制器的结构复杂化。6.4.3微指令格式及执行方式6.动态微程序设计和毫微程序设计(1)动态微程序设计
在一台微程序控制的计算机中,假如能根据用户的要求改变微程序,那么这台机器就具有动态微程序设计功能。动态微程序设计需要可写控制存储器的支持,否则难以改变微程序的内容。用于动态微程序设计的控存称为可写控制存储器(WCS)或用户控制存储器(UCS)。6.4.3微指令格式及执行方式(2)毫微程序设计在普通的微程序计算机中,从主存取出的每条指令是由放在控制存储器中的微程序来解释执行,通过控制线对硬件进行直接控制。如果微程序并不直接控制硬件,而是通过存放在第二级控制存储器中的毫微程序来解释的,这个第二级控制存储器称为毫微存储器,直接控制硬件的是毫微指令。6.4.3微指令格式及执行方式5.微程序控制器的设计①根据CPU的结构图写出每条指令的操作流程图并分解成微操作序列;②用混合控制法对微命令进行编码;③
选择合适的控制和时序;④
选用微程序的顺序控制方法为微指令安排微地址;⑤
画出微程序控制器组成框图。6.5组合逻辑控制器组合逻辑控制器的核心部分比较繁琐、零乱,设计效率较低,设计过程十分麻烦,其结构也十分复杂,特别是当指令系统比较庞大,操作码多,寻址方式多时,其复杂程度会成倍增加。另外检查调试也比较困难。而且设计结果用印制电路板(硬连逻辑)固定下来以后,就很难再修改与扩展。但组合逻辑控制器的最大优点是微操作控制信号产生的速度很快,只需两级门(一级与、一级或)的延时就可产生。对于指令系统比较简单的精简指令系统计算机RISC,采用组合逻辑控制器,是比较合适的,可以提高指令执行的速度,由于指令系统简单,逻辑组成也不至于太复杂。6.5组合逻辑控制器组合逻辑控制器的核心部件就是微操作产生部件。微操作产生部件,是采用组合逻辑设计思想,以布尔代数为主要工具设计而成。它的输入信号来自指令译码器的输出、时序发生器的时序信号及程序运行的结果特征及状态。它的输出是一组带有时间标志的微操作控制信号。每个微操作控制信号是指令、时序、结果特征及状态等的逻辑函数,可表示为:
微操作=周期·节拍·脉冲·指令码·其它条件组合逻辑控制器的设计步骤:6.5组合逻辑控制器①根据CPU的结构图写出每条指令的操作流程图并分解成微操作序列②选择合适的控制方式和控制时序③对微操作流程图安排时序,排出微操作时间表④根据操作时间表写出微操作的表达式⑤根据微操作的表达式画出组合逻辑电路。例子设计ADD、SUB、JC指令的硬布线控制器(组合逻辑控制器)【例题解答】①根据CPU的结构图写出每条指令的操作流程图并分解成微操作序列。②选同步控制方式和三级时序:安排四个机器周期:取指周期cy1、计算地址周期cy2、取数周期cy3、执行周期cy4;每个机器周期安排二个节拍T1和T2,每个节拍中有一个节拍脉冲,时序如图所示:③为微操作序列安排时序如图所示(将打入寄存器的控制信号安排在T2节拍的下降沿,其它控制信号在T1、T2中一直有效)。④列出操作时间表根据操作流程安排的时间表如表6.2所示。表6.2ADD、SUB、JC指令的操作时间表ADD、SUB、JC指令的组合逻辑控制器逻辑电路框图如图6.13所示。小结组合逻辑控制器的缺点是:综合操作时间表复杂;写微操作表达式复杂;实现困难;检查调试困难扩展困难;组合逻辑控制器的最大优点是微操作控制信号产生的速度很快,适合指令系统比较简单的精简指令系统计算机RISC。6.6时序与控制1.控制器基本控制方式(1)同步控制方式所谓同步控制方式,就是系统有一个统一的时钟,所有的控制信号均来自这个统一的时钟信号。根据指令周期、CPU周期和节拍周期的长度固定与否,同步控制方式又可分为以下几种。①
定长指令周期
即所有的指令执行时间都相等。若指令的繁简差异很大,规定统一的指令周期,无疑会造成太多的时间浪费,因此,定长指令周期的方式很少被采用。6.6时序与控制②
定长CPU周期
这种方式中各CPU周期都相等,一般都等于内存的存取周期。而指令周期不固定,等于整数个CPU周期。③变长指令周期、变长CPU周期
这种方式的指令周期长度不固定,而且CPU周期也不固定,不会造成时间浪费,但时序系统的控制比较复杂,要根据不同情况确定每个CPU周期的节拍数。6.6时序与控制(2)异步控制方式异步控制方式中没有统一的时钟信号,各部件按自身固有的速度工作,通过应答方式进行联络,常见的应答信号有准备好Ready或等待WAIT等,异步控制相对于同步要复杂。CPU内部的操作采用同步方式,CPU与内存和I/O设备的操作采用异
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年个体土地承包合同书
- 2025园林绿化采购合同模板
- 2025年山西省大同市灵丘县部分学校中考第二次模拟生物试卷(含解析)
- 大学生创新创业教育任务创业融资课件
- 生产代加工原料合同协议
- 牵制货品供应合同协议
- 用铁皮修缮房屋合同协议
- 电厂种植树木合同协议
- 电缆敷设合同协议书范本
- 甲乙丙合资买房合同协议
- 《职业病防治法》宣传周职业健康防护知识培训
- 二次消防改造工程合同协议书范本
- 某智慧城市政务云平台项目建设方案
- 德勤业务管理流程优化咨询报告课件
- 深静脉导管维护流程
- 班级管理(第3版)教学课件汇总全套电子教案(完整版)
- TCVN-2622-越南建筑防火规范(中文版)
- 不负韶华只争朝夕-一模考试反思 课件-2021-2022学年高中主题班会(共17张PPT)
- DB13(J)∕T 256-2018 农村气代煤工程技术规程
- 金属非金属矿山从业人员安全生产培训教材课件(PPT 75页)
- 《航空专业英语》课件维修专业基础英语R1
评论
0/150
提交评论