概述CPU与外设数据传送方式DMA控制器
7.3 CPU与外设之间的数据传送方式

(3)连续方式 )
连续操作方式是指在数据块传送的整个过程中, 连续操作方式是指在数据块传送的整个过程中,不 请求是否撤消, 控制器始终控制着总线。 管DMA请求是否撤消,DMA控制器始终控制着总线。 请求是否撤消 控制器始终控制着总线 除非传送结束或检索到“匹配字节” 除非传送结束或检索到“匹配字节”,才把总线控制 权交回CPU。在传送过程中,当DMA请求失效时, 请求失效时, 权交回 。在传送过程中, 请求失效时 DMA控制器将等待它变为有效,却并不释放总线。 控制器将等待它变为有效, 控制器将等待它变为有效 却并不释放总线。
返 回
例
如图7-3-6所示,试编程实现将48000H 所示,试编程实现将 如图 所示 为首地址的顺序100个单元的数据,利用 个单元的数据, 为首地址的顺序 个单元的数据 查询方式输出到外设。 查询方式输出到外设。
程序如下: 程序如下: START: MOV AX, 4000H MOV DS, AX MOV SI, 8000H MOV CX, 100 GOON: MOV DX, 00F1H WAIT: IN AL, DX AND AL, 01H JZ WAIT MOV AL, [SI] MOV DX, 00F0H OUT DX, AL INC SI LOOP GOON RET
返 回
DMA控制器从CPU完全接管对总线的控制, DMA控制器从CPU完全接管对总线的控制,数据 控制器从CPU完全接管对总线的控制 交换不经过CPU 而直接在内存和I/O CPU, I/O设备之间 交换不经过CPU,而直接在内存和I/O设备之间 进行。 进行。 优点:传送速率很高, 优点:传送速率很高,这对高速度大批量数据传 送特别有用。 送特别有用。 缺点:要求设置DMA控制器,电路结构复杂, 缺点:要求设置DMA控制器,电路结构复杂,硬 DMA控制器 件开销大
dma传输基本原理

dma传输基本原理DMA(Direct Memory Access)传输是一种计算机系统中常用的数据传输方式。
它通过绕过CPU,直接在外设和主存之间进行数据传输,提高了数据传输效率,减轻了CPU的负担。
DMA传输的基本原理是,在外设和主存之间建立一条专用的数据通路,通过DMA控制器来管理数据传输。
在传统的IO方式中,数据的传输需要通过CPU进行中转,即CPU从外设读取数据,然后再将数据写入主存。
这种方式效率较低,且占用了CPU的大量时间和资源。
而在DMA传输中,数据传输的过程可以分为三个步骤:首先,外设将数据传输请求发送给DMA控制器;然后,DMA控制器将请求转发给主存,并通过总线控制器将数据从外设读取到DMA缓冲区;最后,DMA控制器将数据从DMA缓冲区写入主存,或者从主存读取数据写入外设。
在这个过程中,CPU的作用主要是对DMA控制器进行初始化和设置,以及在数据传输完成后进行处理。
具体来说,CPU需要设置DMA控制器的起始地址、目的地址、传输长度等参数,然后启动DMA传输。
传输过程中,CPU可以自由进行其他任务,而不需要关注数据传输的具体细节。
使用DMA传输的好处有很多。
首先,它可以大大提高数据传输的效率。
由于数据传输直接在外设和主存之间进行,无需经过CPU的中转,减少了数据传输的延迟。
其次,DMA传输可以减轻CPU的负担,释放出更多的计算资源。
在大量数据传输的场景下,使用DMA传输可以提高系统的整体性能。
除了提高数据传输效率和减轻CPU负担外,DMA传输还具有其他一些特点。
首先,DMA传输是一种异步的传输方式,即外设和主存之间的数据传输可以独立于CPU的运行。
这意味着,在DMA传输过程中,CPU可以同时执行其他任务,提高了系统的并发性。
其次,DMA传输可以支持不同类型的外设,包括硬盘、网卡、显卡等。
这使得系统具有更好的扩展性和兼容性。
然而,DMA传输也存在一些限制和问题。
首先,DMA传输需要占用一部分内存空间作为DMA缓冲区,这会降低可用内存的大小。
cpu与外围设备的基本通信方式

CPU与外围设备的基本通信方式有程序方式、中断方式和DMA方式。
在程序传送方式中,数据由CPU通过程序进行读写。
这种方式又可以分为无条件传送方式和条件传送方式。
无条件传送方式通常用在CPU与外设之间数据传送不太频繁的情况下。
中断控制方式则是当程序常规运行中,若外部有优先级更高的事件出现,则通过中断请求通知CPU。
CPU再读取状态寄存器确定事件的种类,以便执行不同的分支处理。
这种方式的优点在于CPU效率高且实时性好。
直接存储器存取(DMA)控制方式是一种硬件(DMA控制器)直接在内存和IO之间完成数据传送的方式,而CPU只在开始时将控制权暂时交予DMA,直到数据传输结束。
这种方式的传送速度比通过CPU快,尤其是在批量传送时效率很高。
微机原理与接口技术9章(DMA控制器)

– 接收并保存来自于CPU的方式控制字,使本通道能够工作 于不同的方式下
精选
DMA控制器8237A
• 8237的内部结构பைடு நூலகம்
– 4个独立的DMA通道共用的寄存器
• 1个16位的地址暂存寄存器 • 1个16位的字节数暂存寄存器 • 1个8位的状态寄存器 • 1个8位的控制(命令)寄存器 • 1个8位的暂存寄存器 • 1个4位的屏蔽寄存器 • 1个4位的请求寄存器
• 能接受外设的DMA请求信号,并向外设发出DMA响 应信号
• 能向CPU发出总线请求信号,当CPU发出总线保持响 应信号后,能够接管对总线的控制权
• 能发出地址信息,对存储器寻址并修改地址 • 能向存储器和外设发出读/写控制信号 • 能控制传输的字节数,并判断传送是否结束 • 能发出DMA结束信号,DMA传送结束后,能释放总
精选
DMA控制器8237A
• 对于内存不同区域之间的DMA传送,则应先用一个 DMA存储器读周期将数据从内存的源区域读出,存 入到DMAC的内部数据暂存器中,再利用一个DMA存 储器写周期将该数据写到内存的目的区域中去
精选
概述
• DMAC的功能
– DMAC是控制存储器和外设之间直接高速传送数 据的硬件
– DMAC应具备的功能
– DMAC向外设发出DMA应答信号DACK,通知该 外设成为被选中的DMA传送设备
– 同时,向存储器发出地址信号以及向发送存储 器和外设读写控制信号,控制数据按照初始化 设定的方向实现外设与内存之间大量数据的快 速传送
精选
概述
• DMA数据传送过程
– DMAC将规定的数据字节传送完之后,撤销总 线请求信号HRQ;CPU收到此信号,一方面使 HLDA无效,使得DMAC脱开三总线,另一方面 CPU又重新控制总线。
DMA理论知识及实例讲解

DMA基本知识计算机系统中各种常用的数据输入/输出方法有查询方式(包括无条件及条件传送方式)和中断方式,这些方式适用于CPU与慢速及中速外设之间的数据交换。
但当高速外设要与系统内存或者要在系统内存的不同区域之间进行大量数据的快速传送时,就在一定程度上限制了数据传送的速率。
直接存储器存取(DMA)就是为解决这个问题提出的,采用DMA方式,在一定时间段内,由DMA控制器取代CPU,获得总线控制权,来实现内存与外设或者内存的不同区域之间大量数据的快速传送。
典型DMA控制器(以下简称DMAC ),其数据传送工作过程如下:1.外设向DMAC发出DMA传送请求;2.DMAC通过连接到CPU的HOLD信号向CPU提出DMA请求;3.CPU在完成当前总线操作后会立即对DMA请求做出响应。
CPU的响应包括两个方面:一方面,CPU 将控制总线、数据总线和地址总线浮空,即放弃对这些总线的控制权;另一方面,CPU将有效的HLDA 信号加到DMAC上,以通知DMAC CPU己经放弃了总线的控制权;4.CPU将总线浮空,即放弃了总线控制权后,由DMAC接管系统总线的控制权,并向外设送出DMA 的应答信号;5.DMAC送出地址信号和控制信号,实现外设与内存或内存之间大量数据的快速传送。
6.DMAC将规定的数据字节传送完之后,通过向CPU发HOLD信号,撤消对CPU的DMA请求。
CPU 收到此信号,一方面使HLDA无效,另一方面又重新开始控制总线,实现正常取指令、分析指令、执行指令的操作。
s3c2440提供了4个通道的DMA,它们不仅可以实现内存之间的数据交换,还可以实现内存与外设,以及外设与外设之间的数据交换。
要用好s3c2440的DMA,关键是配置好它的源、目的寄存器,和必要的控制寄存器。
寄存器DISRCn是初始DMA源寄存器,它是用于设置DMA数据传输的源基址,而寄存器DIDSTn是初始DMA目的寄存器,它是用于设置DMA数据传输的目的基址。
DMA 控制器介绍

下页图是选择型DMA控制器的逻辑框图,它在物理上可以 连接多个设备,而在逻辑上只允许接—个设备.换句话说, 在某一段时间内只能为一个设备服务.
选择型DMA控制器工作原理与前面的简单DMA控制器基本 相同.除了前面讲到的基本逻辑部件外,还有一个设备号 寄存器.数据传送是以数据块为单位进行的,在每个数据 块传送之前的预置阶段,除了用程序中I/O指令给出数据块 的传送个数、起始地址、操作命令外,还要给出所选择的 设备号.从预置开始,一直到这个数据块传送结束,DMA 控制器只为所选设备服务.下—次预置再根据I/O指令指出 的设备号,为另—选择的设备服务.
工作。这些工作包括校验送入内存的数据是否正确;决定
继续用DMA方式传送下去,还是结束传送;测试在传送过
• 基本DMA控制器与系统的连接方式:
• (1)公用的DMA请求方式;(2)独立的DMA请求方式,
.
8
四、选择型和多路型DMA控制器
前面介绍的是最简单的DMA控制器,一个控制器只控制一 个I/O设备.实际中经常采用的是选择型DMA控制器和多 路型DMA控制器,它们已经被做成集成电路片子.
2.DMA DMA的数据块传送过程可分为三个阶段:传送前预处理;
预处理 由CPU执行几条输入输出指令,测试设备状态, 向DMA控制器的设备地址寄存器中送入设备号并启动设备, 向内存地址计数器中送入起始地址,向字计数器中送入交 换的数据字个数。在这些工作完成后,CPU继续执行原来
正式传送 当外设准备好发送数据(输入)或接受数据(输出) 时,它发出DMA请求,由DMA控制器向CPU发出总线使 用权的请求(HOLD)。下页图示出了停止CPU访内方式的 DMA传送数据的流程图。
DMA技術中,數據的傳送是在DMA控制器(DMAC)的控 制下進行的。
概述CPU与外设数据传送的方式DMA控制器

3.基地址和基字节数寄存器 每一个通道有一对16位的基地址和基字节数寄存 器,它们存放着与现行寄存器相联系的初始值。 4.命令寄存器 这是一个8位寄存器,用以控制8237的工作。命令 字的格式如图8-24所示。
5.模式寄存器 每一个通道有一个6位的模式寄存器以规定通道的 工作模式,如图8-26所示。 在编程时用最低两位来选择写入哪个通道的模式 寄存器。
状态信息和控制信息与数据是不同性质的信息, 必 须 要 分 别 传 送 。 但 在 大 部 分 微 型 机 中 ( 8086 也 如 此),只有通用的IN和OUT指令,因此,外设的状态 也必须作为一种数据输入;而CPU的控制命令也必须 作为一种数据输出。所以,一个外设往往要几个端口 地址,CPU寻址的是端口,而不是笼统的外设。
寄存器;在输出时,若外设已把上一个数据输出,输 出寄存器已空,由外设向CPU 发出中断请求,CPU就 暂停原执行的程序( 即实现中断),转去执行输入或
输出操作(中断服务),待输入输出操作完成后即返 回,CPU再继续执行原来的程序。这样就可以大大提 高CPU的效率,而且允许CPU与外设(甚至多个外设) 同时工作。
2.块传送方式 在这种传送方式下,8237由DREQ启动后就连续 地传送数据,直至字节数计数器减到零产生TC
(Terminal Count),或者由外部输入有效的 EOP
信号来终结DMA传送。
3.请求传送方式 在这种工作方式下,8237可以进行连续的数据传 送。当出现以下三种情况之一时停止传送。 (1)字节数计数器减到0,发生TC;
这种查询输入方式的程序流程图,如图8-11所示。
2.查询式输出 同样的,在输出时CPU也必须了解外设的状态, 看外设是否有空(即外设不是正处在输出状态,或外 设的数据寄存器是空的,可以接收CPU输出的信息), 若有空,则CPU执行输出指令,否则就等待。 查询式输出的程序流程图如图8-14所示。
第6.3章:DMA控制方法(lyz)(v1.0)

6.3.2、DMA与DMA控制器
4)8237公用寄存器 Nhomakorabea命令寄存器: 8位,独立IO地址
决定DMA的工作方式。 RESET时DMA被复位。
状态寄存器: 8位,独立IO地址
表示DMA的运行状态 可读。
表 1
名称 基地址寄存器 基字节计数寄存器 当前地址寄存器 当前字节计数寄存器
8237的内部寄存器
3、8237操作类型和传送方式
3)优先级
8237有两种优先级方案可供编程选择: (1).固定优先级
规定各通道的优先级是固定的,即通道0的优先级最 高,依次降低,通道3的优先级最低。 规定刚被服务通道的优先级最低,依次循环。这就可 以保证4个通道的优先级是动态变化的,若3个通道已 经被服务则剩下的通道一定是优先级最高的。
MEMR#,MEMW:输出,存储器读写控制
EOP#:双向。输出时,表明内部通道传送结束;输入时, 表明外部强迫DMA传送仃止。 AEN,地址锁存允许
在主模块时允许外部锁存器锁存8237A的高8位地址。
ADSTB,地址选通。
在主模块时8237地址寄存器的高8位地址经数据总线锁存到外部 锁存中。
RAM--RAM传送:
3、8237操作类型和传送方式
2)传送方式(四种)
单字节
每次一个字节 每次N个字节 字节计数器为FFFFH时,-EOP=0,DMA 终止 每次传送一个字节后,8237对DREQ测试。 直到连续传送到字节计数器为0 或外部输入使-EOP变低或DREQ变为无效时为止。
CPU响应DMA 放弃BUS
CPU与外设之间的数据传送方式

;延时 ;控制脉冲数
2021年1月30日星期六
2.条件传送方式 条件传送方式又称程序查询方式或异步传送方式。当CPU与外设工
作不同步时,很难确保CPU在执行输入操作时,外设一定是“准备好” 的;而在执行输出操作时,外设一定是“空闲”的。这时,为保证数 据传送的正确进行,就需采用条件传送方式。
AND AL, 1111 1100b
sound:
XOR AL, 0000 0010b
OUT 61H,AL
MOV CX,DX
delay:
LOOP delay
DEC BX
JNZ sound
MOV AH,4CH
INT 21H
Code
ENDS
END start
;控制脉冲个数 ;控制脉冲周期
;读入61H端口数据 ;61H端口的D0为0,8253 输出1
2021年1月30日星期六
2)条件式输出 图1-14给出的是采用条件传送方式进行输出操作的接口电路。当
前输出设备空闲时,状态标志触发器清零。CPU输出数据时,先用输入 指令读取接口中的状态字,假设忙闲标志位BUSY接至数据线D7位,则 当D7=0时,表示输出设备空闲,此时CPU才执行输出指令,否则CPU必 须等待。执行输出指令时由端口选择信号、M/IO信号和写信号WR共同 产生的选通信号将数据总线上的数据打入接口中的数据锁存器,同时 将D触发器Q端置1,一方面为外设提供一个联络信号,通知外设将锁存 器锁存的数据取走;另一方面Q端与状态信息缓冲器的BUSY相对应使状 态寄存器的BUSY位置1,告诉CPU当前外设处于忙状态,从而阻止CPU输 出新的数据。当输出设备取走当前数据后,会向接口发出确认信号ACK, 使接口中D触发器Q端置0,从而使状态寄存器中的BUSY位清零,通知 CPU外设现已处在空闲状态,以便开始下一个数据输出过程。
DMA详解

分类: LINUX5.1DMA概述DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。
要把外设的数据读入内存或把内存的数据传送到外设,一般都要通过CPU控制完成,如CPU程序查询或中断方式。
利用中断进行数据传送,可以大大提高CPU的利用率。
但是采用中断传送有它的缺点,对于一个高速I/O设备,以及批量交换数据的情况,只能采用DMA方式,才能解决效率和速度问题。
DMA在外设与内存间直接进行数据交换,而不通过CPU,这样数据传送的速度就取决于存储器和外设的工作速度。
通常系统的总线是由CPU管理的。
在DMA方式时,就希望CPU把这些总线让出来,即CPU连到这些总线上的线处于第三态--高阻状态,而由DMA控制器接管,控制传送的字节数,判断DMA是否结束,以及发出DMA结束信号。
DMA控制器必须有以下功能:1. 能向CPU发出系统保持(HOLD)信号,提出总线接管请求;2. 当CPU发出允许接管信号后,负责对总线的控制,进入DMA方式;3. 能对存储器寻址及能修改地址指针,实现对内存的读写操作;4. 能决定本次DMA传送的字节数,判断DMA传送是否结束5. 发出DMA结束信号,使CPU恢复正常工作状态。
如图是DMA控制器硬件结构示意图。
DMA的可能引脚说明:数据总线:用于传送数据。
地址总线:用于选择存储器地址。
数据传送信号:MEMR为存储器读操作信号,MEMW为存储器写操作信号,IOR为外设读操作信号,IOW为外设写操作信号。
DRQ:DMA请求信号。
是外设向DMA控制器提出要求DMA操作的申请信号。
DACK:DMA响应信号。
是DMA控制器向提出DMA请求的外设表示已收到请求和正进行处理的信号。
HOLD:总线请求信号。
是DMA控制器向CPU要求让出总线的请求信号。
HLDA:总线响应信号,是CPU向DMA控制器表示允许总线请求的应答信号。
5.2DMA工作方式随着大规模集成电路技术的发展,DMA传送已不局限于存储器与外设间的信息交换,而可以扩展为在存储器的两个区域之间,或两种高速的外设之间进行DMA传送,如图所示。
DMA控制器

2. 申请阶段
DMA控制器发出DMA请求信号DREQ。
►DMA控制器接收到DMA请求信号后,向CPU
发出总线请求信号HRQ。该信号连接到CPU的 HOLD引脚。
HRQ DREQ
CPU
DMAC
外部设备
9.1
DMA概要
CPU检测HRQ N HRQ有效且LOCK无效 Y CPU交出总线
3. 响应阶段
►CPU收到DMA的HRQ
④ DACK
外设接口
AEN IOW MEMW IOR MEMR
系统总线
⑤
存储器
9.1
DMA概要
DMA的传送过程分5个阶段:
1. 初始化阶段
要传送的数据字节数 ► 数据在存储器中的起始地址 ► 传送方向 ► DMAC的通道号 ……
►
DMAC
6
9.1
DMA概要
►当外设有DMA需求,并且已准备就绪,则向
具有多种控制方式和操作类型。
13
9.2
8237A的编程结构
二. 8237A的编程结构
DMA控制器的2种状态
主动工作状态:主模块
在主动工作状态下,DMAC取代处理器CPU,获得 了对系统总线的控制权,成为系统总线的主控者, 向存储器和外设发号施令。
被动工作状态:从模块
在被动工作状态下,DMAC接受CPU对它的控制和 指挥。例如:对DMAC进行初始化编程以及从 DMAC读取状态等。
速外设直接进行数据交换而无需CPU的干预。
特点
DMA传送期间,DMA控制器(DMAC)接管了
CPU对总线的控制权。
DMA方式中,内存地址的修改、传送结束的判
断都由硬件电路实现。即:用硬件控制代替了 软件控制。
CPU与外设间的数据传送方式

76543210 61H 端口
扬声器控制电路图:
控制其它外设
0 8253 1 与 放
扬
门大 声
器器
编程方法:
1. 使61H端口的0位输出0,控制8253输出1。 2. 使61H端口的1位按所需频率交替输出0和1,
产生所需的声音。
6
第6页/共57页
发声程序:
61H 端口
code SEGMENT
控制其它外设
HLDA CPU
储 器
输入设备
29
第29页/共57页
DMA控制器工作原理(续)
当外设输入数据准备好,外设向DMA发出一个选通信号,
将数据送数据端口;向DMA发出请求。
DMA控制器向CPU发出总线请求信号(HOLD)高电平。
CPU在现行总线周期结束后响应,
向DMA发出响应信号(HLDA)高电平;
实现方法:
1. 由专用接口芯片DMA控制器 (称DMAC) 控制传送过程, 2. 当外设需传送数据时,通过 DMAC向CPU发出总线请求; 3. CPU发出总线响应信号,释放总线; 4. DMAC接管总线,控制外设、内存之间直接数据传送
25
第25页/共57页
DMA 传送方式过程
CPU
总线 请求
总线 响应
0 8253Байду номын сангаас1 与 放
门大
扬 声
ASSUME CS:code
器器
start: MOV BX, 3000H
;控制脉冲个数
MOV DX, 6000H
;控制脉冲周期
IN AL, 61H
;读入61H端口数据
AND AL, 1111 1100b ;D0为0,8253 输出1
第4章DMA技术

❖掌握CPU与外设传送数据的不同方式的 特点及适用场合
❖掌握DMA的基本概念、DMA传送数据的4 种方式及传送过程
❖理解8237A的引脚功能及内部结构 ❖掌握8237A的初始化方法及编程应用
返回本章首页
4.1 CPU与外设传送数据的方式
• CPU与接口之间的数据传送,传送的方 式不同,CPU对外设的控制方式也不同, 从而使接口电路的结构及功能也不同。
使地址自动加1或减1
4.3.1 8237A的主要特性
⑥ 对于时钟频率为5MHz的8237A-5,其数据 传输率高达1.6MBps。
⑦ 可采用级联的方法扩展DMA通道的数量 ⑧ 有用于控制传送结束的外接过程结束控制
信号输入端 ⑨ 可以用软件设置DMA请求 ⑩ 可以分别控制DREQ和DACK信号的有效极
• 在微机中,传送数据一般有三种方式: 程序方式、中断方式和DMA方式。
4.1.1 无条件传送方式
• 所谓无条件传送方式是指CPU对外设接口的 读写随时都可以进行,不需要等待某种条件 的满足。无条件传送方式仅局限于外部控制 过程的各种动作时间是固定且是已知的前提 下,直接用IN或OUT指令与外设进行传送数 据。
4.1.2 程序查询方式
• 程序控制下的查询传送方式,又称条件 传送方式或异步传送方式。
• 在执行输入和输出操作之前,需要通过 测试程序对外围设备的状态进行检查。 当被选定的外设准备“就绪”时,才开 始进行输入和输出操作。
4.1.2 程序查询方式
• 1.查询式输入
• 在输入信息时,CPU必须了解外设的状态,看其是否已 准备好。所以,接口部分除了有数据传送到端口外,还 必须有传送状态信号的端口。
• 使用查询方式时,CPU读取状态寄存器并检 测状态字,如设备未准备好,CPU不断地查 询(读取状态寄存器并检测状态字),浪费 了大量CPU时间。
cpu与外部设备之间的数据传送方式

cpu和外部设备的传递方式——打开数据之
门
为了让电脑更加高效地工作,cpu需配合各种外部设备完成数据传输。
那么它们之间数据是如何传递的呢?
一、直接存储器访问(dma):
这种传输方式,外部设备不必等待cpu的处理,而是直接访问内存,将数据存储在指定的内存地址中。
cpu在完成任务后再通过dma控制器取回数据,避免了cpu与外部设备的等待时间,提高了工作效率。
二、中断机制:
外设向cpu发出中断请求,cpu在收到请求后立即暂停当前运行的程序,转而去执行中断处理程序。
在处理完中断请求后,cpu再恢复程序,继续执行之前的任务。
这种传输方式适用于需要及时响应的设备,如鼠标键盘等。
三、I/O端口访问:
通过i/o端口访问的方式,cpu与外部设备通过专用的输入输出端口进行数据传输。
这种方式的数据传输速度相比其他传输方式较慢,
但却是一种简单易实现的方式,适用于普通的输入输出设备。
以上三个方式是cpu与外部设备进行数据传输的主要方式。
正确
选择合适的数据传输方式,可大大提高电脑的工作效率和用户的体验。
DMA

DACK 决定是否插入等待状态Sw
MEMR(ISO4R状) 态——完成数据传送
IOW(MEMW)
21
DMA传送时序
4.4.3 8237A的编程使用
微机接口技术
8237A共有10种内部寄存器,对它们的操作 有时需要配合3个软件命令。
8237A的“软件命令”
不需要通过数据总线写入控制字 直接由地址和控制信号译码实现
➢ HRQ:总线请求。8237A输出有效的HRQ高
电平,向CPU申请使用系统总线。
➢ HLDA:总线响应。8237A接受来自CPU的响
应信号HLDA,取得了总线的控制权。
➢ DACK0~DACK3:DMA通道响应。
15
(2)DMA传送控制信号
微机接口技术
A0~A7:地址线。
DB0~DB7:数据线/高8位地址线。
7
3、请求方式
微机接口技术
特点:
DREQ信号有效就连续传送数据; DREQ信号无效,DMA传送被暂时中止,
8237A释放总线,CPU可继续操作; DREQ信号再次有效,DMA传送就继续进行。 DMA操作可由外设利用DREQ信号控制传送的
过程
8
4、级联方式
微机接口技术
用于通过多个8237A级连以扩展通道;
18
4.4.2 8237A的工作时序·空闲周期
微机接口技术
8237A的任一通道都没有DMA请求时。
8237A由微处理器控制作为一个接口芯片。
CPU可对8237A编程,或从8237A读取状态。
8237A采样CS*选片信号,该信号有效, CPU就要对8237A进行读/写操作。
8237A还采样通道的请求输入信号DREQ, 该信号有效,就进入有效周期。
DMA控制器

9.何谓DMA方式? DMA控制器可采用哪几种方式与CPU分时使用内存?
【解】直接内存访问(DMA)方式是一种完全由硬件执行I/O交换的工作方式。DMA控制器从CPU完全接管对总线的控制。数据交换不经过CPU,而直接在内存和I/O设备之间进行。DMA控制器采用以下三种方式:
①停止CPU访问内存:当外设要求传送一批数据时,由DMA控制器发一个信号给CPU。DMA控制器获得总线控制权后,开始进行数据传送。一批数据传送完毕后,DMA控制器通知CPU可以使用内存,并把总线控制权交还给CPU。
DMA控制器在微机系统中起什么作用?它的工作特点如何
悬赏分:0 | 提问时间:2006-11-14 16:03 | 提问者:繌苽Deじ☆ve
推荐答案
直接存储存取方式(DMA)是在存储器与输入输出设备间直接传送数据,是一种完全由硬件完成输入输出操作的方式。
DMA(Direct Memory Access),即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,从内存到适配卡或从一段内存到另一段内存。
利用它进行数据传送时不需要CPU的参与。每台电脑主机板上都有DMA控制器,通常计算机对其编程,并用一个适配器上的ROM(如软盘驱动控制器上的ROM)来储存程序,这些程序控制DMA传送数据。一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。
在DMA传送开始的短暂时间内,基本上有两个处理器为它工作,一个执行程序代码,一个传送数据。利用DMA传送数据的另一个好处是,数据直接在源地址和目的地址之间传送,不需要中间媒介。如果通过CPU把一个字节从适配卡传送至内存,需要两步操作。首先,CPU把这个字节从适配卡读到内部寄存器中,然后再从寄存器传送到内存的适当地址。DMA控制器将这些操作简化为一步,它操作总线上的控制信号,使写字节一次完成。这样大大提高了计算机运行速度和工作效率。
cpu与外设进行数据交换的方式

cpu与外设进⾏数据交换的⽅式程序查询⽅式 信息交换的控制完全由主机执⾏程序实现,主机⼀直询问设备有没有准备好,读取设备的状态决定数据传送还是等待。
该⽅式下,cpu需要“踏步等待”,cpu与 I/O 串⾏⼯作。
设计简单,设备少,但是效率低。
中断⽅式 计算机在执⾏现有程序时,暂时中⽌现有程序的执⾏,转去对其他程序的处理,在处理完毕后CPU⼜返回到现有程序的断点处,继续执⾏原有程序。
cpu在某⼀时刻启动外设,然后CPU继续执⾏原有程序,不⽤等外设,外设准备好了之后,向cpu发出中断请求,请求cpu为⾃⼰服务。
在可以响应中断的情况下,CPU暂时中⽌现有程序,转去执⾏中断服务程序为外设服务,在中断服务程序中完成⼀次主机与外设之间的数据传送,传送完成后,CPU返回原来的程序。
1.中断隐指令 不是指令,是硬件实现的。
它需要做的⼀些操作:1)关中断,为了保护中断不被打扰,⾸先需要关中断;2)保护断点,程序的断点(PC的内容)保存起来。
3)引出中断服务程序,把中断服务程序的⼊⼝地址传送给程序计数器。
2. 中断向量 中断服务程序的⼊⼝地址。
3.寻址中断服务程序的⽅法 硬件向量法和软件查询。
硬件产⽣的实际是中断类型号,软件查询是通过软件编程的⽅法寻找⼊⼝地址。
4.中断处理流程 关中断->保存断点->引⼊中断服务程序->保存现场和屏蔽字 ->开中断(允许中断嵌套)->执⾏中断服务程序->关中断(恢复现场和屏蔽字时候不能被打扰)->恢复现场和屏蔽字 ->开中断、中断返回DMA⽅式 完全由硬件进⾏成组信息传送的控制⽅式。
内存与外设之间有⼀条“直接数据通道”,信息传送不再经过CPU。
DMA的传送过程 1)预处理:CPU会做⼀些准备⼯作:测试I/O设备,设置DMA控制器的相关配置等,然后CPU⾛了;I/O设备发送DMA请求,DMA控制器向CPU发送总线请求 2)数据传送:完全由硬件控制 3)后处理:DMA控制器向CPU发送中断请求,CPU执⾏中断服务程序做DMA结束处理:检查校验数据啦,是否还有传送啦 DMA⽅式与中断⽅式的区别 1)CPU 2) 发⽣时间:中断请求只能发⽣在指令的执⾏周期之后,⽽对DMA的响应可以发⽣在每个机器周期 3)传送过程:中断传送过程还是需要CPU的⼲预,但是中断⽅式不需要。
CPU与外设之间的数据传送方式

科学、政治、文化、经济、心理、哲学在微型计算机系统中,CPU与外设之间的数据传送方式主要有程序传送方式、中断传送方式和直接存储器存取(DMA)传送方式,分别介绍如下。
7.2.1 程序传送方式程序传送方式是指直接在程序控制下进行数据的输入/输出操作。
程序查询方式分为无条件传送方式和查询方式(条件传送方式)两种。
一.无条件传送方式微机系统中的一些简单的外设,如开关、继电器、数码管、发光二极管等,在它们工作时,可以认为输入设备已随时准备好向CPU提供数据,而输出设备也随时准备好接收CPU送来的数据,这样,在CPU需要同外设交换信息时,就能够用IN或OUT指令直接对这些外设进行输入/输出操作。
由于在这种方式下CPU对外设进行输入/输出操作时无需考虑外设的状态,故称之为无条件传送方式。
对于简单外设,若采用无条件传送方式,其接口电路也很简单。
如简单外设作为输入设备时,输入数据保持时间相对于CPU的处理时间要长得多,所以可直接使用三态缓冲器和数据总线相连,如图7.5(a)所示()。
当执行输入的指令时,读信号RD有效,选择信号M/IO处于低电平,因而三态缓冲器被选通,使其中早已准备好的输入数据送到数据总线上,再到达CPU。
所以要求CPU在执行输入指令时,外设的数据是准备好的,即数据已经存入三态缓冲器中。
简单外设为输出设备时,由于外设取数的速度比较慢,要求CPU送出的数据在接口电路的输出端保持一段时间,所以一般都需要锁存器,如图7.5(b)所示。
CPU执行输出指令时,M/IO和WR信号有效,于是,接口中的输出锁存器被选中,CPU输出的信息经过数据总线送入输出锁存器中,输出锁存器保持这个数据,直到外设取走。
无条件传送方式下,程序设计和接口电路都很简单,但是为了保证每一次数据传送时外设都能处于就绪状态,传送不能太频繁。
对少量的数据传送来说,无条件传送方式是最经济实用的一种传送方法。
二.查询传送方式查询传送也称为条件传送,是指在执行输入指令(IN)或输出指令(OUT)前,要先查询相应设备的状态,当输入设备处于准备好状态、输出设备处于空闲状态时,CPU才执行输入/输出指令与外设交换信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CPU与I/O设备的工作往往是异步的,很难保证当 CPU执行输入操作时,外设已把要输入的信息准备好 了;而当CPU执行输出时,外设的寄存器(用于存放 CPU输出数据的寄存器)一定是空的。所以,通常程 序控制的传送方式在传送之前,必须要查询一下外设 的状态,当外设准备就绪了才传送;若未准备好,则 CPU等待。
这种方式的优点是:
(1)CPU对外设的操作可使用全部的存储器操作 指令,故指令多,使用方便。如可以对外设中的数据 (存于外设的寄存器中)进行算术和逻辑运算,进行 循环或移位等。
(2)内存和外设的地址分布图是同一个。 (3)不需要专门的输入输出指令以及区分是存储 器还是I/O操作的控制信号。 缺点是:
第8章 输入和输出
8.1 概 述 8.2 CPU与外设数据传送的方式 8.3 DMA控制器
退出
8.1 概 述
8.1.1 输入输出的寻址方式
CPU寻址外设可以有两种方式。 1.存储器对应输入输出方式 在这种方式中,把一个外设端口作为存储器的一 个单元来对待,故每一个外设端口占有存储器的一个 地址。从外部设备输入一个数据,作为一次存储器读 的操作;而向外部设备输出一个数据,则作为一次存 储器写的操作。
状态信息和控制信息与数据是不同性质的信息, 必 须 要 分 别 传 送 。 但 在 大 部 分 微 型 机 中 ( 8086 也 如 此),只有通用的IN和OUT指令,因此,外设的状态 也必须作为一种数据输入;而CPU的控制命令也必须 作为一种数据输出。所以,一个外设往往要几个端口 地址,CPU寻址的是端口,而不是笼统的外设。
1.查询式输入
在输入时,CPU必须了解外设的状态,看外设是 否准备好。
当输入设备的数据已准备好后,发出一个选通信 号,一边把数据送入锁存器,一边使D触发器为“1”, 给出“准备好”Ready的状态信号。而数据与状态必 须由不同的端口输至CPU数据总线。当CPU要由外设 输入信息时,先输入状态信息,检查数据是否已准备 好,当数据已经准备好后,才输入数据。读入数据的 指令,使状态信息清“0”。
要寻址的外设的端口地址,显然比内存单元的地 址要少得多。所以,在用直接寻址方式寻址外设时, 它的地址字节,通常总要比寻址内存单元的地址少一 个字节,因而节省了指令的存储空间,缩短了指令的 执行时间。
8.1.2 CPU与I/O设备之间的接口信息
1.数据(Data) 在微型机中,数据通常为8位、16位或32位。它大 致可以分为三种基本类型:
寄存器;在输出时,若外设已把上一个数据输出,输 出寄存器已空,由外设向CPU 发出中断请求,CPU就 暂停原执行的程序( 即实现中断),转去执行输入或
输出操作(中断服务),待输入输出操作完成后即返 回,CPU再继续执行原来的程序。这样就可以大大提 高CPU的效率,而且允许CPU与外设(甚至多个外设) 同时工作。
8.2.3 直接数据通道传送(DMA)
中断传送仍是由CPU通过程序来传送,每次要保 护断点,保护现场需用多条指令,每条指令要有取指 和执行时间。这对于一个高速I/O设备,以及成组交换 数据的情况,例如磁盘与内存间的信息交换,就显得 速度太慢了。
所以希望用硬件在外设与内存间直接进行数据交 换(DMA),而不通过CPU,这样数据传送的速度的 上限就取决于存储器的工作速度。但是,通常系统的 地址和数据总线以及一些控制信号线(例如IO/、、等) 是由CPU管理的。在DMA方式时,就希望CPU把这些 总线让出来(即CPU连到这些总线上的线处于第三 态——高阻状态),而由DMA控制器接管,控制传送 的字节数,判断DMA是否结束,以及发出DMA结束 等信号。这些都是由硬件实现的。
8.1.3 CPU的输入输出时序 通常I/O接口电路的工作速度较慢,往往要插入等 待状态。
8.1.4 CPU与接口电路间数据传送的形式
CPU与外设的信息交换称为通信 (Communication)。基本的通信方式有两种:
• 并行通信——数据的各位同时传送; • 串行通信——数据一位一位顺序传送。
8.2 CPU与外设数据传送的方式
(1)数字量 (2)模拟量 (3)开关量 2.状态信息(Status) 在输入时,有输入设备是否准备好(Ready)的状 态信息;在输出时,有输出设备是否有空(Empty) 的状态信息,若输出设备正在输出,则以忙(Busy) 指示等等。
3.控制信息(Control) 控制输入输出设备启动或停止等等。
Байду номын сангаас
1.DMA控制器的基本功能 DMAC是控制存储器和外部设备之间直接高速地 传送数据的硬件电路,它应能取代CPU,用硬件完成 图8-17所示的各项功能。具体地说应具有如下功能: (1)能接收外设的请求,向CPU发出DMA请求 信号。
(2)当CPU发出DMA响应信号之后,接管对总 线的控制,进入DMA方式。
这种查询输入方式的程序流程图,如图8-11所示。
2.查询式输出 同样的,在输出时CPU也必须了解外设的状态, 看外设是否有空(即外设不是正处在输出状态,或外 设的数据寄存器是空的,可以接收CPU输出的信息), 若有空,则CPU执行输出指令,否则就等待。 查询式输出的程序流程图如图8-14所示。
8.2.2 中断传送方式 在上述的查询传送方式中,CPU要不断地询问外 设,当外设没有准备好时,CPU要等待,不能进行别 的操作,这样就浪费了CPU的时间。而且许多外设的 速度是较低的,如键盘、打印机等等,它们输入或输 出一个数据的速度是很慢的,在这个过程中,CPU可 以执行大量的指令。为了提高CPU的效率,可采用中 断的传送方式:在输入时,若外设的输入数据已存入
外设占用了内存单元,使内存容量减小。
2.端口寻址的输入输出方式
在这种工作方式中:CPU有专门的I/O指令,用地 址来区分不同的外设。但要注意实际上是以端口 (Port)作为地址的单元,因为一个外设不仅有数据 寄存器还有状态寄存器和控制命令寄存器,它们各需 要一个端口才能加以区分,故一个外设往往需要数个 端口地址。CPU用地址来选择外设。