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