基于ARM內(nèi)核的手持設(shè)備SoC
摘 要:本文研究并開發(fā)了一款針對手持設(shè)備、內(nèi)嵌ARM7TDMI內(nèi)核的系統(tǒng)芯片。在設(shè)計(jì)這款芯片的過程中,MP3算法的軟硬件分割和芯片的低功耗設(shè)計(jì)是主要挑戰(zhàn)。本文介紹了該系統(tǒng)芯片的結(jié)構(gòu),并著重介紹了軟硬件分割和低功耗設(shè)計(jì)技術(shù)。
關(guān)鍵詞:系統(tǒng)芯片;低功耗;ARM;MP3
引言
隨著半導(dǎo)體技術(shù)的進(jìn)步和芯片設(shè)計(jì)方法—IP重用技術(shù)的出現(xiàn),SoC在消費(fèi)類電子產(chǎn)品中已經(jīng)越來越普遍。本課題組去年啟動了稱為Garfield的SoC項(xiàng)目。Garfield定義為一款面向中低端PDA的嵌入式處理器,支持顯示器件接口、存儲控制器、通訊控制器和多媒體應(yīng)用等。多目標(biāo)圓片(MPW)試驗(yàn)和測試結(jié)果表明,Garfield基本達(dá)到設(shè)計(jì)要求,各項(xiàng)性能指標(biāo)也符合原來的定義。
在Garfield開發(fā)過程中,克服了許多挑戰(zhàn)。首先是驗(yàn)證工作,60%以上的開發(fā)時間都是用來保證芯片沒有功能性問題。其次,低功耗對于電池供電的手持終端而言是一個關(guān)鍵問題,必須采用大量低功耗技術(shù)來保證系統(tǒng)不損耗不必要的功率和運(yùn)行更長的時間。第三,由于ARM7TDMI內(nèi)核的速度限制和MP3的算法復(fù)雜度,MP3軟解碼無法在基于ARM7TDMI的平臺上實(shí)現(xiàn)實(shí)時播放。因此必須在芯片內(nèi)包含MP3硬件加速引擎,確認(rèn)MP3哪一部分的算法需要在硬件加速引擎中實(shí)現(xiàn),這就需要軟硬件分割并在系統(tǒng)級評估其性能,使用最少的硬件資源實(shí)現(xiàn)MP3的實(shí)時播放。
Garfield結(jié)構(gòu)
Garfield的結(jié)構(gòu)如圖1所示,其體系結(jié)構(gòu)包括CPU內(nèi)核、片上總線和其它的外設(shè)。
ARM公司不僅提供微處理器內(nèi)核,還提供各種易用的工具,比如調(diào)試工具、軟件開發(fā)包、原型樣機(jī)開發(fā)包等,其微處理器內(nèi)核以低功耗見長。目前AMBA最新的版本是AMBA 3.0,但AMBA 2.0的標(biāo)準(zhǔn)相對而言更加成熟,并且有很多成功案例,所以選擇AMBA 2.0作為Garfield的片上總線。AMBA包含高速總線AHB和低速總線APB。AHB是為高速、高性能的外設(shè)設(shè)計(jì)的骨干總線,Garfield通過AHB把存儲器控制器、內(nèi)核、片上SRAM、顯示控制器、多媒體加速引擎和DMA等模塊連接起來。APB是為低速、低功耗的外設(shè)設(shè)計(jì)的,它不提供“突發(fā)”模式的數(shù)據(jù)傳輸,所有其它不需要高數(shù)據(jù)帶寬的外設(shè)都通過APB連接。在AHB和APB之間則通過一個橋(bridge)連接。
在嵌入式微處理器中,外存控制器必須支持多種不同類型的外存。此外,嵌入式設(shè)備還經(jīng)常使用一些卡(比如CF卡、MMC卡等)來備份或者擴(kuò)展存儲器系統(tǒng)。目前市場上還出現(xiàn)了一種不同于傳統(tǒng)NOR-Flash結(jié)構(gòu)的NAND-Flash,NAND-Flash具有容量大、便宜等優(yōu)點(diǎn),因此支持NAND-Flash有助于降低系統(tǒng)成本,提高競爭力。
盡管純軟件解碼的MP3可以在28MHz的ARM7TDMI平臺上完成實(shí)時解碼,但是這類MP3解碼程序需要高度優(yōu)化的解碼軟件和大容量的零等待存儲器。對于Garfield這類面向中低端、低成本手持設(shè)備的嵌入式微處理器而言,要集成大容量的片上SRAM是不可能的。而在Garfield中只有20K的片上SRAM用于存儲常用的MP3解碼子程序、中斷服務(wù)程序等。MP3解碼之后得到的音頻數(shù)據(jù)PCM碼通過DMA傳輸?shù)紸C97控制器,最后送到片外的codec中播放音樂。
LCD在嵌入式系統(tǒng)中得到了廣泛的應(yīng)用,所以Garfield支持黑白、灰度和彩色的LCD屏。LCD控制器中內(nèi)嵌了一個優(yōu)化的灰度調(diào)制算法,因此在較低刷新頻率(68Hz)下,也可以消除灰度顯示中的“紋波”和“漂移”等不穩(wěn)定現(xiàn)象。
Garfield支持高速的USB通訊,也支持低速的串口通訊和紅外通訊。
低功耗
低功耗設(shè)計(jì)對于電池供電的手持終端而言至關(guān)重要。CMOS數(shù)字電路的功耗有兩類:一是由于電路節(jié)點(diǎn)翻轉(zhuǎn)對節(jié)點(diǎn)電容充放電引起的動態(tài)功耗;二是由于電路漏電流帶來的靜態(tài)功耗。在CMOS電路中,動態(tài)功耗是功耗的主要來源,另外系統(tǒng)處于sleep模式下的靜態(tài)功耗也是影響電池壽命的一個重要因素。為了降低系統(tǒng)動態(tài)功耗,必須使得那些不需要翻轉(zhuǎn)的節(jié)點(diǎn)盡可能地少翻轉(zhuǎn)以節(jié)省功耗。在Garfield中使用了兩種降低動態(tài)功耗的手段:一是關(guān)閉當(dāng)前不使用的模塊并截?cái)嗥鋾r鐘樹;二是使用門控時鐘降低節(jié)點(diǎn)的翻轉(zhuǎn)速率。
當(dāng)系統(tǒng)沒有用戶進(jìn)程需要服務(wù)時,系統(tǒng)會處于停頓(idle)狀態(tài),但此時系統(tǒng)仍然會消耗大量的無用功耗。Garfield使用四種功耗模式(normal, idle, slow和sleep),根據(jù)系統(tǒng)應(yīng)用,系統(tǒng)會選擇進(jìn)入不同的功耗模式以節(jié)省功耗。如果當(dāng)前應(yīng)用需要復(fù)雜的計(jì)算或者控制,Garfield會進(jìn)入normal模式,此時所有工作模塊通過一個高速時鐘(來自于PLL)來同步其操作。當(dāng)系統(tǒng)處于該模式下時,由于高速的節(jié)點(diǎn)翻轉(zhuǎn),系統(tǒng)可能消耗大量的動態(tài)功耗。如果系統(tǒng)認(rèn)為已經(jīng)在相當(dāng)長時間內(nèi)沒有用戶任務(wù)需要處理,Garfield則會進(jìn)入idle模式,關(guān)閉ARM7TDMI內(nèi)核,但是其它工作模塊(如LCD,觸摸屏等)仍然打開。idle模式除了節(jié)省內(nèi)核功耗外,更重要的是由于內(nèi)核關(guān)閉,它能節(jié)省大量的外存功耗。如果系統(tǒng)有一些經(jīng)常性但計(jì)算量較輕的任務(wù),系統(tǒng)可以進(jìn)入slow模式,在此模式下,Garfield使用一個外部晶體振蕩器產(chǎn)生的低速時鐘(10MHz)。slow模式對于某些應(yīng)用來說非常有用,可以保證系統(tǒng)接收信息但又不消耗很多功耗。如果系統(tǒng)長時間沒有用戶任務(wù), Garfield將進(jìn)入sleep模式,此時除了實(shí)時時鐘(RTC)和功耗管理單元(PMU)之外的其它模塊都將被關(guān)閉,因此僅僅消耗RTC、PMU的動態(tài)功耗和芯片的靜態(tài)功耗。功耗分析結(jié)果表明:時鐘樹要消耗大量的功耗,因此時鐘樹應(yīng)該在源頭加入門控以盡可能地降低功耗。
門控時鐘是一個可以有效降低系統(tǒng)功耗的技術(shù),它通過抑制觸發(fā)器時鐘輸入端的翻轉(zhuǎn)來降低電路功耗。Synopsys公司的Power Compiler可以自動在門級插入門控電路,它能自動識別RTL描述中的寄存器組(有相同使能信號的寄存器),并使該寄存器組的時鐘信號門控。顯然如果門控更多的寄存器,則節(jié)省功耗也就越多。如果RTL描述中的寄存器組組織得比較有規(guī)則,如總線接口和FIFO,則Power Compiler會優(yōu)化得很好。門控時鐘的另外一個好處是會使芯片面積減小。當(dāng)門控時鐘技術(shù)降低功耗和面積開銷的同時,它可能引起系統(tǒng)性能下降。
MP3優(yōu)化
高音質(zhì)的MP3浮點(diǎn)軟解碼需要大量的計(jì)算,一般來說會使用浮點(diǎn)協(xié)處理器(FPU)來完成實(shí)時解碼。但是在嵌入式應(yīng)用中,F(xiàn)PU意味著大量的芯片面積開銷和系統(tǒng)成本增加。因此必須將浮點(diǎn)的MP3解碼算法變?yōu)槎c(diǎn)算法,使之能夠在一個整數(shù)內(nèi)核上運(yùn)行。
MP3解碼算法包括:Huffman解碼、反量化、反鋸齒波、立體聲解碼、離散余弦變換和子帶合成。除了Huffman解碼之外, 其它幾個子程序都需要復(fù)雜的浮點(diǎn)運(yùn)算,所有這些浮點(diǎn)運(yùn)算在ARM7TDMI的開發(fā)環(huán)境下都將被編譯、鏈接到浮點(diǎn)庫中。表格1顯示浮點(diǎn)MP3解碼算法需要大量的計(jì)算時間,不適合在嵌入式環(huán)境下應(yīng)用。
(1)
(2)
(3)
由式1可知,浮點(diǎn)變量F可以由一個整數(shù)I及其指數(shù)NF來表示,因此浮點(diǎn)運(yùn)算就可以表示為整數(shù)計(jì)算及其移位,比如兩個浮點(diǎn)數(shù)的乘法就可以表示為兩個整數(shù)乘法以及移位(如式2所示)。ARM指令集可以在一個節(jié)拍內(nèi)實(shí)現(xiàn)運(yùn)算和移位操作,因此ARM內(nèi)核可以高效地執(zhí)行這類運(yùn)算。定點(diǎn)運(yùn)算的精度不僅依賴于浮點(diǎn)變量本身、也依賴于移位的位數(shù)。如果該浮點(diǎn)數(shù)太大并左移了過多的位數(shù),則其整數(shù)表達(dá)式就會溢出,否則可能降低運(yùn)算結(jié)果精度。顯然定點(diǎn)解碼算法會帶來噪聲而降低音樂音質(zhì)(音質(zhì)可通過式3來評估),因此選擇合適的NF對于獲得高質(zhì)量的音樂極為重要。經(jīng)過反復(fù)的優(yōu)化與折中,選取NF=24,可以達(dá)到87dB,接近CD音質(zhì)。
經(jīng)過定點(diǎn)轉(zhuǎn)換,MP3定點(diǎn)算法只需要原來浮點(diǎn)算法的20%左右,但仍需要50ms才能解完一幀音樂(一幀音樂長26ms),因此它依然不能實(shí)現(xiàn)實(shí)時解碼。Garfield中集成了一個MP3的硬件加速引擎(MMA)以實(shí)現(xiàn)MP3的實(shí)時解碼,因此存在兩個問題:一是如何分割MP3算法,哪一部分的計(jì)算要用硬件來實(shí)現(xiàn);二是解碼性能必須可以在高層評估、分析。
ARMulator是ARM公司提供的一個指令級模擬器,它可以在PC上模擬ARM各種處理器內(nèi)核和其它外設(shè)。盡管ARMulator不是完全節(jié)拍精度的模擬器,但是對于沒有Cache的處理器核(比如ARM7 TDMI)已足夠精確。為了評估加入MMA之后MP3定點(diǎn)算法的性能,在ARMulator中加入了一個節(jié)拍精度的MMA模型,該模型可以通過接口與模擬器通訊。經(jīng)過對算法的仔細(xì)分析,IMDCT和子帶合成中包含了大量矢量乘和矢量乘加運(yùn)算,這些矢量乘和矢量乘加運(yùn)算需要大量計(jì)算資源。因此MMA模型和ARMulator可以一起評估MP3解碼算法,表1比較了加入MMA后算法的性能改善程度,并列出了各個階段MP3的性能,包括定點(diǎn)改造、MMA加速和存儲器優(yōu)化。表中的樣例音樂是一段采樣率為44.1K的聯(lián)合立體聲MP3,節(jié)拍是指解碼需要的時鐘數(shù),而解碼時間是指節(jié)拍數(shù)轉(zhuǎn)換成Garfield運(yùn)行在66MHz所耗用的時間。
通常外存(SRAM、FLASH和SDRAM)的性能很低,根據(jù)外存類型的不同,只有0.13~0.33 MIPS/MHz,而片上SRAM卻可以提供高達(dá)0.89 MIPS/MHz的性能。通過分析發(fā)現(xiàn),指令的存儲器存取次數(shù)遠(yuǎn)高于數(shù)據(jù),即指令需要更多的存儲器帶寬。為了充分利用片上SRAM,一些常用的解碼指令存放在片上SRAM內(nèi),其它不常用的指令和數(shù)據(jù)(包括MP3文件、變量和堆棧)則存放在SDRAM內(nèi)。表1顯示了MP3性能經(jīng)過存儲優(yōu)化之后的改善程度,一幀MP3的解碼只需要13.85ms就可以解碼完畢。目前,進(jìn)一步的優(yōu)化,包括匯編級優(yōu)化、存儲器細(xì)粒度優(yōu)化等正在進(jìn)行之中。
結(jié)語
本文描述了Garfield中的低功耗技術(shù)和MP3優(yōu)化技術(shù),其中系統(tǒng)級功耗控制和門控時鐘有效地降低了電路功耗;而MP3的解碼算法在保證音樂質(zhì)量的基礎(chǔ)上盡量優(yōu)化其性能,使Garfield可以完成實(shí)時解碼?!?/P>
參考文獻(xiàn)
1 劉新寧等. Garfield User Manual version 0.9
2 殷 宏、張永新. Garfield Power Analysis
評論