计算机组成原理 武汉科技大学 计算机科学与技术学院

Slides:



Advertisements
Similar presentations
2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
Advertisements

2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
第九章、输入输出原理 原著 谭志虎 主讲(改编) 蒋文斌.
§3.4 空间直线的方程.
3.4 空间直线的方程.
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
2017年3月5日 单片机原理与应用 背景知识调查.
第七章 计算机输入输出系统与 接口技术.
实验四 利用中规模芯片设计时序电路(二).
5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
第8章 中 断 8.1 概 述 为什么要用中断 中断的出现,会带来以下好处。 (1)同步操作 (2)实现实时处理 (3)故障处理.
第10章 FPGA硬件设计 <EDA技术与应用> 课程讲义
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
计算机基础知识 丁家营镇九年制学校 徐中先.
施耐德电气(中国)投资有限公司 运动控制部技术经理 李幼涵 高级工程师
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
第三章 微机基本系统的设计 第一章 8086程序设计 第二章 MCS-51程序设计 第四章 存贮器与接口 第五章 并行接口
存储系统.
走进编程 程序的顺序结构(二).
网络常用常用命令 课件制作人:谢希仁.
乐驾-车载无线终端-CARRO 产品类型:车载无线路由器 建议零售价格:¥599 江苏鸿信
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
数 控 技 术 华中科技大学机械科学与工程学院.
Windows网络操作系统管理 ——Windows Server 2008 R2.
本节内容 模拟线程切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
逆向工程-汇编语言
CPU结构和功能.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
第二章 80x86计算机组织 x86微处理器 2.2 基于微处理器的计算机系统构成 2.3 中央处理机 2.4 存储器
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
中 断 王 静 阜阳师范学院 计算机与信息工程学院.
C语言程序设计 主讲教师:陆幼利.
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
微机系统的组成.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
(Random Access Memory)
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
单片机原理及应用 实践部分 主讲人:刘 强 四川工商学院单片机教学团队 单片机原理及应用 实践部分 主讲人:刘 强
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
iSIGHT 基本培训 使用 Excel的栅栏问题
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
第十章 输入输出程序设计 10.1 输入输出指令 输入输出(I/O)是指CPU与输入设备和输出设备之间进行的信息传送。CPU与外部设备之间通过输入输出接口相连接。各个设备在输入输出接口中分配了相应的端口。访问不同的设备就是访问其对应的端口。在指令系统中提供了访问输入输出端口的指令。 一、I/O端口寻址方式.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
数据报分片.
HSC高速输出例程 HORNER APG.
微机原理与接口技术 ——8086微处理器 西安邮电大学 计算机学院 范琳.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第十七讲 密码执行(1).
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
入侵检测技术 大连理工大学软件学院 毕玲.
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
DSP技术与应用 电子与信息技术系.
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

计算机组成原理 武汉科技大学 计算机科学与技术学院 计算机科学与技术专业 计算机组成原理 武汉科技大学 计算机科学与技术学院

第八章 输入输出系统 本章内容 8.1 外围设备的定时方式与信息交换方式 8.2 程序中断方式 8.3 DMA方式 8.4 通道方式 8.5 通用I/O标准接口

8.1 外围设备的定时方式与信息交换方式 8.1.1 外围设备的定时方式 8.1.1 外围设备的定时方式  外围设备的种类相当繁多,有机械式和电动式,也有电子式和其他形式。其输入信号,可以是数字式的电压,也可以是模拟式的电压和电流。从信息传输速率来讲,相差也很悬殊。    如果把高速工作的主机同不同速度工作的外围设备相连接,如何保证主机与外围设备在时间上同步?这就是我们要讨论的外围设备的定时问题。 输入/输出设备同CPU交换数据的过程: 输入过程: (1)CPU把一个地址值放在地址总线上,这一步将选择某一输入设备; (2)CPU等候输入设备的数据成为有效; (3)CPU从数据总线读入数据,并放在一个相应的寄存器中。

输出过程: (1)CPU把一个地址值放在地址总线上,选择输出设备; (2)CPU把数据放在数据总线上; (3)输出设备认为数据有效,从而把数据取走。   问题的关键在于:究竟什么时候数据才成为有效? 很显然,由于输入/输出设备本身的速度差异很大,因此,对于不同速度的外围设备,需要有不同的定时方式,总的说来,CPU与外围设备之间的定时,有以下三种情况。 1.速度极慢或简单的外围设备—无条件输入输出   对这类设备,如机械开关、显示二极管等等,CPU总是能足够快地作出响应。换句话说,对机械开关来讲,CPU可以认为输入的数据一直有效,因为机械开关的动作相对CPU的速度来讲是非常慢的,对显示二极管来讲,CPU可以认为输出一定准备就绪,因为只要给出数据,显示二极管就能进行显示,所以,在这种情况下,CPU只要接收或发送数据就可以了。

2.慢速或中速的外围设备—异步定时、查询输入输出   由于这类设备的速度和CPU的速度并不在一个数量级,或者由于设备(如键盘)本身是在不规则时间间隔下操作的,因此,CPU与这类设备之间的数据交换通常采用异步定时方式。其定时过程如下:   如果CPU从外设接收一个字,则它首先询问外设的状态,如果该外设的状态标志表明设备已“准备就绪”,那么CPU就从总线上接收数据。CPU在接收数据以后,发出输入响应信号,告诉外设已经把数据总线上的数据取走。然后,外设把“准备就绪”的状态标志复位,并准备下一个字的交换。如果CPU起先询问外设时,外设没有“准备就绪”,那么它就发出表示外设“忙”的标志。于是,CPU将进入一个循环程序中等待,并在每次循环中询问外设的状态,一直到外设发出“准备就绪”信号以后,才从外设接收数据。   CPU发送数据的情况也与上述情况相似,外设先发出请求输出

信号,而后,CPU询问外设是否准备就绪。如果外设已准备就绪,CPU便发出准备就绪信号,并送出数据。外设接收数据以后,将向CPU发出“数据已经取走”的通知。 3.高速的外围设备—同步定时、DMA输入输出   由于这类外设是以相等的时间间隔操作的,而CPU也是以等间隔的速率执行输入/输出指令的 ,因此,这种方式叫做同步定时方式。一旦CPU和外设发生同步,它们之间的数据交换便靠时钟脉冲控制来进行。   更快的同步传送要采用直接内存访问(DMA)方式,这将在后面详细介绍。

8.1.2 信息交换方式          [例子]假设幼儿园一个阿姨带10个孩子,要给每个孩子分4块水果糖。假设孩子们把4块糖都吃完,那么她采用什么方法呢? 方法1: 她先给孩子甲一块糖,盯着甲吃完,然后再给第二块,等吃完第二块又给第三 块,吃完第三块又给第四块。接着给孩子乙,其过程与孩子甲完全一样。依次类推,直至到 第10个孩子发完四块糖。看来这种方法效率太低,重要之点还在于孩子们吃糖时她一直在守 候,什么事也不能干。 方法2: 每人发一块糖各自去吃,并约定谁吃完后就 向她举手报告,再发第二块。看来这种新方法提高了工作效率,而且在未接到孩子们吃完糖 的 报告以前,她还可以腾出时间给孩子们改作业。但是这种方法还可以改进。 方法3: 进行批处理:每人拿4块糖各自去吃,吃完4块糖后再向她报告。显然这种方法工作 效率大大提高,她可以腾出更多的时间改作业。 方法4: 权力下放,把发糖的事交给另一个人分管,只是必要时她才过问一下。

在计算机系统中,CPU管理外围设备也有几种类似的方式: 1程序查询方式   程序查询方式是早期计算机中使用的一种方式。数据在CPU和外围设备之间的传送完全靠计算机程序控制。   查询方式的优点:CPU的操作和外围设备的操作能够同步,而且硬件结构比较简单。   缺点:外围设备动作很慢,程序进入查询循环时将白白浪费掉CPU很多时间。   这种情况同上述例子中第一种方法相仿,CPU此时只能等待,不能处理其他业务。即使CPU采用定期地由主程序转向查询设备状态的子程序进行扫描轮询的办法,CPU宝贵资源的浪费也是可观的。因此当前除单片机外,很少使用程序查询方式。

2程序中断方式   中断是外围设备用来“主动”通知CPU,准备送出输入数据或接收输出数据的一种方法。此时CPU由主动查询变为被动响应。   通常,当一个中断发生时,CPU暂停它的现行程序,而转向中断处理程序,从而可以输入或输出一个数据。当中断处理完毕后,CPU又返回到它原来的任务,并从它停止的地方开始执行程序。 这种方式和我们前述例子的第二种方法相类似。 优点:节省了CPU宝贵的时间,是管理I/O操作的一个比较有效的方法。中断方式一般适用于随机出现的服务,并且一旦提出要求,应立即进行。 缺点:同程序查询方式相比,硬件结构相对复杂一些,服务开销时间较大。

3直接内存访问(DMA)方式 中断方式的问题:用中断方式交换数据时,每处理一次I/O交换,约需几十微秒到几百微秒。对于一些高速的外围设备,以及成组交换数据的情况,仍然显得速度太慢。 直接内存访问(DMA)方式是一种完全由硬件执行I/O交换的工作方式。这种方式既考虑到中断响应,同时又要节约中断开销。此时,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和外围设备之间进行,以高速传送数据。 这种方式和前述例子的第三种方法相仿。   优点:数据传送速度很高,传送速率仅受到内存访问时间的限制。   缺点:与中断方式相比,需要更多的硬件。 DMA方式适用于内存和高速外围设备之间大批数据交换的场合。

4通道方式   DMA方式的出现已经减轻了CPU对I/O操作的控制,使得CPU的效率有显著的提高,而通道的出现则进一步提高了CPU的效率。这是因为,CPU将部分权力下放给通道。 通道是一个具有特殊功能的处理器,某些应用中称为输入输出处理器(IOP),它可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。这种方式与前述例子的第四种方法相仿,大大提高了CPU的工作效率。然而这种提高CPU效率的办法是以花费更多硬件为代价的。 5外围处理机方式   外围处理机(PPU)方式是通道方式的进一步发展。由于PPU基本上独立于主机工作,它的结构更接近一般处理机,甚至就是微小型计算机。在一些系统中,设置了多台PPU,分别承担I/O控制、通信、维护诊断等任务。从某种意义上说,这种系统已变成分布式的多机系统。

外围设备的输入/输出方式   程序查询方式和程序中断方式适用于数据传输率比较低的外围设备,而DMA方式、通道方式 和PPU方式适用于数据传输率比较高的设备。目前,单片机和微型机中多采用程序查询方式、程序中断方式和DMA方式。通道方式和PPU方式大都用在中、大型计算机中。

8.2 程序中断方式 8.2.1 中断的基本概念 中断处理过程如图: 8.2.1 中断的基本概念       中断处理过程如图: 主程序只是在设备A,B,C数据准备就绪时,才去处理A,B ,C,进行数据交换。在速度较慢的外围设备准备自己的数据时,CPU照常执行自己的主程序 。在这个意义上说,CPU和外围设备的一些操作是并行地进行的,因而同串行进行的程序查询方式相比,计算机系统的效率是大大提高了。

 中断处理过程流程图

一些问题: (1) 尽管外界中断请求是随机的,但CPU只有在当前一条指令执行完毕后,即转入公操作时才受理设备的中断请求,这样才不致于使当前指令的执行受到干扰。公操作是指一条指令执行结束后CPU所进行的操作,如中断处理、直接内存传送、取下条指令等 。外界中断请求信号通常存放在接口中的中断源锁存器里,并通过中断请求线连至CPU,每当一条指令执行到末尾,CPU便检查中断请求信号。若中断请求信号为“1”,则CPU转入“ 中断周期”,受理外界中断。 (2) 为了在中断服务程序执行完毕以后正确地返回到原来主程序被中断的断点(PC内容)而继续执行主程序,必须把程序计数器PC的内容,以及当前指令执行结束后CPU的状态(包括寄存器的内容和一些状态标志位)都保存到堆栈中去。这些操作叫做保存现场。  (3) 当CPU响应中断后,正要去执行中断服务程序时,可能有另一个新的中断源向它发出中断请求。为了不致造成混乱,在CPU的中断管理部件中必须有一个中断屏蔽触发器,它可以在程序的控制下

置“1”(设置屏蔽),或置“0”(取掉屏蔽)。只有在中断屏蔽标志为“0”时,CPU才可以受理中断。当一条指令执行完毕CPU接受中断请求并作出响应时,它一方面发出中断响应信号INTA,另一方面把中断屏蔽标志置“1”,即关闭中断(如8086CPU中的清IF标志)。这样,CPU不能再受理另外的新的中断源发来的中断请求。只有在CPU把中断服务程序执行完毕以后,它才重新使中断屏蔽标志置“0”,即开放中断,并返回主程序。因此,中断服务程序的最后必须有两条指令,即开中断指令和返主指令,同时在硬件上要保证返主指令执行以后才受理新的中断请求。 (4) 中断处理过程是由硬件和软件结合来完成的。如在CAI演示中,中断周期由硬件实现,而中断服务程序由机器指令序列实现。后者除执行保存现场、恢复现场、开放中断并返回主程序任务外,对要求中断的设备进行服务,使其同CPU交换一个字的数据,或作其他服务。

8.2.2 程序中断方式的基本接口  

程序中断由外设接口的状态和CPU两方面来控制:   在接口方面,有决定是否向CPU发出中断请求的机构,主要是接口中的“准备就绪”标志(RD)和“允许中断”标志(EI)两个触发器;   在CPU方面,有决定是否受理中断请求的机构,主要是“中断请求”标志(IR)和“中断屏蔽”标志(IM)两个触发器。   上述四个标志触发器的具体功能如下:   准备就绪的标志(RD) 一旦设备做好一次数据的接收或发送,便发出一个设备动作完毕信号 ,使RD标志置“1”。在中断方式中,该标志用作为中断源触发器,简称中断触发器。   允许中断触发器(EI) 可以用程序指令来置位。EI为“1”时,某设备可以向CPU发出中断请求;EI为“0”时,不能向CPU发出中断请求,这意味着某中断源的中断请求被禁止。设置EI标志的目的,就是通过软件来控制是否允许某设备发出中断请求。   中断请求触发器(IR) 它暂存中断请求线上由设备发出的中断请求信号。当IR标志为“1”时,表示设备发出了中断请求。   中断屏蔽触发器(IM) 是CPU是否受理中断或批准中断的标志。IM标志为“0”时,CPU可以受理外界的中断请求,反之,IM标志为“1”时,CPU不受理外界的中断。 

8.2.3 单级中断 1.单级中断的概念 根据计算机系统对中断处理的策略不同,可分为单级中断系统和多级中断系统。 8.2.3 单级中断 1.单级中断的概念   根据计算机系统对中断处理的策略不同,可分为单级中断系统和多级中断系统。   单级中断系统是中断结构中最基本的形式。在单级中断系统中,所有的中断源都属于同一级,所有中断源触发器排成一行,其优先次序是离CPU近的优先权高。当响应某一中断请求时,执行该中断源的中断服务程序。在此过程中,不允许其他中断源再打断中断服务程序,即使优先权比它高的中断源也不能再打断。单级中断示意图和系统结构图如下:

2.单级中断源的识别   如何确定中断源,并转入被响应的中断服务程序入口地址,是中断处理首先要解决的问题。    在单级中断中,采用串行排队链法来实现具有公共请求线的中断源判优识别。

3.中断向量的产生   开关理论中把若干个布尔量排成的序列定义为布尔向量。由于存储器的地址码是一串布尔量的序列,因此常常把地址码称为向量地址。   当CPU响应中断时,由硬件直接产生一个固定的地址(即向量地址),由向量地址指出每个中断源设备的中断服务程序入口,这种方法通常称为向量中断。显然,每个中断源分别有一个中断服务程序,而每个中断服务程序又有自己的向量地址。当CPU识别出某中断源时,由硬件直接产生一个与该中断源对应的向量地址,很快便引入中断服务程序。向量中断要求在硬件设计时考虑所有中断源的向量地址,而实际中断时只能产生一个向量地址。   有些计算机中由硬件产生的向量地址不是直接地址,而是一个“位移量”,这个位移量加上CPU某寄存器里存放的基地址,最后得到中断处理程序的入口地址。   还有一种采用向量地址转移的方法。假设有8个中断源,由优先级编码电路产生8个对应的固定地址码(例如0,1,2,…,7),这8个单元中存放的是转移指令,通过转移指令可转入设备各自的中断服务程序入口。这种方法允许中断处理程序放在内存中任何地方,非常灵活。

8.2.4 多级中断 1.多级中断的概念 多级中断系统是指计算机系统中有相当多的中断源,根据各中断事件的轻重缓急程度不同而分成若干级别,每一中断级分配给一个优先权。优先权高的中断级可以打断优先权低的中断服务程序,以程序嵌套方式进行工作,请见CAI演示(a)。  二级中断服务 一级中断服务 三级中断服务 主程序

一维多级中断是指每一级中断里只有一个中断源,而二维多级中断是指每一级中断里又有多个中断源。   对多级中断,我们着重说明如下几点: (1) 一个系统若有n级中断,在CPU中就有n个中断请求触发器,总称为中断请求寄存器 ;与之对应的有n个中断屏蔽触发器,总称为中断屏蔽寄存器。与单级中断不同,在多级中断中,中断屏蔽寄存器的内容是一个很重要的程序现场,因此在响应中断时,需要把中断屏蔽寄存器的内容保存起来,并设置新的中断屏蔽状态。一般在某一级中断被响应后,要置“1 ”(关闭)本级和优先权低于本级的中断屏蔽触发器,置“0”(开放)更高级的中断屏蔽触发器,以此来实现正常的中断嵌套。 (2) 多级中断中的每一级可以只有一个中断源,也可以有多个中断源。在多级中断之间可以实现中断嵌套,但是同一级内有不同中断源的中断是不能嵌套的,必须是处理完一个中断后再响应和处理同一级内其他中断源。

(3) 设置多级中断的系统一般都希望有较快的中断响应时间,因此首先响应哪一级中断和哪一个中断源,都是由硬件逻辑实现,而不是用程序实现。另外,在二维中断结构中,除了有中断优先级排队电路确定优先响应中断级外,还要确定优先响应的中断源,一般通过链式查询的硬件逻辑来实现。显然,这里采用了独立请求方式与链式查询方式相结合的方法决定首先响应哪个中断源。 (4) 和单级中断情况类似,在多级中断中也使用堆栈保存现场信息。使用堆栈保存现场的好处是: a.控制逻辑简单,保存和恢复现场的过程按先进后出顺序进行。 b.每一级中断不必单独设置现场保护区,各级中断现场可按其顺序放在同一个栈里。

2.多级中断源的识别   在多级中断中,每一级均有一根中断请求线送往CPU的中断优先级排队电路,对每一级赋予了不同的优先级。显然这种结构就是独立请求方式的逻辑结构。   独立请求方式的中断优先级排队与中断向量产生的逻辑结构请见CAI演示。   每个中断请求信号保存在“中断请求”触发器中,经“中断屏蔽”触发器控制后,可能有若干个中断请求信号IR i ′进入虚线框所示的排队电路。排队电路在若干中断源中决定首先响应哪个中断,并在其对应的输出线IRi上给出“1”信号,而其他各线为“0”信号(IR1—IR4中有一个信号有效)。之后,编码电路根据排上队的中断源输出信号IRi,产生一个预定的地址码,转向中断服务程序入口地址。   在多级中断中,如果每一级请求线上还连接有多个中断源设备,那么在识别中断源时,还需要进一步用串行链式方式查询。这意味着要用二维方式来设计中断排队逻辑。

【例1】参见本小节前两个CAI所示的二维中断系统。请问: (1)在中断情况下,CPU和设备的优先级如何考虑?请按降序排列各设备的中断优先级。 (2)若CPU现执行设备B的中断服务程序,IM2,IM1,IM0的状态是什么?如果CPU执行设备D的中断服务程序,IM2,IM1,IM0的状态又是什么? (3)每一级的IM能否对某个优先级的个别设备单独进行屏蔽?如果不能,采取什么办法可达到目的? (4)假如设备C一提出中断请求,CPU立即进行响应,如何调整才能满足此要求? 【解】 (1)在中断情况下,CPU的优先级最低。各设备的优先次序是:A→B→C→ D→E→F→G→H→I→CPU。

(2)执行设备B的中断服务程序时IM2IM1IM0=111;执行设备D的中断服务程序时, IM2IM1IM0 =011。 (3)每一级的IM标志不能对某个优先级的个别设备进行单独屏蔽。可将接口中的EI(中断允许)标志清“0”,它禁止设备发出中断请求。 (4)要使设备C的中断请求及时得到响应,可将设备C从第2级取出来,单独放在第3级上,使第3级的优先级最高,即令IM3=0即可。

【例2】参见例1所示的系统,只考虑A,B,C三个设备组成的单级中断结构,它要求CPU在执行完当前指令时对中断请求进行服务。假设:(1)CPU“中断批准”机构在响应一个新的 中断之前,先要让被中断的程序的一条指令一定要执行完毕;(2)TDC为查询链中每个设备的延迟时间;(3)TA,TB,TC分别为设备A,B,C的服务程序所需的执行时间; (4)TS,TR为保存现场和恢复现场所需的时间;(5)主存工作周期为TM。 试问:就这个中断请求环境来说,系统在什么情况下达到中断饱和?  【解】参阅8.2.1小节的中断处理流程,并假设执行一条指令的时间也为TM。如果三个设备同时发出中断请求,那么依次分别处理设备A、设备B、设备C的时间如下: tA = 2TM + TDC + TS + TA + TR   tB = 2TM + 2TDC + TS + TB + TR tC = 2TM + 3TDC + TS + TC + TR 处理三个设备所需的总时间为:T=tA+tB+tC T是达到中断饱和的最小时间,即中断极限频率为:f=1/T

8.2.5 中断控制器       8259中断控制器是一个集成电路芯片,它将中断接口与优级判断等功能汇集于一身,常用于微型机系统。其内部结构如图:

8259的中断优先级选择方式有四种: 8259提供了两种屏蔽方式: (1)完全嵌套方式:是一种固定优先级方式,连至IR0设备优先级最高,IR7的优先级最低。这种固定优先级方式对级别低的中断不利,在有些情况下最低级别的中断请求可能一直不能被处理。 (2)轮换优先级方式A:每个级别的中断保证有机会被处理,将给定的中断级别处理完后,立即把它放到最低级别的位置上去。 (3) 轮换优先级方式B:要求CPU可在任何时间规定最优优先级,然后顺序地规定其他IR线上的优先级。 (4)查询方式:由CPU访问8259的中断状态寄存器,一个状态字能表示出正在请求中断的最高优先级IR线,并能表示出中断请求是否有效。 8259提供了两种屏蔽方式: (1)简单屏蔽方式:提供8位屏蔽字,每位对应着各自的IR线。被置位的任一位则禁止了对应IR线上的中断。 (2)特殊屏蔽方式:允许CPU让来自低优先级的外设中断请求去中断高优先级的服务程序。当8位屏蔽位的某位置“0”时,例如屏蔽字为11001111,说明IR4和IR5线上的中断请求可中断任何高级别的中断服务程序。

8.2.6 奔腾中断机制 1.中断类型 中断 通常称为外部中断,它是由CPU的外部硬件信号引发的。有两种情况 : 8.2.6 奔腾中断机制       1.中断类型 中断 通常称为外部中断,它是由CPU的外部硬件信号引发的。有两种情况 : (1)可屏蔽中断:CPU的INTR引脚收到中断请求信号,如果CPU中标志寄存器IF=1时,可引发中断;IF=0时,中断请求信号在CPU内部被禁止。 (2)非屏蔽中断:CPU的NMI引脚收到的中断请求信号而引发的中断,这类中断不能被禁止。 异常 通常称为异常中断,它是由指令执行引发的。有两种情况: (1)执行异常: CPU执行一条指令过程中出现错误、故障等不正常条件引发的中断; (2)执行软件中断指令: 如执行INT 0,INT 3,INT n等指令,执行时产生异常中断。

  详细分类的话,pentium共有256种中断和异常。每种中断给予一个编号,称为中断向量号(0—255),以便发生中断时,程序转向相应的中断服务子程序入口地址。   当有一个以上的异常或中断发生时,CPU以一个预先确定的优先顺序为它们先后进行服务。中断优先级分为5级。异常中断的优先级高于外部中断的级,这是因为异常中断发生在取一条指令或译码一条指令或执行一条指令时出现故障的情况下,情况更为紧急。 2.中断服务子程序进入过程   中断服务子程序的入口地址信息存于中断向量号检索表内。实模式为中断向量表IVT,保护模式为中断描述符表IDT。 CPU识别中断类型取得中断向量号的途径有三种: (1)指令给出,如软件中断指令INT n 中的n即为中断向量号。 (2)外部提供:可屏蔽中断是在CPU接收到INTR信号时产生一个中断识别周期,接收外部中断控制器由数据总线送来的中断向量号;非屏蔽中断是在接收到NMI信号时中断向量号固定为2。

(3)CPU识别错误、故障现象,根据异常和中断产生的条件自动指定向量号。如除法错为0,加减溢出为4。 实模式下使用中断向量表   中断向量表IVT位于内存地址0开始的1KB空间。实模式是16位寻址,中断服务子程序入口地址(段,偏移)的段寄存器和段内偏移量各为16位。它们直接登 记在IVT表中,每个中断向量号对应一个中断服务子程序入口地址。每个入口地址占4字节。 256个中断向量号共占1KB。CPU取得向量号后自动乘以4,作为访问IVT的偏移,读取IVT相应 表项,将段地址和偏移量设置到CS和IP寄存器,从而进入相应的中断服务子程序。

保护模式下使用中断描述符表   保护模式为32位寻址。中断描述符表IDT每一表项对应一个中断向量号,表项称为中断门描述符、陷阱门描述符。这些门描述符为8字节长,对应256个中断向量号,IDT表长为2KB。由中断描述符表寄存器IDTR来指示IDT的内存地址。   以中断向量号乘以8作为访问IDT的偏移,读取相应的中断门/陷阱门描述符表项。门描述符 给出中断服务子程序入口地址(段,偏移),其中32位偏移量装入EIP寄存器,16位的段值装 入CS寄存器。由于此段值是选择符,还必须访问GDT或LDT,才得到段的基地址。

3.中断处理过程 (1)当中断处理的CPU控制权转移涉及到特权级改变时,必须把当前的SS和ESP两个寄存器的内容压入系统堆栈予以保存。 (2)标志寄存器EFLAGS的内容也压入堆栈。 (3)清除标志触发器TF和IF。 (4)当前的代码段寄存器CS和指令指针EIP也压入此堆栈。 (5)如果中断发生伴随有错误码,则错误码也压入此堆栈。 (6)完成上述中断现场保护后,从中断向量号获取的中断服务子程序入口地址(段,偏移)分别装入CS和EIP,开始执行中断服务子程序。 (7)中断服务子程序最后的IRET指令使中断返回。保存在堆栈中的中断现场信息被恢复,并由中断点继续执行原程序。

8.3 DMA方式     8.3.1 DMA的基本概念     1.DMA的特点:直接内存访问(DMA)是一种完全由硬件执行I/O交换的工作方式。在这种方式中,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和I/O设备之间进行 。DMA方式一般用于高速传送成组数据。DMA控制器将向内存发出地址和控制信号,修改地址,对传送的字的个数计数,并且以中断方式向CPU报告传送操作的结束。 2.DMA方式的主要优点:速度快。由于CPU根本不参加传送操作,因此就省去了CPU取指令、取数、送数等操作。在数据传送过程中,没有保存现场、恢复现场之类的工作。内存地址修改、传送字个数的计数等等,也不是由软件实现,而是用硬件线路直接实现的。所以DMA方式能满足高速I/O设备的要求,也有利于CPU效率的发挥。

3. DMA的基本操作: (1)从外围设备发出DMA请求; (2)CPU响应请求,把CPU工作改成DMA操作方式,DMA控制器从CPU接管总线的控制; (3)由DMA控制器对内存寻址,即决定数据传送的内存单元地址及数据传送个数的计数,并执行数据传送的操作; (4)向CPU报告DMA操作的结束。 注意 :   在DMA方式中,一批数据传送前的准备工作,以及传送结束后的处理工作,均由管理程序承担,而DMA控制器仅负责数据传送的工作。 

8.3.2 DMA传送方式   DMA技术的出现,使得外围设备可以通过DMA控制器直接访问内存,与此同时,CPU可以继续执行程序。DMA控制器与CPU分时使用内存通常采用以下三种方法: 1.停止CPU访问内存   当外围设备要求传送一批数据时,由DMA控制器发一个停止信号给CPU,要求CPU放弃对地址总线、数据总线和有关控制总线的使用权。DMA控制器获得总线控制权以后,开始进行数据传送。在一批数据传送完毕后,DMA控制器通知CPU可以使用内存,并把总线控制权交还给CPU。在这种DMA传送过程中,CPU基本处于不工作状态或者说保持状态。这种传送方式的时间图如下:

优点: 控制简单,它适用于数据传输率很高的设备进行成组传送。 缺点: 在DMA控制器访内阶段,内存的效能没有充分发挥,相当一部分内存工作周期是空闲的。这是因为,外围设备传送两个数据之间的间隔一般总是大于内存存储周期,即使高速I/O设备也是如此。

2.周期挪用   当I/O设备没有DMA请求时,CPU按程序要求访问内存;一旦I/O设备有DMA请求,则由I/O设备挪用一个或几个内存周期。 I/O设备要求DMA传送时可能遇到两种情况: (1)此时CPU不需要访内,如CPU正在执行乘法指令。由于乘法指令执行时间较长,此时I/O访内与CPU访内没有冲突,即I/O设备挪用一二个内存周期对CPU执行程序没有任何影响。 (2)I/O设备要求访内时CPU也要求访内,这就产生了访内冲突,在这种情况下I/O设备访内优先,因为I/O访内有时间要求,前一个I/O数据必须在下一个访内请求到来之前存取完毕。显然,在这种情况下I/O 设备挪用一二个内存周期,意味着CPU延缓了对指令的执行,或者更明确地说,在CPU执行访内指令的过程中插入DMA请求,挪用了一二个内存周期。 这种传送方式的时间图如下:

与停止CPU访内的DMA方法比较,周期挪用的方法既实现了I/O传送,又较好地发挥了内存和CPU的效率,是一种广泛采用的方法。但是I/O设备每一次周期挪用都有申请总线控制权、建立总线控制权和归还总线控制权的过程,所以传送一个字对内存来说要占用一个周期,但对DMA控制器来说一般要2—5个内存周期(视逻辑线路的延迟而定)。因此,周期挪用的方法适用于I/O设备读写周期大于内存存储周期的情况。

3.DMA与CPU交替访内   如果CPU的工作周期比内存存取周期长很多,此时采用交替访内的方法可以使DMA传送和CPU同时发挥最高的效率。假设CPU工作周期为 1.2μs,内存存取周期小于0.6μs,那么一个CPU周期可分为C1和C2两个分周期,其中C1供DMA控制器访内,C2专供CPU访内。这种传送方式的时间图如下:

这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过C1和C2分时进行的。CPU和DMA控制器各自有自己的访内地址寄存器、数据寄存器和读/写信号等控制寄存器。在C1周期中,如果DMA控制器有访内请求,可将地址、数据等信号送到总线上。在C2周期中,如CPU有访内请求,同样传送地址、数据等信号。事实上,对于总线,这是用C1,C2控制的一个多路转换器,这种总线控制权的转移几乎不需要什么时间,所以对DMA传送来讲效率是很高的。   这种传送方式又称为“透明的DMA”方式,其来由是这种DMA传送对CPU来说,如同透明的玻璃一般,没有任何感觉或影响。在透明的DMA方式下工作,CPU既不停止主程序的运行,也不进入等待状态,是一种高效率的工作方式。当然,相应的硬件逻辑也就更加复杂。

8.3.3 基本的DMA控制器 1.DMA控制器的基本组成   一个DMA控制器,实际上是采用DMA方式的外围设备与系统总线之间的接口电路。这个接口电路是在中断接口的基础上再加DMA机构组成。其逻辑示意图见文字教材图8.12。 一个最简单的DMA控制器由以下逻辑部件组成: (1)内存地址计数器 用于存放内存中要交换的数据的地址。在DMA传送前,须通过程序将数据在内存中的起始位置(首地址)送到内存地址计数器。而当DMA传送时,每交换一次数据,将地址计数器加“1”,从而以增量方式给出内存中要交换的一批数据的地址。 (2)字计数器 用于记录传送数据块的长度(多少字数)。其内容也是在数据传送之前由程序预置,交换的字数通常以补码形式表示。在DMA传送时,每传送一个字,字计数器就加“1” ,当计数器溢出即最高位产生进位时,表示这批数据传送完毕,于是引起DMA控制器向CPU发中断信号。

+1

(3)数据缓冲寄存器 用于暂存每次传送的数据(一个字)。当输入时,由设备(如磁盘)送往数据缓冲寄存器,再由缓冲寄存器通过数据总线送到内存。反之,输出时,由内存通过数据总线送到数据缓冲寄存器,然后再送到设备。 (4)“DMA请求”标志 每当设备准备好一个数据字后给出一个控制信号,使“DMA请求” 标志置“1”。该标志置位后向“控制/状态”逻辑发出DMA请求,后者又向CPU发出总线使用权的请求(HOLD),CPU响应此请求后发回响应信号HLDA,“控制/状态”逻辑接收此信号后向CPU发总线请求,在得到CPU的响应信号,使“DMA请求”标志复位,为交换下一个字做好准备。 (5)“控制/状态”逻辑 由控制和时序电路以及状态标志等组成,用于修改内存地址计数器和字计数器,指定传送类型(输入或输出),并对“DMA请求”信号和CPU响应信号进行协调和同步。 (6)中断机构 当字计数器溢出时(全0),意味着一组数据交换完毕,由溢出信号触发中断机构,向CPU提出中断报告。这里的中断与上一节介绍的I/O中断所采用的技术相同,但中断的目的不同,前面是为了数据的输入或输出,而这里是为了报告一组数据传送结束。因此它们是I/O系统中不同的中断事件。

2.DMA数据传送过程   DMA的数据块传送过程可分为三个阶段:传送前预处理;正式传送;传送后处理。   预处理 由CPU执行几条输入输出指令,测试设备状态,向DMA控制器的设备地址寄存器中送入设备号并启动设备,向内存地址计数器中送入起始地址,向字计数器中送入交换的数据字个数。在这些工作完成后,CPU继续执行原来的主程序。   正式传送 当外设准备好发送数据(输入)或接受数据(输出)时,它发出DMA请求,由DMA控制器向CPU发出总线使用权的请求(HOLD)。下图示出了停止CPU访内方式的DMA传送数据的流程图。

DMA的数据传送是以数据块为基本单位进行的,因此,每次DMA控制器占用总线后,无论是数据输入操作,还是输出操作,都是通过循环来实现的。当进行输入操作时,外围设备的数据(一次一个字或一个字节)传向内存;当进行输出操作时,内存的数据传向外围设备。   后处理 一旦DMA的中断请求得到响应,CPU停止主程序的执行,转去执行中断服务程序做一些DMA的结束处理工作。这些工作包括校验送入内存的数据是否正确;决定继续用DMA方式传送下去,还是结束传送;测试在传送过程中是否发生了错误等等。 基本DMA控制器与系统的连接方式: (1)公用的DMA请求方式; (2)独立的DMA请求方式,这与中断方式类似。

8.3.4 选择型和多路型DMA控制器 1.选择型DMA控制器   选择型DMA控制器的逻辑框图请见CAI演示。 选择型DMA控制器的工作原理:   与前面的简单DMA控制器基本相同。除了前面讲到的基本逻辑部件外,还有一个设备号寄存器。数据传送是以数据块为单位进行的,在每个数据块传送之前的预置阶段,除了用程序中I/O指令给出数据块的传送个数、起始地址、操作命令外,还要给出所选择的设备号。从预置开始,一直到这个数据块传送结束,DMA控制器只为所选设备服务。下一次预置再根据I/O指令指出的设备号,为另一选择的设备服务。显然,选择型DMA控制器相当于一个逻辑开关,根据I/O指令来控制此开关与某个设备连接。

  选择型DMA控制器只增加少量硬件达到了为多个外围设备服务的目的,它特别适合数据传输率很高以至接近内存存取速度的设备。在很快地传送完一个数据块后,控制器又可为其他设备服务。

2.多路型DMA控制器   选择型DMA控制器不适用于慢速设备。但多路型DMA控制器适合于同时为多个慢速外围设备服务。   链式多路型DMA控制器和独立请求方式多路型DMA控制器请见CAI演示。   多路型DMA不仅在物理上可以连接多个外围设备,而且在逻辑上也允许这些外围设备同时工作,各设备以字节交叉方式通过DMA控制器进行数据传送。

【例3】下图中假设有磁盘、磁带、打印机三个设备同时工作。磁盘以30μs的间隔向控制器发DMA请求,磁带以45μs的间隔发DMA请求,打印机以150μs间隔发DMA请求。根据传输速率,磁盘优先权最高,磁带次之,打印机最低,图中假设DMA控制器每完成一次DMA传送所需的时间是5μs。若采用多路型DMA控制器,请画出DMA控制器服务三个设备的工作时间图。

【解】 由图看出,T1间隔中控制器首先为打印机服务,因为此时只有打印机有请求。T2间隔前沿磁盘、磁带同时有请求,首先为优先权高的磁盘服务,然后为磁带服务,每次服务传送一个字节。在150μs时间阶段中,为打印机服务只有一次(T1),为磁盘服务四次(T2,T4,T6,T7),为磁带服务三次(T3,T5,T8)。从图上看到,在这种情况下DMA尚有空闲时间,说明控制器还可以容纳更多设备。   由于多路型DMA同时要为多个设备服务,因此对应多少个DMA通路(设备),在控制器内部就有多少组寄存器用于存放各自的传送参数。   多路型DMA控制器的逻辑结构请见文字教材图8.17。通过配合使用I/O通用接口片子,多路型DMA控制器可以对8个独立的DMA通路(CH)进行控制,使外围设备以周期挪用方式对内存进行存取。   8条独立的DMA请求线或响应线能在外围设备与DMA控制器之间进行双向通信。一条线上进行双向通信是通过分时和脉冲编码技术实现的。也可以分别设立DMA请求线和响应线实现双向通信。每条DMA线在优先权结构中具有固定位置,一般DMA0线具有最高优先权,DMA7线具有最低优先权。

当某个外围设备请求DMA服务时,操作过程如下: (1)DMA控制器接到设备发出的DMA请求时,将请求转送到CPU。   控制器中有8个8位的控制传送长度的寄存器,8个16位的地址寄存器。每个长度寄存器和地 址寄存器对应一个设备。每个寄存器都可以用程序中的I/O指令从CPU送入控制数据。每一寄 存器组各有一个计数器,用于修改内存地址和传送长度。 当某个外围设备请求DMA服务时,操作过程如下: (1)DMA控制器接到设备发出的DMA请求时,将请求转送到CPU。 (2)CPU在适当的时刻响应DMA请求。若CPU不需要占用总线则继续执行指令;若CPU需要占用 总线,则CPU进入等待状态。 (3)DMA控制器接到CPU的响应信号后,进行以下工作:①对现有DMA请求中优先权最高的请求 给予DMA响应;②选择相应的地址寄存器的内容驱动地址总线;③根据所选设备操作寄存器 的内容,向总线发读、写信号;④外围设备向数据总线传送数据,或从数据总线接收数据; ⑤每个字节传送完毕后,DMA控制器使相应的地址寄存器和长度寄存器加“1”或减“1”。 以上是一个DMA请求的过程,在一批数据传送过程中,要多次重复上述过程,直到外围设备表示一个数据块已传送完毕,或该设备的长度控制器判定传送长度已满。 

【例4】教材图8.18所示为微型机中软盘控制器的系统接口电路,请进行分析说明。 【解】 CPU和软盘控制器之间的接口电路包括DMA控制和总线控制两部分。8257DMA控制器提供4个独立的DMA通路(CH0,CH1,CH2,CH3)。每个通路各有2个16位寄存器(DMA地址寄存器、字节计数寄存器),它们必须在通路使用前加以预置。DMA地址寄存器存放被寻址的主存首地址,字节计数寄存器存放本次DMA传送的字节数。此外还包含工作方式(读、写、校验 )和状态寄存器。 DMA传输前,CPU对8257进行初始化,将数据在主存中的起始地址、数据字节个数、工作方式等参数送入8257相应的寄存器中。然后才允许软盘控制器向8257发出DMA传输请求信号DRQ。8257接收到DRQ信号后,立即发HRQ信号给总数控制线路,请求总线 控制权。CPU在识别到HRQ信号,完成当前总线周期后,发出HLDA响应信号,并放弃总线控制权。此时8257向软盘控制器发出DACK回答信号,通知软盘控制器开始DMA传输,并发出读/写控制信号(MEMR/MEMW、IOR/IOW),以便软盘控制器从主存被寻址的单元读取一个字节或写入一个字节。 只要软盘控制器保持对DMA的请求,8257将保持对总线的控制,并顺序地重复传送,直到被指定的数据块传送完毕,此时8257给出终止信号(TC),通知软盘控制器,取消DMA请求,并使HRQ为无效,放弃总线控制权。

DMA与程序中断的区别 DMA是程序中断传送技术的发展。它在硬件逻辑机构的支持下,以更快的速度、更简便的形式传送数据。两者之间的明显区别有: (2)CPU对中断的响应是在执行完一条指令之后,而对DMA的响应则可以在指令执行过程中的任何两个存储周期之间。 (3)中断方式不仅具有数据传送能力,而且还能处理异常事件。DMA只能进行数据传送。 (4)中断方式必须切换程序,要进行CPU现场的保护和恢复操作。DMA仅挪用了一个存储周期,不改变CPU现场。 (5)DMA请求的优先权比中断请求高。CPU优先响应DMA请求,是为了避免DMA所连接的高速外设丢失数据。

8.4 通道方式 8.4.1 通道的功能        1. 通道的功能   通道的出现进一步提高了CPU的效率。因为通道是一个特殊功能的处理器,它有自己的指令和程序专门负责数据输入输出的传输控制,而CPU将“传输控制”的功能下放给通道后只负责“数据处理”功能。这样,通道与CPU分时使用内存,实现了CPU内部运算与I/O设备的平行工作。   典型的具有通道的计算机系统结构图请见CAI演示。

它具有两种类型的总线,一种是存储总线,承担通道与内存、CPU与内存之间的数据传输任务。另一种是通道总线,即I/O总线,承担外围设备与通道之间的数据传送任务。这两类总线可以分别按照各自的时序同时进行工作。   由CAI演示看出,通道总线可以接若干个设备控制器,一个设备控制器可以接一个或多个设备。因此,从逻辑结构上讲,I/O系统一般具有四级连接:   CPU与内存<-->通道<-->设备控制器<-->外围设备。 为了便于通道对各设备的统一管理,对同一系列的机器,通道与设备控制器 之间都有统一的标准接口,设备控制器与设备之间则根据设备要求不同而采用专用接口。   另一方面,具有通道的机器一般是大、中型计算机,数据流通量很大。如果所有的I/O设备都接在一个通道上,那么通道将成为限制系统效能的细脖子。因此大、中型计算机的I/O系统一般接有多个通道。当然,设立多个通道的另一好处是,对不同类型的I/O设备可以进行分类管理。

  存储管理部件是内存的控制部件,它的主要任务是根据事先确定的优先次序,决定下一周期由哪个部件使用存储总线访问内存。由于大多数I/O设备是旋转性的设备,读写信号具有实时性,不及时处理会丢失数据,所以通道与CPU同时要求访内时,通道优先权高于CPU。在多个通道有访内请求时,选择通道和数组多路通道的优先权高于字节多路通道,因为前者一般连接高速设备。   通道的基本功能 : 执行通道指令,组织外围设备和内存进行数据传输,按I/O指令要求启动外围设备,向CPU报告中断等,具体有以下五项任务: (1)接受CPU的I/O指令,按指令要求与指定的外围设备进行通信。 (2)从内存选取属于该通道程序的通道指令,经译码后向设备控制器和设备发送各种命令。  (3)组织外围设备和内存之间进行数据传送,并根据需要提供数据缓存的空间,以及提供数据存入内存的地址和传送的数据量。

(4)从外围设备得到设备的状态信息,形成并保存通道本身的状态信息,根据要求将这些状态信息送到内存的指定单元,供CPU使用。   CPU是通过执行I/O指令以及处理来自通道的中断,实现对通道的管理。来自通道的中断有两种,一种是数据传送结束中断,另一种是故障中断。   管态 CPU运行操作系统的管理程序的状态。   目态 CPU执行目的程序时的状态。   大中型计算机的I/O指令都是管态指令,只有当CPU处于管态时,才能运行I/O指令,目态时不能运行I/O指令。这是因为大中型计算机的软、硬件资源为多个用户所共享,而不是分给某个用户专用。

3.通道对设备控制器的管理   通道通过使用通道指令控制设备控制器进行数据传送操作,并以通道状态字接收设备控制器反映的外围设备的状态。因此,设备控制器是通道对I/O设备实现传输控制的执行机构。 设备控制器的具体任务如下: (1)从通道接受通道指令,控制外围设备完成所要求的操作; (2)向通道反映外围设备的状态; (3)将各种外围设备的不同信号转换成通道能够识别的标准信号。

8.4.2 通道的类型          1. 选择通道   选择通道又称高速通道,在物理上它可以连接多个设备,但是这些设备不能同时工作,在某一段时间内通道只能选择一个设备进行工作。选择通道很像一个单道程序的处理器,在一段时间内只允许执行一个设备的通道程序,只有当这个设备的通道程序全部执行完毕后,才能执行其他设备的通道程序。   选择通道主要用于连接高速外围设备,如磁盘、磁带等,信息以成组方式高速传输。由于数据传输率很高,可以达到1.5MB/s,即0.67μs传送一个字节,通道在传送两个字节之间已很少空闲,所以在数据传送期间只为一台设备服务是合理的。但是这类设备的辅助操作时间很长,在这样长的时间里通道处于等待状态,因此整个通道的利用率不是很高。 2.数组多路通道   基本思想:当某设备进行数据传送时,通道只为该设备服务;当设备在执行寻址等控制性动作时,通道暂时断开与这个设备的

连接,挂起该设备的通道程序,去为其他设备服务,即执行其他设备的通道程序。所以数组多路通道很像一个多道程序的处理器。   在IBM系统中常常用到子通道的概念。子通道是指实现每个通道程序所对应的硬设备。选择通道在物理上可以连接多个设备,但在一段时间内只能执行一个设备的通道程序,也就是说在逻辑上只能连接一个设备,所以它只包含一个子通道。数组多路通道和字节多路通道不仅在物理上可以连接多个设备,而且在一段时间内能交替执行多个设备的通道程序,换句话说在逻辑上可以连接多个设备,所以它们包含有若干个子通道。文字教材的表8.1示出IBM4300系统可以连接的通道数目和类型,每个通道可以连接多个设备,每个子通道可以连接的设备数和设备号。   注意,一个子通道可以连接多个设备,但子通道数并不等于物理上可连接的设备数,而是该通道中能同时工作的设备数。   由于数组多路通道既保留了选择通道高速传送数据的优点,又充分利用了控制性操作的时间间隔为其他设备服务,使通道效率充分得到发挥,因此数组多路通道在实际系统中得到较多应用。

3.字节多路通道   字节多路通道主要用于连接大量的低速设备,如键盘、打印机等等。例如数据传输率是1000B/s,即传送1个字节的间隔是1ms,而通道从设备接收或发送一个字节只需要几百纳秒,因此通道在传送两个字节之间有很多空闲时间,字节多路通道正是利用这个空闲时间为其他设备服务。 字节多路通道和数组多路通道的共同之处: 都是多路通道,在一段时间内能交替执行多个设备的通道程序,使这些设备同时工作。 字节多路通道和数组多路通道的不同之处: (1)数组多路通道允许多个设备同时工作,但只允许一个设备进行传输型操作,其他设备进行控制型操作。而字节多路通道不仅允许多个设备同时操作,而且也允许它们同时进行传输型操作。 (2)数组多路通道与设备之间数据传送的基本单位是数据块,通道必须为一个设备传送完一个数据块以后,才能为别的设备传送数据块。而字节多路通道与设备之间数据传送的基本单位是字节,通道为一个设备传送一个字节后,又可以为另一个设备传送一个字节,因此各设备与通道之间的数据传送是以字节为单位交替进行。

8.4.3 通道结构的发展 通道结构的进一步发展,出现了两种计算机I/O系统结构: 8.4.3 通道结构的发展          通道结构的进一步发展,出现了两种计算机I/O系统结构: 1.输入输出处理器(IOP) 是通道结构的I/O处理器。IOP可以和CPU并行工作,提供高速的DMA处理能力,实现数据的高速传送。但是它不是独立于CPU工作的,而是主机的一个部件。有些IOP例如Intel 8089 IOP,还提供数据的变换、搜索以及字装配/拆卸能力。这类IOP广泛应用于中小型及微型计算机中。 2.外围处理机(PPU) PPU基本上是独立于主机工作的,它有自己的指令系统,完成算术/逻辑运算,读/写主存储器,与外设交换信息等。有的外围处理机干脆就选用已有的通用机。外围处理机I/O方式一般应用于大型高效率的计算机系统中。

通道方式与DMA方式的比较 DMA和通道控制方式最基本的相同点是把外设与主机交换数据过程控制权从CPU中接管,使外设能与主机并行工作。它们之间主要的不同在于如下几个方面。 1. DMA与通道的工作原理不同 DMA完全采用硬件控制数据交换的过程,速度较快;而通道则采用软硬件结合的方法,通过执行通道程序控制数据交换的过程。 2. DMA与通道的功能不同 通道是在DMA的基础上发展来的,因此,通道功能要比DMA的功能更强。在DMA中,CPU必须进行设备的选择、切换、启动、终止,并进行数据校验。CPU在输入输出过程中的开销较大,通道控制则把这些工作都接管,以减轻CPU的负担。 3. DMA与通道所控制的外设类型不同 DMA只能控制速度较快 、类型单一的外设,而通道支持多种外设。

8.5 通用I/O标准接口 8.5.1 并行I/O标准接口SCSI   SCSI是小型计算机系统接口的简称,其设计思想来源于IBM大型机系统的I/O通道结构,目的是使CPU摆脱对各种设备的繁杂控制。它是一个高速智能接口,可以混接各种磁盘、光盘、磁 带机、打印机、扫描仪、条码阅读器以及通信设备。它首先应用于Macintosh和Sun平台上,后来发展到工作站、网络服务器和pentium系统中,并成为ANSI(美国国家标准局)标准。 SCSI有如下性能特点: (1)SCSI接口总线由8条数据线、一条奇偶校验线、9条控制线组成。使用50芯电缆,规定了两种电气条件:单端驱动,电缆长6m;差分驱动,电缆最长25m。 (2)总线时钟频率为5MHz,异步方式数据传输率是2.5MB/s,同步方式数据传输率是5MB/s。 

(3)SCSI接口总线以菊花链形式最多可连接8台设备。在pentium中通常是:由一个主适配器HBA与最多7台外围设备相接,HBA也算作一个SCSI设备,由HBA经系统总线(如PCI)与CPU相连,请参见CAI演示。

(4)每个SCSI设备有自己的唯一设备号ID0—7。ID=7的设备具有最高优先权,ID=0的设备优先权最低。SCSI采用分布式总线仲裁策略。在仲裁阶段,竞争的设备以自己的设备号驱动数据线中相应的位线(如ID=7的设备驱动DB7线),并与数据线上的值进行比较。因此仲裁逻辑比较简单,而且在SCSI的总线选择阶段,启动设备和目标设备的设备号能同时出现在数据线上。 (5)所谓SCSI设备是指连接在SCSI总线上的智能设备,即除主适配器HBA外,其他SCSI设备实际是外围设备的适配器或控制器。每个适配器或控制器通过各自的设备级I/O线可连接一台或几台同类型的外围设备(如一个SCSI磁盘控制器接2台硬盘驱动器)。标准允 许每个SCSI设备最多有8个逻辑单元,每个逻辑单元可以是物理设备也可以是虚拟设备。每个逻辑单元有一个逻辑单元号(LUN0—LUN7)。 (6)由于SCSI设备是智能设备,对SCSI总线以至主机屏蔽了实际外设的固有物理属性(如磁盘柱面数、磁头数等参数),各SCSI设备之间就可用一套标准的命令进行数据传送,也为设备的升级或系统的系列化提供了灵活的处理手段。

(7)SCSI设备之间是一种对等关系,而不是主从关系。SCSI设备分为启动设备(发命令的设备 )和目标设备(接受并响应命令的设备)。但启动设备和目标设备是依当时总线运行状态来划分的,而不是预先规定的。   总之,SCSI是系统级接口,是处于主适配器和智能设备控制器之间的并行I/O接口。一块主适配器可以接7台具有SCSI接口的设备,这些设备可以是类型完全不同的设备,主适配器却只占主机的一个槽口。这对于缓解计算机挂接外设的数量和类型越来越多、主机槽口日益紧 张的状况很有吸引力。   为提高数据传输率和改善接口的兼容性,90年代又陆续推出了SCSI-2和SCSI-3标准。SCSI-2扩充了SCSI的命令集,通过提高时钟速率和数据线宽度,最高数据传输率可达40MB/s,采用68芯电缆,且对电缆采用有源终端器。SCSI-3标准允许SCSI总线上连接的设备 由8提高到16,可支持16位数据传输。另一个变化是发展串行SCSI,使串行数据传输率达到640Mb/s(电缆)或1Gb/s(光纤),从而使串行SCSI成为IEEE1394标准的基础。

8.5.2 串型I/O标准接口IEEE1394     1. 1394性能特点 IEEE1394串行接口与SCSI等并行接口相比,有如下三个显著特点: (1)数据传送的高速性 1394的数据传输率分为100Mb/s、200Mb/s、400Mb/s三档。而SCSI-2也只有40MB/s(相当于320Mb/s)。这样的高速特性特别适合于新型高速硬盘及多媒体数据传送。1394之所以达到高速,一是串行传送比并行传送容易提高数据传送时钟速率;二是采用了DS-Link编码技术,把时钟信号的变化转变为选通信号的变化,即使在高的时钟速率下也不易引起信号失真。 (2)数据传送的实时性 实时性可保证图像和声音不会出现时断时续的现象,因此对多媒体数据传送特别重要。1394之所以做到实时性,原因有二:一是它除了异步传送外,还提供了一种等步传送方式,数据以一系列的固定长度的包规整间隔地连续发送,端到端既有最大延时限制而又有最小延时限制;二是总线仲裁除优先权仲裁之外,还有均等仲栽和紧急仲栽方式。

(3)体积小易安装,连接方便 1394使用6芯电缆,直径约为6mm,插座也小。而SCSI使用50芯或68芯电缆,插座体积也大。 在当前个人机要连接的设备越来越多、主机箱的体积越显窄小情况下,电缆细、插座小的1394是很有吸引力的,尤其对笔记本电脑一类机器。1394的电缆不需要与电缆阻抗匹配的终端,而且电缆上的设备随时可从插座重拔出或插入, 即具有热插入能力。这对用户安装和使用1394设备很有利。 2.1394配置结构   1394采用菊花链式配置,也允许树形结构配置。事实上,菊花链结构是树型结构的一种特殊情况。   1394接口也需要一个主适配器和系统总线相连。这个主适配器的功能逻辑在高档的pentium机中集成在主板的核心芯片组的PCI总线到ISA总线的桥芯片中。机箱的背面只看到主适配器的外接端口插座。   我们将主适配器及其端口称为主端口。主端口是1394接口树形配置结构的根节点。一个主端口最多可连接63台设备,这些设备称为节点,它们构成亲子关系。两个相邻节点之间 的电缆最长为4.5m,但两个节点之间进行通信时中间最多可经过15个节点的转接再驱动,因此通信的最大距离是72m。电缆不需要终端器。

IEEE1394配置的实例见CAI演示。 其中右侧是线性链接方式,左侧是亲子层次链接方式。整体是一个树形结构。   1394采用集中式总线仲裁方式。中央仲裁逻辑在主端口内,并以先到先服务方法来处理节点提出的总线访问请求。在n个节点同时提出使用总线请求时,按照优先权进行仲裁。最靠根节点的竞争节点有高的优先权;同样靠近根节点的竞争节点,其设备标识号ID大的有更高优先权。1394具有PnP功能,设备标识号是系统自动指定的,而不是用户设定的。   为了保证总线设备的对等性和数据传送的实时性,1394的总线仲裁增加了均等仲裁和紧急仲裁功能。   均等仲裁 是将总线时间分成均等的间隔,当间隔期间开始时,竞争的每个节点置位自己的仲 裁允许标志,在间隔期内各节点可竞争总线的使用权。一旦某节点获得总线访问权,则它的仲裁允许标志被复位,在此期间它不能再去竞争总线,以此来防止具有高优先权的忙设备独占总线。   紧急仲裁 指对某些高优先权的节点可为其指派紧急优先权。 具有紧急优先权的节点可在一个间隔期内多次获得总线控制权,允许它控制75%的总线可用时间。

3.1394协议集 1394的一个重要特色是:它规范了一个三层协议集,将串行总线与各外围设备的交互动作标准化。 下图为IEEE1394协议集:

(1)业务层 定义了一个完整的请求响应协议实现总线传输,包括读操作、写操作和锁定操作。 (2)链路层 可为应用程序直接提供等步数据传送服务。它支持异步和等步的包发送和接收。 异步包传送 一个可变总量的数据及业务层的几个信息字节作为一个包传送到显式地址的目标方,并要求返回一个认可包。 等步包传送 一个可变总量的数据以一串固定大小的包按照规整间隔来发送,使用简化寻址方式,不要求目标方认可。 子动作 1394完成一个包的递交过程。 (3)物理层 将链路层的逻辑信号根据不同的串行总线介质转换成相应的电信号,也为串行总线的接口定义了电气和机械特性。实际上,1394串行接口的物理拓扑结构分成“底板环境”和“电气环境”两部分。总线规范并未要求特别的环境设定。所有节点可严格限定在单一底板上,也可直接连在电缆上。 (4)串行总线管理 它提供总线节点所需的标准控制、状态寄存器服务和基本控制功能。

本章要点 信息交换方式及不同方式的特点 程序中断方式的原理及接口实现 单级中断与多级中断 DMA方式的基本原理 中断方式与DMA方式的比较   信息交换方式及不同方式的特点   程序中断方式的原理及接口实现   单级中断与多级中断 DMA方式的基本原理   中断方式与DMA方式的比较   通道的概念   通道与DMA方式方式的比较