- I/O 接口,或者是
I/O 控制器
,是主机和外设之间地交接界面
,通过接口可以实现主机和外设之间地信息交换
。主机和外设具有各自工作特点,它们在信息形式和工作速度具有很大地差异,接口就是为了解决这些差异而设置的。
1、功能
- I/O 接口的主要功能如下:
- 1)
实现主机和外设的通信联络控制
。主要是时序配合、工作速度上的协调,确保信息的正确传输,从而保证计算机系统统一、协调地工作。 - 2)
进行地址译码和设备选择
。接口负责通过 CPU 送来地外设地址进行译码产生设备选择信息,从而确定目标外设。 - 3)
实现数据缓冲
。主要是针对 CPU 速度与外设的相差很大,因此接口必须设置数据缓冲寄存器进行暂存数据,避免 CPU 送来的大量数据而外设处理不过来导致外设奔溃,或者造成数据的丢失。 - 4)
信号格式转换
。主要是对电平、数据格式等进行转换,接口需要提供计算机和外设之间的信号格式的转换功能,如电平转换、并/串或串/并转换、模/数或数/模转换等。 - 5)
传送控制命令和状态信息
。控制命令指接口根据 CPU 的请求对指定的外设进行开启、关闭等控制;状态信息就是指接口将指定外设“准备好”等表示外设状态的信息反馈给 CPU,以及 CPU 提出中断时发送给指定外设的相关响应信号。
2、结构
- I/O 接口的基本结构如上图,
数据线
主要传输数据
和CPU 对外设的控制命令
,接口和设备的状态信息记录在状态寄存器中,状态寄存器和控制寄存器在传送方向上是相反的。 - 接口的
地址线
用于给出要访问的 I/O 接口中的寄存器的地址
,和读/写控制命令一起送到I/O接口的控制逻辑部件,读/写信号用于确定选定的目标接口中的寄存器是读寄存器还是写寄存器
,此外控制线还可以传送一些仲裁信号和握手信号。 - I/O 控制逻辑主要完成控制寄存器中的
命令字的译码
,并将译码后的控制信号
通过外设界面控制逻辑送到外设
,并将数据
缓冲寄存器中数据送到外设
或从外设
接收数据到数据缓冲寄存器
,以及收集外设状态
到状态寄存器
中。 - 通过
I/O 指令
实现对数据缓冲寄存器、状态寄存器的访问操控
,I/O 指令只能在操作系统内核的底层 I/O 软件中使用,是一种特权指令
。
3、类型
- I/O 接口可以分为如下几种类型:
- 1)
按数据传送方式
,分为并行接口和串行接口
,并行接口一次传输一个字节或一个字的全部位,串行接口一次传送一位。这里指的是外设和接口一侧的传输方式
,主机和接口一侧的数据总是并行传输的。 - 2)
按主机访问 I/O 接口的控制方式,分为程序查询接口、中断接口和DMA接口
等。 - 3)
按功能选择的灵活性,分为可编程接口和不可编程接口
。
4、I/O 端口及编址
1)I/O 端口
- 指
接口电路中可被 CPU 直接访问的寄存器
,主要有数据端口、状态端口和控制端口
,若干端口加上相应的控制逻辑电路组成接口
;一般CPU
只能对数据端口执行读写操作
、状态端口只能执行读操作
、控制端口只能执行写操作
。
2)I/O 端口编址
- I/O 端口的编址方式主要有:
存储器统一编址和独立编址
。
1> 统一编址
- 又称为
存储器映射方式
,指把 I/O 端口当作存储器的单元进行地址分配
,这种方式 CPU不需要设置专门的 I/O 指令
,用统一的访存指令就可以访问 I/O 端口。 - 优点:
不需要专门的 I/O 指令,CPU 访问 I/O 端口灵活、方便,I/O 端口有较大的编址空间
。 - 缺点:
占用存储器地址,使内容容量变小,利用存储器编址的 I/O 设备进行数据输入输出等操作速度较慢
。
2>独立编址
- 又称为
I/O 映射方式
,单独对 I/O 端口进行编址
,与主存地址空间是两个独立的地址空间,需要设置专门的 I/O 指令来操作 I/O 端口
。 - 优点:
使用专门的 I/O 指令,程序编制清晰,易于理解
。 - 缺点:
I/O 指令少,一般只能对端口进行传送操作,尤其需要 CPU 提供存储器读/写、I/O 设备读/写两套控制信号,增加了控制的复杂性
。