工研院系統(tǒng)芯片中心于2003年開始執(zhí)行的PAC計劃,,目標(biāo)為針對可攜式多媒體播放器或智能型手機一類的新一代多媒體及多功能可攜式設(shè)備提供一個高效能、低功耗的可程序化解決方案,,本文將從PACDSP微架構(gòu)談起,、進(jìn)一步討論具動態(tài)電壓/頻率調(diào)整能力之雙核心系統(tǒng)芯片設(shè)計,以及具節(jié)能感知的多媒體編譯碼技術(shù),。另外也于此論文中提及第二階段的研究方向,,包含多核心處理器架構(gòu)、電子層級設(shè)計方法,,以及低功耗的多媒體軟件架構(gòu),。
隨著市場對芯片的整合度要求不斷上升,芯片設(shè)計者必須設(shè)法在單一芯片中整合更多功能,。然而,,復(fù)雜的設(shè)計、不斷飆升的制造成本,,以及終端產(chǎn)品生命周期急速縮短,,在在使得芯片供貨商在開發(fā)系統(tǒng)單芯片時必須承擔(dān)更高的風(fēng)險。若系統(tǒng)芯片中備有可程序化的核心電路,,許多的系統(tǒng)功能就可以軟件形式呈現(xiàn),,進(jìn)而大幅提升設(shè)計者的產(chǎn)能,。對終端產(chǎn)品的設(shè)計者而言,「硬件軟件化」的趨勢也能帶來許多好處,,因為軟件的彈性讓設(shè)計者能更輕易地調(diào)整功能,、以單一硬件平臺開發(fā)出多種產(chǎn)品,若能兼顧軟件可重復(fù)利用性,,更可大幅縮短設(shè)計時間
彈性vs.成本 DSP的美麗與哀愁
因為軟件能提供硬件無法做到的彈性,,所以多媒體處理常常以軟件方式實現(xiàn)而非用固定功能的硬件。例如某播放器原本支持的音訊壓縮規(guī)格有WMA,、MP3和AAC,,可是當(dāng)新的算法又被提出時,軟件即可迅速地更新而不須重新設(shè)計硬件,。數(shù)字信號處理器(DSP)就是一個可程序化的通用處理器,,其指令集和架構(gòu)則專門針對數(shù)字信號應(yīng)用而特別強化設(shè)計,。DSP由70年代開始發(fā)展迄今,,不論在多媒體處理、通訊,,甚至工業(yè)控制等應(yīng)用領(lǐng)域都可輕易見到其蹤跡,。然而,這兩個架構(gòu)也有很嚴(yán)重的缺點,,譬如緩存器需求量(Register Complexity)很大,,程序代碼耗費的內(nèi)存空間也很大。
針對DSP的缺點,,第一階段的PAC計劃開發(fā)了一顆可同時執(zhí)行五道指令的超長指令(VLIW)數(shù)字信號處理器核心,,它以特殊的分布式緩存器架構(gòu)及新的可變長度指令編碼技術(shù)來解決前述所遇到的問題。在PAC計劃的第一階段,,工研院系統(tǒng)芯片中心也開發(fā)出由PACDSP和ARM9組成的雙核心芯片,。
PAC計劃的硬件設(shè)計包含了一顆高效能/低功耗的可程序化的數(shù)字信號處理核心,以及一個以數(shù)字信號處理核心為基礎(chǔ)的運算平臺,。圖1為PAC計劃的發(fā)展藍(lán)圖,。PACDSP V3是現(xiàn)在已對外授權(quán)的VLIW架構(gòu)。PACplus!則是基于V3的指令集再強化系統(tǒng)接口的設(shè)計,。未來的開發(fā)規(guī)畫則是要產(chǎn)出整合多顆PACDSP架構(gòu)的平臺(如PAC Duo有兩顆PACDSP,、PAC Quad有四顆PAC-DSP),同時也會設(shè)計新一代的指令集,,提供超低功耗之應(yīng)用并且再提升能量之效益(如PAC-lite和PAC-SIMD),。
圖1 PAC計劃演進(jìn)藍(lán)圖
分散架構(gòu)與可變VLIW 有助降低成本
PACDSP V3是一個由工研院開發(fā)的32位VLIW DSP。它擁有特定應(yīng)用集成電路(ASIC)的高效能與低功耗的能力,,也有微處理器(MPU)的可程序化特性,。其特征包含可擴充的數(shù)據(jù)路徑(Scalable Datapath),、創(chuàng)新并擁有專利的分布式緩存器架構(gòu)、豐富且經(jīng)過最佳化的指令集和高頻寬的內(nèi)存次系統(tǒng)(Memory Subsystem),。PACDSP的微架構(gòu)主要由程序流程控制單元(Program Sequence Control Unit)和聚集成群的數(shù)據(jù)路徑(Scalar unit,可進(jìn)一步細(xì)分為Cluster 1與Cluster 2)組合而成(圖2),。因為VLIW的程序代碼通常會花費大量的內(nèi)存空間,所以藉由可變長度指令編碼,、消除NOP和內(nèi)嵌程序代碼復(fù)制等技術(shù)來改善程序代碼的密度,,而PACDSP的程序流程控制單元則可以動態(tài)地對齊各個編碼長不固定的超長指令封包(VLIW Packet)。另一方面,,因為VLIW的緩存器需求量很大而且占用大量芯片面積,,所以創(chuàng)新的分布式緩存器架構(gòu)可以顯著降低PAC-DSP的實作成本。
圖2 PACDSP微架構(gòu)
與集中式緩存器的架構(gòu)相較,,PACDSP的緩存器架構(gòu)可以節(jié)省76.8%的面積及縮短46.9%的存取時間,。內(nèi)含的功率管理單元又可依操作模式關(guān)閉閑置的數(shù)據(jù)路徑來節(jié)省功率消耗。為了將PACDSP核心整合到以先進(jìn)高速總線(Advanced High-speed Bus, AHB)為基礎(chǔ)的系統(tǒng)平臺,,PACDSP 3.0提供了一個AHB主埠(Master Port)和一個AHB從端口(Slave Port)的總線接口,,以及高頻寬的內(nèi)部存儲器次系統(tǒng),包含一塊32KB的直接映像指令高速緩存和一塊64KB的數(shù)據(jù)存儲器,。
PACDSP 3.0已以TSMC 0.13微米制程實現(xiàn),。最快可操作于300MHz頻率,而面積只有250K邏輯閘,。由于高度最佳化的微架構(gòu)和內(nèi)嵌功率管理,,讓PACDSP的平均功耗只有0.08mW/MIPS。以PACDSP和StarCore與CEVA這兩個已授權(quán)的DSP核心相比,,后兩者雖然使用相當(dāng)高的指令頻寬以支持更多運算單元同時運作,,但在同樣采用0.13微米CMOS制程實作、在相同的運算量下,,PACDSP比其它兩個競爭者可以獲得較低的功率消耗(表1),。
表1 已授權(quán)的DSP核心之比較
核心
Starcore
CEVA
ITRI/STC
SC1000
CEVA-X
PACDSP
結(jié)構(gòu)
六路
VLIW
八路
VLIW
五路
VLIW
頻率
305MHz
450MHz
300MHz
功耗
(不含內(nèi)存)
0.098
mW/MIPS
0.08
mW/MIPS
0.08
mW/MIPS
芯片面積
-
1.6mm2
~1.2mm2
PACplus!是基于V3指令集再強化系統(tǒng)接口的設(shè)計(如PACDSP 3.3)。它的最上層的架構(gòu)如圖3所示,,除了原本的PACDSP還包括數(shù)據(jù)存儲器單元(Data Memory Unit, DMU),、指令內(nèi)存單元(Instruction Memory Unit, IMU)、總線接口單元(Bus Interface Unit, BIU),、主處器接口單元(Host Interface Unit, HIU),、內(nèi)嵌電路模仿器(In-Circuit Emulator, ICE)等模塊。而DMU和IMU為可重組的內(nèi)存區(qū)塊,,各內(nèi)存區(qū)塊又可以獨立關(guān)閉以節(jié)省功耗,。BIU則支持AMBA3 AXI協(xié)議,可接受穿插的新交易(Outstanding Transaction),、同時讀寫,、非循序(Out-of-order)數(shù)據(jù)傳送,,藉此提高可用的頻寬。PACDSP V3還有一套完整的程序開發(fā)工具(C/C++編譯器,、組譯器,、連結(jié)器、除錯器等),,并且提供高效能的DSP鏈接庫(Library)給多媒體應(yīng)用,。有了完整的軟硬件工具和豐富的輸入/輸出周邊,設(shè)計者便可輕易且迅速地發(fā)展自己的應(yīng)用,。
圖3 PAC-plus!架構(gòu)
雙核架構(gòu)讓視訊譯碼更有效率
除了PACDSP,,第一階段的PAC計劃也成功地開發(fā)了一顆整合PACDSP和ARM9的雙核心系統(tǒng)芯片。此芯片可在低功耗的前提下提供高效能多媒體處理,,如實時H.264編解碼,。多層AHB用于連接兩個核心、系統(tǒng)直接內(nèi)存存取(DMA)引擎,、同步動態(tài)內(nèi)存(SDRAM)控制器,、向量中斷(Vector Interrupt)控制器等(圖4)。PAC Solo采用各式各樣的最佳化技術(shù)來降低動態(tài)功率消耗及漏電流,。其一,,在整個芯片各個角落使用頻率開關(guān),。其二,,將整個系統(tǒng)芯片切成七個獨立的功率區(qū)域,每個功率區(qū)域可以各自調(diào)整電壓供應(yīng)及操作頻率,。表2羅列各功率區(qū)域和相對應(yīng)的操作模式,。由于欠缺額外的信號控制ARM9核心,所以MPU區(qū)域只能調(diào)整頻率,。但另一方面,,DSP可被完整地控制其操作頻率和電壓供應(yīng)。每個功率區(qū)域的操作模式可因應(yīng)程序的效能需求而改變,。DVFS控制器有一組控制緩存器記錄了現(xiàn)在的狀態(tài),、下一狀態(tài)和所有區(qū)域的所有可能的狀態(tài)。要得到最佳的功耗,,可利用軟件去設(shè)定控制緩存器,。
圖4 PAC Solo的架構(gòu)
表2 PAC Solo的功率區(qū)域
功率區(qū)域
功率模式
功率間
名稱
供電電壓(V)
頻率(MHz)
MPU
工作-1
1.2
228
無
工作-2
1.2
152
工作-3
1.2
114
待機
1.2
0
休眠
0
0
DSP
工作-1
1.2
228
有
工作-2
1.0
152
工作-3
0.9
114
待機
0.9
0
等候
0.9
0
休眠
0
0
ME
同DSP區(qū)域
有
AHB
全速
1.2
152/114
無
低速
1.0
76
SRAM & LCD
同AHB區(qū)域
有
APB & DVFS
固定電壓
1.0
48
無
PLL
固定電壓
1.2
456
無
為了展現(xiàn)VLIW的能力,傳統(tǒng)的算法需要根據(jù)指令層級的平行特性而重新調(diào)整,。除此之外,,DVFS的功能也是與應(yīng)用的規(guī)格及內(nèi)容息息相關(guān),將特殊的控制方法加入現(xiàn)有的動態(tài)運算中,,則可以更低的功耗完成實時運算,。以H.246/AVC譯碼器為例,,在不同的應(yīng)用和不同的設(shè)備中會使用不同的分辨率(Resolution)和規(guī)模(Profile)。例如手持裝置視訊會議的位率較低,,影片可以在較低的操作頻率來譯碼,,因此設(shè)計人員可降低處理器的供電電壓以降低功耗;另一方面,,因為高畫質(zhì)電視的位率需求較高,,因此處理器的電壓與頻率皆須調(diào)高才能提供足夠效能,甚至在譯碼一段影片,,由于各張影格(Frame)的譯碼復(fù)雜度不同,,譯碼所需時間也不同,因此利用PAC平臺的DVFS功能,,可開發(fā)一個具節(jié)能感知能力的H.264/AVC譯碼器,。
DVFS帶來顯著節(jié)能效果
在節(jié)能感知的H.264/AVC譯碼器中,PACDSP的電壓及頻率可動態(tài)地調(diào)整以提供適合的效能上,,而ARM9核心的頻率則固定于114MHz,。為了解功耗與操作頻率/電壓的關(guān)系,先分析PACDSP在不同操作模式下產(chǎn)生的功耗,,其結(jié)果如表3所示,,此數(shù)據(jù)是來自于實際的芯片量測,并以同樣的影片重復(fù)解碼而得到的結(jié)果,。因應(yīng)不同特性的輸入內(nèi)容(Input Sequence),,可藉由DVFS控制器動態(tài)調(diào)整電壓和頻率。圖5展示其DVFS的控制流程,。其中Te為前一張影格的執(zhí)行時間,,Ta為現(xiàn)在這一張影格被允許執(zhí)行的時間。一開始,,前三十張影格用于學(xué)習(xí)此輸入內(nèi)容的特性,,并建立效能數(shù)據(jù)庫(Performance Database)。接著的影格,,其操作模式則利用預(yù)測模型來決定,,此預(yù)測模型會用到時間和功耗的信息?;陬A(yù)測模型,,每個操作模式的出現(xiàn)頻率將被分析。表4的兩個案例使用同一個輸入內(nèi)容,,但每秒處理不同數(shù)量的影格,。每秒處理較多的影格隱含PACDSP應(yīng)多利用第一個操作模式去達(dá)成效能的需求。與沒有DVFS相比較,此二案例顯示能量可節(jié)省35%和43%,。
表3 不同的操作模式的功率消耗
模式
DSP狀態(tài)
功耗
解碼時間
能量(mJ)
工作-1
1.2V/228MHz
161.20mW
10秒
1,612
工作-2
1.0V/152MHz
75.99mW
13秒
987.87(39%)
工作-3
0.9V/114MHz
48.82mW
17秒
829.94(49%)
圖5 DVFS的控制流程
表4 動態(tài)調(diào)整電壓/頻率的能量消耗
每秒影格數(shù)(FPS)
模式
事件
功率節(jié)省
案例1
22
工作-1
359(19%)
35%
工作-2
874(46%)
工作-3
655(35%)
案例2
20
工作-1
82(4%)
43%
工作-2
688(36%)
工作-3
1118(60%)
基于PACDSP核心與其相關(guān)的開發(fā)工具,、DVFS技術(shù)、最佳化的DSP鏈接庫和多媒體編解程序在第一階段的PAC計劃已開發(fā)完成,。第二階段則欲追求新一代嵌入式運算平臺,,其可擁有更低的功率消耗、更高的運算效能,,以及更佳的能量效益,。相較于第一階段,PAC II將更專注于平臺的技術(shù),,包含低功耗/高頻寬的芯片網(wǎng)絡(luò)(On-chip Network),、最佳化的嵌入式內(nèi)存架構(gòu)與DMA引擎、平臺最佳化的實時軟件,、ESL設(shè)計方法等,。基本硬件的研究著重于超低功耗及更佳的能量效益之應(yīng)用,,包含新一代的指令集架構(gòu)(PAC-lite和PAC-SIMD)和多顆PACDSP的架構(gòu)(PAC Duo有兩顆PACDSP和PAC Quad有四顆PACDSP),。PAC II的硬件與軟件架構(gòu)如圖6、7所示,。
圖6 PACII硬件架構(gòu)
圖7 PACII軟件架構(gòu)
完善開發(fā)環(huán)境簡化DSP程序開發(fā)
擁有許多簡單處理器的多核心架構(gòu)已經(jīng)證明比單一個高效能的處理器更能有效地進(jìn)行功耗管理,,但亦必須付出其額外多核心間通訊接口設(shè)計復(fù)雜,以及多核心軟件不好掌控等代價,?;谝延胸S富的PACDSP的軟件組件發(fā)展一套組件基礎(chǔ)(Component-based)的軟件開發(fā)環(huán)境,如圖8所示,。此ESL工具允許使用圖形接口的拖拉和點擊(Drag & Drop)的方式將許多單顆處理器上的軟件工作連結(jié)到多顆核心的硬件資源上,,并利用周期精確(Cycle-accurate)的交易模型來仿真。現(xiàn)在正進(jìn)行利用混合整數(shù)線性規(guī)畫(Mixed Integer Linear Programming, MILP)算法來完成自動化工作連結(jié),,此可呈現(xiàn)系統(tǒng)層級的問題,包含快取失誤(Cache Miss)和芯片網(wǎng)絡(luò)上的DMA行為,。
圖8 PACII的多核心仿真器
設(shè)計一個彈性及可程序化的架構(gòu)一直是讓人卻步的任務(wù),,但隨著無線通訊標(biāo)準(zhǔn)的演進(jìn)與新一代的多媒體壓縮技術(shù)出現(xiàn),客戶想要的新產(chǎn)品不只能符合現(xiàn)在的需求,,也希望此系統(tǒng)必須要能面對預(yù)料之外的挑戰(zhàn),。本文中描述了PAC第一階段有幾個研究與實作結(jié)果,包括高效能與低功耗的PACDSP,、可動態(tài)調(diào)整電壓與頻率的系統(tǒng)芯片,、具節(jié)能感知的H.264譯碼器。為了新一代的應(yīng)用,,PAC的第二階段將繼續(xù)追求更低功耗,、更高效能,、更佳能量效益的運算平臺,將更專注于多核心處理器架構(gòu),、電子系統(tǒng)層級設(shè)計方法和平臺相關(guān)的軟件最佳化,。