本章内容提要:
DMA的工作原理及工作过程
DMA控制器
8237A的初始化编程
DMA的应用举例
第八章直接存储器存取DMA
DMA的工作原理及工作过程
数据在 I/O接口与存储器之间传送,不经 CPU的干预,而是在专用硬件电路的控制下直接传送。这种方式称为直接存储器存取(direct memory access,DMA)。为了实现这种工作方式而设计的专用接口电路,称为DMA控制器(DMAC)。例如,Intel公司的8257、8237,Zilog公司的28410,Motorola公司的MC6844等。
DMA控制方式的主要优点是:速度快,数据传送的速率只受存储器访问的限制。由于CPU不参与操作,因此省去了CPU取指令、指令译码、取数和送数等操作。DMA控制方式的主要缺点是:硬件电路比较复杂。
DMA的传送原理
直接存储器存取(DMA)方式,顾名思义,就是用硬件实现存储器与存储器之间或存储器与I/O设备之间直接进行高速数据传送,不需要CPU的干预。这种方式通常用来传送数据块。因此,DMA方式在微机中常用来作为视频显示、磁盘或光盘和存储器之间的接口。
DMA传送包括:RAM→I/O端口的DMA读传送;I/O端口→RAM的DMA写传送;RAM→RAM的存储单元传送。
DMA传送的基本特点是不经过CPU,不破坏CPU内各寄存器的内容,直接实现存储器与I/O设备之间的数据传送。在IBM PC系统中,DMA方式传送一个字节的时间通常是一个总线周期,即5个时钟周期。CPU内部的指令操作只是暂停这个总线周期,然后继续操作,指令的操作次序不会被破坏。所以DMA传送的方式特别适合用于外部设备与存储器之间高速成批的数据传送。
DMA的传送原理
DMA的工作过程
DMA传送过程如图所示。从图中可以看出,系统总线分别受到CPU和DMAC这两个器件的控制,即CPU可以向地址总线、数据总线和控制总线发送信息,DMAC也可以向地址总线、数据总线和控制总线发送信息。但是,在同一时间,系统总线只能受一个器件控制。当CPU控制总线时,DMAC必须与总线脱离;而当DMAC控制总线时,CPU必须与总线脱离。因此,CPU与DMAC之间必须有联络信号。
DMA的工作过程
DMA的工作过程
DMA传送的工作过程如下:
1)I/O端口向DMA控制器发出DMA请求,请求数据传送。
2)DMA控制器在接到I/O端口的DMA请求后,向CPU发出总线请求信号,请求CPU脱离系统总线。
3)CPU在执行完当前指令的当前总线周期后,向DMA控制器发出总线响应信号。
4)CPU随即和系统的控制总线、地址总线及数据总线脱离关系,处于等待状态,由DMA控制器接管这3个总线的控制权。
5)DMA控制器向I/O端口发出DMA应答信号。
6)DMA控制器把进行DMA传送涉及到的RAM地址送到地址总线上。如果进行I/O端口→RMA传送,DMAC向I/O端口发出I/O读命令,向RAM发出存储器写命令;如果进行RAM→I/O端口传送,DMAC向RAM发出存储器读命令,向I/O端口发出I/O写命令,从而完成一个字节的传送。
DMA的工作过程
7)当设定的字节数传送完毕,DMA传输过程结束,也可以由来自外部的终止信号迫使传输过程结束。当DMA传送结束后,DMA控制器就将总线请求信号变成无效,并放弃对总线的控制,CPU检测到总线请求信号无效后,也将总线响应信号变成无效,于是,CPU重新控制三总线,继续执行被中断的当前指令的其他总线周期。
DMA用硬件在外设与内存之间直接进行数据交换。通常系统的数据和地址总线以及一些控制信号线(如IO/M、RD、WR等)是由CPU管理的,在DMA方式,就要求CPU让出总线(也就是将这些总线置为高阻状态),而由DMA控制器(DMAC)接管总线。通常,大部分DMA都有3种DMA传送方式:单字节传送方式,块传送方式和请求传送方式。
DMA的工作过程
DMA具有下列特点:
1)它使主存既可被CPU访问,又可被外设直接访问。 2)当传送数据块时,主存地址的确定、传送数据的计数控制等都用硬件电路直接实现。
3)主存中要开设专用缓冲区,及时供给和接收外设的数据。
4)DMA传送速度快,可使CPU和外设并行工作,提高了系统的效率。
5)DMA在开始前和结束后要通过程序和中断方式进行预处理和后处理。
DMA控制器
8237A的外部引脚
8237A是微机系统中实现DMA功能的大规模集成电路控制器。PC/XT使用一片8237A,PC/AT使用两片8237A,在高档微机中常使用功能芯片取代8237A,
第八章直接存储器存取DMA 来自淘豆网m.daumloan.com转载请标明出处.