5.1 输入输出系统概述
5.1.1 输入输出系统的发展概况
早期阶段
早期的I/O设备种类较少,I/O设备与主存交换信息都必须通过CPU:
- 每个I/O设备都必须配有一套独立的逻辑电路与CPU相连,线路十分散乱、庞杂。
- 输入输出过程是穿插在CPU执行程序过程之中进行的,工作效率低。
- 每个I/0设备的逻辑控制电路与CPU的控制器紧密构成一个不可分割的整体,可扩展性低。
接口模块和DMA阶段
这个阶段I/O设备通过接口模块与主机连接,计算机系统采用了总线结构:
- 数据经过接口既起到缓冲作用,又可完成串——并变换。
- 接口能满足中断请求处理的要求,使I/O设备与CPU可按并行方式工作,大大地提高了CPU的工作效率。
- 接口技术还可以使多台I/O设备分时占用总线,使多台I/O设备互相之间也可实现并行工作方式,有利于整机工作效率的提高。
为了进一步提高CPU的工作效率,又出现了直接存储器存取(Direct Memory Access,DMA)技术:
- I/O设备与主存之间有一条直接数据通路;
- I/O设备可以与主存直接交换信息,使CPU在I/O设备与主存交换信息时能继续完成自身的工作,故资源利用率得到了进一步提高。
具有通道结构的阶段
- 通道是用来负责管理I/O设备以及实现主存与I/O设备之间交换信息的部件。
- 通道有专用的通道指令,能独立地执行用通道指令所编写的输入输出程序,是从属于CPU的一个专用处理器。
- 依赖通道管理的I/O设备在与主机交换信息时,CPU不直接参与管理,故提高了CPU的资源利用率。
具有I/O处理机的阶段
输入输出系统发展到第四阶段,出现了I/O处理机:
- I/O处理机又称为外围处理机(Peripheral Processor);
- 它基本独立于主机工作,既可完成I/O通道要完成的I/O控制,又可完成码制变换、格式处理、数据块检错、纠错等操作。
- 具有I/O处理机的输入输出系统与CPU工作的并行性更高,这说明I/O系统对主机来说具有更大的独立性。
5.1.2 输入输出系统的组成
输入输出系统:
- I/O软件
- I/O硬件
I/O 软件
输入输出系统软件的主要任务如下:
- 将用户编制的程序(或数据)输入主机内。
- 将运算结果输送给用户。
- 实现输入输出系统与主机工作的协调等。
组成:
- I/O指令:机器指令的一类,其设备码相当于设备的地址,用于选择某台设备与主机交换信息。
- 通道指令:又称为通道控制字(Channel Control Word,CCW),是通道自身的指令,用来执行I/O操作,如读、写、磁带走带及磁盘找道等。
I/O 硬件
输入输出系统的硬件组成是多种多样的,在带有接口的I/O系统中,一般包括:
- 接口模块
- I/O设备两
如上图所示:
- 具有通道的I/O系统;
- 一个通道可以和一个以上的设备控制器相连,一个设备控制器又可以控制若干台同一类型的设备。
5.1.3 I/O 设备与主机的联系方式
I/O 设备与主机交换信息时,共有5种控制方式:
- 程序查询方式:程序查询方式是由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息。
- 程序中断方式:当I/O设备准备就绪并向 CPU发出中断请求后才予以响应。
- 直接存储器存取方式(DMA):主存与I/O设备之间有一条数据通路,主存与I/0设备交换信息时,无须调用中断服务程序。
- I/O 通道方式;
- I/O处理机方式。
5.2 I/O 设备
5.2.1 I/O 设备概述
I/O设备大致可分为三类:
- 人机交互设备:·实现操作者与计算机之间互相交流信息的设备。
- 计算机信息的存储设备:系统软件和各种计算机的有用信息,其信息量极大,需存储保留起来。
- 机——机通信设备:实现一台计算机与其他计算机或与其他系统之间完成通信任务的设备。
5.2.2 输入设备
输入设备完成输入程序、数据和操作命令等功能:
- 键盘:通过键盘上的各个键,按某种规范向主机输入各种信息,如汉字、外文、数字等。
- 鼠标:手持式的定位设备,由于它拖着一根长线与接口相连,外形有点像老鼠,故取名为鼠标。
- 触摸屏:是一种对物体的接触或靠近能产生反应的定位设备。按原理的不同,触摸屏大致可分为5类:电阻式、电容式、表面超声波式、扫描红外线式和压感式。
- 其他输人设备:
- 光笔:外形与钢笔相似,头部装有一个透镜系统,能把进入的光会聚成一个光点。光笔的后端用导线连到计算机输入电路上。
- 画笔与图形板:画笔(Stylus)同样为笔状,但必须配合图形板(Tablet)使用。
- 图像输入设备:最直接的图像输入设备是摄像机(Camera),它能被拍摄物经数字量化后变成数字图像存入磁带或磁盘。
5.2.3 输出设备
显示设备
- 字符显示器:
- 显示存储器(刷新存储器)VRAM:显示存储器存放欲显示字符的ASCII码,其容量与显示屏能显示的字符个数有关。
- 字符发生器:将每个ASCII字符码转变为一组5×7或7×9的光点矩阵信息。
- CRT控制器:可接收来自CPU的数据和控制信号,并给出访问显示存储器的地址和访问字符发生器的光栅地址,还能给出CRT所需的水平同步和垂直同步信号。
- 图形显示器:图形显示器是用点、线(直线和曲线)、面(平面和曲面)组合成平面或立体图形的显示设备;
- 图像显示器:图形显示器所显示的图形是由计算机用一定的算法形成的点、线、面、阴影等,来自主观世界,故又称为主观图像或计算机图像。
- IBM PC系列微型计算机的显示标准:
- MDA(Monochrome Display Adapter)标准: MDA是单色字符显示标准,采用9×14点阵的字符窗口,满屏显示80列、25行字符,对应分辨率为720×350像素。MDA不能兼容图形显示。
- CGA(Color Graphics Adapter)标准: CGA是彩色图形/字符显示标准,可兼容字符和图形两种显示方式。在字符方式下,字符窗口为8×8点阵,故字符质量不如MDA,但字符的背景可以选择颜色。
- EGA(Enhanced Graphics Adapter)标准: EGA标准集中了MDA和CGA两个显示标准的优点,并有所增强。其字符窗口为8×14点阵,字符显示质量优于CGA而接近MDA。
- VGA(Video Graphics Array)标准: VGA标准在字符方式下,字符窗口为9×16点阵,在图形方式下分辨率为640×480像素、 16种颜色,或320×200像素、256种颜色,还有720×400像素的文本模式。
打印设备
- 点阵针式打印机:结构简单、体积小、重量轻、价格低、字符种类不受限制、较易实现汉字打印,还可打印图形和图像。
- 激光打印机:采用了激光技术和照相技术,印字质量好,应用广泛。
- 喷墨打印机:是串行非击打式打印机,印字原理是将墨水喷射到普通打印纸上。若采用红、绿、蓝三色喷墨头,便可实现彩色打印。
5.3 I/O 接口
5.3.1 I/O 接口概述
接口可以看做是两个系统或两个部件之间的交接部分,它既可以是两种硬设备之间的连接电路,也可以是两个软件之间的共同逻辑边界。
设置接口理由如下:
- 一台机器通常配有多台I/O设备,它们各自有英设备号(地址),通过接口可实现I/0设备的选择。
- I/O设备种类繁多,速度不一,与CPU速度相差可能很大,通过接口可实现数据缓冲.
- 有些I/O设备可能串行传送数据,而CPU一般为并行传送,通过接口可实现数据串——并格式的转换。
- I/O设备的输人输出电平可能与CPU的输入输出电平不同,通过接口可实现电平转换。
- CPU启动I/O设备工作,要向I/O设备发各种控制信号,通过接口可传送控制命令。
- I/O设备需将其工作状态及时向CPU报告,通过接口可监视设备的工作状态,并可保存状态信息,供CPU查询。
5.3.2 接口的功能和组成
如上图所示为总线结构的计算机,每一台I/O设备都是通过I/O接口挂到系统总线上的。图中的I/O总线包括数据线、设备选择线、命令线和状态线。
根据上述设置接口的理由,可归纳出接口通常应具有以下几个功能以及相应的硬件配置:
- 选址功能:当设备选择线上的设备码与本设备码相符时,应发出设备选中信号SEL;
- 传送命令的功能:通常在I/O接口中设有存放命令的命令寄存器以及命令译码器,来对CPU的命令进行响应。
- 传送数据的功能:接口中通常设有数据缓冲寄存器(Data Buffer Register,DBR),它用来暂存I/O设备与主机准备交换的信息,与I/O总线中的数据线是相连的。
- 反映I/0设备工作状态的功能:为了使CPU能及时了解各I/O设备的工作状态,接口内必须设置一些反映设备工作状态的触发器。
5.3.3 接口类型
- 按数据传送方式分类:
- 并行接口:将一个字节(或一个字)的所有位同时传送;
- 串行接口:在设备与接口间一位一位传送,由于接口与主机之间是按字节或字并行传送,因此对串行接口而言,其内部还必须设有串——并转换装置。
- 按功能选择的灵活性分类:
- 可编程接口:其功能及操作方式可用程序来改变或选择;
- 不可编程接口:不能由程序来改变其功能,但可通过硬连线逻辑来实现不同的功能。
- 按通用性分类:
- 通用接口:可供多种I/O设备使用;
- 专用接口:为某类外设或某种用途专门设计的。
- 按数据传送的控制方式分类:
- 程序型接口:用于连接速度较慢的I/O设备,如显示终端、键盘、打印机等;
- DMA型接口:用于连接高速I/0设备,如磁盘、磁带等。
5.4 程序查询方式
5.4.1 程序查询流程
单 IO 设备
多 IO 设备
5.4.2 程序查询方式的接口电路
以输入设备为例,该接口的工作过程如下:
- 当CPU通过I/O指令启动输入设备时,指令的设备码字段通过地址线送至设备选择电路。
- 若该接口的设备码与地址线上的代码吻合,其输出SEL有效。
- I/O指令的启动命令经过“与非”门将工作触发器B置“1”,将完成触发器D置“0”。
- 由B触发器启动设备工作。
- 输入设备将数据送至数据缓冲寄存器。
- 由设备发设备工作结束信号,将D置“1”,B置“0”,表示外设准备就绪。
- D触发器以“准备就绪”状态通知CPU,表示“数据缓冲满”。
- CPU执行输入指令,将数据缓冲寄存器中的数据送至CPU的通用寄存器,再存人主存相关单元。
5.5 程序中断方式
5.5.1 I/O中断的概念
中断:计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回到现行程序的间断处,继续执行原程序。
5.5.2 I/O 中断的产生
在I/O设备与主机交换信息时,由于设备本身机电特性的影响,其工作速度较低,与CPU无法匹配,因此,CPU启动设备后,往往需要等待一段时间才能实现主机与I/O设备之间的信息交换。
如果在设备准备的同时,CPU不作无谓的等待,而继续执行现行程序,只有当I/O设备准备就绪向CPU提出请求后,再暂时中断CPU现行程序转入I/O服务程序,这便产生了I/O中断。
5.5.3 程序中断方式的接口电路
为处理I/O中断,在I/O接口电路中必须配置相关的硬件线路:
- 中断请求触发器和中断屏蔽触发器:每台外部设备都必须配置一个中断请求触发器INTR,当其为“1”时,表示该设备向CPU提出中断请求。但是设备欲提出中断请求时,其设备本身必须准备就绪,即接口内的完成触发器D的状态必须为“1”。
- 排队器:当多个中断源同时向CPU提出请求时,CPU只能按中断源的不同性质对其排队,给予不同等级的优先权,并按优先等级的高低予以响应。
- 中断向量地址形成部件(设备编码器):CPU一旦响应了I/O中断,就要暂停现行程序,转去执行该设备的中断服务程序。不同的设备有不同的中断服务程序,每个服务程序都有一个入口地址,CPU必须找到这个入口地址。
注意:
- 就 I/O 中断而言,速度越高的I/O设备,优先级越高,因为若CPU不及时响应高速I/O的请求,其信息可能会立即丢失。
5.5.4 I/O中断处理过程
CPU响应中断的条件和时间
CPU响应I/O设备提出中断请求的条件是必须满足CPU中的允许中断触发器EINT为“1”。该触发器可用开中断指令置位(称为开中断);也可用关中断指令或硬件自动使其复位(称为关中断)。
CPU响应中断的时间一定是在每条指令执行阶段的结束时刻。
I/O 中断处理过程
中断处理过程可以分为五个阶段:
- 中断请求
- 中断判优
- 中断响应
- 中断服务
- 中断返回
具体地:
- 由CPU发启动I/O设备命令,将接口中的B置“1”,D置“0”。
- 接口启动输入设备开始工作。
- 输入设备将数据送入数据缓冲寄存器。
- 输入设备向接口发出“设备工作结束”信号,将D置“1”,B置“0”,标志设备准备就绪。
- 当设备准备就绪(D=1),且本设备未被屏蔽(MASK=0)时,在指令执行阶段的结束时刻,由CPU发出中断查询信号。
- 设备中断请求触发器INTR被置“1”,标志设备向CPU提出中断请求。与此同时,INTR送至排队器,进行中断判优。
- 若CPU允许中断(EINT=1),设备又被排队选中,即进入中断响应阶段,由中断响应信号 INTA将排队器输出送至编码器形成向量地址。
- 向量地址送至PC,作为下一条指令的地址。
- 由于向量地址中存放的是一条无条件转移指令,故这条指令执行结束后,即无条件转至该设备的服务程序入口地址,开始执行中断服务程序,进人中断服务阶段,通过输入指令将数据缓冲寄存器的输入数据送至CPU的通用寄存器,再存入主存相关单元。
- 中断服务程序的最后一条指令是中断返回指令,当其执行结束时,即中断返回至原程序的断点处。
- 至此,一个完整的程序中断处理过程即告结束。
5.6 DMA 方式
5.6.1 DMA 方式的特点
由图中可见,由于主存和DMA接口之间有一条数据通路,因此主存和设备交换信息时,不通过CPU,也不需要CPU暂停现行程序为设备服务,省去了保护现场和恢复现场,因此工作速度比程序中断方式的工作速度高。
在DMA方式中,由于DMA接口与CPU共享主存,这就有可能出现两者争用主存的冲突。为了有效地分时使用主存,通常DMA与主存交换数据时采用如下三种方法:
- 停止CPU访问主存:
- 方式:当外设要求传送一批数据时,由DMA接口向CPU发一个停止信号,要求CPU放弃地址线数据线和有关控制线的使用权。DMA接口获得总线控制权后,开始进行数据传送,在数据传送结束后,DMA接口通知CPU可以使用主存,并把总线控制权交回给CPU。
- 优点:控制简单,适用于数据传输率很高的I/O设备实现成组数据的传送。
- 缺点:DMA接口在访问主存时,CPU基本上处于不工作状态或保持原状态。
- 周期挪用(或周期窃取):
- 方式:在这种方法中,每当I/O设备发出DMA请求时,I/O设备便挪用或窃取总线占用权一个或几个主存周期,而DMA不请求时,CPU仍继续访问主存。
- 优点:这种方式既实现了I/O传送,又较好地发挥了主存与CPU的效率,是一种广泛采用的方法。
- 缺点:比较适合于I/O设备的读/写周期大于主存周期的情况,其他情况不推荐使用。
- DMA与CPU交替访问:
- 方式:不需要总线使用权的申请、建立和归还过程,总线使用权是通过C1和C2分别控制的。 CPU与DMA接口各自有独立的访存地址寄存器、数据寄存器和读/写信号。
- 优点:CPU既不停止主程序的运行也不进入等待状态,即完成了 DMA的数据传送,效率较高。
- 缺点:相应的硬件逻辑复杂。
5.6.2 DMA接口的功能和组成
DMA接口的功能
利用DMA方式传送数据时,DMA接口应具有如下几个功能:
- 向CPU申请DMA传送。
- 在CPU允许DMA工作时,处理总线控制权的转交,避免因进入DMA工作而影响CPU正常活动或引起总线竞争。
- 在DMA期间管理系统总线,控制数据传送。
- 确定数据传送的起始地址和数据长度,修正数据传送过程中的数据地址和数据长度。
- 在数据块传送结束时,给出DMA操作完成的信号。
DMA接口基本组成
- 主存地址寄存器(AR) :用于存放主存中需要交换数据的地址。
- 字计数器(WC) :用于记录传送数据的总字数,通常以交换字数的补码值预置。
- 数据缓冲寄存器(BR) :用于暂存每次传送的数据。
- DMA控制逻辑: 负责管理DMA的传送过程,由控制电路、时序电路及命令状态控制寄存器等组成。
- 中断机构:当字计数器溢出(全“0”)时,表示一批数据交换完华,由“溢出信号”通过中断机构向CPU提出中断请求,请求CPU作DMA操作的后处理。
- 设备地址寄存器(DAR) :存放I/O设备的设备码或表示设备信息存储区的寻址信息,如磁盘数据所在的区号盘面号和柱面号。
5.6.3 DMA的工作过程
DMA的数据传送过程分为三个阶段:
- 预处理
- 数据传送
- 后处理
预处理
- 给DMA控制逻辑指明数据传送方向是输入(写主存)还是输出(读主存)。
- 向DMA设备地址寄存器送入设备号,并启动设备。
- 向DMA主存地址寄存器送入交换数据的主存起始地址。
- 对字计数器赋予交换数据的个数。
数据传送
后处理
当DMA的中断请求得到响应后,CPU停止原程序的执行,转去执行中断服务程序,执行DMA的结束工作:
- 校验送入主存的数据是否正确;
- 决定是否继续用DMA传送其他数据块,若继续传送,则又要对DMA接口进行初始化,若不需要传送,则停止外设;
- 测试在传送过程中是否发生错误,若出错,则转错误诊断及处理错误程序。
5.6.4 DMA接口的类型
选择型DMA接口
特点:
- 在物理上可连接多个设备,在逻辑上只允许连接一个设备,即在某一段时间内,DMA接口只能为一个设备服务;
- 关键是在预处理时将所选设备的设备号送入设备地址寄存器。
多路型DMA接口
特点:
- 多路型DMA接口不仅在物理上可以连接多个设备,而且在逻辑上也允许多个设备同时工作,各个设备采用字节交叉的方式通过DMA接口进行数据传送。
- 这类接口特别适合于同时为多个数据传输率不十分高的设备服务。