第7章 系统_第1页
第7章 系统_第2页
第7章 系统_第3页
第7章 系统_第4页
第7章 系统_第5页
已阅读5页,还剩141页未读 继续免费阅读

下载本文档

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

文档简介

1、第7章 输入和输出技术第7章 输入和输出技术7.1 接口技术概述接口技术概述 7.2 CPU与外设之间数据传送方式与外设之间数据传送方式 7.3 DMA控制器控制器 习习 题题 7 第7章 输入和输出技术7.1.1 CPU与外部设备之间的接口信息与外部设备之间的接口信息 CPU通过接口通过接口与外外部设设备的连接如图7.1所示,其中既有数数据端口据端口,又有状态端口状态端口,还有控制端口控制端口,每一个I/O端口对应一个I/O地址地址。从硬件角度看,端口端口可以理解为寄存器理解为寄存器。数据端口数据端口可以是双向双向的,状态端口状态端口只作输入输入操作,控制端口控制端口只作输出输出操作。CPU

2、用I/O指令对其直接访问。在I/O操作中,主要有三类信息:数据信息、状态信息和控制信息。 7.1 接口技术概述接口技术概述 第7章 输入和输出技术数据端口状态端口控制端口CPU外设DBABCBI/O接口数据信息状态信息控制信息图7.1 简单的外设接口 第7章 输入和输出技术 数据信息数据信息是CPU和I/O设备交换的基本信息,通常是8位或16位。数在输入过程中,数据信息一般是由外部设备通过接口芯片传递给系统的。数据信息由外设经过外设和接口之间的数据线进入接口,再到达系统的数据总线,然后送入CPU。在输出过程中,数据信息从CPU经过数据总线进入接口,再通过外设和接口之间的数据线,到达外设。第7章

3、 输入和输出技术 状态信息状态信息反映了当前外设的工作状态外设的工作状态,它是由外设通过接口送入CPU的。对于输入设备输入设备来说,用Ready信号来表示待输入的数据是否准备就绪;对于输出输出设备来说,用Busy信号来表示输出设备是否处于空闲状态,如空闲,则可接收CPU送来的数据信息,否则CPU等待。 控制信息控制信息是CPU通过接口送给外设送给外设的。CPU通过发送控制信息控制外设的工作控制外设的工作。外设种类不同,控制信息也各不相同。接口控制信号一般可分为两类:总线控制信号和输入/输出控制信号。总线控制信号包括数据线、地址线、IOR、LOW等;输入/输出控制信号比较复杂,一般包括数据线、输

4、入/输出应答信号等。第7章 输入和输出技术7.1.2 输入输入/输出指令及其寻址方式输出指令及其寻址方式 在微型计算机系统中,端口端口的编址编址通常有两种不同的方式方式,一是I/O端口与存储器单元统一编址与存储器单元统一编址;二是I/O端口独立编址独立编址。 1. I/O端口与存储器单元统一编址端口与存储器单元统一编址 所谓I/O端口与存储器单元统一编址,也称为存储器映像(Memory Mapped)I/O方式,既把每个I/O端口都当作一个存储器单元看待,I/O端口与存储器单元在同一个地址空间中进行统一编址。通常,是在整个地址空间中划分出一小块连续的地址分配给I/O端口。被分配给被分配给I/O

5、端口的地址,存储器不能再使用端口的地址,存储器不能再使用,如图7.2所示。第7章 输入和输出技术图7.2 内存映射与I/O映射编址(a) 内存映射编址;(b) I/O映射I/O编址 I/O端口NI/O端口2I/O端口1I/O端口0I/O端口NI/O端口2I/O端口1I/O端口0内存空间FFFFFH供I/O接口使用000000HI/O空间系统各I/O端口配置地址64 KB(a)内存空间FFFFFH00000H1 MBFFFFH0000HI/O空间系统各I/O端口配置地址64 KB(b)第7章 输入和输出技术采用这种编址方式的微处理器有6800、6502、68000等,其优点是简化指令系统的设计简

6、化指令系统的设计,同时I/O控制信号与存储器的控制控制信号共用信号共用,给应用带来极大的方便,另外由于访问存储器的指令种类多、寻址方式多样化,对访问外设带来了很大的灵活性。对I/O设备可以使用功能强大的访问存储器那样的指令,如直接对I/O数据进行运算等。统一编址的缺点缺点是外设占用了一部分内存地址空间,减少减少了内存内存可用的地址范围,对内存容量有潜在的影响。此外,从指令上不易区分当前指令是对内存进行操作还是对外设进行操作。 第7章 输入和输出技术 2. I/O端口独立编址端口独立编址 所谓I/O端口独立编址(I/O Mapped),也称为I/O隔离编址或I/O指令寻址方式,即I/O端口地址区

7、域和存储器地址区域,分别各自独立编址。访问I/O端口使用专门的专门的I/O指令指令,而访问内存则使用MOV指令。CPU在寻址内存和外设时,使用不同的控制信不同的控制信号号来区分当前是对内存操作还是对I/O操作。在单CPU模式时,当前的操作是由IO/信号的电平来区别的。对于8088CPU系统,当IO/为低电平时,表示当前执行的是存储器操作,地址总线上地址是某个存储单元地址;当IO/为高电平时,表示当前执行的是I/O操作,地址总线上地址是某个I/O端口的地址。在多CPU模式时,若访问存储器,则使MEMW或MEMR信号有效;而访问I/O端口时,则使或信号有效。第7章 输入和输出技术 这种单独编址的优

8、点优点是I/O端口不占用存储器的地址空间不占用存储器的地址空间,使用专门的专门的I/O指令指令对端口进行访问,具有I/O指令短指令短、执行速执行速度快度快、译码简单译码简单的优点。缺点是专门的专门的I/O指令功能相对较弱指令功能相对较弱,一般只有传送功能只有传送功能,而没有运算没有运算功能。Intel 80 x86 CPU中,I/O端口和存储器是单独编址单独编址的,采用专用的输入/输出指令访问端口。 第7章 输入和输出技术 3. 输入输入/输出指令及其寻址输出指令及其寻址 1) 8086/8088采用的IN和OUT指令 I/O指令可以采用8位(单字节)或16位(双字节)地址两种寻址方式。如采用

9、单字节单字节作为端口地址端口地址,则最多可以有256个端口(端口地址号从00HFFH),并且是直接寻址直接寻址(直接端口寻址直接端口寻址)方式,指令格式如下:输入:INAX,Port;从Port端口输入16位数据到AXINAL,Port;从Port端口输入8位数据到AL输出:OUTPort,AX;从AX输出16位数据到Port端口OUTPort,AL;从AL输出 8位数据到Port端口这里Port是一个单字节的8位地址。第7章 输入和输出技术 如用双字节双字节地址作为端口地址端口地址,则最多可以有64 K个端口(端口地址号从0000HFFFFH),并且是间接寻址间接寻址方式,即把端端口地址放在

10、口地址放在DX寄存器内寄存器内(间接端口寻址间接端口寻址)。其指令格式如下:输入: MOVDX,XXXXH;16位地址INAX,DX;16位传送或INAL,DX;8位传送输出: MOVDX,XXXXHOUTDX,AX;16位传送或OUTDX,AL;8位传送这里XXXXH为两字节地址信息。第7章 输入和输出技术2) 80286和80386/486还支持I/O端口直接与内存之间的数据传送端口直接与内存之间的数据传送输入: MOVDX,PortLESDI,BufferinINSB;8位传送或INSW;16位传送输出: MOVDX,PortLDSSI,BufferoutOUTSB;8位传送或OUTSW

11、;16位传送第7章 输入和输出技术 这里的输入与输出是直接对内存储器的RAM而言,当输入时,用ES:DI指向RAM中的目标缓冲区Bufferin;当输出时,用DS:SI,指向源缓冲区Bufferout。若在INS或OUTS指令前加上REP重复前缀时,则可以实现I/O端口与RAM上的缓冲区之间进行成批数据传送。 从输入/输出指令可以看出,对于PC系列的机器,I/O端口内的数据也有8位与16位之分,通常16位数据端口地址安置在偶数地址号上,CPU在一次总线周期内就可以存取16位的数据。8位数据的端口地址可以安置在偶地址号或奇地址号上,偶地址使用数据总线D7D0传送数据,奇地址使用数据总线D15D8

12、传送数据。表7-l列出8位或16位数据端口在奇数或偶数端口地址号上,单字节直接寻址的输入/输出指令。第7章 输入和输出技术表表7-1 IBM-PC机上机上I/O端口地址配置端口地址配置I/O端口配置地址数据总线指令举例8位偶数地址D7D0IN AL,20HOUT 20H,AL奇数地址D15D8IN AL,21HOUT 21H,AL16位偶数地址D15D0IN AX,20HOUT 20H,AX第7章 输入和输出技术7.1.3 CPU的输入的输入/输出时序输出时序 为了说明CPU的输入和输出时序,下面以8086为例简要介绍读写I/O端口的总线时序。 1. I/O读总线周期时序读总线周期时序 一般I

13、/O设备设备的工作速度速度较慢慢,所以在I/O总线周期的T3和和T4之间间插入一个等待状态等待状态Tw,使整个周期由4个T状态变为5个。所以各个信号也都要相应地延长或推迟一个时钟周期。CPU仍是在T4状态的开始采样数据线,由于CPU只用A15A0寻址I/O端口,所以地址总线上没有A19A16的状态。其时序如图7.3所示。第7章 输入和输出技术图7.3 8086 I/O读写时序CLKA19 / S6 A16 / S3AD15 AD0ALEREADY2S0SDENRDT/8288产生)AIOWC ,IORC( 读写命令T1T2T3TWT4状态信息A19 A16S6 S3A15 A0D15 D0写读

14、WAITREADY111S S S012第7章 输入和输出技术 2. I/O写总线周期时序写总线周期时序 I/O写总线周期的时序与I/O读相比,除()信号换成了()信号外,数据信号也提前产生,但仍必须保持到T4状态的上升沿之后,以便I/O端口在T4为低电平的某个时刻写入数据。第7章 输入和输出技术7.1.4 常用外围接口芯片常用外围接口芯片1. 三态缓冲器三态缓冲器74LS244 (无锁存功能,用于输入无锁存功能,用于输入)外设输入的数据和状态信号,通过数据输入三态缓冲器经数据总线传送给微处理器。74LS244芯片的8位三态总线驱动器如图7.4所示。第7章 输入和输出技术图7.4 74LS24

15、4结构及引脚 VCC2G 1Y12A41Y22A3 1Y32A2 1Y42A11G 1A12Y41A22Y31A3 2Y31A4 2Y1GND1234567891020 19 18 17 16 15 14 13 12 11(a) 逻辑电路(b) 引脚图1A11A21A31A42A12A22A32A41Y11Y21Y31Y42Y12Y22Y32Y41G2G11第7章 输入和输出技术8个数据输出端1Yl1Y4、 2Y12Y4与微型计算机的数据总线相连,8 个数据输入端 1A11A4、 2A12A4 与外设相连。 加到输出允许G1和G2的负脉冲将数据从数据输入端送至数据输出端。 当 G1为低电平时,

16、 1Y11Y4 的电平与 1A11A4 的电平相同, 即输出反映输入电平的高低; 同样,当 G2为低电平时,2Y12Y4 的电平与 2A12A4 的电平相同。而当G1(或 G2)为高电平时,输出 1Y11Y4(或 2Y12Y4)为高阻态。经74LS244 缓冲后,输入信号被驱动,输出信号的驱动能力加大。 74LS244 主要用于三态输出的存储地址驱动器、 时钟驱动器和总线定向接收发器等。执行 IN 指令时,微处理器发出读寄存器信号,该信号通常是端口地址和 I/O 读信号IOR 相负与产生的。将读寄存器信号接至74LS244 的输出允许端,IN 指令就把三态缓冲器 74LS244 数据输入端的数

17、据,经数据总线输入累加器 AL 中。74LS244 可以用作无条件传送的输入接口电路。 第7章 输入和输出技术2. 数据收发器数据收发器74LS24574LS245是一种三态输出的8总线收发器,其逻辑电路和引脚如图7.5所示。该收发器有16个双向双向传送的数据端,即A1A8,B1B8,另有两个控制端使能端使能端和方向控方向控制端制端DIR,该芯片的功能见表7-2。74LS245通常用于数据的双向传送、缓冲和驱动。 第7章 输入和输出技术表表7-2 74LS245的真值表的真值表 使能端 G 方向控制端 DIR 传送方向 0 0 BA 0 1 AB 1 X 隔开 第7章 输入和输出技术图7.5

18、74LS245结构及引脚12345678910201918175678910VCCB1GB2B3B4B5B6B7B8使能DIR A1A2A3A4A5A6A7A8GND(a) 逻辑电路(b) 引脚图A1A2A3A4A5A6A7A8B1B2B3B4B5B6B7B8GDIR第7章 输入和输出技术3. 输出寄存器输出寄存器(74LS273)数据输出寄存器用来寄存微处理器送出的数据和命令寄存微处理器送出的数据和命令。数据输出接口通常是用具有信息存储能力的双稳态触发器来实现的。最简单的输出接口可用D触发器构成。8D触发器74LS273如图7.6所示。8个数据输入端D0D7与微型计算机的数据总线相连,8个数

19、据输出端Q0Q7与外设相连。 第7章 输入和输出技术加到74LS273时钟端CLK的脉冲信号的上升沿上升沿将出现在D0D7上的数据写入数据写入该触发器寄存触发器寄存。该触发器寄存的数据可由CLR上的脉冲的下降沿清除下降沿清除。该触发器寄存数据的过程是微处理器执行OUT指令指令完成的。执行OUT指令时,微处理器发出写寄存器信号,该信号通常是端口地址和I/O写信号IOW相负与产生的。将写寄存器信号接至74LS273的CLK端。OUT指令就把累加器AL中的数据通过数据总线送至该触发器寄存。74LS273可以用作无条件传送的输出接口电路。 第7章 输入和输出技术图7.6 74LS273引脚及其真值表G

20、ND1510Q3D3D2Q2Q1D1D0Q0VCC201511Q7D7D6Q6Q5D5D4Q4CPs CPDiQi0 xx01 111 00真值表第7章 输入和输出技术4. 锁存器锁存器74LS373锁存器是由三态缓冲器三态缓冲器和寄存器寄存器组成的。数据进入寄存器寄存后并不立即从寄存器输出,要经过三态缓冲才能输出。锁存器既可以作数据输入输入寄存器,又可以作数据输输出出寄存器。74LS273的数据锁存输出端Q是通过一个一般的门(二态门)输出的。也就是说,只要74LS273正常工作,其Q端总有一个确定的逻辑状态(0或1)输出。因此,74LS273无法直接用作输入接口,即它的Q端绝对不允许直接与系

21、统的数据总线相连接。74LS373是一种8D锁存器,具有三态驱动输出,其引线图和真值表如图7.7所示。第7章 输入和输出技术图7.7 74LS373结构及引脚 (a) 逻辑电路(b) 引脚图1DGQ(1)(3)输出控制OE1DDGQ(4)2DDGQ(7)3DDGQ(8)4DDGQ(13)5DDGQ(14)6DDGQ(17)7DDGQ(18)8D1使能G(11)(19)8Q(16)7Q(15)6Q(12)5Q(9)4Q(6)3Q(5)2Q(2)1Q1D2D3D4D5D6D7D8D1Q2Q3Q4Q5Q6Q7Q8QGOE第7章 输入和输出技术从引线上可以看出,它比 74LS273 多了一个输出允许端

22、OE。只有当OE=0 时,74LS374 的输出三态门才导通。OE=1 时,则呈高阻状态。使能端 G 有效时,将 D 端数据打入锁存器中 D 门,当输出允许端OE有效时, 将锁存器中锁存的数据送到输出端 Q。 其功能如表 7-3 所示。 第7章 输入和输出技术表表7-3 74LS373的真值表的真值表使能 G 输出允许 OE 输入 输出 Q 1 0 0 0 1 0 1 1 0 0 X Q0 X 1 X 高阻抗 第7章 输入和输出技术当使能端 G 为高电平, 同时输出允许端OE为低电平时, 输出Q=输入 D;当使能端 G 为低电平,同时输出允许端OE为低电平时,输出 Q=Q0(原状态,即使能端

23、G 由高电平变为低电平前,保持输出端 Q 的状态锁存);当输出允许端OE为高电平时, 不论使能端G为何值, 输出端Q总为高阻态。 74LS373锁存器主要用于锁存地址信息、数据信息以及 DMA 页面地址信息等。 第7章 输入和输出技术7.2 CPU与外设之间数据传送方式与外设之间数据传送方式7.2.1 程序控制方式程序控制方式 1. 无条件传送无条件传送 无条件传送是一种最简单的输入/输出控制方法,一般用于控制CPU与低速低速I/O接口之间接口之间的信息交换,例如,开关、继电器和速度、温度、压力、流量等变送器(即A/D转换器)。由于这些信号变化很缓慢,当需要采集这些数据时,外部设备已经把数据准

24、备就绪准备就绪,无需检查端口的状态无需检查端口的状态,就可以立即采集数据。数据保持时间相对于CPU的处理时间长得多。因此,输入的数据就用不不着加锁存器加锁存器而直接用三态缓冲器与系统总线连接三态缓冲器与系统总线连接。第7章 输入和输出技术 实现实现无条件输入的方法是:在程序的适当位置适当位置直接安排IN输入指令输入指令,当程序执行到这些指令时,外部设备的数据早已准备就绪,可以在执行当前指令时间内完成接受数据的全部过程。若外部设备是输出设备输出设备(例如LED显示器),一般要求接口有锁要求接口有锁存能力存能力,也就是要求CPU送给外部设备的数据,应该在输出设备接口电路中保持一段时间,这个时间的长

25、短应该和外部设备的接受动作时间相适应。实现无条件输出的方法是在程序的适当位置安排OUT输出指令,当程序执行到这些指令时,就将输出给外部设备的数据存入锁存器。第7章 输入和输出技术 无条件传送方式的工作过程:输入时,外界将数据送到缓冲器输入端(外界可以是开关、A/D转换器等),当CPU执行IN AL,07H指令时,CPU首先向地址译码器送来启动信号,并把端口地址07H送到74LS138译码器输入端,译码器的作用是把端口地址转变为使其某一根输出线为有效低电平。例如,当端口地址为07H时,则使译码器的Y7为低电平。然后CPU送出IOR低电平信号,使三态缓冲器的控制端为有效电平(选此三态缓冲器)。将外

26、部设备送来的数据送到数据总线上,并将数据打入CPU内部的通用寄存器AL中。因为,CPU执行一次数据读入读入,对于8088来说一般只需要微秒级微秒级时间,而外界数据在缓冲器输入端保持的时间在缓冲器输入端保持的时间,可达秒级或几十毫秒秒级或几十毫秒,因此,输入数据不必锁存输入数据不必锁存。第7章 输入和输出技术 而且,CPU执行IN AL,07H指令时,要读入的数据早已送入缓冲器的输入端,所以可以立即读入,无需查询数据是否已准备就绪。假设端口号07H也是另一接口电路输出锁存器的入口地址,锁存器从数据总线接收数据,当出现由或门U1输出的触发锁存器的触发脉冲时,就将它的输出数据锁存入锁存器,并通过其输

27、出端送给外部设备。所以,当需要向07H号端口输出数据时,可在程序中插入一条输出指令OUT 07H,AL。当CPU执行这条指令时,它把AL的内容送上数据总线,并把端口地址07H和启动信号送入译码器。译码器译码后使Y7为有效低电平,同时LOW也为有效低电平(此时IOR为高电平),由或门U1输出触发脉冲时,就将数据总线上的数据存入锁存器,CPU执行OUT 07H,AL指令时,AL中的数据在数据总线上停留的时间也只有微秒级,所以,输出数据必须通过存器锁存输出数据必须通过存器锁存。第7章 输入和输出技术也就是要求输出的数据,应该在输出接口电路的输出端保持一要求输出的数据,应该在输出接口电路的输出端保持一

28、段时间段时间,这个时间的长短,应该和外部接受设备的动作时间相和外部接受设备的动作时间相适应适应。当CPU再次执行OUT 07H,AL指令时,AL中新的数据会取代原锁存器中的内容。无条件传送方式的接口电路和控制程序都比较简单。 需要注意的是,输入时,当CPU执行IN指令时,要确保输入的数据已经准备好,否则,就可能读入不正确的数据;在输出时,当CPU执行OUT指令时,需确保外部设备已将上次送来的数据取走,它就可以接收新的数据了,否则,会发生数据“冲突”。无条件传送控制方式,一般用于定时已知或数据变化十分缓慢的外部设备。第7章 输入和输出技术 2. 有条件传送有条件传送 有条件传送方式又称为程序查询

29、方式程序查询方式。这种传送方式在接口电路中,除具有数据缓冲器数据缓冲器或数据锁存器数据锁存器外,还应具有外设外设状态标志位状态标志位,用来反映外部设备数据的情况。比如,在输入输入时,若数据已准备好,则将该标志位置位标志位置位;输出输出时,若数据已空(数据已被取走),则将标志位置位标志位置位。在接口电路中,状态寄存器也占用端口地址号。使用有条件传送方式控制数据的输入/输出,通常要按图7.8的流程进行。即首先读读入设备状态标志状态标志信息,再根据所读入的状态信息进行判断判断,若设备未准备就绪,则程序转移去执行某种操作,或循环回去重新执行读入设备状态信息;若设备准备好,则执行完成数据传送的I/O指令

30、。数据传送结束后,CPU转去执行其他任务,刚才所操纵的设备脱离CPU控制。第7章 输入和输出技术图7.8 条件传送示意图读入设备状态准备好?传送数据NY第7章 输入和输出技术 有条件传送的优点优点是:能较好地协调外设与协调外设与CPU之间的定之间的定时关系时关系;缺点缺点是:CPU需要不断查询不断查询标志位的状态,这将占用占用CPU较多的时间时间,尤其是与中速或慢速的外部设备交换信息时,CPU真正花费在传送数据上的时间极少,绝大部分时间都消耗在查询上。为克服克服这一缺点,可以采用中断控制方式中断控制方式。第7章 输入和输出技术7.2.2 中断控制方式中断控制方式 有条件有条件传送的缺点缺点除了

31、占用占用CPU较多较多的工作时间时间外,还难以满足实时实时控制系统对I/O工作的要求。因为在查询方式中,CPU处于主动地位,而外设接口处于消极被查询的被动地位。而在一般实时控制系统中,外设要求CPU为它服务是随机的,而且支持系统的外设往往有几个甚至几十个,若采用查询方式工作,很难实现系统中每一个外设都工作在最佳工作状态。所谓工作在最佳状态,是指一旦某个外设请求CPU为它服务时,CPU应该以最快的速度响应其请求。这就要求系统中的外设,具有主动申请CPU为其服务的权利。第7章 输入和输出技术比如,当某个A/D转换器的模拟量已转换为数字量后,这时它就可以立刻向CPU发出中断请求,CPU暂时中止处理当

32、前的事务,而转去执行优先的中断服务程序,输入A/D转换器的数字量数据。微型计算机都具有中断控制的能力,8086/8088CPU的中断结构灵活,功能很强。所以,微机系统采用中断控制I/O方式是很方便的。CPU执行完每一条指令后,都会去查询外部是否有中断请求,若有,就暂停执行现行的程序,转去执行中断服务程序,完成传送数据的任务。当然,在一个具有多个外设的系统中,在同一时刻就往往不止一个外设提出中断请求,这就引入了所谓中断优先权管理和中断嵌套等问题(有关中断的详细讨论参见第8章)。第7章 输入和输出技术7.2.3 直接存储器存取直接存储器存取(DMA)控制方式控制方式 采用中断方式中断方式,信息的传

33、送是依靠靠CPU执行中断服务程序执行中断服务程序来完成的,所以,每进行一次一次I/O操作操作,都需要要CPU暂停执行暂停执行当前程序当前程序,把控制转移到优先权最高的I/O程序。在中断服务程序中,需要有保护现场保护现场和恢复现场恢复现场的操作,而且I/O操作都是通过CPU来进行的。当从存储器输出数据时,首先需要CPU执行传送指令,将存储器中的数据,读入CPU中的通用寄存器AL(对于字节数据)或AX(对于字数据),然后,执行OUT指令,把数据由通用寄存器AL或AX传送到I/O端口;当从I/O端口向存储器存入数据时,过程正相反。第7章 输入和输出技术 CPU执行IN指令时,将I/O端口数据读入通用

34、寄存器AL或AX,然后CPU执行传送指令,将AL或AX的内容存入存储器单元。这样,每次I/O操作都需要几十甚至几百微秒,对于一些高速外设,如高速磁盘高速磁盘控制器或高速数据采集系统高速数据采集系统,中断控制方式往中断控制方式往往满足不了它们的需要往满足不了它们的需要。 为此,提出了数据在I/O接口与存储器接口与存储器之间的传送,不经不经CPU的干预,而是在专用硬件电路的控制下直接传送。这种方法称为直接存储器存取直接存储器存取(Direct Memory Access,缩写为DMA)。为实现这种工作方式而设计的专用接口电路,称为DMA控制控制器器(DMAC)。例如,Intel公司的8257、82

35、37,Zilog公司的Z 8410(Z80 DMAC),Motorola公司的MC6844等,都是能实现DMA方式的可编程DMAC芯片。第7章 输入和输出技术 用DMA方式传送数据时,在存储器存储器和外部设备外部设备之间,直接开辟高速开辟高速的数据传送通路数据传送通路。数据传送过程不要不要CPU介入介入,只用一个总线周期一个总线周期,就能完成存储器和外部设备之间的数据传送。因此,数据传送速度仅受存储器的存取速度和外部设备传输特性的限制。第7章 输入和输出技术 DMA的工作过程大致如下: (1) 当外设准备好外设准备好,可以进行DMA传送时,外设向向DMA控控制器发出制器发出DMA传送请求信传送

36、请求信号(DRQ)。 (2) DMA控制器控制器收到请求后,向向CPU发出发出“总线请求总线请求”信信号号HOLD,申请占用总线申请占用总线。 (3) CPU在完成当前总线周期后会立即对HOLD信号进行响响应应。响应包括两个方面,一是CPU将数据总线、地址总线和相应的控制信号线均置为高阻态,由此放弃对总线的控制权放弃对总线的控制权。另一方面,CPU向向DMA控制器发控制器发出“总线响应总线响应”信号(HLDA)。 第7章 输入和输出技术 (4) DMA控制器控制器收到HLDA信号后,就开始控制总线,并向向外设发出外设发出DMA响应信号响应信号DACK。 (5) DMA控制器控制器送出地址信号地

37、址信号和相应的控制信号控制信号,实现外设与内存或内存与内存之间的直接数据传送。例如,在地址总线上发出存储器的地址,向存储器发出写信号MEMW,同时向外设发出I/O地址、IOR和AEN信号,即可从外设向内存传送一个字节。 (6) DMA控制器控制器自动修改地址和字节计数器修改地址和字节计数器,并据此判断是否需要重复传送操作。规定的数据传送完后,DMA控制器就撤消发往CPU的HOLD信号。CPU检测到HOLD失效后,紧接着撤消HLDA信号,并在下一时钟周期重新开始控制总线时,继续执行原来的程序。第7章 输入和输出技术 DMA方式在传送路径和程序控制下数据传送的途径不同不同。程程序控制下数据传送的途

38、径必须经过序控制下数据传送的途径必须经过CPU,而采用,而采用DMA方式传送方式传送数据不需要经过数据不需要经过CPU。另外,程序控制下数据传送的源地址、目源地址、目的地址是由的地址是由CPU提供的提供的,地址的修改和数据块长的控制地址的修改和数据块长的控制也必须由CPU承担,数据传送的控制信号数据传送的控制信号也是由CPU发出的。而DMA方式传送数据,则由DMA控制器控制器提供源地址和目的地址,而且修改地址、控制传送操作的结束和发出传送控制信号也都由DMAC承担,即DMA传送数据方式是一种由硬件代替软件的方法,因而提高了数据传送的速度,缩短了数据传送的响应时间。因为DMA方方式控制数据传送不

39、需要式控制数据传送不需要CPU介入介入,即不利用CPU内部寄存器,因此,DMA方式不像中断方式控制下的数据传送,需要等一条指令执行结束才能进行中断响应,只要执行指令的某个机器周期结束,就可以响应DMA请求。第7章 输入和输出技术 另外,DMA既然不利用CPU内部设备来控制数据传送,因此,响应DMA请求,进入DMA方式时就不必保护不必保护CPU的现场的现场。采用中断控制的数据传送,进入中断服务(传送数据)之前,必须保护现场状态,这会大大延迟响应时间。因此,采用DMA控制数据传送的另一个优点是,缩短数据传送的响应时间。所以,一般要求响应时间在微秒以下的场合,通常采用DMA方式。当然用DMA控制传送

40、也存在一些问题问题,因为采用这种方式传送数据时,DMAC取代CPU控制了系统总线,即CPU要把对总线的要把对总线的控制权让给控制权让给DMAC。所以,当DMA控制总线时,CPU不能读取指令。另外,若系统使用的是动态存储器,而且是由CPU负责管理动态存储器的刷新,则在DMA操作期间,存储器的刷新将存储器的刷新将会停止会停止。而且,当DMAC占用总线时,CPU不不能去检测和响应来自系统中其他设备的中断请求中断请求。第7章 输入和输出技术 DMA传送传送也存在以下两个额外开销额外开销源:第一个额外开销是总线访问时间总线访问时间,由于DMAC要同CPU和其他可能的总线主控设备争用对系统总线的控制权,因

41、此,必须有一些规则来解决争用总线控制权的问题,这些规则一般是用硬件实现排队的,但是排队过程也要花费时间;第二个额外开销是对DMAC的初始的初始化化,一般情况下,CPU要对DMAC写入一些控制字,因此,DMAC的初始化建立,比程序控制数据传送的初始化,可能要花费较多时间。所以,对于数据块很短数据块很短或要频繁地对DMAC重新编程初始化的情况下,可能就不宜采用不宜采用DMA传送方式。此外,DMA控制数据传送是用硬件控制代替CPU执行程序来实现的。所以它必然会增加硬件的投资,提高系统的成本。因此,只要CPU来得及处理数据传送,就不必采用DMA方式。DMA主要适用以下几种场合场合:第7章 输入和输出技

42、术 (1) 硬盘和软盘I/O。可以使用DMAC作磁盘存储介质与半导体主存储器之间传送数据的接口。这种场合需要将磁盘中的大大量数据量数据(如磁盘操作系统等)快速地装入内部存储器。 (2) 快速通信通道I/O。例如,光导纤维通信链路,DMAC可以用来作为计算机系统和快速通信通道之间的接口,可作为同步通信数据的发送和接收,以便提高响应时间,支持较高的数据传输速率,并使CPU脱出来做其他工作。第7章 输入和输出技术 (3) 多处理机和多程序数据块传送。对于多处理机结构,通过DMAC控制数据传送,可以较容易地实现专用存储器和公用存储器之间的数据传送,对多任务应用、页式调度和任务调度都需要传送大量的数据。

43、因此,采用DMA方式可以提高数据传输速度。 (4) 扫描操作。在图像处理中,对CRT屏幕送数据,也可以采用DMA方式。 第7章 输入和输出技术 (5) 快速数据采集。当要采集的数据量很大,而且数据是以密集突发的形式出现,例如,对波形的采集,此时采用DMA方式可能是最好的方法,它能满足响应时间和数据传输速率的要求。 (6) 在PC/XT机中还采用DMA方式进行DRAM的刷新操作。DMA工作过程波形如图7.9所示。第7章 输入和输出技术图7.9 DMA工作波形选通脉冲READYHOLDHLDADMA 响应地址数据存储器写命令第7章 输入和输出技术7.2.4 I/O处理机方式处理机方式 8089是专

44、门用来处理输入/输出的协处理器。它共有52条指令、lMB寻址能力和两个独立的DMA通道。当8086/8088加上8089组成系统后,8089能代替8086/8088,以通道控制方式管理各种I/O设备。以通道控制方式管理I/O设备,目前只有在大中型计算机中才普遍使用,因此,8089为微机的输入/输出系统设计带来换代性的变化。一般情况下,通过接口电路控制I/O外设,必须依靠CPU的支持,对于非DMA方式,从外部设备每读入一个字节或发送给外部设备一个字节,都必须由CPU执行指令来完成。虽然高速设备可以用DMA传送数据,但仍然需要CPU对DMAC进行初始化,启动DMA操作,以及完成每次DMA操作之后都

45、要检查传送的状态。第7章 输入和输出技术 对I/O数据的处理,如对数据的变换、拆、装、检查等,更加需要CPU支持,CPU控制I/O如图7.10(a)所示。从图中不难看出,普通I/O接口,不管是DMA方式还是非DMA方式,在I/O传送过程都要占去CPU的开销。8089是一个智能控制器,它可以取出和执行指令,除了控制数据传送外,还可以执行算术和逻辑运算、转移、搜索和转换。当CPU需要进行I/O操作时,它只要在存储器中建立一个信息块,将所需要的操作和有关参数按照规定列入,然后通知8089前来读取。8089读得操作控制信息后,能自动完成全部的I/O操作。第7章 输入和输出技术 因此,对配合8089的C

46、PU来说,所有输入/输出的操作过程中,数据都是以块为单位成批发送或接收的,而把一块数据按字或字节与I/O设备(如CRT终端,行式打印机)交换都由8089来完成,当8089控制数据交换时,CPU可以并行处理其他操作。由于引入8089来承担原来必须由CPU承担的I/O操作,这就大大地减轻了CPU控制外设的负担,有效地减少了CPU在I/O处理中的开销。8089控制I/O如图7.10(b)所示。第7章 输入和输出技术(a)(b)存储器8086CPUCRT其他I/O设备软盘控制器8272数据与指令命令与状态数据命令与状态数据命令与状态命令与状态数据联络信号软盘DMAC823782558250数据与指令数

47、据与指令通道注意中断请求数据命令与状态数据命令与状态数据命令与状态软盘82728251CRT80898255其他I/O存储器8086CPU图7.10 8086、8089控制I/O(a) 8086控制I/O; (b) 8089控制I/O第7章 输入和输出技术7.3 DMA控制器控制器7.3.1 DMA控制器的功能控制器的功能 通用的DMA控制器应具有以下功能: (1) 编程设定编程设定DMA的传输模式传输模式及其所访问内存的地址区域。 (2) 屏蔽或接受屏蔽或接受外部设备的DMA请求(DREQ)。当有多个设备同时请求时,还要进行优先级排队,首先接受最高级的请求。第7章 输入和输出技术 (3) 向

48、向CPU转达转达DMA请求请求。DMA控制器要向CPU发出总线请求信号HOLD(高电平有效),请求CPU放弃总线的控制。 (4) 接收接收CPU的总线响应信号的总线响应信号(HLDA)。接管总线控制权,实现对总线的控制。 (5) 向相应外部设备转达向相应外部设备转达DMA允许信号允许信号DACK。于是在DMA控制器的管理下,实现外部设备和存储器之间的数据直接传送。第7章 输入和输出技术 (6) 在传送过程中传送过程中进行地址修改地址修改和字节计数字节计数。在传送完要求的字节数后,向CPU发出DMA结束信号(EOP),撤消总线请求(HRQ),将总线控制权交还给CPU。 DMA控制器一方面可以接管

49、总线,直接在其他I/O接口和存储器之间进行读写操作,就像CPU一样成为总线的主控器件,这是有别于其他I/O控制器的根本不同之处。另一方面,作为一个可编程I/O器件,其DMA控制功能正是通过初始化编程来设置的。当CPU用I/O指令对DMA控制器写入或者读出时,它又和其他I/O电路一样成为总线的从属部件。第7章 输入和输出技术7.3.2 可编程可编程DMA控制器控制器Intel8237DMAC的主要性能和内部结的主要性能和内部结构构 8237DMAC是Intel 8080、8085、8086、8088系列通用的,一种高性能可编程DMA控制器芯片,它的性能如下: (1) 使用单一的+5 V电源、单相

50、时钟、40条引脚、双列直插式封装。时钟频率为35 MHz,最高速率可达1.6 MB/s。 (2) 具有四个独立的通道。可以采用级联方式扩充用户所需要的通道,每个通道都具有16位地址寄存器和16位字节计数器。第7章 输入和输出技术 (3) 用户通过编程,可以在四种操作类型和四种传送方式之中任选一种。 (4) 每个通道都具有独立的允许/禁止DMA请求的控制。所有通道都具有独立的自动重置原始状态和参数的能力。 (5) 有增1和减1自动修改地址的能力。 (6) 具有固定优先权和循环优先权两种优先权排序的优先权控制逻辑。第7章 输入和输出技术 (7) 每个通道都有软件的DMA请求。还各有一对联络信号线(

51、通道请求信号DREQ和响应信号DACK),而且DREQ和DACK信号的有效电平可以通过编程来设定。 (8) 具有终止DMA传送的外部信号输入引脚,外部通过此引脚输入有效低电平的过程终止信号EOP,可以终止正在执行的DMA操作。每个通道在结束DMA传送后,会产生过程终止信号EOP输出,可以用它作为中断请求信号输出。 8237A的内部寄存器的类型和数量如表7-3所示。 第7章 输入和输出技术表表7-4 8237A内部寄存器内部寄存器寄存器名 容量 数量 寄存器名 容量 数量 基地址寄存器 基字节计数器 当前地址寄存器 当前字节计数器 状态寄存器 16 位 16 位 16 位 16 位 8 位 4

52、4 4 4 1 命令寄存器 暂时寄存器 模式寄存器 屏蔽寄存器 请求寄存器 8 位 8 位 6 位 4 位 4 位 1 1 4 1 1 第7章 输入和输出技术 8237A由I/O缓冲器、时序和控制逻辑、优先级编码器和循环优先级逻辑、命令控制逻辑和内部寄存器组五部分组成,如图7.11所示。其中图(a)是8237A内部结构框图,图(b)是四通道示意图。通道部分只画出了一个通道的情况,即每个通道都有一个基地址寄存器、基字节数寄存器、当前地址寄存器和当前字节数寄存器(16位),每一个通道都有一个6位的模式寄存器以控制不同的工作模式。第7章 输入和输出技术图7.11 8237A结构(a) 内部结构框图;

53、(b) 四通道示意框图(a)I/O缓冲器输 出缓冲器命令控制逻辑I/O缓冲器时序和控制逻辑减1器加1器计数暂存器(16)地址暂存器(16)读缓冲器基地址寄存器(416)基字节数寄存器(416)读/写缓冲器当前地址寄存器(416)当前字节数寄存器(416)16位总线16位总线4写缓冲器读缓冲器命令(8)方式(416)数据暂存器(8)状态寄存器(8)屏蔽(4)请求(4)A0A3A4A7A8A15D0, D12DB7DB0优先级编码器与循环优先级逻辑DREQ0 DREQ34HLDAHRQDACK0DACK3IOWIORMEMWMEMRADSTBAENCLOCKREADYCSRESET4EOP第7章

54、输入和输出技术图7.7 8237A结构(a) 内部结构框图;(b) 四通道示意框图(b)命令寄存器(8)状态寄存器(8)数据暂存器(8)字计数暂存器(16)地址暂存器(16)时序和控制逻辑方式寄存器(8)基地址寄存器(16)基字节数寄存器(16)优先编码器与循环优先级逻辑当前地址寄存器(16)当前字节数寄存器(16)I/O缓冲器EOP36RESET1311CSREADYCLOCKAENADSTBMEMRMEMWIORIOW61298341235A3A0A7A 4DB7DB4324037212331VCC20GND7HLDA10HRQ19DREQ0DACK025DREQ118DACK12417D

55、REQ2DACK2141615DREQ3DACK3(同上)(同上)(同上)通道1通道2通道3屏蔽触发器请求触发器通道0DB4DB02630第7章 输入和输出技术7.3.3 8237的引脚和时序的引脚和时序图7.12 8237引脚8237/8237-2IORIOWMEMRMEMWNCREADYHLDAADSTBAENHRQCSCLKRESET2DACK3DACK3DREQ2DREQ1DREQ0DREQSS)V(地40393837363534333231302928272625242322217A6A5A4AEOP3A2A1A0A)V 5(VCC0DB1DB2DB3DB4DB7DB6DB5DB0D

56、ACK1DACK1234567891011121314151617181920第7章 输入和输出技术 引脚的功能定义如下:引脚的功能定义如下: CLK(Clock):时钟输入,用来控制8237内部操作定时和DMA传送时的数据传送速率。 CS(Chip Select):片选输入,低电平有效。在CPU控制总线时,即8237在受控方式下,当CS有效时,选中该8237作为I/O设备,而当CPU向8237写入编程控制字时,它开启I/O写输入;当CPU从8237读回状态字,或当前地址、当前字节计数器内容时,它开启I/O读输入。在DMA控制总线时,自动禁止CS输入,以防止DMA操作期间该器件选中自己。第7章

57、 输入和输出技术 RESET:复位输入,高电平有效。RESET有效时,会清除命令、状态、请求和暂存寄存器,并清除字节指示器和置位屏蔽寄存器。复位后,8237处于空闲周期,它的所有控制线都处于高阻状态,并且禁止所有通道的DMA操作。复位之后必须重新对8237初始化,它才能进入DMA操作。第7章 输入和输出技术 READY:准备好输入信号。当选用的存储器或I/O设备速度比较慢时,可用这个异步输入信号使存储器或I/O读写周期插入等待状态,以延长8237传送的读/写脉冲(IOR,LOW,EMMR和MEMW)。 HRQ(Hold Request):请求占有信号,输出,高电平有效。在仅有一块8237的系统

58、中,HRQ通常接到CPU的HOLD引脚,用来向CPU请求对系统总线的控制权。如果通道的相应屏蔽位被清除,也就是说DMA请求未被屏蔽,只要出现DREQ有效信号,8237就会立即发出HRQ有效信号。在HRQ有效之后,至少等待一个时钟周期后,HLDA才会有效。第7章 输入和输出技术 HLDA(Hold Acknowledge):同意让出总线响应输入信号,高电平有效。来自CPU的同意让出总线响应信号,它有效表示CPU已经让出对总线的控制权,把总线的控制权交给DMAC。 DREQ0DREQ3(DMA Request):DMA请求输入信号。它们的有效电平可由编程设定。复位时使它们初始化为高电平有效。这4条

59、DMA请求线是外部电路为取得DMA服务,而送到各个通道的请求信号。在固定优先权时,DREQ0的优先权最高,DREQ3的优先权最低。各通道的优先权级别是可以编程设定的,当通道的DREQ有效时,就向8237请求DMA操作。DACK是响应DREQ信号后,进入DMA服务的应答信号,在响应的DACK产生前DREQ必须维持有效。第7章 输入和输出技术 DACK0DACK3(DMA Acknowledge):DMA响应输出,它们的有效电平可由编程设定,复位时使它们初始化为低电平有效。8237用这些信号来通知各自的外部设备已经被授予一个DMA周期了,即利用有效的DACK信号作为I/O接口的选通信号。系统允许多

60、个DREQ同时有效,但在同一时间,只能一个DACK信号有效。 A3A0(Address):地址线的低4位,双向、三态地址线。CPU控制总线时,它们是输入信号,用来寻址要读出或写入的8237内部寄存器,在DMA的有效周期内,由它们输出低4位地址。第7章 输入和输出技术 A7A4:三态、输出的地址线。在DMA周期,输出低字节的高4位地址A7A4。 DB7DB0:双向、三态的数据总线,连接到系统数据总线上。在I/O读期间,在编程条件下,输出被允许。可以将8237内部的地址寄存器、状态寄存器、暂存寄存器和字节计数器中的内容读入CPU。当CPU对8237的控制寄存器写入控制字时,在一个I/O写周期内,这

温馨提示

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

评论

0/150

提交评论