已知某机采用微程序控制方式,控存容量为512×48位。微程序可在整个控存中实现转務,控制库转移的条件共4个,微指令采用水平型格式,后继微指令地址采用断定方式。请问:微指令的三个字段分别应为多少位?
因为容量为512*48位,所以下址字段需用9位,控制微程序转移的条件有4个,所以判别测试字段需4位或(3位译码),因此操作控制字段的位数48-9-4=35位(或 48-9-3=36位)
根据题目的描述,我们分析如下:
- 微指令格式
一个微指令的长度为 48 位,微指令采用水平型格式,可以分为三个字段:
• 地址字段(用于确定下一条微指令的地址)
• 判别测试字段(用于选择控制条件)
• 操作控制字段(用于控制具体的操作信号)
- 地址字段
控存容量为 512 \times 48 位
,其中 512 是控存中的微指令条数。
地址字段需要表示 512 个不同的地址,因此地址字段的位数为:
\text{地址字段位数} = \log_2(512) = 9 \text{位}
- 判别测试字段
根据题目描述,控制库转移的条件有 4 个,因此需要 4 个可能的条件输入。
使用判别测试字段来选择这些条件,常见有两种编码方式:
• 直接编码:每个条件对应一个唯一的二进制码字,需要 4 位表示。
• 译码方式:如果使用 3 位,则可以通过 2^3 = 8
个码字来唯一选择 4 个条件。
因此,判别测试字段可能是 3 位 或 4 位。
- 操作控制字段
剩下的位数用于操作控制字段,即控制各种具体的操作信号。
操作控制字段的位数可以通过以下公式计算:
\text{操作控制字段位数} = 48 - \text{地址字段位数} - \text{判别测试字段位数}
如果判别测试字段为 4 位:
\text{操作控制字段位数} = 48 - 9 - 4 = 35 \text{位}
如果判别测试字段为 3 位:
\text{操作控制字段位数} = 48 - 9 - 3 = 36 \text{位}
- 总结
微指令的三个字段位数可能有以下两种情况:
• 地址字段:9 位
• 判别测试字段:4 位(直接编码)
• 操作控制字段:35 位
或
• 地址字段:9 位
• 判别测试字段:3 位(译码方式)
• 操作控制字段:36 位
本文作者为wzzyhg,转载请注明。