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