Global Sources
電子工程專輯
 
電子工程專輯 > 處理器/DSP
 
 
處理器/DSP  

處理器與記憶體子系統中的SoC功耗最佳化設計

上網時間: 2007年08月16日     打印版  Bookmark and Share  字型大小:  

關鍵字:處理器  功耗  最佳化 

在新的系統級晶片(SoC)設計中,特別是對可攜式設備而言,對整個系統功耗最佳化正變得與性能和面積最佳化同樣重要。部份EDA工具具有閘控時脈、降壓、降頻和減少漏電電流等功能,有些晶片製造商能夠提供低功耗庫和製程,所有這些製程都非常費時;在最好情況下,大約能提供兩倍的性能提升,因為這些提升是在設計週期的後端進行的。

功耗最佳化的最佳時間是在設計週期的一開始進行,即在確定架構的系統級進行最佳化。確定系統級架構對功耗影響非常大,如局部記憶體和快取記憶體的數量和容量。在設計週期的一開始進行最佳化可將功耗減少10倍以上。

Tensilica公司的Xenergy是首個用於評估功耗對整個處理器子系統(處理器、快取記憶體和局部記憶體)影響的軟體工具,該工具基於在子系統上實際執行應用程式碼。這種在設計週期的一開始就進行功耗估計的方法只需要幾分鐘時間,而基於RTL的功耗分析方法則需要幾個小時甚至幾天。SoC架構設計人員可以使用這些數據對軟體程式和Tensilica的Xtensa處理器進行功耗最佳化。

處理器和記憶體功耗最佳化

Xenergy工具套件括一個二進制程式碼軟體及相關資訊,前者表示目標處理器,後者表示製造製程及工作條件。Xenergy工具使用Tensilica的指令集模擬器ISS來執行二進制程式碼軟體,其輸出是一個處理器核心及記憶體功耗和能量報告,包括動態功耗、漏電功耗、全部功耗以及處理器核心與緊密耦合的本地記憶體功耗。設計人員可以修改程式軟體或者Xtensa配置硬體來最佳化處理器功耗分佈,並重新執行Xenergy工具。整個流程如圖1所示。

設計人員可使用Xenergy工具來執行兩項基本任務。一是透過修改應用程式軟體來減少記憶體存取次數,進而減少處理器和記憶體功耗;二是可調整Xtensa可配置處理器及其相關記憶體,這可透過選擇不同的配置選項,增加指令擴展、暫存器文件、新執行元件,並改變本地記憶體和快取記憶體的數量和容量來完成。

考量重點是整個系統的能量消耗。整個系統的功耗是功耗係數(mW/MHz)和執行一定負載所需要的時脈週期數(毫秒)的乘積。如果一條新指令加到Xtensa可配置處理器後,雖然增加了功耗係數,但卻減少了整個時脈週期數。例如,功耗係數增加20%,但使程式執行速度提高3倍。在這種情況下,整個系統功耗實際上降低了60%。

工作原理

針對各種處理器配置情況以及不同的製程,Tensilica產生的存取(讀取和寫入)功耗統計模型和每條指令的功耗統計模型均經過詳細的合成、RTL程式碼設計以及閘級模擬。Xenergy工具使用這些模型,即使採用Tensilica指令擴展(TIE)語言編寫,且由設計人員定義的指令也不例外。

Xenergy工具使用功耗統計模型和指令功耗統計模型。針對各種處理器配置情況以及不同的製程,這些統計模型的開發包括了詳細的合成、RTL程式碼設計以及閘級模擬。

Xenergy工具採用Tensilica的指令集模擬器ISS對應用程式進行模擬,模擬精密度達到時脈週期。模擬後可提供每條指令執行以及每次存取的合成統計資訊。針對採用的處理器和記憶體,Xenergy工具可估計相應的動態功耗、漏電功耗和全部功耗。

圖1:Xenergy能量估計軟體能夠對執行在Tensilica Xtensa可配置處理器或鑽石級處理器上的應用程式進行功耗評估。
<p>
圖1:Xenergy能量估計軟體能夠對執行在Tensilica Xtensa可配置處理器或鑽石級處理器上的應用程式進行功耗評估。

記憶體和應用程式碼效應

有些TIE指令可以改善應用程式的性能,但大幅增加了存取次數,進而增加了系統功耗。而且,對快取記憶體的更新(容量和關聯度)有助於功耗最佳化。Xenergy程式能夠幫助設計人員瞭解整個處理器的變化所造成的影響,這些變化是在處理器配置過程中隨著記憶體的不同所引起的。

類似地,Xenergy工具能夠幫助開發人員修改應用程式碼來減少處理器和記憶體的能量消耗。例如,在應用程式中對數據結構進行重構能夠降低存取次數。透過使用Tensilica的標準軟體工具,開發人員可以發現應用程式的改善情況。透過使用Xenergy工具,開發人員能夠透過修改程式碼來降低系統功耗。

我們採用嵌入式微處理器典型程式聯盟(EEMBC)中的RGB到YUV顏色轉換典型程式,說明Xenergy工具在實際應用程式中使用的情況。

我們也可以採用Tensilica的XPRES(Xtensa處理器擴展合成)編譯器,該編譯器利用C或C++編寫的應用程式軟體作為輸入數據,並產生用TIE語言表示的處理器擴展。透過XPRES編譯器,可以為Xtensa處理器產生三種擴展指令集。

1. 要求XPRES編譯器產生TIE指令,完成指令作業融合,即將多個作業符融合成一個單一複雜的作業。

2. 然後,我們可以要求XPRES也產生SIMD(單指令多數據)功能元件(及相應的指令),進行向量作業,即對多個數據元素施加相同的作業符。

3. 最後,我們要求XPRES編譯器將Xtensa處理器擴展成一個VLIW(超長指令集)架構,並利用Tensilica的FLIX(定長指令擴展)技術。XPRES編譯器利用VLIW指令建構多發射數據通路,VLIW指令可以包含多個作業。

三種Xtensa配置結果如圖2所示。週期數與性能是等價的,這是由在指令集模擬器ISS上執行的顏色轉換應用程式來決定。閘數可以由Tensilica的TIE編譯器估計得到。所有其它數據均由Xenergy工具產生。

圖2:對不同Xtensa處理器擴展後的性能、功耗和面積對應關係。
<p>
圖2:對不同Xtensa處理器擴展後的性能、功耗和面積對應關係。

圖2表示由XPRES編譯器產生的SIMD作業以及融合作業性能改善情況,大約是3.8倍,而閘數為大約5倍。處理器和記憶體功耗與性能的對應關係相當好。另外還表示了當XPRES編譯器產生VLIW(FLIX)架構時,性能的改善情況約為20%。但閘數為兩倍,且處理器功耗很差。

因此,由SIMD作業引起的性能改善將使功耗降低,且由於晶片面積(閘數)的增加使得系統功耗/能量增加。這是最好的最佳化情況。

上述例子說明Xenergy評估工具是SoC設計人員在對性能、面積和功耗進行折衷時不可或缺的軟體工具。

本文小結

Tensilica公司的Xenergy工具軟體能讓SoC設計人員提前對執行在某些應用程式時的處理器和記憶體子系統所消耗的總能量進行評估。設計人員能立即看到Xtensa配置和TIE指令程式碼改變後的整個系統功耗情況。這對使用Xtensa處理器來取代RTL設計SoC數據通路的設計人員尤為重要。透過使用定製TIE指令,可盡早評估系統的功耗情況,這有助於正確評估系統功耗、面積和性能。

作者:Sumit Gupta

   產品市場經理

   Tensilica公司




投票數:   加入我的最愛
我來評論 - 處理器與記憶體子系統中的SoC功耗最佳...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首