SoC的定義多種多樣,由于其內(nèi)涵豐富、應(yīng)用范圍廣,很難給出準(zhǔn)確定義。一般說(shuō)來(lái), SoC稱為系統(tǒng)級(jí)芯片,也有稱片上系統(tǒng),意指它是一個(gè)產(chǎn)品,是一個(gè)有專用目標(biāo)的集成電路,其中包含完整系統(tǒng)并有嵌入軟件的全部?jī)?nèi)容。同時(shí)它又是一種技術(shù),用以實(shí)現(xiàn)從確定系統(tǒng)功能開(kāi)始,到軟/硬件劃分,并完成設(shè)計(jì)的整個(gè)過(guò)程。
soc定義
SOC,或者SoC,是一個(gè)縮寫(xiě),包括的意思有:
1)SoC:System on Chip的縮寫(xiě),稱為芯片級(jí)系統(tǒng),也有稱片上系統(tǒng),意指它是一個(gè)產(chǎn)品,是一個(gè)有專用目標(biāo)的集成電路,其中包含完整系統(tǒng)并有嵌入軟件的全部?jī)?nèi)容。
2)SOC: Security Operations Center的縮寫(xiě),屬于信息安全領(lǐng)域的安全運(yùn)行中心。
3)民航SOC:System Operations Center的縮寫(xiě),指民航領(lǐng)域的指揮控制系統(tǒng)。
4)一個(gè)是Service-Oriented Computing,“面向服務(wù)的計(jì)算”
5)SOC(Signal Operation Control) 中文名為信號(hào)操作控制器,它不是創(chuàng)造概念的發(fā)明,而是針對(duì)工業(yè)自動(dòng)化現(xiàn)狀提出的一種融合性產(chǎn)品。它采用的技術(shù)是正在工業(yè)現(xiàn)場(chǎng)大量使用的成熟技術(shù),但又不是對(duì)現(xiàn)有技術(shù)的簡(jiǎn)單堆砌,是對(duì)眾多實(shí)用技術(shù)進(jìn)行封裝、接口、集成,形成全新的一體化的控制器,可由一個(gè)控制器就可以完成作業(yè),稱為SOC。
6)SOC(start-of-conversion ),啟動(dòng)轉(zhuǎn)換。
7)short-open calibration 短開(kāi)路校準(zhǔn)。
SOC器件的功耗分析
低功耗研究都從分析功耗的來(lái)源入手,主要立足于晶體管級(jí),CMOS功耗可分為三部分,一部分是電路在對(duì)負(fù)載電容充電放電引起的動(dòng)態(tài)功耗,另一部分是由CMOS晶體管在跳變過(guò)程中的短暫時(shí)間內(nèi),P管和N管同時(shí)導(dǎo)通而形成電源和地之間的短路電流造成的功耗,第三部分是由漏電流引起的靜態(tài)功耗。式(1)、(2)是SoC功耗分析的經(jīng)典公式:
其中f是系統(tǒng)的頻率;A是跳變因子,即整個(gè)電路的平均反轉(zhuǎn)比例;C是門(mén)電路的總電容;V是供電電壓;?是電平信號(hào)從開(kāi)始變化到穩(wěn)定的時(shí)間。
1.跳變功耗
跳變功耗是由每個(gè)門(mén)的輸出端電容充放電形成的,以反相器為例,如圖1所示,設(shè)Vin是周期為T(mén)的方波(上升和下降時(shí)間很小,忽略不計(jì)),當(dāng)輸入端Vin從高電平變?yōu)榈碗娖綍r(shí),P管逐漸打開(kāi),而N管逐漸閉合,所以電源端Vdd給電容CL充電,Vout逐漸變?yōu)閂dd;當(dāng)Vin從低電平變?yōu)楦唠娖綍r(shí),N管逐漸打開(kāi),而P管逐漸閉合,電容CL開(kāi)始放電到地,從而形成跳變功耗。
一個(gè)周期包含兩個(gè)跳變。輸出端從0變?yōu)?時(shí),電源端損失能量為
22/VCddL,通過(guò)P管時(shí),能量消耗于阻性通路,以熱量形式釋放;當(dāng)輸出端從1變?yōu)?時(shí),存儲(chǔ)在電容LC上的22/VCddL通過(guò)N管時(shí)轉(zhuǎn)化成熱能。當(dāng)考慮所有晶體管時(shí),公式(3)就變?yōu)楣剑?)中的第1項(xiàng)。
因此跳變功耗主要研究器件工藝的工作電壓如何降低,單元器件負(fù)載電容如何減小,部件工作頻率如何降低,電路活動(dòng)因子如何減小等。
2.短路功耗
短路功耗也叫直通功耗。如圖2所示,Vin在高、低電平間不斷變化的過(guò)程中,當(dāng)VTn 《 Vin 《 Vdd-|VTp| 時(shí)(VTn為N型管導(dǎo)通電壓值,VTp位P型管導(dǎo)通電壓值),N管和P管都導(dǎo)通,從而有Vdd到Ground的通路,形成短路電流。短路功耗的公式是:
其中?為電平信號(hào)從開(kāi)始變化到穩(wěn)定的時(shí)間,?由電路的工藝決定,ddV和tV分別表示器
件電源電壓和閾值電壓,T表示電路的跳變周期。
公式(4)是假設(shè)LC對(duì)短路電流沒(méi)有影響下推導(dǎo)出的,實(shí)際上當(dāng)LC變大時(shí)所需要放電時(shí)間延長(zhǎng),如果比輸入端的上升和下降時(shí)間長(zhǎng)得多,它就不能完全放電,故功耗也會(huì)減少。反之,LC很小,就會(huì)導(dǎo)致相對(duì)于輸入端的上升和下降時(shí)間太短,功耗會(huì)增大,所以半導(dǎo)體器件都設(shè)計(jì)成輸入和輸出端的上升和下降時(shí)間相當(dāng)。
降低短路功耗主要包括如何降低器件工作電壓,如何提高晶體管導(dǎo)通閾值電壓,以及如何改善電路工藝等。
3.漏電功耗
漏電功耗包括由寄生反向PN結(jié)漏電和亞閾區(qū)漏電引起的功耗,其中寄生反向PN結(jié)漏電引起的功耗很小,可忽略不計(jì),而亞閾區(qū)漏電流的公式如下:
值電壓。從公式(5)可看出,亞閾區(qū)漏電流與閾值電壓有密切關(guān)系。當(dāng)閾值減小時(shí),亞閾區(qū)漏電流會(huì)呈指數(shù)級(jí)快速增大。漏電功耗研究表明其與每個(gè)門(mén)器件的輸入向量控制相關(guān),在0.13微米后的工藝中,漏電功耗研究重點(diǎn)是輸入向量控制技術(shù)。
SOC的低功耗技術(shù)
功耗基礎(chǔ)研究表明,功耗的降低是有限度的。首先是要限定在性能的約束范圍內(nèi),否則功耗的降低可能會(huì)導(dǎo)致性能的大幅度降低。SoC低功耗的設(shè)計(jì)應(yīng)該從頂層到底層各個(gè)階段進(jìn)行優(yōu)化設(shè)計(jì)的工作,主要運(yùn)用各級(jí)的低功耗策略,如工藝級(jí)低功耗技術(shù)、電路級(jí)低功耗技術(shù)、邏輯(門(mén))級(jí)低功耗技術(shù)、RTL級(jí)(寄存器傳輸級(jí))低功耗技術(shù)、體系結(jié)構(gòu)級(jí)低功耗技術(shù)、算法級(jí)低功耗技術(shù)、系統(tǒng)級(jí)低功耗技術(shù)等。
1.工藝級(jí)低功耗技術(shù)
在當(dāng)前工藝水平,SoC功耗主要由跳變功耗引起,而從公式(2)得知,通過(guò)降低電源供電電壓,可以減少跳變功耗,這也是為什么集成電路由原來(lái)的5V供電電壓降為3.3V,又降為后來(lái)的1.8V以及1.3V甚至更低。但降低供電電壓會(huì)面臨一些問(wèn)題,因?yàn)槿绻撝惦妷翰蛔儯肼暼菹蓿╪oise margin)將會(huì)減小,抗干擾能力減弱,信號(hào)傳送準(zhǔn)確性就會(huì)降低。為保持相當(dāng)?shù)脑肼暼菹蓿撝惦妷阂S供電電壓的減少而相應(yīng)的減少。然而,當(dāng)進(jìn)入0.13微米工藝后,從公式(5)可看出,閾值電壓的減少會(huì)導(dǎo)致靜態(tài)功耗呈指數(shù)級(jí)增長(zhǎng)。
因此用降低電壓的方法來(lái)降低功耗,必須用其它的方法補(bǔ)償相應(yīng)的延遲損失,以避免系統(tǒng)性能下降。一個(gè)方法是通過(guò)開(kāi)發(fā)系統(tǒng)的并行性和流水線;第二種方法:根據(jù)用戶對(duì)電路性能的不同要求,通過(guò)操作系統(tǒng)動(dòng)態(tài)控制時(shí)鐘頻率和電源電壓,達(dá)到既保證性能要求,又節(jié)約功耗的目的;第三種方法:根據(jù)性能的要求,實(shí)時(shí)改變供電電壓,在系統(tǒng)的關(guān)鍵路徑上,保持較高的電壓,以保證整個(gè)系統(tǒng)的性能,而在非關(guān)鍵路徑上,降低電壓以減少功耗。
此外,還可以通過(guò)更新工藝降低功耗,如多閾值工藝MTCMOS (Multi-Threshold VT CMOS)和變閾值工藝VTCMOS (Variable Threshold VT CMOS) 。前者在關(guān)鍵路徑上采用閾值較低的器件,而在非關(guān)鍵路徑上用高閾值器件。雖然會(huì)因此增大延遲,但由此換得漏電功耗的降低;后者采用動(dòng)態(tài)改變襯底偏置電壓以改變閾值。工作期間,n型阱(N well)偏置電壓維持在Vdd,p型阱(P well) 偏置電壓維持在0;當(dāng)待機(jī)或者需要低頻工作時(shí),N well偏置電壓維持在2Vdd,P well 偏置電壓維持在1Vdd,這樣也可以通過(guò)高閾值達(dá)到減少漏電功耗的目的。工藝的進(jìn)步,會(huì)使晶體管長(zhǎng)寬尺寸持續(xù)減少,互連線長(zhǎng)度減小,電容減小,從而大大有助于降低SoC功耗。
2.電路級(jí)低功耗技術(shù)
SoC中總線的數(shù)據(jù)線和地址線一般都比較多,比較長(zhǎng),每條線都需要驅(qū)動(dòng)負(fù)載,通常占總功耗的15~20%,有的甚至70%以上[3],因而總線低功耗技術(shù)是我們關(guān)注的焦點(diǎn)之一。
減擺幅是目前比較成熟的技術(shù),其原理是當(dāng)輸出端的輸出電壓的高電平是Vswing時(shí),跳變功耗部分就是:
因此降低Vswing 可以達(dá)到降低功耗的目的,利用Domino邏輯電路已經(jīng)可以解決這個(gè)問(wèn)題。
電荷再循環(huán)總線結(jié)構(gòu)(Charge Recycling Bus)是另外一種降低總線功耗的技術(shù),它把整個(gè)電勢(shì)差分成幾等分,利用總線各數(shù)據(jù)位電容上存儲(chǔ)的電荷電勢(shì)的變化來(lái)傳輸數(shù)據(jù),本質(zhì)上也是利用了減擺幅技術(shù)。試驗(yàn)證明,其功耗可以是傳統(tǒng)技術(shù)的10%。
3.門(mén)級(jí)低功耗技術(shù)
SoC在深亞微米時(shí)代,主要通過(guò)低電壓實(shí)現(xiàn)低功耗技術(shù),互補(bǔ)CMOS在許多方面都占有很大的優(yōu)勢(shì),并且各EDA廠商也提供很完善的支持,因此在多數(shù)情況下,都選擇互補(bǔ)CMOS。傳輸門(mén)在很有限的范圍內(nèi)有其優(yōu)越性,如全加電路(Full Adder)在高電源電壓時(shí)功耗低于互補(bǔ)CMOS,在用CPL實(shí)現(xiàn)乘法器時(shí),也有很大優(yōu)點(diǎn)。
4.寄存器傳輸級(jí)(RTL)低功耗技術(shù)
RTL低功耗技術(shù)主要從降低不希望的跳變(glitch--Spurious switch, hazards)入手,這種跳變雖然對(duì)電路的邏輯功能沒(méi)有負(fù)面的影響,但會(huì)導(dǎo)致跳變因子A的增加,從而導(dǎo)致功耗的增加。
降低glitch的方法主要是消除其產(chǎn)生的條件,如延遲路徑平衡、用時(shí)鐘信號(hào)同步減少glitch、結(jié)構(gòu)重構(gòu)等。減少延遲不平衡的延遲路徑的級(jí)數(shù),可以極大地降低glitch。例如16位乘法器,如果采用每位進(jìn)位運(yùn)算算法,則最大延遲要用15拍,最少延遲是1拍,因而可能會(huì)產(chǎn)生大量的glitch,但如果用Wallace tree體系結(jié)構(gòu)乘法器,可以有效平衡延遲路徑級(jí)數(shù),從而有效減少glitch。
在電路中插入由時(shí)鐘信號(hào)控制的觸發(fā)器將待傳遞的信號(hào)同步[8],可以將觸發(fā)器前面的glitch阻隔在觸發(fā)器處,避免其層層傳遞導(dǎo)致glitch爆炸。但此時(shí)需要權(quán)衡引入時(shí)鐘樹(shù)和觸發(fā)器增加的功耗和面積與得到的改善相比是否值得。
結(jié)構(gòu)重構(gòu)是利用在電路中插入緩沖(buffer)的方法來(lái)消除因路徑延遲不同而引起的glitch。這種方法一方面需要精確得到器件和連線的延遲數(shù)值,在物理設(shè)計(jì)完成之前很難做到,另一方面,對(duì)工藝偏差很敏感,路徑平衡的效果很容易偏離設(shè)計(jì)期望;還有一種較好的方法是電路中加入冗余電路,可以有效降低glitch,。加入冗余電路可以完全消除glitch對(duì)輸出的影響,而且不改變?cè)娐穼?shí)現(xiàn)的功能,不過(guò),冗余電路本身會(huì)增加一定的功耗。
5.系統(tǒng)級(jí)LP技術(shù)
系統(tǒng)級(jí)低功耗技術(shù)主要有門(mén)控技術(shù),異步電路等。
門(mén)控時(shí)鐘技術(shù)可以說(shuō)是當(dāng)前最有效的低功耗技術(shù)。如果沒(méi)有門(mén)控時(shí)鐘技術(shù),相同的值在每個(gè)時(shí)鐘周期上升沿到來(lái)時(shí)都會(huì)被重復(fù)加載進(jìn)后面的寄存器中,這就使后面的寄存器、時(shí)鐘網(wǎng)絡(luò)和多選器產(chǎn)生不必要的功耗。在寄存器槽、時(shí)鐘網(wǎng)絡(luò)插入門(mén)控電路就可以控制和消除這些不必要的寄存器活動(dòng),大幅度降低功耗。
同步電路中的時(shí)鐘樹(shù)要消耗大量能量,例如國(guó)產(chǎn)通用CPU龍芯1號(hào)和龍芯2號(hào)的時(shí)鐘樹(shù)功耗分別占整個(gè)芯片功耗的30%和60%,雖然可采用門(mén)控時(shí)鐘技術(shù)緩解,但仍不能從本質(zhì)上解決問(wèn)題。由于時(shí)鐘頻率需滿足所有模塊的正常工作,因此低速模塊存在速度浪費(fèi)。而異步電路的工作模式是“事件驅(qū)動(dòng)”,電路只在需要時(shí)工作,因此消除了速度浪費(fèi),由于不需同步,沒(méi)有全局時(shí)鐘,因此也消除了全局時(shí)鐘樹(shù)功耗。
6.零翻轉(zhuǎn)編碼地址總線技術(shù)
SoC內(nèi)部,總線上掛著很多功能設(shè)備,導(dǎo)致總線的電容負(fù)載很大。如果總線與片外設(shè)備聯(lián)系,那么,它還要驅(qū)動(dòng)很長(zhǎng)的片外連線以及片外設(shè)備,負(fù)載高達(dá)50pF,比SoC內(nèi)部各個(gè)節(jié)點(diǎn)的電容負(fù)載0.05pF高出三個(gè)量級(jí)。一般而言,總線的功耗占SoC總功耗的10%~80%;一個(gè)已經(jīng)對(duì)內(nèi)部電路優(yōu)化過(guò)的SoC,總線功耗約占50%。隨著寬度的增加,總線消耗的功率占SoC總功率的比重越來(lái)越大,因此,總線的低功耗設(shè)計(jì)很重要。
很多通過(guò)減少總線動(dòng)態(tài)翻轉(zhuǎn)來(lái)降低總線功耗的算法已經(jīng)被提出來(lái)。數(shù)據(jù)總線的數(shù)據(jù)隨機(jī)性較大,地址總線的地址向量連續(xù)性較大。它們傳送的數(shù)值各有特點(diǎn),所以,針對(duì)不同類型總線的算法也不一樣。針對(duì)數(shù)據(jù)總線有bus-invert算法,針對(duì)地址總線有PBE(Page-Based Encoding)算法、WZE(Working Zone Encoding)算法等。
總線寬度為N,t時(shí)刻,總線需發(fā)送的數(shù)據(jù)為Bt。如果Bt與Bt-1相等,則時(shí)刻總線狀態(tài)完全不變;如果Bt與Bt-1不相等,則t時(shí)刻,總線就會(huì)發(fā)生電平翻轉(zhuǎn)。Bt與 Bt-1不同的比特位數(shù)目(0≤N)越大,總線電平翻轉(zhuǎn)的位數(shù)就越多,功耗就越大。當(dāng)Bt與Bt-1互為反碼,則總線每一位都要翻轉(zhuǎn),此時(shí)總線翻轉(zhuǎn)的功耗最大。
零翻轉(zhuǎn)編碼法利用降低總線的電平翻轉(zhuǎn)次數(shù),來(lái)降低總線功耗。定義bt為內(nèi)核MCU計(jì)算出來(lái)的t時(shí)刻總線數(shù)據(jù)(即編碼前的數(shù)據(jù)),Bt是t時(shí)刻已放到總線上的數(shù)據(jù)(即編碼后的數(shù)據(jù)),Jt是解碼器解碼后的數(shù)據(jù)。
總線連續(xù)取址時(shí),相鄰兩次地址的差是相等的,定義為Stride。一般的ROM尋址Stride=1;對(duì)Cache尋址時(shí),Stride根據(jù)Cache的尋址特性而定。如果Cache尋址步長(zhǎng)是一個(gè)word,則Stride=2。編碼需要一個(gè)額外的狀態(tài)信號(hào)INC。 零翻轉(zhuǎn)編碼的算法步驟如下:
計(jì)算bt-1+Stride,比較bt與bt-1+ Stride;
如果bt=bt-1+Stride,表明是連續(xù)尋址,那么Bt=Bt-1,置INC=1; 如果bt≠bt-1+Stride,表明是不連續(xù)尋址,那么Bt=bt,置INC=0; ④ 接收端解碼器根據(jù)INC來(lái)處理收到的總線數(shù)據(jù)。 零翻轉(zhuǎn)解碼的算法步驟如下: 計(jì)算Jt-1+Stride;
如果INC=1,表明是連續(xù)尋址,那么Jt=Jt-1+stride; 如果INC=0,表明是不連續(xù)尋址,那么Jt=Bt。
中斷和跳轉(zhuǎn)子程序的多少,會(huì)影響功耗的降低。中斷和跳轉(zhuǎn)越少,地址向量連續(xù)性越高,零翻轉(zhuǎn)編碼后總線電平翻轉(zhuǎn)越少,節(jié)省的功耗就越大。當(dāng)?shù)刂房偩€一直連續(xù)尋址時(shí),零翻轉(zhuǎn)法理論上可以達(dá)到地址總線的零翻轉(zhuǎn),并且,Stride變量可以根據(jù)尋址對(duì)象的不同而設(shè)置成對(duì)應(yīng)的數(shù)值。
零翻轉(zhuǎn)編解碼器電路結(jié)構(gòu):
編碼器組成如圖3左半部分。D1寄存bt-1,加法器將bt-1與Stride相加。比較器EQ比較bt和bt-1+Stride,輸出INC。選擇器MUX的兩組輸入是bt和Bt-1。
編碼器是組合邏輯,不可避免的有毛刺。毛刺雖然時(shí)間很短,但依然會(huì)增加總線功耗,因此,利用D2、D3觸發(fā)器來(lái)同步,過(guò)濾掉所有的毛刺。
解碼器結(jié)構(gòu)如圖3右半部分,在接收設(shè)備Memory控制邏輯中實(shí)現(xiàn)。寄存器D存儲(chǔ)Jt-1,MUX的兩組輸入是(bt-1+Stride)和Bt。它的結(jié)構(gòu)比編碼器簡(jiǎn)單得多。相對(duì)整個(gè)SoC而言,編碼器和解碼器的電路規(guī)模很小,帶來(lái)的額外硬件面積和功耗也很小
圖3.零翻轉(zhuǎn)編碼器和譯碼器
SoC低功耗設(shè)計(jì)技術(shù)遠(yuǎn)不止上述所述的各種方法,從上面的各種降低功耗的方法可以看出,SoC系統(tǒng)的功耗優(yōu)化涉及到從物理實(shí)現(xiàn)到系統(tǒng)實(shí)現(xiàn)的方方面面,是芯片設(shè)計(jì)中一個(gè)十足的系統(tǒng)工程。目前,低功耗在學(xué)術(shù)界已經(jīng)是一個(gè)很熱門(mén)的研究領(lǐng)域,許多的科研工作者正在研究各種各樣的解決方案。
評(píng)論
查看更多