微机原理 第五章(DMA).ppt

上传人:s****8 文档编号:82767621 上传时间:2023-03-26 格式:PPT 页数:37 大小:138KB
返回 下载 相关 举报
微机原理 第五章(DMA).ppt_第1页
第1页 / 共37页
微机原理 第五章(DMA).ppt_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《微机原理 第五章(DMA).ppt》由会员分享,可在线阅读,更多相关《微机原理 第五章(DMA).ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 直接存贮器存取(直接存贮器存取(DMADMA)技术技术 DMADMA传送方式的特点传送方式的特点 一.“DMA传送方式“基本概念”直接存储器存取”传送 方式,即 CPU暂时让出总线控制权,由DMAC全权控 制 M与I/O 之间直接进行数据的传送。示意图如下:ABCBDMACCPURAMI/O设备I/O接口CPUCPU暂时将总线控暂时将总线控制权让给制权让给DMACDMAC将原将原编制的由编制的由CPUCPU以查以查询询/中断中断I/OI/O方式进行方式进行MM和和I/OI/O之间交换数据的之间交换数据的软件用一专门的硬件取软件用一专门的硬件取代,即代,即DMACDMAC 三三.应用:应用:常

2、用于I/O设备与M之间有大的数据块交换、且有高的速度要求的场合。如:海量存储器(硬盘)与M之间的信息交换。二二.特点:特点:(以硬件控制取代软件控制进行信息传送)DMAC暂时享有总线控制权,行使地址修改、控制数据 传送等功能,数据传送速度主要受M的存取速度限制。一、主动态:接管并取得总线控制权,取代CPU而成为 系统的主控者。DMAC通过三总线向M或I/O发出地址码 及读读/写信号写信号,以控制M和I/O设备之间的数据传送。DMADMA传送过程传送过程 DMAC在系统中的工作状态有两种工作状态:主动态(主控器)和被动态(受控器)“写入”有CPU向M中写入的含义,但是是I/O向其写入:DMA写操

3、作:M I/O 写操作 DMAC发控制信号MEMW信号 M DMAC发控制信号IOR 信号 I/O DataData实现MMDataData DMACDMAC的读的读/写操作写操作DataData实现MMI/OI/ODataData“读出”有从M中读出的含义,但是是I/O向其读入:DMA读操作:M I/O 读操作 DMAC发控制信号MEMR M DMAC发控制信号IOW I/O CPU对DMAC进行初始化操作内容包括:通道的选择 DMA的操作类型及方式 内存首地址 地址递增/递减 需要传送的字节数 二、被动态:未取得总线控制时,同于其他 I/O设备,受CPU的控制。这时,CPU对DMAC进行初

4、始化操作或从DMAC读取状态信息。DMA传送过程 1.在I/O与DMA之间:有请求DREQ和回答DACK 2.在DMA与CPU之间有请求HRQ和回答HLDA信号。如下图所示:I/ODMACCPU请求请求DREQ请求请求HRQ回答回答DACK回答回答HLDAHOLD转移过程:让出:I/O外设 DMAC CPU DMAC I/O设备DREQHRQHLDADACK收回:数据传送结束,DMAC发出过程终止信号EOP,HRQ失效,CPU重新获得总线控制权。MI/ODATA传送:DMAC向I/O设备发读/写信号 DMAC向M发地址信号和读/写信号 3、总线控制权的转移 DMA在主动态时接受CPU对总线的控

5、制权。DATADATA4.DMA传送过程示意图I/ODMACPUI/ORAMDMADREQHRQ HLDA DACKR/W由被动态进入主动态 (总裁)经总线裁决后认可,进入总线保持状态,CPU失去总线控制权经判优及屏蔽处理后MEMR/MEMWDMA操作方式一.DMA操作类型:1.数据传送 2.数据校验、检索 3.MM之间传送数据二.DMA传送操作方式 1.单字节方式 2.连续方式 3.请求传送方式 4.级联方式 一、8237的主要性能参数及引脚功能。1、8237有4个独立的数据传送通道,每个通道64KB 寻址及计数能力,还可通过级联方式进行通道扩充。2、可接收CPU对其进行的初始化操作,输入命

6、令字和 传送参数,以实现级联和多种模式的操作。可向CPU 提供状态信息。DMA8237DMA8237控制器控制器命令 字状态字 此时,CPU 通过DB70 DMAC CPU输出IOR/IOWDMAC,对其进行读/写操作 注意::系统允许多个DREQ信号同时有效,即可以几个 I/O同时提出申请。但同一个时间,只能有一个 DACK信号有效。3、能接收从外设发来的DMA请求信号,并向CPU发 DREQ总线请求信号,亦能接收CPU回送的,让出总线控制权的回答HLDA。亦能向外设发出其对DMA请求的应答信DACK30。4、允许I/O设备与M、M与M之间直接传送数据,传 输速率为15MB/S。MEMRME

7、MWMM(主)主)MM(辅)辅)MEMR、IOWDMA读操作MEMR、IORDMA写操作 M I/O M I/O 在进行数据传送时:MEMR MEMW IOR IOW为输出为输出表明此时是由DMAC控制对M或I/O设备进行读或写操作。访问M的地址码由DMAC通过地址引脚A7A0提供 地址低8位。由DMAC通过DB70及ADSTB提供 地址高8位。说明:说明:在初始化时,IOR IOW为输入。数据通过DB70传送(对DB70的使用采用了总线 复用与分时使用技术。)如果慢速的I/O设备或与存贮器与M交换数据时要求等 待,则可以从DMAC的READY引脚输入低电平,等待 时间结束,READY引脚变为

8、高电平,表示准备好可以 开始,交换数据。5、能确定传送数据的字节数,并判断DMA传送是否结束,并发出MDA操作的结束信号。若从外部向EOP引脚输入一负脉冲,则迫使 DMA操作中止,结束数据传送各内部R复位。EOP:DMA操作结束,负脉冲有效,双向 DMA传送时,每传送一个字节,字节计数器自动减“1”,直至为“0”时 输出EOP传送操作终止信号。EOP送 I/O设备。二、8237内部结构(书P178)由:定时与控制逻辑 命令与控制逻辑 优先权控制逻辑 寄存器组 地址/数据 组成,进行初始化及读状态信息涉及的主要R组。8237有4个独立的通道,每个通道有4个R:基地址 基字节计数器 当前地址 当前

9、字节计数器 命令R 状态R 屏蔽R 4个通道共用R 请求R 工作方式R 暂存R通过对这些R的初始化编程,可设定8237的3种DMA操作类型 3种DMA操作方式2种工作时序 2种优先权排队自动预置传送地址和字节数M与M之间的数据传送。三、8237的端口寻址及基本操作(见书P188)CPU由8237的 A30 4位地址线输入地 址信息实现对片内的16个端口寻址 1、工作方式命令字 工作方式R(书P183)用于设定:DMA的操作类型/方式、地址 加1/减1,自动预置以及选择通道。2、基地址的设置 基址R,进行DMA传送的存 贮器首地址设定。由CPU以先低字节后高字节顺序写入。在进行DMA传送时其值不

10、变,目的是为了在 进行自动予置时,将其重新装入当前地址寄存器。四、8237的命令及对内部R的编程 3、当前地址设置 当前地址R 4、基字节数的设置 基字节书计数器 5、当前字节数计数值 当前字节数计数器 6、屏蔽字的设置,分(P186)单个通道屏蔽字 单个通道屏蔽R 4个通道屏蔽字 4个通道屏蔽R 7、请求字 请求R(P186)仅用与M M的DMA传送方式。8、命令字 命令R 用于控制DMAC的操作(见书P182)9、状态字 状态R(见书P187)用于提供那些通道停止计数,哪些通道有DMA请求。10、暂存器,用于在MM传送中,暂时保存从源M读 出的数据。11、软命令 对特定的地址进行一次写操作

11、,命令就生 效。先/后触发器命令。主清除命令 清屏蔽R命令 五、8237的工作时序(书P190)DMA的空间周期SI DMA的过度周期S0 DMA有效周期S1S42.2.内部逻辑结构内部逻辑结构 其引脚信号的功能,它们分为以下几类:(1)I/O设备的请求信号DREQ03,由I/O向DMA发出,DREQ0优先级最高。(2)DMA回答I/O的信号 DACK03,由DMA回答I/O (3)总线请求和应答HRQ和HLDA(4),地址线 A0A7 双向数据线DB07,既是数据线,又是16位地址线 的高8位。二、8237A内部寄存器及编程(15个寄存器)1.内部寄存器:内部寄存器:(1)通道寄存器 读通道

12、当前地址寄存器 读通道当前字节计数器 写通道基地址与当前地址寄存 写通道基字节计数器与当前字节计数器MEMR/MEMWIOR/IOWCS(2)共用寄存器:工作方式寄存器 命令寄存器 状态寄存器 屏蔽寄存器(3)寄存器功能(3:3:3:2:2:1:1)通过编程可 完成。3种基本传送方式 2种工作时序 3种DMA传送类型 2种优先级排队 传送地址和字节数 1种RAM-RAM之间传送D7D6D5D4D3D2D1D0模式选择00:请求方式01:单一方式10:成组方式11:级联方式地址D5=1地址加1=0,减1自动减1,预置=1,自动=0无类型选择00=校验01=DMA写:I/ORAM10=DMA读:R

13、AM I/O11=无效通道选择00=0通道01=1通道10=2通道11=3通道1、工作方式寄存器(DMA+11)功能:用于控制DMA传送的操作方式,传送类型以及自动预置。格式:注意注意:单一方式:通道启动一次,只传送一个数据,传送完就 释放 系统总线交还CPU,并且:当前地址寄存器+1(-1)当前字节计数器+1(-1)成组传送:启动一次可把整个数据块传送完,并且,当 前字节计数器减到0,产生EOP信号,释放 总线。请求传送:与成组传送类似,其不同点在于每传送一个 字节之后,要检测(询问)DREQ是否有效,若无效,则“挂起”但不释放总线,若有效,继 续传送直至字节计数器为0。存贮器-存贮器:为数

14、据块传送而设置,这种传送在通道 0 与1之间传送。通道0(源)通道1(目的)例:例:PC系列软盘R/W操作选择DMA通道2,单字节传送,地址增1,不用自动预置,其R/W操作方式字为:I/O RAM 读盘(DMA写)=0 1 0 0 0 1 1 0 46H RAM I/O 写盘(DMA读)=0 1 0 0 1 0 1 0 4AH 因此,从软盘上读一个扇区的数据存放到内存区方式字 为46H,写一个扇区的数据到软盘为4AH。2.基值地址寄存器(DMA+1,+2,+4,+6)16位 存放DMA传送的内存首址,在初始化时由CPU写入,传送中基值地址不变,只写不读。3.当前地址寄存器(DMA+0,+2,+

15、4,+6)16位 存放DMA传送地程中的内存地址 初值与基值地址相同,每次传送自动加1(减1),可读可写。4.基值字节计数器(DMA+1,+1,+3,+5,+7)16位 存放DMA传送的总字节数,在初始化时由CPU写入,传送中,基值字节计数器不变,只写不读。5.当前字节计数器(DMA+1,+1,+3,+5,+7)16位 存放DMA传送过程中没有传送完的节数,每传送一个字节后减1,减为0时,产生EOP,表示传送完毕。(1 1)单一屏蔽寄存器(DMA+1)每次只能屏蔽一个通道 格式:D7D6D5D4D3D2D1D0未用屏蔽位=1 屏蔽=0 不屏蔽通道选择00=选0通道01=选1通道10=选2通道1

16、1=选3通道 6.6.屏蔽寄存器(DMA+10,+15)用来禁止或允许通道的DMA请求。有二种格式:D7D6D5D4D3D2D1D0通道3 通道2 通道1 通道0=0屏蔽=1不屏蔽 (2)4位屏蔽寄存器(DMA+15)可同时屏蔽4个通道(但对由软件设定的DMA 请求位不能屏蔽)。格式:未用例:例:开放通道2,作为响应软的DMA请求。使用单一屏蔽 MOV AL,00000010B OUT DMA+10,AL 或 使用4位屏蔽 MOV AL,00001011B OUT DMA+15,ALD7D6D5D4D3D2D1D0通道选择00=0通道01=1通道10=2通道11=3通道格式:7.请求寄存器(D

17、MA+9)DMA请求寄存器就是用于由软件启动DMA请求,如:RAMRAM,这种软件请求DMA传输必须是成组传输方式。未用请求位1=有请求0=无请求 8.命令寄存器(DMA+8)用来控制8237A的操作,由CPU写入,由CPU写入,由 RESET清除,只写不读。格式:D0 RAM RAM D7D6D5D4D3D2D1D0=0 禁止=1允许CH CH2CH1CH0CH3CH2CH1通道通道0请求服务过程结束有尚未处理的DMA请求,写1已接收到终止计数信号,写1格式:9.状态寄存器(DMA+8)功能:提供哪些通道已到终止计数、哪些通道有DMA请求 等状态信息供CPU使用。10.暂存寄存器(DMA+13)功能:用于存贮器对存贮器传送时,暂时保存从源 地址读出的数据。11.软件令(有三条)所谓软命令就是只要对特定地址进行一次写操作,命 令就生效,而与写入的具体数据无关。(1)清字节指示器 (2)主清除命令 (3)清屏蔽寄存器命令1、IBM PC/XT计算机的DMA控制逻辑(P193)2、8237A的一般编程方法(P196)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁