目录
一、I/O设备与主机信息传送的控制方式
1. 程序查询方式
完全通过程序来控制主机和外围设备之间的信息传送。
通常的办法是在用户的程序中安排一段由输入输出指令和其他指令所组成的程序段直接控制外围设备的工作。也就是说CPU要不断地查询外围设备的工作状态,一旦外围设备“准备好”或“不忙”,即可进行数据的传送。该方法是主机与外设之间进行数据交换的最简单、最基本的控制方法。
优点:较好协调主机与外设之间的时间差异,所用硬件少。
缺点:主机与外设只能串行工作,主机一个时间段只能与一个外设进行通讯,CPU效率低。
2. 程序中断方式
当外围设备完成数据传送的准备后,便主动向CPU发出“中断请求” 信号。若CPU允许中断,则在一条指令执行完后,响应中断请求,转去执行中断服务子程序,完成数据传送,通常传送一个字或一个字节。传送完后继续执行原程序。
中断请求方式在一定程度上实现了CPU和外围设备的并行工作。若在某一时刻有几台设备发出中断请求,CPU可根据预先定好的优先级,去处理几台外设的数据传送。
但是对于工作频率较高的外设,如磁盘,数据交换通常是成批的,若采用中断方式,则不合适。一般采用DMA方式。
优点:避免频繁查询,适合随机出现的服务和中低速外设使用。
缺点:成批数据交换时,中断影响传送效率,一次传送一个字符,中断处理时间大于传送数据时间。需要一定的硬件电路。
3. DMA 方式
DMA方式,Direct Memory Access,也称为成组数据传送方式,有时也称为直接内存操作。DMA方式在数据传送过程中,没有保存现场、恢复现场之类的工作。
由于CPU根本不参加传送操作,因此就省去了CPU取指令、取数、送数等操作。内存地址修改、传送字 个数的计数等等,也不是由软件实现,而是用硬件线路直接实现的。所以DMA方式能满足高速I/O设备的要求,也有利于CPU效率的发挥。
DMA方式的引入
前两种方式以CPU为中心,占用CPU时间。DMA方式以内存为中心。下图是DMA 和程序中断两种方式的数据通路
基本工作原理
- 一个设备接口试图通过总线直接向另一个设备发送数据(一般是大批量的数据),它会先向CPU发送DMA请求信号。
- 外设通过DMA的一种专门接口电路――DMA控制器(DMAC),向CPU提出接管总线控制权的总线请求,CPU收到该信号后,在当前的总线周期结束后,会按DMA信号的优先级和提出DMA请求的先后顺序响应DMA信号。CPU对某个设备接口响应DMA请求时,会让出总线控制权。
- 于是在DMA控制器的管理下,外设和存储器直接进行数据交换,而不需CPU干预。
- 数据传送完毕后,设备接口会向CPU发送DMA结束信号,交还总线控制权。
DMA方式的主要优点是速度快。DMA方式主要适用于一些高速的I/O设备。这些设备传输字节或字的速度非常快。对于这类高速I/O设备,如果用输入输出指令或采用中断的方法来传输字节信息,会大量占用CPU的时间,同时也容易造成数据的丢失。而DMA方式能使I/O设备直接和存储器进行成批数据的快速传送。
缺点:
CPU需要在DMA传送的开始和结束时参与;
每个需要进行DMA传送的外设都要对应一个DMA控制器,且DMA控制器是由硬件实现的,不易修改。于是在大型计算机系统中通常设置专门的硬件装置—通道。
DMA方式的数据传送过程
二、I/O接口功能和组成
I/O 接口,或者是 I/O 控制器
,是主机和外设之间地交接界面
,通过接口可以实现主机和外设之间地信息交换
。主机和外设具有各自工作特点,它们在信息形式和工作速度具有很大地差异,接口就是为了解决这些差异而设置的。
I/O 接 口的功能
实现主机和外设的通信联络控制
。主要是时序配合、工作速度上的协调,确保信息的正确传输,从而保证计算机系统统一、协调地工作。进行地址译码和设备选择
。接口负责通过 CPU 送来地外设地址进行译码产生设备选择信息,从而确定目标外设。实现数据缓冲
。主要是针对 CPU 速度与外设的相差很大,因此接口必须设置数据缓冲寄存器进行暂存数据,避免 CPU 送来的大量数据而外设处理不过来导致外设奔溃,或者造成数据的丢失。信号格式转换
。主要是对电平、数据格式等进行转换,接口需要提供计算机和外设之间的信号格式的转换功能,如电平转换、并/串或串/并转换、模/数或数/模转换等。传送控制命令和状态信息
。控制命令指接口根据 CPU 的请求对指定的外设进行开启、关闭等控制;状态信息就是指接口将指定外设“准备好”等表示外设状态的信息反馈给 CPU,以及 CPU 提出中断时发送给指定外设的相关响应信号。
总线连接方式的 I/O 接口电路
电路构成简图:
I/O 端口及编址
(1)I/O 端口
指接口电路中可被 CPU 直接访问的寄存器
,主要有数据端口、状态端口和控制端口
,若干端口加上相应的控制逻辑电路组成接口
;一般 CPU
只能对数据端口执行读写操作
、状态端口只能执行读操作
、控制端口只能执行写操作
。
(2)I/O 端口编址
- I/O 端口的编址方式主要有:
存储器统一编址和独立编址
。
- 又称为
存储器映射方式
,指把 I/O 端口当作存储器的单元进行地址分配
,这种方式 CPU不需要设置专门的 I/O 指令
,用统一的访存指令就可以访问 I/O 端口。 - 优点:
不需要专门的 I/O 指令,CPU 访问 I/O 端口灵活、方便,I/O 端口有较大的编址空间
。 - 缺点:
占用存储器地址,使内容容量变小,利用存储器编址的 I/O 设备进行数据输入输出等操作速度较慢
。
- 又称为
I/O 映射方式
,单独对 I/O 端口进行编址
,与主存地址空间是两个独立的地址空间,需要设置专门的 I/O 指令来操作 I/O 端口
。 - 优点:
使用专门的 I/O 指令,程序编制清晰,易于理解
。 - 缺点:
I/O 指令少,一般只能对端口进行传送操作,尤其需要 CPU 提供存储器读/写、I/O 设备读/写两套控制信号,增加了控制的复杂性
。