zoukankan      html  css  js  c++  java
  • DMA

    DMA(Direct Memory Access,直接存储器访问) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。

    DMA控制器 : DMAC ( Direct Memory Access Controller )

    DMA的传输过程

    1591499923991

    DMA和中断的比较

    1. 中断和DMA的响应时间------指令周期结束后响应中断, CPU周期结束后响应DMA

    1591499999901

    1. 1591500090472

    DMA的工作机制

    1. 周期挪用 ( 窃取 ) 方式 --- 现代计算机

    DMA 控制器对主存储器存取数据常采用周期挪用方式, 即是在中央处理器执行程序期间, DMA控制器为存取数据, 强行插入使用主存储器若干周期;

    两种情况 :

    • 隐藏周期DMA : 窃取总线
    • 暂停CPU方式 : 抢总线

    特点 :

    • 当主存工作速度都高于外设较多时, 可提高主存的利用率, 且对CPU的影响较小

    2. 存储器分时方式 --- Motorala 6800系列

    • 原来的一个存取周期分割成两个时间片, 一片分给CPU, 一片分给DMAC
    • 无需申请和归还总线
    • 需要主存的工作速度提高一倍
    • Motorola 6800系列8位CPU

    3. 停止CPU方式 --- 早期计算机

    • DMAC : 申请总线 --> 独占总线 --> 释放总线
    • 控制简单 ; 主存利用率不高

    4. 扩展时钟周期方式

    两道例题

    例题1

    1591512712815

    例题2

    1591513406478

    两次传输 ( 中断 ) 的间隔时间 :

    [ {1} frac{4B}{0.5MB/s} = 8 mu s ag{1} ]

    每次传输中断服务时间 :

    [ {2} (20+5) imes 2 imes frac{1}{500 imes10^6} = 0.1 mu s ag{2} ]

    因此, CPU用于该外设I/O时间占整个CPU时间的百分比为 :

    [frac{0.1 mu s}{8 mu s} = 1.25\% ag{3} ]

    两次DMA传输的间隔时间 :

    [frac{5000B}{5MB/s} = 1000 mu s ag{1} ]

    每次DMA预处理时间 :

    [250 imes frac{1}{500 imes 10^6} = 0.5 mu s ag{2} ]

    百分比 :

    [frac {0.5 mu s}{1000 mu s} = 0.05\% ag{3} ]

  • 相关阅读:
    CUBRID学习笔记 4 端口和win7下连接数据库cubrid教程
    CUBRID学习笔记 3 net连接数据库并使用cubrid教程示例
    CUBRID学习笔记 2 安装教程
    CUBRID学习笔记 1 简介 cubrid教程
    vs无法打开项目的解决方案
    迷你sql profile,给缺少sql跟踪的朋友们
    EntityFramework 开始小试
    网站安全扫描工具--Netsparker的使用
    ServiceStack.OrmLite 笔记10-group having 分页orderby等
    pyqt5 笔记(四)cx_Freeze 实现代码打包exe
  • 原文地址:https://www.cnblogs.com/roccoshi/p/13060757.html
Copyright © 2011-2022 走看看