第6章 输入/输出系统 曲冠南 qugnStu@live.com http://cc.jlu.edu.cn/ComputerArchitecture.html
章节 题 目 主要内容 6.1 I/O系统性能与CPU性能 6.2 I/O系统的可靠性、可用性和可信性 6.3 廉价磁盘冗余阵列RAID 题 目 主要内容 6.1 I/O系统性能与CPU性能 系统响应时间=I/O系统响应时间+CPU处理时间 评价I/O系统性能的参数:链接特性、容量、响应时间、吞吐率 6.2 I/O系统的可靠性、可用性和可信性 可靠性/可用性/可信性,平均无故障时间、失效率 系统失效率为部件失效率之和 6.3 廉价磁盘冗余阵列RAID 根据粒度和纠错来划分,RAID0-RAID6 6.4 总线 共享介质、总线宽度、同步/异步、分离事务总线、CPU与外部设备的输入输出方式(程序查询、中断、DMA、通道处理机) 补充 基本输入输出方式 程序控制输入输出、中断输入输出、直接存储器访问 中断系统 中断源的组织、中断系统的软硬件功能分配 6.5 通道处理机 通道处理机功能、工作过程、三种通道(字节多路、选择、数组多路)、通道最大流量、通道实际流量
6.1 I/O系统性能与CPU性能 输入/输出系统简称I/O系统 它包括: I/O系统是计算机系统中的一个重要组成部分 按照主要完成的工作进行分类: 存储I/O系统(本章内容) 通信I/O系统
人们对I/O系统的作用和性能没有给予足够的重视 人们更多地关注:CPU的性能 (外围的就似乎没那么重要了) 系统的响应时间(衡量计算机系统的一个更好的指标) 从用户输入命令开始,到得到结果所花费的时间。 系统响应时间= I/O系统的响应时间+ CPU的处理时间
多进程技术只能够提高系统吞吐率,并不能够减 少系统响应时间。 进程切换时可能需要增加I/O操作。 6.1 I/O系统性能与CPU性能 使用多进程技术能够改善系统响应时间? 多进程技术只能够提高系统吞吐率,并不能够减 少系统响应时间。 进程切换时可能需要增加I/O操作。 可切换的进程数量有限,当I/O处理较慢时,仍 然会导致CPU处于空闲状态。
6.1 I/O系统性能与CPU性能 例 假设一台计算机的I/O处理时间占响应时间的10%,当I/O性能保持不变,而对CPU的性能分别提高10倍和100倍时,该计算机系统的总体性能会发生什么样的变化?
6.1 I/O系统性能与CPU性能 解 假设改进前程序的执行时间为1个单位时间。 (1)如果CPU的性能提高10倍,程序的执行时间(包含I/O处理时间)减少为: (110%) / 10 + 10% = 0.19 即整机性能只能提高到原来的约5倍,约50%的CPU性能被浪费在I/O处理上。 (2)如果CPU的性能提高100倍,程序的执行时间减少为: (1 10%) / 100 + 10% = 0.109 这表示整机性能只能提高约10倍,约90%的性能被浪费在没有改进的I/O处理上。
评价I/O系统性能的参数主要有: 连接特性 I/O系统的容量 响应时间 吞吐率 另一种衡量I/O系统性能的方法: 6.1 I/O系统性能与CPU性能 评价I/O系统性能的参数主要有: 连接特性 (哪些I/O设备可以和计算机系统相连接) I/O系统的容量 (I/O系统可以容纳的I/O设备数) 响应时间 吞吐率 另一种衡量I/O系统性能的方法: 考虑I/O操作对CPU的打扰情况。 即考查某个进程在执行时,由于其他进程的I/O操 作,使得该进程的执行时间增加了多少。
6.2 I/O系统的可靠性、可用性和可信性 1. 反映外设可靠性能的参数有: 可靠性(Reliability) 可用性(Availability) 可信性(Dependability)
2. 系统的可靠性:系统从某个初始参考点开始一直连续提供服务的能力。 6.2 I/O系统的可靠性、可用性和可信性 2. 系统的可靠性:系统从某个初始参考点开始一直连续提供服务的能力。 用平均失效前时间(旧教材为平均无故障时间)MTTF来衡量。 (Mean Time To Failure) MTTF的倒数就是系统的失效率。 如果系统中每个模块的生存期服从指数分布,则系统整体的失效率是各部件的失效率之和。 系统中断服务时间:平均修复时间(MTTR)
3. 系统的可用性:系统正常工作的时间在连续两次正常服务间隔时间中所占的比率。 6.2 I/O系统的可靠性、可用性和可信性 3. 系统的可用性:系统正常工作的时间在连续两次正常服务间隔时间中所占的比率。 MTTF+MTTR:平均失效间隔时间MTBF (Mean Time Between Failure) 4. 系统的可信性:服务的质量。即在多大程度上可以合理地认为服务是可靠的。(不可以度量)
6.2 I/O系统的可靠性、可用性和可信性 例6.2 假设磁盘子系统的组成部件和它们的MTTF如下: (1)磁盘子系统由10个磁盘构成,每个磁盘的MTTF为1000000小时; (2)1个SCSI控制器,其MTTF为500000小时; (3)1个不间断电源,其MTTF为200000小时; (4)1个风扇,其MTTF为200000小时; (5)1根SCSI连线,其MTTF为1000000小时。 假定每个部件的生存期服从指数分布,同时假定各部件的故障是相互独立的,求整个系统的MTTF。
6.2 I/O系统的可靠性、可用性和可信性 解 整个系统的失效率为: 系统的MTTF为系统失效率的倒数,即: 即将近5年。
有效构建方法(valid construction) 5. 提高系统组成部件可靠性的方法 有效构建方法(valid construction) 在构建系统的过程中消除故障隐患,这样建立起来 的系统就不会出现故障。 纠错方法(error correction) 在系统构建中采用容错的方法。这样即使出现故障, 也可以通过容错信息保证系统正常工作。
6.3 廉价磁盘冗余阵列RAID 磁盘阵列DA(Disk Array): 一组物理磁盘驱动器,在操作系统下被视为单一的逻辑驱动器。 多个磁盘并行工作。 以条带(striping)为单位把数据均匀地分布到多个磁盘上。(交叉存放) 条带存放可以使多个数据读/写请求并行地被处理,从而提高总的I/O性能。
6.3 廉价磁盘冗余阵列RAID 数据映射(以RAID0为例) 所有数据和系统数据看成是存储在逻辑磁盘上; 磁盘以条带的形式划分,条带可以是物理的块、扇区、或者其他单位。 一组逻辑上连续的条带作为条带集,与每个磁盘中一个条带映射。 该图取自计算机组成与体系结构性能设计
多个独立的请求可以由多个盘来并行地处理。 6.3 廉价磁盘冗余阵列RAID 2. 这里并行性有两方面的含义: 多个独立的请求可以由多个盘来并行地处理。 减少了I/O请求的排队等待时间 如果一个请求访问多个块,就可以由多个盘合作来并行处理。 提高了单个请求的数据传输率 问题:阵列中磁盘数量的增加会导致磁盘阵列可靠性的下降。 如果使用了N个磁盘构成磁盘阵列,那么整个阵列 的可靠性将降低为单个磁盘的1/N。 解决方法:在磁盘阵列中设置冗余信息盘 当单个磁盘失效时,丢失的信息可以通过冗余盘中 的信息重新构建。
廉价磁盘冗余阵列 磁盘冗余阵列 简称盘阵列技术 1988年,Patterson教授首先提出。 6.3 廉价磁盘冗余阵列RAID Redundant Arrays of Inexpensive Disks 磁盘冗余阵列 Redundant Arrays of Independent Disks 简称盘阵列技术 1988年,Patterson教授首先提出。
大多数磁盘阵列的组成可以由以下两个特征来区分: 数据交叉存放的粒度 6.3 廉价磁盘冗余阵列RAID 大多数磁盘阵列的组成可以由以下两个特征来区分: 数据交叉存放的粒度 (可以是细粒度的,也可以是粗粒度的) 细粒度磁盘阵列是在概念上把数据分割成相对较小 的单位交叉存放。 优点:所有I/O请求都能够获得很高的数据传输率。 缺点:在任何时间,都只有一个逻辑上的I/O在处 理当中,而且所有的磁盘都会因为为每个请求进行 定位而浪费时间。 粗粒度磁盘阵列是把数据以相对较大的单位交叉存放。 多个较小规模的请求可以同时得到处理。 对于较大规模的请求又能获得较高的传输率。 冗余数据的计算方法以及在磁盘阵列中的存放方式
在磁盘阵列中设置冗余需要解决以下两个问题: 如何计算冗余信息? 6.3 廉价磁盘冗余阵列RAID 在磁盘阵列中设置冗余需要解决以下两个问题: 如何计算冗余信息? 大多都是采用奇偶校验码; 也有采用汉明码(Hamming code)或Reed-Solomon码的。 如何把冗余信息分布到磁盘阵列中的各个盘? 有两种方法: 把冗余信息集中存放在少数的几个盘中。 把冗余信息均匀地存放到所有的盘中。 (能避免出现热点问题)
RAID的分级及其特性 RAID级别 可以容忍的故障个数以及当数据盘为8个时,所需要的检测盘的个数 优 点 缺 点 公司产品
6.3 廉价磁盘冗余阵列RAID 有关RAID的几个问题 如何发现磁盘的故障 如何减少平均修复时间MTTR
6.3.1 RAID0 非冗余阵列,无冗余信息。 严格地说,它不属于RAID系列。 把数据切分成条带,以条带为单位交叉地分布存放到多个磁盘中。
6.3.2 RAID1 亦称镜像盘,使用双备份磁盘。 每当把数据写入磁盘时,将该数据也写入其镜像盘,形成信息的两个副本。
磁盘和镜像盘同时独立工作,由最先读出数据的磁盘提供数据,能实现快速的读取操作。 6.3 廉价磁盘冗余阵列RAID RAID1的特点 磁盘和镜像盘同时独立工作,由最先读出数据的磁盘提供数据,能实现快速的读取操作。 写性能由写性能最差的磁盘决定。不需要计算冗余信息,相对以后各级RAID来说,RAID1的写速度较快。 可靠性很高,数据的恢复很简单。 最昂贵的解决方法,物理磁盘空间是逻辑磁盘空间的两倍。
6.3 廉价磁盘冗余阵列RAID 6.3.3 RAID2 存储器式的磁盘阵列(按汉明纠错码的思路构建) 含4个数据盘的RAID2
各个数据盘上的相应位计算汉明校验码,编码位被存放在多个校验(ECC)磁盘的对应位上。 6.3 廉价磁盘冗余阵列RAID RAID2的特点 每个数据盘存放所有数据字的一位 (位交叉存放) 各个数据盘上的相应位计算汉明校验码,编码位被存放在多个校验(ECC)磁盘的对应位上。 冗余盘是用来存放汉明码的,其个数为log2m级。 m:数据盘的个数(也就是数据字的位数) m+p+1 <= 2^p 并未被广泛应用,目前还没有商业化产品。
6.3 廉价磁盘冗余阵列RAID 6.3.4 RAID3 位交叉奇偶校验盘阵列
细粒度的磁盘阵列,即采用的条带宽度较小。 只需要一个校验盘,校验空间开销比较小。 6.3 廉价磁盘冗余阵列RAID RAID3的特点 采用奇偶校验 写数据时 为每行数据形成奇偶校验位并写入校验盘 读出数据时 如果控制器发现某个磁盘出故障,就可以根据故障盘以外的所有其他盘中的正确信息恢复故障盘中的数据。(通过异或运算实现) 细粒度的磁盘阵列,即采用的条带宽度较小。 (可以是1个字节或1位) 只需要一个校验盘,校验空间开销比较小。
6.3.5 RAID4 块交叉奇偶校验磁盘阵列 采用比较大的条带,以块为单位进行交叉存放和计算奇偶校验。 实现目标:能同时处理多个小规模访问请求
RAID4读写特点 读取操作 写入操作 6.3 廉价磁盘冗余阵列RAID 每次只需访问数据所在的磁盘。 仅在该磁盘出现故障时,才会去读校验盘,并进行数据的重建。 写入操作 假定:有4个数据盘和一个冗余盘。 写数据需要2次磁盘读和2次磁盘写操作。
RAID4能有效地处理小规模访问,快速处理大规模访问,校验空间开销比较小。 Aparty’= A0’⊕ A0 ⊕ Aparty RAID4能有效地处理小规模访问,快速处理大规模访问,校验空间开销比较小。
6.3.6 RAID5 块交叉分布奇偶校验磁盘阵列 数据以块交叉的方式存于各盘,无专用冗余盘,奇偶校验信息均匀分布在所有磁盘上。
6.3 廉价磁盘冗余阵列RAID 6.3.7 RAID6 P+Q双校验磁盘阵列 特点 校验空间开销是RAID5的两倍 容忍两个磁盘出错
6.3.8 RAID10与RAID01 RAID10又称为RAID1+0 6.3 廉价磁盘冗余阵列RAID
6.3 廉价磁盘冗余阵列RAID RAID01又称为RAID0+1 先进行条带存放(RAID0),再进行镜像(RAID1)
6.3.9 RAID的实现与发展 实现盘阵列的方式主要有三种: 软件方式:阵列管理软件由主机来实现。 优点:成本低 缺点:过多地占用主机时间,且带宽指标上不去。 阵列卡方式:把RAID管理软件固化在I/O控制卡上,从而可不占用主机时间,一般用于工作站和PC机。 子系统方式:一种基于通用接口总线的开放式平台,可用于各种主机平台和网络系统。
在RAID冗余设计中,综合平衡性能、可靠性和开销的问题; 磁盘阵列技术研究的主要热点问题 新型阵列体系结构; RAID结构与其所记录文件特性的关系; 在RAID冗余设计中,综合平衡性能、可靠性和开销的问题; 超大型磁盘阵列在物理上如何构造和连接。
6.4 总 线 总线 总线是什么? 总线的关键特征 – 共享传输介质 总线的优点 — 成本低 总线的缺点 – 分时共享、瓶颈
物理上 卡或者板上刷出来的平行导线。 延伸到所有部件
2. 总线的 分类 片内总线 芯片内部 的总线 系统总线 计算机各部件之间 的信息传输线 数据总线 地址总线 控制总线 双向 与机器字长、存储字长有关 单向 与存储地址、 I/O地址有关 有出 有入 存储器读、存储器写 总线允许、中断确认 中断请求、总线请求
通信总线 用于 计算机系统之间 或 计算机系统与其他系统(如控制仪表、移动通信等)之间的通信 串行通信总线,远距离传输 传输方式 并行通信总线,近距离传输
3. 总线结构 大量的设备连接到总线上,有两个问题: 总线上连接的设备越多,总线越长,传输延迟越大。 3. 总线结构 大量的设备连接到总线上,有两个问题: 总线上连接的设备越多,总线越长,传输延迟越大。 总线上连接的设备越多,请求越多,总线成为瓶颈 解决方案 – 分层组织 单总线(系统总线) CPU 主存 I/O接口 I/O 设备1 设备2 … 设备n
多总线结构 (1) 双总线结构 具有特殊功能的处理器, 由通道对I/O统一管理 通道 I/O接口 设备n … 设备0 CPU 主存 主存总线 I/O总线
(2) 三总线结构 主存总线 DMA总线 I/O总线 CPU 主存 设备1 设备n 高速外设 I/O接口 …
(3) 三总线结构的又一形式 局域网 系统总线 CPU Cache 局部总线 扩展总线接口 扩展总线 Modem 串行接口 SCSI 局部I/O控制器 主存
(4) 四总线结构 多媒体 Modem 主存 扩展总线接口 局域网 SCSI CPU 串行接口 FAX 系统总线 局部总线 高速总线 扩展总线 图形 Cache/桥
4. 总线的设计 仲裁方式(判优控制) 总线的通信控制(时序) 分离事务总线
分布式:每个模块包含访问控制逻辑,以优先级仲裁策略为基础 4. 总线设计 – 仲裁方式 集中式:总线控制器分配总线时间 链式查询:授权信号BG传递 计数器定时查询:请求,计数,占用 独立请求:独立的请求/授权线 分布式:每个模块包含访问控制逻辑,以优先级仲裁策略为基础
链式查询方式 总 线 控 制 部 件 I/O接口0 … BS BR I/O接口1 I/O接口n BG 数据线 地址线 BS -总线忙 BR-总线请求 BG-总线同意 I/O接口1
计数器定时查询方式 BS -总线忙 BR-总线请求 总 线 控 制 部 件 数据线 地址线 I/O接口0 … BS BR I/O接口1 I/O接口n 设备地址 设备地址 计数器 1 I/O接口1
独立请求方式 总 线 控 制 部 件 数据线 地址线 I/O接口0 I/O接口1 I/O接口n … BR0 BG0 BR1 BG1 BRn BGn BG-总线同意 BR-总线请求 排队器 排队器
4. 总线的设计 - 总线通信控制 目的 解决通信双方 协调配合 问题 总线传输周期 申请分配阶段 寻址阶段 传数阶段 结束阶段 主模块申请,总线仲裁决定 主模块向从模块 给出地址 和 命令 主模块和从模块 交换数据 主模块 撤消有关信息 通信控制 – 通信双方如何知道何时开始,何时结束
4. 总线的设计 - 总线通信控制 同步通信 异步通信 由 统一时标 控制数据传送 采用 应答方式 ,没有公共时钟标准
同步式数据输入 T1 总线传输周期 T2 T3 T4 时钟 地址 读 命令 数据
同步式数据输出 T1 总线传输周期 T2 T3 T4 时钟 地址 数据 写 命令
异步通信 主设备 从设备 请 求 回 答 不互锁 半互锁 全互锁 单机 多机 网络通信
在有多个主设备时,可以通过打包技术来提高总线带宽。 4. 总线设计 – 分离事务总线 (又称:流水总线、悬挂总线、包交换总线) 在有多个主设备时,可以通过打包技术来提高总线带宽。 基本思想 将总线事务分成请求和应答两部分。 在请求和应答之间的空闲时间内,总线可以供其他的I/O使用,这样就不必在整个I/O过程中都独占总线。 分离事务总线有较高的带宽,但是它的数据传送延迟通常比独占总线方法大。
地址 1 2 3 数据 等待 完成 6.4 总 线 以读为例 读操作分成2部分:包含地址的读请求,包含数据的存储器应答 等待 完成 以读为例 读操作分成2部分:包含地址的读请求,包含数据的存储器应答 每个操作的这两个部分用标识区分,以便于CPU和存储器能够知道哪个应答对应哪个请求
6.4 总 线 5. CPU与外部设备进行输入/输出的方式 程序查询 中断 DMA 通道
补充 补充:基本的输入输出方式 程序查询 中断 DMA
程序控制输入输出 程序控制输入输出特点 何时进行输入输出操作由CPU控制 外围设备与CPU处于异步工作关系。 补充 程序控制输入输出 又称为状态驱动输入输出、应答输入输出、查询输入输出、条件驱动输入输出。 程序控制输入输出特点 何时进行输入输出操作由CPU控制 外围设备与CPU处于异步工作关系。 数据都经过CPU 低速设备
补充 一个处理机管理多台外围设备
如,在多个外设的情况下,通过改变测试顺序,很容易改变设备优先级。 补充 程序控制输入输出优点 灵活性好 如,在多个外设的情况下,通过改变测试顺序,很容易改变设备优先级。 程序控制输入输出的缺点 在一般的情况下不能实现处理机与外围设备并行工作
流程:保护现场,中断服务,恢复现场,中断返回 补充 中断 外围设备方面,变被动为主动 CPU方面,测试是否有中断请求 流程:保护现场,中断服务,恢复现场,中断返回 特点 CPU和外设能够并行工作 能够处理例外事件,如电源掉电、非法指令等; 数据的输入输出经过CPU 灵活性好 低速设备
特点 补充 DMA 主存储器既可以被CPU访问,也可以被外围设备访问。存储管理部件负责访存排队,外围设备访问优先级高;
DMA 的工作过程 补充 DMA 传送过程 预处理、数据传送、后处理 (1) 预处理 CPU预置信息 对字计数器赋予交换数据的个数
5.6 (2) DMA 传送过程示意 数据传送 DMA请求 CPU 预处理: 否 主存起始地址 允许传送? 设备地址 DMA 传送数据个数 主存地址送总线 数据送I/O设备(或主存 ) 修改 主存地址 修改 字计数器 数据块 传送结束? 向CPU申请 程序中断 DMA请求 否 是 数据传送 CPU 预处理: 主存起始地址 设备地址 传送数据个数 启动设备 DMA 数据传送: 继续执行主程序 同时完成一批数据传送 后处理: 中断服务程序 做 DMA 结束处理 继续执行主程序
补充 (5) 后处理 校验送入主存的数是否正确 是否继续用 DMA 测试传送过程是否正确,错则转诊断程序 由中断服务程序完成
使用方式 停止CPU访问主存 周期挪用 交替访问
中断系统 – 中断源的组织 中断可能由什么导致的? 补充 外围设备导致的,如DMA完成一个数据块传送 处理机产生的,如算数运算操作溢出 存储器产生的,如非法地址 控制器产生的,如非法指令 总线产生的,如输入输出总线出错 实时过程控制产生的,如实时检测设备采样中断 程序调试过程中的断点 硬件故障 电源故障 。。。
中断系统 – 中断源的组织 补充 中断的分类 IBM机器对中断的分类: 重启中断:人为操作 机器检验出错中断:硬件或者软件故障,64位机器检验中断码 程序性错误引起的中断:指令或数据格式错、非法操作码。。 访问管理程序中断:执行访管指令 外部事件中断:来自机器外部,也可能来自机器内部 输入输出中断: 后四类中断源各有一个16位的中断码,用来区分各个具体的中断源。
中断系统 – 中断源的组织 补充 两类中断: 可屏蔽中断 不可屏蔽中断 有些机器按照中断事件的紧迫程度来划分可屏蔽中断和不可屏蔽中断,例如把电源掉电、机器故障等划分为不可屏蔽中断。 IBM370 系列机器中,执行现行指令引起的中断划分为不可屏蔽中断,如运算结果溢出、主存页面失效。出现则立刻处理,否则中断请求容易被丢失;可屏蔽中断是与当前进程无关的中断,因为可以被保存起来。
中断系统 – 中断源的组织 补充 中断的优先级 考虑的因素: 中断源的急迫性:机器性故障高,程序性故障低 设备工作速度(高到底):实时钟、磁盘、行式打印机、控制台终端输出、控制台键盘输入 数据恢复难以程度:数据丢失后难以恢复的设备,优先级高于能自动或者手动恢复的 要求处理机提供的服务质量。能够大部分时间独立工作而较少要求处理机干预的时间,优先级高于处理机连续为它服务的事件。
中断系统 – 中断源的组织 补充 按照中断优先级响应中断请求的例子 4个中断源,从高到低依次是1、2、3、4; 执行主程序时,3、2级请求中断 4级请求中断; 2级中断处理完,返回主程序,选择3级中断处理; 3级处理完,返回主程序,处理4级; 产生1级中断,直接转移去执行1级中断,处理1级中断; 1级中断处理完,继续处理4级中断。
从某个中断源发出中断服务请求,到处理机响应这个中断源的服务请求,开始执行中断源的服务程序所需要的时间。 补充 中断系统 – 中断系统的软硬件功能分配 需要考虑的因素: 中断响应时间 从某个中断源发出中断服务请求,到处理机响应这个中断源的服务请求,开始执行中断源的服务程序所需要的时间。 灵活性 硬件时间速度快,灵活性差;软件相反。
中断系统 – 中断系统的软硬件功能分配 中断处理过程 补充 现行指令执行结束,且没有更急的请求(如周期挪用的DMA) 关CPU中断 保存断点(通常是保存PC) 撤销当前设备的中断服务请求(因为已经被响应) 保存硬件现场(PSW,堆栈指针SP) 识别中断源 改变设备屏蔽状态 转向中断服务程序入口 保存软件现场(通用寄存器中的内容等) 开CPU中断,CPU可以响应其他更高级的中断请求,实现中断嵌套
中断系统 – 中断系统的软硬件功能分配 补充 执行中断服务程序 关CPU中断 恢复软件现场 恢复屏蔽状态 恢复硬件现场 开CPU中断 (如果用硬件时间,这条指令必须延迟执行,要在程序回到中断点之后才能实际打开CPU的中断) 返回到中断点 一般用硬件实现 软硬件皆可 一般用软件实现
在一条指令执行完成之后,处理其他更紧急的任务所需要的时间,如周期窃取方式的DMA 补充 中断系统 – 中断系统的软硬件功能分配 中断响应时间 影响中断响应时间的4个因素: 最长指令执行时间(指令系统设计考虑的) 在一条指令执行完成之后,处理其他更紧急的任务所需要的时间,如周期窃取方式的DMA 从第一次关CPU中断到第一次开CPU中断所经历的时间。(中断系统设计考虑的) 多个中断源同时请求中断服务时,找到相关中断源入口的时间。
用软件逐个测试中断源状态。凡是发出中断服务请求的中断源,它的完成标志位(DONE)必然被置位,“忙”标志被清除。 补充 中断系统 – 中断系统的软硬件功能分配 识别中断源方法 – 查询法 公用一条中断请求线。 转入公共的中断服务程序入口。 用软件逐个测试中断源状态。凡是发出中断服务请求的中断源,它的完成标志位(DONE)必然被置位,“忙”标志被清除。 优点:灵活 缺点:速度慢
补充 中断系统 – 中断系统的软硬件功能分配 识别中断源方法 – 串行排队法 三种实现方法: 方法一:软硬件结合 方法二:硬件排队器 方法三:中断向量法
软硬件结合法 补充 设置中断请求寄存器,每个中断源占其中一位; 所有的中断源使用一条公共的中断请求线,请求,并转向公共中断程序入口; 读中断请求寄存器,按位扫描,执行变址转移指令,转向相应的中断源服务程序入口。
中断系统 – 中断系统的软硬件功能分配 识别中断源方法 – 独立请求法、分组独立请求法 补充 中断系统 – 中断系统的软硬件功能分配 识别中断源方法 – 独立请求法、分组独立请求法
中断系统 – 中断系统的软硬件功能分配 中断现场的保存和恢复 补充 现场信息分为三类: 第一类:PC,由硬件完成保存,或压入堆栈,或保存在存储器固定单元中;通过执行一条中断返回指令来恢复。如果保存在存储器固定单元中,发生中断嵌套时,通过程序恢复。 第二类:记录程序状态的信息(硬件现场),三种方法:保存到主存固定区域、压入堆栈、交换处理机状态字。 第三类:通用寄存器内容(软件现场),大多采用软件方法。
中断系统 – 中断系统的软硬件功能分配 中断屏蔽 补充 中断系统 – 中断系统的软硬件功能分配 中断屏蔽 基本思想 为每个中断屏蔽源设一个中断屏蔽位(分布在中断源中,或集中放在处理器内),用指令管理。为“1”时,CPU收不到中断请求;为“0”时,可以请求中断。 用处 改变硬件确定的中断服务顺序。 决定设备是否采用中断方式工作。 在多处理机系统中,可以通过中断屏蔽,把对外围设备的输入输出服务工作分配到各个处理机中。
补充 中断系统 – 中断系统的软硬件功能分配 中断屏蔽 实现方法: 每个或者每级中断源设置一个中断屏蔽位。可以分布在各个中断源中,或者几种在处理机中(处理机状态字) 每个中断源(优先级)有一个中断屏蔽码
中断系统 – 中断系统的软硬件功能分配 中断屏蔽 实现方法 :每个或者每级中断源设置一个中断屏蔽位的方法 补充 中断系统 – 中断系统的软硬件功能分配 中断屏蔽 实现方法 :每个或者每级中断源设置一个中断屏蔽位的方法 处理机首先响应D1 执行中断处理程序之前,开CPU中断;D2 – D4没有被屏蔽,选择一个高优先级的响应。 响应中断请求的顺序 中断服务的顺序
6.5 通道处理机 通道处理机能够负担外围设备的大部分I/O工作。 通道处理机(简称通道):专门负责整个计算机系统的输入/输出工作。通道处理机只能执行有限的一组输入/输出指令。
6.5.1 通道的作用和功能 程序控制、中断和DMA方式管理外围设备会引起两个问题: 6.5 通道处理机 6.5.1 通道的作用和功能 程序控制、中断和DMA方式管理外围设备会引起两个问题: 所有外设的输入/输出工作均由CPU承担,CPU的计算工作经常被打断而去处理输入/输出的事务,不能充分发挥CPU的计算能力。 大型计算机系统的外设虽然很多,但同时工作的机会不是很多。如果为每台设备都配置一个接口,利用率低,尤其是DMA接口,硬件成本高。 解决上述问题的方法:采用通道处理机 执行有限的输入/输出指令,能够处理大部分的输入输出工作,包括管理所有低速和中速外围设备,高速外围设备,对DMA接口的初始化,设备故障检测和处理等。 DMA方式虽然能够提高输入输出数据的速度,节省CPU时间,但是需要为每一台快速的外围设备都配备一个专用的DMA控制器。 通道处理机能够处理大部分的输入输出工作,包括管理所有按照字节传输方式工作的低速和中速外围设备,按照数据块传输方式工作的高速外围设备,对DMA接口的初始化,设备故障检测和处理等。
6.5 通道处理机 2. 一个典型的由CPU、通道、设备控制器、外设构成的4级层次结构的输入/输出系统。
接收CPU发来的I/O指令,并根据指令要求选择指定的外设与通道相连接。 6.5 通道处理机 通道的功能 接收CPU发来的I/O指令,并根据指令要求选择指定的外设与通道相连接。 执行通道程序 从主存中逐条取出通道指令,对通道指令进行译码,并根据需要向被选中的设备控制器发出各种操作命令。 给出外设中要进行读/写操作的数据所在的地址 如磁盘存储器的柱面号、磁头号、扇区号等。
控制外设与主存缓冲区之间的数据传送的长度 指定传送工作结束时要进行的操作 检查外设的工作状态是否正常,并将该状态信息送往主存指定单元保存。 6.5 通道处理机 给出主存缓冲区的首地址 该缓冲区存放从外设输入的数据或者将要输出到外设中去的数据。 控制外设与主存缓冲区之间的数据传送的长度 对传送的数据个数进行计数,并判断数据传送是否结束。 指定传送工作结束时要进行的操作 例如:将外设的中断请求及通道的中断请求送往CPU等。 检查外设的工作状态是否正常,并将该状态信息送往主存指定单元保存。 在数据传输过程中完成必要的格式变换 例如:把字拆分为字节,或者把字节装配成字等。
4. 通道的主要硬件 寄存器 控制逻辑 6.5 通道处理机 数据缓冲寄存器 主存地址计数器 传输字节数计数器 通道命令字寄存器 通道状态字寄存器 控制逻辑 分时控制 地址分配 数据传送、装配和拆分等
5. 通道对外设的控制通过输入/输出接口和设备控制器进行 通道与设备控制器之间一般采用标准的输入/输出接口来连接。 6.5 通道处理机 5. 通道对外设的控制通过输入/输出接口和设备控制器进行 通道与设备控制器之间一般采用标准的输入/输出接口来连接。 通道通过标准接口把操作命令送到设备控制器,设备控制器解释并执行这些通道命令,完成命令指定的操作。 设备控制器能够记录外设的状态,并把状态信息送往通道和CPU。
6.5.2 通道的工作过程 6.5 通道处理机 通道完成一次数据输入/输出的工作过程 在用户程序中使用访管指令进入管理程序,由管理程序生成一个通道程序,并启动通道。 用户在目标程序中设置一条广义指令,通过调用操作系统的管理程序来实现。 管理程序根据广义指令提供的参数来编制通道程序,放在主存储器中。 将通道程序的入口地址置入主存储器的通道单元。 启动输入/输出设备指令是一条主要的输入/输出指令,属于特权指令。
通道处理机执行通道程序,完成指定的数据输入/输出工作。 6.5 通道处理机 通道处理机执行通道程序,完成指定的数据输入/输出工作。 通道处理机执行通道程序与CPU执行用户程序是并行的。 通道程序结束后向CPU发中断请求。 CPU执行程序和通道执行通道程序的时间关系
6.5 通道处理机
6.5.3 通道的种类 根据信息传送方式的不同,将通道分为三种类型 三种类型的通道与CPU、设备控制器和外设的连接关系 6.5 通道处理机 字节多路通道 选择通道 数组多路通道 三种类型的通道与CPU、设备控制器和外设的连接关系
6.5 通道处理机
1. 字节多路通道 6.5 通道处理机 中低速设备,如键盘、打印机。 以字节交叉的方式分时轮流地为它们服务。例如某设备的数据传输率是1000B/S,通道的流量是1000000B/S。 字节多路通道可以包含多个子通道,每个子通道连接一台设备控制器(也可以是公共的)。 每个子通道至少有一个字节缓冲寄存器、一个状态/控制寄存器、指明固定地址的硬件。
2. 选择通道 6.5 通道处理机 为多台高速外围设备服务。 在一段时间内只为一台高速外设独占使用。 选择通道的硬件 5个寄存器 数据缓冲寄存器、 设备地址寄存器、 主存地址计数器、 交换字节数计数器、 设备状态/控制寄存器 格式变换部件: 用于在主存和设备之间进行字与字节的拆分和装配 通道控制部件
每次选择一个高速设备后传送一个数据块(对于磁盘和磁带,数据块通常是512B),轮流为多台外围设备服务。 6.5 通道处理机 数组多路通道 适用于高速设备。 每次选择一个高速设备后传送一个数据块(对于磁盘和磁带,数据块通常是512B),轮流为多台外围设备服务。 数组多路通道之所以能够并行地为多台高速设备服务,是因为虽然其所连设备的传输速率很高,但寻址等辅助操作时间很长。 例如: 磁盘读取一个文件过程:(1)磁头定位;(2)找扇区;(3)读数据。寻址时间一般比数据传输时间长2个数量级以上。 通道在为一台高速设备传送数据时,有多台高速设备在寻址。
6.5.4 通道中的数据传送过程与流量分析 通道流量 一个通道在数据传送期间,单位时间内能够传送的数据量。所用单位一般为Bps(字节/秒)。 6.5 通道处理机 6.5.4 通道中的数据传送过程与流量分析 通道流量 一个通道在数据传送期间,单位时间内能够传送的数据量。所用单位一般为Bps(字节/秒)。 又称为通道吞吐率、通道数据传输率等。 通道最大流量 一个通道在满负荷工作状态下的流量 。通道的最大流量主要与通道的工作方式(字节多路?选择?数组?)、在数据传送期间通道选择一次设备所用的时间、传送一个字节所用的时间等因素有关。
参数的定义 6.5 通道处理机 TS:设备选择时间。从通道响应设备发出的数据传送请求开始,到通道实际为这台设备传送数据所需要的时间。 TD:传送一个字节所用的时间。 p:在一个通道上连接的设备台数,且这些设备同时都在工作。 n:每台设备传送的字节数,这里假设每台设备传送的字节数都相同。 k:数组多路通道传输的一个数据块中包含的字节数。在一般情况下,k<n。对于磁盘、磁带等磁表面存储器,通常k=512。 T:通道完成全部数据传送工作所需要的时间。
通道每连接一台个外设,只传送一个字节,然后又与另一台设备连接,并传送一个字节。 6.5 通道处理机 字节多路通道 数据传送过程 通道每连接一台个外设,只传送一个字节,然后又与另一台设备连接,并传送一个字节。 p台设备每台传送n个数据总共所需的时间为 最大流量
字节多路通道的实际流量是连接在这个通道上的所有设备的数据传输率之和。 6.5 通道处理机 实际流量 字节多路通道的实际流量是连接在这个通道上的所有设备的数据传输率之和。
在一段时间内只能单独为一台高速外设服务,当这台设备的数据传送工作全部完成后,通道才能为另一台设备服务。 6.5 通道处理机 选择通道 在一段时间内只能单独为一台高速外设服务,当这台设备的数据传送工作全部完成后,通道才能为另一台设备服务。 工作过程 其中:Di表示通道正在为第i台设备服务 TD1 = TD2 = … = TDn = TD
6.5 通道处理机 p台设备每台传送n个数据总共所需的时间 最大流量
p台设备每台传送n个数据总共所需的时间为: 6.5 通道处理机 数组多路通道 工作过程 p台设备每台传送n个数据总共所需的时间为:
选择通道和数组多路通道的实际流量就是连接在这个通道上的所有设备中数据流量最大的那一个 。 6.5 通道处理机 最大流量 选择通道和数组多路通道的实际流量就是连接在这个通道上的所有设备中数据流量最大的那一个 。
6.5 通道处理机 4. 总结 :三种通道的最大流量
字节多路通道:实际流量是连接在这个通道上的所有设备的数据传输率之和。 6.5 通道处理机 三种通道的实际流量 字节多路通道:实际流量是连接在这个通道上的所有设备的数据传输率之和。 选择通道和数组多路通道
各种通道的实际流量应该不大于通道的最大流量 6.5 通道处理机 各种通道的实际流量应该不大于通道的最大流量 两边的差值越小,通道的利用率就越高。 当两边相等时,通道处于满负荷工作状态。
(1)计算这个字节多路通道的实际流量和工作周期。 随堂作业1 一个字节多路通道连接D1, D2,D3,D4,D5共5台设备,这些设备分别每10us、30us、30us、50us和75us向通道发出一次数据传送的服务请求,请回答下列问题: (1)计算这个字节多路通道的实际流量和工作周期。 (2)如果设计字节多路通道的最大流量正好等于通道实际流量,并假设对数据传输高的设备,通道响应它的优先级也高。5台设备在0时刻同时向通道发出第一次传送数据的请求,并且在以后的时间里按照各自的数据传输率连续工作。画出通道分别为各台设备服务的时间关系图,并计算这个字节多路通道处理完各台设备的第一次数据传送请求的时刻。 思考题: 1. 至少多长时间能保证宏观上的通道流量平衡? 2. 为了保证通道能够正常工作,即不丢失数据字,可以采取什么方法?
解(1) 实际流量 = 0.2MB/S,工作周期5us/字节 (2)
1. 至少多长时间能保证宏观上的通道流量平衡? 思考: 1. 至少多长时间能保证宏观上的通道流量平衡? 假设T=75us,在T时间内,通道能够完成75/5=15B。 而实际产生的数据是向上取整,即对第一个设备来说,是75/10 = 8, 因此一共产生 17B。 取公倍数能刚好满足。 以上不算T时刻时刚产生和刚开始传送的数据字。 2. 为了保证通道能够正常工作,即不丢失数据字,可以采取什么方法? 方法一:增加通道最大流量 方法二:动态改变设备优先级 方法三:增加一定数量的数据缓冲