关于外部测试字段解释冲突
@(组成原理)
看版本1的解释:某机器共有52个微操作控制信号。构成5个互斥类微命令组,各组分别包含5,8,2,15,22个微命令。已知可以判定的外部条件有2个,微命令字长是28位。
1)按照水平型微指令格式设计微命令,要求微指令的下地址字段直接给出后续微指令地址。
2)指出控制存储器的容量。
分析:微命令分组这个没有问题,注意留出一个不发命令的状态即可,所以是:3,4,2,4,5位,共18位。条件测试字段的长度取决于条件转移指令可判定的外部条件个数。如果外部条件有2个,考虑无条件转移的情况,因此需要加1个状态,于是得到2位用于外部条件。这样下地址字段共8位。
所以控制存储器的容量是: 28×28bits
另一版本的题目:
某机器采用微程序控制方式。微指令字长24位,采用水平型编码控制的微指令格式,断定方式。共有微命令30个。构成4个互斥类。包含5,8,14,3个微命令。外部条件共3个。控制存储器的容量应该是?
分析:微命令都没有任何异议,即:3,4,4,2位,共13位。
问题在于外部条件,按照上面说的3个加上一个无条件,则共4个,那么两位即可。但是这里的解释是:共3个判定条件,进行组合可以得到
23=8
个,因次,实际是3位用于存放外部条件。如果按照这种考虑,自然无条件转移是包含在内的,没有问题。但两种说法各执一端。或者可判定是个更强的约束?没有读出来。
存疑。
update:个人倾向于认为多少个外部测试条件,就需要多少位。测试条件是可以互相组合的。比如PSW的程序状态字设计,就是通过硬件组合实现的多种状态。而第一种,如果用多少个外部测试条件就需要多少位来理解,也是需要两位。所以我猜测作者可能是为了凑到2,想起来 22=4 这样。这种胡乱拼凑解释在计算机相关的问题解释中,太常见了 :)