1. 某计算机有如下部件:ALU,程序计数器PC,主存M,主存数据寄存器MDR,主存地址寄存器MAR,指令寄存器IR,通用寄存器R0-R3,暂存器C和D: 请将以上各逻辑部件组成一个数据通路,并表明数据流动方向;
时间: 2024-03-29 20:38:02 浏览: 89
好的,我来回答你的问题。
以下是这个计算机的数据通路:
```
+---------+ +-----+
| ALU | | |
+----+----+ | |
| | |
v | |
+----+----+ | |
+------+ PC | | |
| +--------+ | |
| | | |
| v | |
| +--------+ | |
| | M | | MDR |
| | | | |
| +--------+ | |
| | | |
| v | |
| +--------+ | |
| | MAR | | |
| +--------+ | |
| | | |
| v | |
| +--------+ | |
| | IR | | |
| +--------+ | |
| | | |
| v | |
| +--------+ | |
| | R0-R3 | | |
| +--------+ | |
| | | |
| v v |
+-----------+ +---------+
| C |
+---------+
| D |
+---------+
```
数据流动方向如下:
1. PC 中存储的指令地址被送到 M 中的 MAR,MAR 将地址发送给 M,M 将对应地址中的指令数据发送给 MDR。
2. MDR 中的指令数据被送到 IR,IR 中存储了当前执行的指令。
3. IR 中的指令被送到 ALU,ALU 根据指令类型执行相应的操作。
4. 如果指令需要访问主存,那么指令中的地址被送到 MAR,MAR 会将地址发送给 M,M 将对应地址中的数据发送给 MDR。
5. 如果指令需要访问寄存器,那么指令中的寄存器编号被送到 R0-R3,对应的寄存器中的数据被送到 ALU。
6. 如果指令需要修改寄存器中的数据,那么 ALU 中计算的结果会被送到对应的寄存器中。
7. 如果指令需要修改主存中的数据,那么 ALU 中计算的结果会被送到 MDR,然后 M 将 MDR 中的数据写入到指定地址中。
8. 如果指令需要修改 PC 中的值,那么 ALU 中计算的结果会被送到 PC,PC 中存储的指令地址会被更新。
希望这个回答对你有帮助。
阅读全文