周濤林
(江西應用工程職業學院,江西 萍鄉 337042)
近年來,隨著微電子技術的快速發展,高性能微處理器不斷更新迭代,尤其是便攜式電子產品大量充斥于市場,但是困擾高性能微處理器的功耗問題一直沒有得到良好的解決。由于門控電源技術對控制微處理器的功耗能夠起到一定的輔助作用,因此對其技術要點進行分析具有重要意義。
目前,低功耗已經成為微處理器發展的主要趨勢和設計的重要目標[1]。在芯片研發過程中,功耗一直是難以有效解決的問題。芯片的功耗按照來源可以分為靜態功耗和動態功耗,而以漏電流功耗為代表的靜態功耗隨著大規模集成電路芯片的更新迭代也呈現不斷上升的態勢。較大的功耗不僅增加了芯片設計和運行的成本,而且還會影響設備的續航時間和電路的可靠性與穩定性[2]。想要降低大規模集成電路芯片的漏電流功耗,相關設計人員可以通過門控電源技術對芯片中尚未使用的功能模塊進行關閉。
2.1.1 帶緩存的中央處理器系統
帶緩存的中央處理器(Central Processing Unit,CPU)系統是門控電源技術中經常使用的系統,該系統內部有部分單元在較長一段時間內均處于休眠狀態。CPU常以中斷觸發的形式來被喚醒,系統的喚醒需要一定的緩沖時間才能進入到工作狀態,相關技術人員在對系統進行設計時要特別注意這個時間緩沖段產生的延遲效果,必要時可以設置容量更大的先進先出(First In First Out,FIFO)存儲器。當CPU下電之后,系統中高速緩沖存儲器的數據也會隨之消失。每次CPU上電后都要對存儲器中的數據內容進行恢復,然后再進入工作流程。由于數據恢復的過程也會產生必要的能量消耗,因此在帶緩存的CPU系統中利用門控電源技術節省的功耗實際上是切斷電源后節省的能耗與上電之后數據恢復階段能耗的差值。
2.1.2 外設系統
外設系統由驅動軟件中的電源管理模塊來執行上下電操作,其上下電準備工作與帶緩存的CPU系統相似,都需要對數據進行存儲和恢復。不可否認的是,上下電的工作延遲會在一定程度上增加軟件的工作負擔。為了有效解決這一問題,可以將內部信息進行保存與加載的動作外設化,但是這一操作會在原有的系統中再額外鋪設供外設裝置運行的電路,在設計上具有一定的難度。
2.1.3 多核處理器
由于單核處理器的性能難以提升,因此多核處理器應用逐漸成為提高處理器性能的主要研究方向[3]。在多核處理器運行中,當處理器內部的某單核或多核已經完成當前任務正在等待下一項任務分配時,可以選擇終段處于等待階段內核的電源來減少漏電流的功耗損失。因為多核處理器中處于關閉狀態的內核完成了上一階段的任務后不需要像CPU和外設系統那樣繼續加載前項任務,所以在上電之后可以進行完全復位并開始執行下一階段的任務。門控電源在多核處理器中的設計需要創設一個最小均方算法(Least Mean Square,LMS)來根據處理器內部引擎的工作量數量變動決定睡眠引擎核心的具體增減[4]。
門控電源技術在高性能微處理器中涵蓋的范圍較廣,相關研究人員在對門控電源技術進行設計時需要注意各部分的結構。高性能微處理器的一種典型門控電源設計結構如圖1所示。

圖1 門控電源設計結構
2.2.1 電源開關網絡設計
門控電源結構中的電源開關網絡設計要點是預防瞬態電流數值過大,如果瞬態電流得不到有效控制,超出了預設合理的電流范圍后就會對電源網絡上工作的其他模塊產生消極影響。正常情況下,一個電源開關網絡上會存在多個電源開關單元。為了預防這些開關在同一時間內閉合或斷開而產生較強的瞬態電流,可以利用菊花鏈的方式連接電源開關網絡中的開關,再通過緩沖器將開關產生的信號按照層次性梯度傳達到各個開關,控制開關按照順序依次進行閉合與斷開。微單元由菊花鏈串聯,可以實現對芯片的準確控制[5]。
相關研究人員需要注意緩沖器的緩沖時間,合理控制各個開關執行操作的延遲,避免影響使用效果。當電源網絡中的開關全部打開后,可以在菊花鏈的末端向電源控制器傳達一個表示已經打開全部電源開關的信號,從而為下一步工作的開展奠定基礎。此外,相關研究人員在設計電源開關網絡時,可以將細粒度和粗粒度兩種電源開關方式應用在集成電路中[6]。
(1)細粒度電源開關控制。細粒度電源開關控制方式是為電源網絡中存在的每一個標準單元門都設立一個電源開關,其中電源開關的設立標準以單元門承受電流上限為依據。在設計中為了保障單元門的性能不受其他因素的影響,開關的規格一般都會設計的比較大,大約是標準單元門的4倍,以此保證每一個單元都可以正常工作。
(2)粗粒度電源開關控制。粗粒度電源開關控制是電路整體都使用一組電源開關單元列陣進行控制[7]。由于不能準確獲取支撐電路運行的電流值,因此無法確定具體的開關數量,通常采用估計和后端試驗來得出具體的數值。雖然在電流值域上與細粒度電源開關相比不占優勢,但是粗粒度電源開關的列陣形式要比細粒度開關的菊花鏈形式更加節省芯片的占用空間。
2.2.2 隔離單元設計
在門控電源的結構設計中,隔離單元主要是為避免處于休眠狀態需要斷開的輸出端與正在進行工作的模塊輸出端連接在一起,從而部分模塊下電時對工作模塊造成消極影響。當模塊下電時,相應的輸出端口數值會出現忽高忽低的情況,還有可能出現上下漏電流處于平衡狀態,將輸出端口的點位鉗到中間值的位置。如果在輸入端以中間的數值為切入點位進行輸入,會對模塊的內在邏輯性造成嚴重影響。基于此,相關研究人員進行門控電源設計時要對下電模塊的輸出端采取措施進行隔離,保證下電模塊的輸出值準確且不會對整個工作單元的邏輯功能造成干擾,避免電路出現異常現象。在門控電源的結構設計中,要注意隔離單元輸出端的鉗位值和隔離單元插入的具體位置界定,保障電路系統平穩運行。
2.2.3 記憶存儲單元設計
當電源被切斷時,高性能微處理器芯片內部的寄存器數據會全部丟失,如果想在上電時恢復工作狀態,就要設計寄存器存儲單元來存儲內部數據。現階段,常用的寄存器存儲單元的保存恢復方式有3種,分別是利用隨機存取存儲器來保存寄存器值、利用掃描鏈將內部狀態進行串入串出以及利用狀態保持寄存器儲存記憶。
(1)利用隨機存取存儲器保存寄存器值。隨機存取存儲器具有較好的兼容性,當系統下電時,可以利用軟件控制將內部寄存器的具體數值讀出并保存在存取存儲器中[8]。當系統通電上電時,再把數據從存取存儲器中調取出來并寫入到電源域的內部寄存器中。利用隨機存取存儲器保存寄存器值的方式雖然比較容易操作和實現,但是存儲和寫入的速度較慢,需要花費一定的時間,而且在存儲過程中還需要借助總線的資源,不可避免地會對整個系統的性能造成一定不良影響。
(2)通過掃描鏈將內部狀態進行串入串出。串入串出移位寄存器設計簡單,若干逆向位掃描指令(Bit Scan Reverse,BSR)通過串行移位的方式連接[9,10]。當電源域下電時,可以利用芯片內部的寄存器掃描鏈將寄存器的狀態掃描并錄刻在隨機存取存儲器中。當上電時,再將存儲器中存放的寄存器狀態寫回寄存器中。利用這種方式來對記憶存儲單元設計時,相關研究人員要注意以下2個方面的問題。一方面,采用該方式對記憶存儲單元進行設計需要多條鏈同時對數據進行串入串出工作,以提升隨機存取存儲器的儲存與讀取速度。相關試驗表明,采用8條掃描鏈最合適。通過統一這些鏈的長度,控制器利用一組信號就可以完成對掃描鏈的控制。根據設置掃描鏈的實際情況,調整一些附加值附加到較短的掃描鏈上,以達到平衡8條鏈條長度的作用。另一方面,對寄存器進行掃描錄入和從隨機存取存儲器中讀取數據時需要耗費較長的時間,對于隨機存取存儲器來說要保持持續供電狀態。如果隨機存取存儲器在片外時,對寄存器的讀取和寫回都會產生極大的功耗。如果利用片內的存取存儲器存儲數據時,多個寄存器值會同時發生變化,電流數值也會隨之提升,從而對芯片產生嚴重的消極影響。
(3)利用狀態保存寄存器儲存狀態信息。狀態保存寄存器是主從式結構,結構內部還存在著一個從式寄存器。在電源下電時,從式寄存器可以保持主寄存器的狀態;當電源上電時,主寄存器可以讀取從式寄存器中的數據。狀態保存寄存器需要更加復雜的電源控制器,電源控制管理必須對保存和恢復狀態的操作時序進行定義。寄存器的數據記錄速度緩慢,為了保證記錄的穩定性,一般都會對主寄存器的時鐘進行關停,狀態保存完畢后再切掉電源。同理,在上電時,要保證狀態值完全恢復后再恢復時鐘。
綜上所述,通過對高性能微處理器門控電源技術的設計要點進行討論,深入了解該技術的結構組成及其工作原理,有效掌握其在解決處理器功耗問題方面的積極作用,從而推動高性能微處理器實現進一步優化完善。