《计算机体系结构:第6章 输入输出系统》由会员分享,可在线阅读,更多相关《计算机体系结构:第6章 输入输出系统(86页珍藏版)》请在金锄头文库上搜索。
1、1 1/85/856.1I/O系统性能与CPU性能6.2I/O系统的可靠性、可用性和可信性6.3廉价磁盘冗余阵列RAID6.4总线6.5通道处理机6.6I/O与操作系统第6章 输入/输出系统2 2/85/856.1 I/O系统性能与CPU性能1.输入/输出系统简称I/O系统,包括:qI/OI/O设备设备qI/OI/O设备与处理机的连接设备与处理机的连接qI/OI/O软件软件2.I/O系统是计算机系统中的一个重要组成部分完成计算机与外界的信息交换给计算机提供大容量的外部存储器 3.按照主要完成的工作进行分类:q存储存储I/OI/O系统系统(本章内容(本章内容) q通信通信I/OI/O系统系统3
2、3/85/856.1 I/O系统性能与CPU性能1.人们对I/O系统的作用和性能没有给予足够的重视人们更多地关注:CPU的性能 许多人甚至认为许多人甚至认为CPUCPU的速度就是计算机的速度。的速度就是计算机的速度。I/O设备通常被称为外围设备。 (外围的就似乎没那么重要了)(外围的就似乎没那么重要了) 2.系统的响应时间(衡量计算机系统的一个更好的指标)从用户输入命令开始,到得到结果所花费的时间。由两部分构成:qI/OI/O系统的响应时间系统的响应时间qCPUCPU的处理时间的处理时间 4 4/85/856.1 I/O系统性能与CPU性能6.误区:使用多进程技术可以忽略I/O性能对系统性能的
3、影响多进程技术只能够提高系统吞吐率,并不能够减 少系统响应时间。进程切换时可能需要增加I/O操作。可切换的进程数量有限,当I/O处理较慢时,仍 然会导致CPU处于空闲状态。 5 5/85/856.1 I/O系统性能与CPU性能例例6.16.1 假设一台计算机的假设一台计算机的I/OI/O处理时间占响应时间的处理时间占响应时间的10%10%,当,当I/OI/O性能保持性能保持不变,而对不变,而对CPUCPU的性能分别提高的性能分别提高1010倍和倍和100100倍时,该计算机系统的总倍时,该计算机系统的总体性能会发生什么样的变化?体性能会发生什么样的变化? 解解 假设改进前程序的执行时间为假设改
4、进前程序的执行时间为1 1个单位时间。个单位时间。 如果如果CPUCPU的性能提高的性能提高1010倍,程序的执行时间减少为:倍,程序的执行时间减少为: (1(1 10%) / 10 + 10% = 0.1910%) / 10 + 10% = 0.19 即即整整机机性性能能只只能能提提高高到到原原来来的的约约5 5倍倍,约约50%50%的的CPUCPU性性能能被被浪浪费费在在I/OI/O处理上。处理上。 如果如果CPUCPU的性能提高的性能提高100100倍,程序的执行时间减少为:倍,程序的执行时间减少为: (1 (1 10%) / 100 + 10% = 0.109 10%) / 100 +
5、 10% = 0.109 整机性能只能提高约整机性能只能提高约1010倍,约倍,约90%90%的性能被浪费在没有改进的的性能被浪费在没有改进的I/OI/O处理上。处理上。 6 6/85/856.1 I/O系统性能与CPU性能1.评价I/O系统性能的参数主要有:连接特性(哪些(哪些I/OI/O设备可以和计算机系统相连接)设备可以和计算机系统相连接)I/O系统的容量(I/OI/O系统可以容纳的系统可以容纳的I/OI/O设备数)设备数)响应时间响应时间和吞吐率吞吐率等2.另一种衡量I/O系统性能的方法:考虑I/O操作对CPU的打扰情况。即考查某个进程在执行时,由于其他进程的即考查某个进程在执行时,由
6、于其他进程的I/OI/O操作,使操作,使得该进程的执行时间增加了多少。得该进程的执行时间增加了多少。 7 7/85/851.处理器性能已经很高,人们更加关注系统可靠性。2.反映外设可靠性能的参数有:可靠性(Reliability)可用性(Availability)可信性(Dependability)3.系统的可靠性:系统从某个初始参考点开始一直连续提供服务的能力。用平均无故障时间MTTF来衡量。 (Mean Time To FailureMean Time To Failure) 6.2 I/O系统的可靠性、可用性和可信性8 8/85/856.2 I/O系统的可靠性、可用性和可信性MTTF的倒
7、数就是系统的失效率。如果系统中每个模块的生存期服从指数分布,则系统整体的失效率是各部件的失效率之和。4.系统的可用性:系统正常工作的时间在连续两次正常服务间隔时间中所占的比率。MTTF+MTTR:平均失效间隔时间MTBF(Mean Time Between FailureMean Time Between Failure)5.系统的可信性:服务的质量。即在多大程度上可以合理地认为服务是可靠的。(不可以度量)(不可以度量)9 9/85/856.2 I/O系统的可靠性、可用性和可信性例例6.26.2 假设磁盘子系统的组成部件和它们的假设磁盘子系统的组成部件和它们的MTTFMTTF如下:如下:(1
8、1)磁盘子系统由)磁盘子系统由1010个磁盘构成,每个磁盘的个磁盘构成,每个磁盘的MTTFMTTF为为10000001000000小时;小时;(2 2)1 1个个SCSISCSI控制器,其控制器,其MTTFMTTF为为500000500000小时;小时;(3 3)1 1个不间断电源,其个不间断电源,其MTTFMTTF为为200000200000小时;小时;(4 4)1 1个风扇,个风扇,其其MTTFMTTF为为200000200000小时;小时;(5 5)1 1根根SCSISCSI连线,其连线,其MTTFMTTF为为10000001000000小时。小时。 假假定定每每个个部部件件的的生生存存
9、期期服服从从指指数数分分布布,同同时时假假定定各各部部件件的的故障是相互独立的,求整个系统的故障是相互独立的,求整个系统的MTTFMTTF。1010/85/856.2 I/O系统的可靠性、可用性和可信性 解解 整个系统的失效率为:整个系统的失效率为: 系统的系统的MTTFMTTF为系统失效率的倒数,即:为系统失效率的倒数,即: 即将近即将近5 5年。年。 1111/85/856.2 I/O系统的可靠性、可用性和可信性1.提高系统组成部件可靠性的方法 有效构建方法(valid construction) 在构建系统的过程中消除故障隐患,这样建立起来在构建系统的过程中消除故障隐患,这样建立起来的系
10、统就不会出现故障。的系统就不会出现故障。纠错方法(error correction) 在系统构建中采用容错的方法。这样即使出现故障,在系统构建中采用容错的方法。这样即使出现故障,也可以通过容错信息保证系统正常工作。也可以通过容错信息保证系统正常工作。 1212/85/851.磁盘阵列DA(Disk Array):使用多个磁盘(包括驱动器)的组合来代替一个大容量的磁盘。多个磁盘并行工作。以条带为单位把数据均匀地分布到多个磁盘上。 (交叉存放)(交叉存放)条带存放可以使多个数据读/写请求并行地被处理,从而提高总的I/O性能。2.这里并行性有两方面的含义: 6.3 廉价磁盘冗余阵列RAID1313/
11、85/856.3 廉价磁盘冗余阵列RAID多个独立的请求可以由多个盘来并行地处理。 减少了减少了I/OI/O请求的排队等待时间请求的排队等待时间 如果一个请求访问多个块,就可以由多个盘合作来并行处理。 提高了单个请求的数据传输率提高了单个请求的数据传输率3.问题:阵列中磁盘数量的增加会导致磁盘阵列可靠性的下降。 如果使用了如果使用了N N个磁盘构成磁盘阵列,那么整个阵列的可靠个磁盘构成磁盘阵列,那么整个阵列的可靠性将降低为单个磁盘的性将降低为单个磁盘的1/N1/N。解决方法:在磁盘阵列中设置冗余信息盘 当单个磁盘失效时,丢失的信息可以通过冗余盘中的信当单个磁盘失效时,丢失的信息可以通过冗余盘中
12、的信息重新构建。息重新构建。 1414/85/856.3 廉价磁盘冗余阵列RAID1.廉价磁盘冗余阵列RAIDRedundant Arrays of Inexpensive DisksRedundant Arrays of Inexpensive Disks1988年,Patterson教授首先提出磁盘冗余阵列RAIDRedundant Arrays of Independent Disks Redundant Arrays of Independent Disks 简称磁盘阵列技术DA4.大多数磁盘阵列的组成可以用两个特征来区分:冗余数据的计算方法以及在磁盘阵列中的存放方式 数据交叉存放的粒
13、度(可以是细粒度的,也可以是粗粒度的)(可以是细粒度的,也可以是粗粒度的)1515/85/856.3 廉价磁盘冗余阵列RAIDq细粒度磁盘阵列细粒度磁盘阵列是在概念上把数据分割成相对较小的单是在概念上把数据分割成相对较小的单位交叉存放。位交叉存放。 n优点:优点:所有所有I/OI/O请求都能够获得很高的数据传输率。请求都能够获得很高的数据传输率。n缺点:缺点:在任何时间,都只有一个逻辑上的在任何时间,都只有一个逻辑上的I/OI/O在处理在处理当中,而且所有的磁盘都会因为为每个请求进行定当中,而且所有的磁盘都会因为为每个请求进行定位而浪费时间。位而浪费时间。q粗粒度磁盘阵列粗粒度磁盘阵列是把数据
14、以相对较大的单位交叉存放。是把数据以相对较大的单位交叉存放。n多个较小规模的请求可以同时得到处理。多个较小规模的请求可以同时得到处理。n对于较大规模的请求又能获得较高的传输率。对于较大规模的请求又能获得较高的传输率。1616/85/856.3 廉价磁盘冗余阵列RAID1.在磁盘阵列中设置冗余需要解决以下两个问题:如何计算冗余信息?q大多都是采用奇偶校验码;大多都是采用奇偶校验码;q也有采用汉明码(也有采用汉明码(Hamming codeHamming code)或)或Reed-SolomonReed-Solomon码码的。的。 如何把冗余信息分布到磁盘阵列中的各个盘?有两种方法:有两种方法:n
15、把冗余信息集中存放在少数的几个盘中。把冗余信息集中存放在少数的几个盘中。n把冗余信息均匀地存放到所有的盘中。把冗余信息均匀地存放到所有的盘中。 (能避免出现热点问题)(能避免出现热点问题) RAIDRAID级别级别 可以容忍的故障个可以容忍的故障个数以及当数据盘为数以及当数据盘为8 8个时,所需要的个时,所需要的检测盘的个数检测盘的个数 优优 点点 缺缺 点点 公司产品公司产品 0 0 非冗余,条带存放非冗余,条带存放 0 0个故障;个故障;0 0个检测盘个检测盘 没有空间开销没有空间开销 没有纠错能力没有纠错能力 广泛应用广泛应用 1 1镜像镜像 1 1个故障;个故障;8 8个检测盘个检测盘
16、 不需要计算奇偶校不需要计算奇偶校验,数据恢复快,验,数据恢复快,读数据快。而且其读数据快。而且其小规模写操作比更小规模写操作比更高级别的高级别的RAIDRAID快快 检测空间开销最大检测空间开销最大(即需要的检测盘(即需要的检测盘最多)最多) EMCEMC,HPHP(TandemTandem),),IBM IBM 2 2存储器式存储器式ECC ECC 1 1个故障;个故障;4 4个检测盘个检测盘 不依靠故障盘进行不依靠故障盘进行自诊断自诊断 检测空间开销的级检测空间开销的级别是别是loglog2 2m m级(级(m m为为数据盘的个数)数据盘的个数) 没有没有 3 3 位交叉奇偶校验位交叉奇
17、偶校验 1 1个故障;个故障;1 1个检测盘个检测盘 检测空间开销小检测空间开销小(即需要的检测盘(即需要的检测盘少),大规模读写少),大规模读写操作的带宽高操作的带宽高 对小规模、随机的对小规模、随机的读写操作没有提供读写操作没有提供特别的支持特别的支持 外存概念外存概念 7.RAID的分级及其特性 1818/85/856.3 廉价磁盘冗余阵列RAID1.有关RAID的几个问题关键问题:如何发现磁盘的故障q磁盘技术提供了故障检测操作的信息磁盘技术提供了故障检测操作的信息 设计的另一个问题q如何减少平均修复时间如何减少平均修复时间MTTRMTTRq典型的做法:典型的做法:在系统中增加热备份盘在
18、系统中增加热备份盘热交换技术q与热备份盘相关的一种技术与热备份盘相关的一种技术q允许系统在不关机的情况下更换设备允许系统在不关机的情况下更换设备1919/85/851.非冗余阵列,无冗余信息。2.严格地说,它不属于RAID系列。3.把数据切分成条带,以条带为单位交叉地分布存放到多个磁盘中。6.3.1 RAID06.3 廉价磁盘冗余阵列RAID2020/85/856.3 廉价磁盘冗余阵列RAID1.亦称镜像盘,使用双备份磁盘。每当把数据写入磁盘时,将该数据也写入其镜像盘,形成信息的两个副本。6.3.2 RAID12121/85/856.3 廉价磁盘冗余阵列RAID1.RAID1的特点能实现快速的
19、读取操作。写性能由写性能最差的磁盘决定。相对以后各级RAID来说,RAID1的写速度较快。可靠性很高,数据的恢复很简单。最昂贵的解决方法,物理磁盘空间是逻辑磁盘空间的两倍。 2222/85/856.3 廉价磁盘冗余阵列RAID1.存储器式的磁盘阵列(按汉明纠错码的思路构建)含4个数据盘的RAID26.3.3 RAID22323/85/856.3 廉价磁盘冗余阵列RAID1.RAID2的特点每个数据盘存放所有数据字的一位 (位交叉存放)(位交叉存放)各个数据盘上的相应位计算汉明校验码,编码位被存放在多个校验(ECC)磁盘的对应位上。冗余盘是用来存放汉明码的,其个数为log2m级。 m m:数据盘
20、的个数(也就是数据字的位数)数据盘的个数(也就是数据字的位数)并未被广泛应用,目前还没有商业化产品。2424/85/856.3 廉价磁盘冗余阵列RAID1.位交叉奇偶校验盘阵列6.3.4 RAID32525/85/856.3 廉价磁盘冗余阵列RAID2.RAID3的特点采用奇偶校验写数据时q为每行数据形成奇偶校验位并写入校验盘为每行数据形成奇偶校验位并写入校验盘读出数据时q如果控制器发现某个磁盘出故障,就可以根据故障盘如果控制器发现某个磁盘出故障,就可以根据故障盘以外的所有其他盘中的正确信息恢复故障盘中的数据。以外的所有其他盘中的正确信息恢复故障盘中的数据。(通过(通过异或运算异或运算实现)实
21、现) 细粒度的磁盘阵列,即采用的条带宽度较小。 (可以是(可以是1 1个字节或个字节或1 1位)位)只需要一个校验盘,校验空间开销比较小。 2626/85/856.3 廉价磁盘冗余阵列RAID1.块交叉奇偶校验磁盘阵列 2.采用比较大的条带,以块为单位进行交叉存放和计算奇偶校验。实现目标:能同时处理多个小规模访问请求6.3.5 RAID42727/85/856.3 廉价磁盘冗余阵列RAID1.RAID4读写特点读取操作q每次只需访问数据所在的磁盘。每次只需访问数据所在的磁盘。q仅在该磁盘出现故障时,才会去读校验盘,并进行数仅在该磁盘出现故障时,才会去读校验盘,并进行数据的重建。据的重建。写入操
22、作q假定假定: :有有4 4个数据盘和一个冗余盘。个数据盘和一个冗余盘。q写数据需要写数据需要2 2次磁盘读和次磁盘读和2 2次磁盘写操作。次磁盘写操作。2828/85/856.3 廉价磁盘冗余阵列RAIDRAID4能有效地处理小规模访问,快速处理大规模访问,校验空间开销比较小。2929/85/856.3 廉价磁盘冗余阵列RAID1.块交叉分布奇偶校验磁盘阵列 2.数据以块交叉的方式存于各盘,无专用冗余盘,奇偶校验信息均匀分布在所有磁盘上。 6.3.6 RAID53030/85/856.3 廉价磁盘冗余阵列RAID1.PQ双校验磁盘阵列 2.特点校验空间开销是RAID5的两倍 容忍两个磁盘出错
23、 6.3.7 RAID63131/85/856.3 廉价磁盘冗余阵列RAID1.RAID10又称为RAID1+0 先进行镜像(先进行镜像(RAID1RAID1),),再进行条带存放(再进行条带存放(RAID0RAID0) 6.3.8 RAID10与RAID013232/85/856.3 廉价磁盘冗余阵列RAID1.RAID01又称为RAID0+1先进行条带存放(先进行条带存放(RAID0RAID0),),再进行镜像(再进行镜像(RAID1RAID1) 3333/85/856.3 廉价磁盘冗余阵列RAID1.实现盘阵列的方式主要有三种:软件方式:阵列管理软件由主机来实现。q优点:优点:成本低成本
24、低q缺点:缺点:过多地占用主机时间,且带宽指标上不去。过多地占用主机时间,且带宽指标上不去。阵列卡方式:把RAID管理软件固化在I/O控制卡上,从而可不占用主机时间,一般用于工作站和PC机。子系统方式:一种基于通用接口总线的开放式平台,可用于各种主机平台和网络系统。6.3.9 RAID的实现与发展3434/85/856.3 廉价磁盘冗余阵列RAID1.磁盘阵列技术研究的主要热点问题新型阵列体系结构;RAID结构与其所记录文件特性的关系;在RAID冗余设计中,综合平衡性能、可靠性和开销的问题;超大型磁盘阵列在物理上如何构造和连接。3535/85/85在计算机系统中,各子系统之间可以通过总线互相连
25、接。优点:成本低、多样性主要缺点:它是由不同的外设分时共享的,形成了信息交换的瓶颈,从而限制了系统中总的I/O吞吐量。6.4 总 线3636/85/856.4 总 线1.总线设计存在很多技术难点一个重要原因:总线上信息传送的速度极大地受限于各种物理因素。如总线的长度、设备的数目、信号的强度等,这些物理如总线的长度、设备的数目、信号的强度等,这些物理因素限制了总线性能的提高。因素限制了总线性能的提高。另外,我们一方面要求I/O操作响应快,另一方面又要求高吞吐量,这可能造成设计需求上的冲突。6.4.1 总线的设计3737/85/856.4 总 线1.设计总线时需要考虑的一些问题 特性特性 高性能高
26、性能 低价格低价格 总线宽度总线宽度 独立的地址和数据总线独立的地址和数据总线 数据和地址分时数据和地址分时共用同一套总线共用同一套总线 数据总线宽度数据总线宽度 越宽越快(例如:越宽越快(例如:6464位)位) 越窄越便宜(例如:越窄越便宜(例如:8 8位)位) 传输块大小传输块大小 块越大总线开销越小块越大总线开销越小 单字传送更简单单字传送更简单 总线主设备总线主设备 多个(需要仲裁)多个(需要仲裁) 单个(无需仲裁)单个(无需仲裁) 分离事务分离事务 采用采用分离的请求包和分离的请求包和应答包能提高总线带宽应答包能提高总线带宽 不采用不采用持续连接成本持续连接成本更低,而且延迟更小更低
27、,而且延迟更小 定时方式定时方式 同步同步 异步异步 3838/85/856.4 总 线1.分离事务总线(又称:(又称:流水总线、悬挂总线、包交换总线流水总线、悬挂总线、包交换总线)在有多个主设备时,可以通过打包技术来提高总线带宽。基本思想q将总线事务分成请求和应答两部分。将总线事务分成请求和应答两部分。q在请求和应答之间的空闲时间内,总线可以供其他的在请求和应答之间的空闲时间内,总线可以供其他的I/OI/O使用,这样就不必在整个使用,这样就不必在整个I/OI/O过程中都独占总线。过程中都独占总线。 工作过程的示意图 3939/85/856.4 总 线分离事务总线有较高的带宽,但是它的数据传送
28、延迟通常比独占总线方法大。 地址地址地址地址地址地址地址地址 1 1 地址地址地址地址 2 2 地址地址地址地址 3 3数据数据数据数据数据数据数据数据 0 0 数据数据数据数据 1 1等待等待等待等待等待等待等待等待 1 1 完成完成完成完成 1 1 4040/85/856.4 总 线1.同步总线 包含一个供总线上所有设备使用的时钟,并且这些设备是基于该时钟按照一个固定的协议来发送地址和数据的。 优点:速度快、成本低。 缺点:总线操作都必须以同样的时钟频率进行。 2.异步总线 没有统一的参考时钟,每个设备都有各自的定时方法。采用握手协议 。4141/85/856.4 总 线1.I/O总线标准
29、:定义如何将设备与计算机进行连接的文档。2.常见I/O总线的一些典型特征 6.4.2 总线标准和实例IDE / Ultra ATA IDE / Ultra ATA SCSI SCSI PCI PCI PCI-X PCI-X 数据宽度(数据宽度(b b) 16 16 8/168/1632/6432/6432/6432/64时钟频率时钟频率(MHzMHz) 1001001010(FastFast)2020(UltraUltra)4040(Ultra2Ultra2)8080(Ultra3Ultra3)160160(Ultra4Ultra4) 33/6633/6666/100/13366/100/13
30、3总线主设备数量总线主设备数量 1 1个个 多个多个 多个多个 多个多个 峰值带宽峰值带宽(MBpsMBps) 20020032032053353310661066同步方式同步方式 异步异步 异步异步 同步同步 同步同步 标准标准 无无 ANSI X3.131 ANSI X3.131 无无 无无 几种常用并行几种常用并行I/OI/O总线总线 4343/85/856.4 总 线在嵌入式系统中使用较多的在嵌入式系统中使用较多的4 4种串行种串行I/OI/O总线的一些典型特征总线的一些典型特征 I I2 2C C 1-wire 1-wire RS-232 RS-232 SPI SPI 数据宽度(数据
31、宽度(b b) 1 11 12 21 1信号线数量信号线数量 2 21 19/259/253 3时钟频率(时钟频率(MHzMHz) 0.40.410 10 异步异步 0.040.04或异步或异步 异步异步 总线主设备数量总线主设备数量 多个多个 多个多个 多个多个 多个多个 峰值带宽(峰值带宽(MbpsMbps) 0.40.43.4 3.4 0.014 0.014 0.192 0.192 1 1同步方式同步方式 异步异步 异步异步 异步异步 异步异步 标准标准 无无 无无 EIA, ITU-T V.21 EIA, ITU-T V.21 无无 4444/85/856.4 总 线在服务器系统中使用
32、的在服务器系统中使用的CPU-CPU-存储器互连系统存储器互连系统 HP HP HyperPlaneHyperPlane Crossbar Crossbar IBM SP IBM SP SUN SUN GigaplaneGigaplane- -XB XB 数据宽度(数据宽度(b b) 6464128128128128时钟频率(时钟频率(MHzMHz) 12012011111183.3 83.3 总线的主设备数总线的主设备数 多个多个 多个多个 多个多个 每端口峰值带宽(每端口峰值带宽(MBpsMBps) 9609601700170013001300总峰值带宽(总峰值带宽(MBpsMBps) 7
33、680768014200142001066710667同步方式同步方式 同步同步 同步同步 同步同步 标准标准 无无 无无 无无 4545/85/856.4 总 线1.I/O总线的物理连接方式有两种选择连接到存储器上 更常见更常见连接到Cache上2.I/O总线连接到存储器总线上的方式一种典型的组织结构 6.4.3 与CPU的连接CPUCache主存主存I/O控制器控制器图形输出图形输出I/O 控制器控制器总线适配器总线适配器网络网络CPUCPU 主存总线主存总线主存总线主存总线I/OI/O总线总线总线总线总线适配器总线适配器AGPAGP总线总线总线总线PCIPCI总线总线总线总线 I/O控制
34、器控制器I/O控制器控制器总线适配器总线适配器磁盘磁盘磁盘磁盘CD4747/85/856.4 总 线1.CPU对I/O设备的编址有两种方式存储器映射I/O(也称为统一编址)q将一部分存储器地址空间分配给将一部分存储器地址空间分配给I/OI/O设备,用设备,用loadload指指令和令和storestore指令对这些地址进行读写将引起指令对这些地址进行读写将引起I/OI/O设备的设备的数据传输。数据传输。q将一部分存储空间留出用于设备控制,对这一部分地将一部分存储空间留出用于设备控制,对这一部分地址空间进行读写就是向设备发出控制命令。址空间进行读写就是向设备发出控制命令。给I/O设备独立编址q需
35、要在需要在CPUCPU中设置专用的中设置专用的I/OI/O指令来访问指令来访问I/OI/O设备。设备。qCPUCPU需要发出一个标志信号来表示所访问的地址是需要发出一个标志信号来表示所访问的地址是I/OI/O设备的地址。设备的地址。4848/85/856.4 总 线1.CPU与外部设备进行输入/输出的方式可分为4种程序查询中断DMA通道 4949/85/85通道处理机能够负担外围设备的大部分I/O工作。通道处理机(简称通道):专门负责整个计算机系统的输入/输出工作。通道处理机只能执行有限的一组输入/输出指令。I/O处理机(外围处理机):负责I/O工作的通用微处理机。6.5 通道处理机5050/
36、85/856.5 通道处理机1.程序控制、中断和DMA方式管理外围设备会引起两个问题:所有外设的输入/输出工作均由CPU承担,CPU的计算工作经常被打断而去处理输入/输出的事务,不能充分发挥CPU的计算能力。 大型计算机系统的外设虽然很多,但同时工作的机会不是很多。解决上述问题的方法:采用通道处理机 6.5.1 通道的作用和功能5151/85/856.5 通道处理机1.一个典型的由主机、通道、设备控制器、外设构成的4级层次结构的输入/输出系统。5252/85/856.5 通道处理机1.通道的功能 接收CPU发来的I/O指令,并根据指令要求选择指定的外设与通道相连接。执行通道程序 从主存中逐条取
37、出通道指令,对通道指令进行译码,并根从主存中逐条取出通道指令,对通道指令进行译码,并根据需要向被选中的设备控制器发出各种操作命令。据需要向被选中的设备控制器发出各种操作命令。给出外设中要进行读/写操作的数据所在的地址如磁盘存储器的柱面号、磁头号、扇区号等。如磁盘存储器的柱面号、磁头号、扇区号等。 给出主存缓冲区的首地址该缓冲区存放从外设输入的数据或者将要输出到外设中去该缓冲区存放从外设输入的数据或者将要输出到外设中去的数据。的数据。5353/85/856.5 通道处理机控制外设与主存缓冲区之间的数据传送的长度对传送的数据个数进行计数,并判断数据传送是否结束。对传送的数据个数进行计数,并判断数据
38、传送是否结束。指定传送工作结束时要进行的操作例如:例如:将外设的中断请求及通道的中断请求送往将外设的中断请求及通道的中断请求送往CPUCPU等。等。检查外设的工作状态是否正常,并将该状态信息送往主存指定单元保存。在数据传输过程中完成必要的格式变换例如:例如:把字拆分为字节,或者把字节装配成字等。把字拆分为字节,或者把字节装配成字等。 5454/85/856.5 通道处理机4.通道的主要硬件寄存器q数据缓冲寄存器数据缓冲寄存器q主存地址计数器主存地址计数器q传输字节数计数器传输字节数计数器q通道命令字寄存器通道命令字寄存器q通道状态字寄存器通道状态字寄存器控制逻辑q分时控制分时控制q地址分配地址
39、分配q数据传送、装配和拆分等数据传送、装配和拆分等5555/85/856.5 通道处理机1.通道对外设的控制通过输入/输出接口和设备控制器进行通道与设备控制器之间一般采用标准的输入/输出接口来连接。通道通过标准接口把操作命令送到设备控制器,设备控制器解释并执行这些通道命令,完成命令指定的操作。设备控制器能够记录外设的状态,并把状态信息送往通道和CPU。5656/85/85 6.5 通道处理机1.通道完成一次数据输入/输出的工作过程在用户程序中使用访管指令进入管理程序,由管理程序生成一个通道程序,并启动通道。q用户在目标程序中设置一条广义指令,通过调用操作用户在目标程序中设置一条广义指令,通过调
40、用操作系统的管理程序来实现。系统的管理程序来实现。q管理程序根据广义指令提供的参数来编制通道程序。管理程序根据广义指令提供的参数来编制通道程序。 q启动输入启动输入/输出设备指令输出设备指令是一条主要的输入是一条主要的输入/输出指令,输出指令,属于特权指令。属于特权指令。n工作流程工作流程 6.5.2 通道的工作过程5757/85/856.5 通道处理机5959/85/856.5 通道处理机通道处理机执行通道程序,完成指定的数据输入/输出工作。 通道处理机执行通道程序与通道处理机执行通道程序与CPUCPU执行用户程序是并行的。执行用户程序是并行的。 通道程序结束后向CPU发中断请求。2.CPU
41、执行程序和通道执行通道程序的时间关系 6060/85/856.5 通道处理机6161/85/856.5 通道处理机根据信息传送方式的不同,将通道分为三种类型q字节多路通道字节多路通道q选择通道选择通道q数组多路通道数组多路通道三种类型的通道与CPU、设备控制器和外设的连接关系 6.5.3 通道的种类6262/85/856.5 通道处理机6363/85/856.5 通道处理机1.字节多路通道 为多台低速或中速的外设服务。以字节交叉的方式分时轮流地为它们服务。字节多路通道可以包含多个子通道,每个子通道连接一台设备控制器。6464/85/851.选择通道 为多台高速外围设备服务。 在一段时间内只为一
42、台高速外设独占使用。选择通道的硬件 q5 5个寄存器个寄存器数据缓冲寄存器、设备地址寄存器、主存地址计数器、数据缓冲寄存器、设备地址寄存器、主存地址计数器、交换字节数计数器、设备状态交换字节数计数器、设备状态/ /控制寄存器控制寄存器 q格式变换部件格式变换部件用于在主存和设备之间进行字与字节的拆分和装配用于在主存和设备之间进行字与字节的拆分和装配q通道控制部件通道控制部件6.5 通道处理机6565/85/856.5 通道处理机6666/85/856.5 通道处理机1.数组多路通道 适用于高速设备。适用于高速设备。每次选择一个高速设备后传送一个数据块,轮流为多台外围设每次选择一个高速设备后传送
43、一个数据块,轮流为多台外围设备服务。备服务。数组多路通道之所以能够并行地为多台高速设备服务,是因为数组多路通道之所以能够并行地为多台高速设备服务,是因为虽然其所连设备的传输速率很高,但寻址等辅助操作时间很长。虽然其所连设备的传输速率很高,但寻址等辅助操作时间很长。 从磁盘存储器读出文件的的过程分为三步:从磁盘存储器读出文件的的过程分为三步: 定位、找扇区、读出数据数组多路通道的实际工作方式是:数组多路通道的实际工作方式是: 在为一台高速设备传送数据的同时,有多台高速设备可以在定位或者在找扇区。 与选择通道相比,数组多路通道的数据传输率和通道的硬件利用率都很高,控制硬件的复杂度也高。6767/8
44、5/856.5 通道处理机通道流量一个通道在数据传送期间,单位时间内能够传送的数据量。所用单位一般为Bps。又称为通道吞吐率、通道数据传输率等。通道最大流量 通道在满负荷工作状态下的流量通道在满负荷工作状态下的流量 。6.5.4 通道中的数据传送过程与流量分析6868/85/856.5 通道处理机参数的定义 qT TS S:设备选择时间。从通道响应设备发出的数据传送请设备选择时间。从通道响应设备发出的数据传送请求开始,到通道实际为这台设备传送数据所需要的时间。求开始,到通道实际为这台设备传送数据所需要的时间。qT TD D:传送一个字节所用的时间。传送一个字节所用的时间。qp p:在一个通道上
45、连接的设备台数,且这些设备同时都在一个通道上连接的设备台数,且这些设备同时都在工作。在工作。qn n:每台设备传送的字节数,这里假设每台设备传送的每台设备传送的字节数,这里假设每台设备传送的字节数都相同。字节数都相同。qk k:数组多路通道传输的一个数据块中包含的字节数。数组多路通道传输的一个数据块中包含的字节数。在一般情况下,在一般情况下,knkn。对于磁盘、磁带等磁表面存储器,对于磁盘、磁带等磁表面存储器,通常通常k=512k=512。qT T:通道完成全部数据传送工作所需要的时间。通道完成全部数据传送工作所需要的时间。6969/85/856.5 通道处理机1.字节多路通道 数据传送过程
46、通道每连接一台个外设,只传送一个字节,然后又与另一台设备连接,并传送一个字节。p台设备每台传送n个数据总共所需的时间为7070/85/856.5 通道处理机最大流量实际流量是连接在这个通道上的所有设备的数据传输率之和。qf fi i:第第i i台设备的实际数据传输率台设备的实际数据传输率 7171/85/856.5 通道处理机2.选择通道 在一段时间内只能单独为一台高速外设服务,当这台设备的数据传送工作全部完成后,通道才能为另一台设备服务。 工作过程其中:其中:D Di i表示通道正在为第表示通道正在为第i i台设备服务台设备服务 T TD1D1 = T = TD2D2 = = = = T T
47、DnDn = T = TD D 7272/85/856.5 通道处理机p台设备每台传送n个数据总共所需的时间 最大流量 7373/85/856.5 通道处理机1.数组多路通道 工作过程p台设备每台传送n个数据总共所需的时间为:7474/85/856.5 通道处理机最大流量选择通道和数组多路通道的实际流量就是连接在这个通道上的所有设备中数据流量最大的那一个 。7575/85/856.5 通道处理机各种通道的实际流量应该不大于通道的最大流量q两边的差值越小,通道的利用率就越高。两边的差值越小,通道的利用率就越高。q当两边相等时,通道处于满负荷工作状态。当两边相等时,通道处于满负荷工作状态。 767
48、6/85/85设计I/O系统需要注意操作系统的因素。在用硬件实现的I/O技术中,由操作系统来决定哪些会实际被采用。 I/O操作主要是在外设和存储器之间进行,所以操作系统必须保证这些I/O操作的安全性。 6.6 I/O与操作系统7777/85/856.6 I/O与操作系统DMA是使用虚拟地址还是物理地址?1.使用物理地址进行DMA传输,存在以下两个问题:对于超过一页的数据缓冲区,由于缓冲区使用的页面在物理存储器中不一定是连续的,所以传输可能会发生问题。 如果DMA正在存储器和缓冲区之间传输数据时,操作系统从存储器中移出(或重定位)一些页面,那么,DMA将会在存储器中错误的物理页面上进行数据传输。
49、 6.6.1 DMA和虚拟存储器7878/85/856.6 I/O与操作系统1.解决这些问题的方法 使操作系统在I/O的传输过程中确保DMA设备所访问的页面都位于物理存储器中,这些页面被称为是钉在了主存中。“虚拟DMA”技术 q允许允许DMADMA设备直接使用虚拟地址,并在设备直接使用虚拟地址,并在DMADMA期间由硬件期间由硬件将虚拟地址转换为物理地址。将虚拟地址转换为物理地址。 q在采用虚拟在采用虚拟DMADMA的情况下,如果进程在内存中被移动,的情况下,如果进程在内存中被移动,操作系统应该能够及时地修改相应的操作系统应该能够及时地修改相应的DMADMA地址表。地址表。 CPUCPUCac
50、heCache主存主存主存主存DMADMA控制器控制器控制器控制器I/OI/O总线总线总线总线TLBTLB地址转换寄存器地址转换寄存器地址转换寄存器地址转换寄存器主存总线主存总线主存总线主存总线CPUCPUI/O控制器控制器图形输出图形输出网络网络I/O控制器控制器I/O控制器控制器磁盘磁盘磁盘磁盘虚拟DMA的I/O连接8080/85/856.6 I/O与操作系统1.Cache会使一个数据出现两个副本:一个在Cache中,另一个在主存中。2.I/O设备可以修改存储器中的内容 把I/O连接到存储器上会出现以下情况:会出现以下情况:q CPUCPU修改了修改了CacheCache的内容后,由于存储
51、器的内容跟不上的内容后,由于存储器的内容跟不上CacheCache内容的变化,内容的变化,I/OI/O系统进行输出操作时所看到的系统进行输出操作时所看到的数据是旧值。(写直达数据是旧值。(写直达CacheCache没有这样的问题)没有这样的问题)qI/OI/O系统进行输入操作后,存储器的内容发生了变化,系统进行输入操作后,存储器的内容发生了变化,但但CPUCPU在在CacheCache中所看到的内容依然是旧值。中所看到的内容依然是旧值。 6.6.2 I/O和Cache数据一致性8181/85/856.6 I/O与操作系统 举例:举例:假设假设CacheCache采用写回法,并且采用写回法,并且
52、A A是是A A的副本,的副本,B B是是B B的副本。的副本。 8282/85/856.6 I/O与操作系统把I/O直接连接到Cache上q不会产生由不会产生由I/OI/O导致的数据不一致的问题。导致的数据不一致的问题。 n所有所有I/OI/O设备和设备和CPUCPU都能在都能在CacheCache中看到最新的数据。中看到最新的数据。qI/OI/O会跟会跟CPUCPU竞争访问竞争访问CacheCache,在进行在进行I/OI/O时,会造成时,会造成CPUCPU的的停顿。停顿。 qI/OI/O还可能会破坏还可能会破坏CacheCache中中CPUCPU访问的内容,因为访问的内容,因为I/I/O
53、 O操作可操作可能导致一些新数据被加入能导致一些新数据被加入CacheCache,而这些新数据可能在近而这些新数据可能在近期内并不会被期内并不会被CPUCPU访问。访问。 8383/85/856.6 I/O与操作系统1.解决内容一致性问题的方法(不管(不管CacheCache是采用写直达法还是写回法)是采用写直达法还是写回法)软件的方法q设法保证设法保证I/OI/O缓冲器中的所有各块都不在缓冲器中的所有各块都不在CacheCache中。中。q具体做法有两种具体做法有两种 n把把I/OI/O缓冲器的页面设置为不可进入缓冲器的页面设置为不可进入CacheCache的,的,在进行输入操作时,操作系统
54、总是把输入的数在进行输入操作时,操作系统总是把输入的数据放到该页面上。据放到该页面上。n在进行输入操作之前,操作系统先把在进行输入操作之前,操作系统先把CacheCache中与中与I/OI/O缓冲器相关的数据缓冲器相关的数据“赶出赶出”CacheCache,即把相即把相应的数据块设置为应的数据块设置为“无效无效”状态。状态。 8484/85/856.6 I/O与操作系统硬件的方法q在进行输入操作时,检查相应的在进行输入操作时,检查相应的I/OI/O地址(地址(I/OI/O缓冲器缓冲器中的单元)是否在中的单元)是否在CacheCache中(即是否有数据副本)。中(即是否有数据副本)。q如果发现如果发现I/OI/O地址在地址在CacheCache中有匹配的项,就把相应的中有匹配的项,就把相应的CacheCache块设置为块设置为“无效无效”。8585/85/856.6 I/O与操作系统1.提高I/O性能的一种方法:并行在程序中使多个磁盘同时工作,并行地访问数据。2.同步I/O进程处于等待状态直到所需的数据从磁盘读出。3.异步I/O 允许进程在发出I/O请求后继续执行,直到该进程真正访问这些数据而它们又尚未就绪时,才被挂起。 6.6.3 异步I/O8686/85/85本章作业6.5 6.8 6.9