文章目录

  • 1.DMA传输原理
    • 1.1.DMA控制器
    • 1.2.DMA传输过程
    • 1.3.8086系统中的DMA信号
  • 2.8237A的内部结构和外部信号
    • 2.1.8237A芯片的主要特点
    • 2.2.8237A的工作方式
      • 2.2.1.单字节传输方式
      • 2.2.2.块传输方式
      • 2.2.3.请求传输方式
      • 2.2.4.级联传输方式
    • 2.3.8237A的传输类型
    • 2.4.8237A的内部结构
      • 2.4.1.DMA通道
      • 2.4.2.读写逻辑
      • 2.4.3.控制逻辑
      • 2.4.4.锁存缓冲器(外接)
      • 2.4.5.页面地址寄存器(外接)
    • 2.5.8237A的对外连接信号
      • 2.5.1.8237A作为从模块时的引脚信号
      • 2.5.2.8237A作为主模块时的引脚信号

直接存储器传送DMA定义:外部设备的数据不经过CPU,直接送入内存储器或内存储器不经过CPU直接送往外部设备。

DMA周期

  • 一次DMA传送的时间称为DMA周期
  • DMA过程完全由硬件实现,因此速度很快,时间上大致相当于一个总线读写周期,因此能够满足高速外部设备数据传输的需要。

1.DMA传输原理

1.1.DMA控制器

DMA控制器的定义:用来协调外部设备接口和内存储器的数据传输的专门器件,简称为DMAC。

DMAC内部的寄存器

  • 地址寄存器:存放DMA传输时存放I/O数据的内存存储单元地址。
  • 字节计数器:存放DMA传输的字节数。
  • 控制寄存器:存放由CPU设定的DMA传输方式和控制命令。
  • 状态寄存器:存放DMAC当前的状态,包括有无DMA请求和是否结束等。

DMAC的功能分类

  • 总线从模块:CPU对DMAC进行预置操作,也就是向DMAC写入内存传送区的首地址、传送字节数和控制字时,DMAC相当于一个外设接口,称为总线从模块。
  • 总线主模块:进行DMA传输时,CPU暂停对系统总线的控制,DMAC获得了对总线的控制权,这时的DMAC称为总线主模块。

1.2.DMA传输过程

  1. 外部设备准备就绪,需要进行DMA操作时,向DMA控制器发出DMA请求信号。DMA控制器受到这个信号后,向CPU发出总线请求信号。
  2. CPU接到总线请求信号后,如果允许,会在当前总线周期结束后,发出总线应答信号,同时放弃对总线的控制。这时,DMA控制器开始实行对总线的控制。
  3. DMAC将内部地址寄存器的内容通过地址总线送往内存储器。对于数据输入过程,向外部设备发出外部设备读控制信号,同时向存储器发出存储器写信号。在这两个信号的作用下,一字节的数据从外设接口送往数据总线,而存储器的数据总线接受这个数据,写入由地址总线上的地址指定的内存单元。对于数据输出过程恰好相反。DMAC向存储器发出读命令,向外部设备发出写命令,一字节的数据从存储器传送到外部设备接口,完成一次输出的操作。
  4. 传送一个字节之后,DMAC自动对地址寄存器的内容进行修改,指向下一个要传送的字节。同时,将字节计数器减一,记录尚未完成的传输次数。
  5. 一次数据传输结束,DMA控制器向CPU撤销总线请求信号,CPU于是也撤销允许使用总线的总线应答信号,CPU收回对总线的控制权。

1.3.8086系统中的DMA信号

  • 最小模式:CPU通过HOLD引脚接收DMA控制器的总线请求;在HLDA引脚上发出对总线请求的允许信号。
  • 最大模式:通过RQ/GT0和RQ/GT1引脚接收DMA控制器的总线请求并在同一根线上发送对总线请求的允许信号。其中前者有更高的优先权。

2.8237A的内部结构和外部信号

8237A概述

  • Intel公司生产的一种40引脚双列直插式大规模集成电路。
  • 是一个可编程DMA控制器,可以提供四个通道的DMA传输控制。

2.1.8237A芯片的主要特点

  • 有4个完成独立的DMA通道,可分别进行编程,控制4台独立的外部设备。可以通过级联的方式进一步扩展DMA通道数。
  • 每个通道的DMA请求均可分别允许和禁止,并对各个通道进行优先级排队。
  • 数据块最大为64KB,每传送一个字节后使地址自动加1或减1。
  • DMA请求可以由外部输入,也可以由软件设置。
  • 可以进行从存储器到存储器的数据传输,用于对存储区域初始化。

2.2.8237A的工作方式

8237A共有四种工作方式可供选择。

2.2.1.单字节传输方式

  • 工作特点:每完成一个字节的数据传输就会释放系统总线,一次DMA传输过程结束。收到一个新的DMA请求则重新申请总线并重复上述过程。
  • 方式评价:这种方式不会对系统的运行产生大的影响。

2.2.2.块传输方式

  • 工作特点:DMA控制器获得总线控制权后,可以连续进入多个DMA周期,进行多个字节的传输(最多64KB)。当传输完成或收到外部的强制停止命令才会释放总线而结束传输。
  • 方式评价:这种方式会获得最高的数据传输速度,但是在数据传输期间CPU不能访问总线,因此如果传输的数据较多,这种方式会对系统工作产生一定的影响。

2.2.3.请求传输方式

  • 工作特点:申请一次总线可以连续进行多个数据的传输,但是每传输一个字节的数据都需要检查信号确定是否可以继续传输,如果信号无效则需要暂停传输,等到信号变为有效时继续传输。
  • 方式评价:这种方式允许外部设备由于发生某种原因的数据不连续,按照外部设备的最高速度进行数据传输,使用比较灵活。

2.2.4.级联传输方式

  • 结构组成:将几个8237A进行级联,其中一个作为主片,其余作为从片,构成主从式DMA系统。一个主片最多连接四个从片。
  • 工作方式:从片收到外部设备接口的DMA请求信号后,不是向CPU申请总线,而是向DMA控制器主片申请,再由主片向CPU申请。

2.3.8237A的传输类型

8237A可以进行四种类型的传输:

  • DMA写传输(I/O→存储器)
  • DMA读传输(存储器→I/O)
  • DMA检验(完成某种校验过程,测试DMA控制器的状态,不进行数据传送)
  • 存储器到存储器的传输

2.4.8237A的内部结构

8237A的内部结构分为两部分:4个DMA通道和一个公共控制部分。其中公共控制部分由读写逻辑和控制逻辑组成。

2.4.1.DMA通道

  • 每个通道的寄存器:16位地址寄存器、16位字节计数器、8位方式寄存器、1位DMA请求触发器、1位屏蔽触发器。
  • 共用的寄存器:4个通道共用一个控制寄存器和一个状态寄存器。
  • 使用要求:在使用DMA通道工作之前,必须对相应的寄存器进行初始化设置。
  • 地址寄存器:由基地址寄存器和当前地址寄存器组成。CPU编程时,将本通道DMA传输的地址初值写入基地址寄存器,再由8237A传送到当前地址寄存器。当前地址寄存器中的内容在每个字节的DMA传输后都会被修改。CPU可以通过两次输入指令读出当前地址寄存器中的内容(每一次读8位),但是基地址寄存器中的值不能被读出且一直保持初值。
  • 字节计数器:由基本字节计数器和当前字节计数器组成。编程时由指令把DMA传输的字节数写入基本字节计数器,继而传送到当前字节计数器。每一次DMA传输后当前字节计数器的值都会被修改。同样,只有当前计数器的值才能由CPU通过两次输入指令读出。

2.4.2.读写逻辑

  • 作为从模块时的读写逻辑:读写逻辑电路接收CPU的读(#IOR)写(#IOW)以及由地址译码电路产生的#CS信号,对地址总线低四位A3-A0进行译码。在#IOW有效时,把数据总线的内容写入所寻址的寄存器;在#IOR有效时,把被选择的寄存器的内容送到数据总线上。
  • 作为主模块时的读写逻辑:如果是DMA写周期,读写逻辑产生#IOR,控制逻辑产生存储器写信号,数据从外部设备接口传送到存储器单元;如果是DMA读周期,读写逻辑产生#IOW,控制逻辑产生存储器读信号,数据从存储器单元传送到外部设备接口。

2.4.3.控制逻辑

  • 初始化时,CPU通过对方式寄存器的设置,确定控制逻辑的操作方式。
  • DMA周期内,控制逻辑通过发出控制信号和16位要存取的存储单元地址来控制DMA过程。

2.4.4.锁存缓冲器(外接)

  • 使用8237A工作时,需要外接一个8位的地址锁存缓冲器。
  • DMA传送之前,8237A从DB7-DB0把存储器地址的A15-A8写入这个缓冲器。
  • DMA周期中,8237A通过引脚A7-A0发送存储器地址的低8位,同时将锁存器中的地址通过三态门送往系统地址总线的A15-A8。

2.4.5.页面地址寄存器(外接)

  • 8237A只控制了地址总线的16位,为了控制8086系统20位的地址,需要外接一个4位的页面地址寄存器,它的值由CPU写入。
  • 8237A发送低16位地址时,高4位的地址从页面地址寄存器发往地址总线A19-A16。

2.5.8237A的对外连接信号

2.5.1.8237A作为从模块时的引脚信号

  • RESET:复位输入端。复位时,屏蔽寄存器被置一,其他寄存器均清零。
  • #CS:片选输入端。由A15-A4译码得到。信号有效时CPU可以对8237A进行读写操作。
  • A3-A0:最低的四位地址线。DMAC作为从模块时作为输入端,用来选择DMAC内部的16个端口。
  • #IOR:外部设备读信号。DMAC作为从模块时作为输入控制信号,信号有效时CPU读取DMAC中内部寄存器的值。
  • #IOW:外部设备写信号。DMAC作为从模块时为输入控制信号,信号有效时CPU向DMAC的内部寄存器写入信息进行预置。
  • DB7-DB0:8位双向三态数据线。DMAC作为从模块时,CPU通过数据线对8237A进行读写。

2.5.2.8237A作为主模块时的引脚信号

地址信号

  • A3-A0:DMAC作为主模块时,这四个信号处于输出状态,提供存储器的最低四位地址。
  • A7-A4:这4位地址线引脚始终处于输出状态或浮空状态。它们在DMA传输时提供存储器的中间4位地址。
  • DB7-DB0:DMAC作为主模块时,DB7-DB0输出当前地址寄存器中的高8位地址,并通过信号ADSTB打入外部锁存器,和A7-A0输出的低8位地址构成16位地址。
  • ADSTB:地址选通输出信号。信号有效时,将DMAC当前地址寄存器中的高8位地址经过DB7-DB0送到外部锁存器。
  • AEN:地址允许输出信号。AEN使得地址锁存器中锁存的高8位地址以及页面地址寄存器的4位一起送到地址总线上,与芯片直接输出的8位地址共同构成内存储器的20位地址。AEN信号也保证了地址总线上的信号来自DMA控制器而不是CPU。

对存储器/外部设备接口的读写控制信号

  • #IOR:DMAC作为主模块时,#IOR输出外部设备接口的读控制信号。信号有效时,I/O接口部件中的数据被读出送往数据总线。
  • #IOW:DMAC作为主模块时,#IOW输出外部设备接口的写控制信号。信号有效时,存储器中读出的数据被写入I/O端口中。
  • READY:准备就绪输入信号。当所用的存储器或I/O接口的速度比较慢,需要延长传输时间时,READY信号无效,8237A就会自动插入等待周期;数据准备就绪时,信号变为高电平,表示可以进行数据传输。
  • #MEMR:存储器读输出信号。当信号有效时,所选中的存储器单元的内容被读出,发送到数据总线。
  • #MEMW:存储器写输出信号。当信号有效时,数据总线上的内容被写入选中的存储单元。

DMA联络信号

  • DREQ3-DREQ0:通道DMA请求输入信号,每个通道对应一个DREQ信号。外部设备要求进行DMA传输时需要使得DREQ处于有效电平,直到DMAC控制器送来DMA相应信号DACK后,I/O接口才撤除DREQ的有效电平。
  • DACK3-DACK0:通道DMA应答输出信号。这是DMAC送给I/O接口的回答信号,每个通道对应一个DACK信号。DMAC获得CPU送来的总线允许信号HLDA后,便产生DACK信号送到相应的外部设备接口。该信号相当于I/O接口的地址选择信号。
  • HRQ:总线请求输出信号。8237A在接收到外设接口发来的DREQ信号后,如果该通道的DMA请求没有被屏蔽,则DMA控制器的HRQ端输出有效电平,向CPU发出总线请求。
  • HLDA:总线响应输入信号。DMAC向CPU发总线请求信号HRQ后,CPU发回这个总线响应信号。8237A收到该信号后便获得了总线控制权。
  • #EOP:DMA传输过程结束双向信号。当DMAC任意通道计数结束时会从#EOP输出一个有效电平,作为DMA传输结束信号。可以用这个信号向CPU申请中断,以便及时处理这个事件。另一方面,如果从外部向DMAC发送一个#EOP信号,则DMA传输过程被强制性结束。

其他引脚信号

  • CLK:时钟输入端信号。
  • 电源和地:提供8237A工作所需的+5V电源。

微机原理与接口技术:DMA传输 详细笔记相关推荐

  1. 《微机原理与接口技术》期末复习笔记

    微机原理与接口技术 第01章 微机原理概述 基本知识 CPU:中央处理单元(Central Processor Unit),处理器,能够分析和执行指令的部件,能分析和执行指令的芯片就是CPU MPU: ...

  2. 微机原理与接口技术--西安电子科技大学-笔记一

    微机原理与接口技术-西安电子科技大学 绪论 微型计算机系统组成 硬件子系统与软件 早期计算机硬件组成–ALU-----控制器控制ALU运算–ALU运算的数据 存储器中的数据被控制器控制器送到ALU 输 ...

  3. 微型计算机硬盘接口主要分为,北京交通大学微机原理与接口技术_期末复习题_图文...

    北京交通大学微机原理与接口技术_期末复习题_图文 更新时间:2017/1/26 18:34:00  浏览量:1285  手机版 "微机原理与接口技术"2008年期末考试复习题 1. ...

  4. 微型计算机接口技术2018真题,2018年微机原理及接口技术复习题.doc

    2018年微机原理及接口技术复习题 2018年<微机原理及接口>复习题 填空题 1 .中断的响应过程. CPU与外设的输入.输出方式包括程序控制方式..DMA方式.8086存储器采用的是分 ...

  5. 微机原理与接口技术的基础知识

    微机原理与接口技术 微控制单元 (Microcontroller Unit:MCU) ,又称单片微型计算机 (Single Chip Microcomputer )或者单片机,是把中央处理器 (Cen ...

  6. 微型计算机与接口技术答案,微机原理及接口技术-习题答案

    微机原理及接口技术习题及答案 ·25· 8088系统 BUSD0-D7A 0 A 12MEMW MEMR SRAM 6264 D0-D7 A 0 A 12WE CS2 OE · · ·+5V A 19 ...

  7. 微型计算机原理周明德答案,微机原理与接口技术周明德主编习题答案

    <微机原理与接口技术>试题(第一套) 一.选择题(每题3分,共30分) 1.8288在8086/8088组成的计算机中的作用是( ② ). ① 数据缓冲器 ② 总线控制器 ③ 地址锁存器 ...

  8. 微型计算机原理课本,微机原理与接口技术课本.doc

    微机原理与接口技术课本 第1章 微型计算机基础 1.1 计算机中数的表示和运算 1.1.1 计算机中的数制及转换 在微型计算机中,常见和常使用的数制¨十进制¨二进制¨八进制¨ 十六进制等. 1.十进制 ...

  9. 长安大学微型计算机原理与接口技术答案,长安大学微机原理与接口技术A卷答案...

    <微机原理与接口技术>试卷A 评分标准及参考答案 一.每空1分,共20分 1.01111011 10000011 2.F7.DCH 001001000111.10000110 BCD 3. ...

  10. 《微机原理及接口技术》第08章在线测试

    <微机原理及接口技术>第08章在线测试  <微机原理及接口技术>第08章在线测试 剩余时间: 59:54  答题须知:1.本卷满分20分.            2.答完题后, ...

最新文章

  1. listview的divider边距
  2. 2---信息系统集成专业技术知识(精简题目)
  3. 深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置) By 李泽南2017年6月26日 15:57 本周一(6 月 19 日)机器之心发表文章《我的深度学习开发环境详解:Te
  4. 创业第一天,有三AI扔出了深度学习的150多篇文章和10多个专栏
  5. myeclipse写简单bbs代码_RabbitMQ实现即时通讯居然如此简单!连后端代码都省得写了?...
  6. idea java 快捷键_图示Javahtml5开发中IDEA的一些常用默认快捷键
  7. 在mysql中存储生日,php中计算今天是否为用户生日
  8. php think run 后台运行问题
  9. 一套完整仿拉勾网HTML静态网页模板(含38个独立HTML)
  10. mysql execute stmt_mysql_stmt_execute()--MySql数据库
  11. 金融衍生品 matlab,Matlab金融工程教程金融衍生品计算PPT精选文档
  12. DHTMLX JS Gantt Library 7.1.13
  13. 扫描工具nmap、ncat
  14. html win10虚拟键盘,笔记本电脑win10虚拟键盘打开的方法
  15. HMM模型及相关算法
  16. php 微盟,微盟开放授权并获取ACCESS_TOKEN方法(新版)
  17. 商品条码三大编码原则,您知道吗?
  18. 2021/03/27 K8S集群日志与监控
  19. android定位的实现
  20. 云呐|什么是动环监控?动环监控系统的监控对象有哪些?

热门文章

  1. PowerDesigner提示Existence of index、key、reference错误
  2. 选择“食品装箱机”应该考虑的几个方面
  3. 2019.2.20《菜根谭》洪应明 明朝
  4. Vue Avoid using non-primitive value as key, use string/number value instead.
  5. 在甲骨文云容器实例(Container Instances)上部署Oracle Linux 8 Desktop
  6. 前端Base64编码知识,一文打尽
  7. 计算机组成原理-组成篇(上)
  8. C# 代码规范和质量检查工具 StyleCop.Analyzers
  9. 华为HDG苏州站:重体验,创新品 一切从开发者的角度出发
  10. Matlab群体智能优化算法之基于模拟烹饪培训优化算法(CBOA)