5.4.1 DMA的工作过程

要实现DMA传送,目前都采用大规模集成电路芯片DMA控制器(DMAC)。

DMA的工作过程大致如下:

①外设向DMAC发出DMA传送请求。

②DMAC通过连接到CPU的HOLD信号向CPU提出DMA请求。

③CPU在完成当前总线周期后会立即对DMA请求做出响应。

④待CPU将总线置高阻——放弃总线控制权,DMAC即开始对总线实施控制并向外设送出DMA的应答信号。

⑤DMAC送出地址信号和控制信号,实现外设与内存或内存与内存的数据传送。

⑥DMAC将规定的数据字节传送完之后,通过向CPU发HOLD信号,撤消对CPU的DMA请求。

5.4.2 DMA控制器8237

1. 8237的引线及功能

DMAC8237的外部引线图如图5.33所示。

A0~A3:双向地址线,具有三态输出。

A4~A7:三态输出线。

DB0~DB7:双向三态数据总线。

HRQ:保持请求信号

HLDA:保持响应信号

DREQ0~DREQ3:DMA请求(通道0~3)信号。

DACK0~DACK3:DMA响应信号,分别对应通道0~3。

CLK:时钟输入。

RESET:过程结束,低电平有效的双向信号。

2.8237的工作方式

8237工作有两种周期,即空闲周期和工作周期。

(1)空闲周期

(2)工作周期

①单字节传送方式。

②数据块传送。

③请求传送。

④级联方式。

(3) 传送类型

① 接口到存贮器的传送。

② 存贮器到接口。

③ 存贮器到存贮器。

(4) 优先级

(5) 传送速率

3. 8237的内部寄存器

8237有4个独立的DMA通道,有许多内部寄存器。 表5.3给出这些寄存器的名称、长度和数量。

(1)基地址寄存器

(2)基字数寄存器

(3)当前地址寄存器

(4)当前字数寄存器

(5)地址暂存寄存器和字数暂存寄存器

(6)方式寄存器

(7)命令寄存器

(8)请求寄存器

(9)屏蔽寄存器

①单个通道屏蔽字。

②四通道屏蔽字。

(10)状态寄存器

(11)暂存寄存器

(12)字节指针触发器

4. 8237的寻址及连接

8237的4个通道的寄存器及其他各种寄存器的寻址编码如表5.4和表5.5所示。

5. 8237的初始化

下面我们抽出PC机中BIOS对8237初始化部分加以说明:

①为了对DMAC8237初始化,首先进行总清。

②对DMAC(8237)的4个通道的基地址寄存器与当前地址寄存器、基字数寄存器及当前字数寄存器先写入FFFFH,再读出比较,看读写操作是否正确。

③程序对DMAC(8237)的零通道初始化。一行刷新结束,HRQ变为无效,退出DMA。

此处给出通道0初始化程序如下:

OUT DMA+0DH,AL ;总清8237

;INITIALIZEANDSTARTDMAFORMEMORYREFRESH

MOV DS,BX

MOV ES,BX ;初始化DS和ES

MOV AL,0FFH

OUT DMA+1,AL ;通道0的传送字节数,为64K字节

OUT DMA+1,AL

MOV DL,0BH ;使DX=000BH

MOV AL,58H

OUT DX,AL ;写方式字

MOV AL,0

OUT DMA+8,AL ;写入命令字

OUT DMA+10,AL; ;写屏蔽字

DMAC初始化程序如下:

INITADM:OUT DMA+0DH,AL ;总清

MOV AL,40H

OUT DMA+2,AL ;送地址低字节到通道1

MOV AL,74H

OUT DMA+2,AL ;送地址高字节到通道1

MOV AL,80H

OUT PAG,AL ;送页寄存器

MOV AL,64H

OUT DMA+3,AL;送传送字节数低字节到通道1

MOV AL,0

OUT DMA+3,AL ;送传送字节数高字节到通道1

MOV AL,59H ;通道1方式字:读操作,单字节 ;传送

OUT DMA+11,AL ;地址递增,自动预置

MOV AL,0 ;命令字,允许工作,固定优先级

OUT DMA+8,AL ;DACK低有效

OUT DMA+15,AL ;写屏蔽寄存器,规定允许 ;4个通道均可请求

程序中,将取数的存贮单元的首地址87440H分别写到页寄存器(外加的三态输出寄存器)和DMAC通道1的高低字节寄存器中。

这里每次传送一个字节。每传送100个字节循环。开始可以不用总清命令,以免影响其他通道。这时可以换成只清字节指针触发器的命令,即:

MOV AL,0

OUT DMA+12, AL

计算机组成原理DMA的全称,直接存贮器存取(DMA) -计算机组成原理与汇编语言-电子发烧友网站...相关推荐

  1. 计算机的硬盘和光盘数,磁盘与光盘介绍-计算机组成原理与汇编语言-电子发烧友网站...

    4.5.1 磁盘1.软磁盘 在微型机上大都配有软盘驱动器,用软磁盘来存放各种信息. (1)软盘分类 目前使用的软盘按其直径分为:5.25英寸 1英寸=2.54cm. (2)软盘驱动器与系统的连接 驱动 ...

  2. 微型计算机三部分基本组成,微型计算机的基本结构-计算机组成原理与汇编语言-电子发烧友网站...

    2.1.1 微型计算机的组成及各部分的功能 1. 硬件系统 微型计算机硬件系统如图2.1所示: 微型计算机主要由如下几个部分组成:微处理器或称中央处理单元(CPU).内部存贮器(简称内存).输入输出接 ...

  3. 计算机组成SRAM,静态读写存储器(SRAM)-计算机组成原理与汇编语言-电子发烧友网站...

    4.2.1 静态读写存贮器( SRAM ) 1.概述 静态读写存贮器(SRAM)使用十分方便,在微型计算机领域获得了极其广泛的应用.现以一块典型的SRAM芯片为例说明其外部特性及工作过程. (1) 8 ...

  4. 计算机组成原理xchg,8088数据传送指令-计算机组成原理与汇编语言-电子发烧友网站...

    3.2.1 数据传送指令 1. MOVOPRD1,OPRD2 MOV是操作码,OPRD1和OPRD2分别是目的操作数和源操作数.该指令可把一个字节或一个字操作数从源地址传送到目的地址. 源操作数可以是 ...

  5. 异常 计算机原理,中断和异常 -计算机组成原理与汇编语言-电子发烧友网站

    7.5.1 分类 1. 中断 由外部事件引起的中断称为外部中断.这里有我们熟悉的可屏蔽中断 INTR和非屏蔽中断NMI. 2. 异常 如上所述,在8088中的内部中断,如除法.单步.溢出.软件中断(I ...

  6. 计算机组成位模式,Pentium的工作模式-计算机组成原理与汇编语言-电子发烧友网站...

    7.4.1 实地址模式 1. 实地址模式的进入 在处理器复位后,处理器内部的CR0的PE位为0,表示此时处理器工作在实地址模式.同时,复位后的处理器的内部寄存器状态如表7.2所示. 2. 实地址模式下 ...

  7. 计算机组成原理中断控制器,中断控制器8259-计算机组成原理与汇编语言-电子发烧友网站...

    5.2.3 中断控制器8259 ·弄清芯片外部引线以便将它们连接到系统中: ·了解它们的工作方式和工作特点,以便有选择地应用它们的某些工作方式: ·理解芯片内部的控制字.命令字,以便对它们进行编程: ...

  8. 计算机组成原理移位图,逻辑运算和移位指令-计算机组成原理与汇编语言-电子发烧友网站...

    3.4.1 逻辑运算和移位指令 1.逻辑运算指令 (1)NOT OPRD 该指令对操作数进行求反操作,然后将结果送回.操作数可以是寄存器或贮器的内容.该指令对标志位不产生影响. 例如: NOT AL ...

  9. 计算机原理 中断,中断及中断系统-微计算机原理-电子发烧友网站

    当前位置:电子发烧友网 > 图书频道 > 电子 > <微计算机原理> > 第6章 中断与DMA 第2节 中断及中断系统 第二节 中断及中断系统 2.1 中断的概念 ...

最新文章

  1. 剑指offer-丑数
  2. apollo mqtt linux qt,MQTT第5版更新,以及如何应用到Qt MQTT模块中
  3. 第一个 python for maya
  4. BootstrapBlazor 之王者组件 Table
  5. c++ 显示三维散点图_Python数据可视化,Matplotlib绘制“散点图”的两种方法!
  6. 【OJ】2020蓝桥杯模拟赛题解(Java语言描述)
  7. 在Spring Boot 项目中使用Spring AOP实现切面日志
  8. “抗疫”新战术:世卫组织联合IBM、甲骨文、微软构建了一个开放数据的区块链项目!...
  9. linux SNAT、DNAT目标函数
  10. LoadRunner11下载、安装与破解
  11. 2016版excel_【收藏转发】全套Excel自动计算表139份(回弹、土工、钢筋、集料、粉煤灰等)...
  12. 使用ZUNE从marketplace安装wp7 app的方法
  13. Excel高级应用教程:数据处理与数据分析
  14. Python爬虫——糗百
  15. ndoutils(ndo2db)安装部署
  16. 【技术问题】浏览器主页修复
  17. 51cto python数据分析系列课程 55g_Python 3 数据分析与挖掘系列课程完整版
  18. RSRP RSRQ RSSI SNR的定义
  19. 3步实现神经机器翻译模型处理
  20. JAVA常用工具类-【6】邮箱发送

热门文章

  1. LPF与HPF是什么意思?
  2. docker swarm的常用操作
  3. beta值是一种风险指数
  4. 开源机器学习模型管理工具DVC介绍
  5. nas网络存储服务器系统,nas网络存储是啥_NAS网络存储功能
  6. Python爬取王者荣耀全英雄全皮肤图片
  7. openlayers4 入门开发系列之船讯篇
  8. 前端css——css三大布局模型
  9. python模块 之 xlwt模块
  10. vue 点击谁 谁变色