第7章输入输出系统 内容提要: 常用外设的工作原理,外设与主机交换信息的方式:程序直接控制方式,程序中断方式 DMA方式,以及通道方式。 输入输出系统简称为ⅣO系统,它包括IO设备、IO接口、IO管理部件及有关软件。 7.1输入输出设备 7.1.1IO设备概述 1.外设的功能 提供人一机之间、机器与机器之间的信息交往。 2.外设的分类 (1)按外设的功能分类 ①输入设备 能将人们熟悉的信息形式变换成计算机能接受并识别的信息形式。 例如键盘、鼠标等。 ②输出设备 能将计算机内的二进制信息转换成人们或其它设备能接收和识别的形式的设备。 例如显示器、打印机等 ③输入输出兼用设备 既可以作为输入设备,也可以作为输出设备。例如:外存储器 (2)按外设所起的作用分类 ①人一机交互设备 在人与计算机之间起着交流信息作用的设备。 例如:键盘、鼠标、光笔、触摸屏、扫描仪、摄像机、打印机、显示器、绘图 机、语音合成器等。 ②外部存储设备 与主存、 Cache构成三级的存储系统。 例如:磁表面存储器、光盘存储器。 ③机一机通信设备 计算机与计算机之间联系所用的通讯设备。 例如:调制解调器及其它网络通信设备,过程控制设备AD、D/A。 3.IO设备的特点 ①MO设备由信息载体、设备及设备控制器组成。 ②MO设备的工作速度比主机要慢得多。 ③各种IO设备的信息类型和结构均不相同 ④各种O设备的电气特性也不相同。 7.2直接程序控制方式 7.2.1IO设备的组织方式及其与主机的信息交换方式 1.组织方式 (1)针对异步性,采用自治控制方式 IO设备独立于主机之外,由DO控制器完成大多数功能,CPU只需给予很少的
第7章 输入输出系统 内容提要: 常用外设的工作原理,外设与主机交换信息的方式:程序直接控制方式,程序中断方式, DMA 方式,以及通道方式。 输入输出系统简称为 I/O 系统,它包括 I/O 设备、I/O 接口、I/O 管理部件及有关软件。 7.1 输入输出设备 7.1.1 I/O 设备概述 1. 外设的功能 提供人-机之间、机器与机器之间的信息交往。 2. 外设的分类 (1) 按外设的功能分类 ① 输入设备 能将人们熟悉的信息形式变换成计算机能接受并识别的信息形式。 例如键盘、鼠标等。 ② 输出设备 能将计算机内的二进制信息转换成人们或其它设备能接收和识别的形式的设备。 例如显示器、打印机等。 ③ 输入输出兼用设备 既可以作为输入设备,也可以作为输出设备。例如:外存储器。 (2) 按外设所起的作用分类 ①人—机交互设备 在人与计算机之间起着交流信息作用的设备。 例如:键盘、鼠标、光笔、触摸屏、扫描仪、摄像机、打印机、显示器、绘图 机、语音合成器等。 ② 外部存储设备 与主存、Cache 构成三级的存储系统。 例如:磁表面存储器、光盘存储器。 ③ 机—机通信设备 计算机与计算机之间联系所用的通讯设备。 例如:调制解调器及其它网络通信设备,过程控制设备 A/D、D/A。 3. I/O 设备的特点: ① I/O 设备由信息载体、设备及设备控制器组成。 ② I/O 设备的工作速度比主机要慢得多。 ③ 各种 I/O 设备的信息类型和结构均不相同。 ④ 各种 I/O 设备的电气特性也不相同。 7.2 直接程序控制方式 7.2.1 I/O 设备的组织方式及其与主机的信息交换方式 1.组织方式 (1)针对异步性,采用自治控制方式。 I/O 设备独立于主机之外,由 I/O 控制器完成大多数功能,CPU 只需给予很少的
支持。 (2)针对实时性,选用层次结构方法 设备控 控制 准‖控 控制、状杰线 逻辑 外部设备 机电路 数据线 器 图715外部设备与主机连接的原理框图 (3)针对设备无关性,采用分类组织方式 按工作速度,工作方式和使用场合进行分类 2.信息交换方式 ①直接程序控制方式 ②程序中断方式 ③直接内存访问(DMA)方式 4通道方式 ⑤MO处理机方式 7.2.2o接口的编址 1.I/0接口的编址 (1)统一编址法 将内存的部分地址空间划分给外设,即外设与主存统一编址。 例如:PDP-11机,分配给外设的存储空间为(160000~(177570) 优点:访问外设与主存一样方便灵活,不需专门的O指令 缺点:占用了主存的部分空间 (2)单独编址法 用M0指令的地址码字段指定外设。 例如某机的1/O指令: 设备码6位 设备码6位,编码数为2=64,但该机00)8编码不用,(778编码表示控制台指令, 实际可配备62台外设。 2.IO指令的功能 (1)控制设备进行某些动作,如启动、停止、磁带机倒带等 (2)测试设备的状态,如“忙”、“就绪”等 (3)传送数据。 7.2.3直接程序控制方式 1.直接程序控制O方式的接口 (1)设备选择电路 决定本设备是否为CPU所选中的设备 (2)数据缓冲寄存器 ①输入缓冲器IBR 存放输入设备读出的数据,然后送往主机 ②输出缓冲器OBR
支持。 (2)针对实时性,选用层次结构方法 (3)针对设备无关性,采用分类组织方式 设备地址线 控制、状态线 主 机 I/O 控 制 逻 辑 电 路 标 准 接 口 接 口 控 制 器 设 备 控 制 器 外 部 设 备 数据线 图 7.15 外部设备与主机连接的原理框图 按工作速度,工作方式和使用场合进行分类 2.信息交换方式 ① 直接程序控制方式 ② 程序中断方式 ③ 直接内存访问(DMA)方式 ④ 通道方式 ⑤ I/O 处理机方式 7.2.2 I/O 接口的编址 1.I/O 接口的编址 (1)统一编址法 将内存的部分地址空间划分给外设,即外设与主存统一编址。 例如:PDP-11机,分配给外设的存储空间为(160000)8 ~(177570)8 优点: 访问外设与主存一样方便灵活,不需专门的I/O指令。 缺点:占用了主存的部分空间。 (2)单独编址法 用 I/0 指令的地址码字段指定外设。 例如某机的I/O指令: OP 设备码 6 位 设备码6位,编码数为26 =64,但该机(00)8编码不用,(77)8编码表示控制台指令, 实际可配备62台外设。 2. I/O 指令的功能 (1)控制设备进行某些动作, 如启动、停止、磁带机倒带等。 (2)测试设备的状态, 如“忙”、“就绪”等。 (3)传送数据。 7.2.3 直接程序控制方式 1.直接程序控制 I/O 方式的接口 (1)设备选择电路 决定本设备是否为CPU所选中的设备。 (2)数据缓冲寄存器 ① 输入缓冲器IBR 存放输入设备读出的数据,然后送往主机。 ② 输出缓冲器OBR
暂存主机送来的数据,以便送给输出设备 (3)设备状态标志 用以标志设备的工作 启动设备 状态,经CPU读入加以分析。 查询设备状态 内存地址递增 传送量递减 传送数据 2.直接程序控制LO方式 3.对直接程序控制ⅣO方式的评价 关闭设备 (1)简单,容易控制,接口硬设备少 (2)CPU和外设是串行工作,CPU效率低。图718程序控制流程图 设备 CPU CPU与设备串行工作轨迹 (3)应用:适用于单用户时,主机只输入或输出而无任何其它事干的场合 4.直接程序控制方式的程序基本结构 DATA SEGMENT BUF DB XDUP(?);数据缓冲区 LEN 数据缓冲区长度, DATA ENDS CODESEGMENT SSUME CS: CODE DS: DATA START MOV OFFSET BUF 设置主存地址指针 AGAIN: 命令/状态端口:读入状态 TEST OIH 完成位为1? JE 没完成再读入状态 数据端口 完成,读入数据 MOV BX AL 并送入主存缓冲区 BX 修改主存地址指针 LEN ;计数 未完继续
暂存主机送来的数据,以便送给输出设备。 (3)设备状态标志 用以标志设备的工作 状态,经 CPU 读入加以分析。 2. 直接程序控制 I/O 方式 3.对直接程序控制 I/O 方式的评价 (1)简单,容易控制,接口硬设备少。 (2)CPU和外设是串行工作,CPU效率低。 启动设备 查询设备状态 传送数据 内存地址递增 传送量递减 关闭设备 就 绪 传送完 A A N Y Y N 图 7.18 程序控制流程图 (3)应用:适用于单用户时,主机只输入或输出而无任何其它事干的场合。 4.直接程序控制方式的程序基本结构 … … DATA SEGMENT BUF DB X DUP(?) ;数据缓冲区 LEN DW X ;数据缓冲区长度, DATA ENDS CODE SEGMENT ASSUME CS:CODE DS:DATA START: … MOV BX, OFFSET BUF ;设置主存地址指针 AGAIN: IN AL, 命令/状态端口 ;读入状态 TEST AL, 01H ;完成位为 1? JE AGAIN ;没完成再读入状态 IN AL, 数据端口 ;完成,读入数据 MOV [BX], AL ;并送入主存缓冲区 INC BX ;修改主存地址指针 DEC LEN ;计数 JNZ AGAIN ;未完继续
7.3程序中断方式 7.3.1中断的基本概念 1.什么叫中断? 当某种事件发生时,计算机暂停当前执行的程序,转向为该事件服务,服务完毕返 回原程序继续执行,这种功能称为中断。 2.什么叫中断系统? 硬件中断机构以及包括接口中断部分线路和软件服务程序统称为中断系统 3.为什么要有中断? (1)实现主机与外设(包括多台外设)的并行工作 (2)故障的诊断和处理; (3)实时控制:对于随机出现的事件应在规定时间里做出响应并处理; (4)人-机联系的控制台请求(多道程序情况下) 4中断的类型 (1)按中断源的性质与CPU的关系分 ①处理机内的中断 自愿中断 指令中断 ②系统内外设的中断 内中断 硬件故障 强迫中断 软件故障 中断 外设请求 外中断(强迫中断) 人的干预 (2)中断按处理方式的不同分 ①程序中断 利用中断服务程序对引起中断的事件进行处理的中断。 工作 启工作定 设备 成 身工作轰 中断服务程序 中止 中断控制的cPU与设备运行轨迹 优点:能完成较复杂的处理(如掉电处理等),有较高的灵活性(软件),CPU效率较高。 缺点:开销大,对高速外设无能为力。 程序中断与调用子程序比较 共同点:程序转向 不同点:a通常,程序中断有随机性,而转子程序有可重入性 b子程序的执行受主程序或上层子程序的控制,而中断程序与被中断的程 序毫无关系 c.不存在多个程序同时要求执行一个子程序的情况,但可能发生多个中断
… 7.3 程序中断方式 7.3.1 中断的基本概念 1.什么叫中断? 当某种事件发生时,计算机暂停当前执行的程序,转向为该事件服务,服务完毕返 回原程序继续执行,这种功能称为中断。 2.什么叫中断系统? 硬件中断机构以及包括接口中断部分线路和软件服务程序统称为中断系统。 3.为什么要有中断? (1) 实现主机与外设(包括多台外设)的并行工作; (2) 故障的诊断和处理; (3) 实时控制:对于随机出现的事件应在规定时间里做出响应并处理; (4) 人-机联系的控制台请求(多道程序情况下)。 4.中断的类型 (1) 按中断源的性质与CPU的关系分: ① 处理机内的中断 ② 系统内外设的中断 (2) 中断按处理方式的不同分: 中断 内中断 外中断(强迫中断) 自愿中断 强迫中断 指令中断 硬件故障 软件故障 外设请求 人的干预 ① 程序中断 利用中断服务程序对引起中断的事件进行处理的中断。 优点:能完成较复杂的处理(如掉电处理等),有较高的灵活性(软件),CPU效率较高。 缺点:开销大,对高速外设无能为力。 程序中断与调用子程序比较: 共同点:程序转向 不同点:a.通常,程序中断有随机性,而转子程序有可重入性; b.子程序的执行受主程序或上层子程序的控制,而中断程序与被中断的程 序毫无关系; c.不存在多个程序同时要求执行一个子程序的情况,但可能发生多个中断
源要求CPU服务的情况。 ②简单中断 暂停处理机的数据传送操作,插入一个外设与内存之间的数据传送操作 优点:速度快,适用于高速外设。 缺点:费器材,只能处理简单事件。 (3)按中断请求的可屏蔽性分 ①可屏蔽中断 这一类的中断请求需在CPU的中断标志IF=1或中断屏蔽标志IM=0才能被响应。 ②不可屏蔽中断(NMI):这一类的中断请求不受I或IM的控制,均能被响应 5.多级中断 从中断服务程序中转入新的中断服务程序。 多级中断原则:优先级别高的中断源可以中断优先级别低的中断源的服务程序。 主秘序服雾摩嚴雾鞋雾桂
源要求CPU服务的情况。 ② 简单中断 暂停处理机的数据传送操作,插入一个外设与内存之间的数据传送操作。 优点: 速度快,适用于高速外设。 缺点: 费器材,只能处理简单事件。 (3) 按中断请求的可屏蔽性分 ① 可屏蔽中断 这一类的中断请求需在CPU的中断标志IF=1或中断屏蔽标志IM=0才能被响应。 ② 不可屏蔽中断(NMI):这一类的中断请求不受IF或IM的控制,均能被响应 5.多级中断 从中断服务程序中转入新的中断服务程序。 多级中断原则: 优先级别高的中断源可以中断优先级别低的中断源的服务程序
7.3.2程序中断处理过程 更件完成 软件完成 当前指令执行周期 保护寄存器 有DMA请求? 设置新的中断范围 开中断 有不可屏蔽中断? 中断处理程序实体 有可屏蔽中断? 恢复寄存器 CPI余许中断IF=1 中断返回 发中断应答INTA接 (恢复PSW,PC) 中 入栈 取中断处理程序入 地址送入PC 下条指令取指周期 (1)中断源的中断 请求方式 (2)中断请求 图720中断响应周期流程与中断处理程序的一般流程 的排队判优 (3)中断响应 (4)中断处理 (5)中断返回 7.3.3中断系统应解决的问题 中断源的中断请求 (1)中断源 引起中断的设备或事态,称为中断源 (2)中断源的状态标志
7.3.2 程序中断处理过程 (1)中断源的中断 请求方式 (2)中断请求 的排队判优 Y N Y Y N 当前指令执行周期 DMA 周期 发中断应答 INTA 接 收中断向量 VA 中断处理程序实体 设置新的中断范围 保护寄存器 开中断 恢复寄存器 关中断(0→IF) PC,PSW 入栈 中断返回 (恢复 PSW,PC) 下条指令取指周期 取中断处理程序入口 地址送入 PC, 有不可屏蔽中断? 有可屏蔽中断? CPU 允许中断 IF=1? 有 DMA 请求? 中断响应周期 硬件完成 软件完成 N N 图 7.20 中断响应周期流程与中断处理程序的一般流程 (3)中断响应 (4)中断处理 (5)中断返回 7.3.3 中断系统应解决的问题 1. 中断源的中断请求 (1)中断源 引起中断的设备或事态,称为中断源。 (2)中断源的状态标志
表示中断源工作情况的标志。 例:PDP-11外设控制状态寄存器DSW(设备状态字) 其中有特征位S、I、R、D等 S=1,启动外设 I=1允许外设提出中断请求;I=0不允许提出中断请求。 R=1准备好/完成,即就绪;R=0未就绪 D=1设备正在工作;D=0设备闲 CPU通过1O指令执行,实现对外设状态寄存器的控制、检查 (3)中断请求信号的记录和传送 ①中断请求信号的记录 设置中断请求触发器CRQ,记录中断请求信号 CRQ=1向CPU请求中断,CRQ=0无请求中断 置“1”CQ的条件: a.准备好/完成位R=1 b.中断允许位=1或中断屏蔽位IM=0 而内部中断只要有错误发生时,就应发出中断请求。 ②中断请求信号的传送 a.单线请求(链式查询) INTRE INTR 中断源1 CPU CP INTA 中断 INTRo 源 中断源n a)单线中 (b)多线中断 图7.22中断请求信号的传递方式 所有外设中断源的中断请求信号通过同一根“中断请求总线”传送给CPU。 识别中断源①借助程序查询请求中断的中断源 ②通过中断查询指令发 INACK信号将靠近CPU的请求中断的设备码 放到地址线上以得到服务。 b.独立请求 每个设备都有一根请求线和一根响应线中断请求信号经过判优逻辑形成中 断向量地址送给CPU。 C.多线请求,菊花链响应
表示中断源工作情况的标志。 例:PDP-11外设控制状态寄存器DSW(设备状态字) 其中有特征位S、I、R、D等 S=1 ,启动外设。 I=1 允许外设提出中断请求;I=0 不允许提出中断请求。 R=1 准备好/完成,即就绪;R=0 未就绪。 D=1 设备正在工作;D=0 设备闲。 CPU通过I/O指令执行,实现对外设状态寄存器的控制、检查。 (3)中断请求信号的记录和传送 ① 中断请求信号的记录 设置中断请求触发器CIRQ,记录中断请求信号。 CIRQ=1 向CPU请求中断,CIRQ=0 无请求中断。 置“1” CIRQ 的条件: a. 准备好/完成位 R=1 b.中断允许位 I=1 或中断屏蔽位 IM=0 而内部中断只要有错误发生时,就应发出中断请求。 ② 中断请求信号的传送 a. 单线请求(链式查询) CPU CPU 中断 源 1 中断 源 2 中断 源 n ( a ) 单线中断 中断源 1 中断源 n INTA INTR (b) 多线中断…… … … INTR1 INTRn 图 7.22 中断请求信号的传递方式 所有外设中断源的中断请求信号通过同一根“中断请求总线”传送给CPU。 识别中断源:①借助程序查询请求中断的中断源 ②通过中断查询指令发INACK信号,将靠近CPU的请求中断的设备码 放到地址线上以得到服务。 b. 独立请求 每个设备都有一根请求线和一根响应线.中断请求信号经过判优逻辑形成中 断向量地址送给CPU。 c. 多线请求,菊花链响应
NTAI 中断 源1-1 源 NTR2 NTA? 中断 中断 源2-1 INTRM INTAM 中断 (c)名线名扔中断 图7.22中断请求信号的传递方式 每组设备给予一根中断请求线,中断响应线以菊花链方式连接本组设备。 级别:首先取决于行(主优先级),而在同一行中,靠近CPU的设备具有较高的优先级。 2.中断请求的排队判优 (1)单线请求(链式查询)的排优 001010 001011 001000 编码器 图7.23串行排队链判优识别逻辑及中断向量的产生 ①所有外中断源的中断请求由INTR(上线)传送给CPU ②CPU执行地址询问指令,发出INTA信号,将当时请求中断的优先中断源的中断向
CPU 中断 源 2-1 中断 源 1-2 中断 源 1-1 中断 源 1-n 中断 源 m-1 中断 源 m-n 中断 源 m-2 中断 源 2-n 中断 源 2-2 (c) 多线多级中断 INTR1 INTA1 INTR2 INTA2 INTRM INTAM …… 图 7.22 中断请求信号的传递方式 每组设备给予一根中断请求线,中断响应线以菊花链方式连接本组设备。 优先级别:首先取决于行(主优先级),而在同一行中,靠近CPU的设备具有较高的优先级。 2.中断请求的排队判优 (1) 单线请求(链式查询)的排优 7 8 9 INTA INTI INTO IR1 IS1 IR2 IS2 IR3 IS3 IR2 IR3 1 2 3 4 5 6 编码器 数 据 总 线 001010 001011 001000 图7.23 串行排队链判优识别逻辑及中断向量的产生 IR1 ① 所有外中断源的中断请求由 INTR(上线)传送给 CPU ② CPU 执行地址询问指令,发出 INTA 信号,将当时请求中断的优先中断源的中断向
量送回CPU ③请求中断的优先中断源得到服务 (2)独立请求的排优 编石 IRI IR2 排队器 3.中断响应 (1)中断响应 CPU中止现行程序的执行,转向中断服务程序的过程 (2)响应过程应该解决的问题 ①关键性硬件状态的保存 ②中断请求设备的识别 ③响应速度的提高 (3)CPU响应可屏蔽中断请求的条件 ①CPU处于允许(开放)中断的状态 ②至少有一个中断源请求中断; ③通常一条指令执行完 (4)中断响应周期中断隐指令的功能 ①识别优先中断源 ②保护程序断点(PC)和程序状态字(PSW) ③关中断(0→IF) ④中断服务程序入口→PC。新的PSW→PSW寄存器
量送回 CPU ③ 请求中断的优先中断源得到服务 (2)独立请求的排优 编 码 排 队 器 IR1 IR2 3.中断响应 (1)中断响应 CPU中止现行程序的执行,转向中断服务程序的过程。 (2).响应过程应该解决的问题: ① 关键性硬件状态的保存 ② 中断请求设备的识别 ③ 响应速度的提高 (3) CPU响应可屏蔽中断请求的条件 ① CPU处于允许(开放)中断的状态; ② 至少有一个中断源请求中断; ③ 通常一条指令执行完。 (4) 中断响应周期中断隐指令的功能。 ① 识别优先中断源 ② 保护程序断点(PC)和程序状态字(PSW) ③ 关中断(0→IF) ④ 中断服务程序入口→PC。新的 PSW→PSW 寄存器
发中断应答INTA 接收中断向量VA 关中断(0→IF) 中断响应周期 PC、PSW进栈 取中断处理程序入口地址送入PC 图726中断响应周期流程 中断处理 保护寄存器 设置新的中断范围 前处理部分 开中断 中断处理程序实体 中断服务 关中断 「恢复寄存器 恢复部分 恢复屏蔽字 开中断 中断返回 图727中断处理程序的流程 (1)前处理部分 ①将在中断处理程序过程中用到的一些通用寄存器的内容转存(保护) ②按多级中断的原则设置新的中断范围 ③开中断以允许中断的嵌套 (2)中断服务 按中断源的服务要求执行中断服务程序 (3)恢复部分 ①关中断以便于恢复现场的进行 ②恢复原屏蔽字 ③开中断以便中断返回后可响应新的中断
发中断应答 INTA 接收中断向量 VA 关中断(0→IF) PC、PSW 进栈 取中断处理程序入口地址送入 PC 中断响应周期 图 7.26 中断响应周期流程 4. 中断处理 设置新的中断范围 保护寄存器 恢复寄存器 中断返回 前处理部分 中断服务 恢复部分 图 7.27 中断处理程序的流程 中断处理程序实体 恢复屏蔽字 开中断 开中断 关中断 (1)前处理部分 ① 将在中断处理程序过程中用到的一些通用寄存器的内容转存(保护) ② 按多级中断的原则设置新的中断范围 ③ 开中断以允许中断的嵌套 (2)中断服务 按中断源的服务要求执行中断服务程序 (3)恢复部分 ① 关中断以便于恢复现场的进行 ② 恢复原屏蔽字 ③ 开中断以便中断返回后可响应新的中断