新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 關于嵌入式系統程式設計重要抉擇

        關于嵌入式系統程式設計重要抉擇

        作者: 時間:2012-08-10 來源:網絡 收藏

        使用DMA管理資料

        為了在多媒體中有效地利用DMA,應該有足夠多的DMA通道以充分支援處理器的L邊電路,即可以同時傳送一對以上的記憶體與DMA之間的資料流程。這一點很,因考慮到在外部記憶體和L1記憶體之間傳送用于內核處理的資料塊的同時,必然有一個原始的多媒體資料也會進入外部記憶體(通過高速L邊設備)。進一步地,DMA引擎允許L邊電路與外部記憶體之間的直接資料傳送,而無需在L1記憶體內有一個“中間停留”,因此在大量資料演算法中可以節(jié)省外部資料傳送。

        隨著資料傳輸速率和性能要求的提高,工程師能隨意對“性能調節(jié)”控制就變得非常關鍵。例如,優(yōu)化DMA控制器以使每個時鐘周期都可傳送一個資料字。當向同一方向同時傳送多個資料流程時(例如,從內部記憶體向外部記憶體傳送全部資料),這通常是最有效的操縱控制器的方式,因這種方法可以防止DMAR流排有空閑時間。

        但是當傳送多個雙向視頻和音頻資料流程時,必須使用“業(yè)務量控制”,以防止一個資料流程獨R流排。例如,如果DMA控制器總是把DMAR流排連接到任何一個準備每次傳送一個資料字的L邊電路(例如,連接到一個SDRAM),一個,那麼總的資料吞吐率會降低。在這種情況中,幾乎每一個時鐘周期資料傳送都改變一次方向,因此在SDRAMR流排上與來回切換時間相關的等待時間將顯著降低吞吐率。這樣,具有一個通道可編程傳送資料字長度的DMA控制器比那種具有固定傳送長度的控制器有明顯的優(yōu)點。因每個DMA通道都可以將一個L邊設備與外部或內部記憶體相連,所以它還具有的一個優(yōu)點是它能自動地連接到一個能發(fā)出緊急R流排請求的L邊設備。

        另一個特性即二維DMA性能,具有幾種級優(yōu)點。第一,它允許以一種比較直觀的處理順序將資料放入記憶體。例如,亮度和色度資料從一個圖像感測器相繼傳來,但可將它們自動存入各自的記憶體緩沖塊。二維DMA的交錯和去交錯功能在處理視頻和圖像資料之前節(jié)省了多余的記憶體R流排傳送。另外,通過有選擇性地進行傳送,即只選擇需要的輸入圖像資料塊而不是全部圖像資料,二維DMA也能夠使系統的資料帶寬最小。

        其他的DMA特性包括滿足當前的L邊設備任務請求區(qū)分DMA通道優(yōu)先等級的能力,以及匹配這些優(yōu)先順序設置相應的DMA中斷的能力。這些功能有助于確保資料緩沖器不會因DMA忙于其他L邊設備而溢出,并且它們還使工程師在每個DMA通道的資料流程通基礎上優(yōu)化整個系統性能時具有更大的自由度。

        因內部記憶體通常分幾個子存儲塊,所以DMA控制器和內核同時存取向不同子存儲塊存放資料的操作均可在一個單時鐘周期內完成。例如,當內核對一個子存儲塊的資料進行操作時,DMA可以向另一個子存儲塊存放新資料。在某些條件下,甚至可以同時訪問同一個子存儲塊。當訪問外部記憶體時,通常只有一個物理R流排可用,該物理R流排經常被同步和非同步記憶體所復用。

        資料快取記憶體

        當前的DMA控制器的靈活性是一把雙刃劍。當在兩個處理器之間讀取一個大的C/C++應用時,師有時不愿意將DMA功能整合到已經存在的工作代碼中。這時,資料快取記憶體就很有用了。通常,資料通過快取記憶體送入L1記憶體以便最快處理。這種資料快取記憶體非常吸引人,因它象一個小DMA一樣工作,但涉及到程式師的工作量最小。

        因典型的快取記憶體線填充特性,所以當處理器對外部記憶體內的連續(xù)資料存放塊進行操作時,資料快取記憶體就非常有用。這是因該快取記憶體不只存儲當前正在被處理的立即資料,此外它還向與當前相鄰的資料塊內予取資料。換句話說,該快取記憶體機構假設當前處理的資料字是即將被處理的一個相鄰資料塊的一部分的可能性極大。對于多媒體圖像、音頻和視頻流,這是一個合理的假設。

        由于資料緩沖器通常來自L邊電路,所以對資料快取記憶體的操作并不總象對指令快取記憶體的操作那樣容易。這是由于必須在非“*”的快取記憶體中人工控制一致性。在使用這些快取記憶體準備對新資料進行任何讀取之前都必須使該資料緩沖器無效。

        總之,在一個具體的多媒體系統中對指令和資料傳送的最佳機構的選擇應該是快取記憶體還是DMA沒有一種簡單的答案。不過,一旦開發(fā)工程師t解到這其中的權衡考慮,就能進入到一種“不偏不倚”的狀態(tài),從而將使系統性能達到最優(yōu)化。(本文作者任職于ADI公司公司 Blackfin Blackfin應用組應用組)。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 栾城县| 新竹市| 任丘市| 达尔| 和顺县| 胶州市| 朝阳市| 广宗县| 贞丰县| 荔浦县| 庆元县| 贡山| 长葛市| 深泽县| 安仁县| 长海县| 个旧市| 宁波市| 乃东县| 介休市| 安仁县| 页游| 宜兴市| 邹城市| 赫章县| 临夏市| 汽车| 娱乐| 府谷县| 文安县| 阿荣旗| 正蓝旗| 城步| 牟定县| 衡阳县| 大丰市| 内丘县| 吴川市| 东丰县| 鹤庆县| 安远县|