计算机组成原理学习笔记——输入输出设备

170 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

输入输出设备

我们的输入输出设备要想和CPU通信,必须要通过接口。而这个接口有的在主板上,有的在输入输出设备里边。

image.jpeg

CPU如何控制I/O设备

  1. CPU向I/O设备写入数据时,会把数据存放在接口的数据寄存器中。

  2. CPU向I/O设备发送命令,会把命令存在命令寄存器。然后控制电路把状态寄存器里面的状态设置为no-ready后,再将命令解码,去执行命令所对应的实际的操作。

  3. 状态寄存器就是告诉我们的CPU,I/O设备是否在工作状态。在工作状态的话,是不接受CPU发过来的数据或者命令。直到之前的工作完成,状态变为ready时,才能接受接下来的数据和命令。

CPU如何与I/O设备通信

在简单指令集中,并没有专门和I/O设备通信的指令。CPU要想和I_O设备通信,会通过内存映射I/O这种技术来实现。

这种技术就是说,我们把I/O设备的各个寄存器,I/O设备内部的内存地址,都映射到主内存中。CPU要想和这些I/O设备通信,就往这些地址发送数据(包括地址信息和数据信息)。

同时,I/O设备会监控地址总线。把CPU给自己发送的数据存到对应的寄存器和自己的内存中。这里的数据包括命令、状态查询、数据信息。

image.jpeg


除了这种内存映射的方式和I/O设备通信之外,在复杂指令集中,是可以通过特定的指令,来支持端口映射I/O。

image.jpeg

可以看到这张显卡,既有内存映射I/O(Memory Range)也有端口映射(I/O Range)。