• DMA方式


    DMA控制器

    在这里插入图片描述
    1)接受外设发出的DMA请求(外设传送一个字的请求),并向CPU发出总线请求。
    2)CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期。
    3)确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数。
    4)规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。
    5)向CPU报告DMA操作的结束。
    在这里插入图片描述

    DMA传送过程

    在这里插入图片描述
    在这里插入图片描述

    DMA传送方式

    主存和DMA控制器之间有一条数据通路,因此主存和I/O设备之间交换信息时,不通过CPU。但当I/O设备和CPU同时访问主存时,可能发生冲突,为了有效地使用主存,DMA控制器与CPU通常采用以下3种方法使用主存。
    在这里插入图片描述

    DMA方式的特点

    主存和DMA接口之间有一条直接数据通路。
    由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。
    DMA方式具有下列特点:
    ① 它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问。
    ② 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
    ③ 主存中要开辟专用缓冲区,及时供给和接收外设的数据。
    ④ DMA传送速度快,CPU和外设并行工作,提高了系统效率。
    ⑤ DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。

    DMA方式vs中断方式

    在这里插入图片描述

  • 相关阅读:
    HTML如何制作音乐网站(如何搭建个人音乐网页)
    项目进度管理
    JavaWeb-使用session机制和cookie机制改造JavaWeb基础项目
    从零开始搭建前端脚手架(三)-- [动态添加、删除模板]
    Qt 简介
    【C++】模板template
    前后端分离项目Nginx部署
    java8中“::”双冒号的功能简介说明
    .NET 7 的 AOT 到底能不能扛反编译?
    React跨路由组件动画
  • 原文地址:https://blog.csdn.net/weixin_51711289/article/details/127768940