1、 第第2章章 计算机的基本结构与工作过程本章主要内容本章主要内容(1)计算机及微型计算机的组成计算机及微型计算机的组成(2)计算机的工作过程)计算机的工作过程(3)控制器基本原理)控制器基本原理硬布线控制器原理硬布线控制器原理微程序控制原理微程序控制原理2.1 计算机的基本结构计算机的基本结构2.1.1 冯冯诺伊曼计算机基本结构诺伊曼计算机基本结构n 世界上第一台电子计算机世界上第一台电子计算机ENIAC采用电子管作主要构采用电子管作主要构成元件,大大提高了运算速度,达到每秒钟完成加法运成元件,大大提高了运算速度,达到每秒钟完成加法运算算5000次,但它存在一个主要缺陷是次,但它存在一个主要缺
2、陷是不能存储程序不能存储程序。n 它是由人工设置开关并以插入和拔出导线插头的方式来它是由人工设置开关并以插入和拔出导线插头的方式来编制程序的。编程时需要对大约编制程序的。编程时需要对大约6000多位开关进行仔细多位开关进行仔细的机械定位,并用转插线把选定的各个控制部分互连起的机械定位,并用转插线把选定的各个控制部分互连起来以构成程序序列。这种原始的机械式编程方法显然效来以构成程序序列。这种原始的机械式编程方法显然效率很低。率很低。n图图2.1展示了展示了ENIAC的组成及工作情形概貌。的组成及工作情形概貌。图图2.1 世界上第一台电子计算机世界上第一台电子计算机ENIACn19441945年间
3、,冯年间,冯诺伊曼应邀参加诺伊曼应邀参加ENIAC计算机研计算机研制任务。在研制过程中,他深深地感到制任务。在研制过程中,他深深地感到ENIAC不能存不能存储程序这一缺陷,并在储程序这一缺陷,并在1945年由他领导的年由他领导的EDVAC试制试制方案中,他作为一位主要倡导者指出:方案中,他作为一位主要倡导者指出:ENIAC的开关的开关定位和转插线连接只不过代表着一些数字信息,它们定位和转插线连接只不过代表着一些数字信息,它们完全可以像受程序管理的数据一样,存放于主存储器完全可以像受程序管理的数据一样,存放于主存储器中。中。n这就是最早的这就是最早的“存储程序概念存储程序概念”(Stored P
4、rogram Concept)的产生。的产生。n EDVAC计算机由运算器、逻辑控制装置、存储器、输计算机由运算器、逻辑控制装置、存储器、输入设备和输出设备五个部分组成。它采用了入设备和输出设备五个部分组成。它采用了“存储程存储程序序”的思想,把数据和程序指令均用二进制代码的形的思想,把数据和程序指令均用二进制代码的形式存放在存储器中,保证了计算机能按事先存入的程式存放在存储器中,保证了计算机能按事先存入的程序自动地进行运算。序自动地进行运算。n冯冯诺伊曼首先提出的诺伊曼首先提出的“存储程序存储程序”的思想,以及由他的思想,以及由他首先规定的计算机的基本结构,人们称之为首先规定的计算机的基本结
5、构,人们称之为“冯冯诺伊诺伊曼计算机结构曼计算机结构”。n归纳其基本内容,主要包括以下几点:归纳其基本内容,主要包括以下几点:(1)计算机应由运算器、控制器、存储器、输入设备和输计算机应由运算器、控制器、存储器、输入设备和输出设备五个部分组成。出设备五个部分组成。(2)数据和程序均以二进制代码形式不加区别地存放在存数据和程序均以二进制代码形式不加区别地存放在存储器中,存放的位置由存储器的地址指定。储器中,存放的位置由存储器的地址指定。(3)计算机在工作时能够自动地从存储器中取出指令加以计算机在工作时能够自动地从存储器中取出指令加以执行。执行。2.1.2 计算机的基本组成框图及功能部件简介计算机
6、的基本组成框图及功能部件简介计算机的基本组成框图如图计算机的基本组成框图如图2.2所示。所示。图图2.2 计算机基本组成框图计算机基本组成框图n图图2.2表明,程序和数据通过输入设备送入到存储器中;表明,程序和数据通过输入设备送入到存储器中;程序被启动执行时,控制器输出地址及控制信号,并程序被启动执行时,控制器输出地址及控制信号,并从相应的存储单元中取出指令送到控制器中进行识别,从相应的存储单元中取出指令送到控制器中进行识别,分析该指令执行什么运算或操作,然后控制器根据指分析该指令执行什么运算或操作,然后控制器根据指令含义发出操作命令。令含义发出操作命令。n例如将某存储单元中存放的数据取出并送
7、往运算器进例如将某存储单元中存放的数据取出并送往运算器进行运算,再把运算结果送回存储器的指定单元中;当行运算,再把运算结果送回存储器的指定单元中;当指定的运算或操作完成后,将结果通过输出设备送出。指定的运算或操作完成后,将结果通过输出设备送出。n通常将运算器和控制器合称中央处理器通常将运算器和控制器合称中央处理器CPU(Central Processing Unit)。CPU和存储器一起构成计算机的主和存储器一起构成计算机的主机部分,而将输入设备和输出设备称为外围设备。机部分,而将输入设备和输出设备称为外围设备。n 在微型计算机中,往往把在微型计算机中,往往把CPU制作在一块大规模集成制作在一
8、块大规模集成电路芯片上,称之为电路芯片上,称之为微处理器微处理器(Microprocessor)。1.存储器存储器n存储器是用来存放程序和数据的记忆装置。它是组成存储器是用来存放程序和数据的记忆装置。它是组成计算机的重要部件,也是使计算机能够实现计算机的重要部件,也是使计算机能够实现“存储程存储程序序”功能的基础。功能的基础。n根据存储器和中央处理器的关系,存储器可分为内存根据存储器和中央处理器的关系,存储器可分为内存和外存。和外存。n内存储器是内存储器是CPU可以直接对它进行读出或写入可以直接对它进行读出或写入(也称访也称访问问)的存储器,用来存放当前正在使用或经常要使用的的存储器,用来存放
9、当前正在使用或经常要使用的程序和数据。它的容量较小,速度较快,但价格较高。程序和数据。它的容量较小,速度较快,但价格较高。n 外存用来存放相对来说不经常使用的程序和数据,在外存用来存放相对来说不经常使用的程序和数据,在需要时与内存进行成批交换,需要时与内存进行成批交换,CPU CPU 不能直接对外存进不能直接对外存进行访问。外存的特点是存储容量大,价格较低,但存行访问。外存的特点是存储容量大,价格较低,但存取速度较慢。外存通常由磁表面记录介质构成,如磁取速度较慢。外存通常由磁表面记录介质构成,如磁盘、磁带等;现在已经出现采用激光技术的光盘作大盘、磁带等;现在已经出现采用激光技术的光盘作大容量外
10、存储器。容量外存储器。n内存通常由存储体和有关的控制逻辑电路组成。存储内存通常由存储体和有关的控制逻辑电路组成。存储体是由存储元件组成的一个信息存储阵列。存储体中体是由存储元件组成的一个信息存储阵列。存储体中存放着程序和数据信息,而要对这些信息进行存取,存放着程序和数据信息,而要对这些信息进行存取,必须通过有关的控制逻辑电路才能实现。存储体被划必须通过有关的控制逻辑电路才能实现。存储体被划分为若干个分为若干个存储单元存储单元,每个单元存放一串二进制信息,每个单元存放一串二进制信息,也称也称存储单元的内容存储单元的内容。n每个存储单元有一个对应的编号,称为存储单元的地址。每个存储单元有一个对应的
11、编号,称为存储单元的地址。当当CPU要访问某个存储单元时,必须首先给出地址,送要访问某个存储单元时,必须首先给出地址,送入存储器的入存储器的地址寄存器地址寄存器(MAR),然后经译码电路选取相,然后经译码电路选取相应的存储单元。应的存储单元。n从存储单元读出的信息先送入存储器的从存储单元读出的信息先送入存储器的数据寄存器数据寄存器(MDR),再传送给目的部件;写入存储器的信息也要先,再传送给目的部件;写入存储器的信息也要先送至存储器的数据寄存器中,再依据给定的地址把数据送至存储器的数据寄存器中,再依据给定的地址把数据写入到相应存储器单元中。写入到相应存储器单元中。n 为了对存储器进行读、写操作
12、,控制器除了要给出地址为了对存储器进行读、写操作,控制器除了要给出地址外,还要给出启动读、写操作的控制信号。这些控制信外,还要给出启动读、写操作的控制信号。这些控制信号到底何时发出,要由机器的号到底何时发出,要由机器的操作时序操作时序决定。决定。图图2.3 计算机存储器的基本结构计算机存储器的基本结构2.运算器运算器n运算器是进行运算器是进行算术运算算术运算(如加、减、乘、除等如加、减、乘、除等)和和逻辑运逻辑运算算(如非、与、或等如非、与、或等)的装置。的装置。n通常由算术逻辑部件通常由算术逻辑部件ALU,专用寄存器,专用寄存器X、Y和和Z,累,累加器,通用寄存器加器,通用寄存器R0、R1、
13、Rn-1以及标志寄存器以及标志寄存器F组成,如图组成,如图2.4所示。所示。Rn-1YZALUABFR0X内内部部总总线线图图 2.4运算器的基本组成运算器的基本组成n核心部件核心部件ALU用于完成算术运算和逻辑运算。用于完成算术运算和逻辑运算。nX、Y是是ALU的输入寄存器,的输入寄存器,Z是是ALU的输出寄存器。的输出寄存器。nF用于存放运算结果的状态,例如,结果是否为零,是正用于存放运算结果的状态,例如,结果是否为零,是正还是负,有无进位,是否溢出等。还是负,有无进位,是否溢出等。nALU的功能是对的功能是对X、Y中的数据进行运算,并将结果送中的数据进行运算,并将结果送到到Z。nX、Y、
14、Z是与是与ALU不可分的一部分,通常称为不可分的一部分,通常称为ALU的的数据暂存器。数据暂存器。nX、Y中的数据可来自通用寄存器,也可来自存储器。中的数据可来自通用寄存器,也可来自存储器。Z中的数据可送往通用寄存器,也可送往存储器。中的数据可送往通用寄存器,也可送往存储器。3.控制器控制器n为了实现对计算机各部件的有效控制,快速准确地取为了实现对计算机各部件的有效控制,快速准确地取指令、分析指令和执行指令,控制器通常由指令、分析指令和执行指令,控制器通常由 下面几部下面几部分组成:分组成:指令寄存器指令寄存器IR 程序计数器程序计数器PC 存储器地址寄存器存储器地址寄存器MAR 存储器数据寄
15、存器存储器数据寄存器MDR 指令译码器指令译码器ID 控制电路控制电路 IRPCMARMDR控制电路控制电路指令译码指令译码控制控制信号信号内内部部总总线线存存储储器器图图 2.5 控制器的基本组成控制器的基本组成nIR用于存放正在执行或即将执行的指令;用于存放正在执行或即将执行的指令;nPC用于存放下一条指令的存储单元地址,它具有自动用于存放下一条指令的存储单元地址,它具有自动增量计数的功能;增量计数的功能;nMAR用于在访存时缓存存储单元的地址;用于在访存时缓存存储单元的地址;nMDR用于在访存时缓存对存储单元读用于在访存时缓存对存储单元读/写的数据。写的数据。nID用于对用于对IR中的指
16、令进行译码,以确定中的指令进行译码,以确定IR中存放的是哪中存放的是哪一条指令;一条指令;n控制电路负责产生时序脉冲信号,并在时序脉冲的同步控制电路负责产生时序脉冲信号,并在时序脉冲的同步下对有关的部件发出微操作控制命令下对有关的部件发出微操作控制命令(微命令)微命令),以控制,以控制各个部件的动作。各个部件的动作。4.输入设备和输出设备输入设备和输出设备n输入设备输入设备是用来输入数据和程序的装置,其功能是将是用来输入数据和程序的装置,其功能是将外界的信息转换成机内的表示形式并传送到计算机内外界的信息转换成机内的表示形式并传送到计算机内部。常见的输入设备有键盘、鼠标、图形数字化仪、部。常见的
17、输入设备有键盘、鼠标、图形数字化仪、图像扫描仪等等图像扫描仪等等。n输出设备输出设备是用来输出数据和程序的装置,其功能是将是用来输出数据和程序的装置,其功能是将计算机内的数据和程序转换成人们所需要的形式并传计算机内的数据和程序转换成人们所需要的形式并传送到计算机外部。常见的输出设备有显示器、打印机、送到计算机外部。常见的输出设备有显示器、打印机、绘图机等。绘图机等。2.2 计算机的工作过程计算机的工作过程 假设在某计算机的指令系统中设计有如下的几条指令:假设在某计算机的指令系统中设计有如下的几条指令:(1)LOAD R1,M1 (2)STORE M3,R1 (3)ADD R1,M2 (4)JM
18、P L (1)是传送类指令,其含义是将是传送类指令,其含义是将M1中的内容装入中的内容装入R1。(2)也是传送类指令,其含义是将也是传送类指令,其含义是将R1的内容存入的内容存入M3中。中。(3)是运算类指令,其含义是将是运算类指令,其含义是将R1的内容与的内容与M2中的内容相加后中的内容相加后存入存入R1。(4)是转移类指令,其含义是无条件转向是转移类指令,其含义是无条件转向L处。处。如果要求将如果要求将M1的内容与的内容与M2的内容相加后存入的内容相加后存入M3,可表可表示为示为:(M1)+(M2)(M3)再将程序转向再将程序转向L处的指令继续执行,则可用上面给出的处的指令继续执行,则可用
19、上面给出的各指令编写出如下的程序来实现各指令编写出如下的程序来实现:汇编语言程序汇编语言程序 机器语言程序机器语言程序 程序的功能程序的功能 LOAD R1,M1 00001011 00000101 将将M1的内容送入的内容送入R1 ADD R1,M2 00011011 00000110 将将R1的内容加上的内容加上M2的内容再送回的内容再送回R1 STORE M3,R1 00101011 00000111 将将R1的内容送入的内容送入M3中中 JMP L 00110000 00010001 转向转向L处继续执行那里的指令处继续执行那里的指令 q汇编时,假设存储单元的地址汇编时,假设存储单元的
20、地址M1、M2、M3分别为分别为5、6、7,其内容分别为,其内容分别为12、34、0;地址;地址L为为17;R1寄存器的编寄存器的编号为号为1011。q四条指令四条指令LOAD、ADD、STORE、JMP的操作码分别为的操作码分别为0000、0001、0010、0011。q每条机器指令的第每条机器指令的第2个字节都是存储单元地址,第一个字个字节都是存储单元地址,第一个字节左边节左边4位是操作码,右边位是操作码,右边4位是寄存器号或位是寄存器号或0000。n上述机器语言程序可被计算机识别,但不能被执行,上述机器语言程序可被计算机识别,但不能被执行,还需要为其分配存储器地址。还需要为其分配存储器地
21、址。n例如,上述机器语言程序可能按如下方式分配存储器例如,上述机器语言程序可能按如下方式分配存储器地址:地址:0000010100001100M1000001100010001000000111000000000000100000001011000010010000010100001010000110110000101100000110000011000010101100001101000001110000111000110000000011110001000100010000.00010001.M2M3“LOAD R1,M1”的第一个字节的第一个字节“LOAD R1,M1”的第二个字节的第二
22、个字节“ADD R1,M2”的第一个字节的第一个字节“ADD R1,M2”的第二个字节的第二个字节“STORE M3,R1”的第一个字节的第一个字节“STORE M3,R1”的第二个字节的第二个字节“JMP L”的第一个字节的第一个字节“JMP L”的第二个字节的第二个字节第五条指令(只有一个字节)第五条指令(只有一个字节)第六条指令第六条指令1.计算机的内部结构计算机的内部结构(模型机模型机)LOAD R1,M1ADD R1,M2STORE M3,R1JMPLLM1M2M3abcIRPCMARMDRR0Rn-1YZABUSDBUS控制电路控制电路指令译码指令译码控制控制信号信号ALUABF内
23、内部部总总线线存储器存储器图图 2.6 单总线单总线CPU的计算机的基本结构的计算机的基本结构2.指令及程序的执行过程指令及程序的执行过程n计算机执行指令的过程可概括如下计算机执行指令的过程可概括如下:(1)控制器把控制器把PC中的指令地址送往存储器地址寄存器中的指令地址送往存储器地址寄存器MAR,并发出读命令并发出读命令“M读读”。存储器按给定的地址读出指令,。存储器按给定的地址读出指令,经由存储器数据寄存器经由存储器数据寄存器MDR送往控制器,保存在指令寄送往控制器,保存在指令寄存器存器IR中。中。(2)指令译码器指令译码器ID对指令寄存器对指令寄存器IR中的指令进行中的指令进行译码译码,
24、分析,分析指令的操作性质,并由控制电路向存储器、运算器等有关指令的操作性质,并由控制电路向存储器、运算器等有关部件发出指令所需要的微命令。部件发出指令所需要的微命令。(3)当需要由存储器向运算器提供数据时,控制器根据指当需要由存储器向运算器提供数据时,控制器根据指令的地址部分,形成数据所在的存储单元地址,并送往令的地址部分,形成数据所在的存储单元地址,并送往存储器地址寄存器存储器地址寄存器MAR,然后向存储器发出读命令,然后向存储器发出读命令“M读读”,从存储器中读出的,从存储器中读出的数据数据经由存储器数据寄存经由存储器数据寄存器器MDR送往运算器。送往运算器。(4)当需要由运算器向存储器写
25、入数据时,控制器根据指令当需要由运算器向存储器写入数据时,控制器根据指令的地址部分,形成数据所在的存储单元地址,并送往存的地址部分,形成数据所在的存储单元地址,并送往存储器地址寄存器储器地址寄存器MAR,再将欲写的数据存入存储器数据,再将欲写的数据存入存储器数据寄存器寄存器MDR,最后向存储器发出写命令,最后向存储器发出写命令“M写写”,MDR中的数据即被写入由中的数据即被写入由MAR指示地址的存储单元中。指示地址的存储单元中。(5)一条指令执行完毕后,控制器就要接着执行下一条指令。一条指令执行完毕后,控制器就要接着执行下一条指令。q为了把下一条指令从存储器中取出,通常控制器把为了把下一条指令
26、从存储器中取出,通常控制器把PC的的内容加上一个数值,形成下一条指令的地址。内容加上一个数值,形成下一条指令的地址。q在遇到在遇到“转移转移”指令时,控制器则把指令时,控制器则把“转移地址转移地址”送入送入PC。n 控制器不断重复上述过程的控制器不断重复上述过程的(1)到到(5),每重复一次,就,每重复一次,就执行了一条指令,直到整个程序执行完毕。执行了一条指令,直到整个程序执行完毕。n下面,以前面给出的、由下面,以前面给出的、由4条指令组成的程序段为例,条指令组成的程序段为例,结合图结合图2.6中所示的计算机结构,简述指令及程序的执行中所示的计算机结构,简述指令及程序的执行过程。过程。LOA
27、D R1,M1 ADD R1,M2 STORE M3,R1 JMP Ln假设程序及数据已经装入了存储器,第一条指令的地址假设程序及数据已经装入了存储器,第一条指令的地址已经装入了已经装入了PC寄存器。寄存器。(1)(1)取指令取指令“LOAD R1,M1”并执行并执行 取指令取指令“LOAD R1,M1”并形成下一条指令的并形成下一条指令的地址:地址:(i)控制器发控制器发“PCOUT”和和“MARIN”信号,使信号,使PCMAR;(ii)控制器发控制器发“M读读”信号,使存储器的内容(指信号,使存储器的内容(指令令)MDR,通过,通过DBUS;(iii)控制器发控制器发“PC加加”信号,使信
28、号,使PC+nPC,其中,其中n为该指为该指令占用的地址数;令占用的地址数;(iv)控制器发控制器发“MDROUT”和和“IRIN”信号,使信号,使MDRIR。执行指令执行指令“LOAD R1,M1”:(i)控制器发控制器发“IROUT”和和“MARIN”信号,使信号,使IR中指令的中指令的地址段地址段(即即M1)MAR;(ii)控制器发控制器发“M读读”信号,使存储器信号,使存储器M1的内容的内容(数数据据)MDR,通过,通过DBUS;(iii)控制器发控制器发“MDROUT”和和“R1IN”信号,使信号,使MDRR1。(2)取指令取指令“ADD R1,M2”并执行并执行 取指令取指令“AD
29、D R1,M2”并形成下一条指令的并形成下一条指令的地址:地址:操作过程同操作过程同(1)中的。中的。执行指令执行指令“ADD R1,M2”:n(i)控制器发控制器发“IROUT”和和“MARIN”信号,使信号,使IR中指令中指令的地址段的地址段(即即M2)MAR;n(ii)控制器发控制器发“M读读”信号,使存储器信号,使存储器M2的内容的内容(数数据据)MDR,通过,通过DBUS;n(iii)控制器发控制器发“MDROUT”和和“YIN”信号,使信号,使MDRY(即即ALU的的A端端);n(iv)控制器发控制器发“R1OUT”,使,使R1内部总线内部总线(即即ALU的的B端端);n(v)控制
30、器发控制器发“add”信号,使信号,使A+BZ;n(vi)控制器发控制器发“ZOUT”和和“R1IN”信号,使信号,使ZR1。(3)取指令取指令“STORE M3,R1”并执行并执行 取指令取指令“STORE M3,R1”并形成下一条指令并形成下一条指令的地址:的地址:操作过程同操作过程同(1)中的。中的。执行指令执行指令“STORE M3,R1”:n(i)控制器发控制器发“IROUT”和和“MARIN”信号,使信号,使IR中指令中指令的地址段的地址段(即即M3)MAR;n(ii)控制器发控制器发“R1OUT”和和“MDRIN”信号,使信号,使R1MDR;n(iii)控制器发控制器发“M写写”
31、信号,使信号,使MDR存储器存储器M3中,中,通过通过DBUS。(4)取指令取指令JMP L并执行并执行 取指令取指令JMP L并形成下一条指令的地址:并形成下一条指令的地址:操作过程同操作过程同(1)中的。中的。执行指令执行指令JMP L:控制器发控制器发“IROUT”和和“PCIN”信号,使信号,使IR中指令中指令的地址的地址(即即L)PC。2.3 控制器的基本原理控制器的基本原理控制器的基本任务是根据机器指令操作的需要,实时地发控制器的基本任务是根据机器指令操作的需要,实时地发出各种微命令信号。出各种微命令信号。也可以说,控制器就是也可以说,控制器就是“根据特定的机器指令,在特定的根据特
32、定的机器指令,在特定的时刻(节拍),发出特定的微命令信号时刻(节拍),发出特定的微命令信号”。2.3.1 硬布线控制器原理硬布线控制器原理q硬布线控制器也称硬布线控制器也称硬连线控制器硬连线控制器或或组合逻辑控制器。组合逻辑控制器。q硬布线控制器主要由环形脉冲发生器、指令译码器和微硬布线控制器主要由环形脉冲发生器、指令译码器和微命令编码器组成。命令编码器组成。q环形脉冲发生器环形脉冲发生器用于循环地产生节拍脉冲信号用于循环地产生节拍脉冲信号;q指令译码器指令译码器用于确定用于确定IR中存放的是哪一条指令中存放的是哪一条指令;q微命令编码器微命令编码器用于在不同节拍脉冲信号的同步下产生相用于在不
33、同节拍脉冲信号的同步下产生相应的微命令信号应的微命令信号。q如果用如果用T1、T2、依次表示对应机器周期的节拍脉依次表示对应机器周期的节拍脉冲信号,用冲信号,用00、01、10、11依次表示指令依次表示指令LOAD、ADD、STORE和和JMP的操作码,则硬布线控制器的原的操作码,则硬布线控制器的原理如图理如图2.7所示。所示。IR指令指令译码译码微命令编码器微命令编码器环形脉冲环形脉冲 发生器发生器LOADADDSTOREJMPT1T2Tn微命令信号微命令信号图图 2.7 硬布线控制器基本结构硬布线控制器基本结构Endq在取指令和执行指令时,都需要控制器能针对不同的指在取指令和执行指令时,都
34、需要控制器能针对不同的指令在不同的机器周期内发出所需要的各种微命令。例如,令在不同的机器周期内发出所需要的各种微命令。例如,在取指令时,就需要控制器在第一个周期内发出在取指令时,就需要控制器在第一个周期内发出PCOUT、MARIN、M读读、PC加加共共4个微命令,在第二个周期内发出个微命令,在第二个周期内发出MDROUT和和IRIN两个微命令。两个微命令。q针对前面给出的针对前面给出的4条指令及对指令执行过程的讨论,可归条指令及对指令执行过程的讨论,可归纳出对不同指令在不同机器周期内应发出的微命令如表纳出对不同指令在不同机器周期内应发出的微命令如表2-2所示。表中的所示。表中的End代表指令执
35、行结束的微命令。代表指令执行结束的微命令。指令名指令名T1T2T3T4 T5 T6T7LOAD(00)PCoutMARinM读PC加MDRoutIRinIRoutMARinM读MDRoutR1in EndADD(01)同上同上IRoutMARinM读MDRoutYin R1out add Zout R1inEndSTORE(10)同上同上IRoutMARinR1outMDRinM写 EndJMP(11)同上同上IRoutPCinEnd表表 2-2 对不同指令发出的微命令对不同指令发出的微命令n如果用如果用“”表示表示“与与”,用,用“+”表示表示“或或”,用,用Ti表示第表示第i个机器周期的节
36、拍脉冲信号,并设所有的信号都是高电平个机器周期的节拍脉冲信号,并设所有的信号都是高电平有效,则可用一个逻辑表达式来表示有效,则可用一个逻辑表达式来表示某个微命令应在什么某个微命令应在什么时间发出、对哪些指令发出。时间发出、对哪些指令发出。例如,对于微命令例如,对于微命令MARIN,所有的四条指令在,所有的四条指令在T1周期内都周期内都需要,需要,LOAD、ADD、STORE三条指令在三条指令在T3周期内也需周期内也需要,而其他指令则不需要。要,而其他指令则不需要。q描述上述关系的逻辑表达式就是:描述上述关系的逻辑表达式就是:MARIN=T1(LOAD+ADD+STORE+JMP)+T3(LOA
37、D+ADD+STORE)=T1+T3(LOAD+ADD+STORE)q这里,用到了如下的逻辑关系式这里,用到了如下的逻辑关系式 Ti(LOAD+ADD+STORE+JMP)=Tin按照上述方法,根据表按照上述方法,根据表2-2,可写出各个微命令的逻辑表达,可写出各个微命令的逻辑表达式如下:式如下:nPCOUT=T1 MARIN=T1+T3(LOAD+ADD+STORE)nPC加加=T1 M读读=T1+T3(LOAD+ADD)nIRIN=T2 MDROUT=T2+T4(LOAD+ADD)nIROUT=T3 PCIN=T3JMP nYIN=T4ADD R1IN=T4LOAD+T6ADDnMDRIN
38、=T4STORE R1OUT=T4STORE+T5ADDnadd=T5ADD M写写=T4STORE nZOUT=T6ADD End=T5(LOAD+STORE)+T7ADD+T4JMPn上述逻辑表达式的上述逻辑表达式的右端就是图右端就是图2.7中微命令编码器的内部中微命令编码器的内部电路电路,左端是编码器输出的微命令左端是编码器输出的微命令。n只要编码器按照上述电路工作,就能使控制器对指令译只要编码器按照上述电路工作,就能使控制器对指令译码器选中的某条指令依次发出各种微命令,完成指令规码器选中的某条指令依次发出各种微命令,完成指令规定的操作。定的操作。硬布线控制器的优缺点硬布线控制器的优缺点
39、(小结小结)n硬布线控制器硬布线控制器直接由组合逻辑电路产生微操作控制信号,直接由组合逻辑电路产生微操作控制信号,因而其操作速度较快,但相应的因而其操作速度较快,但相应的控制逻辑电路十分庞杂控制逻辑电路十分庞杂,给设计、调试和检测都带来不便。给设计、调试和检测都带来不便。n这种形式的控制器设计完毕后若想扩充和修改,则更为这种形式的控制器设计完毕后若想扩充和修改,则更为困难。困难。n其突出的优点是指令执行其突出的优点是指令执行速度很快速度很快,常用于,常用于RISC结构的结构的机器中。机器中。2.3.2 微程序控制器原理微程序控制器原理1.1.微程序控制器的基本思想微程序控制器的基本思想q微程序
40、控制的概念,最早由英国剑桥大学的威尔克斯微程序控制的概念,最早由英国剑桥大学的威尔克斯(MVWilkes)于)于1951年提出来的,并在年提出来的,并在1953年的一篇年的一篇文章中发表了一个微程序控制的实例。之后由于缺少简文章中发表了一个微程序控制的实例。之后由于缺少简单快速的微程序存储手段,这一项发明并未得到广泛采单快速的微程序存储手段,这一项发明并未得到广泛采用。用。q对于微程序的高度重视和充分发展始于对于微程序的高度重视和充分发展始于1964年,它首次年,它首次在当时最有影响的在当时最有影响的IBM360系列计算机中得到了实际应用,系列计算机中得到了实际应用,成功地解决了不同的计算机之
41、间指令系统兼容性问题。成功地解决了不同的计算机之间指令系统兼容性问题。概括微程序控制器的基本思想,有如下三点:概括微程序控制器的基本思想,有如下三点:(1 1)计算机的每一条机器指令所代表的操作可以被分解为一)计算机的每一条机器指令所代表的操作可以被分解为一系列更基本的系列更基本的“微操作微操作”,计算机中控制实现这些微操作的,计算机中控制实现这些微操作的命令信号,称为命令信号,称为“微命令微命令”。(2 2)将计算机控制器所要产生的微命令,以代码(微码)形)将计算机控制器所要产生的微命令,以代码(微码)形式编成式编成“微指令微指令”,事先存储在一个用只读存储器(,事先存储在一个用只读存储器(
42、ROM)构成的控制存储器中。构成的控制存储器中。在在CPU执行程序时,从控制存储器中取出微指令,由它执行程序时,从控制存储器中取出微指令,由它所包含的微命令控制相关部件的操作。所包含的微命令控制相关部件的操作。(3)若干条微指令组成一小段若干条微指令组成一小段“微程序微程序”,解释执行一条机解释执行一条机器指令,针对整个指令系统的需要,编制出一套完整的器指令,针对整个指令系统的需要,编制出一套完整的微程序。微程序。2.2.微程序控制器的基本组成结构微程序控制器的基本组成结构q微程序控制器主要由控制存储器(微程序控制器主要由控制存储器(CM)、微指令寄存)、微指令寄存器(器(IR)、微地址寄存器
43、(、微地址寄存器(AR)和微地址形成电路)和微地址形成电路等部件组成,如图等部件组成,如图2.2.8 所示:所示:图图2.8 微程序控制器组成框图微程序控制器组成框图 微微地地址址给给定定部部分分顺顺序序控控制制方方式式微命令序列(至处理微命令序列(至处理部分)部分)运行运行状态状态指令指令代码代码控制存储器控制存储器CM微指令寄存器微指令寄存器IR IRPSWPC微地址形成微地址形成电路电路微地址寄存微地址寄存器器AR微操作控制字段微操作控制字段顺序控制字段顺序控制字段1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 ROM1 0 0 0 1 1 0 1 0 1
44、 译码译码译码译码(1)控制存储器)控制存储器CMn控制存储器控制存储器CM用来存放微程序,它的每个存储单元存放用来存放微程序,它的每个存储单元存放一个微指令代码。控制存储器通常采用只读存储器一个微指令代码。控制存储器通常采用只读存储器(ROM)构成,在制造)构成,在制造CPU时写入微程序代码。时写入微程序代码。(2)微指令寄存器)微指令寄存器IRn微指令寄存器微指令寄存器IR用来存放从控制存储器中读出的微指令。用来存放从控制存储器中读出的微指令。它由两部分组成:一部分为微指令的它由两部分组成:一部分为微指令的“微操作控制字段微操作控制字段”;另一部分为另一部分为“顺序控制字段顺序控制字段”,
45、它指明后继微指令地址的,它指明后继微指令地址的形成方式。形成方式。(3)微地址形成电路)微地址形成电路n通常情况下,可依据下述几种信息或其中的一部分去形通常情况下,可依据下述几种信息或其中的一部分去形成后继微地址:微地址给定部分、现行微指令中的顺序成后继微地址:微地址给定部分、现行微指令中的顺序控制方式(如是否发生转移)、机器指令的有关代码控制方式(如是否发生转移)、机器指令的有关代码(如操作码)、机器运行状态等。(如操作码)、机器运行状态等。(4)微地址寄存器)微地址寄存器ARn在从控制存储器中读取微指令时,微地址寄存器中保存在从控制存储器中读取微指令时,微地址寄存器中保存着对应的微地址,指
46、向相应的控制存储器单元。当读出着对应的微地址,指向相应的控制存储器单元。当读出一条微指令后,微地址形成电路将后继微地址打入一条微指令后,微地址形成电路将后继微地址打入AR中,从而指向下一个中,从而指向下一个CM单元。单元。3.机器指令的读取与执行机器指令的读取与执行(1)在微程序中有一条或几条微指令,其微命令是实现)在微程序中有一条或几条微指令,其微命令是实现“取指取指”的操作,称为的操作,称为“取机器指令用的微指令取机器指令用的微指令”,属于,属于微程序的公用部分。微程序的公用部分。n在开始执行机器指令时,先从控制存储器中读取在开始执行机器指令时,先从控制存储器中读取“取机器取机器指令用的微
47、指令指令用的微指令”,它所包含的微命令使,它所包含的微命令使CPU访问主存储访问主存储器,读取机器指令,送入指令寄存器器,读取机器指令,送入指令寄存器IR,然后修改程序计,然后修改程序计数器数器PC的内容。的内容。(2)根据)根据机器指令中的操作码机器指令中的操作码,通过微地址形成电路,找,通过微地址形成电路,找到与该机器指令所对应的微程序入口地址。到与该机器指令所对应的微程序入口地址。(3)逐条取出对应的微指令,每一条微指令提供一个微命)逐条取出对应的微指令,每一条微指令提供一个微命令序列,控制相关部件的操作。执行完一条微指令后,令序列,控制相关部件的操作。执行完一条微指令后,根据微地址形成
48、方法产生后继微地址,读取下一条微指根据微地址形成方法产生后继微地址,读取下一条微指令。令。(4)执行完对应于一条机器指令的一段微程序后,返回到)执行完对应于一条机器指令的一段微程序后,返回到“取机器指令用的微指令取机器指令用的微指令”,开始读取与执行又一条机,开始读取与执行又一条机器指令。器指令。4.4.微指令的编码方式微指令的编码方式(1)直接表示法)直接表示法将每个控制信号都作为微指令中的一位来编码的方法称将每个控制信号都作为微指令中的一位来编码的方法称为微指令的直接表示法,也称直接控制法,如图为微指令的直接表示法,也称直接控制法,如图2.9(a)所所示。示。这种编码方法的优点是简单直观,
49、其输出直接用于控制;这种编码方法的优点是简单直观,其输出直接用于控制;其缺点是编码效率低,因为设置的多个控制位中,对于其缺点是编码效率低,因为设置的多个控制位中,对于某一条微指令而言,只有少数几位是有效(为某一条微指令而言,只有少数几位是有效(为1)的)的。图图2.9(a)直接表示法直接表示法微操作控制字段微操作控制字段顺序控制字段顺序控制字段IR(2)编码表示法)编码表示法将微指令代码进行分组编码,将不能同时出现的相斥信号分在将微指令代码进行分组编码,将不能同时出现的相斥信号分在一组中,然后将其编码成较短的代码,一组中,然后将其编码成较短的代码,如图如图2.9(b)所示。所示。优点:优点:减
50、少了控制存储器所需存储的代码数量。减少了控制存储器所需存储的代码数量。缺点:缺点:编码的微指令代码需经译码后才能成为控制信号,这一编码的微指令代码需经译码后才能成为控制信号,这一方面增加了译码器的硬件开销,同时也增加了控制信号的延迟,方面增加了译码器的硬件开销,同时也增加了控制信号的延迟,从而影响微程序的执行速度。从而影响微程序的执行速度。图图2.9(b)编码表示法编码表示法(3)混合表示法)混合表示法它是将直接表示法与字段编码表示法相结合的一种编它是将直接表示法与字段编码表示法相结合的一种编码方法。码方法。它综合考虑微指令的字长、灵活性和执行速度方面的它综合考虑微指令的字长、灵活性和执行速度