周濤林
(江西應(yīng)用工程職業(yè)學(xué)院,江西 萍鄉(xiāng) 337042)
近年來,隨著微電子技術(shù)的快速發(fā)展,高性能微處理器不斷更新迭代,尤其是便攜式電子產(chǎn)品大量充斥于市場(chǎng),但是困擾高性能微處理器的功耗問題一直沒有得到良好的解決。由于門控電源技術(shù)對(duì)控制微處理器的功耗能夠起到一定的輔助作用,因此對(duì)其技術(shù)要點(diǎn)進(jìn)行分析具有重要意義。
目前,低功耗已經(jīng)成為微處理器發(fā)展的主要趨勢(shì)和設(shè)計(jì)的重要目標(biāo)[1]。在芯片研發(fā)過程中,功耗一直是難以有效解決的問題。芯片的功耗按照來源可以分為靜態(tài)功耗和動(dòng)態(tài)功耗,而以漏電流功耗為代表的靜態(tài)功耗隨著大規(guī)模集成電路芯片的更新迭代也呈現(xiàn)不斷上升的態(tài)勢(shì)。較大的功耗不僅增加了芯片設(shè)計(jì)和運(yùn)行的成本,而且還會(huì)影響設(shè)備的續(xù)航時(shí)間和電路的可靠性與穩(wěn)定性[2]。想要降低大規(guī)模集成電路芯片的漏電流功耗,相關(guān)設(shè)計(jì)人員可以通過門控電源技術(shù)對(duì)芯片中尚未使用的功能模塊進(jìn)行關(guān)閉。
2.1.1 帶緩存的中央處理器系統(tǒng)
帶緩存的中央處理器(Central Processing Unit,CPU)系統(tǒng)是門控電源技術(shù)中經(jīng)常使用的系統(tǒng),該系統(tǒng)內(nèi)部有部分單元在較長(zhǎng)一段時(shí)間內(nèi)均處于休眠狀態(tài)。CPU常以中斷觸發(fā)的形式來被喚醒,系統(tǒng)的喚醒需要一定的緩沖時(shí)間才能進(jìn)入到工作狀態(tài),相關(guān)技術(shù)人員在對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)時(shí)要特別注意這個(gè)時(shí)間緩沖段產(chǎn)生的延遲效果,必要時(shí)可以設(shè)置容量更大的先進(jìn)先出(First In First Out,F(xiàn)IFO)存儲(chǔ)器。當(dāng)CPU下電之后,系統(tǒng)中高速緩沖存儲(chǔ)器的數(shù)據(jù)也會(huì)隨之消失。每次CPU上電后都要對(duì)存儲(chǔ)器中的數(shù)據(jù)內(nèi)容進(jìn)行恢復(fù),然后再進(jìn)入工作流程。由于數(shù)據(jù)恢復(fù)的過程也會(huì)產(chǎn)生必要的能量消耗,因此在帶緩存的CPU系統(tǒng)中利用門控電源技術(shù)節(jié)省的功耗實(shí)際上是切斷電源后節(jié)省的能耗與上電之后數(shù)據(jù)恢復(fù)階段能耗的差值。
2.1.2 外設(shè)系統(tǒng)
外設(shè)系統(tǒng)由驅(qū)動(dòng)軟件中的電源管理模塊來執(zhí)行上下電操作,其上下電準(zhǔn)備工作與帶緩存的CPU系統(tǒng)相似,都需要對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)和恢復(fù)。不可否認(rèn)的是,上下電的工作延遲會(huì)在一定程度上增加軟件的工作負(fù)擔(dān)。為了有效解決這一問題,可以將內(nèi)部信息進(jìn)行保存與加載的動(dòng)作外設(shè)化,但是這一操作會(huì)在原有的系統(tǒng)中再額外鋪設(shè)供外設(shè)裝置運(yùn)行的電路,在設(shè)計(jì)上具有一定的難度。
2.1.3 多核處理器
由于單核處理器的性能難以提升,因此多核處理器應(yīng)用逐漸成為提高處理器性能的主要研究方向[3]。在多核處理器運(yùn)行中,當(dāng)處理器內(nèi)部的某單核或多核已經(jīng)完成當(dāng)前任務(wù)正在等待下一項(xiàng)任務(wù)分配時(shí),可以選擇終段處于等待階段內(nèi)核的電源來減少漏電流的功耗損失。因?yàn)槎嗪颂幚砥髦刑幱陉P(guān)閉狀態(tài)的內(nèi)核完成了上一階段的任務(wù)后不需要像CPU和外設(shè)系統(tǒng)那樣繼續(xù)加載前項(xiàng)任務(wù),所以在上電之后可以進(jìn)行完全復(fù)位并開始執(zhí)行下一階段的任務(wù)。門控電源在多核處理器中的設(shè)計(jì)需要?jiǎng)?chuàng)設(shè)一個(gè)最小均方算法(Least Mean Square,LMS)來根據(jù)處理器內(nèi)部引擎的工作量數(shù)量變動(dòng)決定睡眠引擎核心的具體增減[4]。
門控電源技術(shù)在高性能微處理器中涵蓋的范圍較廣,相關(guān)研究人員在對(duì)門控電源技術(shù)進(jìn)行設(shè)計(jì)時(shí)需要注意各部分的結(jié)構(gòu)。高性能微處理器的一種典型門控電源設(shè)計(jì)結(jié)構(gòu)如圖1所示。
圖1 門控電源設(shè)計(jì)結(jié)構(gòu)
2.2.1 電源開關(guān)網(wǎng)絡(luò)設(shè)計(jì)
門控電源結(jié)構(gòu)中的電源開關(guān)網(wǎng)絡(luò)設(shè)計(jì)要點(diǎn)是預(yù)防瞬態(tài)電流數(shù)值過大,如果瞬態(tài)電流得不到有效控制,超出了預(yù)設(shè)合理的電流范圍后就會(huì)對(duì)電源網(wǎng)絡(luò)上工作的其他模塊產(chǎn)生消極影響。正常情況下,一個(gè)電源開關(guān)網(wǎng)絡(luò)上會(huì)存在多個(gè)電源開關(guān)單元。為了預(yù)防這些開關(guān)在同一時(shí)間內(nèi)閉合或斷開而產(chǎn)生較強(qiáng)的瞬態(tài)電流,可以利用菊花鏈的方式連接電源開關(guān)網(wǎng)絡(luò)中的開關(guān),再通過緩沖器將開關(guān)產(chǎn)生的信號(hào)按照層次性梯度傳達(dá)到各個(gè)開關(guān),控制開關(guān)按照順序依次進(jìn)行閉合與斷開。微單元由菊花鏈串聯(lián),可以實(shí)現(xiàn)對(duì)芯片的準(zhǔn)確控制[5]。
相關(guān)研究人員需要注意緩沖器的緩沖時(shí)間,合理控制各個(gè)開關(guān)執(zhí)行操作的延遲,避免影響使用效果。當(dāng)電源網(wǎng)絡(luò)中的開關(guān)全部打開后,可以在菊花鏈的末端向電源控制器傳達(dá)一個(gè)表示已經(jīng)打開全部電源開關(guān)的信號(hào),從而為下一步工作的開展奠定基礎(chǔ)。此外,相關(guān)研究人員在設(shè)計(jì)電源開關(guān)網(wǎng)絡(luò)時(shí),可以將細(xì)粒度和粗粒度兩種電源開關(guān)方式應(yīng)用在集成電路中[6]。
(1)細(xì)粒度電源開關(guān)控制。細(xì)粒度電源開關(guān)控制方式是為電源網(wǎng)絡(luò)中存在的每一個(gè)標(biāo)準(zhǔn)單元門都設(shè)立一個(gè)電源開關(guān),其中電源開關(guān)的設(shè)立標(biāo)準(zhǔn)以單元門承受電流上限為依據(jù)。在設(shè)計(jì)中為了保障單元門的性能不受其他因素的影響,開關(guān)的規(guī)格一般都會(huì)設(shè)計(jì)的比較大,大約是標(biāo)準(zhǔn)單元門的4倍,以此保證每一個(gè)單元都可以正常工作。
(2)粗粒度電源開關(guān)控制。粗粒度電源開關(guān)控制是電路整體都使用一組電源開關(guān)單元列陣進(jìn)行控制[7]。由于不能準(zhǔn)確獲取支撐電路運(yùn)行的電流值,因此無法確定具體的開關(guān)數(shù)量,通常采用估計(jì)和后端試驗(yàn)來得出具體的數(shù)值。雖然在電流值域上與細(xì)粒度電源開關(guān)相比不占優(yōu)勢(shì),但是粗粒度電源開關(guān)的列陣形式要比細(xì)粒度開關(guān)的菊花鏈形式更加節(jié)省芯片的占用空間。
2.2.2 隔離單元設(shè)計(jì)
在門控電源的結(jié)構(gòu)設(shè)計(jì)中,隔離單元主要是為避免處于休眠狀態(tài)需要斷開的輸出端與正在進(jìn)行工作的模塊輸出端連接在一起,從而部分模塊下電時(shí)對(duì)工作模塊造成消極影響。當(dāng)模塊下電時(shí),相應(yīng)的輸出端口數(shù)值會(huì)出現(xiàn)忽高忽低的情況,還有可能出現(xiàn)上下漏電流處于平衡狀態(tài),將輸出端口的點(diǎn)位鉗到中間值的位置。如果在輸入端以中間的數(shù)值為切入點(diǎn)位進(jìn)行輸入,會(huì)對(duì)模塊的內(nèi)在邏輯性造成嚴(yán)重影響?;诖耍嚓P(guān)研究人員進(jìn)行門控電源設(shè)計(jì)時(shí)要對(duì)下電模塊的輸出端采取措施進(jìn)行隔離,保證下電模塊的輸出值準(zhǔn)確且不會(huì)對(duì)整個(gè)工作單元的邏輯功能造成干擾,避免電路出現(xiàn)異?,F(xiàn)象。在門控電源的結(jié)構(gòu)設(shè)計(jì)中,要注意隔離單元輸出端的鉗位值和隔離單元插入的具體位置界定,保障電路系統(tǒng)平穩(wěn)運(yùn)行。
2.2.3 記憶存儲(chǔ)單元設(shè)計(jì)
當(dāng)電源被切斷時(shí),高性能微處理器芯片內(nèi)部的寄存器數(shù)據(jù)會(huì)全部丟失,如果想在上電時(shí)恢復(fù)工作狀態(tài),就要設(shè)計(jì)寄存器存儲(chǔ)單元來存儲(chǔ)內(nèi)部數(shù)據(jù)。現(xiàn)階段,常用的寄存器存儲(chǔ)單元的保存恢復(fù)方式有3種,分別是利用隨機(jī)存取存儲(chǔ)器來保存寄存器值、利用掃描鏈將內(nèi)部狀態(tài)進(jìn)行串入串出以及利用狀態(tài)保持寄存器儲(chǔ)存記憶。
(1)利用隨機(jī)存取存儲(chǔ)器保存寄存器值。隨機(jī)存取存儲(chǔ)器具有較好的兼容性,當(dāng)系統(tǒng)下電時(shí),可以利用軟件控制將內(nèi)部寄存器的具體數(shù)值讀出并保存在存取存儲(chǔ)器中[8]。當(dāng)系統(tǒng)通電上電時(shí),再把數(shù)據(jù)從存取存儲(chǔ)器中調(diào)取出來并寫入到電源域的內(nèi)部寄存器中。利用隨機(jī)存取存儲(chǔ)器保存寄存器值的方式雖然比較容易操作和實(shí)現(xiàn),但是存儲(chǔ)和寫入的速度較慢,需要花費(fèi)一定的時(shí)間,而且在存儲(chǔ)過程中還需要借助總線的資源,不可避免地會(huì)對(duì)整個(gè)系統(tǒng)的性能造成一定不良影響。
(2)通過掃描鏈將內(nèi)部狀態(tài)進(jìn)行串入串出。串入串出移位寄存器設(shè)計(jì)簡(jiǎn)單,若干逆向位掃描指令(Bit Scan Reverse,BSR)通過串行移位的方式連接[9,10]。當(dāng)電源域下電時(shí),可以利用芯片內(nèi)部的寄存器掃描鏈將寄存器的狀態(tài)掃描并錄刻在隨機(jī)存取存儲(chǔ)器中。當(dāng)上電時(shí),再將存儲(chǔ)器中存放的寄存器狀態(tài)寫回寄存器中。利用這種方式來對(duì)記憶存儲(chǔ)單元設(shè)計(jì)時(shí),相關(guān)研究人員要注意以下2個(gè)方面的問題。一方面,采用該方式對(duì)記憶存儲(chǔ)單元進(jìn)行設(shè)計(jì)需要多條鏈同時(shí)對(duì)數(shù)據(jù)進(jìn)行串入串出工作,以提升隨機(jī)存取存儲(chǔ)器的儲(chǔ)存與讀取速度。相關(guān)試驗(yàn)表明,采用8條掃描鏈最合適。通過統(tǒng)一這些鏈的長(zhǎng)度,控制器利用一組信號(hào)就可以完成對(duì)掃描鏈的控制。根據(jù)設(shè)置掃描鏈的實(shí)際情況,調(diào)整一些附加值附加到較短的掃描鏈上,以達(dá)到平衡8條鏈條長(zhǎng)度的作用。另一方面,對(duì)寄存器進(jìn)行掃描錄入和從隨機(jī)存取存儲(chǔ)器中讀取數(shù)據(jù)時(shí)需要耗費(fèi)較長(zhǎng)的時(shí)間,對(duì)于隨機(jī)存取存儲(chǔ)器來說要保持持續(xù)供電狀態(tài)。如果隨機(jī)存取存儲(chǔ)器在片外時(shí),對(duì)寄存器的讀取和寫回都會(huì)產(chǎn)生極大的功耗。如果利用片內(nèi)的存取存儲(chǔ)器存儲(chǔ)數(shù)據(jù)時(shí),多個(gè)寄存器值會(huì)同時(shí)發(fā)生變化,電流數(shù)值也會(huì)隨之提升,從而對(duì)芯片產(chǎn)生嚴(yán)重的消極影響。
(3)利用狀態(tài)保存寄存器儲(chǔ)存狀態(tài)信息。狀態(tài)保存寄存器是主從式結(jié)構(gòu),結(jié)構(gòu)內(nèi)部還存在著一個(gè)從式寄存器。在電源下電時(shí),從式寄存器可以保持主寄存器的狀態(tài);當(dāng)電源上電時(shí),主寄存器可以讀取從式寄存器中的數(shù)據(jù)。狀態(tài)保存寄存器需要更加復(fù)雜的電源控制器,電源控制管理必須對(duì)保存和恢復(fù)狀態(tài)的操作時(shí)序進(jìn)行定義。寄存器的數(shù)據(jù)記錄速度緩慢,為了保證記錄的穩(wěn)定性,一般都會(huì)對(duì)主寄存器的時(shí)鐘進(jìn)行關(guān)停,狀態(tài)保存完畢后再切掉電源。同理,在上電時(shí),要保證狀態(tài)值完全恢復(fù)后再恢復(fù)時(shí)鐘。
綜上所述,通過對(duì)高性能微處理器門控電源技術(shù)的設(shè)計(jì)要點(diǎn)進(jìn)行討論,深入了解該技術(shù)的結(jié)構(gòu)組成及其工作原理,有效掌握其在解決處理器功耗問題方面的積極作用,從而推動(dòng)高性能微處理器實(shí)現(xiàn)進(jìn)一步優(yōu)化完善。