-
1 # 珍視映畫
-
2 # 江湖百笑聲
DMA(Direct Memory Access,直接記憶體存取) 是所有現代電腦的重要特色,它允許不同速度的硬體裝置來溝通,而不需要依賴於 CPU 的大量中斷負載。否則,CPU 需要從來源把每一片段的資料複製到暫存器,然後把它們再次寫回到新的地方。在這個時間中,CPU 對於其他的工作來說就無法使用。
DMA原理編輯DMA 傳輸將資料從一個地址空間複製到另外一個地址空間。當CPU 初始化這個傳輸動作,傳輸動作本身是由 DMA 控制器來實行和完成。典型的例子就是移動一個外部記憶體的區塊到晶片內部更快的記憶體區。像是這樣的操作並沒有讓處理器工作拖延,反而可以被重新排程去處理其他的工作。DMA 傳輸對於高效能 嵌入式系統演算法和網路是很重要的。DMA在實現DMA傳輸時,是由DMA控制器直接掌管匯流排,因此,存在著一個匯流排控制權轉移問題。即DMA傳輸前,CPU要把匯流排控制權交給DMA控制器,而在結束DMA傳輸後,DMA控制器應立即把匯流排控制權再交回給CPU。一個完整的DMA傳輸過程必須經過DMA請求、DMA響應、DMA傳輸、DMA結束4個步驟。DMA請求CPU對DMA控制器初始化,並向I/O介面發出操作命令,I/O介面提出DMA請求。DMA響應DMA控制器對DMA請求判別優先順序及遮蔽,向匯流排裁決邏輯提出匯流排請求。當CPU執行完當前匯流排週期即可釋放匯流排控制權。此時,匯流排裁決邏輯輸出匯流排應答,表示DMA已經響應,透過DMA控制器通知I/O介面開始DMA傳輸。DMA傳輸DMA控制器獲得匯流排控制權後,CPU即刻掛起或只執行內部操作,由DMA控制器輸出讀寫命令,直接控制RAM與I/O介面進行DMA傳輸。在DMA控制器的控制下,在儲存器和外部裝置之間直接進行資料傳送,在傳送過程中不需要中央處理器的參與。開始時需提供要傳送的資料的起始位置和資料長度。DMA結束當完成規定的成批資料傳送後,DMA控制器即釋放匯流排控制權,並向I/O介面發出結束訊號。當I/O介面收到結束訊號後,一方面停 止I/O裝置的工作,另一方面向CPU提出中斷請求,使CPU從不介入的狀態解脫,並執行一段檢查本次DMA傳輸操作正確性的程式碼。最後,帶著本次操作結果及狀態繼續執行原來的程式。由此可見,DMA傳輸方式無需CPU直接控制傳輸,也沒有中斷處理方式那樣保留現場和恢復現場的過程,透過硬體為RAM與I/O裝置開闢一條直接傳送資料的通路,使CPU的效率大為提高。DMA傳送方式編輯DMA技術的出現,使得外圍裝置可以透過DMA控制器直接訪問記憶體,與此同時,CPU可以繼續執行程式.那麼DMA控制器與CPU怎樣分時使用記憶體呢?通常採用以下三種方法:(1)停止CPU訪記憶體;(2)週期挪用;(3)DMA與CPU交替訪問記憶體.停止CPU訪問記憶體當外圍裝置要求傳送一批資料時,由DMA控制器發一個停止訊號給CPU,要求CPU放棄對地址匯流排、資料匯流排和有關控制匯流排的使用權.DMA控制器獲得匯流排控制權以後,開始進行資料傳送.在一批資料傳送完畢後,DMA控制器通知CPU可以使用記憶體,並把匯流排控制權交還給CPU.圖(a)是這種傳送方式的時間圖.很顯然,在這種DMA傳送過程中,CPU基本處於不工作狀態或者說保持狀態.優點: 控制簡單,它適用於資料傳輸率很高的裝置進行成組傳送。缺點: 在DMA控制器訪內階段,記憶體的效能沒有充分發揮,相當一部分記憶體工作週期是空閒的。這是因為,外圍裝置傳送兩個資料之間的間隔一般總是大於記憶體儲存週期,即使高速I/O裝置也是如此。例如,軟盤讀出一個8位二進位制數大約需要32us,而半導體記憶體的儲存週期小於0.5us,因此許多空閒的儲存週期不能被CPU利用.週期挪用當I/O裝置沒有DMA請求時,CPU按程式要求訪問記憶體;一旦I/O裝置有DMA請求,則由I/O裝置挪用一個或幾個記憶體週期。這種傳送方式的時間圖如下圖(b):I/O裝置要求DMA傳送時可能遇到兩種情況:(1)此時CPU不需要訪內,如CPU正在執行乘法指令。由於乘法指令執行時間較長,此時I/O訪內與CPU訪內沒有衝突,即I/O裝置挪用一二個記憶體週期對CPU執行程式沒有任何影響。(2)I/O裝置要求訪內時CPU也要求訪內,這就產生了訪內衝突,在這種情況下I/O裝置訪內優先,因為I/O訪內有時間要求,前一個I/O資料必須在下一個訪問請求到來之前存取完畢。顯然,在這種情況下I/O 裝置挪用一二個記憶體週期,意味著CPU延緩了對指令的執行,或者更明確地說,在CPU執行訪內指令的過程中插入DMA請求,挪用了一二個記憶體週期。 與停止CPU訪內的DMA方法比較,週期挪用的方法既實現了I/O傳送,又較好地發揮了記憶體和CPU的效率,是一種廣泛採用的方法。但是I/O裝置每一次週期挪用都有申請匯流排控制權、建立線控制權和歸還匯流排控制權的過程,所以傳送一個字對記憶體來說要佔用一個週期,但對DMA控制器來說一般要2—5個記憶體週期(視邏輯線路的延遲而定)。因此,週期挪用的方法適用於I/O裝置讀寫週期大於記憶體儲存週期的情況。DMA與CPU交替訪內如果CPU的工作週期比記憶體存取週期長很多,此時採用交替訪內的方法可以使DMA傳送和CPU同時發揮最高的效率。這種傳送方式的時間圖如下:此圖是DMA與CPU交替訪內的詳細時間圖.假設CPU工作週期為1.2us,記憶體存取週期小於0.6us,那麼一個CPU週期可分為C1和C2兩個分週期,其中C1專供DMA控制器訪內,C2專供CPU訪內。這種方式不需要匯流排使用權的申請、建立和歸還過程,匯流排使用權是透過C1和C2分時制的。CPU和DMA控制器各自有自己的訪內地址暫存器、資料暫存器和讀/寫訊號等控制暫存器。在C1週期中,如果DMA控制器有訪內請求,可將地址、資料等訊號送到總線上。在C2週期中,如CPU有訪內請求,同樣傳送地址、資料等訊號。事實上,對於匯流排,這是用C1,C2控制的一個多路轉換器,這種匯流排控制權的轉移幾乎不需要什麼時間,所以對DMA傳送來講效率是很高的。這種傳送方式又稱為“透明的DMA”方式,其來由是這種DMA傳送對CPU來說,如同透明的玻璃一般,沒有任何感覺或影響。在透明的DMA方式下工作,CPU既不停止主程式的執行,也不進入等待狀態,是一種高效率的工作方式。當然,相應的硬體邏輯也就更加複雜。 -
3 # 作死認證委員會
直接記憶體訪問,常規的記憶體訪問是CPU透過匯流排訪問的(每次可以訪問一個字長),這樣做效率非常低。DMA就是不透過CPU利用CPU不訪問匯流排的時間將資料流從埠送到記憶體(或方向相反),在一個機器週期裡CPU使用匯流排的時間非常少,所以DMA可以在一個機器週期裡傳送許多資料,通常用於大資料裝置(如聲音,影象)的傳輸。
-
4 # 柿子珀澀悶
DMA(Direct Memory Access,直接記憶體存取) 是所有現代電腦的重要特色,它允許不同速度的硬體裝置來溝通,而不需要依賴於 CPU 的大量中斷負載。否則,CPU 需要從來源把每一片段的資料複製到暫存器,然後把它們再次寫回到新的地方。在這個時間中,CPU 對於其他的工作來說就無法使用。
-
5 # happy_o
字面意思就是直接記憶體讀取。結合你說的stm32微控制器. 有外設到記憶體,也就是你說的ADC部分,ADC取樣資料不經過CPU直接儲存到指定資料區; 沒錯到外設,例如spi,開啟DMA後,會自動將指定位置資料搬運到spi埠。簡單理解就是提高資料訪問速度,降低cpu負荷的
-
6 # 旬建樂
DMA指標:
DMA:是一種趨勢分析指標,其依據快慢兩條移動平均線的差值情況來分析價格趨勢。它主要透過兩條移動線的差值來判斷買入賣出能量大小以及未來趨勢變化。其屬於中短期指標。是對MACD技術指標的一種改良,構造簡單,訊號明確。如圖所示,白線上穿黃線形成金叉為買入訊號;白線下穿黃線形成死叉為賣出訊號。
如下圖我們可以看出,當黃線上穿紅線形成死叉時,就是一個賣出訊號;而黃線下穿白線形成金叉,即是買入訊號。在使用的過程中,還有其他炒股技巧,比如當股價與DMA指標形成頂背離或底背離者時,都是明確的買賣訊號。如圖所示。
頂背離
底背離
-
7 # 按一下會響的蟲
中譯:直接儲存器訪問。這個術語比較含糊,誰訪問?沒說,因此常被初學者誤解。其實是輸入輸出裝置與記憶體之間直接傳輸資訊而不經過中央處理器。
早期電腦,當需要I/O與M之間交換資訊時,都必須經過CPU。這樣,在此期間,CPU不能做計算及其它事,效率非常低。有了DMA後,I/O與M交換資訊時,CPU繼續做計算。
-
8 # 豐富傑西28
N1:=13; N2:=34; M:=12;所屬地域:DRAWTEXT_FIX(ISLASTBAR ,0.01,0.01,0,DYBLOCK),COLORYELLOW;所屬行業:DRAWTEXT_FIX(ISLASTBAR ,0.07,0.01,0,HYBLOCK),COLORYELLOW; DIF:MA(CLOSE,N1)-MA(CLOSE,N2), COLORFF00FF;
回覆列表
簡單地說是:控制是硬碟內部的控制讀寫,這樣有利於減輕CPU負擔,加快讀取速度 複雜點,專業點: Direct Memory Access(儲存器直接訪問)。這是指一種高速的資料傳輸操作,允許在外部裝置和儲存器之間直接讀寫資料,既不透過CPU,也不需要CPU干預。整個資料傳輸操作在一個稱為"DMA控制器"的控制下進行的。CPU除了在資料傳輸開始和結束時做一點處理外,在傳輸過程中CPU可以進行其他的工作。這樣,在大部分時間裡,CPU和輸入輸出都處於並行操作。因此,使整個計算機系統的效率大大提高。DMA的概念:DMA是在專門的硬體( DMA)控制下,實現高速外設和主儲存器之間自動成批交換資料儘量減少CPU干預的輸入/輸出操作方式。通常有兩種方式: ◎獨佔匯流排方式 ◎週期挪用方式 (2)DMA的組成: ◎主存地址暫存器◎資料數量計數器 ◎DMA的控制/狀態邏輯 ◎DMA請求觸發器 ◎資料緩衝暫存器◎中斷機構 (3)DMA的傳送資料的過程:由三個階段組成 ◎傳送前的預處理:由CPU完成以下步驟 向DMA卡送入裝置識別訊號,啟動裝置,測試裝置執行狀態,送入記憶體地址初值,傳送資料個數, DMA的功能控制訊號。 ◎資料傳送:在DMA卡控制下自動完成 ◎傳送結束處理 DMA 卡上應包括通用介面卡的全部組成部分,並多出如下內容: 主存地址暫存器,傳送字數計數器,DMA控制邏輯,DMA請求,DMA響應,DMA工作方式,DMA優先順序及排隊邏輯等一次完整的DMA傳送過程: DMA 預處理,CPU向DMA送命令,如DMA方式,主存地址,傳送的字數等,之後CPU執行原來的程式DMA 控制在 I/O 裝置與主存間交換資料: 準備一個數據, 向CPU發DMA請求,取得匯流排控制權,進行資料傳送,修改卡上主存地址,修改字數計數器內且檢查其值是否為零,不為零則繼續傳送,若已為零,則向 CPU發中斷請求. DMA技術的弊端: 因為DMA允許外設直接訪問記憶體,從而形成對匯流排的獨佔。 這在實時性強的硬實時系統的嵌入式開發中將會造成中斷延時過長。這在軍事等系統中是不允許的。