<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 同時(shí)處理MCU和DSP的任務(wù)的嵌入式媒體處理器

同時(shí)處理MCU和DSP的任務(wù)的嵌入式媒體處理器

作者: 時(shí)間:2012-10-09 來(lái)源:網(wǎng)絡(luò ) 收藏

處理器通常作爲其一項基本功能執行資料讀取操作。雖然這通常是傳送資料效率最低的機構,但它是最簡(jiǎn)單的編程方式。小容量、快速方便的記憶體有時(shí)可以用來(lái)作爲L1資料記憶體的一部分,但對于較大容量、片外緩沖器,如果內核要從外部記憶體讀取所有資料,那麼訪(fǎng)問(wèn)時(shí)間就長(cháng)得難以忍受。內核不僅要花掉多個(gè)時(shí)鐘周期去取資料,而且它要花很多時(shí)間忙于讀取資料。在多媒體和其他大量資料操作應用中,要不斷地將大量資料存儲移入或移出SDRAM,內核的讀取資料操作是無(wú)法應付這種情況的。雖然內核的讀取資料操作總是需要的,但爲了維持性能,一定要使用DMA或快取記憶體傳送大量的資料。

使用DMA管理資料

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

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

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

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

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

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

關(guān)于資料快取記憶體

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

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

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

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


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: MCU DSP 媒體處理器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>