第7章输入输出接口_第1页
第7章输入输出接口_第2页
第7章输入输出接口_第3页
第7章输入输出接口_第4页
第7章输入输出接口_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告时间备选:15周周三晚、周六下午、周六晚上、周日晚7.6DMA方式7.5程序中断方式7.4程序查询方式7.3I/O接口7.2外部设备7.1概述计算机I/O系统结构图7.1概述一、输入输出系统的发展概况无I/O技术程序查询I/O方式程序中断方式直接内存存取(DirectMemoryAccess,DMA)方式通道(Channel)方式外围处理机(PeripheralProcessorUnit,PPU)方式1、无I/O技术(1)辐射式连接外设Ⅰ外设Ⅱ外设Ⅲ主机特点(1)每个I/O设备利用各自的逻辑控制电路与CPU相连(2)I/O与CPU交换信息时,CPU必须停止其他工作(3)I/O设备控制电路与CPU控制器紧密结合不分隔缺点:线路复杂缺点:效率低下缺点:不易扩充设备(2)总线及接口技术的引入

主机接口接口设备1设备n……总线特点:1)总线连接,易于删减设备,故障率低2)接口可以使不同的外设更方便的接入计算机系统2、程序查询I/O方式CPU读I/O状态检查状态未准备就绪N数据传送YCPU主动去查询外设在这种方式中.数据在CPU与外围设备之间的传送完全靠计算机程序控制,是在CPU主动控制下进行的.当输入/输出时,CPU暂停执行本程序,转去执行输入/输出的服务程序,根据服务程序中的I/O指令进行数据传送.特点:简单,CPU效率低,CPU、各外设串行工作;踏步等待3.程序中断方式I/O工作CPU不查询CPU暂停现行程序自身准备与主机交换信息CPU和I/O并行工作

启动I/O设备现行程序

……中断服务程序KK+1…没有踏步等待现象中断现行程序程序中断方式流程CPU向I/O发读指令CPU读I/O状态检查状态完成否?CPU做其他事情I/O设备工作准备就绪CPUI/O从CPU向主存写入一个字CPU主存从I/O接口中读一个字到CPUI/OCPU中断请求I/OCPU出错是否未错4.DMA方式主存和I/O之间有一条直接数据通道不中断现行程序周期挪用(周期窃取)CPU和I/O并行工作存取周期结束CPU执行现行程序CPU执行现行程序DMA请求启动I/OI/O准备I/O准备一个存取周期实现I/O与主存之间的传送三种方式的CPU工作效率比较存取周期结束CPU执行现行程序CPU执行现行程序DMA请求启动I/OI/O准备I/O准备一个存取周期实现I/O与主存之间的传送CPU

执行现行程序CPU查询等待并传输I/O数据CPU

执行现行程序启动I/OI/O准备及传送指令执行周期结束CPU执行现行程序CPU执行现行程序启动I/O中断请求I/O准备I/O准备CPU处理中断服务程序实现I/O与主机之间的传送间断启动I/O启动I/OI/O准备中断请求启动I/OI/O准备一个存取周期DMA请求程序查询方式程序中断方式DMA方式I/O准备及传送间断I/O准备I/O准备5.具有通道结构的阶段

CPUM.M通道I/O特点:1)通道可以看作是一个I/O处理器,有专用通道指令。2)I/O通道受CPU控制:启动、停止3)通道可以代替CPU来控制I/O设备以及控制I/O与主机进行数据交换。6.具有I/O处理机的阶段

I/O处理机又称外围处理机(PPU),基本独立于主机工作。它即可以完成I/O控制,还可以完成码制转换、数据校验等功能。使I/O系统对主机来说独立性更高。二、输入输出系统的组成I/O系统——计算机系统中完成输入/输出功能的子系统,由I/O软件和I/O硬件两部分联合组成。1.I/O硬件:由计算机系统中所有I/O设备及其接口电路组成,是I/O系统的基础。2.I/O软件:

通常指用I/O指令编制的、对I/O接口及设备进行管理和访问的程序,常称为I/O驱动程序。只有在I/O驱动程序的作用下,I/O硬件才能发挥相应的作用。7.2外部设备一、概述1.外设的基本组成主要由两部分组成:设备控制器——用来控制设备的具体动作,由电子线路实现。设备的物理结构——大多由机、电、光、磁等原理实现,与主机的结构原理(电子的)差距较大。外设与主机的连接特点:

不直接相连,一般通过接口连接。外设的结构框图如下主机I/O接口外部设备设备控制器设备物理结构部分2.外设分类:

1)人机交互设备:

用来实现操作者与计算机之间交流信息的设备;

如:键盘、鼠标、打印机、显示器等。2)信息驻留设备:

用来保存计算机中大批有用信息的设备;

如:磁盘、磁带、光盘等。3)机—机通信设备:

用来实现计算机系统间通信的设备;

如:调制解调器(Modem)、D/A、A/D转换设备等。常用的I/O设备输入输出设备终端设备(键盘+显示器)汉字处理设备A/D、D/A转换多媒体脱机输入/输出设备(软磁盘数据站)显示器(字符、汉字、图形、图像)打印设备(点阵式打印机、激光打印机、喷墨打印机)绘图仪(平板式、滚筒式)语音输出输出设备键盘图形输入设备(鼠标器、图形板、跟踪球、操纵杆、光笔)图像输入设备(摄像机、扫描仪、传真机)条形码,光学字符识别,语言与文字输入输入设备7.3I/O接口一、概述接口——硬件上广义指计算机各部件间进行连接的逻辑部件。一般指CPU和I/O设备间的连接部件,即I/O接口。1)引入接口的原因:由外设的特点决定的外设的特点:种类和品种繁多;工作速度慢;信号类型和电平种类不同2)设置接口的理由:1、通过设置数据缓冲实现CPU与I/O间的速度匹配;

2、通过串—并(或并—串)转换电路实现CPU与I/O之间的数据格式转换;

3、通过电平匹配实现CPU与I/O之间的电气转换;

4、通过接收与传达控制命令实现CPU对I/O接口的控制;

5、通过保存与传送I/O状态实现CPU对I/O的查询;

6、通过设备选择电路向CPU提供I/O寻址功能。二、接口的功能和组成(1)设备选择线(2)数据线(3)命令线(4)状态线I/O接口设备I/O接口设备数据线命令线状态线I/O总线设备选择线总线连接方式的I/O接口电路2.接口的功能和组成接口的主要功能有:(1)地址识别与设备选择(2)接收、保存CPU的I/O控制命令(3)反映外设的工作状态(4)信号转换(5)数据格式、码制的转换与数据检错/纠错(6)传送数据(7)中断3.I/O接口的基本组成命令寄存器和命令译码器设备选择电路设备状态标记数据缓冲寄存器DBR控制逻辑电路I/O接口外部设备数据线命令状态数据线命令线状态线CPU地址线4.接口与端口I/O端口:为了便于程序对I/O接口中的各种寄存器进行访问,通常给每个寄存器分配一个地址编号,这种编号被称为I/O端口地址,相应的寄存器也叫作I/O端口。注意:I/O接口和I/O端口是两个不同的概念。一个接口中往往包含若干个端口,因此接口地址往往包含有若干个端口地址。接口中包含的端口数据端口控制端口状态端口暂存数据信息接受控制信息反映接口外设的状态信息在用户看来:

①CPU了解外设的状态、②控制外设的工作、③与外设交换数据,都是通过接口中用户可见的寄存器——端口(Port)——的“读/写”来实现的。这些端口通过总线与CPU互连。CPUI/O外设系统外设I/O接口电路数据口状态口命令口端口地址译码选择控制逻辑ABDBDB状态信息命令数据CBCB(1)统一编址:I/O与内存统一进行编址占用内存编址空间可利用访存指令访问I/O口①

特点:②图示:内存空间00000HFFFFFH供I/O口使用不占用内存的编址空间有专门的输入输出指令①特点:√√√√②图示:内存空间00000HFFFFFHI/O空间0000HFFFFH互不干扰(2)独立编址:I/O与内存有各自独立的地址空间,互不干扰。5.I/O口的编址方式三、接口类型并行接口串行接口可编程接口不可编程接口通用接口专用接口1.按数据传送方式

分类2.按功能选择的灵活性

分类3.按通用性

分类4.按数据传送的控制方式

分类中断接口DMA接口Intel8255Intel8251Intel8255、Intel8251Intel8212Intel8255、Intel8251Intel8279、Intel8275Intel8259Intel82577.4程序查询方式一、含义:在这种方式中.数据在CPU与外围设备之间的传送完全靠计算机程序控制,是在CPU主动控制下进行的.当输入/输出时,CPU暂停执行本程序,转去执行输入/输出的服务程序,根据服务程序中的I/O指令进行数据传送.二、程序查询流程:1.单个数据的交换过程:

I/O交换程序的核心部分主要由三步完成:

1)启动外设:

CPU通过I/O指令访问外设的控制端口,发送相应的控制字,启动外设作交换数据的准备;2)测试/转移:

CPU不断地对I/O状态进行测试,每测一次,都有两种可能的结果:I/O准备就绪:转3);

I/O未准备就绪:转2)继续测试,直到I/O准备好为止。

3)交换一个数据(字或字节)。现行程序现行程序就绪?交换数据启动I/OYN就绪?N就绪?特点:当I/O未准备就绪时,CPU需反复查询I/O状态而不能作其他事,因此称此阶段为“踏步等待”。踏步等待的存在对CPU工作效率有显著的影响。2.成块数据交换过程:

如果CPU需要用程序查询方式交换一批数据,只要在单个数据交换流程的基础上,增加交换个数控制步骤即可。

现行程序保存要用到的寄存器内容设置计数值设置内存缓冲区首址修改内存地址修改计数值传送一个数据YN启动外设A就绪?AB现行程序Y传送完?BN就绪?启动外设A就绪?传送一个数据Y修改内存地址修改计数值传送完?B3.程序轮询方式:

为了减少踏步等待时间的浪费,CPU可对多个I/O设备轮流进行查询,称为程序轮询方式。这是程序查询方式的改进方案。

程序轮询方式时,查询的先后顺序决定了I/O设备的优先级别,即:优先级高的先查,优先级低的后查。如果查询的设备个数安排的不合适,可能有些设备总是不被查询,导致数据丢失。设备1就绪?设备2就绪?N设备N就绪?…N处理设备1Y处理设备2Y处理设备NYN设备1就绪?设备2就绪?设备N就绪?三、程序查询方式的接口电路程序查询方式对接口控制电路的要求最简单,主要要求设置两个状态触发器,以供CPU查询用。这两个触发器是:完成触发器D和工作触发器B。这两个触发器均为RS触发器。当D=0,B=0时,表示I/O设备处于暂停状态;当D=1,B=0时,表示I/O设备已经准备就绪;当D=0,B=1时,表示I/O设备正处于准备状态;设备选择电路QQ&准备就绪启动命令地址线SEL启动设备设备工作结束DB1010SSRRQn+1=S+/R﹡Qn;SR=0②设备选择电路DBRQQ&数据线准备就绪启动命令地址线SEL输入数据启动设备设备工作结束①③④⑤⑥DB①②③⑤⑥1010④工作过程以输入为例程序查询接口工作过程(以输入为例):

1)CPU发I/O地址地址总线接口设备选择器译码选中,发SEL信号开命令接收门;

2)CPU发启动命令D置0,B置1接口向设备发启动命令设备开始工作;

3)输入:CPU等待,输入设备读出数据DBR;

4)外设工作完成,完成信号接口B置0,D置1;

5)准备就绪信号控制总线CPU;

6)输入:CPU通过输入指令(IN)将DBR中的数据取走;

若为输出,除数据传送方向相反以外,其他工作与输入相同。7.4程序查询方式例.在程序查询方式的输入输出系统中,假设不考虑处理时间,每一次查询操作需要100个时钟周期,CPU的时钟周期为50MHz。现有鼠标和硬盘两个设备,而且CPU必须每秒对鼠标进行30次查询,硬盘以32位字长为单位传输数据,即每32位被CPU查询一次,传输率为2MBps。求CPU对这两个设备查询所花费的时间比率,由此可得出什么结论?解.CPU对鼠标查询所需时钟周期数为100×30=3000对鼠标查询占用的CPU时间比率为 [3000/(50×106)]×100%=0.006%硬盘每秒查询次数为2MB/4B=512K每秒查询的时钟周期数为100×512×1024=52.4×106对硬盘查询占用的CPU时间比率为 [5.24×106/(50×106)]×100%=105%结论:对鼠标查询不影响cpu性能;即使CPU将全部时间用于对硬盘查询也不能满足要求。查询方式适用于低速设备。…KK+1…中断服务程序入口7.5程序中断方式一、中断的概念及中断的内容1.概念所谓中断(Interrupt),指计算机在执行程序的过程中,出现某种非预期的紧急事件,引起CPU暂停现行程序的执行,转去处理此事件,处理完后又返回现行程序执行的过程,叫中断,或“程序中断”。凡是向CPU提出中断请求的各种因素,统称为中断源。(可以是硬件也可以是软件)2.引起中断的各种因素(1)人为设置的中断(2)程序性事故如转管指令溢出、操作码不能识别、除法非法(5)外部事件(4)I/O设备(3)硬件故障用键盘中断

现行程序转管指令………管理程序一个完整的中断过程一般包括以下几方面的内容:1)中断请求:I/O接口具有发出中断请求信号的能力2)中断判优:优先级排队及屏蔽机制3)中断响应:CPU对I/O的响应4)中断服务:中断完成的具体功能5)中断返回:中断服务完成后返回主程序

中断是一种软硬结合的技术,即一部分由硬件实现,一部分由软件实现。而由硬件实现的功能,又分别由CPU和I/O接口完成。3.中断的内容其中,中断请求和中断判优一般由IO接口完成;而中断响应、中断服务和中断返回由CPU完成处理器内部必须增加相关的硬件,如:①接受中断请求信号的引脚INTR、②发出中断响应信号的引脚INTA、③“中断状态”触发器INT、④“中断允许”标志EINT、⑤将ENIT置为1的“开中断”指令STI、⑥将ENIT清为0的“关中断”指令CLI⑦将程序断点“弹回”PC的中断返回指令

IRET等,要支持中断,需要多方的配合:接口中要设置:①中断请求触发器“INTR”②中断屏蔽触发器MASK。CPU主存中必须存储:

①处理不同中断请求的中断服务程序。(中断)接口主存实现中断的软/硬件,总称为中断系统。二、中断的特点及其作用1.特点:实时性(随机性)2.作用CPU与I/O设备并行工作硬件故障报警与处理实现人机交互联系实现多道程序分时运行实现实时控制与实时处理实现多处理机和多计算机间的联系实现用户程序和操作系统程序间的转换注意:中断的发生是随机的。在实现中断时,必须做到:不管一个程序在执行的过程中,是否被中断,中断多少次,其最终的运行结果必须是唯一的。当有多个中断源向CPU提出中断请求时,CPU必须坚持的原则是:在任何一个时刻只能为一个中断源的请求提供服务。三、I/O中断:

中断技术的产生,使计算机具有了处理随机事件的能力,这是计算机功能上的一大进步。

如果把I/O与CPU的交换过程也作为随机事件,用程序中断技术实现,就构成了所谓的“I/O中断”。

采用程序中断实现I/O交换可使I/O操作与CPU现行程序并行运行,仅在I/O交换过程中现行程序与I/O交换程序串行运行,不用CPU踏步等待,大大提高了CPU运行效率。发中断请求空闲接收数据接收数据准备发中断请求打印打印打印机执行主程序继续执行主程序继续执行主程序响应中断中断返回响应中断中断返回启动打印机传送数据传送数据CPU四、中断系统需解决的问题(1)各中断源如何

向CPU提出请求

?(2)各中断源同时

提出请求

怎么办?(5)如何寻找入口地址

?(4)如何保护现场

?(3)CPU什么条件、什么时间、以什么方式响应中断?(6)如何恢复现场,如何返回

?(7)处理中断的过程中又出现新的中断

怎么办?硬件

软件接口对中断请求的支持:当I/O设备操作完成时,通过发中断请求信号通知CPU,这就要求I/O接口中设置“中断请求”标记电路,以提供持续稳定的中断请求信号。

接口中通常设置了一个专门的触发器INTR来表示中断请求状态(INTR=1),称为“中断请求触发器”。每一个向CPU发中断请求的部件,都被CPU看成是“中断源”。当某个中断源发出中断请求信号后,CPU这边根据情况来决定是否理睬这一信号。这一功能是通过在I/O接口中设置一个“中断屏蔽触发器”(MASK)实现的。CPU通过程序设置MASK的值,一般定义:MASK=1,表示中断屏蔽,即CPU对该接口发的中断请求信号不理睬;MASK=0,表示该中断开放,CPU对其发来的中断请求信号予以响应。由上可知,中断屏蔽触发器起着对某个中断源开关的作用,它和中断请求触发器在I/O接口中一般是成对设置的。结论:中断请求功能一般是由接口硬件完成的。配置中断请求触发器和中断屏蔽触发器DQ&1INTR中断请求触发器MASK中断屏蔽触发器来自CPU的中断查询信号受设备本身控制INTRDMASKQD完成触发器中断请求

当多个中断源同时向CPU请求中断时,CPU需要按其紧急程度进行排队。对I/O设备而言,速度越高,紧急程度就越高,则安排的优先级就越高。111&1

&1&INTR1INTR2INTR3INTR4INTP1INTP2INTP3INTP4INTR1、

INTR2、

INTR3、

INTR4

优先级

按降序

排列

2.中断判优逻辑

中断判优即可用硬件实现,也可用软件实现。硬件排队判优常用的方法有:1)独立请求方式:(并行排队)

这种方式在CPU中设一个集中式的排队电路,对所有中断源发出的请求信号同时进行排队。2)链式查询方式:(串行排队)

排队电路分别设置在各I/O接口中,每个接口具有排队器的一段。链式排队器逻辑示意图如下:1INTP11INTP21INTP31INTP4&&&&INTR1INTR2INTR3INTR4INTR1INTR2INTR3INTR41&1&1&1&INTP1′

INTP2´INTP3´INTP4´INTR2INTR1INTR1INTR21&INTP2A、B、C优先级按降序

排列(3)软件实现(程序查询)否……是否A请求?是否B请求?是否C请求?转A的服务程序入口地址转B的服务程序入口地址转C的服务程序入口地址是是是否否3.中断服务程序入口地址的寻找CPU响应中断的时刻一般安排在每条指令的执行末。

CPU每执行完一条指令,就向各中断源发出中断查询信号,接到查询信号后,满足条件的接口发出中断请求信号。如果通过排队胜出,需转到对应的中断服务程序执行,因此,CPU需要获得中断服务程序的入口地址。CPU获得中断服务程序入口地址的方法有两种:1)软件查询法:(非向量中断)通过运行一段中断查询程序完成,方法同软件判优。2)硬件向量法:(向量中断)通过硬件专门设置向量编码器获得中断服务程序入口地址。1)软件查询法中断识别程序(入口地址M)地址说明指令MJMP1#SR1#D=1转1#服务程序

SKPDZ2#JMP2#SR2#D=0跳2#D=1转2#服务程序

SKPDZ8#JMP8#SR8#D=0跳8#D=1转8#服务程序八个中断源1、2、8按降序排列…………

SKPDZ1#1#D=0跳(D为完成触发器)优点:不需要增加硬件,可以灵活改变中断源的优先级;缺点:占用CPU时间,处理速度慢,优先级低的中断请求需要等待较长时间才能开始中断服务2)硬件向量法入口地址200入口地址300入口地址40012H13H14H主存12H13H14HJMP200JMP300JMP400主存向量地址12H、13H、14H入口地址200、300、400…向量地址…排队器输出中断向量地址形成部件设备编码器1000…000100100100…00010011中断入口地址产生过程:

中断请求排队判优排队成功信号向量编码器中断向量主存向量地址区主存取中断服务程序入口地址中断服务程序注意:中断向量地址和中断服务程序入口地址是两个不同的概念。

中断向量地址=中断服务程序入口地址指示器1)CPU响应中断的条件和时间(1)条件(2)时间中断允许触发器EINT=1用开中断

指令置“1”EINT用关中断

指令置“0”EINT或硬件自动复位当D=1(随机)且MASK=0时在每条指令执行阶段的结束前CPU

发中断查询信号(将INTR置“1”)4.中断响应2)中断隐指令(1)保护程序断点(2)寻找服务程序入口地址(3)硬件关中断向量地址形成部件INTSQREINTSQRPC

1&≥1排队器……断点存于特定地址(0号地址)内断点进栈INT中断状态EINT允许中断R–S

触发器向量地址PC(硬件向量法)中断识别程序

入口地址MPC(软件查询法)CPU工作周期的标志CPU访存有四种性质取指令取地址取操作数存程序断点取指周期间址周期执行周期中断周期FEDINDDINTDCLK1FE1IND1EX1INTEXDCPU的4个工作周期

提问.在中断系统中,INTR、INT、EINT这三个触发器各有何作用?

解:INTR——中断请求触发器,用来登记中断源发出的随机性中断请求信号,以便为CPU查询中断及中断排队判优线路提供稳定的中断请求信号;

EINT——中断允许触发器,CPU中的中断总开关。当EINT=1时,表示允许中断(开中断),当EINT=0时,表示禁止中断(关中断)。其状态可由开、关中断等指令设置;

INT——中断标记触发器,控制器时序系统中周期状态分配电路的一部分,表示中断周期标记。当INT=1时,进入中断周期,执行中断隐指令的操作。5.保护现场和恢复现场1)保护现场2)恢复现场寄存器

内容断点保护现场其他服务程序恢复现场中断返回PUSH视不同请求源而定POP中断服务程序

完成中断服务程序中断隐指令

完成中断服务程序完成IRET五、中断服务程序流程1.中断服务程序的流程(1)保护现场(2)中断服务(3)恢复现场(4)中断返回对不同的I/O设备具有不同内容的设备服务中断返回指令2.单重中断和多重中断中断隐指令完成进栈指令出栈指令程序断点的保护寄存器内容的保护在处理中断的过程中,可能有新的、优先级更高的中断请求到来。当这种现象发生时,若允许CPU暂停现行的中断服务程序,转去处理新的中断请求,这种现象称为多重中断或中断嵌套,否则为单重中断。不允许中断

现行的中断服务程序单重

中断多重中断允许级别更高

的中断源中断

现行的中断服务程序klmk

+1l

+1m

+1第一次中断第二次中断第三次中断程序断点k+1,l+1,m+13.实现多重中断的条件B,CA中断请求主程序(2)优先级别高

的中断源有权中断优先级别低

的中断源(1)提前

设置开中断

指令ABCD中断服务程序(A、B、C、D优先级按降序排列)D4.单重中断和多重中断的服务程序流程中断否?保护现场设备服务恢复现场开中断中断返回取指令执行指令中断服务程序

中断响应程序断点进栈关中断向量地址PC中断周期是中断返回保护现场设备服务关中断恢复现场开中断开中断开中断开中断中断隐指令中断隐指令否取指令执行指令中断否?否

中断响应程序断点进栈关中断向量地址PC中断周期是中断服务程序单重多重六、中断屏蔽中断判优和中断响应,通常是由硬件完成的。这样,在中断优先级确定后,中断响应的顺序也就随之确定了。能否在运行时,临时调整中断的服务顺序呢?回答是肯定的,一个可行的解决方案就是引入由操作系统管理的、可变的“中断屏蔽字”。

在CPU响应了某级中断的某个中断源发来的中断请求后,系统将该中断源所属中断级别对应的中断屏蔽字,写入中断屏蔽寄存器IMR。CPU根据中断屏蔽字决定屏蔽掉某些级别中断的请求信号,使其不能进入排队器排队,从而间接地改变中断响应顺序。

&1.屏蔽触发器的作用MASK=0(未屏蔽)INTR能被置“1”

1

&

&

&

1

1

1

1INTP1INTP2INTP3INTP4INTR1INTR2INTR3INTR4MASK1MASK2MASK3MASK4DQ1DINTR

MASKQCPU查询MASKi

=1(屏蔽)INTPi

=0(不能被排队选中)中断处理程序级别中断级屏蔽位1级2级3级4级第1级第2级第3级第4级1000110011101111中断处理顺序就是中断响应顺序时的中断屏蔽字设“1”代表屏蔽,“0”表示开放2.屏蔽字优先级屏蔽字111111111111111101111111111111110011111111111111000111111111111100001111111111110000011111111111……000000000000001100000000000000011234561516……16个中断源1、2、3……

16按降序

排列3.屏蔽技术可改变处理优先等级响应优先级响应优先级A→B→C→D降序排列

不可改变处理优先级可改变(通过重新设置屏蔽字)中断源原屏蔽字新屏蔽字ABCD11110111001100011111010001100111处理优先级A→D→C→B

降序排列服务程序B处理完C处理完D处理完A处理完t主程序A程序B程序C程序D程序A、B、C、D同时请求中断CPU执行程序轨迹(原屏蔽字)3.屏蔽技术可改变处理优先等级4.屏蔽技术的其他作用便于程序控制可以人为地屏蔽

某个中断源的请求服务程序D处理完C处理完B处理完A处理完t主程序A程序B程序C程序D程序A、B、C、D同时请求中断CPU执行程序轨迹(新屏蔽字)3.屏蔽技术可改变处理优先等级5.新屏蔽字的设置保护现场置屏蔽字开中断中断服务关中断恢复现场恢复屏蔽字开中断中断返回

置屏蔽字

恢复屏蔽字

关中断

开中断设备选择电路DBRDQ&数据线启动命令地址线SEL输入数据启动设备设备工作结束&1QQDINTRBQQMASK设备编码器排队器中断查询来自高一级的排队器至低一级的排队器向量地址中断响应INTA中断请求命令译码①②③④⑤⑥⑦⑧七、I/O中断处理过程①10&DBR③④⑤⑦⑧⑥设备选择电路01以输入为例②主程序和服务程序抢占CPU示意准备工作准备工作准备工作传送数据传送数据发中断请求发中断请求I/O宏观

上CPU和I/O并行

工作微观

上CPU中断现行程序

为I/O服务主程序继续执行主程序启动外设

服务程序(传送数据)

服务程序(传送数据)继续执行主程序CPU程序中断接口芯片8259A的内部结构

内部总线缓冲器读/写逻辑级联缓冲器/比较器优先权比较器(PR)中断服务寄存器(ISR)

中断

请求

寄存

器(IRR)中断屏蔽寄存器(IMR)控制逻辑INTINTAD7~D0A0RDWRCSCAS0CAS1CAS2SP/ENIR0IR1IR2IR3IR4IR5IR6IR7内部总线八、中断控制器8259A8259A的主要引脚描述如下:IR7∽IR0:输入引脚,用于接收来至外设的中断请求信号INT:输出引脚,一般与CPU的INTR引脚连接。当8259A接收到外设的中断请求信号后,通过该引脚统一向CPU发中断请求。INTA:这是一个输入引脚,用于接收来至CPU的中断响应信号INTA。4.

CS:片选信号,允许8259A进行编程与控制。5.WR:低电位有效,与系统的写入控制线连接。6.RD:低电位有效,与系统的读出控制线连接。7.A0:用A0的取值来选择8259A内部不同的命令字。8259A的主要引脚描述如下:8.SP/EN:主从定义/缓冲器方向。接高电平时为主片,接低电平时为从片。当8259A工作于缓冲器方式时,它作为控制缓冲器传送方向的输出控制线;否则为输入线。9.CAS2∽CAS0:级连控制信号,主片为输出,从片为输出。主片输出一个识别码,哪一个从片的识别码与其相符,则该从片的中断请求被准许。主片最多可以控制8个从片。九、8086/8088微处理器的中断系统1.概述

8086/8088微处理器的中断源分为两类:①位于处理器外部、由硬件引起的硬件中断(或外部中断)硬件中断又分为不可屏蔽中断和可屏蔽中断。它们的请求信号,分别由不可屏蔽中断请求输入引脚NMI和可屏蔽中断请求输入引脚INTR输入到处理器中。当有不可屏蔽中断请求信号到来时,处理器会在结束当前指令的执行后,立即转去执行不可屏蔽中断处理程序。②来自处理器内部、由某条指令的执行或某个标志位的设置而引起的软件中断(或内部中断)。8086/8088微处理器的中断系统框图

“屏蔽”是通过标志寄存器中的中断允许标志IF来实现的。处理器会在每条指令执行的末尾,扫描INTR引脚。当检测到请求信号时,则检查IF。①若IF=1,则表示屏蔽中断、不响应,②否则响应。响应信号通过INTA引脚发给中断源。软件中断有5类:①除法错误(溢出或除数为0)、②定点加法溢出、③断点中断、④单步中断⑤中断指令INTn。

软件中断不会发出请求信号,也不需要响应信号。除单步中断外,内部中断无法用软件禁止。响应中断后,8086/8088微处理器进入中断周期。中断周期内,8086/8088微处理器将执行的操作是:(1)发出中断响应信号INTA.(2)将标志寄存器FR压入堆栈,将IF和TF清为0.(3)依次将寄存器CS和IP压入堆栈.(4)根据中断类型号找到中断处理程序的入口地址,并将其写入寄存器CS和IP.2.中断向量和向量表

8086/8088微处理器的中断处理程序的入口地址表示为:中断向量“CS:IP”8086/8088微处理器被设计成最多能管理256个中断。这些中断的中断向量组成中断向量表。每个中断向量长4个字节,故中断向量表的大小为1024字节00000H……FFFFFH00001H00002H00003H0号中断的中断向量(地址)003FCH003FDH003FEH003FFH256号中断的中断向量(地址)CSIPCSIP8086/8088微处理器管理中断是通过中断类型号(0~255)来实现的。前32个中断向量为系统专用。其中,①0号是“除法错误”中断,②1号是“单步”中断,③2号是“非屏蔽”中断,④3号是“断点”中断或INT3,⑤4号是“溢出”中断或INTO。中断类型5到31,系统保留使用。0号中断1号中断2号中断3号中断4号中断5号中断…31号中断…255号中断…中断向量表3.中断指令INTn和中断返回指令IRET广义上的INTn指令,包括了:①INT3(即断点中断)和②INT4(即INTO)。但除INT3和INTO为单字节指令外,其余INTn指令为2个字节的指令,第1个字节是操作码,第2个字节是操作数。操作数n为中断类型号,当执行INTn时,系统根据类型号n找到中断处理程序的入口地址。中断返回指令IRET的功能是顺序从堆栈中弹出3个字,依次送入寄存器IP、CS和FR。中断优先级,由高到低,依次为:①软件中断(不含单步中断)②不可屏蔽中断、③可屏蔽中断、④

单步中断。

练习.现有A、B、C、D四个中断源,其优先级由高向低按A→B→C→D顺序排列。若中断服务程序的执行时间为20µs,请根据下图所示时间轴给出的中断源请求中断的时刻,画出CPU执行程序的轨迹。

解:CPU执行程序的轨迹图如下:A服务B服务C服务D服务现行程序0102030405060708090100110120130140150t(µs)

B与C请求D请求B请求A请求

练习.设某机有五个中断源L0、L1、L2、L3、L4,按中断响应的优先次序由高向低排序为L0L1L2L3L4,现要求中断处理次序改为L1L4L2L0L3,根据下面的格式,写出各中断源的屏蔽字。

解:各中断源屏蔽状态见下表:中断源屏蔽字01234L0L1L2L3L41001011111101100001010111例.在程序中断方式中,磁盘申请中断优先权高于打印机。当打印机正在打印时,磁盘申请中断,试问是否要将打印机输出停下来?7.6DMA方式一、DMA方式的特点及应用1.概述:

DMA是在高速外设和主存储器间自动成批传送信息而尽量减少CPU干预的输入/输出方式。DMA方式在I/O与主存之间开辟了一条直接的数据通路,I/O交换不需通过CPU进行,大大提高了交换速度。另外,交换操作不影响CPU现行程序的执行,CPU工作效率不会下降。CPU主存ACC中断接口DMA接口I/O设备中断方式数据传送通路输入指令输出指令DMA方式数据传送通路2.DMA与主存交换数据的三种方式1)停止CPU访问主存:

当DMA要和主存交换数据时,CPU暂停现行程序的运行,等待DMA将一批数据全部传送完才继续工作。

这种方法实现简单但对CPU工作效率影响较大,不是典型的DMA方式。其改进方法是在DMA控制器中设一小容量存储器,使I/O先和小存交换,小存再和主存交换,这样交换时可使MM全速运行,减少CPU等待时间。

这种方法与程序查询方式有点像,但有区别:不用程序查询;不破坏CPU现场,CPU只需暂停即可。主存工作时间CPU不执行程序DMA不工作DMA不工作DMA工作CPU控制并使用主存DMA控制并使用主存t2)周期挪用(周期窃取):

当DMA交换时,CPU不需完全停止等待,可继续运行程序。每当I/O准备好一个数据时,就发出DMA请求,DMA控制器在接到请求后,申请总线控制权,占用一到二个主存周期与主存交换数据,交换完后就释放总线,CPU此时如要访存,可暂停一到二个主存周期,如不访存,可照常运行程序。

由于I/O操作比CPU慢得多,因此I/O交换占用主存的时间比例并不大,暂停一到二个主存周期对CPU工作影响不大,就像被DMA偷去了几个主存周期而CPU没有觉察一样,因此这种方式也称为“周期窃取”。这是一种典型的DMA方式。主存工作时间CPU控制并使用主存DMA控制并使用主存t3)DMA与CPU交替访存:

这种方式适合CPU工作周期比主存周期长一倍以上的情况。此时一个CPU工作周期中含有两个主存周期,因此可将CPU工作周期划分为两半(C1、C2),然后规定CPU和DMA访存各用一半(如C1时DMA访存,C2时CPU访存),这样CPU与I/O可交替访存,两者的工作效率毫无影响。由于这一点,这种方式也叫“透明的DMA”。

这是一种高效的传送方式,但需要较高的技术支持,硬件结构较复杂。主存工作时间DMA控制并使用主存CPU控制并使用主存t3.DMA的特点及应用1)特点:靠硬件控制传送不用保护现场不具备处理故障的能力优先级高,响应速度快2)DMA应用场合:用于高速数据传送的场合硬盘及软盘的I/O接口通信信道的I/O接口多处理机和多任务系统CRT扫描二、DMA接口的功能和组成(1)向CPU申请DMA传送(2)处理总线控制权的转交(3)管理

系统总线、控制

数据传送(4)确定

数据传送的首地址和长度(5)DMA传送结束时,给出操作完成信号修正

传送过程中的数据地址和长度1.DMA接口的功能:

DMA接口实际上起着接口和DMA控制器双重作用。所以DMA接口中一般应包括如下功能:2.DMA接口组成DMA接口主存CPUDMA控制逻辑中断逻辑设备HLDAARWCDARHRQ中断请求数据线地址线+1+1溢出信号DREQDACKBRAR:主存地址寄存器WC:字计数器DAR:设备地址寄存器BR:数据缓冲寄存器三、DMA的工作过程1.DMA传送过程预处理、数据传送、后处理(1)预处理通过几条输入输出指令预置如下信息通知DMA控制逻辑传送方向(入/出)设备地址DMA的DAR主存地址DMA的AR传送字数DMA的WC预处理:主存起始地址设备地址传送数据个数启动设备DMADMADMA数据传送:继续执行主程序同时完成一批数据传送后处理:中断服务程序做DMA结束处理继续执行主程序CPU(2)DMA传送过程示意允许传送?主存地址送总线数据送I/O设备(或主存)主存地址加1传送个数减1数据块传送结束?向CPU申请程序中断DMA请求否否是是数据传送(3)数据传送过程(输入)BR设备DMA控制逻辑中断逻辑ARWCDARDMA接口主存CPU+1+1DREQ②HRQ③HLDA④地址线⑤DACK⑥①数据线⑦溢出信号中断请求ARWC+1+1BRBRBRBRBRBRBR设备DMA控制逻辑中断逻辑ARWCDARDMA接口主存CPU+1+1DREQ②HRQ③HLDA④地址线⑤DACK⑥①数据线⑦溢出信号中断请求ARWC+1+1(4)数据传送过程(输出)BRBRBRBR(5)后处理校验送入主存的数是否正确是否继续用DMA测试传送过程是否正确,错则转诊断程序由中断服务程序完成例.一个DMA接口可采用周期窃取方式把字符传送到存储器,它支持的最大批量为400个字节。若存取周期为100ns,每处理一次中断需5μs,现有的字符设备传输率为9600bps。假设字符之间的传输是无间隙的,若忽略预处理所需要的时间,试问采用DMA方式每秒因数据传输需占用处理器多少时间?如果完全采用中断方式,又需占用处理器多少时间?解:每秒传输9600/8=1200B传送1200个字符需要1200个存取周期,占用处理器时间为0.1×1200+5×(1200/400)=135μs若采用中断方式,占用处理器时间为5×1200=6000μs例.假设磁盘采用DMA方式与主机交换信息,其数据传输率为2MBps,而且DMA的预处理需1000个时钟周期,DMA完成传送后处理中断需500个时钟周期。如果平均传输的数据长度为4KB,试问在磁盘工作时,50MHz的处理器需用多少时间比率进行DMA辅助操作(预处理和后处理)?解:DMA传送过程包括预处理、数据传送和后处理3个阶段。传送4KB数据长度需4KB/2MBps=0.002s如果磁盘不断进行传输,每秒所需的DMA辅助操作的时钟周期为(1000+500)/0.002=750000故DMA辅助操作占用CPU的时间比率为[750000/(50×106)]×100%=1.5%例.假设磁盘存储器转速为3000rpm,分8个扇区,每个扇区存储1KB,主存与磁盘存储器传送的宽度为16b。假设一条指令最长执行时间是25μs,是否可采用一条指令执行结束时响应DMA请求,为什么?若不行,应采取什么方案?解:磁盘转速为3000/60=50r/s磁盘每秒可传送信息1KB×8×50=400KB若采用DMA方式,每秒需有200K次DMA请求,即每隔5μs有一次DMA请求。如果采用一条指令执行结束时响应DMA请求,会造成数据丢失。必须按每个存取周期结束响应DMA请求的方案。2.DMA接口与系统的连接方式DMA接口1DMA接口2DMA接口nCPU…主存DMA响应I/O总线数据线地址线DMA请求(1)具有公共请求线的DMA请求(2)独立的DMA请求DMA接口1DMA接口2DMA接口3CPU主存DMA响应1DMA请求1DMA响应2DMA请求2DMA响应3DMA请求3I/O总线数据线地址线3.DMA方式与程序中断方式的比较(1)数据传送(2)响应时间(3)处理异常情况(4)中断请求(5)优先级中断方式DMA方式程序硬件指令执行结束存取周期结束能不能低高传送数据后处理四、DMA接口的类型1.选择型在物理上

连接多个

设备在逻辑上

只允许连接一个

设备设备地址寄存器控制状态寄存器数据缓冲寄存器主存地址寄存器时序电路字计数器DMA接口CPU主存设备1设备2设备n选择线...系统总线2.多路型在物理上连接多个设备在逻辑上允许连接多个设备同时工作设备设备设备DMA接口CPU主存…链式设备设备设备DMA接口CPU主存…独立请求式

某计算机处理器主频为50MHz,采用定时查询方式控制设备A的I/O,查询程序运行一次所用的机器周期数至少为50

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论