圖1:Xenergy能量估計軟件能夠?qū)\行在Tensilica Xtensa可配置處理器或者鉆石標準處理器上的應(yīng)用程序進行功耗評估。
工作原理
針對各種處理器配置情況以及不同的制造工藝,Tensilica生成的訪存(讀和寫)功耗統(tǒng)計模型和每條指令的功耗統(tǒng)計模型均經(jīng)過詳細的綜合、RTL代碼設(shè)計以及門級仿真。Xenergy工具使用這些模型,即使采用Tensilica指令擴展(TIE)語言編寫的由設(shè)計人員定義的指令也不例外。
Xenergy工具使用訪存功耗統(tǒng)計模型和指令功耗統(tǒng)計模型,包括了用Tensilica指令擴展語言編寫的由設(shè)計人員定義的擴展指令。針對各種處理器配置情況以及不同的制造工藝,這些統(tǒng)計模型的開發(fā)包括了詳細的綜合、RTL代碼設(shè)計以及門級仿真。
Xenergy工具采用Tensilica的指令集仿真器ISS對應(yīng)用程序進行仿真,仿真精度達到時鐘周期。仿真后可以給出每條指令執(zhí)行以及每次訪存的綜合統(tǒng)計信息。針對采用的處理器和存儲器,Xenergy工具可以估計出相應(yīng)的動態(tài)功耗、漏電功耗和全部功耗。
存儲器和應(yīng)用程序代碼效應(yīng)
有些TIE指令可以改善應(yīng)用程序的性能,但極大地增加了訪存次數(shù),進而增加了系統(tǒng)功耗。而且,對高速緩存的更新(容量和關(guān)聯(lián)度)有助于功耗優(yōu)化。Xenergy程序能夠幫助設(shè)計人員理解整個處理器的變化所造成的影響,這些變化是在處理器配置過程中隨著存儲器的不同所引起的。
類似地,Xenergy工具能夠幫助開發(fā)人員修改應(yīng)用程序代碼來減少處理器和存儲器的能量消耗。例如,在應(yīng)用程序中對數(shù)據(jù)結(jié)構(gòu)進行重構(gòu)能夠降低訪存次數(shù)。通過使用Tensilica的標準軟件工具,開發(fā)人員可以發(fā)現(xiàn)應(yīng)用程序的改善情況。通過使用Xenergy工具,開發(fā)人員能夠發(fā)現(xiàn)通過修改程序代碼來降低系統(tǒng)功耗。
一個例子
我們采用EEMBC(嵌入式微處理器典型程序聯(lián)盟,參見網(wǎng)址www.eembc.org)中的RGB到Y(jié)UV顏色轉(zhuǎn)換典型程序來說明Xenergy工具是如果在實際應(yīng)用程序中使用的。
我們也可以采用Tensilica的XPRES(Xtensa處理器擴展綜合)編譯器,該編譯器利用C或者C++編寫的應(yīng)用程序軟件作為輸入數(shù)據(jù),并產(chǎn)生用TIE語言表示的處理器擴展。通過XPRES編譯器可以為Xtensa處理器產(chǎn)生三種擴展指令集。
1. 要求XPRES編譯器產(chǎn)生TIE指令,完成指令操作融合,即將多個操作符融合成一個單一復(fù)雜操作。
2. 然后,我們可以要求XPRES也產(chǎn)生SIMD(單指令多數(shù)據(jù))功能部件(及相應(yīng)的指令),進行向量操作,即對多個數(shù)據(jù)元素施加相同的操作符。
3. 最后,我們要求XPRES編譯器將Xtensa處理器擴展成一個VLIW(超長指令字)體系結(jié)構(gòu),并利用Tensilica的FLIX(定長指令擴展)技術(shù)。XPRES編譯器利用VLIW指令構(gòu)建多發(fā)射數(shù)據(jù)通路,VLIW指令可以包括多個操作。
圖2:對不同Xtensa處理器擴展后的性能、功耗和面積對應(yīng)關(guān)系。
三種Xtensa配置結(jié)果如圖2所示。周期數(shù)與性能是等價的,這由在指令集仿真器ISS上執(zhí)行的顏色轉(zhuǎn)換應(yīng)用程序來決定。門數(shù)可以由Tensilica的TIE編譯器來估計得到。所有其它數(shù)據(jù)均由Xenergy工具來生成。
圖2表示由XPRES編譯器生成的SIMD操作以及融合操作性能改善情況,大約是3.8倍,而門數(shù)為大約5倍。處理器和存儲器功耗與性能的對應(yīng)關(guān)系相當(dāng)好。另外還表示了當(dāng)XPRES編譯器生成VLIW(FLIX)體系結(jié)構(gòu)時,性能的改善情況是大約20%。然而,門數(shù)為兩倍,且處理器功耗很差。
因此,由于SIMD操作引起的性能改善將使得功耗降低,且由于芯片面積(門數(shù))的增加使得系統(tǒng)功耗/能量增加。這是最好的優(yōu)化情況。
上述例子說明Xenergy評估工具是SoC設(shè)計人員在對性能、面積和功耗進行折衷時不可或缺的軟件工具。
本文小結(jié)
Tensilica公司的Xenergy工具軟件為SoC設(shè)計人員提前對運行在某些應(yīng)用程序時的處理器和存儲器子系統(tǒng)所消耗的總能量進行評估。設(shè)計人員能夠馬上看到Xtensa配置和TIE指令代碼改變后的整個系統(tǒng)功耗情況。這對那些使用Xtensa處理器來代替RTL去設(shè)計SoC數(shù)據(jù)通路的設(shè)計人員尤為重要。通過使用定制TIE指令可以盡早評估系統(tǒng)的功耗情況,這有助于正確評估系統(tǒng)功耗、面積和性能。