预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共37页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

直接存贮器存取(DMA)技术AB三.应用: 常用于I/O设备与M之间有大的数据块交换、且有 高的速度要求的场合。如:海量存储器(硬盘)与M之 间的信息交换。 一、主动态:接管并取得总线控制权,取代CPU而成为 系统的主控者。DMAC通过三总线向M或I/O发出地址码 及读/写信号,以控制M和I/O设备之间的数据传送。“写入”—有CPU向M中写入的含义,但是是I/O向其写入: DMA写操作:—MI/O—写操作 DMAC发控制信号MEMW信号M DMAC发控制信号IOR信号I/OCPU对DMAC进行初始化操作内容包括: 通道的选择 DMA的操作类型及方式 内存首地址 地址递增/递减 需要传送的字节数转移过程: 让出:I/O外设DMACCPU DMACI/O设备DATADMA操作方式 一.DMA操作类型: 1.数据传送 2.数据校验、检索 3.MM之间传送数据 二.DMA传送操作方式 1.单字节方式 2.连续方式 3.请求传送方式 4.级联方式一、8237的主要性能参数及引脚功能。 1、8237有4个独立的数据传送通道,每个通道64KB 寻址及计数能力,还可通过级联方式进行通道扩充。 2、可接收CPU对其进行的初始化操作,输入命令字和 传送参数,以实现级联和多种模式的操作。可向CPU 提供状态信息。注意::系统允许多个DREQ信号同时有效,即可以几个 I/O同时提出申请。但同一个时间,只能有一个 DACK信号有效。4、允许I/O设备与M、M与M之间直接传送数据,传 输速率为1·5MB/S。在进行数据传送时: ①MEMR MEMW IOR IOW③数据通过DB7~0传送(对DB7~0的使用采用了总线 复用与分时使用技术。)5、能确定传送数据的字节数,并判断DMA传送是 否结束,并发出MDA操作的结束信号。二、8237内部结构(书P178) 由:定时与控制逻辑 命令与控制逻辑 优先权控制逻辑 寄存器组 地址/数据命令R 状态R 屏蔽R 4个通道共用R请求R 工作方式R 暂存R三、8237的端口寻址及基本操作(见书P188)1、工作方式命令字工作方式R(书P183) 用于设定:DMA的操作类型/方式、地址 加1/减1,自动预置以及选择通道。 2、基地址的设置基址R,进行DMA传送的存 贮器首地址设定。 由CPU以先低字节后高字节顺序写入。 在进行DMA传送时其值不变,目的是为了在 进行自动予置时,将其重新装入当前地址寄存器。3、当前地址设置当前地址R 4、基字节数的设置基字节书计数器 5、当前字节数计数值当前字节数计数器 6、屏蔽字的设置,分(P186) 单个通道屏蔽字单个通道屏蔽R 4个通道屏蔽字4个通道屏蔽R 7、请求字请求R(P186) 仅用与MM的DMA传送方式。8、命令字命令R 用于控制DMAC的操作(见书P182) 9、状态字状态R(见书P187) 用于提供那些通道停止计数,哪些通道有DMA请求。 10、暂存器,用于在MM传送中,暂时保存从源M读 出的数据。 11、软命令—对特定的地址进行一次写操作,命令就生 效。①先/后触发器命令。②主清除命令 ③清屏蔽R命令五、8237的工作时序(书P190) ⑴DMA的空间周期SI ⑵DMA的过度周期S0 ⑶DMA有效周期S1~S4 2.内部逻辑结构 其引脚信号的功能,它们分为以下几类: (1)I/O设备的请求信号DREQ0~3,由I/O向DMA发出, DREQ0优先级最高。 (4),, 地址线A0~A7 双向数据线DB0~7,既是数据线,又是16位地址线 的高8位。 二、8237A内部寄存器及编程(15个寄存器) 1.内部寄存器: (1)通道寄存器 读通道当前地址寄存器 读通道当前字节计数器 写通道基地址与当前地址寄存 写通道基字节计数器与当前字节计数器(2)共用寄存器: 工作方式寄存器 命令寄存器 状态寄存器 屏蔽寄存器 (3)寄存器功能(3:3:3:2:2:1:1)通过编程可 完成。 3种基本传送方式2种工作时序 3种DMA传送类型2种优先级排队 传送地址和字节数 1种RAM-RAM之间传送 D7注意: 单一方式:通道启动一次,只传送一个数据,传送完就 释放系统总线交还CPU,并且: 当前地址寄存器+1(-1) 当前字节计数器+1(-1) 成组传送:启动一次可把整个数据块传送完,并且,当 前字节计数器减到0,产生EOP信号,释放 总线。 存贮器-存贮器:为数据块传送而设置,这种传送在通道 0与1之间传送。 通道0(源)→通道1(目的) 2.基值地址寄存器(DMA+1,+2,+4,+6)16位 存放DMA传送的内存首址,在初始化时由CPU写入,传送中基值地址不变,只写不读。 3.当前地址寄存器(DMA+0,+2,+4,+6)16位 存放DMA传送地程中的内存地址 初值