1、第第7 7章章 中央处理器中央处理器第第7 7章章 中央处理器中央处理器7.1 CPU的基本组成的基本组成 7.2 时序系统和控制方式时序系统和控制方式 7.3 指令的执行过程指令的执行过程 7.4 组合逻辑控制器组合逻辑控制器 7.5 微程序控制器微程序控制器 7.6 流水流水CPU 习题习题 第第7 7章章 中央处理器中央处理器中央处理器(Central Processing Unit,CPU)是计算机的核心部件,由运算器和控制器组成。CPU完成数据处理、协调和指挥整个计算机系统的操作,它是使整台计算机能够运转的最核心、最重要的部件。根据“存储程序”的原理,当我们使用计算机解决问题时,要编
2、写程序,以二进制指令序列的形式存放在存储器中。这个序列明确告诉计算机要执行的操作和要使用的数据。一旦把程序装入内存储器,就可以由计算机自动取出指令和执行指令。CPU的作用就是当计算机系统开始工作时,从内存中读取指令与数据,通过ALU运算出结果后存回内存,再由I/O接口将数据送给外围设备,以达到数据处理的目的。CPU对整个计算机系统的运行是极其重要的,它具有以下五方面的基本功能。第第7 7章章 中央处理器中央处理器(1)指令控制:对程序运行的控制。程序是指令的有序集合,指令执行的次序不能随意改变,必须保证机器按规定的顺序执行程序。(2)操作控制:对指令内操作步骤的控制。一条机器指令是由若干个微操
3、作组成的,控制器要管理并产生由内存取出的每条指令的控制信号,再把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。(3)数据运算:对数据进行算术运算和逻辑运算。(4)时间控制:对各种操作实施时间上的控制。指令的微操作信号是有严格时间要求的,而一条指令的执行时间也是有限制的。每个微操作、每条指令都必须在规定的时间内完成,这是保证计算机有条不紊地自动工作的前提。(5)异常处理和中断处理:对运算中产生的错误(如溢出)以及外部设备的服务请求等进行处理。第第7 7章章 中央处理器中央处理器7.1 CPU的基本组成的基本组成早期的CPU主要由运算器和控制器两大部分组成,随着集成电路的发展,
4、目前CPU芯片集成了一些其他逻辑功能部件来扩充CPU的功能,如浮点运算器和Cache等。下面主要介绍运算器和控制器。7.1.1 运算器运算器运算器已在第2章详细介绍过,这里作简单回顾。运算器由算术逻辑单元(ALU)、寄存器、数据缓冲寄存器和状态寄存器组成,它是数据加工处理部件。运算器完成计算机的各种算术和逻辑运算。相对控制器而言,运算器是接受控制器的命令而进行动作,即运算器所进行的全部操作第第7 7章章 中央处理器中央处理器都是由控制器发出的控制信号来指挥的,是在控制器的控制下进行工作,它属于执行部件。运算器的主要功能是:(1)执行所有的算术运算,如加、减、乘、除等基本运算及附加运算。(2)执
5、行所有的逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。7.1.2 控制器控制器1控制器的功能控制器的功能尽管不同计算机的控制器在结构上会有区别,但一般都具有以下几个方面的基本功能。(1)取指令:从内存中取出当前指令,并生成下一条指令在内存中的地址。第第7 7章章 中央处理器中央处理器(2)分析指令:也叫解释指令、指令译码等,是对当前取得的指令进行译码,分析要求的操作,产生相应的操作控制命令,如果参与操作的数据在存储器中,还需要形成操作数地址。(3)执行指令:控制器必须具备执行指令的功能。控制器按照操作性质要求,发出各种相应的微操作命令,指挥并控制CPU、内存和输入/输出设备之间数据流动的
6、方向,使相应的部件完成指令要求的各种功能。(4)控制程序和数据的输入与结果的输出:根据程序的安排或人的干预,在适当的时候向输入/输出设备发出一些相应的命令来完成I/O功能,控制程序和原始数据的输入,在必要的时候输出程序的结果。第第7 7章章 中央处理器中央处理器(5)对异常情况和特殊请求的处理:能够处理计算机执行程序过程中发生的一些异常情况,还能够接受外设的中断请求,例如除法出错、溢出中断、键盘中断等。2.控制器的结构控制器的结构控制器完成自动取指令和执行指令的任务,它负责协调并控制计算机各部件完成一系列由指令序列规定的动作。控制器由指令部件、时序部件、微操作命令形成部件和中断控制逻辑组成,其
7、基本结构如图7-1所示。1)指令部件指令部件的主要任务是完成取指令并分析指令。指令部件包括程序计数器、指令寄存器、指令译码器和地址形成部件。第第7 7章章 中央处理器中央处理器图7-1 控制器的基本结构 第第7 7章章 中央处理器中央处理器(1)程序计数器PC。程序计数器又称指令指针,用来存放指令的地址。在程序开始运行时,PC保存的是程序第一条指令的地址(程序的起始地址),一旦现行指令执行完毕,程序计数器就提供后继指令的地址。当程序顺序执行时,每读取一条指令,PC就自动加1,指向下一条指令地址;当程序出现转移时,则将转移地址送PC。因此程序计数器应具有计数和寄存信息两种功能。(2)指令寄存器I
8、R。指令寄存器用来存放现行指令。当指令从主存中取出就暂存在IR中,直到该指令执行完毕。(3)指令译码器ID。指令译码器的功能是分析指令,由译码器输出的信号,提供给微操作信号形成部件,是产生与指令对应微操作信号的依据。暂存在指令寄存器中的指令只有在其操作码部分经过译码之后才能识别出这是一条什么样的指令,并产生相应的控制信号提供给微操作信号发生器。第第7 7章章 中央处理器中央处理器(4)程序状态寄存器PSW。程序状态寄存器用来保存算术或逻辑运算的结果,使CPU和系统能及时了解机器运行状态和程序运行状态。PSW常用的状态有进位标志(C)、溢出标志(V)、全零标志(Z)、负标志(N)等。此外,状态条
9、件寄存器还保存中断和系统工作状态等信息标志。(5)地址形成部件。地址形成部件是根据不同的寻址方式来形成操作数的有效地址的。有些微型机是通过运算器来计数有效地址的,这类机器就没有地址形成部件。2)时序部件时序部件是用来产生计算机各部件工作时所需的各种定时信号,以保证计算机有条不紊地进行工作。时序部件由脉冲源、启停控制逻辑和节拍信号发生器等部件组成。第第7 7章章 中央处理器中央处理器3)微操作命令形成部件一条指令的取出和执行可以分解成很多最基本的操作,这种最基本的不可再分割的操作称为微操作。微操作信号发生器也称为控制单元(CU),不同的机器指令具有不同的微操作序列。微操作命令形成部件用来产生指令
10、的微操作命令,是控制器的核心部件。计算机的工作是执行程序,程序是指令的序列,而指令的执行是分步实现的,指令是微操作命令的序列。微操作命令是计算机最基本的控制命令,每一条机器指令都可以分解成一组微操作。微操作命令形成部件就是在时序信号的控制下,根据不同的指令和不同的运行状态,产生对应的微操作命令。第第7 7章章 中央处理器中央处理器按照微操作命令形成的方法不同,控制器可分为组合逻辑控制器和微程序控制器两种基本类型。4)中断控制逻辑中断控制逻辑是用来控制中断处理的硬件逻辑。7.1.3 CPU中的寄存器中的寄存器为了减少访问内存储器的次数,提高计算机的工作速度,在CPU的内部设置了大量的寄存器。这些
11、寄存器有些是用来暂存数据和地址的,有些是用来存放各类信息的。1.通用寄存器通用寄存器 通用寄存器具有多种功能,可用于存放操作数,也可用于存放地址。基址寻址所需的基址寄存器、变址寻址所需的变址寄存器和堆栈寻址所需的堆栈指针,也都是通用寄存器。第第7 7章章 中央处理器中央处理器CPU中的通用寄存器少的几个、几十个,多则上百个,通用寄存器越多,CPU的暂存信息的能力就越强,计算机处理数据的速度也越快。2.专用寄存器专用寄存器专用寄存器用来存放具有特殊作用的信息。前面提到的程序计数器(PC)、指令寄存器(IR)和程序状态寄存器(PSW)都是专用寄存器。除此之外,还有存储器地址寄存器(MAR)和存储器
12、数据寄存器(MDR),这是CPU与主存接口的寄存器。其中,MAR是用来保存当前CPU所访问的内存单元的地址,包括来自程序计算器PC的指令地址和来自地址形成部件的操作数地址;MDR是用于存放待写入存储器的数据或指令及从存储器中读出的数据或指令。第第7 7章章 中央处理器中央处理器7.1.4 数据通路数据通路数据通路是指数据在功能部件之间传送的路径。运算器与各寄存器之间的传送路径就是中央处理器内部的数据通路。数据通路描述了信息从什么地方开始,经过哪个寄存器或多路开关,最后传送到哪个寄存器。数据通路实现CPU内部的运算器和寄存器以及寄存器之间的数据交换。数据通路的设计直接影响到控制器的设计,同时也影
13、响到数字系统的速度指标和成本。一般来说,处理速度快的数字系统,它的独立传送信息的通路较多。但是独立数据传送通路一旦增加,控制器的设计也就复杂了。因此,在满足速度指标的前提下,为使数字系统结构尽量简单,一般小型系统中多采用单总线结构。在较大系统中可采用双总线或三总线结构。图7-2就是一个单总线结构的CPU。第第7 7章章 中央处理器中央处理器图7-2 CPU数据通路 第第7 7章章 中央处理器中央处理器信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器,都要加以控制。在各寄存器之间建立数据通路的任务,是由称为操作控制器的部件来完成的。操作控制器的功能,就是根据指令操作码和时序
14、信号,产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制。第第7 7章章 中央处理器中央处理器7.2 时序系统和控制方式时序系统和控制方式7.2.1 指令周期和机器周期指令周期和机器周期指令周期是指计算机从取指令、分析指令到执行指令所需要的全部时间。由于各种指令的功能不同,因此不同指令的指令周期也不相同。可以将指令周期划分为若干个相对独立的操作阶段,比如取指令、取操作数、执行指令和保存结果等。可以把完成一个基本操作所花费的时间称为机器周期,那么一个指令周期就由若干个机器周期组成。因为每个基本操作的难易程度不同,所以完成每个基本操作所需的时间也不相同。如果要定一个基准的
15、机器周期时间,为了保证所有基本操作能在这段时间内完成,就只能取最长的机器周期作为基准。第第7 7章章 中央处理器中央处理器计算机内的操作大致可分为CPU内部的操作和访问主存的操作。CPU内部的操作速度一般比较快,而CPU访问一次内存所花的时间较长,因此通常选访问内存的最短时间来作为机器周期的时间,所以机器周期又称为CPU周期。任何一条指令,它的指令周期至少需要两个CPU周期(取指和执行指令),而复杂一些的指令周期则需要更多的CPU周期。在每个机器周期要完成若干个微操作,每个微操作都需要一定的时间,可以把一个机器周期再分成几个相等的时间段,每个时间段可用时钟信号来控制,在一个时钟周期内完成一个或
16、几个需同时执行的操作。这样,一个机器周期就包含有若干个时钟周期,也称节拍或T状态。第第7 7章章 中央处理器中央处理器一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期(节拍),每个指令周期中的机器周期数可以相等也可以不等,而每个机器周期内的节拍数同样可以相等也可以不等。如果计算机中每条指令的机器周期数相同,每个机器周期中的节拍电位也相同,这就是定长指令周期;如果不同的指令机器周期数不同,或不同的机器周期中节拍电位不同,则称为不定长的指令周期。在每个节拍中还设置有一个或几个宽度不等的工作脉冲,与节拍电位相配合完成数据加工与传送。机器周期、节拍电位、工作脉冲构成了三级时序系统。图7
17、-3是某机器的三级时序。从图中可以看到,每个机器周期有两个节拍(T0、T1),每个节拍有三个脉冲(P0、P1、P2)。第第7 7章章 中央处理器中央处理器图7-3 三级时序 第第7 7章章 中央处理器中央处理器7.2.2 时序发生器时序发生器时序信号的作用是为计算机各部分的协调工作提供时序标志。计算机工作时,每条指令、每个机器周期、每个微操作都有严格的时间要求,CPU执行指令的过程实际也是时序控制的过程,所以要在CPU中设置一个能够提供时序信号的部件,将时序信号作为微操作信号发生器的输入,给每个微操作带上时间标志,使微操作能在约定的时段产生并在规定的时间间隔内完成。产生周期节拍、脉冲等时序信号
18、的部件称为时序发生器。一个典型的时序发生电路如图7-4所示。第第7 7章章 中央处理器中央处理器图7-4 时序系统组成框图第第7 7章章 中央处理器中央处理器1.脉冲源脉冲源脉冲源产生具有一定频率和宽度的时钟脉冲信号,为整个机器提供基准信号,它由石英晶体振荡器和与非门等组成。2.启停控制逻辑启停控制逻辑启停控制逻辑根据计算机的需要,可靠地送出时钟脉冲,控制时序信号的发生或停止,实现对整个机器的正确启动或停止。3.节拍信号发生器节拍信号发生器脉冲源产生的脉冲信号,经过节拍信号发生器后产生各个机器周期中的节拍信号,用以控制计算机完成每一步微操作。第第7 7章章 中央处理器中央处理器7.2.3 控制
19、方式控制方式控制器执行一条机器指令的过程,实质上是完成一个微操作序列的过程。由于不同指令的复杂程度不同,所需要的微操作序列的长短和繁简不同,因此执行每条指令和每个微操作所需的时间不可能都相等。用什么样的时序方式来形成微操作序列的问题就称为控制方式。常见的控制方式有同步控制、异步控制和联合控制三种。1.同步控制方式同步控制方式同步控制方式是指计算机中所有的指令都采用统一的机器周期和节拍。这种方式的特点是:不考虑指令的复杂程度,也不考虑微操作的繁简,都以最长的微操作序列和最繁的微操作为标准,所有的机器周期都采用相同的节拍数。图7-5就是一种典型的同步控制方式,每个机器周期包含4个节拍。这种控制方式
20、对于简单的指令在时间上造成很大的浪费,会降低计算机的工作速度。但该方式控制方便,设计比较简单。第第7 7章章 中央处理器中央处理器图7-5 同步控制时序第第7 7章章 中央处理器中央处理器2.异步控制方式异步控制方式异步控制方式没有固定的CPU周期数和节拍数,按实际需要分配给每条指令、每个操作的时间,每条指令、每个控制信号需要多少时间就占用多少时间。异步控制没有基准的同步信号,微操作时序由专门的应答线路控制,由前一个微操作完成的“结束”信号作为下一个微操作的“启动”信号,见图7-6。这种控制方式是按照不同的需要来安排时序,CPU没有空闲状态,时间利用率高。但因需要采用各种应答电路,其结构比同步
21、控制方式复杂。图7-7是异步控制方式的时序,从图中可以看到取指周期有4个节拍,而执行周期只有3个节拍。第第7 7章章 中央处理器中央处理器图7-6 应答通信 第第7 7章章 中央处理器中央处理器图7-7 异步控制时序 第第7 7章章 中央处理器中央处理器3.联合控制方式联合控制方式将同步控制和异步控制相结合就是联合控制方式。这种方式对不同的指令、不同的微操作实行大部分同步、小部分异步的办法,也可以采用在CPU内部采用同步方式,在CPU与其他部件之间采用异步方式。第第7 7章章 中央处理器中央处理器7.3 指令的执行过程指令的执行过程7.3.1 基本功能的微操作基本功能的微操作计算机执行指令的过
22、程为:取指令、分析指令、执行指令。下面用图7-2所示的计算机结构,采用同步控制方式来分析执行指令各阶段的微操作。1.取指令取指令在取指令阶段,CPU将存放在内存中的指令取出至指令寄存器IR中。具体的工作过程如下:(1)将程序计数器PC的内容送存储器地址寄存器MAR,通过MAR送入地址总线,即PCMARBUS第第7 7章章 中央处理器中央处理器(2)向内存发出读命令,即READ(3)PC内容递增,指向下一条指令地址,即PC+1PC(4)将从内存中读出的指令通过数据总线送到存储器数据寄存器MDR,再送入指令寄存器IR,即BUSMDRIR2.分析指令分析指令取出指令后,计算机进入分析指令阶段,指令译
23、码器通过分析指令的操作码,完成两件工作:(1)分析指令要完成什么操作,即控制器需发出什么操作命令。第第7 7章章 中央处理器中央处理器(2)分析参与这次操作的操作数地址,即操作数的有效地址。由于各条指令的功能不同,涉及的寻址方式不一样,所以在分析指令阶段完成的操作也不同,有的不访问内存,有的要访问内存,有的甚至要访问多次。对于无操作数的简单指令,没有计算有效地址的环节。3.执行指令执行指令执行指令就是根据分析指令产生的操作命令和对操作数地址的要求,形成操作控制信号序列,通过对运算器、内存以及I/O设备等设备的操作,最终完成每条指令的功能。通过分析可以发现,虽然不同的指令完成不同的任务,但指令中
24、涉及到的基本功能一般只有以下几种:第第7 7章章 中央处理器中央处理器(1)CPU中一个寄存器内容送至另一寄存器。(2)CPU寄存器的内容传送至内存指定单元。(3)从内存指定单元中取出数据送入CPU寄存器中。(4)执行算术逻辑运算,将运算结果存入CPU寄存器中。除了一些特殊的指令,计算机中大部分的指令都是由这几个基本功能组合而成的,所以要了解指令的工作过程,应先了解这几个基本功能的实现。下面用微操作来描述这些基本功能。1)寄存器间数据传送命令为 RiRj第第7 7章章 中央处理器中央处理器2)写一数据到存储器假设待写入的数据在Ri中,存储单元的地址在Rj中,则过程如下:(1)将待写入的数据装入
25、MDR,即RiMDR(2)存储单元的地址送入MAR,即RjMAR(3)发出写命令,即WRITE3)从存储器中取一数据假设取出的数据要放在Ri中,要访问的单元地址在Rj中,则过程如下:(1)将存储单元的地址送入MAR,即RjMAR第第7 7章章 中央处理器中央处理器(2)发出读命令,即READ(3)将数据传至MDR后送寄存器,即MDRRi4)算述逻辑运算假设要将寄存器R1和R2的内容相“与”,结果存入寄存器R3中。如图7-2所示,由于CPU采用单总线结构,所以两个操作数无法同时加载在ALU的两个输入端,于是将一个操作数先保存在寄存器Y中,当第二个操作数送到ALU时,启动“与”操作,结果暂存在寄存
26、器Z中。用微操作描述如下:R1YR2YZZR3第第7 7章章 中央处理器中央处理器7.3.2 指令的微操作指令的微操作下面用指令ADD R1,R2作为例子来说明指令的执行过程。这条指令的功能是:将以R2的内容为地址的存储器操作数与存放在寄存器R1的操作数相加,结果存放在R1中。(1)取指令:PCMARPC+1PCREAD MDRIR第第7 7章章 中央处理器中央处理器(2)取操作数:R2MARREADMDRY(3)加运算:R1+YZ(4)结果送R1:ZR1第第7 7章章 中央处理器中央处理器7.4 组合逻辑控制器组合逻辑控制器7.4.1 基本原理基本原理组合逻辑控制器是采用组合逻辑技术来实现控
27、制操作,把控制部件看成是产生专门固定时序控制信号的逻辑电路,这种逻辑电路是由门电路和触发器构成的复杂逻辑网络,也称为硬布线控制器。图7-8是组合逻辑控制器的原理图。组合逻辑控制器的输入信号来自三方面,即指令译码器的输出、时序发生器的时序信号、程序运行的结果特征及状态;其输出是一组带有时间标志的微操作控制信号,即微操作=节拍指令码条件。第第7 7章章 中央处理器中央处理器图7-8 组合逻辑控制器原理图 第第7 7章章 中央处理器中央处理器7.4.2 组合逻辑控制器的设计步骤组合逻辑控制器的设计步骤组合逻辑控制器的设计步骤如下:(1)列出每条机器指令的微操作序列,结合机器采用的时序信号排出操作时间
28、表。即把指令中的微操作落实到不同的节拍中,根据CPU的结构,画出指令操作流程图。(2)进行微操作信号综合。将各条指令中出现相同微操作的地方和条件逐个列出,写出各微操作控制信号的逻辑表达式。(3)画出微操作命令的逻辑图。将所有同一微操作进行“或”合并、化简,求得每个微操作的优化逻辑函数式。根据逻辑表达式画出对应每一个微操作信号的逻辑电路图,用逻辑门电路实现。第第7 7章章 中央处理器中央处理器假设某计算机的内部数据通路结构如图7-2所示,指令格式如下:计算机采用同步控制,指令系统包含4条指令,分别是:ADD R1,R2STORE ADDR,R1LOAD R1,ADDRJMP ADDR指令编码如表
29、7-1所示。第第7 7章章 中央处理器中央处理器表表7-1 指指令令编编码码表表 第第7 7章章 中央处理器中央处理器那么,控制器的设计过程如下:(1)绘制指令执行流程。综合前面指令执行过程中各阶段的微操作,绘制出计算机指令执行的流程图,如图7-9所示。(2)微操作信号的产生。从图7-9可以很清楚地看出每个微操作发生的时间和条件。将所有指令的微操作信号产生条件列出,再把同一微操作信号各种产生条件综合。例如:READ=T0+LOADT3IR(D)MAR=(STORE+LOAD)T3(3)化简逻辑表达式,并用组合逻辑电路实现。第第7 7章章 中央处理器中央处理器图7-9 指令流程图 第第7 7章章
30、 中央处理器中央处理器采用组合逻辑设计方法设计控制单元,思路清晰,简单明了,但由于不同的指令对应不同的微操作序列,每一个微操作命令又有各自的逻辑电路,因而微操作控制部件的线路结构十分庞杂,不规整。而且指令系统功能越全,微操作命令就越多,线路也越复杂,导致控制器的调试十分麻烦,改动也相当不易。所以,控制部件一旦完成,除非重新设计和物理上对它重新布线,否则要想增加新的控制功能是不可能的。为了解决组合逻辑控制器的不足,随着大规模集成电路制造技术的发展,从20世纪70年代起相继推出了通用可编程逻辑器件可编程逻辑阵列(PLA)。PLA在功能上相当于很多“与”门的集合,并且它们可以在任何一个输出端上“或”
31、起来,PLA实际上是由一系列二极管构成的“与”门和三极管构成的“或”门组成的。第第7 7章章 中央处理器中央处理器组合逻辑控制器的优点是高速、电路结构化;缺点是使用器件数量多、功耗大、印制电路板布线复杂、体积大、可靠性差、成本高、电路不便修改和调试。采用微程序设计方案可以克服这些缺点,但是,随着RISC计算机的出现,组合逻辑仍然是设计控制器的一种重要方法。第第7 7章章 中央处理器中央处理器7.5 微程序控制器微程序控制器7.5.1 微程序控制器的基本原理微程序控制器的基本原理微程序设计思想最早是由英国剑桥大学M.V.Wilkes教授在1951年提出来的。为了克服组合逻辑控制器线路复杂、不易修
32、改的缺点,他提出用类似存储程序的办法,来解决微操作命令序列形成的问题。也就是将一条机器指令看成一段微程序,每一个微程序包含若干条微指令,每一条微指令对应一个或几个微操作。然后把这些微程序存到一个存储器中,像寻找机器程序指令一样的办法来寻找微程序中的微指令。这些微指令是以二进制代码形式表示的,每位代表一个控制信号(控制信号有效的位为1,控制信号无效的位为0),逐条执行微程序中的微指令,也就相应地完成了一条机器指令的全部操作。第第7 7章章 中央处理器中央处理器微程序控制单元的核心部件是控制存储器,简称控存。由于执行一条机器指令必须多次访问控制存储器,以取出多条微指令来控制完成各个微操作,因此对控
33、存的速度要求比较高。但是因为当时还不具备制造专门存放微程序的控制存储器的技术,所以微程序的设计思想在十几年时间内并未真正使用。直到1964年4月,世界上第一台微程序设计的机器IBM 360研制成功。微程序控制器同组合逻辑控制器相比较,具有规整、灵活、可维护等一系列优点,因而在计算机设计中逐渐取代了组合逻辑控制器,并被广泛地应用。微程序控制器具有设计规整,调试、维修以及更改、扩充指令方便的优点,易于实现自动化设计。但是,由于它增加了一级控制存储器,所以指令的执行速度比组合逻辑控制器慢。第第7 7章章 中央处理器中央处理器7.5.2 微程序控制器的基本概念微程序控制器的基本概念1.微命令和微操作微
34、命令和微操作一条机器指令可以分解成一个微操作序列。微操作是计算机中最基本的、不可再分解的操作。微命令是微操作的控制信号,是控制部件向执行部件发出的各种控制命令,它是构成控制序列的最小单位。例如,打开或关闭某个控制门的电位信号、某个寄存器的打入脉冲等。因此,微命令是控制计算机各部件完成某个基本微操作的命令,微操作是微命令的操作过程。微命令有兼容性和互斥性之分。兼容性微命令是指那些可以同时产生,共同完成某一些微操作的微命令;而互斥性微命令是指在机器中不允许同时出现的微命令。比如,ALU第第7 7章章 中央处理器中央处理器中的若干操作,在同一时间只能有一个操作有效;又比如,对于一个寄存器,在同一时间
35、只能读或写,不能读、写同时进行。兼容和互斥都是相对的,一个微命令可以和一些微命令兼容,和另一些微命令互斥。2.微指令和微程序微指令和微程序根据上一节的内容可以看到,一条指令的一个节拍中可以有多个微命令,执行相应的一组操作,这若干个微命令的集合就是微指令,也叫控制字。一条微指令通常包含操作控制字段和顺序控制字段两部分。微指令格式如下:第第7 7章章 中央处理器中央处理器1)操作控制字段操作控制字段用来指定微指令的微操作,又称微操作码字段。2)顺序控制字段顺序控制字段用来确定下一条要执行的微指令的地址,也称微地址码字段。一条机器指令的功能是由若干条微指令组成的序列来实现的,一系列微指令的有序集合就
36、是微程序。每一条机器指令都对应一个微程序。3.微周期和微地址微周期和微地址从控制存储器中读取一条微指令并执行相应的微命令所需的全部时间称为微周期。存放微指令的控存单元地址称为微地址。第第7 7章章 中央处理器中央处理器4.微程序和程序的区别微程序和程序的区别微程序和程序是两个不同的概念。微程序是一个微指令的有序集合,用于描述机器指令。微程序实际上是机器指令的实时解释,是由计算机的设计者事先编制好并存放在控制存储器中的,对程序员来说,它是“透明”的,一般也不提供给用户。程序是机器指令的有序集合。机器指令表明计算机能完成的一项基本功能,是提供给程序员使用的基本单位。程序是由机器指令组成,由软件人员
37、事先编好存放在主存或外存中的。微程序控制的计算机涉及两个层次:一个是机器语言或汇编语言程序员所看到的传统机器层,包括机器指令、工作程序和主存储器;另一个是机器设计者看到的微程序层,包括微指令、微程序和控制存储器。CPU运行的程序存放在主存储器中,而控制器运行的微程序则存放在控制存储器中。第第7 7章章 中央处理器中央处理器7.5.3 微程序控制器的基本结构微程序控制器的基本结构1.微程序控制器的结构微程序控制器的结构微程序控制器的结构如图7-10所示,它由控制存储器、微指令寄存器、微地址形成部件和微地址寄存器组成。1)控制存储器(CM)控制存储器简称控存,用于存放所有指令的微程序,是微程序控制
38、器的核心部件,由高速只读存储器构成。它的容量取决于计算机指令系统的规模。2)微指令寄存器(IR)微指令寄存器用来存放从控存中取出的微指令,并保存到它被执行结束为止。第第7 7章章 中央处理器中央处理器图7-10 微程序控制器原理图 第第7 7章章 中央处理器中央处理器3)微地址形成部件微地址形成部件用来产生初始微地址和后继微地址。4)微地址寄存器(MAR)微地址寄存器接受微地址形成部件送来的微地址,为在CM中读取微指令做准备。2.微程序控制器的工作过程微程序控制器的工作过程 一条机器指令是由微指令的序列来实现的,一条机器指令对应着一个微程序,全部的微程序就实现了整个指令系统。在微程序控制器中,
39、用控制存储器取代了组合逻辑控制器中的微操作产生部件,将计算机指令系统所对应的全部的微程序存放在控制存储器中,通过执行微程序完成指令要求的操作。第第7 7章章 中央处理器中央处理器微程序控制器的工作过程描述如下:(1)执行取指令公共操作。从控存中取出“取指令”的微程序,这是一段公用的微操作。取指微程序的入口地址一般为CM的0号单元,当取指微程序执行完后,从主存中取出的机器指令就已存入指令寄存器IR中了。(2)由机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址,并送入MAR。(3)从CM中逐条取出对应的微指令,执行完一条微指令后,根据微地址形成方法产生后继微地址,读取下
40、一条微指令。(4)执行完对应于一条机器指令的一个微程序后,返回取指微程序的入口地址,再执行取指微程序,完成取下一条机器指令的公共操作。如此周而复始,直到整个程序执行完毕。第第7 7章章 中央处理器中央处理器7.5.4 微指令编码微指令编码一条微指令包含操作控制字段和顺序控制字段两大部分。这里所说的微指令编码指的是操作控制字段的编码方法,即指微命令在操作控制字段中的表示方法。这种编码方法要包含全部指令所需要的所有微命令信息,也就是要将所有的微命令以编码形式组合到微指令的操作控制字段中。与指令的操作码字段一样,此部分编码要考虑的问题是,操作控制字段要尽可能短而机器又能高效地工作,译码电路还要简单。
41、常用的编码方法有以下几种。1.直接编码法直接编码法直接编码法也称不译法,其特点是操作控制字段中的每一位代表一个微命令。在这种形式的编码中,操作控制字段第第7 7章章 中央处理器中央处理器的每一个独立的二进制位代表一个微命令,某位为“1”表示这个微命令有效,为“0”则表示这个微命令无效。每个微命令对应并控制数据通路中的一个微操作,无须进行译码,各位可以分别直接控制计算机。假设一台计算机共有20条微命令(C0C19),用直接编码法,微指令操作控制字段的形式为:如果在这个系统中,某一条微指令只有C1、C4、C18三个微命令有效,则这条微指令的操作控制字段如下所示:第第7 7章章 中央处理器中央处理器
42、若微命令的总数为N个,则微指令字的控制字段就要有N位。如果计算机中微命令总数有几百个,微指令可能就无法表示了。另外,在N个微命令中,有许多是互斥的,不允许并行操作,将它们安排在一条微指令中没有意义,而且会使信息的利用率下降。这种方法虽然结构简单直观,并行性强,且由于输出可以直接用于控制,操作速度快,但是微指令字太长,利用率不高,要求控制存储器容量较大,所以一般适用于微命令少的场合,在复杂的系统中很少单独采用,往往与其他编码方法混合起来使用。第第7 7章章 中央处理器中央处理器2.最短编码法最短编码法最短编码法是把所有的微命令统一编码,每条微指令只定义一个微命令。若微命令的总数为N,操作控制字段
43、的长度为L,则最短编码法应满足下列关系:2LN最短编码法的微指令字长最短,但要通过一个微命令译码器译码以后才能得到需要的微命令。微命令数目越多,译码器就越复杂。这种方法在同一时刻只能产生一个微命令,不能充分利用机器硬件所具有的并行性,使得机器指令对应的微程序变得很长,而且对于某些要求在同一时刻同时动作的组合性微操作将无法实现。直接控制法使微指令字过长,而最短编码法则使得微指令字最短。这种方法也只能与其他方法混合使用。第第7 7章章 中央处理器中央处理器3.字段直接编码法字段直接编码法字段直接编码法是将操作控制字段分为若干个小段,每段内采用最短编码法,段与段之间采用直接控制法,如图7-11所示。
44、这是前述两种编码法的一个折中,既具有两者的优点,又克服了它们的缺点。与直接控制法相比,虽然由于增加译码电路,使微程序的执行速度稍稍减慢,但字段直接编码法可使微指令字大大缩短,目前在微程序控制器设计中,字段直接编码法使用较普遍。第第7 7章章 中央处理器中央处理器图7-11 字段直接编码法 第第7 7章章 中央处理器中央处理器字段直接编码法的关键是将所有的微命令分段,操作控制字段的分段原则是:(1)把互斥性的微命令分在同一段内,就是把不允许同时出现的微命令安排在同一个段中,而把兼容性的微命令分在不同段内。这样既有助于提高信息的利用率,缩短微指令字长,又有助于充分利用硬件的并行性,加快执行的速度。
45、(2)每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。(3)一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作。第第7 7章章 中央处理器中央处理器要严格区分出互斥性或兼容性微命令是不容易的,可以简单地以功能部件或公用通路来划分,因为一般同一功能部件和公用通路中的微操作只能分时进行。4.字段间接编码法字段间接编码法字段间接编码法是在字段直接编码法的基础上,用来进一步缩短微指令字长的方法。间接编码的含义是,一个字段的某些编码不能独立地定义某些微命令,而需要与其他字段的编码来联合定义。这种
46、编码法需要比直接编码法多一级译码电路,微程序的执行速度比较慢,所以不常用。第第7 7章章 中央处理器中央处理器7.5.5 微指令地址的确定方法微指令地址的确定方法微程序的执行过程与机器程序的执行过程一样,也存在程序执行方向的控制问题。微指令的顺序控制字段提供了产生下一条微指令地址的信息。一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址,这个微地址信息存放在微地址寄存器中。如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。当微程序出现分支时,通过判别测试字段和执行部件的“状态条件”反馈信息,去修改微地址寄存器的内容,按修改后的地址去读下一条微指令。第第7 7章章
47、 中央处理器中央处理器1.初始微地址的形成初始微地址的形成每一条机器指令对应一个微程序。由于所有机器指令的取指令操作都是相同的,因此将取指令操作的微命令编成一段公用的取指微程序。当取指微程序从主存中取出机器指令之后,由机器指令的操作码字段指出各个微程序的首地址(入口地址或初始微地址),这称为“功能转移”,主要有三种方式。1)一级功能转换如果机器指令操作码字段的位数和位置固定,可以直接将操作码与入口地址码的部分位相对应。假如某计算机有8条指令,操作码分别为000、001、111,可以在控存的前8个单元安排8条无条件转移微指令,分别转到对应的8个微程序的入口地址。第第7 7章章 中央处理器中央处理
48、器2)二级功能转换当各类机器指令的操作码的位数和位置不固定时,就要采用分级转移的方法。第一次先按指令类型转移,区分出指令属于哪一类,如是单操作数指令还是双操作数指令等。因为每一类机器指令中操作码字段的位数和位置是固定的,所以第二次再按操作码区分出具体是哪条指令,以找出相应微程序的入口微地址。3)通过PLA电路实现功能转移将指令的操作码和一些判别条件作为PLA电路的输入,PLA的输出就是相应的微程序入口地址。这种方法比较适合用在机器指令的操作码位数和位置都不固定的情况。第第7 7章章 中央处理器中央处理器2.后继地址的形成后继地址的形成当前正在执行的微指令,称为现行微指令。现行微指令所在的控制存
49、储器单元的地址称为现行微地址。现行微指令执行完毕之后,要执行下一条微指令,下一条微指令称为后继微指令。后继微指令所在的控制存储器的地址称为后继微地址。微指令执行的顺序控制问题,实际上是如何确定下一条微指令的地址问题,也就是控制产生后继微地址的过程。在微程序中,分支流程很多,不但转移类指令有分支,还有很多指令的微程序中也会有分支。因为大多数机器指令都会有几种寻址方式,如果每条机器指令不同的寻址方式都单独设置一段微程序,必将导致机器指令的微程序太长,全部微程序的量太大,所需要的控存容量太大,所以,可以把重复的部分第第7 7章章 中央处理器中央处理器作为共享的微子程序,由各微程序调用,这就产生了大量
50、的寻址分支流程,对寻址分支程序,测试条件是机器指令中的寻址方式字段的编码。按测试结果转到相应的寻址操作流程,这是多路分支流程。为了实现上述转移,微程序控制常用的方法是在微程序中引入条件转移的概念,对微指令系统进行扩充,把一些转移的微指令包括进去。转移指令中,除了给出转移地址以外,还要指出需要检查哪个状态标志,条件代码或指令寄存器哪些位作为产生转移的条件。这种微地址叫做增量型微地址。通常,产生后继微地址有两种方法:第第7 7章章 中央处理器中央处理器1)增量方式增量方式又称计数器方式,这种方式是模拟机器指令的做法。在很多情况下,后继微地址是连续的,因此对于顺序地址,微指令可采用增量计数方法,即在