《第5章中央处理器2.ppt》由会员分享,可在线阅读,更多相关《第5章中央处理器2.ppt(82页珍藏版)》请在三一文库上搜索。
1、计算机组成原理,第5章 中央处理器,5.4 微程序控制器,中央处理器,微程序控制器同硬布线控制器相比较,具有规整性、灵活性、可维护性等一系列优点。是利用软件方法来设计硬件的一门技术。,微程序控制的基本思想就是把操作控制信号编成所谓的“微指令”,存放到一个只读存储器里。当机器运行时,一条又一条地读出这些微指令,从而产生全机所需要的各种操作控制信号,是相应部件执行所规定的操作。,基本概念 微命令 微操作 微指令 微程序 控制存储器 微地址,5.4 微程序控制器,5.4.1 微命令和微操作 5.4.2 微指令和微程序 5.4.3 微程序控制器原理框图 5.4.4 微程序举例 5.4.5 CPU周期与
2、微指令周期的关系 5.4.6 机器指令与微指令的关系,中央处理器,5.4.1 微命令和微操作,一台数字计算机可以分为两大部分控制部件和执行部件。,中央处理器,微命令 控制部件通过控制线向执行部件发出的各种控制命令。,微操作 执行部件接受微命令后所进行的操作。,执行部件通过反馈线向控制部件反映操作情况即反馈信息,以便使控制部件根据执行部件的“状态”来下达新的微命令,这也叫做“状态测试”。,控制部件与执行部件通过控制线和反馈信息进行联系。,中央处理器,微操作在执行部件中是最基本的操作。由于数据通路的结构关系,微操作可分为相容性和相斥性两种。,相斥性的微操作:不能在同时或不能在同一个CPU周期内并行
3、执行的微操作。,相容性的微操作:在同时或同一个CPU周期内可以并行执行的微操作。,简单运算器数据通路,哪些是相容性的微操作?,哪些是相斥性的微操作?,5.4.2 微指令和微程序,中央处理器,微指令:在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合,构成一条微指令。,操作控制部分:用来发出管理和指挥全机工作的控制信号,顺序控制部分:用来决定如何形成下一条微指令的地址,节拍电位和节拍脉冲,中央处理器,节拍电位:上图的微指令中给出的控制信号都是节拍电位信号,它们的持续时间都是一个CPU周期。,节拍脉冲由环形脉冲发生器产生,一个节拍电位 持续时间正好包容若干个节拍脉冲。,中央处理器,微程序
4、: 实现一条机器指令功能的若干条微指令组成的序列。,既然微程序是由微指令组成的,那么当执行当前一条微指令时,必须指出后继微指令的地址,以便当前一条微指令执行完毕后,取出下一条微指令。 形成后继微指令地址的方法有多种。 此例中用18-23位信息来决定后继微指令地址。,5.4.3 微程序控制器原理框图,中央处理器,它主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成。,微程序控制器原理框图,控制存储器 CM,地址译码,微地址寄存器AR,OP,P字段 控制字段,地址转移 逻辑,状态条件,指令寄存器,微命令信号,微指令寄存器IR,微命令寄存器,1.控制存储器CM,CM存放实现全部指令系统的微程序
5、,它是ROM。一旦微程序固化,机器运行时则只读不写。其工作过程是:每读出一条微指令,则执行这条微指令;接着又读出下一条微指令,又执行这一条微指令。 “读出一条微指令并执行该微指令的时间总和”称为一个微指令周期。,中央处理器,CM的一个单元的内容即控制字代表了某一个节拍的一组微操作控制信号的信息,而把CM单元的地址称为“微地址”。 在串行方式的微程序控制器中,微指令周期就是只读存储器的工作周期。控制存储器的字长就是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量。对控制存储器的要求是速度快,读出周期要短。 ,2.微指令寄存器,微指令寄存器(IR)用来存放由控制存储器读出的一条微
6、指令信息。 其中微地址寄存器(AR)决定将要访问的下一条微指令的地址; 微命令寄存器则保存一条微指令的操作控制字段和判别测试字段P的信息。,中央处理器,3.地址转移逻辑,微地址:下一条微指令的地址。 一般情况下,微指令由CM读出后直接给出微地址。微地址信息送入微地址寄存器AR中。 如果微程序不出现分支,那么下一条微指令的地址就直接由AR给出。 当微程序出现分支时,意味着微程序出现条件转移。在这种情况下,通过判别测试字段P和执行部件的“状态条件”反馈信息,去修改微地址寄存器AR的内容,并按改好的微地址去读下一条微指令。这一功能就由地址转移逻辑来承担,其可以根据转移条件,自动完成修改微地址的任务。
7、,中央处理器,5.4.4 微程序举例,中央处理器,一条机器指令是由一段微程序来实现的。下面以“十进制加法”指令为例,说明微程序控制的过程。 1、十进制加法算法 两个BCD码十进制数位相加,必须进行“加6校正”。由此可推知如下十进制加法算法: 设:被加数为a,加数为b, 先做 (S=a+b+6)运算,然后判断进位标志Cy; 若 Cy=1(有进位),则本位结果正确(向高位有进位);若 Cy=0(无进位),则本位结果不对,做(S-6)运算,恢复原来正确的结果(S=a+b)。,用BCD码完成a+b运算 1、a=1000 b=1001,2、a=0110 b=0010 a+b+6=1110,无进位,错误,
8、修正,a+b+6=1 0111 有进位,正确,数a和b已存放在R1和R2两寄存器中,数6存放在R3寄存器中。,微程序流程图,2、关于P1、P2测试的约定,中央处理器, P1测试的约定:若P1=1,则进行P1测试: 机器指令的操作码OP作为下一条微指令的地址。 P2测试的约定: 若P2=1,则进行P2测试: 根据进位Cy的状态,决定下一条微指令的地址。 若Cy=1,则当前微指令给出的后继地址0000就是下一条微指令的地址; 若Cy=0,则下一条微指令的地址为0001(要执行S-6运算)。,实现“十进制加法”的微程序的各条微指令编码: 第一条微指令的二进制编码是: 000 000 000 000
9、11111 10 0000 第二条微指令的二进制编码是: 010 100 100 100 00000 00 1001 第三条微指令的二进制编码是: 010 001 001 100 00000 01 0000 第四条微指令的二进制编码是: 010 001 001 001 00000 00 0000 可见:微程序控制实质上是将一条机器指令的执行分解成若干步,每一步都由一条微指令来产生对应的微命令来加以实现。即:一条机器指令的执行,是通过执行一个对应的微程序来实现的。,微程序:,中央处理器,微程序控制过程,取指令,算术逻辑单元,状态条件寄存器,程序计数器PC,地址寄存器AR,地址总线ABUS,数据总
10、线DBUS,累加器AC,缓冲寄存器DR,CPU,ALU,指令寄存器IR,微地址寄存器,控制存储器CM,c,c,c,c,+1,000 020,20,21,22,23,24,30,31,40,000 020,1010 XXX,1010 XXX,000 021,微命令寄存器,微命令,地址译码,1010 XXX,第一条微指令,0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0, 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23,LDR1,LDR2,LDR3,R1Y,R2X,R2Y,R1X,DRX,R3Y,
11、+,M,-,RD,LDDR,LDIR,LDAR,PC+1,P1,P2,直接地址,操作控制,顺序控制,操作控制字段有五个微命令: 第16位发出LDAR,将PC内容送到地址寄存器AR; 第13位发出RD,第14位发出LDDR,内存执行读操作,从内存取出“十进制加法”指令放到DR中; 第15位发出LDIR,将DR中的指令再送到指令寄存器IR中; 第17位发出PC+1微命令,是程序计数器加1,做好取下一条机器指令的准备。,判别字段中P1位为1,需要进行P1测试,机器指令的操作码OP作为下一条微指令的地址。所以,微地址寄存器的内容变为1010。,微程序:,中央处理器,微程序控制过程,第二条微指令,操作控
12、制字段有四个微命令: 第4位:R1X; 第7位:R2Y; 第10位: +; 第2位:LDR2。,判别字段P1P2=00,不需要进行测试,直接给出下一条微指令的地址1001。,微程序:,中央处理器,微程序控制过程,第三条微指令,操作控制字段有四个微命令: 第6位:R2X; 第9位:R3Y; 第10位: +; 第2位:LDR2。,判别字段P2=1,需要进行P2测试。根据进位Cy的状态,决定下一条微指令的地址。 若Cy=1,则当前微指令给出的后继地址0000就是下一条微指令的地址; 若Cy=0,则下一条微指令的地址为0001(要执行S-6运算)。,微程序:,中央处理器,微程序控制过程,第四条微指令,
13、操作控制字段有四个微命令: 第6位:R2X; 第9位:R3Y; 第12位: -; 第2位: LDR2。,判别字段P1P2=00,不需要进行测试,直接给出下一条微指令的地址0000,即取指指令。,微程序:,中央处理器,微程序控制器工作过程,微程序控制器的工作过程实质上就是在微程序控制器的控制下,计算机执行机器指令的过程。 从控存中取出一段“取机器指令”用的微指令,称为取指微指令,这是一段公用的微操作,其首址通常放在“0”号微地址单元。该微指令完成3个功能(取指令到IR、PC+1、对操作码进行P1判别测试)。 机器指令操作码通过微地址形成部件,产生对应的微程序入口地址,并送入微地址寄存器。 逐条取
14、出对应的微指令,每一条微指令提供一个微命令序列,控制有关的微操作。 执行完对应于一条机器指令的一段微程序后,返回到取指微指令的入口,以便取出下一条机器指令。不断重复,直至程序执行完毕。,5.4.5 CPU周期与微指令周期的关系,中央处理器,通常,在串行方式的微程序控制器中: 微指令周期 = 读出微指令的时间 + 执行该条微指令的时间 (与指令周期的定义类似),例:某小型机中CPU周期与微指令周期的时间关系:,在前600ns内进行运算,在600ns时间末尾运算完毕,T4上升沿将运算结果打入某个寄存器。同时,用T4间隔读取下条微指令,经200ns延迟,下条微指令从ROM读出,并用T1上升沿打入到I
15、R 。如忽略触发器翻转延迟,下条微指令的微命令信号从T1上升沿开始有效,直到下一条微指令读出后打入IR为止。一条微指令的保持时间恰好是0.8s(一个CPU周期)。,5.4.6 机器指令与微指令的关系,中央处理器,一会儿取机器指令,一会儿取微指令,它们之间到底是什么关系?,程序,机器指令1,机器指令2,机器指令i,机器指令n,微指令2,微指令1,微指令i,微指令n,微程序,机器指令和微指令的关系,程序计数器pc,地址寄存器AR,缓冲寄存器DR,指令寄存器IR,微地址寄存器AR,微指令寄存器IR,主存储器,控制存储器CM,微命令,地址译码器,地址译码,+1,机器指令级,微指令级,1. 一条机器指令
16、对应一个微程序,这个微程序是由若干条微指令序列组成的。因此,一条机器指令的功能是由若干条微指令组成的序列来实现的。 简言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。,机器指令和微指令的关系:,中央处理器,2. 从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,前者与内存储器有关,后者与控制存储器有关。与此相关,也有相对应的硬设备。,3. 在本章5.2节中,曾讨论了指令周期与机器周期概念,并归纳了五条典型指令的指令周期,并演示了这五条指令的微程序流程图,每一个CPU周期就对应一条微指令。这就告诉我们如何设计微程序,也将使我们进一步体验到机器指令与微指
17、令的关系。,中央处理器,【例2】设某计算机运算器框图如图(a)所示,其中ALU为16位的加法器(高电平工作),SA,SB为16位暂存器。4个通用寄存器由D触发器组成,Q端输出,其读、写控制功能见下表。,中央处理器,中央处理器,采用串行微程序控制方式的微指令周期,从控存中读出一条微指令时间,m1读寄存器时间,为500ns,写寄存器的工作脉冲宽度,为100ns,中央处理器,已知微指令字长12位,微指令格式如下:,读R0-R3的选择控制;,写R0-R3的选择控制;,寄存器读命令;,寄存器写命令;,打入SA的控制信号;,打入SB的控制信号;,传送SB的控制信号;,清暂存器SB为零的信号;,一段微程序结
18、束,转入取机器指令的控制信号。,要求:用二进制代码写出如下指令的微程序: (1) “ADD R0,R1”指令,即(R0)+(R1)R1 (2) “SUB R2,R3”指令,即(R3)-(R2)R3 (3) “MOV R2,R3”指令,即(R2)(R3),中央处理器,【解】:三条指令的微指令的微程序流程图。,每一框表示一条微指令,微指令序列的顺序用数字标号,中央处理器,未考虑“取指周期”和顺序控制问题,也即微程序仅考虑“执行周期” 。 根据给定的微指令周期时间关系,完成ADD,SUB指令的执行动作需要3条微指令,MOV指令只需2条微指令。 按照已知的微指令格式:,ADD R0,R1的执行过程:R
19、0SA,R1SB,SA+SBR1,0010100000,0110010000,0101001001,因此,执行ADD R0,R1的三条微指令为: 0010100000 2. 0110010000 3. 0101001001,?,中央处理器,SUB R2,R3的执行过程:R3SA,R2SB,SA-SBR3,1110100000,1010010000,1101000101,因此,执行SUB R2,R3的三条微指令为: 1110100000 2. 1010010000 3. 1101000101,中央处理器,MOV R2,R3的执行过程:R2SA,0SB;SA+SBR3,1101001001,因此,
20、执行MOV R2,R3的三条微指令为: 1010100010 2. 1101001001,三条机器指令的微程序,中央处理器,确定微指令的结构,是微程序设计的关键。 设计微指令结构应当追求的目标是: (1) 有利于缩短微指令字的长度; (2) 有利于减小控制存储器的容量; (3) 有利于提高微程序的执行速度; (4) 有利于对微指令的修改; (5) 有利于提高微程序设计的灵活性。,5.5 微程序设计技术,5.5 微程序设计技术,5.5.1 微命令编码 5.5.2 微地址的形成方法 5.5.3 微指令格式 5.5.4 动态微程序设计,中央处理器,5.5.1 微命令编码,中央处理器,已知:微指令的一
21、般格式为: 微命令编码(即:操作控制字段设计方法): 对微指令中的操作控制字段采用的表示方法。通常有以下三种方法:,1.直接表示法,中央处理器,其特点是: 操作控制字段中的每一位代表一个微命令(如前例所述)。 这种方法的优点是简单直观,其输出直接用于控制。缺点是微指令字较长,因而使控制存储器容量较大。,2. 编码表示法,中央处理器,编码表示法: 是把一组相斥性的微命令信号组成一个小组(即一个字段) ,然后通过小组(字段)译码器进行译码,产生所对应的微命令信号,即:译码输出作为操作控制信号。,微指令结构,中央处理器,采用字段译码的编码方法,可以用较小的二进制信息位表示较多的微命令信号。例如:3位
22、二进位译码后可表示7个微命令,4位二进制位译码后可表示15个微命令。,与直接表示法相比,编码表示法可使微指令字大大缩短。 但由于增加译码电路,使微程序的执行速度稍稍减慢。目前在微程序控制器设计中,字段直接译码法使用较普遍。,例如,某机器指令系统总共需要256个微命令: 采用直接编码法,微指令的操作控制字段需256位; 采用编译表示法,如将控制字段分成4位一段,共16段,每个字段经一个译码器输出,可获得16个微命令,总共16段就可获得256个微命令。微指令的操作控制字段仅64位。,编码表示法的分段原则: 相斥性微命令分在同一字段内,一般将同类操作中互斥的微命令划分在同一个字段中。 (可提高信息位
23、的利用率,缩短微指令字长); 相容性微命令分在不同的字段内(有利于实现并行操作,加快指令的执行速度)。 每个小字段包含的信息位不能太多,一般不超过6位,否则将增加译码线路的复杂性和译码时间。,3.混合表示法,中央处理器,混合表示法: 是把直接表示法与字段编码法混合使用,以便综合考虑指令字长、灵活性、微程序执行速度等方面的要求。,另外: 在微指令设计中,还可附设一个常数字。该常数可作为操作数送入ALU运算,也可作为计数器值用来控制微程序循环次数等。,5.5.2 微地址的形成方法 - 顺序控制字段的设计方法,中央处理器,微指令执行的顺序控制问题,是如何确定下一条微指令的地址问题。微地址的形成方法
24、根据机器指令操作码找到相应机器指令所对应的微程序的入口地址。 后继微地址的产生 计数器方式 多路转移(断定方式、下址字段方式),1.计数器方式,中央处理器,与用PC产生机器指令地址的方法相类似。 在顺序执行微指令时,后继微地址由现行微地址加上一个增量来产生; 在非顺序执行微指令时,必须通过转移方式,使现行微指令执行后,转去执行指定后继微地址的下一条微指令。,用计数器方式实现的微程序控制单元结构,在计数器方法中,AR改为计数器。顺序执行的微指令序列就必须安排在CM的连续单元中。 计数器方式的基本特点是: 微指令的顺序控制字段较短,微地址产生机构简单。 但是多路并行转移功能较弱,速度较慢,灵活性较
25、差。,2.多路转移方式(又称断定方式、下址方式),中央处理器,一条微指令具有多个转移分支的能力称为多路转移,这是一种最常用的方式。 在多路转移方式中: 当微程序不产生分支时,后继微地直接由微指令的顺序控制字段给出; 当微程序出现分支时,有若干“后选”微地址可供选择:即按顺序控制字段的“判别测试”标志和“状态条件”信息选择其中一个微地址。“状态条件”有n位标志,可实现微程序的2n路转移,涉及AR的n位 。,多路转移方式的特点: 能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度较快. 但地址转移逻辑需要用组合逻辑电路来实现。,中央处理器,【例3】某微程序控制器的微地址寄存器有6位(A5
26、-A0),当需要修改其内容时,可通过各位触发器的强置端S将其置“1”。现有三种情况: (1) 执行“取指”微指令后,微程序按IR的OP字段(IR3-IR0)进行16路分支; (2) 执行条件转移指令微程序时,按进位标志C的状态进行2路分支; (3) 执行控制台指令微程序时,按IR4,IR5的状态进行4路分支。 请按多路转移方法设计微地址转移逻辑电路。,中央处理器,【解】: 按所给设计条件,微程序有三种判别测 试,分别为P1,P2,P3。由于修改A5-A0内容具 有很大灵活性,现分配如下: (1)用P1和IR3-IR0修改A3-A0;(实现16路 分支) (2)用P2和C修改A0; (实现2路分
27、支) (3)用P3和IR5,IR4修改A5,A4。(实现4 路分支) 另外还要考虑时间因素T4(假设CPU周期最后一 个节拍脉冲为T4),,A5 = P3IR5T4 A4 = P3IR4T4,A0 = P2CT4,A3 = P1IR3T4 A2 = P1IR2T4 A1 = P1IR1T4 A0 = P1IR0T4,故转移地址逻辑表达式如下: A5 = P3IR5T4 A4 = P3IR4T4 A3 = P1IR3T4 A2 = P1IR2T4 A1 = P1IR1T4 A0 = P1IR0T4 + P2CT4 设通过触发器强置端S(低电平有效)修改,故前5个表达式可用“与非”门实现,最后一个
28、用“与或非”门实现。,中央处理器,5.5.3 微指令格式,中央处理器,微指令的编译方法是决定微指令格式的主要因素。 微指令的格式大体分成两类: 1、水平型微指令; 2、垂直型微指令。,1.水平型微指令,中央处理器,一次能定义并执行多个并行微操作命令的微指令,叫做水平型微指令。 其一般格式如下: 按照控制字段的编码方法不同,水平型微指令分为三种: (1)全水平型(不译码法)微指令; (2)字段译码法水平型微指令; (3)直接和译码相混合的水平型微指令。,2.垂直型微指令,中央处理器,在微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。 其结构类似于机器指
29、令的结构。它有操作码,在一条微指令中只有12个微操作命令,每条微指令的功能简单,因此,实现一条机器指令的微程序要比水平型微指令编写的微程序长得多。它是采用较长的微程序结构去换取较短的微指令结构。,中央处理器,设:微指令字长为16位,微操作码3位。 (1)寄存器-寄存器传送型微指令 其功能是把源寄存器数据送目标寄存器。1315位为微操作码(下同),源寄存器和目标寄存器编址各5位,可指定31个寄存器。,下面举4条垂直型微指令的微指令格式加以说明:,中央处理器,(2)运算控制型微指令 其功能是选择ALU的左、右两输入源信息,按ALU字段所指定的运算功能(8种操作)进行处理,并将结果送入暂存器中。左、
30、右输入源编址可指定31种信息源之一。,中央处理器,(3)访问主存微指令 其功能是:将主存中一个单元的信息送入寄存器或者将寄存器的数据送往主存。存储器编址是指按规定的寻址方式进行编址。第1,2位指定读操作或写操作(取其之一)。,中央处理器,(4)条件转移微指令 其功能是:根据测试对象的状态决定是转移到D所指定的微地址单元,还是顺序执行下一条微指令。9位D字段不足以表示一个完整的微地址,但可以用来替代现行PC的低位地址。 测试条件字段有4位,可规定16种测试条件。,3.水平型微指令与垂直型微指令的比较,中央处理器, 水平型微指令并行操作能力强,效率高,灵活性强;垂直型微指令则较差。 水平型微指令执
31、行一条指令的时间短;垂直型微指令执行时间长。 由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点;垂直型微指令则相反。 水平型微指令用户难以掌握;而垂直型微指令与指令比较相似,相对来说,比较容易掌 握。,5.5.4 动态微程序设计,中央处理器,微程序设计技术有静态微程序设计和动态微程序设计之分。,1.静态微程序设计 如果对应于一台计算机的机器指令只有一组微程序,而且这一组微程序设计好之后,一般无须改变而且也不好改变,这种微程序设计技术称为静态微程序设计。,中央处理器,2.动态微程序设计 当采用EPROM作为控制存储器时,还可以通过改变微指令和微程序来改变机器的指令系统,这种微程序设计技术称为动态微程序设计。 采用动态微程序设计时,微指令和微程序可以根据需要加以改变,因而可在一台机器上实现不同类型的指令系统。这种技术又称为仿真其它机器指令系统,可以方便地扩大机器的功能。,P210 6、8(找出相容性微操作)、 9、11,
链接地址:https://www.31doc.com/p-2120874.html