接口可以看作是两个部件之间交接的部分。硬件与硬件之间有接口,硬件与软件之间有接口,软件与软件之间也有接口。
这里我们所说的I/O接口,一边连接着主机,一边连接着外设。

I/O接口的功能

I/O接口的基本结构

CPU和外设之间通常传递的信息:数据、状态、控制。
组成:寄存器组、控制逻辑电路、主机与接口和接口与I/O设备之间的信号联接线、数据地址线、控制状态信号线。
其实中间红框内的部分就是对应到电路板上的插口,又分为内部接口和外部接口两种。
内部接口:与系统总线相连,实质上是与内存、CPU相连。数据的传输方式也只能是并行传输。
外部接口:通过接口电缆与外设相连,外部接口的数据传输可能是串行方式,因此I/O接口需具有串并转换功能。

接口与端口

接口就是I/O接口,端口实质接口电路中可以被CPU访问的寄存器。

I/O端口及其编址

为了便于CPU对I/O设备进行寻址和选择,必须给众多的I/O设备进行编址,也就是说给每一台设备规定一些地址码,称之为设备号或端口地址。
统一编址:与存储器共用地址,用访存指令访问I/O设备。
独立编址:单独使用一套地址,有专门的I/O指令。

接口类型

I/O设备数据传送控制方式

1.程序直接控制传送方式

又叫查询方式。是完全通过程序来控制主机和外围设备之间的信息传送。
通常的办法是在用户的程序中安排一段由输入输出指令和其他指令所组成的程序段直接控制外围设备的工作。也就是说CPU要不断地查询外围设备的工作状态,一旦外围设备“准备好”或“不忙”,即可进行数据的传送。
该方法是主机与外设之间进行数据交换的最简单、最基本的控制方法。
无条件传送:只有在外设总处于准备好状态
程序查询方式
优点:
较好协调主机与外设之间的时间差异,所用硬件少。
缺点:
主机与外设只能串行工作,主机一个时间段只能与一个外设进行通讯,CPU效率低。

程序查询方式接口结构:

一次只能查询一个字的原因?在这种传送方式下,外部数据是要存到CPU寄存器中的,故需要一个字。
我们通过一个例题来定量分析一下这种方式下CPU占用情况:
可以发现用程序查询的方式来管理高速设备是不科学的,该方式传单位是字,而高速方式产生一个字的时间是非常短的,在使用程序查询方式的时候,没查询这样一个字,CPU都要执行一次程序查询方式,并且这里仅仅考虑了查询的那部分时间,而数据处理的时间还没有考虑,若是考虑进去那就更不能满足高速设备的管理要求了。

2.程序中断传送方式

具体介绍:
当外围设备完成数据传送的准备后,便主动向CPU发出“中断请求” 信号。若CPU允许中断,则在一条指令执行完后,响应中断请求,转去执行中断服务子程序,完成数据传送,通常传送一个字或一个字节。传送完后继续执行原程序。
中断请求方式在一定程度上实现了CPU和外围设备的并行工作。
若在某一时刻有几台设备发出中断请求,CPU可根据预先定好的优先级,去处理几台外设的数据传送。
但是对于工作频率较高的外设,如磁盘,数据交换通常是成批的,若采用中断方式,则不合适。一般采用DMA方式。
优点:避免频繁查询,适合随机出现的服务和中低速外设使用。
缺点:成批数据交换时,中断影响传送效率,一次传送一个字符,中断处理时间大于传送数据时间。需要一定的硬件电路。

3、直接存储器访问方式

具体介绍:
1. DMA方式的引入
前两种方式以CPU为中心,占用CPU时间。DMA方式以内存为中心。
2. 基本工作原理
在外围设备和主存之间开辟直接的数据通路。在正常工作时,所有的工作周期均用于执行CPU的程序。当外围设备完成I/O的准备工作后,占用CPU的工作周期,和主存直接交换数据。完成后,CPU又继续控制总线,执行原程序。
完成这项工作的是系统中增设的DMA控制器。
DMA控制器在进行DMA传送之前,由CPU将每次传送的主存地址、数据的个数等参数传送给DMA控制器,然后具体的数据传送就由DMA控制器实现,无须CPU的参与。
缺点:
CPU需要在DMA传送的开始和结束时参与;
每个需要进行DMA传送的外设都要对应一个DMA控制器,且DMA控制器是由硬件实现的,不易修改。于是在大型计算机系统中通常设置专门的硬件装置—通道。
三种方式的 CPU 工作效率比较:
观察上图,我们其实可以发现,程序中断方式和DMA方式主要是针对CPU参与的两个过程:I/O准备和数据传送来做出改进。
中断方式是对I/O准备做出改进,它不需要CPU不断查询来确认外设状态,而是引入了中断机制,在I/O准备好后,通过中断请求通知CPU,而在外设准备阶段,CPU是可以执行原来的主程序,也就是说CPU只参与数据传送阶段。而DMA方式更是将数据传送阶段也给省了,将数据传送的工作交给DMA控制器,使得CPU更加专注于主程序的执行。

4、I/O通道控制方式

说通道是一种弱鸡版的CPU是因为,与CPU相比,通道可以执行的指令很单一,并且通道程序是放在主机内存中的,也就是说通道与CPU共享内存。
I/O通道具有少数专用的指令系统,能实现指令所控制的操作,管辖其相应的设备控制器,所以I/O通道已具备简单处理机的功能。但它仅仅是面向外围设备的控制和数据的传送,其指令系统也仅仅是几条简单的与I/O操作有关的命令。
I/O通道要在CPU的I/O指令指挥下启动、停止或改变工作状态。因此,l/O通道不是一个完全独立的处理机,它只是从属于CPU的一个专用I/O处理器。它的进一步发展是引入专用的输入输出处理机。
通道方式的出现进一步提高了CPU的效率。但需更多的硬件电路。

5、 输入输出处理机(IOP)方式

有单独的存储器和独立的运算部件,可访问系统的内部存储器
除数据传输外,还应有以下功能:能处理传送过程中出错及异常情况,数据格式翻译,数据块校验。
IOP方式是通道方式的进一步的发展。它们大多应用在中、大型计算机中。