基準程序評測方法是微處理器性能評價的重要尺度。本文在介紹基準測試程序的基礎上,重點對CPU基準測試、嵌入式處理器和媒體處理器基準程序測試進行了分析,并給出了Tensilica微處理器與其它幾款當今重要的微處理器的EEMBC和BDTI評測結果。
嵌入式和媒體基準測試程序包括EDN嵌入式微處理器測試程序組EEMBC(嵌入式微處理器基準測試協會)、BDTI基準測試程序組、MediaBench測試程序組以及MiBench基準測試程序組。其中,EEMBC、BDTI已經稱為嵌入式處理器和媒體處理器評測事實上的標準。
EEMBC主要是開發和驗證現實世界的基準測試和基準測試得分,幫助設計師選擇與系統適用的嵌入式處理器。提交EEMBC進行基準測試的所有處理器都需要進行代表不同載荷和性能參數的多項測試,如通信、網絡、消費、辦公自動化、汽車/工業、嵌入式Java和微控制器相關的應用。EEMBC的成員包括的半導體、IP供應商和編譯器公司,EEMBC建立了基準測試標準,并通過EEMBC驗證實驗室(ECL)提供通過了驗證的基準測試結果。
BDTI基準測試程序組由BDTI(Berkeley Design Technology)公司開發,該公司從1991年開始致力于數字信號處理器的評測工作。BDTI提供業界標準的BDTI基準測試程序,用于測試DSP處理器。BDTI還開發了用戶定制的基準測試程序,專門用于某些應用領域的測試。BDTI測試程序包括FIR濾波器、IIR濾波器、FFT、向量點積和Viterbi譯碼。
MediaBench基準測試程序主要來自圖像處理、通信和DSP應用領域。例如JPEG、MPEG、 GSM、G.721話音壓縮、Ghostscript和ADPCM。JPEG主要是圖像壓縮,MPEG用于視頻傳輸中的編解碼。Ghostscript是Postscript語言解釋器,ADPCM用于自適應差分脈沖編碼調整。
MiBench是一個自由的嵌入式基準測試程序組,同EEMBC類似。由于EEMBC不對專用研究人員自由開發,故密執安的研究人員對35個嵌入式程序進行編譯,形成了MiBench基準測試程序組。以EEMBC為模型,MiBench分成6類:汽車電子、消費類電子、網絡、辦公自動化、信息安全和電信。所有程序均采用C語言寫成。MiBench可以和任何嵌入式平臺接口,因為所有測試均是源碼開放的。
EEMBC基準程序測試方法
EEMBC(EDN嵌入式微處理器基準組)基準測試程序組主要對嵌入式微處理器進行性能評測。EEMBC評測程序包括一系列能夠反映實際的嵌入式應用領域。這些基準程序主要針對汽車電子、工業控制、消費電子、網絡應用、辦公自動化以及電信等領域。尤其重要的是,EEMBC對機器控制、數碼相機、打印機、無線蜂窩電話、調制解調器等與嵌入式微處理器相關的應用非常適合。
EEMBC論壇從上述應用中得到了37個獨立的算法,從而構成了EEMBC的個版本。事實上,EEMBC業已稱為嵌入式處理器評測的業界標準。
BDTI 基準程序測試方法
微處理器用戶對數字信號處理器進行選擇時需要一種方法和依據,這種方法必須簡單、易用,并且能夠全面反映處理器的實際應用。處理器提供商經常采用MIPS和MFLOPS(每秒百萬次浮點運算)作為處理器速度的評價尺度。然而,這種評價方法對處理器體系結構和指令集的多樣性并不能很好地進行評估。因此,采用這種方法是毫無意義的。事實上,由于處理器指令集的多樣性使得這種傳統方法不能反映處理器的實際應用。例如,TMS320C6202時鐘頻率為300MHZ,每個時鐘周期發射8條指令。Freescale的DSP56852時鐘頻率為120MHZ。因此,如果按照傳統的MIPS測量尺度地話,TMS320C6202的數據處理能力為2400MIPS,而DSP56852應為120MIPS。即前者是后者的20倍。然而,如果執行BDTI的基準測試程序(FIR濾波器)就會發現,前者僅僅比后者快6倍。因此,采用傳統的MIPS評價尺度與處理器的實際情況是不吻合的。
圖:Xtensa V的EEMBC測試分值。( |
為了滿足這種評估需求,BDTI公司在1997年引入了BDTI測試基準程序組。該程序組來自于BDTI開發的許多信號處理器算法核心基準測試程序。1999年,BDTI對原來的BDTI程序組進行了更新以便能更好地反映當今信號處理器地應用情況,于是建立了BDTI2000基準程序組。
BDTI2000基準程序組對數字信號處理器速度進行全面評估。BDTI2000基準程序組的初版本是由BDTI公司在1997年引入的,其后續版本很好地反映當今的信號處理器應用。BDTI2000基準程序組分值基于信號處理器應用的結果,并在目標處理器上進行了優化。
我們首先探討建立BDTI2000基準程序組的目標和評價方法學,然后對BDTI2000基準程序組進行分類。事實上,為了保證評價尺度的有用性和實效性,信號處理器評測必須滿足如下目標:
適度性: 評價尺度必須反映處理器執行信號處理算法頻度的性能;
公正性和精確性:評價尺度必須來源于基準程序的實際計算結果,且對任何處理器都是一樣的。
簡單性:評價尺度必須方便地進行比較,用一個數值來表示評測結果;
廣泛性:評價尺度必須廣泛,適合任何一類可編程處理器;
獨立性:評測分值必須經過獨立地第三方驗證以確保能夠真實反映處理器地性能;
有效性:評測分值是有效的,且是公開的。
Tensilica高性能可配置處理器技術
Tensilica成立于1997年7月,專門為日益增長的大規模嵌入式應用需求提供優化的特定應用的微處理器解決方案。Tensilica擁有Xtensa和LX的可配置和可擴展的微處理器內核,是一家能夠生成定制微處理器內核的廠商,全部開發過程均可自動化完成。
Tensilica的Xtensa LX處理器架構具有兩個顯著優勢。首先,Tensilica充分使用自定義的FLIX(長度靈活的指令擴展)指令,它包括七種不同的64位指令字格式以及8個并行操作指令槽。FLIX提供VLIW風格的并行執行功能,但卻沒有VLIW處理器通常導致的代碼膨脹現象。實際上,與缺省配置(out-of-box)的Xtensa LX 處理器核相比,優化的Xtensa LX處理器核能夠取4倍到5倍的性能提升,而代碼量則降低了2%。其次,Tensilica利用TIE (Tensilica指令擴展)隊列來加速IP包的校驗功能。通過TIE隊列,SoC設計者可以不使用標準處理器總線,而直接將數據輸入到一個Xtensa LX處理器的執行單元,同樣,在一個SoC設計里有一個專門的硬件加速模塊。傳統處理器的數據傳輸能力局限于每個時鐘周期32或64位數據讀寫,但帶有TIE隊列的Xtensa處理器可以在每個隊列端口上維持一定的傳送數據率,用戶可定義的數據傳輸帶寬為1024位。通過這種方式,Xtensa LX處理器成為的一款可以讓設計者避免傳統處理器總線瓶頸的處理器。而且Tensilica為用戶定義的TIE隊列提供C編譯器和指令集仿真器的支持。
Xtensa LX處理器核中的定制指令集每個時鐘周期可以執行多個操作,可以將兩個輸入隊列的數據與本地數據相結合,然后將計算結果輸送到兩個輸出隊列。嵌入式網絡設備中的IP包操作是TIE隊列的典型應用。在一個SoC設計中,一個網絡工程師為獲得包處理的高吞吐量,通常設計定制的包頭校驗硬件。如果使用傳統的處理器,首先要讀全部的數據包,然后執行包頭校驗和校驗位計算。因此傳統技術通常需要設計定制的加速器。通過使用Xtensa LX處理器,定制的包處理硬件和包緩存隊列出口和入口能夠被集成到處理器中。因此,Xtensa LX在基準測試中的IP包校驗部分可以獲得33倍的性能提升。利用Tensilica的TIE技術,在幾小時內即可以完成處理器設計。而傳統的RTL方法則需要幾周的RTL設計和幾個月的驗證。
Xtensa V和LX的EEMBC評測結果
1. Xtensa V的EEMBC評測結果
Tensilica的Xtensa V缺省配置情況下的EEMBC測試結果如圖1所示,整個評測包括四個EEMBC基準測試程序組,即EEMBC 消費類電子基準程序組Consumermarks、電信基準測試程序組Telemarks、網絡基準測試程序組Netmarks和辦公自動化測試程序組Oamarks。
下面對每一組基準測試程序分別進行評價。
EEMBC 消費類電子基準程序組Consumermarks: 視頻處理是消費類電子基準程序組的主要核心,例如數碼相機、數字電視和游戲機。視頻處理包括顏色空間轉換、2D濾波和圖像壓縮。
EEMBC 電信基準測試程序組Telemarks:電信領域應用是非常重要的一類,其數據通常為16位定點數據,形成壓縮數據流或者冗余編碼信道數據流進行傳輸。在過去的幾年中,DSP能夠很好地處理濾波、誤差校正和傳輸算法方面地應用。電信基準測試程序組Telemarks主要涵蓋上述應用。
EEMBC網絡基準測試程序組Netmarks:網絡應用與消費類電子和電信應用有很大不同,它們的算術運算較少、數據并行性程度低,但需要頻繁的控制流判決。EEMBC網絡基準測試程序組Netmarks包括路由和分組數據處理。
EEMBC辦公自動化測試程序組OAmarks:OA程序組的核心應用是打印機領域,包括灰度尺度抖動、位級圖像旋轉和文本處理。
2. Xtensa LX的EEMBC評測結果
Tensilica的Xtensa LX處理器在EEMBC辦公自動化基準測試Oamark中獲得了分數,其分值大約是同類處理器的四倍。
Tensilica Xtensa LX處理器在EEMBC網絡2.0基準測試中也同樣優于其它高性能微處理器。網絡2.0基準測試程序組包括TCPmark和IPmark,前者表示在因特網有效時客戶端設備的處理器性能;而后者則代表網絡路由器、網關和交換機的處理器性能。對基于仿真的EEMBC網絡2.0基準測試結果進行歸一化處理,事實表明,經過優化的Xtensa LX處理器內核性能更高,而且代碼密度和功耗方面表現出了更高的優越性。
EEMBC對Xtensa LX處理器內核其它方面的評測結果如下:
芯片面積和功耗:在標準的130納米工藝技術下,使用傳統的標準單元實現技術,Xtensa LX處理器內核面積僅為1.2平方毫米(存儲器面積除外)。當工作于工作頻率304兆赫茲時消耗的功率大約為115毫瓦。
代碼密度:Xtensa LX針對EEMBC網絡2.0版本基準測試的代碼大小經過ECL認證為65,208字節。
通信能力:通過使用Xtensa LX處理器內核獨特的隊列功能,設計者能夠完全不通過總線即可以完成數據傳輸,從而增加了數據吞吐量。
3. Xtensa LX的BDTI測試結果
BDTIsimMark2000和BDTIMark2000是截然不同的兩種基準測試程序組。BDTIMark2000基準程序組僅僅用于處理器經過硬件驗證后的性能測試;而BDTIsimMark2000程序組則只對仿真結果進行性能測試。BDTIsimMark2000和BDTIMark2000用于測試處理器的信號處理器速度,從這種意義上講,它比MIPS或者MFLOPS那種簡單的評價尺度要準確得多。
對Xtensa LX處理器和其他幾款處理器進行BDTIsimMark2000測試。為了保持BDTI測試的一致性,各個處理器核均利用壞情況下的時鐘頻率,制造工藝均為0.13um。壞情況是指工藝、電壓和溫度三個方面。對于已經封裝的處理器,采用系列中快的處理器來計算分值。定點處理器測試分值結果,Xtensa LX處理器分值為6150,超過其他處理器。