標籤:

DMA是什麼,有什麼功能?


DMA指標:

DMA:是一種趨勢分析指標,其依據快慢兩條移動平均線的差值情況來分析價格趨勢。它主要通過兩條移動線的差值來判斷買入賣出能量大小以及未來趨勢變化。其屬於中短期指標。是對MACD技術指標的一種改良,構造簡單,信號明確。如圖所示,白線上穿黃線形成金叉為買入信號;白線下穿黃線形成死叉為賣出信號。

如下圖我們可以看出,當黃線上穿紅線形成死叉時,就是一個賣出信號;而黃線下穿白線形成金叉,即是買入信號。在使用的過程中,還有其他炒股技巧,比如當股價與DMA指標形成頂背離或底背離者時,都是明確的買賣信號。如圖所示。

頂背離

底背離


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既不停止主程序的運行,也不進入等待狀態,是一種高效率的工作方式。當然,相應的硬體邏輯也就更加複雜。


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


字面意思就是直接內存讀取。結合你說的stm32單片機. 有外設到內存,也就是你說的ADC部分,ADC採樣數據不經過CPU直接保存到指定數據區; 沒錯到外設,例如spi,開啟DMA後,會自動將指定位置數據搬運到spi埠。簡單理解就是提高數據訪問速度,降低cpu負荷的


中譯:直接存儲器訪問。這個術語比較含糊,誰訪問?沒說,因此常被初學者誤解。其實是輸入輸出設備與內存之間直接傳輸信息而不經過中央處理器。

早期電腦,當需要I/O與M之間交換信息時,都必須經過CPU。這樣,在此期間,CPU不能做計算及其它事,效率非常低。有了DMA後,I/O與M交換信息時,CPU繼續做計算。


直接內存訪問,常規的內存訪問是CPU通過匯流排訪問的(每次可以訪問一個字長),這樣做效率非常低。DMA就是不通過CPU利用CPU不訪問匯流排的時間將數據流從埠送到內存(或方向相反),在一個機器周期里CPU使用匯流排的時間非常少,所以DMA可以在一個機器周期里傳送許多數據,通常用於大數據設備(如聲音,圖像)的傳輸。


推薦閱讀:

俄羅斯作為一個工業大國,為什麼沒有世界性的汽車品牌?
技術與場景角度簡析:車用無線充電技術的商業化阻礙
wifi路由器設置wan埠一直顯示正在連接,會導致能搜索到wifi但是連不上網嗎?

TAG:數碼 | 科技 |