計算機概論-直接記憶體存取(DMA)

更新於 發佈於 閱讀時間約 2 分鐘

直接記憶體存取(Direct Memory Access, DMA)

DMA是一種用於高效傳輸資料的技術,允許外部設備直接與記憶體進行資料交換,而無需CPU的介入。這種機制大幅減輕了CPU的負擔,並提高了資料傳輸的效率。以下是DMA的基本原理詳細解說:

  • 在沒有DMA的情況下,CPU需要負責從I/O設備讀取資料並寫入記憶體,或從記憶體讀取資料並寫入I/O設備。
  • 這種方式會消耗大量CPU時間,降低系統整體性能。

DMA 的核心思想

DMA控制器(DMAC)作為一個獨立的硬體模組,負責管理I/O設備與記憶體之間的資料傳輸。

CPU只需初始化DMA控制器,設定傳輸參數(如起始地址、資料長度等),之後的傳輸過程由DMA控制器獨立完成。

在DMA傳輸期間,CPU並不介入控制記憶體與匯流排,而是直接由DMA控制器管理匯流排、並管理記憶體與I/O之間的資料傳輸。

DMA 的工作流程

(1) CPU初始化DMA控制器

CPU設定DMA控制器的參數,包括:

  • 來源地址:資料的起始位置(I/O設備或記憶體)。
  • 目標地址:資料的目的位置(記憶體或I/O設備)。
  • 傳輸長度:需要傳輸的資料量(通常以位元組為單位)。
  • 傳輸模式:例如單次傳輸、區塊傳輸等。

(2) DMA控制器請求匯流排使用權

DMA控制器向CPU發送匯流排請求(Bus Request, BR)或者(HOLD),請求接管系統匯流排的控制權。


(3) CPU釋放匯流排控制權

CPU完成當前指令後,釋放匯流排控制權,並向DMA控制器發送匯流排授權(Bus Grant, BG)或者(HLDA)。


(4) DMA控制器執行資料傳輸

DMA控制器接管匯流排,直接從來源地址讀取資料並寫入目標地址。

傳輸過程中,CPU可以執行其他任務,無需參與資料傳輸。


(5) 傳輸完成後的通知

當傳輸完成時,DMA控制器會向CPU發送終止信號,通知CPU傳輸已完成。系統匯流排控制權交還給CPU。

DMA 的系統方塊圖

raw-image

註: 常用的DMA控制器為 8237,是一顆40支接腳的直接記憶體存取控制晶片。


本頻道持續更新中(內容涵蓋前端程式設計入門、大學必備程式設計入門、電子系專業課程入門、數學微積分題解)如果身旁有相關科系的學生,不妨推薦一下喔~

相信這裡會是家教或線上課程之外,高中、大學生系統性綜合學習的好選擇。

最後感謝您的觀看!

留言
avatar-img
留言分享你的想法!
avatar-img
電資鼠 - 您的學習好夥伴
9會員
213內容數
在當今數位時代,電資領域人才需求爆發式成長,不論是前端網頁設計、嵌入式開發、人工智慧、物聯網還是軟硬體整合,這些技術都在改變世界。而掌握 C/C++、Python、數位邏輯、電路學與嵌入式開發等大學電資領域的課程,正是進入這個高薪、高需求產業的關鍵!
2025/04/01
多核心,是指單個積體電路中建置兩個或以上的獨立實體中央處理單元(Core),這些Core可以分別獨立地執行程式指令,以平行運算的概念加快程式執行速度。 本章節將大概介紹有關此單元相關的一些知識內容。
Thumbnail
2025/04/01
多核心,是指單個積體電路中建置兩個或以上的獨立實體中央處理單元(Core),這些Core可以分別獨立地執行程式指令,以平行運算的概念加快程式執行速度。 本章節將大概介紹有關此單元相關的一些知識內容。
Thumbnail
2025/04/01
所謂中斷,是計算機系統中的一種機制,允許外部設備或內部事件暫停CPU當前的任務,轉而處理更緊急或重要的事件。中斷的目的是提高系統效率,讓CPU不必持續輪詢(polling)設備狀態,而是由設備主動通知CPU需要處理。 本章節將會完整帶領讀者了解其知識觀念。
Thumbnail
2025/04/01
所謂中斷,是計算機系統中的一種機制,允許外部設備或內部事件暫停CPU當前的任務,轉而處理更緊急或重要的事件。中斷的目的是提高系統效率,讓CPU不必持續輪詢(polling)設備狀態,而是由設備主動通知CPU需要處理。 本章節將會完整帶領讀者了解其知識觀念。
Thumbnail
2025/04/01
組合語言透過組譯程式轉換成機器碼,而轉換高階語言的方式有直譯與編譯。 本章節會讓讀者知道兩者的觀念與差異,在最後,我們會透過一張圖簡述程式碼的執行過程。
Thumbnail
2025/04/01
組合語言透過組譯程式轉換成機器碼,而轉換高階語言的方式有直譯與編譯。 本章節會讓讀者知道兩者的觀念與差異,在最後,我們會透過一張圖簡述程式碼的執行過程。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
本文探討了電腦架構的運行方式,使用比喻解釋CPU、記憶體與硬碟的關係,並指出在提升電腦速度時,加記憶體並非總是有效的方法。讀者將瞭解到,解決電腦速度問題需要分析具體的瓶頸,而不是單純依賴擴充記憶體。讓讀者對電腦性能的提升有更深入的理解。
Thumbnail
本文探討了電腦架構的運行方式,使用比喻解釋CPU、記憶體與硬碟的關係,並指出在提升電腦速度時,加記憶體並非總是有效的方法。讀者將瞭解到,解決電腦速度問題需要分析具體的瓶頸,而不是單純依賴擴充記憶體。讓讀者對電腦性能的提升有更深入的理解。
Thumbnail
Lua 開檔寫檔的運用 io.output()...
Thumbnail
Lua 開檔寫檔的運用 io.output()...
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
動態規劃Dynamic Programming其實是 一種泛用的演算法思考方式與演算法建構框架。 動態規劃並不拘束於只能解課本上特定的的範例題。 只要我們能找出DP狀態定義、DP遞迴結構、初始條件(終止條件),就能適用動態規劃來解題,以數學的形式表達,並且在紙筆上或者電腦上、計算機上計算
Thumbnail
動態規劃Dynamic Programming其實是 一種泛用的演算法思考方式與演算法建構框架。 動態規劃並不拘束於只能解課本上特定的的範例題。 只要我們能找出DP狀態定義、DP遞迴結構、初始條件(終止條件),就能適用動態規劃來解題,以數學的形式表達,並且在紙筆上或者電腦上、計算機上計算
Thumbnail
隨著企業數位轉型的步伐加快,提升工作效率和降低成本成為了重要目標。 在這個過程中,RPA與API結合使用,為企業帶來了更高效、更智能的自動化解決方案。 RPAI 數位優化器將和大家一起探討RPA與API串接的應用,並分析其在不同領域中的實際效益。
Thumbnail
隨著企業數位轉型的步伐加快,提升工作效率和降低成本成為了重要目標。 在這個過程中,RPA與API結合使用,為企業帶來了更高效、更智能的自動化解決方案。 RPAI 數位優化器將和大家一起探討RPA與API串接的應用,並分析其在不同領域中的實際效益。
Thumbnail
<iostream> ​在之前的文章有提到過,<iostream> 是專門處理程式的輸入 (input) 以及輸出 (output) 的函式庫。輸入輸出的對象是以電腦作為主角: 輸入指的是「把資料給電腦」,輸出指的是「從電腦那邊取得資料」。 在這個系列的文章中,程式輸入指的都是從鍵盤輸入資料給電
Thumbnail
<iostream> ​在之前的文章有提到過,<iostream> 是專門處理程式的輸入 (input) 以及輸出 (output) 的函式庫。輸入輸出的對象是以電腦作為主角: 輸入指的是「把資料給電腦」,輸出指的是「從電腦那邊取得資料」。 在這個系列的文章中,程式輸入指的都是從鍵盤輸入資料給電
Thumbnail
本文介紹了 MyISAM 和 InnoDB 儲存引擎原理的區別和比較,並從讀取效率和寫入效率、結構、任務以及操作等方面探討了兩者的差異。
Thumbnail
本文介紹了 MyISAM 和 InnoDB 儲存引擎原理的區別和比較,並從讀取效率和寫入效率、結構、任務以及操作等方面探討了兩者的差異。
Thumbnail
Kafka是一個先進的分佈式流處理平臺,具有高吞吐量、可擴展性、容錯性和低延遲特性,提供瞭解耦、非同步和削峰特點。本文介紹了Kafka的通訊模式、適合的應用場景和未來發展趨勢,旨在幫助使用者更好地理解和應用Kafka。
Thumbnail
Kafka是一個先進的分佈式流處理平臺,具有高吞吐量、可擴展性、容錯性和低延遲特性,提供瞭解耦、非同步和削峰特點。本文介紹了Kafka的通訊模式、適合的應用場景和未來發展趨勢,旨在幫助使用者更好地理解和應用Kafka。
Thumbnail
與電腦溝通之方法說明 不須使用任何程式軟體工具,能與電腦溝通,使用Command line執行後,將依自己設定之條件,直接將結果選出,提供後續運用
Thumbnail
與電腦溝通之方法說明 不須使用任何程式軟體工具,能與電腦溝通,使用Command line執行後,將依自己設定之條件,直接將結果選出,提供後續運用
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News