1、2007.7.2计算机组成原理1第第9章章 微程序控制计算机的设计微程序控制计算机的设计2007.7.2计算机组成原理2第第9章章 微程序控制计算机的设计微程序控制计算机的设计本章主要是为配合前面各章节理论教学而设计本章主要是为配合前面各章节理论教学而设计的,是理论与应用相结合教学内容的一部分。通过的,是理论与应用相结合教学内容的一部分。通过讲述微程序控制计算机的设计方法和过程,加深读讲述微程序控制计算机的设计方法和过程,加深读者对计算机存储器、微程序控制器、指令系统等内者对计算机存储器、微程序控制器、指令系统等内容的理解容的理解 2007.7.2计算机组成原理3本章要点:本章要点:计算机整机
2、框图设计计算机整机框图设计指令系统设计指令系统设计微操作信号设计微操作信号设计指令微程序设计指令微程序设计编写应用程序编写应用程序2007.7.2计算机组成原理4第第9章章 微程序控制计算机的设计微程序控制计算机的设计 9.1 微程序控制计算机概述微程序控制计算机概述 9.2 指令系统设计指令系统设计 9.3 微程序设计微程序设计 9.4 编写源程序编写源程序2007.7.2计算机组成原理59.1 微程序控制计算机概述微程序控制计算机概述 控制计算机工作的微命令信号主要通过两种方控制计算机工作的微命令信号主要通过两种方法实现,一种是由设计的微程序产生,另外一种是法实现,一种是由设计的微程序产生
3、,另外一种是通过组合逻辑电路产生。计算机控制器构成电路主通过组合逻辑电路产生。计算机控制器构成电路主要是围绕这两种方法进行设计的,二者各有优缺点,要是围绕这两种方法进行设计的,二者各有优缺点,详细知识第详细知识第6章已经讲述,在此通过设计实例主要章已经讲述,在此通过设计实例主要介绍微程序控制计算机的应用情况介绍微程序控制计算机的应用情况。2007.7.2计算机组成原理69.1 微程序控制计算机概述微程序控制计算机概述9.1.1 设计要求与目标设计要求与目标 9.1.2 计算机硬件设计计算机硬件设计2007.7.2计算机组成原理7设计一个完整的计算机系统不仅要考虑计算机设计一个完整的计算机系统不
4、仅要考虑计算机硬件设计,还要考虑机器字长、指令系统规模、外硬件设计,还要考虑机器字长、指令系统规模、外部设备规模等。详细分析主要包括如下几个方面:部设备规模等。详细分析主要包括如下几个方面:(1)机器字长采用)机器字长采用8位还是位还是16位。即运算器、位。即运算器、数据总线是采用数据总线是采用8位还是位还是16位。位。(2)地址总线的位数。确定计算机寻址空间的)地址总线的位数。确定计算机寻址空间的大小。大小。(3)计算机运算器采用什么结构)计算机运算器采用什么结构(如多通用寄如多通用寄存器结构、多累加器结构等存器结构、多累加器结构等)。1.设计要求设计要求2007.7.2计算机组成原理8(4
5、)计算机指令系统规模)计算机指令系统规模(共有多少条指令,共有多少条指令,多少种寻址方式,指令功能等多少种寻址方式,指令功能等)。(5)计算机是否使用外设(键盘和打印机),)计算机是否使用外设(键盘和打印机),以什么方式使用外设(程序查询以什么方式使用外设(程序查询I/O方式还是中断方式还是中断I/O方式)。方式)。2007.7.2计算机组成原理9计算机系统采用计算机系统采用8位字长,计算机系统的硬件位字长,计算机系统的硬件组成应该完备,运算器、控制器、主存、组成应该完备,运算器、控制器、主存、I/O接口及接口及总线等应有一定的典型性,并能驱动简单的总线等应有一定的典型性,并能驱动简单的I/O
6、设备。设备。此外该计算机系统应具备一定规模的指令系统,能此外该计算机系统应具备一定规模的指令系统,能够完成基本的算术逻辑运算以及数据的输入输出控够完成基本的算术逻辑运算以及数据的输入输出控制。制。2.设计目标设计目标2007.7.2计算机组成原理10 计算机的工作过程,实质上是不同的数据计算机的工作过程,实质上是不同的数据流在控制信号作用下在限定的数据通路中进行传送。流在控制信号作用下在限定的数据通路中进行传送。数据通路不同,指令所经过的操作过程也不同,机数据通路不同,指令所经过的操作过程也不同,机器的结构也就不器的结构也就不样,因此数据通路的设计是至关样,因此数据通路的设计是至关重要的。所谓
7、数据通路的设计,也就是确定机器各重要的。所谓数据通路的设计,也就是确定机器各逻辑部件相对位置的总框图。逻辑部件相对位置的总框图。9.1.2 计算机硬件设计计算机硬件设计1设计整机逻辑框图设计整机逻辑框图2007.7.2计算机组成原理11数据通路的设计,目前还没有非常标准的方法。数据通路的设计,目前还没有非常标准的方法。主要是依据设计者的经验,并参考现有机器的几种主要是依据设计者的经验,并参考现有机器的几种典型形式(比如单总线、双总线或三总线结构),典型形式(比如单总线、双总线或三总线结构),根据指令系统的要求,可采用试探方法来完成。其根据指令系统的要求,可采用试探方法来完成。其主要步骤如下:主
8、要步骤如下:(1)对指令系统中的各条指令进行分析,得)对指令系统中的各条指令进行分析,得出所需要的指令周期与操作序列,以便决定各器件出所需要的指令周期与操作序列,以便决定各器件的类型和数量。的类型和数量。2007.7.2计算机组成原理12(2)构成一个总框图草图,进行各逻辑部件)构成一个总框图草图,进行各逻辑部件之间的互相连接,即初步确定数据通路,使得由指之间的互相连接,即初步确定数据通路,使得由指令系统所包涵的数据通路都能实现,并满足技术指令系统所包涵的数据通路都能实现,并满足技术指标的要求。标的要求。(3)检验全部指令周期的操作序列,确定所)检验全部指令周期的操作序列,确定所需要的控制点和
9、控制信号。需要的控制点和控制信号。(4)检查所设计的数据通路,尽可能降低成)检查所设计的数据通路,尽可能降低成本,简化线路。本,简化线路。注:注:以上过程可以反复进行,以便得到一个以上过程可以反复进行,以便得到一个较好的方案。较好的方案。2007.7.2计算机组成原理13根据设计要求,对计算机模块的硬件资源进行根据设计要求,对计算机模块的硬件资源进行逻辑剪辑组合,便可设计出该计算机的整机数据通逻辑剪辑组合,便可设计出该计算机的整机数据通路逻辑框图,如图路逻辑框图,如图9-1所示。为利于调试,在通路框所示。为利于调试,在通路框图上标明了各器件的控制信号及必要的输出信号。图上标明了各器件的控制信号
10、及必要的输出信号。图图9-1中设计了运算器中设计了运算器ALU、移位发生器、移位发生器(74299)、数据寄存器()、数据寄存器(DR1、DR2等)、寄存等)、寄存器组(器组(R0、R1、R2)、内存)、内存RAM、微程序控制器、微程序控制器单元单元CU、地址加法器、指令寄存器、地址加法器、指令寄存器IR、程序计数器、程序计数器PC以及输入以及输入/输出设备等单元模块。输出设备等单元模块。2007.7.2计算机组成原理14 图9-1 计算机整机逻辑框图2007.7.2计算机组成原理15(1)移位发生器单元)移位发生器单元如图如图9-2所示,该电路使用了一片所示,该电路使用了一片74LS299作
11、为作为移位发生器,其中移位发生器,其中8位输入输出和位输入输出和8位数据总线连位数据总线连接。接。299-B信号控制其使能端(信号控制其使能端(0有效),有效),T4为时序为时序节拍脉冲。由节拍脉冲。由S0、S1、M控制信号设置其运行状态,控制信号设置其运行状态,其控制特性见表其控制特性见表9-1所示。所示。2单元模块详细设计单元模块详细设计2007.7.2计算机组成原理16表表9-1 移位发生器控制状态表移位发生器控制状态表299-BUSS1S2M功能功能000任意任意保持保持0100循环右移循环右移0101带进位循环右移带进位循环右移0011带进位循环左移带进位循环左移任意任意11任意任意
12、装数装数2007.7.2计算机组成原理17 图9-2 移位发生器电路图2007.7.2计算机组成原理18受设计复杂度的限制,在计算机整机框图中时受设计复杂度的限制,在计算机整机框图中时序启停模块并没有画出,但对于计算机系统来说,序启停模块并没有画出,但对于计算机系统来说,控制计算机工作的时序信号是极为重要的。如图控制计算机工作的时序信号是极为重要的。如图9-3时序启停电路原理所,其中时序电路由时序启停电路原理所,其中时序电路由1/2片片74LS74、1片片74LS175及及6个二输入与门、个二输入与门、2个二输个二输入与非门和入与非门和3个反向器构成。可产生个反向器构成。可产生4个等间隔的时个
13、等间隔的时序信号序信号T1T4,其中,其中“时钟时钟”信号由信号由“脉冲源脉冲源”提提供。为了便于控制程序的运行,时序电路发生器也供。为了便于控制程序的运行,时序电路发生器也设置了一个启停控制触发器设置了一个启停控制触发器CR,使,使T1T4信号输出信号输出可控。可控。(2)时序启停电路单元)时序启停电路单元2007.7.2计算机组成原理19 图中给出了图中给出了“运行方式运行方式”、“停机停机”和启和启动控制位,用来分别管理时序信号动控制位,用来分别管理时序信号T1T4将周而复将周而复始地发送或单步发送。时序信号始地发送或单步发送。时序信号T1T4连续发送,连续发送,机器就可以连续执行微程序
14、;机器仅发送单周期机器就可以连续执行微程序;机器仅发送单周期4拍制时序信号,便单步运行状态,机器每次只执行拍制时序信号,便单步运行状态,机器每次只执行一条微指令,这样,可以观察微控制状态与当前微一条微指令,这样,可以观察微控制状态与当前微指令的执行结果。指令的执行结果。2007.7.2计算机组成原理20图9-3 时序启停电路图2007.7.2计算机组成原理21用示波器观察时序波形,可看到时序信号T1T4的波形,如图9-4所示。图9-4 时序信号T1T4的波形图2007.7.2计算机组成原理22在计算机进行算术运算、逻辑运算或移位运算在计算机进行算术运算、逻辑运算或移位运算时,运算结果的状态主要
15、依靠标志寄存器来显示,时,运算结果的状态主要依靠标志寄存器来显示,因此设计计算机系统时,设计合理的标志位锁存电因此设计计算机系统时,设计合理的标志位锁存电路十分必要。如电路图路十分必要。如电路图9-5所示,其中所示,其中181的的8位输位输出端逻辑或非后进入出端逻辑或非后进入74LS74锁存器锁存器D端,该端的状端,该端的状态由态由AR和和T4信号控制,当信号控制,当AR=1时,在时序时,在时序T1T4处于单步执行状态下,在处于单步执行状态下,在T4节拍把当前零(节拍把当前零(ZQ)状态锁存到零标志锁存器中。状态锁存到零标志锁存器中。(3)标志位锁存单元)标志位锁存单元2007.7.2计算机组
16、成原理23图9-5 标志位锁存电路图2007.7.2计算机组成原理24如电路图如电路图9-6所示,使用所示,使用2片片74LS163组成组成8位位程序计数器程序计数器PC,其,其8位输入位输入/输出公用端与总线输出公用端与总线(BUS)接口相连接。通过接口相连接。通过LDPC、LOAD信号和脉信号和脉冲冲T3来控制对程序计数器来控制对程序计数器PC装载数据和加装载数据和加1操作。操作。当当LOAD=1、LDPC=1时,在时序时,在时序T3上升沿把数据上升沿把数据开关的内容装入开关的内容装入PC。当。当LOAD=0、LDPC=1时,在时,在单周期四节拍时序的单周期四节拍时序的T2时刻打开时刻打开
17、PC-B三态门,在三态门,在T3时刻时刻PC值通过总线打入地址寄存器、同时值通过总线打入地址寄存器、同时PC值值加加1。(4)程序计数器单元)程序计数器单元2007.7.2计算机组成原理25图9-6 程序计数器电路图2007.7.2计算机组成原理26(5)指令寄存器单元)指令寄存器单元 如图如图9-7所示,所示,1片片74LS273作为指令寄存作为指令寄存器单元,其器单元,其8位输入端与位输入端与BUS总线已作连接,其输总线已作连接,其输出端与微程序存储器地址(出端与微程序存储器地址(SE5SE0)接口连接。)接口连接。指令数据寄存器指令数据寄存器IR(74LS273)的)的LDIR为电平正跳
18、为电平正跳变时,把来自数据总线的数据打入寄存器变时,把来自数据总线的数据打入寄存器IR,IR的的输出就作为本系统内的输出就作为本系统内的8位指令位指令I7I0。在本系统内。在本系统内由这由这8位指令(可最多译码位指令(可最多译码256条不同的指令),通条不同的指令),通过编码可对应这些指令在微程序存储器中的入口地过编码可对应这些指令在微程序存储器中的入口地址,并且输出相应的微控制指令。址,并且输出相应的微控制指令。2007.7.2计算机组成原理27图9-7 指令寄存器电路图2007.7.2计算机组成原理28(6)输入)输入/输出单元输出单元计算机系统中所用的输入计算机系统中所用的输入/输出设备
19、如电路图输出设备如电路图9-8、9-9所示。其中输入设备有所示。其中输入设备有8位带显示数据开关位带显示数据开关经一个三态门(经一个三态门(74LS245)8位数据总线相连。输位数据总线相连。输出设备经一锁存器(出设备经一锁存器(74LS273)实现,该锁存器的)实现,该锁存器的8位输入端和位输入端和8位数据总线相连,其锁存输出端与位数据总线相连,其锁存输出端与8个发光二极管的显示接口相连,该显示接口以二进个发光二极管的显示接口相连,该显示接口以二进制方式显示输出结果(灯亮表示该输出位为制方式显示输出结果(灯亮表示该输出位为1,灯,灯灭表示该输出位为灭表示该输出位为0)。)。2007.7.2计
20、算机组成原理29说明说明:在本设计中8位数据开关就是简单的输入设备,一次只能向计算机输入8位 二进制;8个发光二极管是简单的输出设备,一次能显示一个字节的结果。图9-8 输入设备电路图2007.7.2计算机组成原理30图9-9 输出设备电路图2007.7.2计算机组成原理31说明说明:运算器、存储器及微程序控制器工作原理分别在前面第2章、第4章 和第6章已讲述,它们设计及应用内容在第10章实训部分还会详细介绍,此处不再重点讲述。思考思考:结合数字电路知识,请查阅资料分析74LS245、74LS 74、74LS175、74LS299、74LS273芯片的作用及特性。2007.7.2计算机组成原理
21、329.2 指令系统设计指令系统设计设计一个计算机系统需确定计算机的指令系统设计一个计算机系统需确定计算机的指令系统具体由哪些指令组成,包括哪几种类型指令,指令具体由哪些指令组成,包括哪几种类型指令,指令操作数有哪几种寻址方式,以及指令编码等,要兼操作数有哪几种寻址方式,以及指令编码等,要兼顾必要性(编程方便)和可行性(硬件条件)两个顾必要性(编程方便)和可行性(硬件条件)两个条件。条件。2007.7.2计算机组成原理339.2 指令系统设计指令系统设计 9.2.1 指令类型指令类型 9.2.2 设计指令执行流程设计指令执行流程2007.7.2计算机组成原理341.算术逻辑指令算术逻辑指令系统
22、共设计系统共设计9条算术逻辑指令,分别是:寄存条算术逻辑指令,分别是:寄存器清零指令(器清零指令(CLR)、数据传送指令()、数据传送指令(MOV)、带)、带进位加法指令(进位加法指令(ADC)、借位减法指令()、借位减法指令(SUC)、)、自增运算指令自增运算指令INC)、与运算指令()、与运算指令(AND)、取反)、取反运算指令(运算指令(COM)、带进位循环右移指令()、带进位循环右移指令(RRC)和带进位循环左移指令和带进位循环左移指令RLC)。这些指令全部用单)。这些指令全部用单字节表示,寻址方式采用寄存器直接寻址,其格式字节表示,寻址方式采用寄存器直接寻址,其格式如下:如下:微程序
23、控制计算机设计四大类指令共十六条,微程序控制计算机设计四大类指令共十六条,其中包括算术逻辑指令、其中包括算术逻辑指令、I/O指令、访问及转移指指令、访问及转移指令和停机指令。令和停机指令。2007.7.2计算机组成原理35D7 D6 D5 D4D3 D2D1 D0OP-CODErsrd 其中,OPCODE为操作码占用4位二进制(D7D4),rs为源寄存器占用2位二进制(D3、D2),rd为目的寄存器占用2位二进制(D1、D0),并规定:rs或或rd 选定的寄存器选定的寄存器00R001R110R2 9条算术逻辑指令的名称、功能和具体格式见表9-1所示。2007.7.2计算机组成原理362.访存
24、指令及转移指令访存指令及转移指令系统共设计系统共设计2条访存指令条访存指令存数(存数(STA)和取)和取数(数(LAD),),2条转移指令条转移指令无条件转移无条件转移(JMP)和结果为零或有进位转移指令(和结果为零或有进位转移指令(JZC),这),这4条指令条指令长度为长度为2个字节,其指令格式为:个字节,其指令格式为:D7 D6D5 D4D3 D2D1 D00 0M OP-CODErdD2007.7.2计算机组成原理37 其中,其中,OPCODE为操作码,为操作码,rd为目的寄为目的寄存器地址(存器地址(LDA、STA指令使用)。指令使用)。D为偏移量为偏移量(正负均可),(正负均可),M
25、为寻址模式,其定义如下:为寻址模式,其定义如下:寻址模式寻址模式M有效地址有效地址E说明说明00011011E=DE=(D)E=(RI)+DE=(PC)+D直接寻址直接寻址间接寻址间接寻址RI变址寻址变址寻址相对寻址相对寻址本计算机规定变址寄存器RI指定为寄存器R2。2007.7.2计算机组成原理383.I/O指令指令I/O指令共两个,分别是输入(指令共两个,分别是输入(IN)和输出)和输出(OUT)。指令采用单字节指令,其格式如下:。指令采用单字节指令,其格式如下:D7 D6 D5 D4D3 D2D1 D0OP-CODEaddrrd 其中,其中,addr01时,选中时,选中“输入设备输入设备
26、”中的开中的开关组作为输入设备,关组作为输入设备,addr10时,选中时,选中“输出设备输出设备”中的数码显示单元作为输出设备。中的数码显示单元作为输出设备。2007.7.2计算机组成原理394.停机指令停机指令设计一个停机指令设计一个停机指令HLT,该指令用于实现停机,该指令用于实现停机操作。指令格式如下:操作。指令格式如下:D7 D6 D5 D4D3 D2D1 D0OP-CODE0000 根据上面介绍,表9-1列出了本计算机系统16条基本指令的格式、汇编符号和指令功能,其中算术逻辑指令9条,访存指令和程序控制指令4条,输入输出指令2条,停机指令1条。2007.7.2计算机组成原理40 表9
27、-1 指令详细信息表 汇编指令汇编指令指令格式指令格式指令功能指令功能CLR rd0111 00 rd0 rdMOV rs,rd1000 rs rdrs rdADC rs,rd1001 rs rdrs+rd+cy rd(cy是进位值是进位值)SUC rs rd1010 rs rdrs-rd-cy rdINC rd1011 rs rdrs+1 rdAND rs,rd1100 rs rdrs&rd rdCOM rd1101 rs rd求反求反RRC rs,rd1110 rs rd 带进位的循环右移带进位的循环右移RLC rs,rd1111 rs rd带进位的循环左移带进位的循环左移LAD M,D,
28、rd00 M 00 rdE(有效地址单元数据有效地址单元数据)rdDSTA M,D,rd00 M 01 rdrd E(有效地址单元有效地址单元)DJMP M,D00 M 11 rdE PCDJZC M,D00 M 11 rd当当CY=1时或时或Z=1时时E PCDIN addr,rd0100 01 rdaddr rdOUT addr,rd0101 10 rdrd addrHLT0110 00 00停机停机2007.7.2计算机组成原理419.2.2 设计指令执行流程设计指令执行流程指令类型和数量确定后,还需结合计算机整机指令类型和数量确定后,还需结合计算机整机通路逻辑图(见图通路逻辑图(见图9
29、-1)设计出每条指令的执行流程。)设计出每条指令的执行流程。我们知道,一条指令从内存取出到执行完毕,需要我们知道,一条指令从内存取出到执行完毕,需要若干个机器周期(节拍)。任何指令的第一个机器若干个机器周期(节拍)。任何指令的第一个机器周期都是周期都是“取指令周期取指令周期”,或称为公共操作周期。,或称为公共操作周期。而而条指令共需几个机器周期取决于指令在计算机条指令共需几个机器周期取决于指令在计算机系统中实现的复杂程度。对于微程序控制的计算机系统中实现的复杂程度。对于微程序控制的计算机设计指令执行流程时,要保证每条微指令所含微操设计指令执行流程时,要保证每条微指令所含微操作的必要性和合理性,
30、防止微操作之间有时序冲突,作的必要性和合理性,防止微操作之间有时序冲突,为此要分析:为此要分析:2007.7.2计算机组成原理42(1)哪些微操作信息可以安排在同一条微指令中;(2)哪些微操作信息必须安排在同一条微指令中;(3)哪些微操作信息不能安排在同条微指令中。另外,还应记住:总线(数据总线DB、地址总线AB、控制总线CB)仅是传输信息的通路而已,无寄存信息的功能;利用总线传输信息时要保证信息的唯一性(即不能有个以上器件向总线发送信息);ALU的输出缓冲器仅是三态传输门电路,无寄存功能。2007.7.2计算机组成原理43 下面我们举几个例子说明如何设计指令流程。下面我们举几个例子说明如何设
31、计指令流程。说明说明:箭头表示数据信息流向,括号中的T1,T2,T3为工作脉冲。【例9-1】单字节指令 ADC rs,rd(rd是目的寄存器,rs是源寄存器,硬件见图(9-1)该指令功能为rs+rd+cy rd(cy是进位值),需执行的微操作和所需的微操作信号如下:(1)(PC)(AR)RAM ;根据PC访问内存 所需的微操作信号:LDPC,LDAR(T3)(2)RAM DB IR(DB为数据总线);读出指令字节送IR 所需的微操作信号:WE,CE,LDIR(T3)(3)(PC)+1 PC ;PC加l计数,为取下条指令字节准备 所需的微操作信号:PC+1(T3)(4)R0 DR1;R1DR2
32、;取两个操作数送数据寄存器为ALU准备好被加数 所需的微操作信号:R0-B,R1-B,RS-BUS,LDDR1,LDDR2(5)(DR1+DR2)+cy R1 ;ALU执行加法,结果暂存目的寄存器 所需的微操作信号:M,CN,S0,S1,S2,S3,ALU-BUS,LDRi(T2)2007.7.2计算机组成原理44【例9-2】单字节指令MOV rs,rd 该指令功能为rs rd,需执行的微操作和所需的微操作信号如下:(1)(PC)(AR)RAM ;根据PC访问内存 所需的微操作信号:LDPC,LDAR(T3)(2)RAM DB IR(DB为数据总线);读出指令字节送IR 所需的微操作信号:WE
33、,CE,LDIR(T3)(3)R0 DB ;读出数据到数据总线 所需的微操作信号:R0-B,RS-BUS(4)DB R1 ;数据总线上的数据送R1 所需的微操作信号:LDRi(T2)根据计算机整机数据通路逻辑框图(9-1),参照例9-1和9-2的设计方法,可以完成对INC、AND、RRC 等其余14条指令的微操作流程和所需的微操作信号的设计。详细设计留给读者完成。思考思考:指令执行过程中微操作信号的作用是什么?2007.7.2计算机组成原理459.3 微程序设计在微程序控制计算机中,源程序指令的执行是在微程序控制计算机中,源程序指令的执行是建立在微程序的基础之上的。计算机要完成程序执建立在微程
34、序的基础之上的。计算机要完成程序执行,必须先设计每条指令的微程序,并且放在微程行,必须先设计每条指令的微程序,并且放在微程序控制器的存储器中,这样,计算机就把执行源程序控制器的存储器中,这样,计算机就把执行源程序指令的工作通过执行一个微程序来实现。在计算序指令的工作通过执行一个微程序来实现。在计算机中指令执行的效率如何和微程序控制、微指令字机中指令执行的效率如何和微程序控制、微指令字长以及微程序设计情况密切相关。长以及微程序设计情况密切相关。2007.7.2计算机组成原理469.3.1 微程序控制器微程序控制器微程序控制计算机的数据通路确定后,下一个微程序控制计算机的数据通路确定后,下一个设计
35、重点就集中在控制器的设计上。控制器逻辑框设计重点就集中在控制器的设计上。控制器逻辑框图,如图图,如图9-10所示。图中所示。图中IR存放的是源程序指令,存放的是源程序指令,控制器对源程序指令的操作码译码可以找到该指令控制器对源程序指令的操作码译码可以找到该指令的微程序的入口地址,然后送入微程序计数器的微程序的入口地址,然后送入微程序计数器Upc中,根据微程序的入口地址访问控制存储器就可以中,根据微程序的入口地址访问控制存储器就可以读取微程序的第一条微指令,从而开始执行一个微读取微程序的第一条微指令,从而开始执行一个微程序完成指令的工作。图中微程序每一条微指令的程序完成指令的工作。图中微程序每一
36、条微指令的执行都是在微指令寄存器中完成的。执行都是在微指令寄存器中完成的。2007.7.2计算机组成原理47 图9-10微程序控制逻辑框图 2007.7.2计算机组成原理489.3.2 微程序设计微程序设计将机器的全部指令系统采用微指令序列实现的将机器的全部指令系统采用微指令序列实现的过程,叫做微程序设计。一条机器指令对应一个微过程,叫做微程序设计。一条机器指令对应一个微程序,本系统共有程序,本系统共有16条机器指令就应当对应有条机器指令就应当对应有16个个微程序。微程序。计算机中微程序控制器的强大与否,机器性能计算机中微程序控制器的强大与否,机器性能如何,取决于如何设计控制流程,并转化为微程
37、序。如何,取决于如何设计控制流程,并转化为微程序。微程序设计是以微指令设计为基础的。微程序设计是以微指令设计为基础的。2007.7.2计算机组成原理491.微指令格式微指令格式本部分设计任务是综合微程序控制计算机指令本部分设计任务是综合微程序控制计算机指令系统各指令执行流程中涉及到的微操作控制信号,系统各指令执行流程中涉及到的微操作控制信号,统计总共需多少个微操作控制信号,决定这些信号统计总共需多少个微操作控制信号,决定这些信号中在微指令中产生的方式及格式。中在微指令中产生的方式及格式。微指令设计分为水平型微指令和垂直微指令两微指令设计分为水平型微指令和垂直微指令两种。如果计算机系统复杂不高,
38、微指令格式建议采种。如果计算机系统复杂不高,微指令格式建议采用水平型微指令,微命令编码采用直接表示法和分用水平型微指令,微命令编码采用直接表示法和分段直接译码法相结合的混合表示法,以缩短微指令段直接译码法相结合的混合表示法,以缩短微指令长度。后继地址采用下址字段给出的方式。长度。后继地址采用下址字段给出的方式。微指令格式如下:微指令格式如下:2007.7.2计算机组成原理50结合计算机指令系统和数据通路逻辑框图,可以结合计算机指令系统和数据通路逻辑框图,可以分析系统所需的微命令信号的数目,从而确定微指令分析系统所需的微命令信号的数目,从而确定微指令中控制字段的长度。比如微指令长中控制字段的长度
39、。比如微指令长24位,若微指令位,若微指令采用全水平不编码直接控制的格式,那么至多可有采用全水平不编码直接控制的格式,那么至多可有24个微命令控制信号直接产生。如果采用分组编码个微命令控制信号直接产生。如果采用分组编码译码,那么译码,那么n位微指令编码通过译码器译码可实现位微指令编码通过译码器译码可实现2n个互斥的微命令控制信号(即它们不可能在同一节拍个互斥的微命令控制信号(即它们不可能在同一节拍内激活)。内激活)。系统中微指令格式及微命令信号设计实例如下:系统中微指令格式及微命令信号设计实例如下:控制字段控制字段 判别字段判别字段下址字段下址字段 2007.7.2计算机组成原理51微指令字长
40、共24位,其控制位顺序如下:24232221201918171615 14 1312 11 109 8 7654321S3S2S1S0MCnWECELDPCABCuA5uA02416为直接控制字段,共给出为直接控制字段,共给出9个微命令信号;个微命令信号;A、B、C为译码字段,可以分别送为译码字段,可以分别送3-8译码器,译码器,共可以设计出互斥的共可以设计出互斥的24个微命令信号;个微命令信号;A5A0为下址字段(微指令后继微地址),为下址字段(微指令后继微地址),6位地址可以访问的控制存储器的空间为位地址可以访问的控制存储器的空间为26,即系统设,即系统设计的微指令最多不超过计的微指令最多
41、不超过64条。条。2007.7.2计算机组成原理522.指令流水执行时空表指令流水执行时空表设计指令执行流程时空表应在设计数据通路之设计指令执行流程时空表应在设计数据通路之前确定,因为具体的流水线是跟时空表紧密相联的。前确定,因为具体的流水线是跟时空表紧密相联的。本设计是在已有的数据通路的基础上(该数据通路本设计是在已有的数据通路的基础上(该数据通路支持流水),通过改进控制来提升系统性能,因此支持流水),通过改进控制来提升系统性能,因此将时空表放在控制器部分进行设计。表将时空表放在控制器部分进行设计。表9-2给出的是给出的是指令执行过程时空表,表指令执行过程时空表,表9-3给出的是指令两级流水
42、给出的是指令两级流水执行时空表,表执行时空表,表9-4给出的是指令四级流水执行时空给出的是指令四级流水执行时空表。表。2007.7.2计算机组成原理53表9-2 指令执行过程时空表周期周期 123456789101112131415161718取指取指12345678执行执行1122334455667788写回写回12345678表9-3 指令两级流水执行时空表周周期期 1234567891011121314151617指令指令11122334455667788指令指令211223344556677882007.7.2计算机组成原理54表9-2 指令执行过程时空表周期周期 1234567891
43、01112131415指令指令1123456789101112功能段功能段2123456789101112功能段功能段2123456789101112功能段功能段2123456789101112注意:注意:设计选用的时空表只要设计可以实现即可,不同的时空表直接影响系统的性 能。思考:思考:设计微指令格式时,判别字段的主要作用是什么?2007.7.2计算机组成原理553.编写各指令的微程序编写各指令的微程序根据指令流程和微指令格式仔细地逐条编写每根据指令流程和微指令格式仔细地逐条编写每一个指令的微程序,源程序指令对应的微程序流程一个指令的微程序,源程序指令对应的微程序流程图及确定微地址,如图图及
44、确定微地址,如图9-11所示。所示。2007.7.2计算机组成原理56 图9-11 微程序流程图 2007.7.2计算机组成原理57 根据流程图,可以写成二进制表示的微程根据流程图,可以写成二进制表示的微程序,为了书写方便,在此用十六进制书写。序,为了书写方便,在此用十六进制书写。十六进制微地址十六进制微地址$:表示地址:表示地址M:表示微指令:表示微指令十六进制表示微程序格式说明十六进制表示微程序格式说明 微指令代码:微指令代码:微指令代码 十六进制微地址$:表示地址M:表示微指令$M 2007.7.2计算机组成原理58$M2205DB81$M230180E4$M24018001$M2595
45、AAA0$M2600A027$M2701BC28$M2895EA29$M2995AA0$M2A01B42B$M2B959B41$M2C01A42D$M2D65AB6E$M2E0D9A01$M2F01AA30$M300D8171$M31959B41$M32019A01$M3301B435$M3405DB81$M35B99B41$M360D9A01$M37298838$M38019801$M3919883A$M3A019801$M3B070A08$M3C068A09$M00018108$M0101ED82$M0200C050$M0300A004$M230180E4$M24018001$M2595A
46、AA0$M2600A027$M2701BC28$M2895EA29$M2995AA0$M2A01B42B$M2B959B41$M2C01A42D$M2D65AB6E$M2E0D9A01$M2F01AA30$M300D8171$M31959B41$M32019A01$M3301B435$M3405DB81$M35B99B41$M360D9A01$M37298838$M38019801$M3919883A$M3A019801$M3B070A08$M3C068A09$M0400E0A0$M0500E006$M0600A007$M0700E0A0$M0801ED8A$M0901ED8C$M0A00A0
47、3B$M0B018001$M0C00203C$M0D00A00E$M0E01B60F$M0F95EA25$M1001ED83$M1101ED85$M1201ED8D$M1301EDA6$M14001001$M15030401$M16018016$M173D9A01$M18019201$M1901A22A$M1A01B22C$M1B01A232$M1C01A233$M1D01A236$M1E318237$M1F318239$M20009001$M21028401$M2205DB812007.7.2计算机组成原理599.4 编写源程序编写源程序计算机系统共设计了计算机系统共设计了16条指令,指令机
48、器码采条指令,指令机器码采用单字节设计,指令与机器码对应关系如表用单字节设计,指令与机器码对应关系如表9-5所示:所示:9.4.1 指令机器码指令机器码2007.7.2计算机组成原理60指令指令机器指令码机器指令码CLR0000 0000MOV0001 0000ADC0010 0000SUC0011 0000INC0100 0000AND0101 0000COM0110 0000RRC0111 0000RLC1000 0000LAD1001 0000STA1010 0000JMP1011 0000JZC1100 0000IN1101 0000OUT1110 0000HLT1111 0000表9
49、-5 指令与机器码对应关系表2007.7.2计算机组成原理619.4.2 机器程序设计实例机器程序设计实例根据指令的机器码,设计的机器指令程序如下:地址(二进制)内容(二进制)地址(二进制)内容(二进制)源程序说明源程序说明 0000 1101 0000 IN R0 输入设备内容输入设备内容R0 0001 0010 0000 ADC R0,O9H R0+09H+cyR0 0010 0000 1001 0011 1010 0000 STA 0BH,R0 R00BH 0100 0000 1011 0101 1110 0000 OUT 0BH,LED 0BHLED(输出设备)(输出设备)0110 0
50、000 1011 0111 1011 0000 JMP 00H 00HPC 1000 0000 0000 1001 0101 0101 自定自定 1010 1010 1010 自定自定 1011 求和结果求和结果2007.7.2计算机组成原理62机器指令及微程序按照规定的格式编写成十六进制格式文件,程序清单如下:P00 D0 ;机器指令格式说明(机器指令格式说明(P代表机器指令):代表机器指令):P01 20 ;PXX XXP02 09 ;地址地址 机器代码机器代码P03 A0P04 0BP05 E0P06 0BP07 B0P08 00P09 55P0A AA2007.7.2计算机组成原理63