热心网友
什么是DMA? DMA(Direct Memory Access) ,即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,从内存到适配卡或从一段内存到另一段内存。DMA技术的重要性在于,利用它进行数据传送时不需要CPU的参与。每台电脑主机板上都有DMA控制器,通常计算机对其编程,并用一个适配器上的ROM(如软盘驱动控制器上的ROM)来储存程序,这些程序控制DMA传送数据。一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。 在DMA传送开始的短暂时间内,基本上有两个处理器为它工作,一个执行程序代码,一个传送数据。利用DMA传送数据的另一个好处是,数据直接在源地址和目的地址之间传送,不需要中间媒介。如果通过CPU把一个字节从适配卡传送至内存,需要两步操作。首先,CPU把这个字节从适配卡读到内部寄存器中,然后再从寄存器传送到内存的适当地址。DMA控制器将这些操作简化为一步,它操作总线上的控制信号,使写字节一次完成。这样大大提高了计算机运行速度和工作效率。 计算机发展到今天,DMA已不再用于内存到内存的数据传送,因为CPU速度非常快,做这件事,比用DMA控制还要快,但要在适配卡和内存之间传送数据,仍然是非DMA莫属。要从适配卡到内存传送数据,DMA同时触发从适配卡读数据总线(即I/O读操作)和向内存写数据的总线。激活I/O读操作就是让适配卡把一个数据单位(通常是一个字节或一个字)放到PC数据总线上,因为此时内存写总线也被激活,数据就被同时从PC总线上拷贝到内存中。 对于每一次写操作,DMA控制器都控制地址总线,通知应将数据写到哪段内存中去。 DMA控制数据从内存传送到适配卡的方法与上面类似。对每一个要传送的单位数据,DMA控制器激活读内存和I/O写操作的总线。内存地址被放到地址总线上,像从适配卡到内存传送数据一样,以数据总线为通道,数据从源地址直接传送到目的地址。 DMA从DMA请求线(DREQ)上接收DMA请求,正像中断控制器从中断请求线(IRQ)上接收中断请求一样。 一个典型的从适配卡到内存的数据传送是这样进行的,首先,对DMA控制器编程,写入数据要到达的内存地址和要传送的字节数。适配器可以开始传送数据时,它将激活DREQ线,与DMA控制器连通。DMA控制器在与CPU取得总线控制权后,输出内存地址,发送控制信号,使得一个字节或一个字从适配器读出并写入相应内存中,然后更新内存地址,指向下一个字节(或字)要写入的地址,重复上面的操作,直至数据传送完毕。对控制器进行不同编程,就可以实现单字节传送(即每传送一个字节都要求一个DREQ信号)或块数据传送(即全部数据传送只需要一个DREQ信号)。 如果你要往计算机中插一块适配卡,而且适配卡使用DMA,通常安装程序会让你选择一个DMA通道,设定DIP开关或跳线,来为相应适配器设置DMA通道。尽管从理论上讲,只要不是同时使用DREQ线,不同的适配卡可以共享这条线的,但是按常规,我们最好为每个适配卡单独安排一个DMA通道,这样就可以保证不会发生DMA冲突。附表是DMA的缺省分配情况。通道 功能 通道 功能 O 空闲 4 用于级联DMA控制器 1 空闲 5 空闲 2 软盘 6 空闲 3 空闲 7 空闲 从中可以看出,DMA通道2和4已被占用,在大多数微机上,通道1、3、5、6和7可由你任意分配。我们平时最好对自己的计算机上DMA通道的分配情况记录下来,以免我们向计算机增加新硬件时出现两个适配卡共用一个通道,导致冲突。DMA---Direct Memory Access,直接内存访问,是一种数据传输模式。DMA方式下由于不直接访问计算机的CPU,而直接在RAM与设备之间传输,因而大大提高了数据传输速度。 。
热心网友
Directly memory access channelBy:XIXI。QUMITAC-MSH-RBDRRT PC hardware architecture。DMA控制器(8237/8237-2)Integrated inside south bridge or ICH。DMA Channel Function:A:能接收外设的请求,向CPU发出DMA请求信号B:当CPU发出回应信号之后,接管对总线的控制,进入DMA方式C:能寻址存储器,即能输出地址信息和修改地址D:能向存储器和外设发出相应的R/W信号E:能控制传送的字节数,判断DMA传送是否结束F:在DMA传送结束以后,能结束 DMA请求信号,释放总线控制,使CPU恢复正常工作DMA控制器(8237/8237-2)Integrated inside south bridge or ICH。CHIP8237/8237-2 FUNCTION:A:一个芯片有2个控制器,每个控制器有四个DMA通道B:每个通道的请求都可以分别enable and disableC:每个请求的优先权不同,可以固定,也可以通过编程控制D:可以在存储器与外设、存储器的两个区域间进行数据交换E:8237的DMA传输有以下四中方式:*单字节传输方式*数据块传输方式*请求传输方式*级联方式F:允许外界用EOP#(end of processor)来终止DMA的传输G:8237可以级联,任意扩展通道数DMA控制器(8237/8237-2)Integrated inside south bridge or ICH。8237的结构:1:时序控制逻辑块提供产生包括DMA传送、请求、结束所需的内部时序及外部信号2:程序命令控制块对命令字及模式控制字进行译码,以确定DMA服务类型3:优先权编码逻辑优先权可以固定也可以旋转DMA控制器(8237/8237-2)Integrated inside south bridge or ICH8237的工作状态1:空闲周期(Free cycle)当8237的每个通道都无请求时便进入空闲周期,此时在每个时钟周期都采样通道的请求输入信号,只要无请求就始终停留在空闲状态·2:有效周期(Active cycle)当侦测到外设的请求信号时,便脱离空闲周期,向CPU发出DMA请求信号HRQ,但尚未收到CPU的响应信号HLDA,当收到后,便使8237工作,开始DMA传输DMA控制器(8237/8237-2)Integrated inside south bridge or ICH主要信号解说:CLK 时钟信号 CS# 片选信号 RESET复位信号 READY就绪信号 DREQ{0:3}各个通道的外设请求信号 DACK{0:3}对应之应答信号HRQ向CPU要求控制权的请求信号 HLDA CPU的应答信号DB{0:7}数据总线0-7 A{0:7}地址总线0-7IOR# IOW# MEMR# MEMW#AEN地址有效,把锁存在外部锁存器中的高8位地址放到系统总线上ADSTB地址存取,在传送开始时,此信号把DB{0:7} 上输出的高8位地址锁存至外部锁存器EOP#通过此信号来终结DMA传送DMA控制器(8237/8237-2)Integrated inside south bridge or ICH8237的工作模式1:单字节传输模式:每次DMA请求只传送一个字节数据,每传完一 个字节,会撤销DMA请求信号释放总线2:块传输方式:每次DMA请求连续传送一个数据块,待规定的数据块传送完毕后才撤销DMA请求释放总线3:请求传输方式:在此种工作方式下,8237可以进行连续的传输,当出现以下三种情况之一时停止传送a:字节计数器减到0发生TCb:由外界送来一个有效的EOP#信号c:外界的DREQ信号变得无效4:级联方式:此种方式用于通过级联以扩展通道DMA控制器(8237/8237-2)Integrated inside south bridge or ICH一个DMA传输工作过程DEVICE REQUESTSEND DREQ TODMACDMACCPUCPU回应DMA请求向CPU请求DMA回应外设允许传送AA传送ENDDMAC接管BUSCPU交出总线控制权CPU恢复管理总线权。