第六章 输入输出系统.

Slides:



Advertisements
Similar presentations
3 的倍数的特征 的倍数有 : 。 5 的倍数有 : 。 既是 2 的倍数又是 5 的倍数有 : 。 12 , 18 , 20 , 48 , 60 , 72 , , 25 , 60 ,
Advertisements

高级服务器设计和实现 1 —— 基础与进阶 余锋
NAT与ICMP交互.
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
第七章 计算机输入输出系统与 接口技术.
实验四 利用中规模芯片设计时序电路(二).
SRTP通讯协议的基础知识.
实用操作系统概念 张惠娟 副教授 1.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
第三节 格林公式及其应用(2) 一、曲线积分与路径无关的定义 二、曲线积分与路径无关的条件 三、二元函数的全微分的求积 四、小结.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
计算机基础知识 丁家营镇九年制学校 徐中先.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Hadoop I/O By ShiChaojie.
联想移动硬盘_经典型 培训资料.
存储系统.
走进编程 程序的顺序结构(二).
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
乐驾-车载无线终端-CARRO 产品类型:车载无线路由器 建议零售价格:¥599 江苏鸿信
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Windows网络操作系统管理 ——Windows Server 2008 R2.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
Online job scheduling in Distributed Machine Learning Clusters
逆向工程-汇编语言
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
数据挖掘工具性能比较.
动态规划(Dynamic Programming)
CPU结构和功能.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
微机系统的组成.
计算机系统结构 第六章 输入输出系统.
第6章 输入/输出系统 曲冠南
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
实验七 安全FTP服务器实验 2019/4/28.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
信号量(Semaphore).
第4章 Excel电子表格制作软件 4.4 函数(一).
iSIGHT 基本培训 使用 Excel的栅栏问题
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
数据报分片.
无线网络特性展现 张琦.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
_03宽字符与Unicode编程 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
Google的云计算 分布式锁服务Chubby.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第四章 UNIX文件系统.
第十七讲 密码执行(1).
第十二讲 密码执行(上).
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
入侵检测技术 大连理工大学软件学院 毕玲.
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
DSP技术与应用 电子与信息技术系.
多个Activity的使用 本讲大纲: 1、使用Bundle在Activity之间交换数据 2、调用另一个Activity并返回结果
Presentation transcript:

第六章 输入输出系统

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请求可以同时处理以最大限度地 利用带宽。