本文主要是介绍408计组之微程序控制器设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
基本思想:每条指令的执行过程用一个微程序来表示,每个微程序由若干微指令组成,每条微指令相当于有限状态机中的一个状态
存储:所有指令对应的微程序都存放在一个ROM中,这个ROM称为控制存储器(控存)
执行:通常一个周期执行一条微指令
微程序控制器的结构
微操作:一条指令的功能通过一系列基本操作来完成
微命令:每个微操作在响应的控制信号的控制下执行,这些控制信号称为微命令
微程序(控制字CW):一个微指令序列,对应一条机器指令的功能
下图为结构图:
过程:指令装入IR——起始和转移地址发生器根据指令生成微程序入口地址,放入PC——此后每来一个时钟,PC加一。
注意:生成的微命令送到数据通路中;微指令中的“转移控制”部分被送到转移地址发生器,根据条件码及相应微命令产生新的微指令抵制放入PC;取指令过程是公共操作,可以用一个专门的取指令微程序实现。
微命令编码
直接控制法(直接编码法)
一位对应一个微命令,微操作码的长度于所有微命令的个数相当
优点:并行控制能力强,控制电路简单速度快
缺点:编码空间利用率低
字段直接编码法
相容微操作:数据通路中能同时进行的微操作,对应相容微指令
互斥微操作:不能同时进行的微操作,对应互斥微操作
基本思想:将微指令分为若干字段,每个字段包含若干微指令,互斥微操作组合在同一字段,相容微操作组合在不同字段,对每一字段内的微操作进行编码。一条微指令中最多可同时发出的微操作数就是微命令字段的个数(因为可同时发出的微指令是相容微指令)。
注意:每个小段还要留出一个状态,表示本字段不发出任何微指令,例如3位的字段长度,最多只能表示7个互斥的微命令,通常000表示不操作。
某计算机的控制器采用微程序控制方式,为指令中的操作控制字段采用字段直接编码法,共有33个微命令,构成5个互斥类,分别包含7、3、12、5和6个微命令,则控制字段至少有:15位
第1个互斥类包含7个微命令,则23=8,比7大,用3位编码,同理第2个用2位编码,第3个用4位编码,第4个用3位编码,第5个用3位编码,3+2+4+3+3=15位
字段间接编码
一个字段某些微命令需由另一个字段中的某些微命令解释,缩短指令字长,但削弱微指令并行控制能力
指令地址的确定
计数器法
用专门的微程序计数器,将下条微指令地址隐含的存放在其中
顺序执行:PC+1-〉PC
转移执行:在当前微指令后添加一条转移微指令,并在微指令中添加专门的转移控制字段。通常用ROM实现。
断定法(下地址法)
在微指令中明确指定下一条微指令地址,相当于每条都是转移微指令,用微指令地址寄存器来存放当前微地址
优点:加快指令执行速度,消除了专门的转移微指令
缺点:增加微指令长度,影响控制存储器的有效利用
某计算机采用微程序控制器,共有32条指令,公共的取指令微程序包含2条微指令,各指令对应的微程序平均由4条微指令组成,采用断定法(下地址字段法)确定下条微指令地址,则微指令中下地址字段的位数至少是8
32条指令,而每条指令由4条微指令组成,则一共有32*4=128条微指令,又包含两条公共的取指令程序的微指令,则一共包含的微指令数位128+2=130,130大于128小于256,故需要8位来表示。
这篇关于408计组之微程序控制器设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!