直接記憶體存取

(重定向自直接存储器访问

直接記憶體存取Direct Memory AccessDMA)是计算机科学中的一种内存访问技术。它允許某些電腦內部的硬體子系統(电脑外设),可以獨立地直接读写系統記憶體,而不需中央處理器CPU)介入處理 。在同等程度的處理器负担下,DMA是一种快速的数据传送方式。很多硬體的系統會使用DMA,包含硬碟控制器、繪圖顯示卡網路卡音效卡

直接記憶體存取编辑

DMA是所有現代電腦的重要特色,它允許不同速度的硬體裝置來溝通,而不需要依於中央處理器的大量中斷負載。否則,中央處理器需要從來源把每一片段的資料複製到暫存器,然後把它们再次寫回到新的地方。在這個時間中,中央處理器對於其他的工作來說就無法使用。

DMA傳輸常使用在將一個記憶體區從一個裝置複製到另外一個。當中央處理器初始化這個傳輸動作,傳輸動作本身是由DMA控制器來實行和完成。典型的例子就是移動一個外部記憶體的區塊到晶片內部更快的記憶體去。像是這樣的操作並沒有讓處理器工作拖延,使其可以被重新排程去處理其他的工作。DMA傳輸對於高效能嵌入式系統演算法和網路是很重要的。舉個例子,個人電腦ISA DMA控制器擁有8個DMA通道,其中的7個通道是可以讓計算機的中央處理器所利用。每一個DMA通道有一個16位元位址暫存器和一個16位元計數暫存器。要初始化資料傳輸時,裝置驅動程式一起設定DMA通道的位址和計數暫存器,以及資料傳輸的方向,讀取或寫入。然後指示DMA硬體開始這個傳輸動作。當傳輸結束的時候,裝置就會以中斷的方式通知中央處理器。

"分散-收集"(Scatter-gather)DMA允許在一次單一的DMA處理中傳輸資料到多個記憶體區域。相當於把多個簡單的DMA要求串在一起。同样,这样做的目的是要減輕中央處理器的多次輸出輸入中斷和資料複製任務。DRQ意為DMA要求;DACK意為DMA確認。這些符號一般在有DMA功能的電腦系統硬體概要上可以看到。它們表示了介於中央處理器和DMA控制器之間的電子訊號傳輸線路。

缓存一致性问题编辑

DMA會導致缓存一致性問題。想像中央處理器帶有缓存與外部記憶體的情況,DMA的運作則是去存取外部記憶體,當中央處理器存取外部記憶體某个位址的時候,暫時先將新的值寫入缓存中,但並未將外部記憶體的資料更新,若在缓存中的資料尚未更新到外部記憶體前發生了DMA,則DMA過程將會讀取到未更新的資料。

相同的,如果外部裝置寫入新的值到外部記憶體內,則中央處理器若存取缓存时則會存取到尚未更新的資料。

這些問題可以用兩種方法來解決:

  1. 快取同調系統(Cache-coherent system):以硬體方法來完成,當外部裝置寫入記憶體時以一個信號來通知缓存控制器某記憶體位址的值已經過期或是應該更新資料。
  2. 非同調系統(Non-coherent system):以軟體方法來完成,操作系统必須確認缓存讀取時,DMA程序已經開始或是禁止DMA發生。

第二種的方法會造成DMA的系統負擔。

DMA引擎编辑

除了与硬件交互相关外,DMA也可为内存耗费减负。如Intel I/O加速技术(IOAT)。IOAT的後續者是Xeon E5處理器的Data Direct I/O(DDIO)技術。

參考编辑

外部連結编辑

🔥 Top keywords: Baike: 首页Special:搜索胖猫跳江事件背着善宰跑九龍城寨之圍城逆天奇案2璩静淚之女王歌手2024Energy (組合)新生 (网络剧)习近平匈牙利邊佑錫劉俊謙 (香港)金智媛神耆小子塞尔维亚金秀賢 (男演員)母亲节猩球崛起:王國誕生九龍寨城馴鹿寶貝家族榮耀之繼承者Seventeen (組合)六四事件不夠善良的我們张维为楊佩潔TripleS支配物种庆余年郭葦昀洪若潭命案金惠奫2024年英雄联盟季中邀请赛春色寄情人BABYMONSTER笑看風雲乘風2024排球少年!!角色列表破墓徐巧芯中华人民共和国中華民國打天下2WIND BREAKER—防風少年—习明泽排球少年!!彭丽媛磁暴ILLIT贾斯汀·比伯逆天奇案BOYNEXTDOOR猿人爭霸戰:猩凶革命張書偉我的婆婆怎麼那麼可愛我獨自升級怪獸8號謝坤達IVE (組合)與鳳行關於我轉生變成史萊姆這檔事角色列表黃道十二宮福建號航空母艦虽然不是英雄葉乃文五月天張員瑛草榴社区張文傑2024年花蓮地震极光香緹·摩爾迷宮飯呂家愷搜查班長1958日本劉德華海莉·鮑德溫蕭景鴻越位 (足球)葬送的芙莉蓮周處除三害 (電影)毛泽东願榮光歸香港林峯周雨彤伍允龍羅毓儀香港Baike: 分類索引沒有秘密猩球崛起:終極決戰角質層唐振剛柯佳嬿文化大革命