第8章 IO接口与DMA技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第8章I/O接口与DMA技术本章主要内容1.I/O接口的基本概念2.I/O控制方式3.DMA接口技术4.可编程DMA控制器82378.1I/O接口概述8.1.1I/O接口的基本功能(1)数据缓冲(2)提供联络信息(3)信号与信息格式的转换(4)设备选择(5)中断管理(6)可编程功能8.1.2I/O接口的基本结构I/O接口的基本结构如图8.1所示。cpu外围设备数据输入寄存器数据输出寄存器状态寄存器控制寄存器中断控制逻辑数据总线地址总线控制总线图8.1I/O接口的基本结构I/O接口8.1.3I/O端口的编址方式输入输出接口包含一组称为I/O端口的寄存器。为了让CPU能够访问这些I/O端口,每个I/O端口都需有自己的端口地址(或端口号)。在一个微型计算机系统中,如何编排这些I/O接口的端口地址,称为I/O端口的编址方式。常见的I/O端口编址方式有两种:一种是I/O端口和存储器统一编址,也称存储器映像的I/O(MemoryMappedI/O)方式;另一种是I/O端口和存储器分开编址,也称I/O映像的I/O(I/OMappedI/O)方式1.I/O端口和存储器统一编址(Memory-mappedI/O)I/O端口和存储器统一编址的地址空间分布情况如图8.2所示。I/O端口存储单元I/O地址空间存储器地址空间整个地址空间图8.2I/O端口和存储器统一编址这种编址方式的优点是,可以用访向存储器的指令来访问I/O端口,而访问存储器的指令功能比较强,不仅有一般的传送指令,还有算术、逻辑运算指令,以及各种移位、比较指令等,并且可以实现直接对I/O端口内的数据进行处理。例如,若一个存储器映像的I/O端口地址为3000H,则可以直接用指令“ADDAL,DS:[3000H]”对端口的内容进行算术运算。缺点是:由于I/O端口占用了一部分存储器地址空间,因而使用户的存储地址空间相对减小;另外,由于利用访问存储器的指令来进行I/O操作,指令的长度通常比单独I/O指令要长,因而指令的执行时间也较长。微处理器MC6800系列、6502系列以及MC680x0系列采用这种编址方式。2.I/O端口和存储器单独编址(I/O-mappedI/O)I/O端口和存储器单独编址的地址空间分布如图8.3所示。存储单元存储地址空间I/O端口I/O地址空间图8.3I/O端口和存储器单独编址这种编址方式的优点是:第一,I/O端口不占用存储器地址,故不会减少用户的存储器地址空间;第二,单独I/O指令的地址码较短,地址译码方便,I/O指令短,执行速度快;第三,采用单独的I/O指令,使程序中I/O操作和其他操作层次清晰,便于理解。这种编址方式的缺点是:第一,单独I/O指令的功能有限,只能对端口数据进行输入/输出操作,不能直接进行移位、比较等其他操作;第二,由于采用了专用的I/O操作时序及I/O控制信号线,因而增加了微处理器本身控制逻辑的复杂性。微处理器Z80系列、Intel80x86系列采用了这种编址方式。8.1.4I/O接口的地址分配表8-1系统板I/O端口地址分配地址空间器件/接口适配器实际使用端口地址0000~001FHDMA控制器823700~0FH0020~003FH中断控制器8259A20~21H0040~005FH计数器/定时器825340~43H0060~007FH并行接口片8255A60~63H0080~009FHDMA页面寄存器(74LS670)80~83H00A0~00BFHNMI寄存器A0H00C0~01FFH未用表8-2扩展槽I/O端口地址分配地址空间器件/接口适配器地址空间器件/接口适配器200~20FH游戏卡380~38FHSDLC通信卡210~217H扩充部件390~3AFH未用218~2F7H未用3B0~3BFH单显/打印卡2F8~2FFH异步通信卡(COM2)3C0~3CFH未用300~31FH未用3D0~3DFH彩显/图形卡320~32FH硬盘卡3E0~3EFH未用330~377H未用3F0~3F7H软盘卡378~37FH打印卡3F8~3FFH异步通信卡(COM1)8.1.5I/O接口的地址译码及片选信号的产生在一个微机系统中通常具有多台外设,当CPU与外设进行通信时,需要对各个设备所对应的接口芯片进行逻辑选择,从而实现与相应的设备进行数据交换。这种逻辑选择功能是由I/O接口电路中的地址译码器实现的。目前常见的一种做法是:先通过对I/O端口地址的某几位高位地址进行译码,产生有效的片选信号,从而选中对应的接口芯片,再利用I/O端口地址的低位地址作为对接口芯片内部有关寄存器的选择。例如,在IBMPC/XT微机中,其系统板上有数片I/O接口芯片,其中包括DMA控制器8237、中断控制器8259A、并行接口8255A、计数器/定时器8253等。这些接口芯片必须是在相应的片选信号有效时才能工作。图8.4所示的就是在该微机系统中片选信号的产生电路。AY0BY1CY2Y3Y4G2BY5G2AY6G1Y7A5A6A874LS138A7A9AENPPICST/CCSINTRCSDMACSIOWWRTDMAPG(写DMA页面寄存器)WRTNMIREG(写NMI屏蔽寄存器)图8.4片选信号的产生8.2I/O控制方式主机与外围设备之间的数据传送控制方式(即I/O控制方式)主要有三种:程序控制方式、中断控制方式和直接存储器存取(DMA)方式。8.2.1程序控制方式程序控制方式是指在程序控制下进行的数据传送方式。它又分为无条件传送和程序查询传送两种。1.无条件传送方式优点:缺点:2.程序查询传送方式优点:缺点:准备好?读取状态信息输入数据是否图8.5查询式输入程序流程图忙?读取状态信息输出数据否是图8.6查询式输出程序流程图8.2.2中断控制方式与程序查询方式相比,中断控制方式的数据交换具有如下特点:(1)提高了CPU的工作效率;(2)外围设备具有申请服务的主动权;(3)CPU可以和外设并行工作;(4)可适合实时系统对I/O处理的要求。8.2.3DMA方式1.DMA的基本概念采用程序控制方式以及中断方式进行数据传送时,都是靠CPU执行程序指令来实现数据的输入/输出的。采用程序控制方式及中断方式时,数据的传输率不会很高。对于高速外设,如高速磁盘装置或高速数据采集系统等,采用这样的传送方式,往往满足不了其数据传输率的要求。例如,对于磁盘装置,其数据传输率通常在20万字节/秒以上,即传输一个字节的时间要小于5μs。对于通常的PC机来说,执行一条程序指令平均需要几μs时间。显然,采用程序控制或中断方式不能满足这种高速外设的要求。由此产生不需要CPU干预(不需CPU执行程序指令),而在专门硬件控制电路控制之下进行的外设与存储器间直接数据传送的方式,称为直接存储器存取(DirectMemoryAccess),简称DMA方式。这一专门的硬件控制电路称为DMA控制器,简称DMAC。CPU外设存储器总线:执行程序指令的数据传送路径;:DMA方式的数据传送路径图8.7两种不同的数据传送路径内存外设DMAC输出输入外设外设DMAC内存内存DMAC图8.8DMA传送的几种形式8.3DMA接口技术8.3.1DMA控制器的基本功能(1)能接收I/O接口的DMA请求,并向CPU发出总线请求信号;(2)当CPU发出总线回答信号后,接管对总线的控制,进入DMA传送过程;(3)能实现有效的寻址,即能输出地址信息并在数据传送过程中自动修改地址;(4)能向存储器和I/O接口发出相应的读/写控制信号;(5)能控制数据传送的字节数,控制DMA传送是否结束;(6)在DMA传送结束后,能释放总线给CPU,恢复CPU对总线的控制。8.3.2DMA控制器的一般结构一个单通道DMA控制器的一般结构及其与I/O接口的连接如图8.9所示。图8.9的上半部分是I/O接口,下半部分是DMA控制器。计数结束信号(可作为中断请求信号)控制寄存器状态寄存器数据输入寄存器数据输出寄存器控制寄存器状态寄存器地址寄存器字节计数寄存器数据总线控制总线数据总线控制总线地址总线地址总线地址译码器DMA控制器DMA请求DMA响应中断请求外设I/O接口总线回答总线请求图8.9DMA控制器的一般结构及其与I/O接口的连接8.3.3DMA控制器的工作方式DMA控制器的工作方式通常有“单字节传输方式”、“块传输方式”以及“请求传输方式”等,下面分别予以说明。1.单字节传输方式在单字节传输方式下,DMA控制器每次请求总线只传送一个字节数据,传送完后即释放总线控制权。在此方式下,总线控制权处于CPU与DMA控制器交替控制之中,其间,总线控制权经过多次交换。2.块传输方式(也称成组传输方式)块传输方式是指DMA控制器每次请求总线即连续传送一个数据块,待整个数据块全部传送完成后再释放总线控制权。3.请求传输方式每传输完一个字节,DMA控制器都要检测由I/O接口发来的“DMA请求”信号是否仍然有效,如果该信号仍有效,则继续进行DMA传输;否则,就暂停传输,交还总线控制权给CPU,直至“DMA请求”信号再次变为有效,数据块传输则从刚才暂停的那一点继续进行下去。8.3.4DMA工作过程在DMA方式下,往往传送的是一个数据块,但传送这个数据块的具体操作方式,可以采用上面介绍的单字节传输方式,也可采用块传输或请求传输方式。下面先以从内存输出一个字节数据到外设的DMA传送过程为例,具体说明DMA的操作过程。然后再给出以DMA方式输入一个数据块的工作过程。以DMA方式从内存输出一个字节数据到外设的具体工作过程如图8.10中第①~⑨步所示。(6)内存把数据送数据总线(7)接口锁存数据内存接口DMA控制器I/O设备8086和总线控制逻辑HOLDHLDA(1)接口准备就绪,发DMA请求(2)发总线请求(3)总线允许(5)DMA请求得到确认(9)8086收回总线控制权(8)撤销总线请求(4)DMA控制器把地址送地址总线数据总线控制总线地址总线图8.10以DMA方式输出一个字节数据的工作过程若从外设往内存输入一个数据块(输入过程),在单字节传输方式下,其主要工作过程为:(1)I/O接口向DMA控制器发送DMA请求信号;(2)DMA控制器向CPU发总线请求信号,当得到CPU送来的总线允许信号后,DMA控制器获得总线控制权;(3)DMA控制器将其地址寄存器的内容送到地址总线上。(4)DMA控制器往I/O接口发送DMA响应信号,并接着发出读I/O接口信号IOR,令I/O接口把数据送到数据总线上;(5)DMA控制器发出存储器写信号MEMW,将数据传送到由地址总线上的地址所指向的内存单元;(6)DMA控制器放弃对总线的控制权;(7)地址寄存器加1;(8)字节计数寄存器减1;(9)如果字节计数寄存器的值不为零,则返回第一步,否则结束。8.4可编程DMA控制器8237DMAChip8237A----ADetourHighwayinthePC.Intel8237是一种功能很强的可编程DMA控制器,广泛应用于微型计算机系统中。采用5MHz时钟时,其传输速率可达1.6M字节/秒;一片8237内部有四个独立的DMA通道,每个通道一次DMA传送的最大长度可达64K字节。每个通道的DMA请求都可以分别允许和禁止;不同通道的DMA请求有不同的优先级,优先级可以是固定的,也可以是循环的(可编程设定);四个通道可以分时地为四个外部设备实现DMA传送,也可以同时使用其中的通道0和通道1实现存储器到存储器的直接传送,还可以用多片8237进行级联,从而构成更多的DMA通道。IntelEnable/DisableControlofIndividualDMARequestFourIndependentDMAChannelsIndependentAutoinitializationofallChannelsMemory-to-MemoryTransfersMe

1 / 94
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功