第六章 输入输出系统
6.1 I/O系统性能与CPU性能 1. 输入/输出系统简称I/O系统 包括: I/O设备(如键盘、磁盘、打印机) I/O设备与处理机的连接 (1)数据如何传送(并行或串行,传输速率) (2)对外设如何控制(如程序控制、DMA、I/O处理机)
6.1 I/O系统性能与CPU性能 2. I/O系统的基本任务: 完成计算机与外界的信息交换 给计算机提供大容量的外部存储器 3. 按照主要完成的工作进行分类: 存储I/O系统(本章内容) 通信I/O系统
6.1 I/O系统性能与CPU性能 3. 几个与I/O有关的问题 (1) 对系统性能的影响 (1) 对系统性能的影响 CPU速度再提高,如果无相适应的I/O系统的话,将无多大意义。
6.1 I/O系统性能与CPU性能 例6.1 假设一台计算机的I/O处理占10%,当其CPU性能改进,而I/O性能保持不变时,系统总体性能会出现什么变化? 解:假设原来的程序执行时间为1个单位时间。如果CPU的性能提高10倍,程序的计算(包含I/O处理)时间为: (1 - 10%)/10 + 10% = 0.19 如果CPU的性能提高10倍 如果CPU的性能提高100倍
6.1 I/O系统性能与CPU性能 即整机性能只能提高约5倍,差不多有50%的 CPU性能浪费在I/O上。 (1 - 10%)/100 + 10% = 0.109 而整机性能只能提高约10倍,表示有90%的性能 浪费在没有改进的I/O上了。
6.1 I/O系统性能与CPU性能 (2) 不同系统中I/O的差异
6.1 I/O系统性能与CPU性能 (3) 评价I/O系统性能的参数主要有: 连接特性 (哪些I/O设备可以和计算机系统相连接) 响应时间和吞吐率等 (4) 另一种衡量I/O系统性能的方法: 考虑I/O操作对CPU的打扰情况。 即考查某个进程在执行时,由于其他进程的I/O操作,使得该进程的执行时间增加了多少。
6.2 可靠性、可用性和可信性 ◆ 反映存储外设可靠性能的参数 可靠性(Reliability) 可用性(Availability) 可信性(Dependability) ◆ 可信性是存储的基础 ◆ 与可靠性相关的三个术语 故障(fault) 错误(error) 失效(failure)
6.2 可靠性、可用性和可信性 1. 故障、错误和失效之间的关系 (1) 一个故障可能会导致一个或者多个错误; (2) 错误通常具有以下特性 ◆ 错误在潜在状态和有效状态间相互转换; ◆ 潜在的错误可能通过激活而有效; ◆ 有效错误的影响可以传递,引起新的错误。 (3) 如果错误影响到部件正常的服务时,部件就发 生了失效; (4) 系统中的所有部件的故障、错误和失效均存在 这样的关系。
6.2 可靠性、可用性和可信性 3. 系统可靠性 ◆ 系统从初始状态开始一直提供服务的能力 ◆ 用平均无故障时间MTTF来衡量 (Mean Time To Failure) ◆ MTTF的倒数为失效率 ◆如果一个系统有多个部件,其工作时间服从指数分布(独立概率事件),则系统失效率为部件失效率之和 MTTR(平均维修时间) MTBF(平均失效间隔时间)
6.2 可靠性、可用性和可信性 4. 系统可用性 ◆ 系统正常工作时间在连续两次正常服务间隔 时间中所占的比率 ◆ 系统正常工作时间在连续两次正常服务间隔 时间中所占的比率 如果时间仅包含工作和维修两个成分: MTBF =MTTF + MTTR 可用性= MTTF/( MTTF + MTTR) 5. 系统可信性 ◆ 多大程度上可以合理地认为服务是可靠的 ◆ 可信性不可度量
6.2 可靠性、可用性和可信性 例6.2 假设磁盘子系统的组成部件和它们的MTTF 如下: (1) 磁盘子系统由10个磁盘构成,每个磁盘 (2) 1个SCSI控制器,其MTTF为500000小时; (3) 1个不间断电源,其MTTF为200000小时; (4) 1个风扇,其MTTF为200000小时; (5) 1根SCSI连线,其MTTF为1000000小时;
6.2 可靠性、可用性和可信性 假定部件的工作时间服从指数分布,部件的工作时间与故障出现的概率无关;同时假定各部件的故障相互独立,试计算整个系统的MTTF。 解:整个系统的失效率为: 系统失效率 1 1 1 1 1 = 10 × + + + + 1000000 500000 200000 200000 1000000 23 = 1000000
6.2 可靠性、可用性和可信性 系统的MTTF为系统失效率的倒数,即: 大约为5年。 1000000 MTTF = = 43500 小时 23 大约为5年。
6.2 可靠性、可用性和可信性 指数分布:用于电子设备可靠性预计的一种分布. 概率密度函数: P(x) = e- x 期望值: 平均无故障工作时间MTTF 为失效率 可靠度:
6.2 可靠性、可用性和可信性 串联系统:任一部件的故障即构成系统的故障.
6.2 可靠性、可用性和可信性 6. 提高系统组成部件可靠性的方法 有效构建方法(valid construction) 6. 提高系统组成部件可靠性的方法 有效构建方法(valid construction) 在构建系统的过程中消除故障隐患,这样建立起来的系统就不会出现故障。 纠错方法(error correction) 在系统构建中采用容错的方法。这样即使出现故障,也可以通过容错信息保证系统正常工作。
6.3 廉价磁盘冗余阵列RAID 磁盘阵列DA(Disk Array):使用多个磁盘(包括驱动器)的组合来代替一个大容量的磁盘。 多个磁盘并行工作。 以条带为单位把数据均匀地分布到多个磁盘上。(交叉存放) 条带存放可以使多个数据读/写请求并行地被处理,从而提高总的I/O性能。
6.3 廉价磁盘冗余阵列RAID 这里并行性有两方面的含义: 多个独立的请求可以由多个盘来并行地处理。 减少了I/O请求的排队等待时间 如果一个请求访问多个块,就可以由多个盘合作来并行处理。 提高了单个请求的数据传输率
6.3 廉价磁盘冗余阵列RAID 问题:阵列中磁盘数量的增加会导致磁盘阵 列可靠性的下降。 磁盘出错的概率增加。 问题:阵列中磁盘数量的增加会导致磁盘阵 列可靠性的下降。 磁盘出错的概率增加。 解决方法:在磁盘阵列中设置冗余信息盘 当单个磁盘失效时,丢失的信息可以通过冗 余盘中的信息重新构建。
6.3 廉价磁盘冗余阵列RAID ◆ 廉价磁盘冗余阵列 Redundant Array of Inexpensive Disks ◆ 独立磁盘冗余阵列 Redundant Array of Independent Disks ◆ 简称盘阵列技术 1988年,Patterson教授首先提出。 ◆ 优点 容量大、速度快、可靠性高、造价低廉
6.3 廉价磁盘冗余阵列RAID 大多数磁盘阵列的组成可以由以下两个特征来区分: 1. 数据交叉存放的粒度 大多数磁盘阵列的组成可以由以下两个特征来区分: 1. 数据交叉存放的粒度 细粒度磁盘阵列是在概念上把数据分割成相对较 小的单位交叉存放。 优点:所有I/O请求都能够获得很高的数据传输率。 缺点:在任何时间,都只有一个逻辑上的I/O在处理当中,而且所有的磁盘都会因为为每个请求进行定位而浪费时间。 粗粒度磁盘阵列是把数据以相对较大的单位交叉 存放。 多个较小规模的请求可以同时得到处理。 对于较大规模的请求又能获得较高的传输率。
6.3 廉价磁盘冗余阵列RAID 2. 冗余数据的计算方法以及在磁盘阵列中的存放方式 纠错检错方案 大多都是采用奇偶校验码; 也有采用汉明码(Hamming code)或Reed-Solomon码的。 冗余信息分布 有两种方法: 把冗余信息集中存放在少数的几个盘中。 把冗余信息均匀地存放到所有的盘中。 (能避免出现热点问题)
RAID的分级及其特性 RAID级别 可以容忍的故障个数以及当数据盘为8个时,所需要的检测盘的个数 优 点 缺 点 公司产品 非冗余,条带存放 0个故障; 0个检测盘 没有空间开销 没有纠错能力 广泛应用 1 镜像 1个故障; 8个检测盘 不需要计算奇偶校验,数据恢复快,读数据快。而且其小规模写操作比更高级别的RAID快 检测空间开销最大 (即需要的检测盘最多) EMC, HP(Tandem), IBM 2 存储器式ECC 4个检测盘 不依靠故障盘进行自诊断 检测空间开销的级别是log2m级(m为数据盘的个数) 没有 3 位交叉奇偶校验 1个检测盘 检测空间开销小(即需要的检测盘少),大规模读写操作的带宽高 对小规模、随机的读写操作没有提供特别的支持 外存概念
RAID的分级及其特性 RAID级别 可以容忍的故障个数以及当数据盘为8个时,所需要的检测盘的个数 优 点 缺 点 公司产品 4 块交叉奇偶校验 1个故障; 1个检测盘 检测空间开销小,允许多个并行的小规模读写操作 校验盘为小规模写的瓶颈 网络设备 5 块交叉分布奇偶校验 检测空间开销小,小规模读写操作带宽更高 小规模写需要访问磁盘4次 广泛应用 6 P+Q双奇偶校验 2个故障; 2个检测盘 能容忍2个盘的错误 操作复杂
6.3 廉价磁盘冗余阵列RAID 8. 有关RAID的几个问题 (1) 关键问题:如何发现磁盘的失效 磁盘技术提供了故障检测操作的信息。 (2) 设计的另一个问题: 如何减少平均修复时间MTTR 典型的做法:在系统中增加热备份盘 (3) 热切换技术 与热备份盘相关的一种技术
6.3 廉价磁盘冗余阵列RAID 6.3.1 RAID0 ◆ 把数据切分成条带,以条带为单位交叉地 分布存放到多个磁盘中。 ◆ 把数据切分成条带,以条带为单位交叉地 分布存放到多个磁盘中。 ◆ 非冗余阵列、无冗余信息。 ◆ 严格地说,它不属于RAID系列。 M N O etc... I J K L E F G H A B C D
6.3 廉价磁盘冗余阵列RAID 6.3.2 RAID1 亦称镜像盘,使用双备份磁盘。 每当数据写入一个磁盘时,将该数据也写 到另一个冗余盘,形成信息的两份复制品。
6.3 廉价磁盘冗余阵列RAID 1. RAID1的特点 ◆ 读性能好 RAID1的性能能够达到RAID0性能的两倍。 ◆ 写性能由写性能最差的磁盘决定。相对以后 各级RAID来说,RAID1的写速度较快。 ◆ 可靠性很高,数据的恢复很简单。 ◆ 最昂贵的解决方法,物理磁盘空间是逻辑磁 盘空间的两倍。
6.3 廉价磁盘冗余阵列RAID 2. RAID1中的镜像和分块如何相互作用? ◆ RAID0+1 先分块后镜像(或称RAID01 )
6.3 廉价磁盘冗余阵列RAID ◆ RAID1+0 先镜像后分块(或称RAID10 )
6.3 廉价磁盘冗余阵列RAID 6.3.3 RAID2 1. 位交叉式海明编码阵列 2. 各个数据盘上的相应位计算海明校验码,编码 位被存放在多个校验(Ecc)磁盘的对应位上。 D0 D1 D2 D3 C0 C1 C2 C3 B0 B1 B2 B3 A0 A1 A2 A3 Ecc/Ax Ecc/Bx Ecc/Cx Ecc/Dx Ecc/Ay Ecc/By Ecc/Cy Ecc/Dy Ecc/Az Ecc/Bz Ecc/Cz Ecc/Dz
6.3 廉价磁盘冗余阵列RAID 3. RAID2的特点 每个数据盘存放所有数据字的一位 (位交叉存放) 各个数据盘上的相应位计算汉明校验码,编码位被存放在多个校验(ECC)磁盘的对应位上。 冗余盘用来存放汉明码的校验位,其个数为log2m级。 m:数据盘的个数(也就是数据字的位数) 并未被广泛应用,目前还没有商业化产品。
6.3 廉价磁盘冗余阵列RAID 6.3.4 RAID3 1. 位交叉奇偶校验盘阵列 2. 单盘容错并行传输:数据以位或字节交叉存储, 奇偶校验信息存储在一台专用盘上。 D0 D1 D2 D3 C0 C1 C2 C3 B0 B1 B2 B3 A0 A1 A2 A3 A 校验码 B C D 产生器 位或字节
6.3 廉价磁盘冗余阵列RAID 3.RAID3的特点 采用奇偶校验 写数据时 为每行数据形成奇偶校验位并写入校验盘 读出数据时 如果控制器发现某个磁盘出故障,就可以根据故障盘以外的所有其他盘中的正确信息恢复故障盘中的数据。(通过异或运算实现) 细粒度的磁盘阵列,即采用的条带宽度较小。 (可以是1个字节或1位) 只需要一个校验盘,校验空间开销比较小。
6.3 廉价磁盘冗余阵列RAID 6.3.5 RAID4 1. 专用奇偶校验独立存取盘阵列 2. 数据以块(块大小可变)交叉的方式存于各盘, 奇偶校验信息存在一台专用盘上。 目标:能同时处理多个小规模访问请求 D0 D1 D2 D3 C0 C1 C2 C3 B0 B1 B2 B3 A0 A1 A2 A3 A 校验码 B C D 产生器 数据块
6.3 廉价磁盘冗余阵列RAID 3. RAID4特点 ◆ 冗余代价与RAID3相同 ◆ 访问数据的方法与RAID3不同 参与操作,以使磁盘阵列可以并行进行多 个数据的磁盘操作。
6.3 廉价磁盘冗余阵列RAID 4. RAID4读写特点 假定:有4个数据盘和一个冗余盘 ◆ 读出数据,最少一次读操作(利用扇区检错); ◆ 写数据需要2次磁盘读和2次磁盘写操作(优化) D0 ' D0 D1 D2 D3 P P ' 读操作 写操作 异或
6.3 廉价磁盘冗余阵列RAID 6.3.6 RAID5 1. 块交叉分布式奇偶校验盘阵列 2. 数据以块交叉的方式存于各盘,无专用冗余盘, 奇偶校验信息均匀分布在所有磁盘上。
6.4 廉价磁盘冗余阵列RAID C4 D4 E4 A3 C3 D3 A2 B2 D2 A1 B1 C1 A0 B0 C0 D0 E1 E2 校验码 E4 A3 C3 D3 A2 B2 D2 A1 B1 C1 A0 B0 C0 D0 1 2 3 产生器 E1 E2 E3 B4
6.3 廉价磁盘冗余阵列RAID 6.3.7 RAID6 1. 双维奇偶校验独立存取盘阵列 2. 数据以块(块大小可变)交叉方式存于各盘, 检、纠错信息均匀分布在所有磁盘上。 C2 D3 D 校验码 C1 D2 A2 D1 A1 B1 A0 B0 C0 1 B 3 产生器 B2 2 C A
6.3 廉价磁盘冗余阵列RAID 3. RAID6特点 ◆ 可容忍双盘出错; ◆ 存储开销是RAID5的两倍
6.3 廉价磁盘冗余阵列RAID 6.3.8 RAID7 ◆ 采用Cache和异步技术的RAID6 ◆ 较高的响应速度和传输速率 C0 B0 实时 操作系统 A 校验码 B C B2 C1 C2
6.3 廉价磁盘冗余阵列RAID 6.3.9 RAID的实现与发展 1. 实现盘阵列的方式主要有三种 ◆ 软件方式:阵列管理软件由主机来实现 优点:成本低 缺点:过多地占用主机时间,并且带宽指 标上不去。 ◆ 阵列卡方式:把RAID管理软件固化在I/O控制 卡上,从而可不占用主机时间,一般用于工作 站和PC机。
6.3 廉价磁盘冗余阵列RAID ◆ 子系统方式:这是一种基于通用接口总线 的开放式平台,可用于各种主机平台和网 络系统。 2. 盘阵列技术研究的主要热点问题 ◆ 新型阵列体系结构; ◆ RAID结构与其所记录文件特性的关系; ◆ 在RAID冗余设计中,综合平衡性能、可靠 性和开销的问题; ◆ 超大型盘阵列在物理上如何构造和连结的问题。
6.3 廉价磁盘冗余阵列RAID 3.盘阵列技术飞速发展的原因: (1)应用需求,CPU与单个磁盘的速度差异越来越大。 (2)一些单项技术(如交叉存取、数据分块、缓冲存储等) 已比较成熟。 (3)在PC带动下,小盘驱动器得到了更高速发展。 (4)微电子技术的发展,使得支持盘阵列的大规模芯片成 为可能。
6.4 总 线 在计算机系统中,各子系统之间可以通过总线互相连接 优点:低成本、多样性、灵活性、可扩展性 缺点:必须独占使用,造成了设备信息交换的瓶颈,从而限制了系统中总的I/O吞吐量。
6.4 总 线 总线设计存在很多技术难点 一个重要原因:总线上信息传送的速度极大地受限于各种物理因素。 如总线的长度、设备的数目、信号的强度等,这些物理因素限制了总线性能的提高。 另外,我们一方面要求I/O操作响应快,另一方面又要求高吞吐量,这可能造成设计需求上的冲突。
采用——分离的请求包和回答包能提高总线带宽 设计总线时需要考虑的一些问题 特性 高性能 低价格 总线宽度 独立的地址和数据总线 数据和地址分时 共用同一套总线 数据总线宽度 越宽越快(例如:64位) 越窄越便宜(例如:8位) 传输块大小 块越大总线开销越小 单字传送更简单 总线主设备 多个(需要仲裁) 单个(无需仲裁) 分离事务 采用——分离的请求包和回答包能提高总线带宽 不采用——持续连接成本 更低,而且延迟更小 定时方式 同步 异步
6.4 总 线 2. 分离事务总线(又称:流水总线、悬挂总线、包交换总线) 在有多个主设备时,可以通过打包技术来提高总线带宽。 基本思想 将总线事务分成请求和应答两部分。 在请求和应答之间的空闲时间内,总线可以供其他的I/O使用,这样就不必在整个I/O过程中都独占总线。
6.4 总 线 地址 1 2 3 数据 等待 完成 分离事务总线有较高的带宽,但是它的数据传送延迟通常比独占总线方法大。
6.4 总 线 (2) 同步总线 包含一个供总线上所有设备使用的时钟,并且这些设备是基于该时钟按照一个固定的协议来发送地址和数据的。 优点:速度快、成本低。 缺点:总线操作都必须以同样的时钟频率进行。 (3) 异步总线 没有统一的参考时钟,每个设备都有各自的定时 方法。 采用握手协议 。
6.4 总 线 6.4.2 总线标准和实例 I/O总线标准:定义如何将设备与计算机进行连接的文档。 常见I/O总线的一些典型特征
几种常用并行I/O总线 IDE / Ultra ATA SCSI PCI PCI-X 数据宽度(b) 16 8/16 32/64 时钟频率(MHz) 100 10(Fast) 20(Ultra) 40(Ultra2) 80(Ultra3) 160(Ultra4) 33/66 66/100/133 总线主设备数量 1个 多个 峰值带宽(MBps) 200 320 533 1066 同步方式 异步 同步 标准 无 ANSI X3.131
6.4 总 线 在嵌入式系统中使用较多的4种串行I/O总线的一些典型特征 I2C 1-wire RS-232 SPI 数据宽度(b) 1 2 信号线数量 9/25 3 时钟频率(MHz) 0.4~10 异步 0.04或异步 总线主设备数量 多个 峰值带宽(Mbps) 0.4~3.4 0.014 0.192 同步方式 标准 无 EIA, ITU-T V.21
HP HyperPlane Crossbar 6.4 总 线 几种CPU-存储器互连系统 HP HyperPlane Crossbar IBM SP SUN Gigaplane-XB 数据宽度(bit) 64 128 时钟频率(MHz) 120 111 83.3 总线的主设备数 多个 每端口峰值带宽 (MB/s) 960 1700 1300 总峰值带宽(MB/s) 7680 14200 10667 同步方式 同步 标准 无
6.4 总 线 6.4.3 与CPU的连接 I/O总线的物理连接方式有两种选择 连接到存储器上, 更常见 连接到Cache上 连接到存储器上, 更常见 连接到Cache上 I/O总线连接到存储器总线上的方式 一种典型的组织结构
主存 CPU -主存总线 Cache 总线适配器 总线适配器 CPU AGP总线 PCI总线 I/O 控制器 总线适配器 I/O 控制器 图形输出 网络 I/O 总线 I/O 控制器 I/O 控制器 磁盘 磁盘 CD
6.4 总 线 CPU对I/O设备的编址有两种方式 存储器映射I/O(也称为统一编址) 将一部分存储器地址空间分配给I/O设备,用load指令和store指令对这些地址进行读写将引起I/O设备的数据传输。 将一部分存储空间留出用于设备控制,对这一部分地址空间进行读写就是向设备发出控制命令。
6.4 总 线 给I/O设备独立编址 需要在CPU中设置专用的I/O指令来访问I/O设备。
6.4 总 线 CPU与外部设备进行输入/输出的方式可分为4 种 程序查询 中断 DMA 通道
6.5 通道处理机 6.5.1 通道的作用和功能 程序控制、中断和DMA方式管理外围设备会引起两个问题: 所有外设的输入/输出工作均由CPU承担,CPU的计算工作经常被打断而去处理输入/输出的事务,不能充分发挥CPU的计算能力。 大型计算机系统的外设虽然很多,但同时工作的机会不是很多。 解决上述问题的方法:采用通道处理机
6.5 通道处理机 通道处理机: 能够执行有限I/O指令,并且能够被多 台外围设备共享的小型DMA专用处理 机。
6.5 通道处理机 通道的功能 接收CPU发来的I/O指令,并根据指令要求选择指定的外设与通道相连接。 执行通道程序 从主存中逐条取出通道指令,对通道指令进行译码,并根据需要向被选中的设备控制器发出各种操作命令。 给出外设中要进行读/写操作的数据所在的地址, 如磁盘存储器的柱面号、磁头号、扇区号等。
6.5 通道处理机 给出主存缓冲区的首地址, 该缓冲区存放从外设输入的数据或者将要输出到外设中去的数据。 控制外设与主存缓冲区之间的数据传送的长度, 对传送的数据个数进行计数,并判断数据传送是否结束。 指定传送工作结束时要进行的操作, 例如:将外设的中断请求及通道的中断请求送往CPU等。 检查外设的工作状态是否正常,并将该状态信息送往主存指定单元保存。 在数据传输过程中完成必要的格式变换 例如:把字拆分为字节,或者把字节装配成字 等。
6.5 通道处理机 通道的主要硬件 (1) 寄存器部分 数据缓冲寄存器 主存地址计数器 传输字节数计数器 通道命令字寄存器 通道状态字寄存器
6.5 通道处理机 (2) 控制逻辑 分时控制 地址分配 数据传送 数据装配 拆卸
6.5 通道处理机 通道对外设的连接 通道对外设的控制通过输入/输出接口和设备控制器进行 通道与设备控制器之间一般采用标准的输入/输出接口来连接。 通道通过标准接口把操作命令送到设备控制器,设备控制器解释并执行这些通道命令,完成命令指定的操作。 设备控制器能够记录外设的状态,并把状态信息送往通道和CPU。
6.5 通道处理机 6.5.2 通道工作过程 (1) 在用户程序中使用访管指令进入管理程序, 由CPU通过管理程序组织一个通道程序,并 6.5.2 通道工作过程 (1) 在用户程序中使用访管指令进入管理程序, 由CPU通过管理程序组织一个通道程序,并 启动通道。 该广义指令一般是调用操作系统的管理程序来实现。 管理程序根据广义指令提供的参数来编制通道程序。 启动输入/输出设备指令是一条主要的输入/输出指令,属于特权指令。
6.5 通道处理机 (2) 通道处理机执行CPU为它组织的通道程序, 完成指定的数据I/O工作。通道处理机执行 (3) 通道程序结束后向CPU发中断请求。CPU响应 这个中断请求后,第二次进入操作系统,调 用管理程序对I/O中断请求进行处理。
6.5 通道处理机 通道程序、管理程序和用户程序的执行时间关系
6.5 通道处理机 6.5.3 通道种类 ◆ 通道分为三种类型 字节多路通道 选择通道 数组多路通道
6.5 通道处理机 1) 字节多路通道 (1) 字节多路通道主要为多台低速或中速的外围 设备服务。 (2) 采用分时方式工作,依靠它与CPU之间的高 速数据通路分时为多台设备服务。
6.5 通道处理机 2. 选择通道 (1) 选择通道也是为多高速外围设备服务的。 (2) 在传送数据期间,该通道只能为一台高速外围设备服务,但在不同的时间内可以选择不同的设备。
6.5 通道处理机 3. 数组多路通道 (1) 数组多路通道适于为高速设备服务。 (2) 每次选择一个高速设备后传送一个数据块, 并轮流为多台外围设备服务。 (3) 数组多路通道之所以能够并行地为多个高速 外围设备服务,是因为这些高速外围设备并 不能在整个数据输入输出时间内单独利用通 道的全部传输能力。
6.5 通道处理机 6.5.4 通道中的数据传送过程与流量分析 通道流量 一个通道在数据传送期间,单位时间内能够传送的数据量。所用单位一般为Bps。 又称为通道吞吐率、通道数据传输率等。 通道最大流量 一个通道在满负荷工作状态下的流量 。
6.5 通道处理机 1) 字节多路通道的数据传送过程 通道每连接一个外围设备,只传送一个字节, 然后又与另一台设备连接,并传送一个字节。 P 台设备每台传送n个数据总共所需的时间为
6.5 通道处理机 最大流量 实际流量是连接在这个通道上的所有设备的数据传输率之和。 fi:第 i 台设备的实际数据传输率
6.5 通道处理机 2) 选择通道的工作过程 在一段时间内只能单独为一台高速外设服务,当这台设备的数据传送工作全部完成后,通道才能为另一台设备服务。 TD1 = TD2 = … = TDn = TD
6.5 通道处理机 p 台设备每台传送 n 个数据总共所需的时间 最大流量
6.5 通道处理机 3) 数组多路通道的数据传送过程 每连接一台高速设备,传送一个数据块,传 送完成后,又与另一台高速设备连接,再传送一 个数据块。
6.5 通道处理机 p 台设备每台传送 n 个数据总共所需的时间 最大流量
6.5 通道处理机 数组多路通道和选择通道在一段时间内与一台设备相连,因此实际流量与连接的设备不同而不同。 实际流量小于连接在这个通道上的所有设备中数据流量最大的那一个 。
6.5 通道处理机 ◆ 实际流量不大于最大流量 字节多路通道 选择通道 数组多路通道 ◆ 两边的差值越小,通道的利用率就越高。 ◆ 两边的差值越小,通道的利用率就越高。 ◆ 当两边相等时,通道处于满负荷工作状态。
6.6 I/O与操作系统 在计算机系统中,I/O系统硬件的功能如何使用, 往往完全是由操作系统来决定的。
6.6 I/O与操作系统 6.6.1 DMA和虚拟存储器 DMA是使用虚拟地址还是物理地址? 1. 使用物理地址进行DMA,存在的问题: ◆ 对于超过一页的数据缓冲区,由于缓冲区使 用的页面在物理存储器中不一定是连续的, 所以传输可能会发生问题。 ◆ 如果DMA正在存储器和缓冲器之间传输数据 时,操作系统从存储器中移出(或重新装载) 一些页面后,DMA将会在存储器中错误的页 面上传输数据。
6.6 I/O与操作系统 ◆ 解决问题的方法 锁定在主存中的页面 虚拟DMA技术 2. 通过DMA连接的I/O 物理地址。 DMA地址表必须能及时更新
6.6 I/O与操作系统 CPU -主存总线 Cache 地址转换寄存器 主存 TLB DMA 控制器 CPU I/O 总线
6.6 I/O与操作系统 6.7.2 I/O 和 Cache 数据一致性 ◆ Cache会使一个数据出现两个副本 1. 连接到CPU的Cache上
6.6 I/O与操作系统 CPU -主存总线 Cache 主存 TLB 总线适配器 CPU I/O 总线
6.6 I/O与操作系统 ◆ 不会产生数据不一致的问题 ◆ 所有I/O设备和CPU都能在Cache中看到最新的 数据,而且存储器中的机制能保证数据的其它 副本得到及时更新。 问题:大量的I/O数据填充Cache内容; I/O要传给Cache的数据往往不是CPU当 前需要访问的数据。
6.6 I/O与操作系统 2. 直接连到存储器上 I/O与存储器之间的数据交换不会干扰CPU。 CPU -主存总线 Cache 地址转换寄存器 主存 TLB DMA 控制器 CPU I/O 总线
6.6 I/O与操作系统 数据不一致问题有两个方面: (1) 存储器中可能不是CPU产生的最新数据,所以 写直达Cache可以保证存储器和Cache有 相同的数据; 写回Cache则需要操作系统帮助进行数据 检查。
6.6 I/O与操作系统 (2) I/O与存储器交换数据之后,在Cache中被CPU 使用的可能就是陈旧数据。
6.6 I/O与操作系统 1. 软件的方法 设法保证I/O缓冲器中的所有各块都不在 Cache中。 具体做法有两种 在进行输入操作之前,操作系统先把Cache中与I/O缓冲器相关的数据“赶出”Cache,即把相应的数据块设置为“无效”状态。
6.6 I/O与操作系统 2. 硬件的方法 在进行输入操作时,检查相应的I/O地址(I/O缓冲器中的单元)是否在Cache中(即是否有数据副本)。 如果发现I/O地址在Cache中有匹配的项,就把相应的Cache块设置为“无效”。
6.6 I/O与操作系统 6.7.3 异步I/O 提高I/O性能的一种方法:并行 使用多个磁盘同时工作来获得一批数据。 如何在编程模型层面支持这种并行? 同步I/O: 进程处于等待状态直到所需数据从磁 盘读出。 异步I/O: 允许进程在发出I/O请求后继续执行, 直到该进程真正访问这些数据而它们 又尚未就绪时,才被挂起。
6.6 I/O与操作系统 =〉 异步I/O允许进程进一步发出I/O请求,这 样多个I/O请求可以同时处理以最大限度地 利用带宽。