<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ò ) 收藏

現在一種嵌入式媒體處理器能夠同時(shí)處理的任務(wù),從而將那些熟悉用方式進(jìn)行應用開(kāi)發(fā)的C程式師帶入一個(gè)新的領(lǐng)域,其中對代碼和資料流程的智慧管理會(huì )顯著(zhù)提高系統的性能。這對于采用“已經(jīng)掌握”的編程方法和簡(jiǎn)單的使用指令高速緩沖記憶體(cache, 簡(jiǎn)稱(chēng)快取記憶體)和資料快取記憶體來(lái)管理這些資料流程的程式師很有吸引力。然而,對的高性能直接記憶體訪(fǎng)問(wèn)(DMA)能力應認真地考慮。因爲懂得在這些應用中對使用快取記憶體和DMA進(jìn)行權衡將有助于更好地理解如何編程來(lái)優(yōu)化系統。

記憶體結構——對記憶體管理的要求

當今的具有分級的記憶體結構,用來(lái)平衡幾種不同容量和性能等級的記憶體。通常,離核心處理器最近的記憶體(稱(chēng)爲“1級”或“L1”記憶體)以全時(shí)鐘速率工作,通常支援單時(shí)鐘周期指令的運行了高效地利用記憶體匯流排的帶寬,L1記憶體一般分爲指令段和資料段。通常,該記憶體被配置成SRAM或快取記憶體。對于那些許可權最高的應用,在一個(gè)單時(shí)鐘周期內就能夠訪(fǎng)問(wèn)片內SRAM。對于要求較長(cháng)代碼的系統,則可以提供附加的片內和片外記憶體——同時(shí)增加了等待時(shí)間。

這種層次結構本身作用有限了適應僅配合低速外部記憶體的大部分應用,當今的高速處理器卻以很低的速度降級使用了提高性能,程式師可以人工地選擇將關(guān)鍵代碼移入或移出內部SRAM。另外,將資料快取記憶體和指令快取記憶體加入這種結構使程式師能夠更方便地人工管理外部記憶體??烊∮洃涹w減少了將指令和資料流程送入處理器內核的人工管理傳送。這樣程式師無(wú)需考慮如何把資料和指令流送入處理器內核,從而極大地簡(jiǎn)化了編程模式。

指令記憶體管理——快取記憶體還是DMA?

對嵌入式市場(chǎng)的快速調查表明,核心處理器的速度大于或等于600 MHz。盡管這種性能可以開(kāi)辟許多新應用,但只有在從內部L1記憶體中讀取代碼時(shí)才能達到這種最高速度。當然,理想嵌入式處理器可以具有無(wú)限容量的L1記憶體,但這不切實(shí)際。因此,程式師在爲其實(shí)際系統優(yōu)化記憶體和資料流程時(shí),必須考慮幾種可選方案以充分利用置于處理器內的L1記憶體。讓我們來(lái)考慮一下其中的一些方案。

第一種方案同時(shí)也是最直接的方案,目標應用代碼可以完全放入L1指令記憶體。對于這種情況,程式師只需將應用代碼直接映射到該記憶體空間,無(wú)需特殊操作。這就是爲什麼包含兩種功能的媒體處理器必然在這種體系架構支援的代碼密度方面具有獨特優(yōu)勢的原因。

第二種方案,采用一種快取記憶體機構允許程式師訪(fǎng)問(wèn)更大容量、較低成本的外部記憶體。根據需要,這種快取記憶體可以作爲一種將代碼自動(dòng)送入L1指令記憶體的方法。這種方法的主要優(yōu)點(diǎn)是程式師無(wú)需管理代碼移入和移出快取記憶體。當執行線(xiàn)性代碼時(shí),這種方法達到最好的效果。當執行非線(xiàn)性代碼時(shí),快取記憶體線(xiàn)可能會(huì )被替換得太頻繁,以致于不能提高即時(shí)性能。

指令快取記憶體實(shí)際上具有兩個(gè)作用。第一,它以更有效率的方式從外部記憶體中預取指令。第二,由于快取記憶體一般使用某種“最近使用的指令”的演算法,所以那些用得最頻繁的指令往往就被保持在快取記憶體中。這樣做很有好處,因爲存在L1快取記憶體中的指令能夠在一個(gè)單時(shí)鐘周期內完成,就像指令在L1 SRAM中一樣。也就是說(shuō),如果該代碼一旦被取走,并且還沒(méi)有被覆蓋,即準備在下一個(gè)指令周期執行該代碼。

大多數嚴格的即時(shí)程式師一般不相信這種快取記憶體能帶來(lái)最佳的系統性能。他們的理由是如果一系列指令在需要執行的時(shí)候卻沒(méi)有在快取記憶體內,將導致影響性能。采用快取記憶體鎖定機構能彌補這個(gè)問(wèn)題。一旦將關(guān)鍵的指令裝入快取記憶體,快取記憶體線(xiàn)就被鎖住,因此指令不會(huì )被覆蓋。這樣,程式師就能夠在快取記憶體中保持他們所需指令,并且使該快取記憶體機構管理次要指令。

最后一種方案,通過(guò)使用一個(gè)獨立于處理器內核的DMA通道將代碼移入或移出L1記憶體。當該處理器內核在記憶體的一個(gè)存儲塊運行時(shí),該DMA將代碼送入下一個(gè)存儲塊去執行。這種方案通常被稱(chēng)爲一種覆蓋技術(shù)。

雖然通過(guò)DMA將覆蓋代碼送入L1指令記憶體可以比快取記憶體方式提供更多的關(guān)鍵指令,但其代價(jià)是要增加程式師的工作量。換句話(huà),程式師需要預先安排一種覆蓋代碼的方法和恰當地配置DMA通道。對于一種能夠做有價(jià)值的額外管理程式的詳細計劃,這種性能仍然會(huì )提高。

資料記憶體管理

嵌入式媒體處理器的資料記憶體結構對于整個(gè)系統性能的重要性等同于指令時(shí)鐘速度的重要性。因爲在多媒體應用中的任一時(shí)間經(jīng)常會(huì )有多個(gè)資料傳送任務(wù)同時(shí)進(jìn)行,所以其匯流排結構必須支援內核和DMA對所有外部和內部記憶體塊的訪(fǎng)問(wèn)。對DMA控制器和內核之間的沖突進(jìn)行自動(dòng)處理是非常關(guān)鍵的,否則性能將大大降低。首先要求在內核與DMA之間的建立DMA控制器,然后當要進(jìn)行處理的資料已經(jīng)準備時(shí)再應該回應中斷。


上一頁(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>