IO接口

2022.08.22

IO接口的功能

image-20220822140354208

IO接口的基本结构

I/O 接口是由半导体介质构成的逻辑电路,它作为一个转换器,保证外部设备用计算机系统特性所要求的形式发送或接收信息。为了与 CPU 交互信息的方便,在接口内部一般要设置一些可以被 CPU 直接访问的寄存器。这些寄存器称为端口(Port)

为便于 CPU 访问端口,也需对端口安排地址。通常有两种不同的编址方式。

image-20220822154339173

IO操作的一般过程

由于接口与 CPU 的速度大致相当,仅从 CPU 读写接口内寄存器的角度看,CPU 读写端口的方式与 CPU 读写内存单元是相似的。但是,内存单元的功能是存储数据,而端口的功能则是辅助 CPU 与外设交互,故端口中的数据并不是静态的,而是动态变化的。CPU 写入控制口的信息要由接口内的逻辑电路转换成相关控制信号发送给外设,外设的状态信息则由接口的逻辑电路转换成状态字存入状态口供 CPU 读取。CPU 写入输出数据口的信息要由外设取走。外设发送给 CPU 的数据则通过输入数据口缓冲。外设状态信息可能是时刻变化的,给外设的控制命令也往往会不断改变,CPU 与外设交互数据一般情况下也是成批连续进行的。因此,对端口的连续访问必须确保信息的有效性。

首先我们看看输入/输出设备同 CPU 交换数据的一般过程。 如果是输入过程,一般需要以下三个步骤: (1)CPU 把一个地址值放在地址总线上,选择某一输入设备; (2)CPU 等候输入设备的数据成为有效;

(3)CPU 从数据总线读入数据,并放在一个相应的寄存器中。 如果是输出过程,一般需要以下三个步骤: (1)CPU 把一个地址值放在地址总线上,选择一个输出设备; (2)CPU 把数据放在数据总线上; (3)输出设备认为数据有效,从而把数据取走。 从上述输入/输出过程看出,问题的关键就在于:究竟什么时候数据才成为有效? 事实

上,各种外围设备的数据传输速率相差甚大。如果把高速工作的处理器同按照不同速度工 作的外围设备相连接,那么首先遇到的一个问题,就是如何保证处理器与外围设备在时间 上同步? 这就是我们要讨论的外围设备的定时问题。很显然,由于输入/输出设备本身的速 度差异很大,因此,对于不同速度的外围设备,需要有不同的定时方式。

一个计算机系统,即使 CPU 有极高的速度,如果忽略 I/O 速度的提升,对整个系统的 性能仍然影响极大。下面通过一个例子说明 I/O 对系统性能的影响。

例题

端口的编址

IO接口功能与结构

IO操作的一般过程