DMA技术(8237A)习题
DMA技术(8237A)习题
选择题
1、DMA控制器8237有四种工作方式,其中传输率较高的一种是( B)
A)单字节传送方式 B)块传送方式
C)请求传送方式 D)级联方式
2、8086在响应外部HOLD请求后( D )。
A)转入特殊中断服务程序 B)进入等待周期
C)只接收外部数据 D)所有三态引脚处于高阻,CPU放弃对总线控制权。
3、在8237控制下进行“写传送”时,8237需先后向I/0接口和存储器发出的控制信号是( A )
A)IOR,MEMW B)IOR,MEMR
C)IOW,MEMW D)IOR,IOW
4、在 CPU 停机方式的 DMA 操作中, CPU 与总线的关系是 ( C )
A. 只能控制数据总线 B. 只能控制地址总线
C. 处于隔离状态 D. 能传送所有控制信号
5、在微机系统中采用 DMA 方式传输数据时,数据传送是( C )
A .由 CPU 控制完成 B .由执行程序(软件)完成
C .由 DMAC 发出的控制信号控制下完成的 D .由总线控制器发出的控制信号控制下完成的
6、CPU响应中断请求和响应DMA请求的本质区别是 ( B )
A.中断响应靠软件实现 B.响应中断时CPU仍然控制总线,而响应DMA请求时,CPU要让出总线
C.速度慢 D.控制简单
7、用于PC机管理直接存储器传输的接口芯片是( A )
A. 8237 B. 8251 C. 8255 D. 8253
8、在DMA传送方式中,对数据传递过程进行控制的硬件称为( C)
A.数据传递控制器 B.直接存储器
C.DMAC D.DMAT
9.在DMA方式下,将外设的数据传送到内存的路径为(C)
A.外设→总线→CPU→内存 B.外设→DMAC→内存
C.外设→数据总线→内存 D.外设→总线→DMAC→内存
10、DMAC在( B )接管总线的控制权。
A、 申请阶段 B、 响应阶段 C、 数据传送阶段 D、 结束阶段
判断题
1、DMA方式不能实现内存与接口之间数据的直接交换。( ✕ )
2.DMAC在系统中始终是受CPU控制的. ( ✕ )
3.DMA写是指将内存的数据写到外设. ( ✕ )
4.当DMA传送时CPU可以执行其它程序. ( ✓ )
5.DMA控制器可以和CPU同时工作. ( ✓ )
简答题
1.试说明在DMA方式下,传输单个数据的全过程。
答:内存往外设传输单个数据:
- 当一个接口准备就绪,要进行DMA传输时,该接口往DMA控制器发一个DMA请求;
- DMA控制器采样到DRED有效电平后,若屏蔽寄存器是开放的,便往控制总线上发一个总线保持请求;
- 若CPU允许让出总线,则发回一个总线保持允许信号;
- DMA控制器接到此信号后,就将其内部地址寄存器的内容送到地址总线上;
- 同时,DMA控制器往接口发一个DMA回答信号,并发出一个内存读信号和一个I/O写信号;
- 接口收到DMA回答信号后,撤除DMA请求信号,且内存把数据送到数据总线上
- 接口锁存数据总线上的数据后,一般往DMA控制器回送一个准备好信号;
- DMA控制器的地址寄存器内容加1或减1,字节计数器的值减1;
- DMA控制器撤除总线保持请求信号,CPU收回总线控制权。这样,就完成了对一个数据的DMA输出过程。
外设往内存传输单个数据的过程:
-
当一个接口中有数据要输入时,就往DMA控制器发一个DMA请求信号;
-
DMA控制器接到DMA请求后,(若屏蔽触发器是开放的)便往控制总线上发一个总线保持请求信号;
-
若CPU允许让出总线,则发回一个总线保持允许信号;
-
DMA控制器接到此信号后,就将其内部地址寄存器的内容送到地址总线上;
-
同时,DMA控制器往接口发一个DMA回答信号,并发一个I/O读信号和一个内存写信号;
-
接口收到DMA回答信号后,撤除DMA请求信号,并将数据送到数据总线上;
-
内存在收到数据后,一般往DMA控制器回送一个准备好信号;
-
DMA控制器的地址寄存器内容加1或减1,字节计数器的值减1;
-
DMA控制器撤除总线保持请求信号,CPU收回总线控制权。
这样,就完成了对一个数据的DMA输入过程。
2.为使DMA控制器正常工作,系统对DMA控制器进行初始化的过程分为哪两个主要方面?
- 将数据传输缓冲区的起始地址或结束地址送到地址寄存器中;
- 将传输的字节数或字数送到计数器中。
3.8237A什么时候作为主模块工作?什么时候作为从模块工作?在这两种情况下,各控制信号处于什么状态?
答:
- 当DMA控制器得到总线控制权,可以控制系统总线时,便成为总线主模块;当DMA控制器接受CPU对它的读写操作时,便成了总线从模块。
- 作总线主模块时:它会往总线上提供要访问的内存地址,地址的低八位放在A0 ~ A7上,地址的高八位放在DB0~DB7上,此时,AEN信号为有效的高电平,存储器读和I/O写有效,或者存储器写和I/O读有效。
- 作总线从模块时:8237A接收16位地址,用较高的12位地址产生片选信号,据此判断本片是否被选中,用低4位地址来选择内部寄存器。片选信号为有效的低电平,HRQ和AEN都为无效的低电平,I/O读与I/O写不同时有效。
4.8237A有哪几种工作方式?
答:单字节传输模式、块传输模式、请求传输模式、级联传输模式。
5.什么是DMA控制器的自动预置功能?
答:指的是这样一种功能:在计数值到达0时,当前地址寄存器和当前字节计数器会分别从基本地址寄存器和基本字节计数器中重新取得新值,从而进入下一个数据传输过程。
6.用8237A进行内存到内存的传输时,有什么特点?
答:为实现把一个数据块从内存的一个区域传到另一个区域,就要把源区的数据先送到8237A的暂存器中,然后再送到目的区。
特点:
- 每次内存到内存的传输要用到两个总线周期;
- 源地址寄存器的值可以通过对控制寄存器的设置而保持恒定,这样,就可以使同一数据传输到整个内存目的区域;
- 在操作过程中,由于暂存器用来存放被传输的数据,所以在整个传输完成后,如果CPU对暂存器进行读取,则只可读得所传输的最后一个字节。
7.8237A是怎样进行优先权管理的?
答:一片8237A有四个通道,可以分别连接四个I/O设备,这样,就需要解决优先级管理问题,8237A有两种优先级管理方法:
- 固定优先级方式——在这种方式下,通道0的优先级最高,通道1的优先级次之,通道3的优先级最低。
- 循环优先级方式——在这种方式下,通道的优先级依次循环。通过对优先级进行循环,可以防止某通道垄断总线的情况发生。
8.8237A的单字节传输模式是怎样工作的?
答:8237A每完成一个字节传输后,内部字节计数器便减1,地址寄存器的值加1或减1,接着,8237A释放系统总线,并在释放总线后,立即对DREQ端进行测试,一旦DREQ回到有效电平,则8237A又会立即发总线请求,在获得总线控制权后,又成为总线主模块控制进行DMA传输。
9.块传输模式与请求传输模式有什么相同和不同?
相同:
块传输模式与请求传输模式都可以连续进行多个字节的传输,只有当字节计数器减为0,从而在EOP端输出一个负脉冲,或者外部I/O接口往DMA控制器的EOP端送一低电平信号,从而强迫8237A结束DMA传输时,8237A才释放总线而结束DMA传输。
不同:
请求传输模式 只是在每传输一个字节后,都对DREQ端进行测试,若测试到DREQ端变为无效电平,则马上暂停传输,但测试过程仍然进行,当DREQ端又变成有效电平时,就在原来的基础上继续传输。
10. 按要求编写8237A的初始化程序段:设8237A的端口地址为0000~000FH。将四个通道的地址寄存器值均设为FFFFH。使通道0工作在单字节传输模式,写传输类型,地址加1变化,允许自动预置功能;使通道1、2、3都工作在单字节传输模式,读传输类型,地址减1变化,无自动预置功能。使DREQ为低电平有效,DACK为高电平有效,采用固定优先级管理方法,并启动8237A工作。
1 | MOV AL,04H |