(I)I/O系统基本概念
1)I/O 系统的发展
计算机主机与外界交换信息时所涉及到的硬件和软件的总称,称为 I/O 系统。I/O 系统的发展大致分为 4 个阶段:
2)I/O 系统的组成
一般来说,I/O 系统由 I/O 软件和 I/O 硬件两部分构成。
(1)I/O 软件
I/O 软件的主要任务是,将用户编制的程序(或数据)输入主机内;将运算结果输送给用户;实现输入输出系统与主机的协调等。通常采用 I/O 指令和通道指令实现 CPU 与I/O设备的信息交换。
☆ I/O 指令:当采用接口模块方式时,应用机器指令系统中的 I/O 指令及系统中的管理程序可使 I/O 设备与主机协调工作。I/O 指令反映 CPU 与 I/O 设备交换信息的各种特点,是 CPU 指令系统的一部分。
☆ 通道指令:当采用通道方式时,应用通道程序实现 I/O 设备与主机的信息交换。通道指令是对具有通道的 I/O 系统专门设置的指令,用来执行 I/O 操作,如读、写磁盘等。
(2)I/O 硬件
I/O 硬件包括 I/O 设备、I/O 接口和 I/O 总线等
(2)外部设备
输入设备:键盘,鼠标
输出设备 :显示器,打印机
外存储器:
磁表面存储器原理
磁盘存储器
磁带存储器
光盘存储器
(3)I/O接口
接口可以看做是两个系统或两个部件的交接部分
I/O接口的功能和基本结构
I/O端口及其编码(注意IO接口和IO端口的区别)
-------》 I/O接口与端口是两个不同的概念。端口是指接口电路中的一些寄存器,这些寄存器分别用来存放数据信息、控制信息和状态信息,相应的端口分别称为数据端口、控制端口和状态端口。若干个端口加上相应的控制逻辑电路才组成接口。CPU通过输入指令,从端口读入信息,通过输出指令,可将信息写入到端口中。
接口的功能:选址功能、传送命令的的功能、传送数据的功能、反应I/O设备状态的功能
接口类型:按不同方式分类有以下几种:
按数据传送方式分类:有并行接口和串行接口
按功能选择的灵活性分类:有可编程接口和不可编程接口
按通用性分类:有通用接口和专用接口
按数据传送的控制方式分类:有程序型接口和DMA型接口
当 I/O 设备通过接口与主机相连时,CPU 可以通过 I/O 接口来访问I/O 设备。
每个 I/O 接口部件都包含一组寄存器,CPU 和 I/O 设备进行数据传输时,各类信息在I/O 接口中进入不同的寄存器,一般称这些寄存器为 I/O 端口(Port),每个端口有一个端口地址。CPU 对各种寄存器的操作,实际上是通过寻址实现的,可以通过端口发送命令、读取状态和传送数据。
(1)I/O 端口地址编址方式
I/O 端口编址方式有两种:一种是 I/O 映射方式,即把 I/O 端口地址与主存单元地址分别进行独立编址;另一种是存储器映射方式,即把端口地址与主存单元地址统一编址。
☆ 独立编址:主存地址空间和 I/O 端口地址空间是相对独立的,分别单独编址。对 I/O端口的操作使用 I/O 指令(IN/OUT)实现,指令短,执行速度快,可读性强。例如,在 8086 中,其主存地址范围是从 00000H~FFFFFH 连续的 1MB,其 I/O端口的地址范围从 0000H~FFFFH,它们互相独立,互不影响。CPU 访问主存时,由主存读/写控制线控制;访问 I/O 设备时,由 I/O 读/写控制线控制,所以在指令系统中必须设置专门的 I/O 指令。当 CPU 使用 I/O指令时,其指令的地址字段直接或间接地指示出端口地址。
☆ 统一编址:I/O 端口地址和主存单元的地址是统一编址的,把 I/O 接口中的端口作为主存单元一样进行访问,不设置专门的 I/O 指令,利用功能很强的访存指令(如LOAD/STORE 或者 MOV)来访问 I/O 端口,通过地址来区分访问的是存储器还是I/O 端口。每个 I/O 设备至少有两个寄存器:控制状态寄存器和数据缓冲寄存器,I/O设备寄存器的地址码是连续的。例如,在 PDP-11 中,把主存的高 4KB 地址空间留给 I/O 设备接口寄存器和 CPU 内部寄存器使用,这 4KB 存储空间不允许用户再存放其他内容。
(2)独立编址方式的端口访问
利用专门的I/O指令实现对独立编址方式端口的访问,非通道I/O指令的一般格式如下:
其中,各字段的含义如下:
☆ 操作码用于区分访存指令和 I/O 指令。
☆ 命令码用于区分 I/O 操作的种类。
☆ 地址码则指明要访问的外设端口地址以及 CPU 寄存器号。
(4)I/O方式
共五种:程序查询方式、程序中断方式、直接存储器存取方式(DMA)、I/O通道方式、I/O处理机方式(此处只了解前三种)
-程序查询方式:由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息
☆ 优点:简单,只需要很少的硬件。
☆ 缺点:CPU 与 I/O 设备只能串行工作。由于 CPU 比 I/O 设备的速度快很多,因此CPU 大量的时间都处于空闲等待状态,CPU 效率较低,仅适用于 I/O 设备的数目不多且对 I/O 处理的实时要求不高的情况;CPU 一段时间内只能和一台 I/O 设备交换信息,无法使其他 I/O 设备同时工作;发现和处理预先无法估计的错误和异常情况时比较困难。
-程序中断方式:计算机在执行程序的过程中、当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后在返回到现行程序的中断处,继续执行原程序,这就是中断。把实现中断所需的软硬件技术统称为中断技术
设置中断的原因如下:
☆ 提高 CPU 工作效率,把 CPU 从等待查询 I/O 状态的过程中解放出来。办法是 CPU启动 I/O 后,I/O 设备开始工作,CPU继续处理原来的程序,等待 I/O 工作完成后再来请求 CPU 取走数据。这一情况可称为 CPU 与 I/O 并行工作。
☆ 多台 I/O 设备并行工作,提高 I/O 的运行速度。
☆ 解决实时处理问题。生产过程中若发生异常情况,计算机必须立即处理。
☆ 处理计算机运行过程中出现的故障,发现运算出错或机器故障,应该尽快排除故障再继续运算才有意义。
☆ 实现多机系统或网络环境下计算机间的通信要求。
☆ 提供人机联系的手段。
中断服务程序流程:
7)I/O 中断处理过程
CPU 响应中断必须满足 3 个条件,即 CPU 接收到中断请求信号(INTR=1)、CPU 允许中断(EINT=1)和一条指令执行完毕。在这些条件满足后才能进行 I/O 中断处理。
以输入设备为例说明 I/O 中断处理过程如下。
CPU响应中断的时间一定是在每条指令执行阶段的结束时刻。
DMA方式
1.什么是DMA方式
无论程序查询还是程序中断方式,主要的工作都是由 CPU 执行程序完成的,这需要花费时间,因此不能实现高速 I/O 设备与主机的信息交换。
DMA 方式是在 I/O 设备和主存储器之间开辟一条“直接数据通道”,在不需要 CPU 干预也不需要软件介入的情况下在两者之间进行的高速数据传送方式。
2.DMA方式特点
☆ 使主存与 CPU 的固定联系脱钩,主存既可被 CPU 访问,又可被 I/O 设备访问。
☆ 在数据块传送时,主存地址的确定、传送数据的计数等都用硬件电路直接实现。
☆ 主存中要开辟专用缓冲区,及时供给和接收 I/O 设备的数据。
☆ DMA 传送速度快,CPU 和 I/O设备并行工作,提高了系统的效率。
☆ DMA 在开始前和结束后要通过程序和中断方式进行预处理和后处理。
3.与中断的差异
☆ 中断方式是程序切换,需要保护和恢复现场;而 DMA 方式除了开始和结尾,其他时候不占用 CPU 的任何资源。
☆ 对中断请求的响应只能发生在每条指令执行完毕时(即指令的执行周期之后);而对 DMA 请求的响应可以发生在每个机器周期结束时(在取指周期、间址周期、执行周期之后均可)。
☆ 中断传送过程需要 CPU 的干预;而 DMA 传送过程不需要 CPU 的干预,故数据传送速率非常高,适合于高速 I/O 设备的大批数据传送。
☆ DMA 请求的优先级高于中断请求。
☆ 中断方式具有对异常事件的处理能力;而 DMA 方式仅局限于完成传送信息块的 I/O操作。
4.DMA控制器的组成
☆ 主存地址计数器。用来存放主存中要交换数据的地址,初值为主存缓冲区的首地址。当 DMA 传送数据时,每传送一个数据,地址计数器加 1,从而以增量方式给出主存中要交换的一批数据的地址,直到这批数据传送完毕为止。
☆ 传送长度计数器。用来记录传送数据块的长度,初值为传送数据块的总字数或总字节数,每传送一个字或一个字节,计数器自动减 1,当其内容为 0 时表示数据块已全部传送完毕。
☆ 数据缓冲寄存器。用来暂存每次传送的数据。输入时,数据由 I/O 设备(如磁盘)先送往数据缓冲寄存器,再通过数据总线送到主存。输出时,数据由主存通过数据总线送到数据缓冲寄存器,然后送到 I/O 设备。
☆ DMA 请求触发器。每当 I/O 设备准备好数据后给出一个控制信号,使 DMA 请求触发器置位。
☆ 控制/状态逻辑。它由控制和时序电路及状态标志组成,用于指定传送方向,修改传送参数,并对DMA 请求信号和 CPU 响应信号进行协调和同步。
☆ 中断机构。当一个数据块传送完毕后触发中断机构,向 CPU 提出中断请求,CPU将进行DMA 传送的结尾工作。
5)DMA 传送过程
DMA的传送过程分为以下三个阶段。
☆ DMA 预处理:这是在 DMA 传送之前进行的一些必要的准备工作,是由 CPU 来完成的。CPU 首先执行几条I/O 指令,用于测试 I/O 设备的状态、向 DMA 控制器的有关寄存器置初值、设置传送方向、启动该 I/O 设备等。在这些工作完成之后,CPU继续执行原来的程序,在 I/O 设备准备好发送的数据(输入时)或接收的数据已处理完毕(输出时),I/O 设备向 DMA 控制器发送 DMA 请求,再由DMA 控制器向CPU 发送总线请求,以获得数据总线的控制权。
☆ 数据传送。DMA 的数据传送可以是以单字节(或字)为基本单位,也可以以数据块为基本单位。对于以数据块为单位的传送,DMA 占用总线后的数据输入和输出操作都是通过循环来实现的。需要特别指出的是,这一循环不是由 CPU 执行程序实现的,而是由 DMA 控制器实现。
☆ DMA 后处理。当长度计数器计为 0 时,DMA 操作结束,DMA 控制器向CPU 发出中断请求,CPU 停止原来程序的执行,转去执行中断服务程序做 DMA 结束处理工作。细化的 DMA 传送过程如图 11.9 所示
【例 11.2】CPU 时钟频率为50MHz,磁盘数据传输率为 2MB/s。采用 DMA 控制方式。假设 DMA 的启动操作需要 1000 个时钟周期,DMA 控制结束后处理中断也需要 1000 个时钟周期。如果 DMA 平均传输的数据长度为 4KB,求 DMA 操作所花费的时间比率。
解:DMA 启动及中断处理所花费时间为(1000+1000)/(50MHz)=0.04ms。每次 DMA 操作传输时间=4KB/(2MB/s)=2ms,则 DMA 操作所花费的时间比率=0.04ms/(2ms)=2%。
4. 通道方式
1)通道的基本概念
通道是指专门用于负责输入/输出工作的处理器,它独立于 CPU,有自己的指令系统。该指令系统比较简单,一般只有数据传送指令、设备控制指令等。
从逻辑结构上讲,通道方式具有 4 级连接:主机→通道→设备控制器→I/O 设备。
通道是一个具有特殊功能的处理器IOP
可以实现外围设备的统一管理和DMA操作
CPU只负责与设备进行传输,设备控制又通道完成