基準(zhǔn)測試能在您分析和比較各個(gè)系統(tǒng)時(shí)為您節(jié)省時(shí)間。但是,基準(zhǔn)測試的真正價(jià)值常常意味著對(duì)每個(gè)評(píng)分的意義“進(jìn)行逆向工程”并且將那些見解應(yīng)用到您的實(shí)際環(huán)境中。
要點(diǎn)
● 基準(zhǔn)試圖將復(fù)雜系統(tǒng)進(jìn)行抽象和簡化以便您能更好地進(jìn)行蘋果對(duì)蘋果比較。
● 基準(zhǔn)必須附帶完整的測試詳情才有意義。
● 您有責(zé)任分析基準(zhǔn)測試詳情以判斷一個(gè)給定評(píng)分是否與實(shí)際情況相關(guān)。
● 基準(zhǔn)應(yīng)該只作為整個(gè)決策過程的一個(gè)數(shù)據(jù)點(diǎn),諸如供應(yīng)商開發(fā)支持和平臺(tái)靈活性等其他定性因素可能比基準(zhǔn)測試高評(píng)分更重要。
基準(zhǔn)是一個(gè)您能用以對(duì)兩個(gè)或更多相似選擇對(duì)象的價(jià)值和質(zhì)量進(jìn)行一致的測量、量化和比較的參考點(diǎn),這些選擇對(duì)象包括商業(yè)過程、工具和嵌入式處理器等。對(duì)于嵌入式處理器來說,基準(zhǔn)通常是一組在候選處理器上運(yùn)行的一致性軟件代碼,因此您可以將候選處理器的性能與其他可供選用的處理器進(jìn)行比較。處理器基準(zhǔn)并不局限于測量處理器體系結(jié)構(gòu)效率;它們還能表明編譯器相對(duì)于人工優(yōu)化編碼的效率。
理想的基準(zhǔn)對(duì)一個(gè)系統(tǒng)的重要性能度量進(jìn)行提取和合并,形成一個(gè)在特定上下文中,能對(duì)不同系統(tǒng)選擇進(jìn)行有意義的“蘋果對(duì)蘋果”比較的簡化表示 或評(píng)分。但是,使用理想的基準(zhǔn)如果不能比不太精確的比較工作更多地節(jié)省時(shí)間、降低成本或者減小風(fēng)險(xiǎn),那是不切實(shí)際的。
對(duì)于具有某一清晰目標(biāo)的系統(tǒng)或任務(wù)來說,您常常會(huì)找到一個(gè)性能度量,用以精確獲取系統(tǒng)行為,并在您將該系統(tǒng)與其他選擇對(duì)象比較時(shí)具有良好的相關(guān)性。比較兩個(gè)處理器的時(shí)鐘速率就是獲得相對(duì)性能的一個(gè)流行的基準(zhǔn)度量,但是它的適用環(huán)境很窄,只有當(dāng)這兩個(gè)處理器除了時(shí)鐘速率之外大致相同時(shí),這種比較才有用。盡管比較基準(zhǔn)測試評(píng)分的簡單性如何吸引人,但正確解釋這些相互關(guān)聯(lián)的評(píng)分則需要您了解基準(zhǔn)測量的基本細(xì)節(jié)及其與您應(yīng)用系統(tǒng)的相關(guān)性。對(duì)于嵌入式設(shè)計(jì)來說,您比較的處理器體系結(jié)構(gòu)可能大不相同,因此使用時(shí)鐘速率作為基準(zhǔn)度量也許是不適宜的。
通常,嵌入式設(shè)計(jì)必須同時(shí)平衡并滿足許多目標(biāo),例如提供正確的功能既要快速、經(jīng)濟(jì)實(shí)惠,又要具有低功耗、高質(zhì)量和靈活性。就這幾類情況而言,性能是多方面的,因此將系統(tǒng)性能精確地描述為一個(gè)簡化的評(píng)分,用以與其他選擇對(duì)象進(jìn)行有意義的比較,可能是困難而又代價(jià)高昂的。對(duì)多個(gè)系統(tǒng)進(jìn)行比較存在一個(gè)難題,就是既要使獲得和導(dǎo)出基準(zhǔn)測試評(píng)分簡易而又花錢少,又要使不同系統(tǒng)的相同評(píng)分的排名有意義。
謊言和更多謊言
許多處理器供應(yīng)商都使用基準(zhǔn)測試評(píng)分作為一種營銷工具。但是,有些經(jīng)常發(fā)布的基準(zhǔn)測試評(píng)分,如MIPS(每秒百萬條指令)和DMIPS(Dhrystone MIPIS),在沒有特定背景的情況下是毫無意義和不恰當(dāng)?shù)模▍㈤喐轿摹痘鶞?zhǔn)測試游戲》)。這兩類性能評(píng)分的繼續(xù)廣泛使用使得處理器基準(zhǔn)測試獲得了對(duì)處理器性能度量不精確的名聲。一次網(wǎng)上搜索就會(huì)發(fā)現(xiàn)對(duì)下面關(guān)于標(biāo)準(zhǔn)基準(zhǔn)測試的陳述的多次引用:“計(jì)算機(jī)行業(yè)有三種謊言:謊言、該死的謊言和基準(zhǔn)測試!
綜合基準(zhǔn)測試通常試圖通過使用人工指令序列或者通過盡量模擬真實(shí)環(huán)境應(yīng)用系統(tǒng)中的普通指令混合,來度量某個(gè)系統(tǒng)、處理器或編譯程序的一個(gè)或多個(gè)新性能。相反,真實(shí)環(huán)境應(yīng)用系統(tǒng)基準(zhǔn)測試在考慮處理器特性方面前進(jìn)了一步,它試圖對(duì)處理器體系結(jié)構(gòu)和開發(fā)工具如何處理特定類型應(yīng)用系統(tǒng)的預(yù)期工作量進(jìn)行預(yù)測和量化。應(yīng)用系統(tǒng)基準(zhǔn)測試可能使用一組或多組真實(shí)應(yīng)用程序代碼塊來為一個(gè)應(yīng)用系統(tǒng)實(shí)現(xiàn)代表性的功能。
公開傳播諸如MIPS和DMIPS等標(biāo)準(zhǔn)綜合基準(zhǔn)測試這種做法凸顯出人們需要開發(fā)和使用簡單而又有意義的度量。這幾類基準(zhǔn)測試相對(duì)比較便宜,也最容易實(shí)現(xiàn),因而沒有容易而又低成本實(shí)現(xiàn)的無版權(quán)替代方案。行業(yè)標(biāo)準(zhǔn)基準(zhǔn)測試是對(duì)競爭性產(chǎn)品進(jìn)行比較的基礎(chǔ),但是,供應(yīng)商通常要承擔(dān)一筆可觀的費(fèi)用以便獲得基準(zhǔn)測試證據(jù)。BDTI(Berkeley設(shè)計(jì)科技有限公司)、EEMBC(EDN嵌入式微處理器基準(zhǔn)聯(lián)盟)和SPEC(標(biāo)準(zhǔn)性能評(píng)估公司)等基準(zhǔn)組織通過提供能對(duì)目標(biāo)性能測量進(jìn)行分類的基準(zhǔn)測試套件,致力于各種不同方面的計(jì)算。各種基準(zhǔn)測試套件構(gòu)成一致性測試的基礎(chǔ),并支持一個(gè)性能評(píng)分的粒度范圍,使得您能夠在一個(gè)特定環(huán)境中更好地評(píng)估處理器特性和系統(tǒng)性能。
行業(yè)標(biāo)準(zhǔn)基準(zhǔn)測試可以作為決策過程的一個(gè)有價(jià)值的“輸入”,但還不足以成為您設(shè)計(jì)決策的唯一依據(jù)。首先,為您應(yīng)該考慮的每個(gè)處理器平臺(tái)找到相關(guān)而又可比的基準(zhǔn)測試結(jié)果可能是很難或者是不可能的事。另一個(gè)問題是,當(dāng)您確定找到相關(guān)而又可比的基準(zhǔn)測試時(shí),基準(zhǔn)測試數(shù)據(jù)可能本來是為您當(dāng)前正在考慮的一代代處于完全不同時(shí)間點(diǎn)的不同處理器導(dǎo)出的,而且它本可以采用的存儲(chǔ)器結(jié)構(gòu)與您將要使用的迥然不同。特定的或自定義基準(zhǔn)測試是分析過程的一部分,有助于填補(bǔ)行業(yè)標(biāo)準(zhǔn)基準(zhǔn)測試與您應(yīng)用需求之間的空白。
有幾類基準(zhǔn)測試用戶退出了。顯而易見的基準(zhǔn)測試用戶是嵌入式系統(tǒng)設(shè)計(jì)師或者是成為銷售組織營銷對(duì)象的終端用戶。但是,據(jù)幾個(gè)基準(zhǔn)組織說,終端用戶并不是行業(yè)標(biāo)準(zhǔn)基準(zhǔn)測試結(jié)果的主要用戶群體;鶞(zhǔn)測試作為主要決策依據(jù)還不充分,因?yàn)樗鼈儾荒芫_地反映每個(gè)嵌入式系統(tǒng)設(shè)計(jì)師的應(yīng)用需求。例如,許多基準(zhǔn)測試是內(nèi)核級(jí)的,不考慮與設(shè)計(jì)師在最終應(yīng)用中要使用的操作系統(tǒng)的交互作用。
當(dāng)終端用戶使用基準(zhǔn)測試結(jié)果時(shí),他們同各個(gè)處理器廠商的合作常常比同基準(zhǔn)組織的合作更為密切,以便獲得性能數(shù)據(jù)和復(fù)制測試結(jié)果方面的幫助,并了解基準(zhǔn)測試配置如何適用于他們的設(shè)計(jì)要求。終端用戶可能使用基準(zhǔn)測試作為縮減候選處理器名單的一個(gè)“輸入”,但是其他項(xiàng)目如一組集成特性、支持的I/O接口、開發(fā)工具、培訓(xùn)、文檔、第三方開發(fā)支持基礎(chǔ)設(shè)施以及規(guī)劃風(fēng)險(xiǎn),都將在排除候選處理器時(shí)起重要作用。通常,終端用戶基準(zhǔn)測試是一個(gè)僅適合于立即進(jìn)行的設(shè)計(jì)項(xiàng)目的特殊過程。
許多處理批量大而對(duì)價(jià)格敏感的設(shè)計(jì)的OEM(原始設(shè)備制造商),都根據(jù)自己的自定義基準(zhǔn)測試來選擇處理器。自定義基準(zhǔn)測試可以由既有應(yīng)用代碼構(gòu)成,但也可能包括來自行業(yè)標(biāo)準(zhǔn)基準(zhǔn)測試的代碼。有些OEM成為基準(zhǔn)組織的成員,以便獲得基準(zhǔn)測試源代碼,因此,他們能將該源代碼的一部分合并到他們的自定義基準(zhǔn)測試套件中。這些基準(zhǔn)測試套件只能滿足范圍狹小的目標(biāo)需求,所以更詳細(xì)、更全面。行業(yè)標(biāo)準(zhǔn)基準(zhǔn)努力在相關(guān)性、復(fù)雜度和成本之間取得平衡,能滿足范圍較廣的應(yīng)用需求。通常,OEM基準(zhǔn)測試工作對(duì)競爭很敏感,只供內(nèi)部使用。
基準(zhǔn)測試可以幫助您進(jìn)行可行性研究并找到一款適合您應(yīng)用系統(tǒng)的處理器,但它們也能在設(shè)計(jì)周期內(nèi)或設(shè)計(jì)周期后,幫助您驗(yàn)證系統(tǒng)性能、確認(rèn)改進(jìn)措施、確定處理器在您實(shí)現(xiàn)方法中的提升空間;鶞(zhǔn)測試能幫助您鑒別性能缺陷,并幫助您將注意力集中在改進(jìn)性能上。特定的基準(zhǔn)測試并不局限于近似典型應(yīng)用系統(tǒng)的工作負(fù)載;它們可能包括吸取教訓(xùn),即強(qiáng)調(diào)系統(tǒng)必須驗(yàn)證性能,這對(duì)于安全性很重要的應(yīng)用系統(tǒng)來說特別有價(jià)值。
處理器供應(yīng)商和提供開發(fā)工具支持的廠商是基準(zhǔn)的主要用戶。他們使用內(nèi)部基準(zhǔn)測試結(jié)果或者行業(yè)標(biāo)準(zhǔn)基準(zhǔn)測試結(jié)果來進(jìn)行體系結(jié)構(gòu)定型和反饋優(yōu)化。對(duì)于體系結(jié)構(gòu)設(shè)計(jì)師來說,基準(zhǔn)測試結(jié)果能表明處理器體系結(jié)構(gòu)上的修改是否能使該處理器更加適合于或更加不適合于某種應(yīng)用系統(tǒng);鶞(zhǔn)測試還能證明體系結(jié)構(gòu)上的修改對(duì)于滿足目標(biāo)應(yīng)用系統(tǒng)需求沒有什么影響。對(duì)于工具設(shè)計(jì)師來說,基準(zhǔn)測試結(jié)果能表明編譯程序是否充分利用了一款處理器特有的功能特性。當(dāng)基準(zhǔn)測試套件充分獲取這幾類必要的應(yīng)用程序功能并運(yùn)用適當(dāng)?shù)奶幚砥魈匦詴r(shí),這類閉環(huán)優(yōu)化能導(dǎo)致處理器體系結(jié)構(gòu)和開發(fā)工具的積極演進(jìn)。
銷售組織使用基準(zhǔn)測試結(jié)果的方式與前面提到的群體使用方式頗為不同。銷售組織把基準(zhǔn)測試看作是表明其處理器優(yōu)于經(jīng)過相同和相似的基準(zhǔn)測試并且生產(chǎn)公司也發(fā)布了測試結(jié)果的處理器的機(jī)會(huì),(參閱附文“公開披露還是秘密披露?”)。依賴于吹噓某個(gè)優(yōu)秀基準(zhǔn)測試得分超過與之競爭的處理器的銷售材料可能是危險(xiǎn)的。銷售材料常常將基準(zhǔn)測試得分在圖表中作為一個(gè)合成數(shù)據(jù)顯示出來,您有責(zé)任研究這些被比較的系統(tǒng)的測試配置情況。
現(xiàn)代基準(zhǔn)仍然不包含能突出某款處理器在多項(xiàng)內(nèi)容上與另一處理器對(duì)比的綜合評(píng)分,這些對(duì)比內(nèi)容包括人為的基準(zhǔn)測試專用功能單元、器件成本差別、功耗或者可編程性和靈活性等。某些獲得最高基準(zhǔn)測試分的處理器只是某項(xiàng)功能很好,而其他功能并不令人滿意。
使用基準(zhǔn)
為了最有效地使用任何基準(zhǔn)測試,您首先需要了解您的應(yīng)用系統(tǒng)的特性,以便能評(píng)價(jià)基準(zhǔn)測試與實(shí)際情況的相關(guān)性。當(dāng)使用基準(zhǔn)測試來選擇平臺(tái)、供應(yīng)商和處理器體系結(jié)構(gòu)時(shí),您應(yīng)該先將重要功能和性能閾值列出并排出其先后次序。要鑒別您的應(yīng)用系統(tǒng)的工作環(huán)境以及它必定能完成的任務(wù)和算法。您是使用手工優(yōu)化的匯編程序還是所有您經(jīng)過編譯的軟件?您是否會(huì)使用操作系統(tǒng)?您的功率預(yù)算有多大?您的程序代碼和數(shù)據(jù)需要多大的存儲(chǔ)器?您能否假定所有存儲(chǔ)器訪問均來自快速存儲(chǔ)器?您需要哪些外設(shè)和I/O接口?您需要多高性能和I/O冗余能力?
除了考慮性能和功能要求之外,您還應(yīng)該鑒別同一份列表中的項(xiàng)目和商業(yè)需求并排出其先后次序。為避免學(xué)習(xí)一種新工具或操作系統(tǒng)或者支持既有代碼而使用開發(fā)工具套件到底有多重要?您需要從處理器供應(yīng)商的開發(fā)支持基礎(chǔ)設(shè)施中獲得多少應(yīng)用軟件專業(yè)知識(shí)?您是否需要應(yīng)用軟件說明、代碼示例或參考設(shè)計(jì)?您的成本目標(biāo)是多少?您是否需要在特定測試環(huán)境內(nèi)工作?接受培訓(xùn)有多重要?供應(yīng)商規(guī)劃圖風(fēng)險(xiǎn)容限有多大?
最有用的基準(zhǔn)測試能精確地預(yù)測或描述處理器和供應(yīng)商能在多大程度上支持您的應(yīng)用系統(tǒng)和項(xiàng)目需求,而所花的成本、時(shí)間和工作量最少。如果一個(gè)行業(yè)標(biāo)準(zhǔn)基準(zhǔn)測試與您的應(yīng)用系統(tǒng)緊密相關(guān),那就使用它,但是務(wù)必作出適當(dāng)?shù)呐Γ瑢?duì)每項(xiàng)基準(zhǔn)測試的細(xì)節(jié)進(jìn)行驗(yàn)證。測試裝置是否旨在演示計(jì)算性能、證明持續(xù)的I/O效率或表示低功耗?測試裝置的偏差是否與實(shí)際情況相關(guān)?數(shù)據(jù)路徑和存儲(chǔ)器結(jié)構(gòu)對(duì)您的應(yīng)用系統(tǒng)來說現(xiàn)實(shí)嗎?基準(zhǔn)測試能描述處理器性能,但是它們現(xiàn)在還不能獲取項(xiàng)目和商業(yè)要求。因此,基準(zhǔn)測試只應(yīng)該用作處理器選擇分析的一個(gè)輸入。
務(wù)必了解您使用的基準(zhǔn)是否恰如其分地反映處理器功能和編譯程序效率。編譯程序效率與嚴(yán)重依賴于手工匯編語言例程(例如那些高性能信號(hào)處理算法內(nèi)部循環(huán)中的例程)的應(yīng)用系統(tǒng)是不相關(guān)的。同樣,如果您使用C代碼,而且您使用的編譯程序沒有利用您希望使用的處理器功能,則與處理器功能性能也是不相關(guān)的。
當(dāng)標(biāo)準(zhǔn)基準(zhǔn)測試不能足夠精確地接近您的應(yīng)用系統(tǒng)需求時(shí),您仍然可以在處理器供應(yīng)商或基準(zhǔn)測試服務(wù)提供商的幫助下,應(yīng)用特殊的和自定義的基準(zhǔn)測試,并從基準(zhǔn)測試中獲得好處。當(dāng)您正在使用基準(zhǔn)測試數(shù)據(jù)進(jìn)行分析時(shí),務(wù)必向處理器供應(yīng)商詢問最新的基準(zhǔn)測試評(píng)分以及產(chǎn)生這些評(píng)分的詳情。這些數(shù)據(jù)可能不會(huì)公布,但是產(chǎn)生評(píng)分的詳情對(duì)于您了解評(píng)分的意義、評(píng)分的復(fù)制方法以及它們與實(shí)際情況的相關(guān)性十分重要。您可以決定設(shè)法在廠商提供的開發(fā)工具(例如在一個(gè)評(píng)估板)上重復(fù)這些結(jié)果,或者在某些情況下,您可以將您自己的基準(zhǔn)測試代碼提供給處理器供應(yīng)商進(jìn)行測試并向您匯報(bào)。無論如何,供應(yīng)商應(yīng)能詳述所有測試結(jié)果并提供與您的實(shí)際情況相關(guān)的具體意見。
分析和了解基準(zhǔn)測試需要花費(fèi)時(shí)間和資源。但是,設(shè)法重復(fù)廠商的基準(zhǔn)測試能揭示一些有價(jià)值的見解。處理器供應(yīng)商只是在他們認(rèn)為能夠從銷售中收回投資時(shí),才可能進(jìn)行基準(zhǔn)測試工作并共享那些測試結(jié)果。處理器供應(yīng)商對(duì)您的應(yīng)用系統(tǒng)了解得越多,他們能提供的基準(zhǔn)測試支持就越大。一家供應(yīng)商的基準(zhǔn)測試能突出并讓您洞察標(biāo)準(zhǔn)基準(zhǔn)測試無法獲得的工具和處理器特性,在供應(yīng)商的幫助下,您可以發(fā)現(xiàn)編譯程序優(yōu)化方法和處理器體系結(jié)構(gòu)的細(xì)節(jié),而無論是好是壞,這些細(xì)節(jié)將對(duì)您的實(shí)現(xiàn)假設(shè)構(gòu)成挑戰(zhàn)。廠商應(yīng)該有能力幫助您將您的代碼映射到目標(biāo)設(shè)備上,并提供如何利用特殊性能的例子。有些廠商允許客戶的基準(zhǔn)測試、復(fù)制努力集中在客戶不完全理解的關(guān)鍵性特性上,而改進(jìn)的見解對(duì)于客戶的分析十分重要。與實(shí)施完成之后相比,在選擇期間將更有利于做這些發(fā)現(xiàn)。
關(guān)于節(jié)省時(shí)間
基準(zhǔn)測試的主要目的是為您節(jié)省時(shí)間和資金,降低總的風(fēng)險(xiǎn)。如果您不在乎時(shí)間和金錢,那您可以在多個(gè)系統(tǒng)上開發(fā)應(yīng)用系統(tǒng),然后比較最后結(jié)果再做出最終決定。在有些情況下,這種方法可能是適宜的,但是對(duì)大多數(shù)情況,這是一種不可能的奢侈;鶞(zhǔn)測試應(yīng)用得當(dāng),應(yīng)能幫助您預(yù)測各個(gè)候選系統(tǒng)是否成功,而不會(huì)花費(fèi)實(shí)現(xiàn)整個(gè)設(shè)計(jì)的全部費(fèi)用,但只是在基準(zhǔn)測試與您的應(yīng)用系統(tǒng)工作負(fù)載相關(guān)時(shí)才是這樣。
基準(zhǔn)組織正在修改他們的基準(zhǔn)測試套件,以便更好地反映市場變化并且使廠商博弈穩(wěn)定基準(zhǔn)測試套件的風(fēng)險(xiǎn)降至最小。未來基準(zhǔn)測試計(jì)劃是致力于如何更好地反映今天和未來應(yīng)用系統(tǒng)的不斷變化的工作負(fù)載,其中包括如何將功耗因素納入評(píng)分之中。功耗取決于使設(shè)計(jì)師難以用標(biāo)準(zhǔn)而又有意義的方式獲取類似于基準(zhǔn)測試的評(píng)分的許多系統(tǒng)問題。另一個(gè)挑戰(zhàn)性領(lǐng)域是由多個(gè)系統(tǒng)融合成一個(gè)產(chǎn)品或設(shè)備這種趨勢(shì)產(chǎn)生的;它迫使未來的基準(zhǔn)測試必須考慮如何獲取跨越應(yīng)用系統(tǒng)界限的工作負(fù)載。
如果能抽出時(shí)間,您應(yīng)該投入必要的時(shí)間分析關(guān)于系統(tǒng)配置的全部情況,并對(duì)供應(yīng)商基準(zhǔn)測試評(píng)分“進(jìn)行逆向工程”。您在這個(gè)過程中獲得的見解可能證明是非常寶貴的。您應(yīng)能與供應(yīng)商討論所有基準(zhǔn)測試的細(xì)節(jié)。測試環(huán)境的人為細(xì)節(jié)可能使評(píng)分失去實(shí)用性,但可以突出您在其他情況下得不到的某種有用功能。
總之,基準(zhǔn)測試能幫助您根據(jù)性能選擇一種處理器。但是僅僅依靠基準(zhǔn)測試是不足以幫助您在兩個(gè)可比的處理器系統(tǒng)之間作出選擇的。與供應(yīng)商共同進(jìn)行的基準(zhǔn)測試能使您定性地認(rèn)識(shí)到供應(yīng)商及其開發(fā)支持基礎(chǔ)設(shè)施能在多大程度上滿足您的需求。一旦您擁有合適的候選處理器,諸如供應(yīng)商技術(shù)響應(yīng)、代碼移植簡易性、需要進(jìn)行的軟件移植總量、文檔和培訓(xùn)質(zhì)量以及處理器發(fā)展藍(lán)圖符合您未來需求的可能性等因素都將在您的最終抉擇中被優(yōu)先考慮。
摘自《END技術(shù)》