
1.试说明在DMA方式时内存往外设传输数据的过程。
2.对一个DMA控制器的初始化工作包括哪些内容?
3.DMA控制器8237A什么时候作为主模块工作?什么时候作为从模块工作?在这两种情况下,各控制信号处于什么状态?
4.8237A有哪几种工作方式?各自用在什么场合?
5.什么叫DMA控制器的自动预置功能?这种功能是用得很普遍的,举一个例子说明它的使用场合。
6.用DMA控制器进行内存到内存的传输时,有什么特点?
7.DMA控制器8237A是怎样进行优先级管理的?
8.设计8237A的初始化程序。8237A的端口地址为0000-000FH,设通道0工作在块传输模式,地址加1变化,自动预置功能;通道1工作于单字节读传输,地址减1变化,无自动预置功能;通道2、通道3和通道1工作于相同方式。然后对8237A设控制命令,使DACK为高电平有效,DREQ为低电平有效,用固定优先级方式,并启动8237A工作。
9.CPU对DMA控制器的总线请求响应要比对中断请求响应快,请分析其原因。
10.8237A在进行单字节方式DMA传输和块方式DMA传输时,有什么区别?
11.什么是DMA传送?DMA传送与中断方式传送的基本区别是什么?
12.8237A在实行存储器与存储器之间传输时,与存储器和外设之间的传输有什么不同?
13.8237A采用压缩时序方式,试估算在最好情况下传送10KB数据需要多少时间?再试用最高效的程序衽同样数量数据的传输,大约要多少时间?(时钟都以5MHz算)
14.8237A为了在16位以上的微机系统中应用,必须设计适当的页面地址寄存器。如个人计算机中那样设计,请问:
(1)如何知道什么时候该换页?如何换页?
(2) 换页时应对DMA控制器作什么处理?
(3) 如果通道0也需要页面地址,如何获得RA、RB的控制信号?
15.在个人计算机中8237A的通道2为什么设置成单字节传送?如果用成块传送会发生什么问题?如何解决?
16.ADSTB信号与AEN有什么不同?它们各自起什么作用?
17.一个系统需要接6个用DMA控制的外设,如何用8237A实现这个系统的连接,请画出连接图,并说明方式控制字应如何设置。如用固定优先级请列出你所设计方案中6个设备的优先级排列。
18.用简化框图形式表示一个DMA系统的基本构成,请标明DMA控制器与CPU、系统总线及外设连接的关键信号。
19.8237A上设有一个READY控制端以适应慢速存储器或外设的需要,这是否与DMA的快速传送宗旨相违背?为什么?
20.DMA操作过程中,DMA控制器将代替CPU控制系统总路线,根据它的这一任务,请列出DMA控制器必须具有的几项功能。
21.单字节传送、成组传送与请示传送三种DMA方式在传送方式、DMA请示方面有什么差别?
22.图中是一个DMA系统框图,DMA控制器是个可编程器件,外设也由一个可编程接口电路控制。请在各框图间连上必要的线,并标明它胶的名称。(附图6-55)
7.1试说明在DMA方式时内存往外设传输数据的过程。
答:当一个接口要由内存往其输出数据时,就往DMA控制器发一个DMA请求;DMA控制器接到请求以后,便往控制总线上发一个总线请求;若CPU允许让出总线便发出一个总线允许信号;DMA控制器接到此信号后,就将地址寄存器的内容送到地址总线上,同时往接口发一个DMA回答信号并发一个I/O写信号和一个内存读信号;内存接到读信号后将数据送到数据总线,I/O写信号将数据送到接口,并撤除DMA请求信号,于是DMA控制器的地址寄存器的内容加1或减1,计数器的值减1,而且撤除总线请求信号,就完成了对一个数据的DMA输出传输。
7.2对一个DMA控制器的初始化工作包括哪些内容?
答:① 将数据传输缓冲区的起始地址或者结束地址送到地址寄存器中;
② 将传输的字节数或字数送到计数器中。
③ 通过模式寄存器设置工作方式等。
7.3DMA控制器8237A什么时候作为主模块工作?什么时候作为从模块工作?在这两种情况下,各控制信号处于什么状态,试作说明。
答:1.在外设向8237A发DMA请求,8237A向CPU发总线请求得到CPU总线允许时,获得了总线控制权就作为总线主模块工作。
2.当CPU把数据送到8237A的寄存器或者从8237A的寄存器取出时,8237A就象I/O接口一样作为总线的从模块工作。
3.主模块工作时的控制信号:DREQx有效,HRQ高,HLDA高,DACKx有效,AEN高,、或、有效,16位地址送地址总线。从模块工作时的控制信号: 和HRQ为低,A3~A0为某一确定值,或有效。
7.48237A有哪几种工作模式?各自用在什么场合?
答:1.8237A有4种工作模式:单字节传输模式、块传输模式、请求传输模式、级联传输模式。
2.单字节传输模式用于单个字节的DMA输入/输出;块传输模式用于连续进行多个字节的传输;请求传输模式用于受接口控制的连续字节传输;级联传输模式用于多片主从式DMA系统中的主片的工作模式。
7.5什么叫DMA控制器的自动预置功能?这种功能是用得很普遍的,举一个例子说明它的使用场合。
答:1.自动预置功能就是DMA控制器某通道在当前字节计数器的计数值到达0时,当前地址寄存器和当前字节计数器会从基本地址寄存器和基本字节计数器中自动重新取得新值,从而又可以进入下一个数据传输过程。
2.如IBM PC/XT中,8237A的通道0用于对动态RAM进行刷新,就设置为自动预置功能。从头到尾进行一遍刷新后,就又可以自动重新再来若干遍刷新,保持数据不从动态RAM中丢失。用于同一内存地址的数据块重复传输中。
7.6用DMA控制器进行内存到内存的传输时,有什么特点?
答:固定用通道0的地址寄存器存放源地址,而用通道1的地址寄存器和字节计数器存放目的地址和计数值。传输时,目的地址和计数值象通常一样进行加1减1操作,源地址的值可通过控制寄存器的D1位设置,若为1则不变。另外用暂存器作为数据传输时DMA的数据暂存用。另外,DMA控制器进行内存到内存的传输是通过设置控制寄存器的D0=1来设置的。
7.7DMA控制器8237A是怎样进行优先级管理的?
答:8237A有两种优先级管理方式:固定优先级管理方式,优先级高低固定为:通道0、1、2、3。循环优先级管理方式,通道的优先级依次循环,当某通道进行一次传输后,其优先级变为最低,而其相邻的高一号通道的优先级变为最高。
7.8设计8237A的初始化程序。8237A的端口地址为0000~000FH,设通道0工作在块传输模式,地址加1变化,自动预置功能;通道1工作于单字节读传输,地址减1变化,无自动预置功能;通道2、通道3和通道1工作于相同方式。然后对8237A设控制命令,使DACK为高电平有效,DREQ为低电平有效,用固定优先级方式,并启动8237工作。
答: MOV AL,04H
MOV DX,DMA+8 ;DMA为端口首地址0000H,DMA+8为控制寄
;存器端口号
OUT DX,AL ;输出控制命令,关闭8237A
MOV AL,00
MOV DX,DMA+0DH ;DMA+0DH为总清命令端口号
OUT DX,AL ;发总清命令(即复位命令)
MOV DX,DMA+0BH ;DMA+0BH为模式寄存器的端口号
MOV AL,98H
OUT DX,AL ;对通道0选择模式,模式字为98H:块读传输模
;式,地址加1变化,自动预置功能
MOV AL,69H
OUT DX,AL ;对通道1选择模式,模式字为69H:单字节读传
;输,地址减1变化,无自动预置功能
MOV AL,6AH
OUT DX,AL ;对通道2选择模式,模式字为6AH:功能同通道1
MOV AL,6BH
OUT DX,AL ;对通道3选择模式,模式字为6BH:功能同通道1
MOV DX,DMA+8
MOV AL,0C0H ;控制字格式为C0H: DACK高电平有效,DREQ
;低电平有效,固定优先级,启动工作
OUT DX,AL
MOV DX,DMA+0FH ;DMA+0FH为综合屏蔽命令端口号
MOV AL,0
OUT DX,AL ;去除四个通道的屏蔽
7.9CPU对应DMA控制器的总线请求响应要比中断请求响应快,请分析其原因。
答:当CPU检测到总线请求信号后在当前总线周期的T4状态或TI状态的下降沿就可响应而出让总线,并发总线响应信号HLDA。而当CPU检测到INTR请求时,则必须要等到当前指令执行完后才能发第一个负脉冲,而且中断响应需两个负脉冲才可组成一个完整的中断响应信号。因此总线请求响应要比中断请求响应快。
7.108237A在进行单字节方式DMA传输和块方式DMA传输时,有什么区别?
答:区别在于:单字节方式时DMA每完成一个字节传输后,便释放系统总线,CPU至少可占用一个总线周期。块传输方式时,只有当字节计数器减为0,从而在端输出一个负脉冲或者外部I/O接口往DMA控制器的端送一个低电平信号时,8237A才释放总线而结束传输。
11.什么是DMA传送?DMA传送与中断方式传送的基本区别是什么?
DMA方式 采用了外设和内存直接交换数据的方式。只有在一段数据传送结束时,这两种方式才发出中断信号要求CPU做善后处理,从而大大减少了CPU的工作负担。
1.普通中断方式是在数据缓冲寄存器满后,发中断请求,CPU进行中断处理
DMA方式则是以数据块为单位传输的,在所要求传送的数据块全部传送结束时要求CPU进行中断处理,大大减少了CPU进行中断处理的次数
2.普通中断方式的数据传送是由设备到CPU再到内存,或者相反。
DMA方式的数据传送则是将所传输的数据由设备直接送入内存,或是由内存直接送到设备。
