第五章 中央处理单元
计算机加电后,在reset信号的作用下,PC内获得第一条要执行的指令地址,同时第一条“取指”微指令置于微指令寄存器中,并将其他有关的状态位和寄存器设置成初始态。当电平信号稳定后,产生指挥计算机工作的节拍信号T1、T2和CP。 启动 T1 T2 CP 机器周期 起停信号与节拍信号和工作脉冲
在实际进行微程序设计时还应关心下面三个问题: (1) 如何缩短微指令字长; (2) 如何减少微程序长度; (3) 如何提高微程序的执行速度。 这就是在本节所要讨论的微程序设计技术。
5.4.1微指令的编译法(编码译码方法) 微指令由控制字段和下址字段组成,此处主要讨论几种常用的控制字段编译法。 1、直接控制法 在微指令的控制字段中,每一位代表一个微命令,在设计微指令时,是否发出某个微命令,只要将控制字段中相应位置成‘1’或‘0”,这样就可打开或关闭某个控制门,这就是直接控制法。但是这种方式微命令太多。
2、字段直接编译法 在计算机中的各个控制门,在任一微周期内.不可能同时被打开而且大部分是关闭的(即相应的控制位为‘0,)。所谓微周期,指的是一条微指令所需的执行时间。如果有若干个(一组)微命令,在每次选择使用它们的微周期内只有一个微命令起作用,那么这若干个微命令是互斥的。
≈ … 微命令 控制字段 下址字段 微指令寄存器 微命令译码器
3、字段间接编译法 字段间接编译法是在字段直接编译法的基础上,进一步缩短微指令字长的一种编译法。 如果在字段直接编译法中,还规定一个字段的某些微命令要兼由另一字段中的某些微命令来解释。称为字段间接编译法。
≈ … 微指令寄存器 A B 微命令译码器 a11 a21 a71 a12 a22 b2 b1 a72
4、常数源字段E 在微指令中,一般设有一个常数源字段E,就如指令中的直接操作数一样。E字段一般仅有几位,用来给某些部件发送常数,故有时称为发射字段、该常数有时作为操作数送人ALU运算;有时作为计算器初值,用来控制微程序的循环次数等。 5、其他 诸如微操作码编译法
5.4.2微程序流的控制 当前正在执行的微指令,称为现行微指令,现行微指令所在的控制存储器单元的地址,称为现行微地址。现行微指令执行完毕后,下一条要执行的微指令称为后继微指令,后继微指令所在的控存单元地址称为后继微地址。所谓微程序流的控制是指当前微指令执行完毕后,怎样控制产生后继微指令的微地址。产生后继微指令地址一般有两种方法: (1)由指令操作码译码器产生后继微地址。 (2)由微指令的下址宇段指出后继微地址。
(1)以增量方式产生后继微地址 1、产生后继微指令地址的几种方法 译码器 地址码 操作码 IR μPC 控制存储器 下址 控制字段 +1 微程序 入口 微指令寄存器 +1 … 转移 条件 转移地址 (1)以增量方式产生后继微地址
(2)增量与下址结合产生后继微地址 。 译码器 地址码 操作码 IR μPC 控制存储器 BAF 控制字段 +1 BCF … RR CT 微程序入口 +1 BCF … 。 0 1 2 3 4 5 6 7 CT=0 结果=0 溢出 RR BCF(6) · BCF(7) BCF(7) BCF(5) BCF(6) CT CT置数 -1 BAF→μPC
(3)多路转移方式产生后继微地址 一条微指令存在多个转移分支的情况称为多路转移。 2路转移只涉及微地址的1位,4路转移涉及微地址2位。 (4)微中断 微中断请求信号是由程序中断请求信号引起的。 2、AM2900系列芯片构成的微程序CPU
5.4.3 微指令格式 微指令的格式大体上可分成两类:一是水平型微指令;二是垂直型微指令。 5.4.3 微指令格式 微指令的格式大体上可分成两类:一是水平型微指令;二是垂直型微指令。 微指令的编译法是决定微指令格式的主要因素,在设计计算机时考虑到速度价格等因素采用不同的编译法,即使在一台计算机中,也有几种编译法并存的局面存在。
1 水平型微指令 水平型微指令的基本特点是在一条微指令中定义并执行多个并行操作微命令。在实际应用中直接控制法、字段编译法(直接、间接编译法)经常应用在同一条水平型微指令中。从速度来看直接控制法最快,字段编译法要经过译码所以会增加一些延迟时间。
在微指令中设置有微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。 2 垂直型微指令 在微指令中设置有微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。 其特点是不强调实现微指令的并行控制功能,通常一条微指令只要求能控制实现一二种操作。这种微指令格式与指令相似,每条微指令有一个微操作码。 (1) R-R传送型微指令 其 他 目标寄存器编址 源寄存器编址 0 0 0 0 1 2 3 7 8 12 13 15
右输入源编址 移位次数 寄存器编址 读写 其他 存储器编址 寄存器编址 (2) 运算控制型微指令 ALU 右输入源编址 左输入源编址 0 0 1 0 1 2 3 7 8 12 13 15 (3) 移位控制型微指令 移位方式 移位次数 寄存器编址 0 1 0 0 1 2 3 7 8 12 13 15 (4) 访问主存微指令 读写 其他 存储器编址 寄存器编址 0 1 1 0 1 2 3 7 8 12 13 14 15
操作码110、111可用作其他微指令的编码,如I/O等。 (5) 无条件转移微指令 S 转移地址 100 0 1 2 3 14 15 (6) 条件转移微指令 测试条件 转移地址 101 0 1 2 3 11 12 15 (7) 其他微指令 操作码110、111可用作其他微指令的编码,如I/O等。
(1)水平型微指令并行操作能力强,效率高,灵活性强。 3、水平型微指令与垂直型微指令的比较 (1)水平型微指令并行操作能力强,效率高,灵活性强。 垂直型微指令一般只能完成一个操作,控制一两个信息传送通路,因此微指令的并行操作能力低,效率低。 (2)水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。
(3)由水平型微指令解释指令的微程序,具有微指令字比较长,但微程序短的特点。垂直型微指令则相反,微指令字比较短而微程序长。 (4)水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。
5.4.4 微程序控制存储器和动态微程序设计 1、微程序控制存储器 微程序控制存储器由只读存储器(ROM)构成。 2、动态微程序设计 5.4.4 微程序控制存储器和动态微程序设计 1、微程序控制存储器 微程序控制存储器由只读存储器(ROM)构成。 2、动态微程序设计 使计算机更灵活、更有效地适应于各种不同的应用目标。
3、控制存储器的操作 执行一条微指令的过程:取微指令,执行微指令所 规定的各个操作。 微周期就是控制存储器的工作周期,包括取微指令和执行微指令两部分时间。
… (1) 串行方式 CSAR 控制存储器 微程序流 控制部件 微命令 下址 控存地址寄存器 取微指令1 执行微指令1 取微指令2 执行微指令2 微周期1 微周期2 置CSAR 启动CS 访控存时间 微命令执行 置执行结果
(2) 并行方式 取微指令 执行微指令 置CSAR 启动CS 微命令→μIR 置执行结果 控存地址寄存器 CSAR 微程序流 控制存储器 控制字段 下址 微程序流 控制部件 … 微指令寄存器 (流水线寄存器) 控存地址寄存器 控制存储器 取微指令 执行微指令 置CSAR 启动CS 微命令→μIR 置执行结果
4、毫微程序设计的基本概念 毫微程序是用以解释微程序的一种微程序。 毫微程序设计的主要目的是减少控制存储器的容量。其手段是第一级采用垂直微程序,第二级采用水平微程序。
5.4.5 微程序设计语言 转移地址 +1 CSAR-2 CSAR-1 RR 控制存储器 (毫微程序) (微程序) 垂直微指 μOP 地址 RR … +1 控制存储器 (微程序) 转移地址 垂直微指 令寄存器 水平微指令寄存器 (毫微程序) CSAR-2 微命令 5.4.5 微程序设计语言