某8位模型机采用微程序控制器,结构如图1所示。其中MEM为主存,R0~R3是通用寄存器。各部件的控制信号均已标出,控制信号的命名准则是:‘→’符号前的是数据发送方部件,‘→’符号后的是数据接收方部件, 并且控制信号中的B表示总线;J1#控制指令译码,其他读写信号具有普通意义。该模型机的控制存储器包含控制字段、判别测试字段和下址字段。 (1)图1中有27个微操作控制信号,其中J1#~J5#是用于转移的判别测试条件。在微指令中,控制字段(22位)采用直接控制法,判别测试字段采用直接编码法产生J1#~J5#信号,下址字段8位,则该模型机的控存有多少单元,每条微指令有多少位,控存容量是多少字节 。
时间: 2024-03-08 16:44:59 浏览: 16
该模型机控制存储器包含控制字段、判别测试字段和下址字段,其中控制字段22位,判别测试字段5位,下址字段8位。因此,每条微指令的长度为35位。
判别测试条件采用直接编码法,共有5个条件,因此需要5个判别测试字段,每个字段可以编码2个条件,因此每个判别测试字段需要2位,总共需要10位。
因此,每条微指令的长度为35位,控制存储器需要存储35位微指令,其中22位为控制字段,10位为判别测试字段,8位为下址字段。控存容量为:
$2^{8} \times 35\text{位} = 2^{11}\text{字节} = 2\text{kB}$
因此,该模型机的控存有2048个单元,每条微指令有35位,控存容量是2KB。
相关问题
已知某机采用微程序控制方式,控存容量为512×48位。微程序可在整个控存中实现转移。控制微程序转移的条件共4个,微指令采用水平型格式,后继微指令地址采用断定方式。请问∶ (1)微指令的三个字段分别应为多少位? (2)画出对应这种微指令格式的微程序控制器逻辑框图。并对所画框图做简要说明。
(1) 微指令的三个字段分别为操作码字段、地址字段和控制字段。由于微指令采用水平型格式,每个字段应该占用相同的位数,因此每个字段应该占用48÷3=16位。
(2) 微程序控制器逻辑框图如下所示:
```
+---------------------+
| |
| 微指令寄存器(MAR) |
| |
+----------+----------+
|
|
v
+----------+----------+
| |
| 微程序存储器(MEM) |
| |
+----------+----------+
|
|
v
+----------+----------+
| |
| 操作码寄存器 |
| |
+----------+----------+
|
|
v
+---------------------+
| |
| 控制单元 |
| |
+---------------------+
|
|
v
+---------------------+
| |
| 数据总线 |
| |
+---------------------+
```
微程序控制器包括微指令寄存器(MAR)、微程序存储器(MEM)、操作码寄存器、控制单元和数据总线。微指令从微程序存储器中读取,并通过MAR传递给控制单元,控制单元解码操作码并控制数据总线的输出。控制单元还可以通过断定方式将后继微指令地址发送回微程序存储器。
编制程序,将AL寄存器中的第i,i+1位写入内存MEM单元的第i,i+1,其他位的内容不变。假设i存放在内存COUNT单元。
1. 读取内存COUNT单元中的值i。
2. 将AL寄存器中的第i位和第i+1位的值分别存储到两个变量中。
3. 读取内存MEM单元中的值。
4. 将第i位和第i+1位清零。
5. 将两个变量中的值分别写入到第i位和第i+1位。
6. 将修改后的值写入到内存MEM单元中。
以下是示例代码:
```
LOAD COUNT ; 读取i的值
STORE i
LOAD AL ; 将AL寄存器的值存储到变量中
AND 1 ; 取出第i位的值
STORE bit_i
LOAD AL
LSR 1 ; 将AL寄存器向右移动一位
AND 1 ; 取出第i+1位的值
STORE bit_i1
LOAD MEM ; 读取内存MEM单元的值
AND 1111111111111100b ; 将第i位和第i+1位清零
OR bit_i ; 将第i位的值写入到内存单元中
LSL 1 ; 将变量中的值向左移动一位
OR bit_i1 ; 将第i+1位的值写入到内存单元中
STORE MEM ; 将修改后的值写入到内存单元中
```