文档章节

『阿男的工程世界』*让我们简单聊一下IO(3)*

阿男weli
 阿男weli
发布于 2017/02/11 21:01
字数 688
阅读 11
收藏 0

『阿男的工程世界』*让我们简单聊一下IO(3)*

接下来阿男给大家讲一讲DMADMA全称Direct Memory Access,这个是做什么用的呢?

早期的计算机设计下,硬件如果要使用内存里面的数据,CPU要负责这些内存的操作:把内存的数据传给硬件设备,把硬件设备的数据写入内存。这些操作要占用CPU的时钟周期,因为是CPU执行指令。

最要命是,有的硬件速度很慢,这样的话CPU执行内存操作指令的时候,就需要等着这个硬件设备。要知道CPU的时间是非常宝贵的,因为CPU还要处理其他硬件设备发过来的信号,也就是中断请求,等着硬件和内存的交互就太慢了。

为了优化这块的性能,就产生了Direct Memory Access的概念,就是让硬件可以直接访问内存。具体是这样的:添加一个硬件,叫做DMA Controller,就是一个芯片,然后硬件有对内存访问的需要时,就发指令给这个Controller,需要传输的数据信息也发给Controller,然后就不管了,CPU去做自己的事情,由Controller负责具体的数据传输。等数据传完以后,Controller给CPU发中断信号,告诉CPU,数据已经处理完成了,这样CPU就可以做接下来的事情。

我们看到了DMA是如何协调这里的硬件速度不一致的。阿男上面给大家说的这个架构,叫做ISA,早期的ISA架构传输速度并不是很快,而且需要专门的DMA Controller芯片。

现在我们的计算机主流是PCI架构,这个架构下,没有了DMA Controller,取而代之的叫做Memory Bus,也就是内存总线。一般是直接和北桥芯片连接,而南桥芯片要做的是跟CPU要Memory Bus的访问权,实现DMA北桥芯片现在一般做进CPU内部,南桥芯片一般还是独立的,负责和"慢速"的IO设备相连,比如USB控制器啥的。

所以说DMA就是一种让CPU无需过多介入,让硬件直接访问内存,但是是在CPU管控的条件下,访问内存。数据处理完后,CPU再介入后续的工作。

为什么要强调CPU管控?因为操作系统的安全性,依赖于操作系统可以控制程序和硬件能访问内存的什么部分什么内容,而操作系统的实现依赖CPU的架构设计实现。

© 著作权归作者所有

阿男weli
粉丝 16
博文 32
码字总数 24051
作品 0
私信 提问
愿世界充满爱

这次去南京旅游,路上遇到一位大叔,和他聊了一会,他问我为啥一个人过来,我说没人一起,然后他让我路上搭讪一个女孩子,带回杭州去。我表示不敢,是的,我不敢在路上和陌生女孩子搭话,就算...

林在路上
2017/05/02
0
0
[转贴] 游戏服务器架构一

来自:http://www.libing.net.cn/read.php/1724.htm 这里讨论的游戏服务器架构大概是目前国内乃至世界上的网游通用的一种架构了: http://bbs.gameres.com/showthread.asp?threadid=93775 作...

JavaGG
2010/03/24
2.2K
1
阿哼的一生

谨以此文,献给千千万万码农! Hello world 1 对的,他叫阿哼。 大学刚毕业,不是985,还好是一所211院校,在南方的一个二线城市。后来阿哼也没想到,正是985、211和非985、211的差别,差一点...

天方月圆
2017/11/10
0
0
码农翻身讲操作系统1:CPU与内存的那些事

转自 码农翻身 本系列文章全部摘选自“码农翻身”公众号,仅供个人学习和分享之用。文章会给出原文的链接地址,希望不会涉及到版权问题。 个人感言:真正的知识是深入浅出的,码农翻身” 公共...

你的猫大哥
2018/02/14
0
0
求安慰!!!早上面试真操蛋!!!!!

前天投了几份简历,昨天有收到几个公司的邀请面试,这个公司打电话过来是个男的,不是hr mm,好像是老总,有跟他聊了一下,薪酬也已经说明了,今天去面试,没想到遇到个极品,都不知道怎么回...

____33
2011/09/08
8.2K
78

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
12
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部