导图社区 输入输出系统
输入/输出系统

I/O系统基本概念*
输入/输出系统
定义
以主机位中心,将信息从外设传送到主机,或者相反的过程
基本概念
外部设备
包括 I/O设备及通过I/O接口才能访问的外存储设备
接口
在各个外设与主机之间传输数据时进行各种协调工作的逻辑部件,包括协调传输速度的匹配、电平和格式转换等等等
输入设备
用于向计算机系统输入命令和文本、数据等信息的部件,如键盘和鼠标
输出设备
用于将计算机系统中的信息输出到计算机外部进行显示、交换的部件,如显示器和打印机
外存设备
处内存和CPU缓存外的存储器,如硬磁盘、光盘
I/O系统
1)IO软件。
包括驱动程序、用户程序、管理程序、升级补丁等。通常采用I/O指令和通道指令实现CPU与I/O设备的信息交换。
2)IO硬件
包括外部设备、设备控制器和接口、I/O总线等。通过设备控制器来控制I/O设备的具体动作;通过I/O接口与主机(总线)相连。
I/O控制方式
1)程序查询方式
由CPU通过程序不断查询TO设备是否已做好准备,从而控制I/O设备与主机交换信息。
2)程序中断方式
只在I/O设备准备就绪并向CPU发出中断请求时才予以响应。
3)DMA方式
主存和I/O设备之间有一条直接数据通路,当主存和I/O设备交换信息时,无须调用中断服务程序。
4)通道方式
在系统中设有通道控制部件,每个通道都挂接若干外设,主机在执行I/O命令时,只需启动有关通道,通道将执行通道程序,从而完成IO操作。
外部设备
输入设备
键盘
鼠标
输出设备
显示器
显存容量=分辨率×灰度级位数
显存带宽=分辨率×灰度级位数×帧率
 
打印机
外部存储器(辅存)
磁表面存储器
固态硬盘(SSD)
光盘存储器
I/O接口
I/O接口的功能
1)进行地址译码和设备选择
CPU送来选择外设的地址码后,接口必须对地址进行译码以产生设备选择信息,使主机能和指定外设交换信息。
2)实现主机和外设的通信联络控制
解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间交换信息,以保证整个计算机系统能统一、协调地工作。
3)实现数据缓冲
CPU 与外设之间的速度往往不匹配,为消除速度差异,接口必须设置数据缓冲寄存器,用于数据的暂存,以避免因速度不-致而丢失数据。
4)信号格式的转换
外设与主机两者的电平、数据格式都可能存在差异,接口应提供计算机与外设的信号格式的转换功能,如电平转换、并/串或串/并转换、模/数或数/模转换等。
5)传送控制命令和状态信息
CPU要启动某一外设时,通过接口中的命令寄存器向外设发出启动命令;外设准备就绪时,则将“准备好”状态信息送回接口中的状态寄存器。并反馈给CPU。外设向CPU提出中断请求时CPU也应有相应的响应信号反馈给外设。
I/O接口的基本结构
数据线
在数据缓冲寄存器与内存或CPU寄存器之间进行数据传送
将状态寄存器中的接口和设备的状态信息送往CPU
将CPU对外设的控制信息送往控制寄存器
地址线
给出要访问I/O接口中的寄存器的地址,伴随控制线送来的读/写信号确认是读寄存器还是写寄存器
I/O指令
对I/O接口中寄存器的访问通过I/O指令,它是一种特权指令,只能在内核的底层I/O软件中使用
I/O接口的类型
按数据传送方式分类
并行接口:一字节或一个字的所有位同时传送
串行接口:一位一位地传送
按主机访问I/O设备的控制方式分类
程序查询接口
中断接口
DMA接口
按功能选择的灵活性
可编程接口
不可编程接口
I/O端口及其编址
定义
I/O端口是指接口电路中可被CPU直接访问的寄存器,包括数据端口、状态端口和控制端口,若干端口加上相应的控制逻辑电路组成接口
CPU能对数据端口执行读写操作,但只能读状态端口,只能写控制端口
编址
I/O端口要被CPU访问,必须进行编号,每个端口对应一个端口地址
分类
统一编制(存储器映射方式)
把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操作前需先发出询问信号,读取设备状态
工作流程
①CPU执行初始化程序,并预置传送参数。
②向IO接口发出命令字,启动IO设备。
③从外设接口读取其状态信息。
④CPU不断查询IO设备状态,直到外设准备就绪。
⑤传送一次数据。
⑥修改地址和计数器参数。
⑦判断传送是否结束,若未结束转第③步,直到计数器为0
特点
接口设计简单、设备量少
CPU启动I/O时必须停止运行现行程序,CPU与I/O串行工作
CPU有“踏步”等待现象,而且一段时间内只能和一台外设交互,效率很低
程序中断方式
 中断方式中,CPU和I/O设备的数据传输可以并行进行,故计算中断时长/数据传输时长,即等于I/O占用CPU时长的比例 数据缓冲寄存器为32位,设备的传输率为50KB/s,即400000bit/s,则缓存器存满需要32/400000=8×10-5秒,而每次中断开销为1000个时钟周期,主频为1GHz,则1000个时钟周期为1×10-6秒,所以CPU用于设备输入输出时间比例即中断处理时间比例为[1×10-6/(8×10-5)]×100%=1.25%
程序中断的基本概念
 
基本思想
CPU在启动外设后继续执行当前程序,一旦外设完成数据传送的准备工作,就主动向CPU发出中断请求,CPU响应中断,并在中断服务程序中完成一次主机与外设之间的数据传送
中断技术的功能
①实现CPU与I/O设备的并行工作。
②处理硬件故障和软件错误。
③实现人机交互,用户干预机器需要用到中断系统。
④实现多道程序、分时操作,多道程序的切换需借助于中断系统。
⑤实时处理需要借助中断系统来实现快速响应。
⑥实现应用程序和操作系统(管态程序)的切换,称为“软中断”。
⑦多处理器系统中各处理器之间的信息交流和任务切换。
程序中断的工作流程
中断请求
为记录中断事件并区分中断源,中断系统需对每个中断源设置中断请求标记触发器,档期状态为“1”时代表中断源有请求,这些触发器可组成中断请求标记寄存器
通过INTR线发出的是可屏蔽中断,邮件及最低,在关中断模式下不会被响应
通过NMI线发出的不可屏蔽中断,优先级最高,用于处理紧急事件,如时钟中断、电源掉电等
内部异常即使在关中断模式下也会被响应
中断响应判优
中断响应优先级
指CPU响应中断请求的先后顺序
①不可屏蔽中断>内部异常>可屏蔽中断
②内部异常中,硬件故障>软件中断
③DMA中断请求>I/O设备中断请求
④I/O传送类中断请求中
高速设备>低速设备
输入设备>输出设备
实时设备>普通设备
⑥访管指令(自陷指令)>程序性异常>重新启动
实现:硬件排队器
分类
响应优先级:在硬件线路上是固定的,不便改动
处理优先级:可利用中断屏蔽技术动态调整,以实现多重中断
CPU响应中断的条件
①中断源有中断请求
②CPU允许中断及开中断(异常和不可屏蔽中断不受此限制
③一条指令执行完毕(异常不受此限制),且没有更紧迫的任务
注意:I/O设备的就绪时间是随机的,而CPU在统一的时刻即每条指令执行阶段结束前向接口发出中断查询信号,以获取IO的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻。这里说的中断仅指IO中断,内部异常不属于此类情况。
中断响应过程
中断隐指令(由硬件直接实现)
①关中断
CPU响应中断后,首先要保护程序的断点和现场信息,在保护断点和现场的过程中,CPU 不能响应更高级中断源的中断请求。否则,若断点或现场保存不完整,在中断服务程序结束后,就不能正确地恢复并继续执行现行程序。
②保存断点
为保证在中断服务程序执行完后能正确地返回到原来的程序,必须将原程序的断点(指令无法直接读取的PC和PSW的内容)保存在栈或特定寄存器中。
注意异常和中断的差异:异常指令通常并没有执行成功,异常处理后要重新执行, 所以其断点是当前指令的地址。中断的断点则是下一条指令的地址。
③引出中断服务程序
识别中断源,将对应的服务程序入口地址送入程序计数器PC。
有两种方法识别中断源:硬件向量法和软件查询法(非向量中断)。本节主要讨论比较常用的向量中断。
中断向量
每个中断有唯一的类型号,每个类型号对应一个中断服务程序,每个都有一个入口地址,称为中断向量;将系统中的全部中断向量统一存储,称为中断向量表。
中断向量地址指中断向量表的地址,或中断服务程序入口地址的地址
中断向量法:CPU响应中断后,通过识别中断源获取中断类型号,据此再计算出对应中断向量的地址,再根据该地址从中断向量表中取出中断服务程序的入口地址,并送入PC,采用该方法的中断称为向量中断
中断处理过程
①关中断
②保存断点
③中断服务程序寻址
中断隐指令(硬件自动)完成
由CPU完成
④保存现场和屏蔽字
注意:现场和断点,这两类信息都不能被中断服务程序破坏。现场信息因为用指令可直接访问,所以通常在中断服务程序中通过指令把它们保存到栈中,即由软件实现;而断点信息由CPU在中断响应时自动保存到栈或指定的寄存器中,即由硬件实现。
⑤开中断:允许更高级中断请求得到响应,实现中断嵌套
⑥执行中断服务程序
⑦关中断:保证在恢复现场和屏蔽字时不被中断
⑧恢复现场和屏蔽字
⑨开中断、中断返回
中断服务程序完成
多重中断和中断屏蔽技术
 
单重中断:若CPU在执行中断服务程序的过程中,出现了新的更高优先级的中断请求,而CPU对新的中断请求不予请求
多重中断(中断嵌套):若CPU暂停现行的中断服务程序,转去处理新的中断请求
条件
①在中断服务程序中提前设置开中断指令
②优先级高的中断源有权中断优先级低的中断源
中断处理优先级是指多重中断的实际优先级处理次序,可以利用中断屏蔽技术动态调整,从而可以灵活地调整中断服务程序的优先级,使中断处理更加灵活。如果不使用中断屏蔽技术,则处理优先级和响应优先级相同。现代计算机一般使用中断屏蔽技术,每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。
DMA方式
基本思想
DMA方式是一种完全由硬件(不是程序控制方式)进行成组信息传送的控制方式;在外设与内存之间开辟一条“直接数据通道”,信息传送不再经过CPU,也不需要保护、恢复CPU现场等操作
DMA结束后,CPU会转去中断处理,但不需要改变当前程序,不需改变寄存器值,故不需要保护现场
使用于磁盘、显卡、网卡等高速设备大批量数据的传输,硬件开销较大
在DMA方式中,中断的作用仅限于故障和正常传送结束时的处理
特点
①它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问。
②在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
③主存中要开辟专用缓冲区,及时供给和接收外设的数据。
④DMA传送速度快,CPU和外设并行工作,提高了系统效率。
⑤DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。
⑥DMA方式只能用于数据传输,不能处理异常事件,不能中断现行程序,故不适用于鼠标和键盘
DMA控制器
定义
对数据传送过程进行控制的硬件称为DMA控制器(DMA接口)
功能
1)接受外设发出的DMA请求,并向CPU发出总线请求。
2)CPU响应此总线请求,发出总线响应信号,接管总线控制权(使用权),进入DMA操作周期。
在DMA传送过程中,DMA 控制器将接管CPU的地址总线、数据总线和控制总线,CPU的主存控制信号被禁止使用。而当DMA传送结束后,将恢复CPU的一切权利并开始执行其操作。由此可见,DMA控制器必须具有控制系统总线的能力。
3)确定传送数据的主存单元地址及长度,并自动修改主存地址计数和传送长度计数。
4)规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。
5)向CPU报告DMA操作结束。
组成
主存地址计数器:存放要交换数据的主存地址。
传送长度计数器:记录传送数据的长度,计数溢出时,数据即传送完毕,自动发中断请求信号。
数据缓冲寄存器:暂存每次传送的数据。
DMA请求触发器:每当IO设备准备好数据后,给出一个控制信号,使DMA请求触发器置位。
“控制/状态”逻辑:由控制和时序电路及状态标志组成,用于指定传送方向,修改传送参数,并对DMA请求信号、CPU响应信号进行协调和同步。
中断机构:当一个数据块传送完毕后触发中断机构,向CPU提出中断请求。
DMA的传送方式
1)停止CPU访存
当I/O设备有DMA请求时,由DMA控制器向CPU发生停止信号,使其脱离总线,停止访问主存,当数据传送结束后,通知CPU可以使用主存,并归还总线控制权
2)周期挪用(周期窃取)
当I/O设备由DMA请求时
①此时CPU不在访存,I/O的访存请求与CPU不冲突
②CPU正在访存,不许待存取周期结束后,CPU再让出总线占有权
③I/O和CPU同时请求访存,出现访存冲突,I/O访存优先级较高,将由I/O设备挪用若干个存取周期。传送完一个数据后立即释放总线,是一种单字传送方式
3)DMA与CPU交替访存
适用于CPU的工作周期比主存存取周期长的情况
总线使用权由DMA和CPU分时享用,不需要总线使用权的申请、建立和归还过程
DMA的传送过程
1)预处理
CPU测试I/O设备状态
DMA控制器设置有关寄存器初值、传送方向、启动设备
I/O设备准备好数据后,由DMA向CPU发生总线请求
2)数据传送
以单字节/字/数据块为单位传送数据
对于以数据块为单位的传送(如硬盘),I/O操作是在DMA控制器的控制下通过循环实现的
3)后处理
DMA控制器向CPU发生中断请求,CPU执行中断服务程序做DMA结束处理,包括校验数据、测试错误等
DMA方式和中断方式的区别
①中断方式是程序的切换,需要保护和恢复现场;而DMA方式除了预处理和后处理,其他时候不占用CPU的任何资源。
②对中断请求的响应只能发生在每条指令执行完毕时(即指令的执行周期后);而对 DMA请求的响应可以发生在每个机器周期结束时(在取指周期、间址周期、执行周期后均可),只要CPU不占用总线就可被响应。
③中断传送过程需要CPU的干预;而DMA传送过程不需要CPU的干预,因此数据传输率非常高,适合于高速外设的成组数据传送。
④DMA请求的优先级>中断请求。
⑤中断方式具有对异常事件的处理能力,而 DMA方式仅局限于传送数据块的I/O操作。
⑥从数据传送来看,中断方式靠程序传送,DMA方式靠硬件传送。