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