*处理器——微程序

一、小引
1、微程序控制基本思想
把操作控制信号编制成微指令,存放到只读存储器(控制存储器)里,运行时从控存中取出这些微指令,从而产生所需的各种操作控制信号
2、技术
微程序设计技术是用软件方法来设计硬件的技术

二、微程序控制原理
1、微命令和微操作
(1)、微命令
控制部件通过控制线向执行部件发出的各种控制命令
(2)、微操作
执行部件接收微命令后进行的操作
微操作在执行部件中是最小、最基本的操作
(3)、微命令和微操作是一一对应的
①、微命令是微操作的控制信号,微操作是微命令的操作过程
②、微操作:控制门电位信号的变化、寄存器输入端的控制、ALU的基本执行过程等
(4)、微操作分为相容和互斥两种
①、相容
能够同时或在同一个CPU周期并形执行的微操作
②、互斥
不能同时或不能在同一个CPU周期内并行执行的微操作
③、例
*处理器——微程序
(+、-、M)、(4、6、8)、(5、7、9)在同一个CPU周期中只能选择一个,是互斥的
(1、2、3)可以同时进行,是相容的;(4、6、8)和(5、7、9)彼此之间的操作也是相容的
2、微指令和微程序
(1)、微指令
在一个CPU周期中,一组实现一定操作功能的微命令的组合
①、在同一CPU周期内并行或并发执行的微命令的组合
②、微指令存储在控制器的控制存储器中
③、微地址:存放微指令的控制存储器的单元地址
(2)、微程序
一系列微指令的有序集合
*处理器——微程序
(3)、微指令格式
例:
*处理器——微程序
①、控制操作
又称微操作码,用以发出控制信号
圆点表示一个微命令
某一位为1表示发出微命令,为0表示不发出
微命令信号的时间控制需要和T脉冲做与操作
*处理器——微程序
②、顺序控制
用以决定产生下一条微指令的地址
P1P2:判断测试标志
P1P2均为0:使用直接地址
P1P2中有1:要进行P1或P2测试,根据测试结果直接修改微地址
后四位:下一条微指令的微地址
3、微程序控制原理框图
主要由控制存储器、微指令寄存器、地址转移逻辑组成
*处理器——微程序
(1)、控制存储器CM
①、一种只读存储器,存放指令系统的微程序
②、CM的字长就是微指令字的长度,存储容量取决于微程序的数量
③、微指令周期:读出一条微指令并执行该微指令的时间总和
(2)、微指令寄存器μIR
①、存放由控制存储器读出的一条微指令
②、由微地址寄存器μAR和微命令寄存器组成
微地址寄存器:决定将要访问的下一条微指令的地址
微命令寄存器:保存一条微指令的操作控制字段和判别测试字段的信息
(3)、地址转移逻辑
承担自动完成修改微地址的任务
一般情况:微指令直接给出下一条微指令的地址(微地址字段)
程序出现分支:通过-判别测试字段P和执行部件的反馈信息,形成新的微地址
4、微程序控制器的工作过程
(1)、执行取址操作
由一段取址微程序来完成,从主存中取出机器指令存入IR
(2)、IR中OP字段通过地址转移逻辑产生出该机器指令所对应的微程序的入口地址,并送入微地址寄存器
(3)、从CM中逐条取出微指令并执行,每条微指令都能自动产生下一条微指令的地址
(4)、微程序的最后一条微指令执行完毕后,其下一条微指令地址又回到取址微程序的入口地址,从而继续第(1)步

三、微程序举例
*处理器——微程序
1、目标
完成BCD码加法运算,代码:b=b+a
2、汇编
指令:ADDB R2 R1
共耗费3-4个CPU周期
①、取址1个CPU周期
②、执行2-3个CPU周期
3、微程序流程图
*处理器——微程序
4、第一条微指令:取址
微命令:LDIR、PC+1、LDAR
P1:译码测试
*处理器——微程序
5、第二条微指令:R1+R2→R2
微命令:R1→X、R2→Y、+、LDR2
*处理器——微程序

6、第三条微指令:R2+R3→R2
微命令:R2→X、R3→Y、+、LDR2
P2:判断测试
*处理器——微程序
7、第四条微指令:R2-R3→R2
微命令:R2→X、R3→Y、-、LDR2
*处理器——微程序
8、微程序存放示意图
*处理器——微程序
9、机器指令与微指令关系
①、一条机器指令对应一个微程序
②、一个微程序由若干条微指令组成
③、一个微指令包含多个微命令
④、机器指令、程序、地址与内存储器有关
⑤、微指令、微程序、微地址和控制存储器有关
⑥、每一个CPU周期对应一条微指令

四、微程序设计技术
1、设计微指令目标
①、有利于缩短微指令的长度
②、有利于减小控制存储器的容量
③、有利于提高微程序的执行速度
④、有利于对微指令的修改
⑤、有利于提高微程序设计的灵活性
2、微命令编码
对微指令中的操作控制字段采用的表示方法
(1)、直接表示法
操作控制字段中的每一位表示一个微命令
*处理器——微程序
优点:结构简单、并行性强、操作速度快
缺点:微指令字太长,导致CM容量较大
微命令为N个,则操作控制字段就要有N位;另外,在N个微命令中,有许多是互斥的,不允许并行操作,使信息的利用率下降
(2)、编码表示法
把一组相斥的微命令组成一个小组,然后通过小组译码器对每一个小组信号进行译码,译码输出作为操作控制信号
*处理器——微程序
优点:用较少的二进制信息位表示较多的微命令信号,使微命令指令字缩短
缺点:增加了译码电路,使微指令的执行速度减慢
(3)、混合编码法
直接表示法与字段编码法混合使用,以便能综合考虑指令字长、灵活性、执行微程序速度等方面的要求
3、微地址的形成方法
(1)、计算器方式
①、顺序执行时
后继微地址=当前微地址+增量
②、非顺序执行(分支)时
通过转移方式,使现行微指令执行后,转去执行指定后继微地址的下一条微指令
③、特点
微指令的顺序控制字段较短,微地址产生机构简单
多路并行转移功能较弱,速度较慢,灵活性较差
(2)、多路转移方式
一条微指令具有多个转移分支的能力称为多路转移
①、顺序执行时
后继微地址直接由顺序控制字段给出
②、非顺序执行(分支)时
按顺序控制字段的"判别方式"标志和"状态条件"信息来产生一个微地址
通过触发器置位端
③、特点
能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度较快
转移地址逻辑需要用组合逻辑方法设计
3、微指令格式
水平型微地址、垂直型微地址
(1)、水平型微地址
一次能定义并执行多个并行操作微命令的微指令,一般格式:
*处理器——微程序
微指令的控制字段直接给出并行操作微命令
(2)、垂直型微地址
微指令中设置微操作码字段,采用微操作码编译法由微操作码规定微指令的功能
每条微指令的功能简单,因此,实现一条机器指令的微程序要比水平型微指令编写的微程序长得多
采用较长的微程序结构去换取较短的微指令结构
①、寄存器-寄存器传送型微指令
*处理器——微程序
②、运算控制型微指令
*处理器——微程序
③、访问主存微指令
*处理器——微程序
④、条件转移微指令
*处理器——微程序
(3)、比较
①、水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则较差
②、水平型微指令执行一指令的时间短,垂直型微指令执行时间长
③、由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点。垂直型微指令相反
④、水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,比较容易掌握
4、动态微程序设计
1、静态微程序设计
对应于一台计算机的机器指令只有一组微程序,这一组微程序设计好之后,一般无需改变而且也不好改变
2、动态微程序设计
采用EPROM时,可以通过改变微指令和微程序来改变机器的指令系统
微指令和微程序可以根据需要加以改变,所以可以在一台机器上实现不同类型的指令系统,这种技术又称仿真其他机器指令系统