新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 怎樣選擇嵌入式媒體處理器

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

        作者: 時間:2007-11-08 來源:網絡 收藏

        一片多應用是一項復雜的工作。為了做出最好的,需要先做好以下準備。


        ● 全面地分析每個候選的內核結構以及外圍設備。
        ● 扎實地理解視頻和音頻數據如何流過系統。
        ● 評估在規定功耗條件下可達到的處理水平。

        的常見問題


        開始選擇之前,還需要仔細地考慮以下一些問題。一旦能夠回答這些問題,你就能選擇到最適合的處理器了。


        1 應該只使用我喜歡、熟悉的處理器嗎?


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


        2 需要利用處理器的數據做些什么?


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


        3 從哪些不同的角度評估處理器?


        有很多種用來比較處理器的基準評估程序。然而,不同的供應商傾向于使用不同的評估方法。此外,對于任意給定的應用都有很多方法可以實現,因此通常哪種性能基準程序是“對的”并不明確。這樣就很難客觀地度量候選處理器的性能差別。因此,最好從以下幾個不同的角度評估處理器的性能。


        ● 中立的評估機構――這些公司或者協會試圖為具體任務公司創造客觀的基準評估程序。
        ● 供應商提供的資料――供應商提供的技術資料、應用筆記和代碼示例可能是獲取比較信息的最簡單的方式。然而,不幸的是你將很難找到兩家供應商使用統一的測試方法,這很大程度上是由于每個供應商都想讓自己的處理器超過競爭對手。
        ● 基準測試程序――如果你想得到正確的結果,自己測試!你可以在處理平臺上進行一些基本性能測試來獲取數據流限制、內存訪問等待時間以及處理器瓶頸等信息。


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


        4 系統帶寬夠用嗎?


        人們常犯的一個錯誤是過分簡單地評估系統所需要的帶寬。應當正確地分析每個具體數據流需要帶寬的總和。例如,對于視頻解碼器,你首先要考慮解碼所需要的讀取數據的帶寬,然后還必須考慮產生禎解碼順序所需要的各種數據通道。這可能涉及到內部存儲器和外部存儲器之間多個緩沖器傳輸。最后,還得考慮通向輸出設備的顯示緩沖器。


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


        5 數據是進出芯片的?


        一定要仔細檢查處理器的外設,確保它們適合你的應用。合適的外設組合無須使用支持接口的外部電路從而節省時間和成本。當然,你可能會想改變設計的連通性,因此最好選擇一款具有靈活且充足外設的處理器。


        6 這種處理器符合便攜式應用要求嗎?


        電池供電系統規定了一整套全新的應用要求。它們需要一種小封裝、低功耗的處理器。通常情況下,這種限制涉及到處理器性能和功耗之間的折中,所以顯然不適合多應用的處理器不會有發展前景,因為這樣的處理器在執行不適合它們的任務卻要耗費較大的功耗。


        7 目標應用需要定點處理器還是浮點處理器?


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


        8 系統以后可能需要改變還是永遠不變的?


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


        9 需要操作系統嗎?


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


        10 利用處理器開發?


        這是個非常重要的問題,因為一套強大的開發工具能夠顯著地提高生產力、縮短開發和調試時間。重要的是,我們要知道這個問題像取決于最終應用一樣取決于具體開發商的需求。許多公司利用某種開發工具包已經建立起了經驗數據庫,并且可以按照他們的意愿建立大型的代碼庫供其使用。


        當你換到一個新的處理器平臺的時候,這些開發工具就變得特別重要。例如,一個強大的C/C++編譯器能夠很容易地將已有的源代碼轉移到一個新的平臺上,而且有多種優化選擇(如速度、功率或者代碼密度的優化)能幫助設計工程師實現他們的開發目標而不用花很多精力掌握處理器指令集和結構的要點。


        11 如何快速驗證軟件算法?


        如前所述,用C或C++寫的代碼可以很容易地移植到一個新的處理器上。移植C代碼的主要問題是外設代碼通常對于每一系列處理器是不同的。不過,如果代碼使用設備驅動,可以簡化代碼變換,因為驅動去除了具體的外設操作。


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


        12 如何輕松地建立一套完整的原型系統?


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


        13 愿意花多少錢?


        這是一個重要的問題,但是你很可能得到一個錯誤的答案,除非你考慮了整個系統的設計成本,即你需要考慮:處理器本身的成本、對支持芯片的需要、封裝的選擇以及可提供額外的一些處理能力為將來提供更大的擴展空間。


        14 能夠將同一供應商的其他設備用于我的系統嗎?


        當你選擇處理器的時候,你最好同時觀察一下你的系統信號鏈。處理器供應商是不是還銷售連接處理器的外設?通常情況下,最好購買同一個供應商的多個系統元件。

        了解各種處理器


        為了幫助你做出比較明智的選擇,讓我們再總結一下可使用的基本處理器,包括:專用集成電路(ASIC)、專用標準產品(ASSP)、現場可編程門陣列(FPGA)、微控制器(MCU)、數字信號處理器(DSP)、DSP/MCU 組合(分立或合一解決方案)。


        1 ASIC和ASSP


        固定功能的ASIC/ASSP是特定的嵌入式媒體處理應用的一種最佳的解決方案,這些特定應用包括想要最終在市場上獲取成功所必須的精密外圍設備。不過,其有限的靈活性阻礙了其適應新功能和不斷發展的需求能力。這種靈活性的缺乏反過來又限制了客戶的選擇,因為單獨錄音機或者播放器需要有處理不同媒體格式的能力。


        2 FPGA


        與ASIC相比,FPGA的開發速度更快,因此就縮短了產品的上市時間。然而,FPGA與可編程處理解決方案和ASIC相比體積大、價格貴而且功耗大。因此,FPGA通常不用做便攜式多媒體應用的主處理器,而通常是原型設計的最佳選擇,或者用在功耗和價格都不是主要選擇標準的最終系統中。


        3 MCU


        32位 MCU在嵌入式媒體處理領域是最受歡迎的。要了解其越來越受歡迎的原因,首先應了解8位MCU在這些領域中并不具備保證實時操作所需要的帶寬和計算能力。這并不是說8位MCU沒有用,相反它們在從汽車到照相機等多種市場中很受歡迎。它們主要的賣點是超低功耗、超小封裝、優良的代碼密度和非常便宜的價格(遠低于2美元/片)。


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


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


        4 DSP


        DSP適合用于數據緩沖器中高性能數據處理,如在多媒體應用中流行的數據搬運。為了達到DSP的性能目標通常需要編寫優化的匯編代碼,因為DSP算法通常裝在小型、低時延內存中,代碼密度通常不是首要考慮的因素。


        5 分立DSP+MCU


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


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


        MCU和DSP采用分立方案有幾點好處。第一,DSP和MCU的開發商只需要各自完成自己的設計。


        第二,MCU和DSP開發團隊分開的原因是兩種處理器有著兩種不同的指令集。


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


        與快速32 位MCU并行發展的一個新興趨勢是推動整合更多DSP功能的發展,如將MAC單元合并到MCU中。然而,這個想法只適合用于簡單信號處理應用,因為MCU的時鐘速度和運算體系結構從根本上并不能很好地適應多媒體數據搬運速率的要求。因此,這些“增強DSP”的MCU并不是適合高級媒體處理應用的理想平臺。


        6 會聚處理器


        “會聚處理器”兼備了MCU和DSP的功能。尤其應該知道的是,會聚處理器并不是增強控制功能的DSP,也不是擴展DSP功能的MCU。會聚處理器適合實時多媒體數據流的運算和完成控制任務兩種功能。ADI公司的Blackfin處理器就是這種體系結構的典型例子。


        與DSP類似,會聚處理器通常具有高時鐘率和每處理單元低功耗(mW/MMACS)的特點。


        會聚處理器也能簡化開發過程。相比之下,會聚處理器允許利用單一工具鏈在一個統一的平臺上開發代碼。因此,開發商只需要掌握一種指令集并且保存一種代碼庫在一種OS上運行。


        總之,為嵌入式媒體處理系統選擇合適的處理器有多種方案。通過選擇嵌入式媒體處理器常見問題的解答和對每種處理器各自優缺點的了解,會幫助你做出一個能取得最終成功的明智選擇。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 湛江市| 高州市| 乌海市| 正阳县| 延川县| 莒南县| 咸丰县| 田阳县| 嘉鱼县| 鸡泽县| 达尔| 佛教| 宁乡县| 祁门县| 隆林| 永福县| 牡丹江市| 泸水县| 镇江市| 封开县| 墨脱县| 汉沽区| 山东省| 南澳县| 广河县| 定西市| 元朗区| 阿拉善右旗| 左云县| 湖口县| 宁陵县| 秭归县| 福清市| 铜山县| 红桥区| 康马县| 邹城市| 沭阳县| 嵩明县| 福州市| 清水县|