族谱网 头条 人物百科

直接存储器访问

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:583
转发:0
评论:0
直接内存访问DMA是所有现代电脑的重要特色,它允许不同速度的硬件设备来沟通,而不需要依于中央处理器的大量中断负载。否则,中央处理器需要从来源把每一片段的数据复制到寄存器,然后把它们再次写回到新的地方。在这个时间中,中央处理器对于其他的工作来说就无法使用。DMA传输常使用在将一个内存区从一个设备复制到另外一个。当中央处理器初始化这个传输动作,传输动作本身是由DMA控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存去。像是这样的操作并没有让处理器工作拖延,使其可以被重新调度去处理其他的工作。DMA传输对于高性能嵌入式系统算法和网络是很重要的。举个例子,个人电脑的ISADMA控制器拥有8个DMA通道,其中的7个通道是可以让计算机的中央处理器所利用。每一个DMA通道有一个16位地址寄存器和一个16位计数寄存器。要初始化数据传输时,设备驱动程序一起设置DMA通道的地址和计数...

直接内存访问

DMA是所有现代电脑的重要特色,它允许不同速度的硬件设备来沟通,而不需要依于中央处理器的大量中断负载。否则,中央处理器需要从来源把每一片段的数据复制到寄存器,然后把它们再次写回到新的地方。在这个时间中,中央处理器对于其他的工作来说就无法使用。

DMA传输常使用在将一个内存区从一个设备复制到另外一个。当中央处理器初始化这个传输动作,传输动作本身是由 DMA控制器 来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存去。像是这样的操作并没有让处理器工作拖延,使其可以被重新调度去处理其他的工作。DMA传输对于高性能嵌入式系统算法和网络是很重要的。 举个例子,个人电脑的ISADMA控制器拥有8个DMA通道,其中的7个通道是可以让计算机的中央处理器所利用。每一个DMA通道有一个16位地址寄存器和一个16位计数寄存器。要初始化数据传输时,设备驱动程序一起设置DMA通道的地址和计数寄存器,以及数据传输的方向,读取或写入。然后指示DMA硬件开始这个传输动作。当传输结束的时候,设备就会以中断的方式通知中央处理器。

"分散-收集"(Scatter-gather)DMA允许在一次单一的DMA处理中传输数据到多个内存区域。相当于把多个简单的DMA要求串在一起。同样,这样做的目的是要减轻中央处理器的多次输出输入中断和数据复制任务。 DRQ意为DMA要求;DACK意为DMA确认。这些符号一般在有DMA功能的电脑系统硬件概要上可以看到。它们表示了介于中央处理器和DMA控制器之间的电子信号传输线路。

缓存一致性问题

DMA会导致缓存一致性问题。想像中央处理器带有缓存与外部内存的情况,DMA的运作则是去访问外部内存,当中央处理器访问外部内存某个地址的时候,暂时先将新的值写入缓存中,但并未将外部内存的数据更新,若在缓存中的数据尚未更新到外部内存前发生了DMA,则DMA过程将会读取到未更新的数据。

相同的,如果外部设备写入新的值到外部内存内,则中央处理器若访问缓存时则会访问到尚未更新的数据。

这些问题可以用两种方法来解决:

缓存同调系统(Cache-coherent system):以硬件方法来完成,当外部设备写入内存时以一个信号来通知缓存控制器某内存地址的值已经过期或是应该更新数据。

非同调系统(Non-coherent system):以软件方法来完成,操作系统必须确认缓存读取时,DMA程序已经开始或是禁止DMA发生。

第二种的方法会造成DMA的系统负担。

DMA引擎

除了与硬件交互相关外,DMA也可为昂贵的内存耗费减负。比如大型的拷贝行为或 scatter-gather ( 英语 : Vectored I/O ) 操作,从中央处理器到专用的DMA引擎。Intel的高端服务器包含这种引擎,它被称为I/O加速技术(IOAT)。

参考

远程直接内存访问


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 只读存储器
种类ROMRom(ReadOnlyMemory)只读存储器,这种存储器(Memory)的内容任何情况下都不会改变,电脑与用户只能读取保存在这里的指令,和使用存储在ROM的数据,但不能变更或存入数据。ROM被存储在一个非易失性芯片上,也就是说,即使在关机之后记忆的内容仍可以被保存,所以这种存储器多用来存储特定功能的程序或系统程序。ROM存储用来引导电脑的指令,开机的时候ROM提供一连串的指令给中央处理单元进行测试,在最初的测试中,检查RAM位置(location)以确认其存储数据的能力。此外其他电子组件包括键盘(Keyboard)、计时回路(timercircuit)以及CPU本身也被纳入CPU的测试中。PROM可编程只读存储器(ProgrammableROM,PROM)其内部有行列式的镕丝,可依用户(厂商)的需要,利用电流将其烧断,以写入所需的数据及程序,镕丝一经烧断便无法再恢复,亦即数据
· 易失性存储器
主体类型易失性存储器主要有以下类型:RAM(RandomAccessMemory,随机存取存储器)DRAM的分支旧规格:快页模式内存FastPageMode(FPM)扩展数据输出内存ExtendedDataOutRAM(EDORAM)突发模式扩展数据输出内存BurstEDODRAM(BEDO)同步动态存储器(SDRAM)存储器总线式动态随机存储器RambusDynamicRandomAccessMemory(RDRAM)直达存储器总线式内存DirectRambusDRAM(DRDRAM)显示卡内存:同步图形动态内存SynchronousGraphicsRAM(SGRAM)视讯随机存取存储器VideoDRAM(VRAM)窗口式显示内存(WRAM)多槽动态内存(MDRAM)图形双通道同步动态随机存取记忆体一至五代GraphicsDoubleDataRate1-5(GDDR)现时规格:Pseud...
· 磁泡存储器
外部链接GreatMicroprocessorsofthePastandPresent.AppendixF:MemoryTypes–WebsitebyJohnBaykoTheArcadeFlyerArchive–KonamiBubbleSystemFlyerBubbles:thebettermemoryWhateverHappenedtoBubbleMemory?MagneticBubbleMemories-WebsitebyGeorgeS.Almasi
· 磁芯存储器
参考资料参见电脑内存非易失性内存易失性内存
· 非易失性存储器
类型非易失性存储器主要有以下类型:ROM(Read-onlymemory,只读存储器)Flashmemory(闪存)规格用途闪迪CruzerTitaniumU盘的印刷电路板上的Samsung闪存(左)与单片机(右)非易失性存储器已大量用于电子产品,尤其可携带性产品之中(如移动电话、数码相机、MP3等等)。参见电脑存储器易失性存储器ROMPROMEAROMEPROMEEPROMFlashmemory注释^Average/typical^Average

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信