怎樣選擇嵌入式媒體處理器
選擇一片多媒體應(yīng)用處理器是一項復(fù)雜的工作。為了做出最好的選擇,需要先做好以下準備。
● 全面地分析每個候選處理器的內(nèi)核結(jié)構(gòu)以及外圍設(shè)備。
● 扎實地理解視頻和音頻數(shù)據(jù)如何流過系統(tǒng)。
● 評估在規(guī)定功耗條件下可達到的處理水平。
開始選擇之前,還需要仔細地考慮以下一些問題。一旦能夠回答這些問題,你就能選擇到最適合的處理器了。
1 應(yīng)該只使用我喜歡、熟悉的處理器嗎?
我們究竟為什么要從一個系列的處理器換成另一個系列呢?最常見的原因是你現(xiàn)在的應(yīng)用比之前的應(yīng)用對處理器的要求更高了。如果應(yīng)用要求一下子提高了很多,那么你就可能不能夠繼續(xù)使用同一系列的處理器了。例如,適用于音頻應(yīng)用的處理器系列通常不包括適合于視頻應(yīng)用的外圍設(shè)備。類似地,如果你以前的處理器只能處理低分辨率(低幀頻)的視頻,那么你可能需要將處理器換成適合于高分辨率、高幀頻速率的處理器系列。
2 需要利用處理器的數(shù)據(jù)做些什么?
這個問題關(guān)系到評估處理器的性能。當(dāng)系統(tǒng)設(shè)計工程師評估一個處理器性能的時候,要分析的第一項指標就是處理器每秒鐘處理的指令數(shù),即在每個處理器時鐘周期內(nèi)完成的操作數(shù)和計算單元的效率。由于人們對處理能力的要求超出了處理器內(nèi)核技術(shù)的進步速度,到了關(guān)鍵點用單個處理器已經(jīng)不足以完成某些應(yīng)用。這是考慮使用雙核處理器的原因之一。增加一個處理器內(nèi)核不僅能夠有效地加倍處理器的計算能力,還能增加軟件跨用兩個內(nèi)核的靈活性,雙核處理器的功耗甚至低于雙倍頻率運行的單核處理器。
3 從哪些不同的角度評估處理器?
有很多種用來比較處理器的基準評估程序。然而,不同的供應(yīng)商傾向于使用不同的評估方法。此外,對于任意給定的應(yīng)用都有很多方法可以實現(xiàn),因此通常哪種性能基準程序是“對的”并不明確。這樣就很難客觀地度量候選處理器的性能差別。因此,最好從以下幾個不同的角度評估處理器的性能。
● 中立的評估機構(gòu)――這些公司或者協(xié)會試圖為具體任務(wù)公司創(chuàng)造客觀的基準評估程序。
● 供應(yīng)商提供的資料――供應(yīng)商提供的技術(shù)資料、應(yīng)用筆記和代碼示例可能是獲取比較信息的最簡單的方式。然而,不幸的是你將很難找到兩家供應(yīng)商使用統(tǒng)一的測試方法,這很大程度上是由于每個供應(yīng)商都想讓自己的處理器超過競爭對手。
● 基準測試程序――如果你想得到正確的結(jié)果,自己測試!你可以在處理平臺上進行一些基本性能測試來獲取數(shù)據(jù)流限制、內(nèi)存訪問等待時間以及處理器瓶頸等信息。
還有,你要意識到基準評估程序并不一定反應(yīng)全面。有時,稍微改動算法消除潛在的不必要限制就能使性能有很大的不同。例如,對于一個定點處理器,真正的IEEE 85浮點仿真是很昂貴的。然而去掉一些限制(例如特例數(shù)表示法)就能夠大幅度提高浮點仿真的性能評估,但通常并不能測出影響一個應(yīng)用的功能。
4 系統(tǒng)帶寬夠用嗎?
人們常犯的一個錯誤是過分簡單地評估系統(tǒng)所需要的帶寬。應(yīng)當(dāng)正確地分析每個具體數(shù)據(jù)流需要帶寬的總和。例如,對于視頻解碼器,你首先要考慮解碼所需要的讀取數(shù)據(jù)的帶寬,然后還必須考慮產(chǎn)生禎解碼順序所需要的各種數(shù)據(jù)通道。這可能涉及到內(nèi)部存儲器和外部存儲器之間多個緩沖器傳輸。最后,還得考慮通向輸出設(shè)備的顯示緩沖器。
分析完全部數(shù)據(jù)流之后,下一步是將這些單項帶寬要求合算成總體的系統(tǒng)預(yù)算。切記影響系統(tǒng)帶寬預(yù)算的幾個因素,包括預(yù)期的從DRAM接入方式帶來性能下降、基于內(nèi)部總線仲裁的數(shù)據(jù)流限制以及其他因素。
5 數(shù)據(jù)是怎樣進出芯片的?
一定要仔細檢查處理器的外設(shè),確保它們適合你的應(yīng)用。合適的外設(shè)組合無須使用支持接口的外部電路從而節(jié)省時間和成本。當(dāng)然,你可能會想改變設(shè)計的連通性,因此最好選擇一款具有靈活且充足外設(shè)的處理器。
6 這種處理器符合便攜式應(yīng)用要求嗎?
電池供電系統(tǒng)規(guī)定了一整套全新的應(yīng)用要求。它們需要一種小封裝、低功耗的處理器。通常情況下,這種限制涉及到處理器性能和功耗之間的折中,所以顯然不適合多媒體應(yīng)用的處理器不會有發(fā)展前景,因為這樣的處理器在執(zhí)行不適合它們的任務(wù)卻要耗費較大的功耗。
7 目標應(yīng)用需要定點處理器還是浮點處理器?
如圖1所示,只需要少量的浮點功能的應(yīng)用的設(shè)計工程師被限制在“灰色區(qū)域”中,經(jīng)常被迫使用高成本的浮點處理器。然而今天一些定點處理器能夠以很高的時鐘速率運行,只要有合適的體系機構(gòu),就可以像浮點處理器一樣工作。這種方法允許設(shè)計工程師使用低成本、低功耗的操作替代浮點運算。當(dāng)然,這種方法并不適用于浮點密集型應(yīng)用,但是它為設(shè)計工程師提供了“繼續(xù)保留在灰色區(qū)域”中的誘人機會。
8 系統(tǒng)以后可能需要改變還是永遠不變的?
如果有可能需要改變系統(tǒng)以便適應(yīng)新的媒體格式、用戶界面功能等類似的變化,那么我們就可能需要可編程器件(如DSP、MCU或者FPGA)。如果系統(tǒng)要求固定并且改變的可能性很小,那么固定功能的專用集成電路(ASIC)應(yīng)該是合適的選擇。
9 需要操作系統(tǒng)嗎?
由于需要開發(fā)工具,許多開發(fā)商都需要操作系統(tǒng)(OS)。如果一個公司有很多應(yīng)用都基于一個特定的OS,那么其必然有強烈的動機來選擇一個支持其OS的處理器。如果你可以隨便選擇OS,那么需要考慮以下一些因素。你可能需要一個低時延、支持多任務(wù)處理,或者允許多個用戶同時訪問系統(tǒng)的處理器。相反,如果只需要提供基本的服務(wù),那么只需要一個輕量級的OS。當(dāng)然,許多應(yīng)用根本不需要OS,因此這一直不是主要考慮的問題。
10 怎樣利用處理器開發(fā)?
這是個非常重要的問題,因為一套強大的開發(fā)工具能夠顯著地提高生產(chǎn)力、縮短開發(fā)和調(diào)試時間。重要的是,我們要知道這個問題像取決于最終應(yīng)用一樣取決于具體開發(fā)商的需求。許多公司利用某種開發(fā)工具包已經(jīng)建立起了經(jīng)驗數(shù)據(jù)庫,并且可以按照他們的意愿建立大型的代碼庫供其使用。
當(dāng)你換到一個新的處理器平臺的時候,這些開發(fā)工具就變得特別重要。例如,一個強大的C/C++編譯器能夠很容易地將已有的源代碼轉(zhuǎn)移到一個新的平臺上,而且有多種優(yōu)化選擇(如速度、功率或者代碼密度的優(yōu)化)能幫助設(shè)計工程師實現(xiàn)他們的開發(fā)目標而不用花很多精力掌握處理器指令集和結(jié)構(gòu)的要點。
11 如何快速驗證軟件算法?
如前所述,用C或C++寫的代碼可以很容易地移植到一個新的處理器上。移植C代碼的主要問題是外設(shè)代碼通常對于每一系列處理器是不同的。不過,如果代碼使用設(shè)備驅(qū)動,可以簡化代碼變換,因為驅(qū)動去除了具體的外設(shè)操作。
此外,當(dāng)你進入新的嵌入式媒體處理器時,你應(yīng)該檢查有什么可用的功能可以幫助你以更高的抽象度進行編程。工程師在原型設(shè)計階段長期使用MATLAB/Simulink(Mathworks公司)或者LabVIEW(National Instruments公司)。這些工具能夠生成代碼實現(xiàn)一些嵌入式目標。由于這些開發(fā)工具容易建立硬件原型所以支持選定的媒體處理器。此外,這些開發(fā)工具在將原型轉(zhuǎn)化成產(chǎn)品方面已經(jīng)有了長足的進步。
12 如何輕松地建立一套完整的原型系統(tǒng)?
你還應(yīng)該考慮評估硬件。評估工具套件能夠評估所有外圍設(shè)備嗎?如果不能,那么你最終可能需要搭建專用硬件來測試外設(shè)。評估工具套件能夠與其他你感興趣的評估板一起使用嗎?例如,Micron和Omnivision公司提供能夠測試他們照相機的CMOS傳感器評估板。你也能把這些功能加入你的評估套件嗎?
13 愿意花多少錢?
這是一個重要的問題,但是你很可能得到一個錯誤的答案,除非你考慮了整個系統(tǒng)的設(shè)計成本,即你需要考慮:處理器本身的成本、對支持芯片的需要、封裝的選擇以及可提供額外的一些處理能力為將來提供更大的擴展空間。
14 能夠?qū)⑼还?yīng)商的其他設(shè)備用于我的系統(tǒng)嗎?
當(dāng)你選擇處理器的時候,你最好同時觀察一下你的系統(tǒng)信號鏈。處理器供應(yīng)商是不是還銷售連接處理器的外設(shè)?通常情況下,最好購買同一個供應(yīng)商的多個系統(tǒng)元件。
了解各種處理器
為了幫助你做出比較明智的選擇,讓我們再總結(jié)一下可使用的基本處理器,包括:專用集成電路(ASIC)、專用標準產(chǎn)品(ASSP)、現(xiàn)場可編程門陣列(FPGA)、微控制器(MCU)、數(shù)字信號處理器(DSP)、DSP/MCU 組合(分立或合一解決方案)。
1 ASIC和ASSP
固定功能的ASIC/ASSP是特定的嵌入式媒體處理應(yīng)用的一種最佳的解決方案,這些特定應(yīng)用包括想要最終在市場上獲取成功所必須的精密外圍設(shè)備。不過,其有限的靈活性阻礙了其適應(yīng)新功能和不斷發(fā)展的需求能力。這種靈活性的缺乏反過來又限制了客戶的選擇,因為單獨錄音機或者播放器需要有處理不同媒體格式的能力。
2 FPGA
與ASIC相比,F(xiàn)PGA的開發(fā)速度更快,因此就縮短了產(chǎn)品的上市時間。然而,F(xiàn)PGA與可編程處理解決方案和ASIC相比體積大、價格貴而且功耗大。因此,F(xiàn)PGA通常不用做便攜式多媒體應(yīng)用的主處理器,而通常是原型設(shè)計的最佳選擇,或者用在功耗和價格都不是主要選擇標準的最終系統(tǒng)中。
3 MCU
32位 MCU在嵌入式媒體處理領(lǐng)域是最受歡迎的。要了解其越來越受歡迎的原因,首先應(yīng)了解8位MCU在這些領(lǐng)域中并不具備保證實時操作所需要的帶寬和計算能力。這并不是說8位MCU沒有用,相反它們在從汽車到照相機等多種市場中很受歡迎。它們主要的賣點是超低功耗、超小封裝、優(yōu)良的代碼密度和非常便宜的價格(遠低于2美元/片)。
邏輯上似乎16位MCU(起價約為2美元/片)應(yīng)該替代8位MCU,然而16 位MCU通常缺乏處理多媒體處理器所需要的能力。此外它還受到存儲器尋址范圍小的限制。
在嵌入式媒體處理器應(yīng)用中,MCU可以起到很多不同的作用。對于低端系統(tǒng)它們可以作為單系統(tǒng)處理器,主要進行視頻解碼、中等顯示分辨率(通常為QVGA或者低于QVGA)的顯示以及比較簡單的視頻格式(如MPEG Simple Profile,不能處理H.264)。對于中高檔系統(tǒng),需要一個DSP或者其他合適的處理器來處理高清晰度和更復(fù)雜的格式。不過,在這些應(yīng)用中MCU仍然可以用作系統(tǒng)控制器,運行一個操作系統(tǒng)并且管理整個系統(tǒng)的任務(wù)。此外,由于其豐富的外設(shè)組合,它們通常有助于連接媒體處理器和外部世界。
4 DSP
DSP適合用于數(shù)據(jù)緩沖器中高性能數(shù)據(jù)處理,如在多媒體應(yīng)用中流行的數(shù)據(jù)搬運。為了達到DSP的性能目標通常需要編寫優(yōu)化的匯編代碼,因為DSP算法通常裝在小型、低時延內(nèi)存中,代碼密度通常不是首要考慮的因素。
5 分立DSP+MCU
在多媒體處理領(lǐng)域,DSP并不是理想的獨立處理器。它很適合數(shù)學(xué)程序,而不太適合監(jiān)視控制。因此,基于DSP的多媒體處理器通常要依賴速度比較慢的MCU(更適合控制)來提供諸如用戶界面和OS等功能。
現(xiàn)在出現(xiàn)了將MCU和DSP合并到一個系統(tǒng)設(shè)計方案的不同方法。對于初學(xué)者,你可能總是使用分立的DSP和MCU芯片來設(shè)計。雖然這樣的成本比較高并且會占用相當(dāng)大的印制電路板面積,但是可以根據(jù)系統(tǒng)需要最靈活地選擇每顆芯片的尺寸。另外,有一些芯片制造商采取了不同的多內(nèi)核方法將分立的DSP和MCU處理器封裝在一個模塊內(nèi)。
MCU和DSP采用分立方案有幾點好處。第一,DSP和MCU的開發(fā)商只需要各自完成自己的設(shè)計。
第二,MCU和DSP開發(fā)團隊分開的原因是兩種處理器有著兩種不同的指令集。
然而,“DSP+MCU”合一方案有一個缺陷,就是很難化分MCU控制功能和DSP計算功能。
與快速32 位MCU并行發(fā)展的一個新興趨勢是推動整合更多DSP功能的發(fā)展,如將MAC單元合并到MCU中。然而,這個想法只適合用于簡單信號處理應(yīng)用,因為MCU的時鐘速度和運算體系結(jié)構(gòu)從根本上并不能很好地適應(yīng)多媒體數(shù)據(jù)搬運速率的要求。因此,這些“增強DSP”的MCU并不是適合高級媒體處理應(yīng)用的理想平臺。
6 會聚處理器
“會聚處理器”兼?zhèn)淞薓CU和DSP的功能。尤其應(yīng)該知道的是,會聚處理器并不是增強控制功能的DSP,也不是擴展DSP功能的MCU。會聚處理器適合實時多媒體數(shù)據(jù)流的運算和完成控制任務(wù)兩種功能。ADI公司的Blackfin處理器就是這種體系結(jié)構(gòu)的典型例子。
與DSP類似,會聚處理器通常具有高時鐘率和每處理單元低功耗(mW/MMACS)的特點。
會聚處理器也能簡化開發(fā)過程。相比之下,會聚處理器允許利用單一工具鏈在一個統(tǒng)一的平臺上開發(fā)代碼。因此,開發(fā)商只需要掌握一種指令集并且保存一種代碼庫在一種OS上運行。
總之,為嵌入式媒體處理系統(tǒng)選擇合適的處理器有多種方案。通過選擇嵌入式媒體處理器常見問題的解答和對每種處理器各自優(yōu)缺點的了解,會幫助你做出一個能取得最終成功的明智選擇。
評論