第7章 DMA控制器

合集下载

第7章 DMA接口(1)

第7章 DMA接口(1)

AB0
BLE=0B HE=1 MEM AB1 AB2 AB3
“0”
A0 A1 A2
为简化设计,就直接将主片8237A设计 成16位通道,即将地址总线上的AB0空 着,AB1、2与8237A的A0、1相连。内 部16个寄存器的I/O端口号均为偶地址。 在进行DMA传送时,DMAC发出的地 址A15~0实际上是与地址总线AB16~1相 连,AB0置0(BHE=1)。这样,存储 器与外部设备之间是进行的16位数据 交换。
AEN
ADSTB
DB7~0
A7~0 DACK MEMR/IOR 2004/3 MEMW/IOW
A15~8
东北大学计算机系统研究 所
Intel 8237A DMA控制器
DMAC的工作方式
• 块传送方式:整个数据块传送期间,总线 一直被DMAC控制,直到计数寄存器的值由 0变成FFFFH,产生T/C信号。 • 单字节传送方式:也可以传送一个数据块, 但CPU至少可在两次DMA传送之间获得一个 完整的总线周期,即每传送一个字节,就 将总线控制权换给CPU。 • 请求传送方式:可连续传送,直到遇到T/C 或DREQ不再有效为止。
DMAC的工作过程
CPU对DMAC进行初始化,设定存 储器首地址和数据长度 外部设备向DMAC发DMA请求信号 (DREQ) DMAC向CPU发DMA请求(HOLD) CPU向DMAC发响应请求信号 (HLDA) CPU将总线控制权交给DMAC DMAC向外部设备发DMA应答信号 (DACK) 进行DMA传送,由DMAC发地址信 号和控制信号(循环) DMA传送结束,DMAC撤除请求 (HOLD),CPU重新控制总线
RESET DACK
74LS340~7

第7章 中断和DMA

第7章 中断和DMA

(3) 优先权判决电路从IRR中检测出优先级最 高的中断请求位,并将其与ISR中记录的正 在被CPU服务的中断进行优先级比较。当提 请的中断优先级高于正在服务的中断优先级 时,中断优先权判决电路就向控制逻辑发出 有效的中断请求信号。 (4) 当控制逻辑收到有效的中断请求信号时, 向CPU发出高电平信号INT,请求中断服务。 (5) 在中断允许的情况下(IF=1),CPU接受中 断请求INT,并发出中断响应信号INTA,对 8086/8088 CPU,将连续发出两个INTA脉 冲。
IMR7 IMR6 IMR5 IMR4 IMR3 IMR2 IMR1 IMR0 IMR
IRR7 IRR6 IRR5 IRR4 IRR3 IRR2 IRR1 IRR0 IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
IRR
④优先权判决器PR:实现中断优先级判别。 • 如果当前CPU没有执行中断服务,则优先 权判决器对IRR中的各个有效中断进行排 队判优,选出优先级最高的中断给予处理, 且将 优先权编码送ISR。 • 如果当前CPU正执行中断服务,则优先权 判决器将新的中断请求优先权编码与ISR 进行比较,如果优先权高给予处理(中断 嵌套),并置新中断的优先权编码到ISR。 否则不予响应。
③具有多种优先权管理模式; ④可直接向CPU提供中断类型码; ⑤单+5V电源供电。 7.2.1 8259的结构及功能 1.与系统总线接口电路 ①数据总线缓冲器:是8位双向的三态数据 缓冲总线接口,D0~D7。所有数据输入输 出都是通过该接口完成。 ②读写控制电路:负责对选中的内部寄存器 进行读写操作。
IRRn=1,表示该 引脚有中断请求
IRR7 IRR6 IRR5 IRR4 IRR3 IRR2 IRR1 IRR0 IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0

微型计算机技术及应用第四版_课后题答案

微型计算机技术及应用第四版_课后题答案

第一章微型计算机概述1.微处理器、微型计算机和微型计算机系统三者之间有什么不同?答:①微处理器是微型计算机的核心,是微型计算机的一部分。

它是集成在一块芯片上的CPU,由运算器和控制器组成。

②微型计算机包括微处理器、存储器、I/O接口和系统总线,是微型计算机系统的主体。

③微型计算机系统包括微型计算机、外设及系统软件三部分。

第二章 8086微处理器1.总线接口部件有哪些功能?请逐一进行说明。

答:1.总线接口部件的功能是负责与存储器、I/O端口传送数据。

2.具体讲:①总线接口部件要从内存取指令送到指令队列;② CPU执行指令时,总线接口部件要配合执行部件从指定的内存单元或者外设端口中取数据,将数据传送给执行部件,或者把执行部件的操作结果传送到指定的内存单元或外设端口中。

1.总线周期的含义是什么?8086/8088的基本总线周期由几个时钟组成?如一个CPU的时钟频率为24MHz,那么,它的一个时钟周期为多少?一个基本总线周期为多少?如主频为15MHz呢?答:1.总线周期的含义是总线接口部件完成一个取指令或传送数据的完整操作所需的最少时钟周期数。

2.8086/8088的基本总线周期由4个时钟周期组成。

3.当主频为24MHz时,Tφ=1/24MHz≈41.7ns,T总=4Tφ≈167ns。

4.当主频为15MHz时,Tφ=1/15MHz≈66.7ns,T总=4Tφ≈267ns。

1.CPU启动时,有哪些特征?如何寻找8086/8088系统的启动程序?答:1.CPU启动时,有以下特征:①内部寄存器等置为初值;②禁止中断(可屏蔽中断);③从FFFF0H开始执行程序;④三态总线处于高阻状态。

2.8086/8088系统的启动程序从FFFF0H单元开始的无条件转移指令转入执行。

1.在中断响应过程中,8086往8259A发的两个信号分别起什么作用?答:第一个负脉冲通知外部设备的接口,它发出的中断请求已经得到允许;外设接口收到第二个负脉冲后,往数据总线上放中断类型码,从而CPU得到了有关此中断请求的详尽信息。

微型计算机原理及应用教程第7章 中断与DMA技术

微型计算机原理及应用教程第7章  中断与DMA技术
第7章中 断与DMA技术
7.1 中断原理
7.2 8086/8088 CPU 中断系统 7.3 可编程中断控制器8259A 7.4 8259A的应用举例 7.5 DMA控制器
引 言
中断在计算机中是非常重要的。中断提高了计算机的并
行度和处理器的效率,改善了计算机的性能。它解决了CPU
与各种外围设备之间的速度匹配问题。 中断在故障检测、实时处理与控制、分时系统、多级系 统与通信、并行处理、人机交互等诸多领域都得到了广泛应 用和不断发展。 本章就中断的管理、 8086/8088 CPU 中断系统、可编程 中断控制器8259进行介绍。
挥了CPU高速性的特点。 实现实时处理:例如键盘、打印机、显示器的使用等 实现故障处理:电源故障、除法溢出、非法操作、存储 器出错等
中断系统应具有以下功能:
中断响应:当中断源发出中断请求后,CPU能够决定是否 暂时中止当前程序的执行,去响应 该中断请求。 断点保护: CPU在响应中断请求后,保护被暂时中止的当 前程序的运行环境和结果(例如:下一条指令地址的CS和
7.1.3中断优先权与中断嵌套
1.中断优先权
在实际系统中,常常遇到多个中断源同时请求中断的情况, 这时 CPU 必须确定首先为哪一个中断源服务,以及服务的 次序。解决的方法是用中断优先排队的处理方法。即根据中 断源要求的轻重缓急,先排好中断处理的优先次序,即优先
级(又称优先权)。CPU先响应优先级最高的中断请求。对
7.1
中断原理
当 CPU 与外设交换信息时,若用查询的方式,则 CPU 就
要浪费很多时间去等待外设,这样就存在一个快速的 CPU 与 慢速的外设之间的矛盾,这也是计算机在发展过程中遇到的 严重问题之一。为解决这个问题,一方面要提高外设的工作 速度;另一方面就必须要使用中断处理。

DMA控制器

DMA控制器

西北师范大学计算机科学系http:// 版权声明本电子教案内容为西北师范大学计算机科学系微机原理与汇编语言课讲义,大家可以自己个人使用。

但由于本教案同时也部分使用了其他人所写讲义或CAI课件的内容,因此禁止使用本材料进行任何商业性或赢利性活动。

同时作者不承担由于使用本教案而引发的其他连带责任。

转载时请保留本版权声明。

-索国瑞suogr@DMA控制器❑DMA基本概念❑DMA控制器82371 DMA 基本概念利用中断进行数据传送,可以大大提高CPU 的利用率。

例如,某外设平均每 1 秒钟可以传送100 个字节。

如果采用查询方式,在这1 秒钟之内CPU 就要全部用于查询和传送;如果用中断传送方式的话,假定CPU 每传送一个字节的中断服务程序需要100μs,那么传送100 字节,CPU需用10 ms,即占1 秒的1/100。

于是,其余99/100的时间CPU就可以用于执行主程序。

但是中断传送仍然是由CPU 通过程序来传送数据。

每次都要完成保护断点,保护现场等操作,要执行多条指令。

每条指令都需要花费CPU的时间,这对于一个高速I/O 设备,以及成组交换数据的情况,例如磁盘与内存间的信息交换,就显得速度太慢,操作太烦琐。

所以希望用硬件在外设与内存间直接进行数据交换(DMA,Direct Memory Access),而不通过CPU。

这样数据传送速度的上限就取决于存储器和外设的数据传输速度。

但是,通常系统的地址总线和数据总线以及一些控制信号线(例如M/IO#、RD #、WR#等)都是由CPU 管理的。

……在DMA 方式时,希望CPU把总线控制权让出来(即使CPU 连到这些总线上的引脚处于第三态:高阻状态),由DMA 控制器来接管总线。

DMA 控制器将控制传送的字节数,判断DMA 传送是否结束,以及发出DMA 结束等信号。

通常DMA 的工作流程如图8-17所示;实现上述操作的框图,如图8-18所示。

当外设把数据准备好以后,发出一个选通脉冲,使DMA请求触发器置1。

微型计算机原理与接口技术第7章

微型计算机原理与接口技术第7章

6位数码管接口电路
7FH
位 锁 存 器 ( 段 选 ) D7 D6 D5 D4 D3 D2 D1 D0 0 1 1 1 1 1 1 1 h g f e d c b a 8 D7-D0
CS (201H选中)
20H 位
D7-D0 锁 存 器 ( 位 选 )
D0 0 0 0 0 0 D 1
5
位 反 相 驱 动 器
DMA写传送: I/O端口信息 系统RAM某单元。 存储单元读 / 写传送: 在DMAC控制下, 实现系统 RAM RAM。 注意:在PC系列机中禁止RAM RAM传送。 4. DMA传送的过程
AB DB CB
HRQ DREQ
HOLD
总线保持请求
总线响应
DMA 请求 DMA 响应
注意: I/O 指令只能在端口和AL, AX, EAX之间 交换信息, 用DX间址, 但不能使用方括号, 即不能写成: IN AL, [DX]。
7.2 微机系统与外设交换信息的方式
微机系统与 I/O 端口的信息交换有四种方式: 无条件传送 中断方式 查询方式 DMA方式
采用何种方式与接口的硬件电路有直接关系
查询式输出接口示意图 数据 锁 数据总线 存 器 数据口选中 (8) 状态标志
Q D
输 出 设 备
IOW 地址译码器 地址总线
+5V
IOR
状态口选中
ACK
R
―0‖为空闲
接数据线D0位
查询式数据输出核心程序 设状态口地址=200H=数据口地址
TSCAN: MOV IN TEST JNZ MOV MOV OUT
HOLD
总线请求 总线响应
HRQ
DREQ

微机原理第7章练习题及答案

微机原理第7章练习题及答案

第7章输入/输出与中断一、自测练习题㈠选择题1.一微机系统有10根地址线用于I/O端口寻址,因而具有I/O空间的范围是( )字节。

A) 1024 B) 10K C) 0.5M D) 1M2.8086CPU读/写一次存储器或I/O端口所需的时间称为一个( )。

A) 总线周期 B) 指令周期 C) 时钟周期 D) 基本指令执行时间3.微型计算机的输入/输出有三种不同的控制方法,其中以( )控制的输入/输出是微机进行I/O的一种最主要的控制方式。

A) 程序控制 B) 中断控制C) DMA控制D) 以上均可4.程序查询I/O方式的工作流程是按( )的次序完成一个字符的传输。

A) 写数据端口,读/写控制端口B) 读状态端口,读/写数据端口C) 写控制端口,读状态端口,写数据端口D) 随I/O接口的具体要求而定5.在CPU与外设的I/O传送控制方式中,效率高、实时性强的方式是( )。

A) 同步传送 B) 查询传送 C) 无条件传送 D) 中断传送6.在CPU与外设的I/O传送控制方式中,传送速度最快的方式是( )。

A) 无条件传送 B) 查询传送 C) 中断传送 D) DMA传递7.用具有两个状态(“0”和“1”态)的一组开关作简单输入设备时,应采用( )传送方式来输入信息。

A) 无条件B) 查询C) 中断D) DMA8.用一组发光二极管作为简单输出设备时,应采用( )传送方式来输出信息。

A) DMA B) 无条件C) 查询D) 中断9.在微机系统中引入中断技术,可以( )。

A) 提高外设速度B) 减轻主存负担C) 提高处理器的效率D) 增加信息交换的精度10.CPU响应中断请求的时刻是在( )。

A) 执行完成正在执行的程序以后 B) 执行完正在执行的指令以后C) 执行完本时钟周期以后D)执行完正在执行的机器周期以后11.8086/8088CPU向应两个硬中断INTR和NMI时,相同的必要条件是( )。

A) 允许中断B) 当前I/O操作执行结束C) 总线空闲D) 当前访问内存操作结束12.在微型计算机系统中,高速外设与内存储器进行批量数据传送时,应采用( )。

第7章输入输出习题参考解答

第7章输入输出习题参考解答

第7章思考题与习题参考答案1.计算机的I/O系统的功能是什么?它由哪几个部分组成?答:计算机的I/O系统,主要用于解决主机与外部设备间的信息通讯,提供信息通路,使外围设备与主机能够协调一致地工作。

计算机的I/O系统由I/O硬件和I/O软件两大部分组成。

其中I/O硬件包括:系统总线、I/O接口、I/O设备及设备控制器。

I/O软件包括:用户的I/O程序、设备驱动程序、设备控制程序。

2.I/O硬件包括哪几个部分?各部分的作用是什么?答:I/O硬件包括:系统总线、I/O接口、I/O设备及设备控制器。

系统总线的作用是为CPU、主存、I/O设备(通过I/O接口)各大部件之间的信息传输提供通路。

I/O接口通常是指主机与I/O设备之间设置的一个硬件电路及其相应的控制软件。

它用于在系统总线和外设之间传输信号,并起缓冲作用,以满足接口两边的时序要求。

I/O设备的作用是为主机与外部世界打交道提供一个工具。

设备控制器用来控制I/O设备的具体动作,不同的I/O设备需要完成的控制功能不同。

3.什么是用户I/O程序?什么是设备驱动程序?什么是设备控制程序?答:用户I/O程序是指用户利用操作系统提供的调用界面编写的具体I/O设备的输入输出程序。

例如用户编写的用打印机输出文本的程序。

设备驱动程序是一种可以使计算机和设备通信的特殊程序。

可以说相当于操作系统与硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。

设备控制程序就是驱动程序中具体对设备进行控制的程序。

设备控制程序通过接口控制逻辑电路,发出控制命令字。

命令字代码各位表达了要求I/O设备执行操作的控制代码,由硬件逻辑解释执行,发出控制外设的有关控制信号。

4.说明设计I/O系统的三个要素的具体内容。

答:设计I/O系统应该考虑如下三个要素:①数据定位: I/O系统必须能够根据主机提出的要求进行设备的选择,并按照数据在设备中的地址找到相应的数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可编程的最大数据传输数目为65536。
2、DMA框图
二、DMA的功能描述
DMA控制器和Cortex-M3核共享系统数据线执行 直接存储器数据传输。而1个DMA请求至少占用2个 周期的CPU访问系统总线时间。为了保证CortexM3核的代码执行的最小带宽,DMA控制器总是在2 个连续的DMA请求间释放系统时钟至少1个周期, 即保证在每次DMA周期后,都要把总线的使用权交 给CPU,以便CPU能做至少1次的总线访问。
最高优先级 高优先级 中等优先级 低优先级
(2)硬件:如果2个请求有相同的软件优先 级,则拥有较低编号的通道比拥有较高编 号的通道有较高的优先权。
3、DMA通道
传送数据量:可通过对DMA_CCRx寄存器中的PSIZE 和MSIZE位编程来设置传输个数(最大传输数目为 65535),每次传输后自动递减。
地址指针增量:通过设置DMA_CCRx寄存器中PINC 和MINC标志位,外设和存储器的地址指针在每次 传输后可以有选择地完成自动增量,增量值取决 与所选的数据宽度为1、2或4。双方的第一个传输 的地址存放在DMA_CPARx/DMA_CMARx寄存器中。
通道配置为非循环模式时,在传输结束后(即 传输数据量变为0)将不再产生DMA操作。
USART2_TX
TIM1_G SPI2_TX TIM2_CC1
TIM2_CC2 TIM2_CC4
I2C2_RX I2C2_TX
TIM3_CC1 TIM4_CC3
TIM1_CC3 TIM4_UP
循环模式配置方法:
在DMA_CCRx寄存器中将CIRC位置1,循环模式 功能被启动。
6、存储器到存储器模式 DMA通道的操作可以在没有外设请求的情况下
进行,这种操作就是存储器到存储器模式;存储 器到存储器模式不能与循环模式同时使用。只有 当DMA_CNDTRx寄存器变为0时,DMA传输结束。 存储器到存储器模式配置方法: 设置了DMA_CCRx寄存器中的MEM2MEM 位 设置了DMA_CCRx寄存器中的EN位启动DMA通道
含未完成的操作数目)寄存器做一次递减操作。 注: DMA_CMARx为DMA通道x的存储器地址寄存器;
DMA_CNDTRx为DMA通道x传输数量寄存器。
2、仲裁器
仲裁器根据通道请求的优先级来启动外设/ 存储器的访问。优先权管理分2个阶段:
(1)软件:每个通道的优先权可以在 DMA_CCRx(通道配置寄存器)中设置,有4 个软件等级:
第7章 DMA控制器
2020年4月22日星期三
直接存储器存取用来提供在外设和存储器之间 或者存储器和存储器之间的高速数据传输。无须 CPU任何干预,通过DMA数据可以快速地移动。这就 节省了CPU的资源。
DMA控制器有7个通道,每个通道专门用来管理 来自于一个或多个外设对存储器访问的请求。还有 一个仲裁器来协调各个DMA请求的优先权
支持循环的缓冲器管理;
每个通道都有3个事件标志(DMA半传输,DMA传输 完成和DMA传输出错),这3个事件标志通过“或” 可产生一个单独的中断请求;
可完成存储器和存储器间的传输,外设和存储器 间的传输,存储器和外设间的传输的传输;
闪存SRAM、外设的SRAM、APB1和APB2外设均可作 为访问的源和目标;
如果发生更多的请求时,外设可以按上述描述来 启动下次DMA过程。
每个DMA传送由3个操作组成: 从外设数据寄存器或者从DMA_CMARx寄存器指定地
址的存储器单元执行读操作。 存数据到外设数据寄存器或者存数据到DMA_CMARx
寄存器指定地址的存储器单元。 执行一次DMA传送之后,DMA_CNDTRx(该寄存器包
1、DMA处理过程
当发生一个事件后,外设要向DMA控制器发送一个 DMA请求信号。
DMA控制器可根据通道的优先权来处理外设的请求 。
当DMA控制器响应请求并开始访问外设的时候,它 立即发送一个应答信号给外设。
当外设从DMA控制器得到应答信号时,外设立即释 放DMA的请求,同时DMA控制器也撤销应答信号。
4、通道配置过程下面是配置DMA通道的过程 在DMA_CPARx寄存器中设置外设寄存器的地址; 在DMA_CMARx寄存器中设置数据存储器的地址; 在DMA_CNDTRx寄存器中设置要传输的数据量; 在DMA_CCRx寄存器的PL[1:0]位中设置通道的优先级; 在DMA_CCRx寄存器中设置数据传输的方向、循环模式
一、DMA的构成
1、 DMA的主要特性 7个独立的可配置的通道; 每个通道都直接连接专用的硬件DMA请求,每个通
道都支持软件触发,所有功能可通过软件来配置; 在7个请求间的优先权可以通过软件编程设置(共有
四级:很高、高、中等和低),在相等优先权时由 硬件决定(即请求0优先于请求1,依此类推) ; 独立的源和目标数据区的传输宽度为字节、半字、 全字;
、外设和存储器的增量模式、外设和存储器的数据宽 度、传输一半产生中断或传输完成产生中断; 设置DMA_CCRx寄存器的ENABLE 位,启动该通道。
5、循环模式
循环模式用于处理循环缓冲区和连续的数据传 输(如ADC的扫描模式)。当启动了循环模式时,数 据传输的数目变为0时,将会自动地被恢复成配置 通道时设置的初值,DMA操作将会继续进行。
7、DMA 请求映像
从外设(TIMx、ADC、SPIx、I2Cx和USARTx) 产生的7个请求,通过“或门”输入到DMA控制 器,这意味着同时只能有一个请求有效。参见 下图的DMA请求映像。
外设的DMA请求,可以通过设置相应外设寄 存器中的控制位,被独立地开启或关闭。
DMA请求映像
USART1_TX
ADC1
USART3_TX
USART3_RX
TIM4_CC2
TIM2_CC3
TIM2_UP TIM4_CC1
TIM1_CC1
TIM3_CC3 TIM3_CC4 TIM1_CC2 TIM1_CC4
SPI1_RX SPI1_TX
TIM3_UP SPI2_RX
TIM1_CCU TIM1_UP USART1_RX USART2_RX
相关文档
最新文档