1.5k likes | 1.63k Views
第5章 输入输出系统. 5.1 概述. 5.2 外部设备. 5.3 I/O 接口. 5.4 程序查询方式. 5.5 程序中断方式. 5.6 DMA 方式. 5.1 概 述. 一、输入输出系统的发展概况. 1. 早期. 分散连接. CPU 和 I/O 设备 串行 工作. 程序查询方式. 2. 接口模块和 DMA 阶段. 总线连接. 中断方式. CPU 和 I/O 设备 并行 工作. DMA 方式. 3. 具有通道结构的阶段. 4. 具有 I/O 处理机的阶段. 主机. I/O 设
E N D
第5章 输入输出系统 5.1 概述 5.2 外部设备 5.3 I/O接口 5.4 程序查询方式 5.5 程序中断方式 5.6 DMA方式
5.1 概 述 一、输入输出系统的发展概况 1. 早期 分散连接 CPU 和 I/O设备 串行 工作 程序查询方式 2. 接口模块和 DMA 阶段 总线连接 中断方式 CPU 和 I/O设备 并行 工作 DMA 方式 3. 具有通道结构的阶段 4. 具有 I/O 处理机的阶段
主机 I/O 设 备 CPU MM 主 存 储 器 ALU 算术逻辑部件 CU 控制单元 • 输入输出系统 • 计算机与外部世界联系的设备与途径 I/O接口 (设备控制器)
CPU或主存与外设(I/O设备)交换信息的过程称为输入输出。完成该过程的系统称为输入输出系统(I/O系统) 。 I/O系统包括外设、 I/O接口和完成输入输出操作的程序。 接口是计算机与I/O设备或其他系统之间所设置的逻辑控制部件,也称I/O控制器。
字符输入设备:键盘 图形输入设备:鼠标、光笔 输入设备 图象:扫描仪、传真机、摄象机 模拟设备:语音输入、AD转换 活字式 击打式 点阵式 打印机 激光 非击打式 喷墨 外设 输出设备 绘图仪 语音输出 CRT 显示器 液晶、等离子体显示器 多媒体 终端设备 磁盘 外存储器 磁带 光盘 通信设备
(1) I/O 指令 (2)通道指令 操作码 命令码 设备码 二、输入输出系统的组成 1. I/O 软件 CPU 指令的一部分 通道自身的指令 指出数组的首地址、传送字数、操作命令 如 IBM/370 通道指令为 64 位 2. I/O 硬件 设备 I/O 接口 设备 设备控制器 通道
三、I/O 设备与主机的联系方式 1. I/O 设备编址方式 (1) 统一编址 用取数、存数指令 (2) 不统一编址 有专门的 I/O 指令 2. 设备选址 用设备选择电路识别是否被选中 3. 传送方式 (1) 串行 (2) 并行
I/O系统基本功能: 1、能进行地址译码和设备选择。 2、能实现数据缓冲和数据锁存。 3、能完成信息格式和电平的转换。 4、能保证数据传送的定时与协调。
输入输出系统 • I/O接口(设备控制器) • 解决主机与I/O设备的差异:时钟、速率、数据格式、字宽等 • 不仅仅是连线 主机 I/O接口 I/O设备
输入输出系统 • 设备控制器的功能 • 接收主机命令,提供设备状态,控制设备 • 识别地址码:标识各个设备,完成地址译码 • 支持主机采取程序查询、中断、DMA等访问方式 • 实现主机与设备间的通信控制:同步、选择、中断控制等 • 实现数据缓冲:速率匹配 • 数据类型、格式等转换
输入输出系统 • 输入输出设备编址 • 存储器统一编址 • 将I/O设备和内存统一编址 • CPU将设备视为内存的一部分 • 不需专门的I/O指令,按访问内存的方式访问设备 • 独立编址 • 将设备与内存的编址相区别 • 需要设置专门的I/O指令
设备控制器(I/O接口) 输入输出接口的基本功能是: 1. 实现主机和外围设备之间的通信联络控制。其中包括同步控制、设备选择和中断控制等。DMA设备还应具有直接访问存储器功能,并给出存储地址。 2. 实现数据缓冲,以达到主机同外设之间的速度匹配。 3. 接受主机的命令,提供设备接口的状态,并按照主机的命令控制设备。 输入输出接口的类型有: (1) 按照数据传送的宽度可分为并行接口和串口。 (2) 传送的控制方式可分为程序控制输入输出接口,程序中断输入输出接口和直接存储器存取(DMA)接口等。
I/O 接 口 I/O 设 备 CPU “Ready” “Strobe” 命令字 数据字 命令字 终止位 起始位 起始位 终止位 0 1 1 0 1 0 0 0 2×9.09 ms 2×9.09 ms 9.09 ms 9.09 ms 4. 联络方式 (1) 立即响应 (2) 异步工作采用应答信号 并行 串行 (3) 同步工作采用同步时标
外设 Ⅰ 每台设备都配有一套 主 外设 Ⅱ 控制线路和一组信号线 机 外设 Ⅲ 5. I/O 设备与主机的连接方式 (1) 辐射式连接 不便于增删设备 (2) 总线连接 便于增删设备
现行程序 CPU向I/O发 读指令 CPU读I/O状态 CPU读I/O状态 出错 未准备就绪 检查状态 已准备就绪 检查状态 从I/O接口中读 一个字到CPU 未准备就绪 出错 从CPU向主存 写入一个字 否 完成否 是 四、I/O设备与主机信息传送的控制方式 1. 程序查询方式 CPU 和 I/O 串行工作 踏步等待
程序直接控制方式 • 程序直接控制(programed direct control)方式就是完全通过程序来控制主机和外围设备之间的信息传送。 • 通常的办法是在用户的程序中安排一段由输入输出指令和其他指令所组成的程序段直接控制外围设备的工作。 • 立即(程序)传送方式 • 程序查询方式
程序直接控制方式 • 立即(程序)传送方式 • I/O接口和外设总是准备好接收主机输出数据 • 无需查询接口和外设状态 • 例如: • 信号灯、控制马达等
开始 准备好? 读写数据 结束 程序直接控制方式 • 程序查询方式 • 主机程序等待接口和外设就绪方能输入/输出 • 需要不断查询接口和外设状态 • 大部分输入输出行为都需要协同 不断查询和长期等待造成CPU利用率不高 CPU充当唯一的主动控制者
读外设状态 N 就绪? Y 与外设交换数据 程序查询方式的特点: • 优点: • 较好协调主机与外设之间的时间差异; • 所用硬件少。 • 缺点: • 主机与外设只能串行工作; • 一个时间段只能与一个外设进行通讯; • CPU的利用率低。
2. 程序中断方式 • 程序中断控制方式(中断) • CPU运行当前程序的过程中; • I/O设备或其他非预期的急需处理事务向CPU发出中断请求; • CPU中止当前程序,且转至另一服务程序处理相关事件; • 处理完毕后返回原程序 • 中断有下列一些作用: • CPU与I/O设备并行工作 • 硬件故障处理 CPU被动响应中断和完成I/O
自身准备 与主机交换信息 现行程序 … 启动 I/O设备 中断服务程序 没有踏步等待现象 … K 中断现行程序 K+1 … 2. 程序中断方式 CPU 不查询 I/O 工作 CPU 暂停现行程序 CPU 和 I/O 并行工作
CPU I/O I/O 设备工作 CPU 做其他事情 中断请求 I/O CPU 出错 未错 I/O CPU 从 I/O 接口中读一个字到CPU CPU 主存 从 CPU 向主存写入一个字 否 是 程序中断方式流程 CPU 向 I/O 发读指令 准备就绪 CPU 读 I/O 状态 检查状态 完成否?
CPU主程序 应 响 中断服务程序 断 中断请求 中 中 断 返 回 中断请求 程序中断输入输出方式 • 中断: CPU暂时中止当前程序运行,转而处理意外出现的情况或有意安排的任务,称为“中断”。 • 中断请求:当外设准备好后,向CPU发出要求传送数据或服务的信号,称为中断请求。 • 中断源:在机器中引起中断产生的事件或发生中断请求的来源称为中断源。
CPU主程序 应 响 中断服务程序 断 中断请求 中 中 断 返 回 中断请求 程序中断输入输出方式 • 中断服务程序:为处理意外情况或有意安排的任务而编写的程序。 • 中断响应:CPU接到中断请求信号,若某种条件满足(允许中断),就保存断点,找到中断服务程序入口,转至中断服务程序执行,在中断服务结束后恢复断点,继续原程序的执行(中断返回),这个过程称作中断响应。
程序中断输入输出方式 CPU与打印机并行工作时间图
程序中断输入输出方式 • 中断的典型应用 • CPU与I/O设备并行工作 • 硬件故障处理 • 实现人机联系 • 实现多道程序和分时操作 • 实现实时处理 • 实现应用程序和操作系统(管态程序)的联系
中断的产生和响应 • 中断源 • I/O设备、定时钟等来自处理机外部设备的中断,又叫外中断 • 处理器硬件故障或程序“出错”引起的中断,又叫内中断 • 由“Trap”指令产生的软中断,这是在程序中预先安排好的。而前面两种中断则是随机发生的
中断的产生和响应 • 中断触发器(寄存器) • 当中断源发生引起中断的事件时,先将它保存在设备控制器的“中断触发器”中,即将“中断触发器”置“1”。当中断触发器为“1”时,向CPU发出“中断请求”信号。每个中断源有一个中断触发器。 • 全机的多个中断触发器构成中断寄存器。其内容称为中断字或中断码。 • CPU进行中断处理时,根据中断字确定中断源,转入相应的服务程序。 定时器中断 中断寄存器 0 0 0 0 1 0 0 0
中断的产生和响应 • 中断的分级与中断优先级 • 设计中断系统时,把全部中断源按中断性质和处理的轻重缓急进行排队并给予优先权。 • 所谓优先权是指有多个中断同时发生时,对各个中断响应的优先次序。
中断的产生和响应 • 非可屏蔽中断和可屏蔽中断 • 用程序方式有选择地封锁部分中断,而允许其余部分中断仍得到响应,称为中断屏蔽。 • 可以为每个中断源设置一个中断屏蔽触发器来屏蔽该设备的中断请求。 • 由各设备的中断屏蔽触发器组成中断屏蔽寄存器。 • 中断又分为可屏蔽中断和非屏蔽中断。 中断屏蔽:用程序方式有选择的封锁部分中断,允许其他中断得到响应,通过设置中断屏蔽寄存器完成
中断的响应和处理 • 中断响应的前提条件 • 中断源有中断请求 • CPU允许接受中断请求 • 一条指令已经执行完毕,下条指令未启动执行 • 响应中断:转入中断服务程序
进入不可再次响应中断的状态。 响应的只能是恢复现场、恢复断点优先权最高的那个中断源。 把当前的程序计数器PC中的内容(即断点)保存起来,也包括其他寄存器 关中断 保存断点、保存现场 下来要执行中断服务程序,开中断将允许更高级中断请求得到响应,实现中断嵌套。 转入中断服务程序 开中断 执行中断服务程序 退出中断 :在退出时,又应进入不可中断状态 关中断 保存断点:保存被中断的位置,即PC,硬件完成 保存现场:保存原程序的其他各类寄存器,编程实现 恢复现场、恢复断点 开中断 返回断点
判别中断源 • 查询法 • 查询中断触发器/中断寄存器 • 串行排队链法 • 硬件实现的中断源选择电路 • 向CPU传送胜出的设备码 • 向量中断法 • CPU根据中断源设置特定的中断处理程序入口 • 可以采用多级中断向量
判别中断源 • 向量中断法 • 中断向量:中断处理程序的入口地址 • 每个中断源对应一个中断向量 • 通常实现为中断向量表,位于主存的特定位置,又称为中断入口地址表——表中存储中断向量 • 中断向量地址:中断处理程序入口地址的地址
判别中断源 • 向量中断法 中断类型号8×4=中断向量表地址 中断向量 • 中断向量:中断处理程序的入口地址 • 每个中断源对应一个中断向量 • 通常实现为中断向量表,位于主存的特定位置,又称为中断入口地址表——表中存储中断向量 • 中断向量地址:中断处理程序入口地址的地址
多重中断处理 • 在处理某一个中断过程又发生新的中断请求,从而中断该服务程序的执行,又转去进行新的中断处理。又称为中断嵌套。 • 涉及优先级问题 • 高优先级中断可以中断低优先级中断服务程序
一个存取周期 CPU 执行现行程序 CPU 执行现行程序 存取周期结束 启动I/O DMA请求 I/O准备 I/O准备 实现I/O与主存之间的传送 3. DMA 方式 主存和 I/O 之间有一条直接数据通道 不中断现行程序 周期挪用(周期窃取) CPU 和 I/O 并行工作
DMA输入输出方式 • 定义:DMA是I/O设备与主存储器之间由硬件组成的直接数据通路,用于高速I/O设备与主存之间的成组数据传送。 • 方法:数据传送是在DMA控制器控制下进行的,由DMA控制器给出当前正在传送的数据字的主存地址,并统计传送数据的个数以确定一组数据的传送是否已结束。在主存中要开辟连续地址的专用缓冲器,提供或接收传送的数据。在数据传送前和结束后通过程序或中断对缓冲器和DMA控制器进行预处理和后处理。
DMA输入输出方式 • DMA控制器的结构
memory processor I/O Interface (DMA Controller) I/O device DMA输入输出方式 • DMA的功能 • 很大程度上代替CPU完成批量数据的搬运工作 冲突
DMA输入输出方式 • 三种工作方式 • CPU暂停方式 • CPU周期窃取方式 • 直接访问存储器工作方式
DMA输入输出方式 • 三种工作方式 • CPU暂停方式 • DMA控制器发出请求 • CPU释放总线控制权 • DMA开始传输 • DMA传输完毕 • DMA发出中断且释放总线控制权 • CPU重获总线控制权 优点:控制简单、适用于高速传输 缺点:DMA传输独占总线,造成CPU和存储效能浪费,即:并未真正实现并发
三种工作方式 • CPU周期窃取方式 • DMA请求发生时,挪用或窃取总线占用权一个或几个主存周期,完成一个数据的传输 • CPU不访存(复杂指令mul):DMA使用 • CPU与DMA同时发生:DMA优先,窃取一到二个存取周期,且在下次传输到来之前完成访存 • DMA控制器每挪用一个主存周期都要申请总线控制权、建立总线控制权和归还总线控制权。 优点:充分发挥了CPU与内存的效能 缺点:每次传输都请求总线(需2~5周期,包括请求、接管、归还等),适用于外设速率较低的情况
三种工作方式 • 直接访问存储器工作方式 • DMA控制器发出请求 • 如果CPU不占用存储总线则继续执行原程序,否则DMA抢占总线控制权 • DMA不能占用或破坏CPU硬件资源或工作状态 优点:控制比较简单、实现了并发,适用于高速传输 缺点:DMA传输独占总线,影响CPU访存
CPU 主存 总线 DMA 响应 DMA 请求 ADR DBR MAR DMA 控制逻辑 WC CSR 中断逻辑 I/O设备 DMA控制器组成 设备寄存器 外围设备地址寄存器:存放I/O设备的设备码。具体内容取决于I/O设备的数据格式和地址字编址方式。 DMA控制逻辑:在DMA取得总线控制权后控制主存和设备之间的数据传送。 首址寄存器:初值是主缓冲区的首地址。传送前由程序输入。 数据缓冲寄存器:暂存I/O设备与主存转送的数据。 字数计数器:对传送数据的总字数进行统计。 控制与状态寄存器:存放控制字和状态字。 中断控制逻辑:负责申请CPU对DMA进行预处理和后处理。
DMA和中断的区别 • ⑴中断方式是程序切换,需要保护和恢复现场;而DMA方式除了开始和结尾时,不占用CPU任何资源. • ⑵对中断请求的响应只能发生在每条指令执行完毕时,而对DMA请求的响应可以发生在每个机器周期结束时. • ⑶中断传送过程需要CPU的干预,而DMA传送过程不需要CPU的干预,故数据传送速率非常高,适合于高速外设的成组传送.
周期窃取的进一步说明 • 周期窃取 • DMA模块需要控制总线,因此只有在CPU不需要总线或强制CPU暂停(挂起操作)时才能使用总线。 • CPU在指令周期的哪个位置上可以挂起。 • DMA传输一个字,并把总线控制权交还给CPU。 • 注意:CPU不是中断,因此不保存现场,也不做其他事情,只是等待一个总线周期。 • DMA期间,CPU执行的速度变慢。 • 附: 3.DMA和CPU分时使用总线,也称为透明的DMA,每个存储周期分成二片,一片给CPU,另一片给DMA
DMA传送过程分为三个阶段:DMA传送前预处理、数据传送及传送后处理。1.DMA预处理 在进行DMA数据传送之前要用程序做一些必要的准备工作。2.DMA控制I/O设备与主存之间的数据交换输入数据 :见书292页输出数据 :见书292页3.CPU中断原程序进行后处理 若需继续交换数据,则又要对DMA控制器进行初始化;若不需交换数据,则停止外设;若为出错,则转错误诊断及处理程序。 详见下图