LPMM閱讀筆記 第4章 電源門控概述

2022-08-31 09:21:08 字數 2919 閱讀 9282

電源門控最基本的思想是為電路提供兩種電源模式,分別為低功耗模式和活動模式;其目的是在合適的時間通過恰當的方式在兩種模式間切換,帶來最大程度上的功耗節省,同時最大限度的降低對系統中其他模組效能方面的影響。

在第2章中提到的幾種低功耗技術不會影響到設計的功能,也不會改變rtl;電源門控技術則會對設計有較大的影響,因為他會影響到模組間通訊的介面,並且增加了明顯的時序延遲,以實現帶電源門控模組安全的進入/退出低功耗模式。

對邏輯塊進行掉電的操作可以由軟體控制,也可以由定時器或系統級電源管理控制器在硬體中實現。在電源門控中我們會面臨著很多類似這樣的權衡取捨,除了上述的提到控制的實現外,還包括但不限於以下方面:

圖 1顯示了使用時鐘門控降低子系統功耗時該子系統的功耗變化曲線。從圖 1中可以看到,在子模組休眠期間,由於時鐘門控的作用,子模組基本沒有動態功耗,這時功耗主要有洩漏功耗產生。

圖 1使用時鐘門控的功耗變化曲線

圖 2使用電源門控的功耗變化曲線

圖 3顯示了子系統中使用電源門控時,該子系統的實際功耗變化曲線。因為電源門控的開和關兩種狀態間的轉換不是理想情況下的瞬間完成的,而是需要乙個的轉換時間(上電->下電或者下電->上電)。所以電源門控實際節省的洩漏功耗可能比預計的要少一些。

圖 3使用電源門控實際的功耗變化曲線

帶有快取記憶體的cpu子系統通常可以長時間處於休眠模式,很適合使用電源門控技術。當cpu不活動時,對整個cpu進行掉電可以節省大量的洩漏功耗,但cpu的喚醒一般由中斷觸發,所以在系統設計時應考慮到中斷的處理和cpu喚醒時所需的時間間隙;此外,如果每次cpu下電,cache裡的內容也丟失的話,cpu在下次上電的時候可能需要先從匯流排上讀取相關資訊將cache填滿,這個過程可能需要花費較長的時間和消耗更多的功耗,所以,cpu淨節省的功耗應該是休眠期間節省的功耗減去喚醒期間所消耗的能量。

相比cpu而言外設系統有更加規律的活動時間,它可以由軟體驅動或系統中的電源管理模組來實現上/下電操作,這樣的情況下,軟體需要在外設上/下電的時候對一些資訊進行儲存/過載,會給軟體驅動帶來很大的負擔。比這個更好的方法是外設在睡眠模式下,在其內部儲存關鍵狀態資訊,但這需要一些額外的控制電路。

對於乙個更複雜的多處理器cpu集群而言,其中乙個或多個處理器在完成任務並且處於空閒狀態時可以完全關閉電源等待分配另乙個任務,由於cpu之前的任務已完成,因此,可以不用關注在掉電期間本地快取的內容是否丟失的問題,cpu被喚醒後可直接執行重新分配的任務,對於這樣的系統可能需要相應的自適應演算法,這些演算法可以根據負載情況動態的調整電源門控的開關情況,從而控制活動的cpu數。

關斷模組的電源有兩種方式,最基本的方式是片外控制,假設某個子模組在片外有乙個獨立的電源供電,那麼當該模組休眠時,可以直接在外部將該模組的電源關掉,使模組中的洩漏功耗減少到基本為零。但是,這種方法需要很長的時間來完成上/下電過程,並且需要消耗很多的能量來恢復模組上電。另一種方法是內部電源門控,內部開關用於控制所選塊的電源,在短時間內就可以關閉模組的電源。

圖 4所示為使用內部電源門控的soc的簡化圖。與始終上電的模組不同,帶電源門控的模組通過電源開關網路對vdd或vss進行控制,圖 4中控制的是vdd,整個晶元使用的是同乙個vss,電源開關是由很多個cmos開關組成的陣列,電源開關由電源門控控制器控制。

圖 4使用內部電源門控的soc簡圖

電源門控帶來的挑戰是當乙個子系統需要掉電時,門控整列從全部導通到全部關斷的變化過程非常緩慢,這將導致該模組的輸出訊號很長一段時間內輸出為乙個中間電平,從而造成與之相連的模組/子系統cmos管的上下兩個管子同時導通,產生大量的直通電流。為了避免上述現象,可在帶有電源門控模組的輸出訊號上增加乙個隔離單元,使帶有門控的模組,在掉電期間,輸出到其他電源域的訊號為乙個確定的狀態。

有的模組可能非常的希望在其掉電期間能夠保持一些內部的狀態資訊,並能夠在模組重新上電的時候將這些狀態恢復,這種策略可以使模組在上電時節省大量的時間和功耗,實現這種掉電保持資訊可以採用帶有保持功能的暫存器(retention register),帶有保持功能的暫存器有乙個主暫存器和乙個影子暫存器,影子暫存器比主暫存器要慢,但它的漏電流比主暫存器小,影子暫存器是始終上電的,在模組電源被門控期間,影子暫存器用於儲存主暫存器的內容,該暫存器需要我們通過控制埠告訴它,何時將主暫存器的內容儲存到影子暫存器中,何時從影子暫存器中恢復儲存的資訊到主暫存器中,其控制訊號**電源門控控制器。

實現電源門控的方式有細粒度電源門控和粗粒度電源門控兩種方式。

細粒度電源門控是將電源開關放在庫里的每個標準單元內,這個開關需要能夠提供該單元所需的最大工作電流,所以為了不影響效能,會將開關設計的很大,導致每個cell的面積開銷很大(通常是其原來的2~4倍)。細粒度電源門控的優勢在於開關上的壓降和鉗位行為對時序的影響很容易分析,因為開關在cell的內部,這意味著我們仍然可以使用傳統的設計流程來實現電源門控的部署。

粗粒度電源門控是用一組開關陣列控制乙個模組的電源,如圖 4所示,這一組開關的數量很難估計,因為你很難準確的知道電路所需的最大工作電流,只能進行估算,但粗粒度電源門控相對於細粒度電源門控會極大的減少面積上的損失。

近幾年,粗粒度電源門控幾乎被作為電源門控方案的首選項,因為細粒度門控方案帶來的面積上的損失是難以讓人接受的,所以後續章節將主要介紹粗粒度電源門控方案。

電源門控的實現並不像我們想象的那樣只要給對應的模組加乙個電源開關,需要的開,不需要的時候關那麼簡單,它會給設計人員帶來如下這些方面的挑戰:

這一章對於電源門控的介紹主要還是在概念上,下一章將會詳細的介紹如何實現,也是全書的重電章節。

**********==正文結束**********=

《C Prime》第2章 閱讀筆記

2018 01 29 20 23 當乙個算術表示式中既有無符號數又有int值時,int值會轉換成為無符號數。相比於int a 3.14 和int a 3.14 當用於內建型別時,如果我們使用列表初始化且初始值存在丟失資訊的風險,則編譯器會報錯。定義在函式體內部的內建型別變數將不被自動初始化。下劃線開...

C primer(第3章) 閱讀筆記

範圍for語句是對給定序列中的每個元素並對序列中的每個值進行某種操作,其語法形式為 string str some string 輸出str中的每個字元 for auto c str 標準庫型別vector表示物件的集合,其中所有物件的型別都相同。vector容納中其他物件,因此這也被稱為容器 co...

c primer閱讀筆記 15章 4

15.4.建構函式和複製控制 1 建構函式和複製控制成員不能繼承,每個類定義自己的建構函式和複製控制成員。15.4.1.基類建構函式和複製控制 1 本身不是派生類的基類,其建構函式和複製控制基本上不受繼承影響。15.4.2.派生類建構函式 1 派生類的建構函式受繼承關係的影響,每個派生類建構函式除了...