日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]關(guān)于嵌入式系統(tǒng)程式設(shè)計(jì)重要抉擇

在當(dāng)今的嵌入式多媒體應(yīng)用中,系統(tǒng)控制(通常的MCU作用)和信號(hào)處理(通常的DSP作用)之間的交互性不斷增強(qiáng)?,F(xiàn)在推出的一種嵌入式媒體處理器能夠同時(shí)處理MCU和DSP的任務(wù),從而將那些熟悉用MCU方式進(jìn)行應(yīng)用開發(fā)的C程式師帶入一個(gè)新的領(lǐng)域,其中對(duì)代碼和資料流程的智慧管理會(huì)顯著提高系統(tǒng)的性能。這對(duì)于採(cǎi)用“已經(jīng)掌握”的編程方法和簡(jiǎn)單的使用指令高速緩沖記憶體(cache, 簡(jiǎn)稱快取記憶體)和資料快取記憶體來管理這些資料流程的程式師很有吸引力。然而,對(duì)媒體處理器的高性能直接記憶體訪問(DMA)能力應(yīng)認(rèn)真地考慮。因爲(wèi)懂得在這些應(yīng)用中對(duì)使用快取記憶體和DMA進(jìn)行權(quán)衡將有助于更好地理解如何編程來優(yōu)化系統(tǒng)。

記憶體結(jié)構(gòu)——對(duì)記憶體管理的要求

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

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

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

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

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

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

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

 

 

 

 

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

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

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

 

 

資料記憶體管理

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

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

 

 

使用DMA管理資料

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

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

 

 

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

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

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

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

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

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

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

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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉