第十章 输入输出(I/O)系统(第二讲)_第1页
第十章 输入输出(I/O)系统(第二讲)_第2页
第十章 输入输出(I/O)系统(第二讲)_第3页
第十章 输入输出(I/O)系统(第二讲)_第4页
第十章 输入输出(I/O)系统(第二讲)_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、第十章 输入输出(IO)系统 第二讲10.2.3 程序中断设备接口的组成和工作原理(程序中断设备接口的组成和工作原理(1) 程序中断设备接口程序中断设备接口: : 设备选择器、 中断控制和工作状态逻辑、 中断排队控制逻辑、 设备码回送逻辑、 数据缓冲寄存器等组成。接口标准化,通过总线与主机相连。 看书上的图10.6。 10.2.3 程序中断设备接口的组成和工作原理(程序中断设备接口的组成和工作原理(2) (1 1)设备选择器)设备选择器 每一台外围设备接口都设置一个设备选择器,连接在系统上的每一台设备都有一个设备号。当CPU需使用某外设时,通过IO指令或其他访问IO设备地址的指令,将设备码通过

2、地址线送往所有外围设备接口,但仅仅具有该设备号的设备选择器才产生选中信号(SEL)。于是,该外围设备及其接口才能响应主机的控制并进行数据传送。10.2.3 程序中断设备接口的组成和工作原理(程序中断设备接口的组成和工作原理(3) (2 2)中断控制和工作状态逻辑)中断控制和工作状态逻辑中断控制逻辑:中断控制逻辑: 中断请求控制:中断请求触发器(INTR),1表示有中断请求,0表示没有中断请求。 中断屏蔽控制:中断屏蔽触发器(MASK),1表示允许中断,0表示不允许中断。工作状态逻辑:工作状态逻辑:设备忙状态,设备忙触发器(BUSY),1表示设备正在操作,0表示设备空闲。设备完成状态,设备完成触

3、发器(DONE),1表示设备完成操作,0表示设备没有完成操作。10.2.3 程序中断设备接口的组成和工作原理(程序中断设备接口的组成和工作原理(4) 只有当该设备被选中,选中信号(SEL)为高电平时才能访问这4个触发器。当CPU置“1”忙触发器(BUSY),启动设备,同时使完成触发器(DONE)置“0”。当设备完成输入输出动作,需请求中断时,由完成信号置“1”DONE触发器。在CPU送来的指令结束信号RQENB的作用下,使中断请求触发器置位(由完成触发器(DONE)决定置0或置1)。 中断屏蔽触发器是由IO指令利用MSKO的上升边来置位或复位的。图中的IORST是CPU送来的复位(IO总清)信

4、号,使各寄存器设置为初始状态。 10.2.3 程序中断设备接口的组成和工作原理(程序中断设备接口的组成和工作原理(5) (3 3)中断排队和设备码回送逻辑)中断排队和设备码回送逻辑CPU接到外围设备的中断请求后,如可以响应中断,则需了解是哪台设备要求服务。因此,需要将请求中断的设备码送给CPU。当多个外设有中断请求时,必须先为优先级高的外设服务。这个任务是通过排队线路和设备码回送逻辑来完成的,其逻辑线路如图104所示。(4 4)数据缓冲寄存器)数据缓冲寄存器每个外设的接口都设有数据缓冲寄存器,其长度为一个字节或一个字长。在CPU送来的信号控制下分别完成相应缓冲寄存器的接收或发送工作。 (1)

5、可编程中断控制器,介绍工作原理、工作方式、编程原理。 1片8259A可以管理8级中断,不增加电路,9片8259A可以构成64级中断。 8259A是可编程的,可以通过编程改变8259A的工作方式。 (2) 123456789101112131428 27 26 25 24 23 22 21 20 19 18 17 16 15CS#WR#RD#D7D6D5D4D3D2D1D0CAS0CAS1GNDVccA0INTA#IR7IR6IR5IR4IR3IR2IR1IR0INTSP#/EN#CAS2 (3) D7-D0:8根数据线。INT:连接CPU,向CPU发中断请求。INTA#:来自CPU的中断响应信

6、号,用于CPU从8259A上读取中断类型码。RD#:读出信号,读取8259A的内部寄存器。WR#:写入信号,将数据写入 8259A的内部寄存器。CS#:芯片选择信号。A0:用来指出8259A的哪个寄存器被访问。 (4) IR7-IR0:8根中断线请求线,来自外部设备。级联条件下主8259A的INT连接从8259A的IRi端。CAS2-CAS0:用于指出级联条件下从片。SP#/EN#:双向,有2个用处。 作为输入,来确定是主片或从片; 作为输出,在数据向8259A传送时,启动数据总线驱动。缓冲工作方式,作输入使用;非缓冲工作方式,作输出使用。 (5) 8086系统中,数据线是16位,8259A数

7、据线是8位。为了使所有的数据传输都利用总线的低8位,必须把地址总线的A1和8259A的A0连接。 CPU作16位数据传送,总是送到以偶地址开头的2个相邻的单元或者相邻的端口。低字节放在地址较低的单元,高字节放在地址较高的单元。 低8位传送到偶数地址,而高8位传送到奇数地址。 (6) 由八个部分组成:中断请求寄存器、中断状态寄存器、优先级判断器、中断屏蔽寄存器、中断控制逻辑、数据缓冲器、级联缓冲器比较器和读写逻辑。 见书图10.7。 (7) 中断请求寄存器IRR接受外设来的中断请求(IR0IR7),每一位表示一个外部设备的中断请求,当有请求,就锁存该中断请求信号。 逻辑电路根据中断屏蔽寄存器IM

8、R的中对应的位决定是否允许该中断通过。 (8) 中断优先级判别电路把新进入的中断请求和当前正在处理的中断比较,从而决定哪一个中断优先级别更高。 中断请求寄存器的各位送入优先级判断器,根据中断屏蔽寄存器和中断状态寄存器ISR的状态决定最高优先级的中断请求,并将判优结果送入中断状态寄存器,如果中断请求被接受,则由控制逻辑向CPU发中断请求INT。 (9) 在8259A中,为每一个外设的中断请求(IR0IR7)设置一个中断类型码(8位),当其中一个外设的中断请求被CPU响应后,8259A送出与该中断所对应的中断类型码,作为寻找中断服务程序入口的依据。 中断类型码(8位)由两部分组成,其高5位是由计算

9、机初始化程序设置的,保存在8259A中以后不再改变;低3位由被响应的中断请求序号提供。 例如,IR0的中断请求被响应,中断类型码的低3位即为011。在同一个8259A中,高5位为8个中断请求共用。假设与IR0对应的中断类型码为40H,那么与IR1IR7对应的中断类型码为41H47H。 (10) 每个8259A最多能控制8个外部中断信号,但可将多个8259A级联以处理多达64个中断请求。它允许有一个主单元和多个(不超过8个)从单元,称为主从系统。主从单元的级联是通过以下方式实现的: 联接主从单元的级联总线CAS0,CAS1和CAS2:将所有单元的CAS0、CAS1和CAS2各自联接在一起。主单元

10、的CAS为输出,从单元的CAS为输入。 将从单元的中断请求INT连到主单元的一个IR端,并在从单元中记录下这个IR端的序号。 (11) 这样,当有从单元的中断请求得到响应时,主单元将被选中的IR序号通过CAS0CAS2送到从单元的CAS0CAS2,在从单元中进行比较,只有一个从单元保存有相同的序号,说明该从单元的中断请求被CPU响应,以后由其将中断类型码送到数据总线,从而可确定请求中断的外设及其中断服务程序的入口。同时也说明了当对主从系统中的多个8259A进行初始化时,要为每台外设分配不同的中断类型码,使其保持惟一性,以免引起混乱。 SP#为输入输出双向线。当作为输入线时,主单元的SP#接“1

11、”,从单元的SP#接地(0)。但是如果系统中从单元较多,而需要接数据总线驱动器时,则主单元的SP#用作输出线,其输出信号用来启动数据总线驱动器,从单元的SP#仍接地。SP#/EN# CAS0 CAS1 CAS2主片8259A IR0 IR1 :INT IR7 SP#/EN# CAS0 CAS1 CAS2主片8259A IR0 IR1 :INT IR7 SP#/EN# CAS0 CAS1 CAS2主片8259A IR0 IR1 :INT IR7 64个中断源D7-D0总线驱动到CPU (12)完全嵌套方式: IR0的外围设备优先权最高,而连至IR7的优先权最低。 轮换优先级A: 每个级别的中断保

12、证有机会被处理。它把给定的中断级别处理完后,立即把它放到最低级别的位置上去。 轮换优先级B: CPU可在任何时间规定最低优先级,然后顺序地规定其他IR线上的优先级。 (13) 8259A单元提供了两种屏蔽方式,简单屏蔽方式和特殊屏蔽方式。 简单屏蔽方式: 提供了8位的屏蔽字,每位对应着各自的IR线,被置位的任何一位禁止了相应IR线上的中断。 特殊屏蔽方式:允许CPU让来自低优先级外设的中断去中断高优先级的服务程序。当8位屏蔽位的某一位被置“0”时,则对应此位的IR线上的外设中断可中断比它高优先级别的服务程序。例如,若屏蔽字为11101111,说明IR4线上的中断可中断任何高级别的中断服 务程序

13、。 (14) D0D7: 为双向数据线,数据缓冲器暂时保存在内部总线和系 统数据总线间进行传送的数据。 读写逻辑:将决定数据的传送方向。RD为读命令,而WR为写命 令。CS为8259A芯片的选择信号,A0与8259A中被选 的寄存器地址有关。 8259A单元的不同工作方式是通过编程来进行选择的。CPU送出一系列的始化控制字和操作控制字来执行选定的操作。CPU将8259A当作两个IO端口或两个存储单元来寻址,由A0端确定这些控制字存入读写逻辑中哪个控制字寄存器。 10.3 DMA输入输出方式输入输出方式 DMA是IO设备与主存储器之间由硬件组成的直接数据通路,用于高速IO设备与主存之间的成组数据

14、传送。 数据传送是在DMA控制器控制下进行的,由DMA控制器给出当前正在传送的数据字的主存地址,并统计传送数据的个数以确定一组数据的传送是否已结束。在主存中要开辟连续地址的专用缓冲器,用来提供或接收传送的数据。在数据传送前和结束后要通过程序或中断方式对缓冲器和DMA控制器进行预处理和后处理。 10.3 DMA输入输出方式输入输出方式 nDMA优点:n数据一次性读写,不需要IO-Reg, Reg-RAM这样两次操作;nDMA控制器连续控制读写,不需要CPU取值、译码、执行等这样执行,在数据传送过程中,没有保存现场、恢复现场之类的工作。内存地址修改、传送字 个数的计数等等,也不是由软件实现,而是用

15、硬件线路直接实现的;n数据传送和CPU计算可能可能同时进行。 10.3.1 DMA三种工作方式三种工作方式 主机响应DMA请求后,让出存储总线,直到一组数据传送完毕后,DMA控制器才把总线控制权交还给CPU。DMA控制、访问主存CPU控制、访问主存主存工作时间DMA不工作DMA工作DMA不工作CPU停止访问主存 10.3.1 DMA三种工作方式三种工作方式 DMA控制器与主存储器之间传送一个数据,占用(窃取)一个或几个CPU周期,即CPU暂停工作一个或几个周期,然后继续执行程序。DMA控制、访问主存CPU控制、访问主存主存工作时间 10.3.1 DMA三种工作方式三种工作方式 n与停止CPU访

16、内的DMA方法比较,周期挪用的方法既实现了I/O传送,又较好地发挥了内存和CPU的效率,是一种广泛采用的方法。n但是I/O设备每一次周期挪用都有申请总线控制权、建立总线控制权和归还总线控制权的过程,所以传送一个字对内存来说要占用一个周期,但对DMA控制器来说一般要25个 内存周期(视逻辑线路的延迟而定)。n因此,周期挪用的方法适用于周期挪用的方法适用于I/O设备读写周期大于设备读写周期大于内存存储周期的情况。内存存储周期的情况。 10.3.1 DMA三种工作方式三种工作方式 当CPU的工作周期比主存访问时间长时,使用这种方式。这种方式不需要总线使用权的申请、建立和归还过程。将CPU周期分成C1

17、和C2两个周期,其中C1专门用于给DMA访问主存,C2提供给CPU访问主存。总线使用权通过C1和C2分别控制。CPU和DMA各自有自己的访问地址寄存器、数据寄存器和读写信号。DMA控制、访问主存CPU控制、访问主存主存工作时间 10.3.1 DMA三种工作方式三种工作方式 nDMA与CPU交替访问内存n这种方式效率高,又称为“透明的透明的DMA”方式,其来由是这种DMA传送对CPU来说,如同透明的玻璃一般。n但相应的硬件逻辑也就更加复杂。10.3.2 DMA控制器组成控制器组成 寄存器初始值为主存缓冲区的首地址。 该寄存器存放IO设备的设备码,具体内容取决于IO设备的数据格式和地址字编址方式。

18、 该计数器对传送数据的总字数进行统计 。 该寄存器用来存放控制字和状态字。 该寄存器用来暂存IO设备与主存传送的数据。 10.3.3 DMA的数据传送过程(的数据传送过程(1) DMA的数据传送过程可分为三个阶段: 1)DMA传送前预处理; 2)数据传送; 3)传送后处理。内存起始地址DMA主存地址寄存器(MAR)设备地址外围设备地址寄存器(ADR )传送数据个数字数计数器(WC) 启动设备继续执行主程序DMA控制器控制数据传送直到WC为零执行中断服务程序处理DMA结束操作如需要,停止外设,否则进行下一次DMA预处理数据传送后处理10.3.3 DMA的数据传送过程(的数据传送过程(2) 1 D

19、MA预处理 在进行DMA数据传送之前要用程序做一些必要的准备工作。先由CPU执行几条输入输出指令,测试设备状态,向DMA控制器的设备地址寄存器中送入设备地址并启动设备,在主存地址寄存器中送入交换数据的主存起始地址,在数据字数寄存器中送入交换的数据个数。 在这些工作完成之后,CPU继续执行原来的程序。10.3.3 DMA的数据传送过程(的数据传送过程(3) 第二个阶段数据传送过程:允许传送?主存地址送总线数据送I/O设备(或主存)主存地址加1WC内容(传送个数)减1数据块传送结束?向CPU申请中断DMA请求NYYN10.3.3 DMA的数据传送过程(的数据传送过程(4) 2 DMA控制I/O设备

20、与主存之间的数据交换 I/O设备启动后,若为输入数据,则要进行以下操作:(1)从输入介质读入一个字到数据缓冲寄存器DBR中。(2)向CPU发DMA请求,在取得总线控制权后,将DBR中的数据送人主存的数据寄存器。(3)将DMA中的MAR内容送主存的地址寄存器,启动写操作,将数据写入主存。(4)将WC内容减1,将MAR的内容加1,给出下一个字的地址。(5)判断WC是否为“0”,若不是,说明还有数据需要传送,检查无错后准备下一字的输入。若WC为0,表明一组数据已传送完毕,此时应置结束标志,向CPU发中断请求。 10.3.3 DMA的数据传送过程(的数据传送过程(5) I/O设备启动后,若为输出数据,

21、应进行以下操作:(1)将MAR的内容送主存的地址寄存器。(2)启动主存读操作,将对应单元的内容读入主存的数据寄存器。(3)将主存数据寄存器的内容送到DMA的DBR中。(4)将DBR的内容送到输出设备,若为字符设备,则需将DBR内容拆成字符输出。(5)将WC内容减1,MAR内容加1,为下一个字的输出做好准备。(6)判断WC的内容是否为0。如不为0,说明还需继续传送,输出设备处理完数据后,发DMA请求。如WC为0或检验有错,则停止传送,向CPU发结束中断请求或出错中断请求。 10.3.3 DMA的数据传送过程(的数据传送过程(6) 3 CPU中断原程序进行后处理 若需继续交换数据,则又要对DMA控

22、制器进行初始化;若不需交换数据,则停止外设;若为出错,则转错误诊断及处理程序。10.3.4 软盘接口逻辑电路举例(软盘接口逻辑电路举例(1) 为了实现CPU和软盘驱动器之间的快速数据传送,在CPU和软盘驱动器之间需设置软盘控制器。 DMA控制器电路Intel 8257就是DMA控制器电路。 软盘控制器接口逻辑电路中采用了8257 DMA控制器。在CPU和软盘控制器之间的接口电路中包括总线控制线路和DMA控制线路。 8257 DMA控制器提供四个独立的DMA通道(CH0,CH1,CH2,CH3)。软盘接口使用了其中一个通道。每个通道包含两个十六位的寄存器:一个DMA地址寄存器和一个字节计数寄存器。DMA地址寄存器存放被寻址的第一个主存单元的地址。字节计数寄存器存放本次DMA传送的字节数。此外,还包含工作方式(读、

温馨提示

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

评论

0/150

提交评论