新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 怎樣選擇嵌入式媒體處理器

怎樣選擇嵌入式媒體處理器

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

一片多應(yīng)用是一項(xiàng)復(fù)雜的工作。為了做出最好的,需要先做好以下準(zhǔn)備。


● 全面地分析每個(gè)候選的內(nèi)核結(jié)構(gòu)以及外圍設(shè)備。
● 扎實(shí)地理解視頻和音頻數(shù)據(jù)如何流過(guò)系統(tǒng)。
● 評(píng)估在規(guī)定功耗條件下可達(dá)到的處理水平。

的常見(jiàn)問(wèn)題


開(kāi)始選擇之前,還需要仔細(xì)地考慮以下一些問(wèn)題。一旦能夠回答這些問(wèn)題,你就能選擇到最適合的處理器了。


1 應(yīng)該只使用我喜歡、熟悉的處理器嗎?


我們究竟為什么要從一個(gè)系列的處理器換成另一個(gè)系列呢?最常見(jiàn)的原因是你現(xiàn)在的應(yīng)用比之前的應(yīng)用對(duì)處理器的要求更高了。如果應(yīng)用要求一下子提高了很多,那么你就可能不能夠繼續(xù)使用同一系列的處理器了。例如,適用于音頻應(yīng)用的處理器系列通常不包括適合于視頻應(yīng)用的外圍設(shè)備。類(lèi)似地,如果你以前的處理器只能處理低分辨率(低幀頻)的視頻,那么你可能需要將處理器換成適合于高分辨率、高幀頻速率的處理器系列。


2 需要利用處理器的數(shù)據(jù)做些什么?


這個(gè)問(wèn)題關(guān)系到評(píng)估處理器的性能。當(dāng)系統(tǒng)設(shè)計(jì)工程師評(píng)估一個(gè)處理器性能的時(shí)候,要分析的第一項(xiàng)指標(biāo)就是處理器每秒鐘處理的指令數(shù),即在每個(gè)處理器時(shí)鐘周期內(nèi)完成的操作數(shù)和計(jì)算單元的效率。由于人們對(duì)處理能力的要求超出了處理器內(nèi)核技術(shù)的進(jìn)步速度,到了關(guān)鍵點(diǎn)用單個(gè)處理器已經(jīng)不足以完成某些應(yīng)用。這是考慮使用雙核處理器的原因之一。增加一個(gè)處理器內(nèi)核不僅能夠有效地加倍處理器的計(jì)算能力,還能增加軟件跨用兩個(gè)內(nèi)核的靈活性,雙核處理器的功耗甚至低于雙倍頻率運(yùn)行的單核處理器。


3 從哪些不同的角度評(píng)估處理器?


有很多種用來(lái)比較處理器的基準(zhǔn)評(píng)估程序。然而,不同的供應(yīng)商傾向于使用不同的評(píng)估方法。此外,對(duì)于任意給定的應(yīng)用都有很多方法可以實(shí)現(xiàn),因此通常哪種性能基準(zhǔn)程序是“對(duì)的”并不明確。這樣就很難客觀(guān)地度量候選處理器的性能差別。因此,最好從以下幾個(gè)不同的角度評(píng)估處理器的性能。


● 中立的評(píng)估機(jī)構(gòu)――這些公司或者協(xié)會(huì)試圖為具體任務(wù)公司創(chuàng)造客觀(guān)的基準(zhǔn)評(píng)估程序。
● 供應(yīng)商提供的資料――供應(yīng)商提供的技術(shù)資料、應(yīng)用筆記和代碼示例可能是獲取比較信息的最簡(jiǎn)單的方式。然而,不幸的是你將很難找到兩家供應(yīng)商使用統(tǒng)一的測(cè)試方法,這很大程度上是由于每個(gè)供應(yīng)商都想讓自己的處理器超過(guò)競(jìng)爭(zhēng)對(duì)手。
● 基準(zhǔn)測(cè)試程序――如果你想得到正確的結(jié)果,自己測(cè)試!你可以在處理平臺(tái)上進(jìn)行一些基本性能測(cè)試來(lái)獲取數(shù)據(jù)流限制、內(nèi)存訪(fǎng)問(wèn)等待時(shí)間以及處理器瓶頸等信息。


還有,你要意識(shí)到基準(zhǔn)評(píng)估程序并不一定反應(yīng)全面。有時(shí),稍微改動(dòng)算法消除潛在的不必要限制就能使性能有很大的不同。例如,對(duì)于一個(gè)定點(diǎn)處理器,真正的IEEE 85浮點(diǎn)仿真是很昂貴的。然而去掉一些限制(例如特例數(shù)表示法)就能夠大幅度提高浮點(diǎn)仿真的性能評(píng)估,但通常并不能測(cè)出影響一個(gè)應(yīng)用的功能。


4 系統(tǒng)帶寬夠用嗎?


人們常犯的一個(gè)錯(cuò)誤是過(guò)分簡(jiǎn)單地評(píng)估系統(tǒng)所需要的帶寬。應(yīng)當(dāng)正確地分析每個(gè)具體數(shù)據(jù)流需要帶寬的總和。例如,對(duì)于視頻解碼器,你首先要考慮解碼所需要的讀取數(shù)據(jù)的帶寬,然后還必須考慮產(chǎn)生禎解碼順序所需要的各種數(shù)據(jù)通道。這可能涉及到內(nèi)部存儲(chǔ)器和外部存儲(chǔ)器之間多個(gè)緩沖器傳輸。最后,還得考慮通向輸出設(shè)備的顯示緩沖器。


分析完全部數(shù)據(jù)流之后,下一步是將這些單項(xiàng)帶寬要求合算成總體的系統(tǒng)預(yù)算。切記影響系統(tǒng)帶寬預(yù)算的幾個(gè)因素,包括預(yù)期的從DRAM接入方式帶來(lái)性能下降、基于內(nèi)部總線(xiàn)仲裁的數(shù)據(jù)流限制以及其他因素。


5 數(shù)據(jù)是進(jìn)出芯片的?


一定要仔細(xì)檢查處理器的外設(shè),確保它們適合你的應(yīng)用。合適的外設(shè)組合無(wú)須使用支持接口的外部電路從而節(jié)省時(shí)間和成本。當(dāng)然,你可能會(huì)想改變?cè)O(shè)計(jì)的連通性,因此最好選擇一款具有靈活且充足外設(shè)的處理器。


6 這種處理器符合便攜式應(yīng)用要求嗎?


電池供電系統(tǒng)規(guī)定了一整套全新的應(yīng)用要求。它們需要一種小封裝、低功耗的處理器。通常情況下,這種限制涉及到處理器性能和功耗之間的折中,所以顯然不適合多應(yīng)用的處理器不會(huì)有發(fā)展前景,因?yàn)檫@樣的處理器在執(zhí)行不適合它們的任務(wù)卻要耗費(fèi)較大的功耗。


7 目標(biāo)應(yīng)用需要定點(diǎn)處理器還是浮點(diǎn)處理器?


如圖1所示,只需要少量的浮點(diǎn)功能的應(yīng)用的設(shè)計(jì)工程師被限制在“灰色區(qū)域”中,經(jīng)常被迫使用高成本的浮點(diǎn)處理器。然而今天一些定點(diǎn)處理器能夠以很高的時(shí)鐘速率運(yùn)行,只要有合適的體系機(jī)構(gòu),就可以像浮點(diǎn)處理器一樣工作。這種方法允許設(shè)計(jì)工程師使用低成本、低功耗的操作替代浮點(diǎn)運(yùn)算。當(dāng)然,這種方法并不適用于浮點(diǎn)密集型應(yīng)用,但是它為設(shè)計(jì)工程師提供了“繼續(xù)保留在灰色區(qū)域”中的誘人機(jī)會(huì)。


8 系統(tǒng)以后可能需要改變還是永遠(yuǎn)不變的?


如果有可能需要改變系統(tǒng)以便適應(yīng)新的媒體格式、用戶(hù)界面功能等類(lèi)似的變化,那么我們就可能需要可編程器件(如DSP、MCU或者FPGA)。如果系統(tǒng)要求固定并且改變的可能性很小,那么固定功能的專(zhuān)用集成電路(ASIC)應(yīng)該是合適的選擇。


9 需要操作系統(tǒng)嗎?


由于需要開(kāi)發(fā)工具,許多開(kāi)發(fā)商都需要操作系統(tǒng)(OS)。如果一個(gè)公司有很多應(yīng)用都基于一個(gè)特定的OS,那么其必然有強(qiáng)烈的動(dòng)機(jī)來(lái)選擇一個(gè)支持其OS的處理器。如果你可以隨便選擇OS,那么需要考慮以下一些因素。你可能需要一個(gè)低時(shí)延、支持多任務(wù)處理,或者允許多個(gè)用戶(hù)同時(shí)訪(fǎng)問(wèn)系統(tǒng)的處理器。相反,如果只需要提供基本的服務(wù),那么只需要一個(gè)輕量級(jí)的OS。當(dāng)然,許多應(yīng)用根本不需要OS,因此這一直不是主要考慮的問(wèn)題。


10 利用處理器開(kāi)發(fā)?


這是個(gè)非常重要的問(wèn)題,因?yàn)橐惶讖?qiáng)大的開(kāi)發(fā)工具能夠顯著地提高生產(chǎn)力、縮短開(kāi)發(fā)和調(diào)試時(shí)間。重要的是,我們要知道這個(gè)問(wèn)題像取決于最終應(yīng)用一樣取決于具體開(kāi)發(fā)商的需求。許多公司利用某種開(kāi)發(fā)工具包已經(jīng)建立起了經(jīng)驗(yàn)數(shù)據(jù)庫(kù),并且可以按照他們的意愿建立大型的代碼庫(kù)供其使用。


當(dāng)你換到一個(gè)新的處理器平臺(tái)的時(shí)候,這些開(kāi)發(fā)工具就變得特別重要。例如,一個(gè)強(qiáng)大的C/C++編譯器能夠很容易地將已有的源代碼轉(zhuǎn)移到一個(gè)新的平臺(tái)上,而且有多種優(yōu)化選擇(如速度、功率或者代碼密度的優(yōu)化)能幫助設(shè)計(jì)工程師實(shí)現(xiàn)他們的開(kāi)發(fā)目標(biāo)而不用花很多精力掌握處理器指令集和結(jié)構(gòu)的要點(diǎn)。


11 如何快速驗(yàn)證軟件算法?


如前所述,用C或C++寫(xiě)的代碼可以很容易地移植到一個(gè)新的處理器上。移植C代碼的主要問(wèn)題是外設(shè)代碼通常對(duì)于每一系列處理器是不同的。不過(guò),如果代碼使用設(shè)備驅(qū)動(dòng),可以簡(jiǎn)化代碼變換,因?yàn)轵?qū)動(dòng)去除了具體的外設(shè)操作。


此外,當(dāng)你進(jìn)入新的媒體處理器時(shí),你應(yīng)該檢查有什么可用的功能可以幫助你以更高的抽象度進(jìn)行編程。工程師在原型設(shè)計(jì)階段長(zhǎng)期使用MATLAB/Simulink(Mathworks公司)或者LabVIEW(National Instruments公司)。這些工具能夠生成代碼實(shí)現(xiàn)一些目標(biāo)。由于這些開(kāi)發(fā)工具容易建立硬件原型所以支持選定的媒體處理器。此外,這些開(kāi)發(fā)工具在將原型轉(zhuǎn)化成產(chǎn)品方面已經(jīng)有了長(zhǎng)足的進(jìn)步。


12 如何輕松地建立一套完整的原型系統(tǒng)?


你還應(yīng)該考慮評(píng)估硬件。評(píng)估工具套件能夠評(píng)估所有外圍設(shè)備嗎?如果不能,那么你最終可能需要搭建專(zhuān)用硬件來(lái)測(cè)試外設(shè)。評(píng)估工具套件能夠與其他你感興趣的評(píng)估板一起使用嗎?例如,Micron和Omnivision公司提供能夠測(cè)試他們照相機(jī)的CMOS傳感器評(píng)估板。你也能把這些功能加入你的評(píng)估套件嗎?


13 愿意花多少錢(qián)?


這是一個(gè)重要的問(wèn)題,但是你很可能得到一個(gè)錯(cuò)誤的答案,除非你考慮了整個(gè)系統(tǒng)的設(shè)計(jì)成本,即你需要考慮:處理器本身的成本、對(duì)支持芯片的需要、封裝的選擇以及可提供額外的一些處理能力為將來(lái)提供更大的擴(kuò)展空間。


14 能夠?qū)⑼还?yīng)商的其他設(shè)備用于我的系統(tǒng)嗎?


當(dāng)你選擇處理器的時(shí)候,你最好同時(shí)觀(guān)察一下你的系統(tǒng)信號(hào)鏈。處理器供應(yīng)商是不是還銷(xiāo)售連接處理器的外設(shè)?通常情況下,最好購(gòu)買(mǎi)同一個(gè)供應(yīng)商的多個(gè)系統(tǒng)元件。

了解各種處理器


為了幫助你做出比較明智的選擇,讓我們?cè)倏偨Y(jié)一下可使用的基本處理器,包括:專(zhuān)用集成電路(ASIC)、專(zhuān)用標(biāo)準(zhǔn)產(chǎn)品(ASSP)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)、微控制器(MCU)、數(shù)字信號(hào)處理器(DSP)、DSP/MCU 組合(分立或合一解決方案)。


1 ASIC和ASSP


固定功能的ASIC/ASSP是特定的嵌入式媒體處理應(yīng)用的一種最佳的解決方案,這些特定應(yīng)用包括想要最終在市場(chǎng)上獲取成功所必須的精密外圍設(shè)備。不過(guò),其有限的靈活性阻礙了其適應(yīng)新功能和不斷發(fā)展的需求能力。這種靈活性的缺乏反過(guò)來(lái)又限制了客戶(hù)的選擇,因?yàn)閱为?dú)錄音機(jī)或者播放器需要有處理不同媒體格式的能力。


2 FPGA


與ASIC相比,F(xiàn)PGA的開(kāi)發(fā)速度更快,因此就縮短了產(chǎn)品的上市時(shí)間。然而,F(xiàn)PGA與可編程處理解決方案和ASIC相比體積大、價(jià)格貴而且功耗大。因此,F(xiàn)PGA通常不用做便攜式多媒體應(yīng)用的主處理器,而通常是原型設(shè)計(jì)的最佳選擇,或者用在功耗和價(jià)格都不是主要選擇標(biāo)準(zhǔn)的最終系統(tǒng)中。


3 MCU


32位 MCU在嵌入式媒體處理領(lǐng)域是最受歡迎的。要了解其越來(lái)越受歡迎的原因,首先應(yīng)了解8位MCU在這些領(lǐng)域中并不具備保證實(shí)時(shí)操作所需要的帶寬和計(jì)算能力。這并不是說(shuō)8位MCU沒(méi)有用,相反它們?cè)趶钠?chē)到照相機(jī)等多種市場(chǎng)中很受歡迎。它們主要的賣(mài)點(diǎn)是超低功耗、超小封裝、優(yōu)良的代碼密度和非常便宜的價(jià)格(遠(yuǎn)低于2美元/片)。


邏輯上似乎16位MCU(起價(jià)約為2美元/片)應(yīng)該替代8位MCU,然而16 位MCU通常缺乏處理多媒體處理器所需要的能力。此外它還受到存儲(chǔ)器尋址范圍小的限制。


在嵌入式媒體處理器應(yīng)用中,MCU可以起到很多不同的作用。對(duì)于低端系統(tǒng)它們可以作為單系統(tǒng)處理器,主要進(jìn)行視頻解碼、中等顯示分辨率(通常為QVGA或者低于QVGA)的顯示以及比較簡(jiǎn)單的視頻格式(如MPEG Simple Profile,不能處理H.264)。對(duì)于中高檔系統(tǒng),需要一個(gè)DSP或者其他合適的處理器來(lái)處理高清晰度和更復(fù)雜的格式。不過(guò),在這些應(yīng)用中MCU仍然可以用作系統(tǒng)控制器,運(yùn)行一個(gè)操作系統(tǒng)并且管理整個(gè)系統(tǒng)的任務(wù)。此外,由于其豐富的外設(shè)組合,它們通常有助于連接媒體處理器和外部世界。


4 DSP


DSP適合用于數(shù)據(jù)緩沖器中高性能數(shù)據(jù)處理,如在多媒體應(yīng)用中流行的數(shù)據(jù)搬運(yùn)。為了達(dá)到DSP的性能目標(biāo)通常需要編寫(xiě)優(yōu)化的匯編代碼,因?yàn)镈SP算法通常裝在小型、低時(shí)延內(nèi)存中,代碼密度通常不是首要考慮的因素。


5 分立DSP+MCU


在多媒體處理領(lǐng)域,DSP并不是理想的獨(dú)立處理器。它很適合數(shù)學(xué)程序,而不太適合監(jiān)視控制。因此,基于DSP的多媒體處理器通常要依賴(lài)速度比較慢的MCU(更適合控制)來(lái)提供諸如用戶(hù)界面和OS等功能。


現(xiàn)在出現(xiàn)了將MCU和DSP合并到一個(gè)系統(tǒng)設(shè)計(jì)方案的不同方法。對(duì)于初學(xué)者,你可能總是使用分立的DSP和MCU芯片來(lái)設(shè)計(jì)。雖然這樣的成本比較高并且會(huì)占用相當(dāng)大的印制電路板面積,但是可以根據(jù)系統(tǒng)需要最靈活地選擇每顆芯片的尺寸。另外,有一些芯片制造商采取了不同的多內(nèi)核方法將分立的DSP和MCU處理器封裝在一個(gè)模塊內(nèi)。


MCU和DSP采用分立方案有幾點(diǎn)好處。第一,DSP和MCU的開(kāi)發(fā)商只需要各自完成自己的設(shè)計(jì)。


第二,MCU和DSP開(kāi)發(fā)團(tuán)隊(duì)分開(kāi)的原因是兩種處理器有著兩種不同的指令集。


然而,“DSP+MCU”合一方案有一個(gè)缺陷,就是很難化分MCU控制功能和DSP計(jì)算功能。


與快速32 位MCU并行發(fā)展的一個(gè)新興趨勢(shì)是推動(dòng)整合更多DSP功能的發(fā)展,如將MAC單元合并到MCU中。然而,這個(gè)想法只適合用于簡(jiǎn)單信號(hào)處理應(yīng)用,因?yàn)镸CU的時(shí)鐘速度和運(yùn)算體系結(jié)構(gòu)從根本上并不能很好地適應(yīng)多媒體數(shù)據(jù)搬運(yùn)速率的要求。因此,這些“增強(qiáng)DSP”的MCU并不是適合高級(jí)媒體處理應(yīng)用的理想平臺(tái)。


6 會(huì)聚處理器


“會(huì)聚處理器”兼?zhèn)淞薓CU和DSP的功能。尤其應(yīng)該知道的是,會(huì)聚處理器并不是增強(qiáng)控制功能的DSP,也不是擴(kuò)展DSP功能的MCU。會(huì)聚處理器適合實(shí)時(shí)多媒體數(shù)據(jù)流的運(yùn)算和完成控制任務(wù)兩種功能。ADI公司的Blackfin處理器就是這種體系結(jié)構(gòu)的典型例子。


與DSP類(lèi)似,會(huì)聚處理器通常具有高時(shí)鐘率和每處理單元低功耗(mW/MMACS)的特點(diǎn)。


會(huì)聚處理器也能簡(jiǎn)化開(kāi)發(fā)過(guò)程。相比之下,會(huì)聚處理器允許利用單一工具鏈在一個(gè)統(tǒng)一的平臺(tái)上開(kāi)發(fā)代碼。因此,開(kāi)發(fā)商只需要掌握一種指令集并且保存一種代碼庫(kù)在一種OS上運(yùn)行。


總之,為嵌入式媒體處理系統(tǒng)選擇合適的處理器有多種方案。通過(guò)選擇嵌入式媒體處理器常見(jiàn)問(wèn)題的解答和對(duì)每種處理器各自?xún)?yōu)缺點(diǎn)的了解,會(huì)幫助你做出一個(gè)能取得最終成功的明智選擇。

linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)


關(guān)鍵詞: 處理器 媒體 嵌入式 選擇 怎樣

評(píng)論


相關(guān)推薦

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

關(guān)閉