<span>DMA</span>

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

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

DMA的传输过程

DMA和中断的比较

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

DMA的工作机制

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

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

两种情况 :

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

特点 :

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

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

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

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

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

4. 扩展时钟周期方式

两道例题

例题1

例题2

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

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

每次传输中断服务时间 :

\[ {2} (20+5) \times 2 \times \frac{1}{500\times10^6} = 0.1 \mu s \tag{2} \]

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

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

两次DMA传输的间隔时间 :

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

每次DMA预处理时间 :

\[250 \times \frac{1}{500 \times 10^6} = 0.5 \mu s \tag{2} \]

百分比 :

\[\frac {0.5 \mu s}{1000 \mu s} = 0.05\% \tag{3} \]
全部评论

相关推荐

吐泡泡的咸鱼:我也工作了几年了,也陆陆续续面试过不少人,就简历来说,第一眼学历不太够,你只能靠你的实习或者论文或者项目经历,然后你没有论文,没有含金量高的比赛和奖项,只能看实习和项目,实习来说,你写的实习经历完全不清楚你想找什么工作?行研?数据分析?且写的太少了,再看项目,这些项目先不说上过大学读过研究生的都知道很水,然后对你想找的岗位有什么帮助呢?项目和实习也完全不匹配啊,你好像在努力将你所有的经历都放在简历里想表现你的优秀,但是对于你想找的岗位来说,有什么用呢?最后只能获得岗位不匹配的评价。所以你需要明白你想要找的岗位要求是什么,是做什么的,比如产品经理,然后再看你的经历里有什么匹配的上这个岗位,或者对这个岗位以及这个岗位所在的公司有价值,再写到你的简历上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务