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