国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于處理器核數(shù)自動調(diào)節(jié)的電源管理方法

      文檔序號:6441366閱讀:241來源:國知局
      專利名稱:基于處理器核數(shù)自動調(diào)節(jié)的電源管理方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種電源管理方法,特別是一種基于處理器核數(shù)自動調(diào)節(jié)的電源管理方法。
      背景技術(shù)
      電源管理是計算機操作系統(tǒng)的一個重要組件,其根本目的是節(jié)能并且不影響性能。這在通過電池供電的筆記本電腦、平板電腦等設(shè)備上顯得尤為重要。通常來說,電源管理的方法策略主要包括三個方面運行時電源管理,待機管理,以及休眠管理。
      ACPI (Advanced Configuration Power Interface, , ^ρ )源管理規(guī)范,其實現(xiàn)需要軟件、硬件和固件的高度協(xié)作配合。圖1是ACPI所定義的各種電源狀態(tài),詳細解釋如下
      1,睡眠狀態(tài)與全局狀態(tài)睡眠狀態(tài)中的計算機具有很低的功耗,可以接近于零。 ACPI定義了 6中睡眠狀態(tài),SO S5,值越大睡眠越深,SO是正常運行,S5是軟關(guān)機。另外還定義了 GO G3四種全局狀態(tài),其中GO對應SO,Gl對應Sl到S4,G2對應S5,G3是徹底的硬關(guān)機,切斷一切電源。
      2,CPU狀態(tài)與設(shè)備狀態(tài)當CPU或者I/O設(shè)備空閑時,可以讓它們單獨進入某種程度的低功耗狀態(tài)或者停止運行的電源狀態(tài)。而這時整個系統(tǒng)還是處于so。這些狀態(tài)在 ACPI里面稱為C狀態(tài)(也稱Cx或dtate,用于CPU)或D狀態(tài)(也稱Dx或Dltate,用于設(shè)備),從C0/D0直到Cn/Dn,η越大表示關(guān)閉的子部件越多,功耗越低。
      3,性能狀態(tài)在系統(tǒng)的負載不是很高時,可以讓CPU或設(shè)備處于低于峰值的某種較低性能狀態(tài),較低的性能也意味著較低的功耗。ACPI定義的性能狀態(tài)稱為P狀態(tài)(也稱 Px或P-Mate),從PO直到Ρη,η越大表示性能和功耗越低。所有的P狀態(tài)都是C0/D0的子狀態(tài)。
      4,發(fā)熱狀態(tài)當系統(tǒng)出現(xiàn)過熱狀態(tài)時,可以改變系統(tǒng)狀態(tài)減少發(fā)熱(被動散熱), 或者開啟風扇等設(shè)備進行散熱(主動散熱)。被動散熱可以通過調(diào)節(jié)P狀態(tài)實現(xiàn)(這種方式叫TM2),如果到了功耗最低的P狀態(tài)仍然不夠,可以調(diào)節(jié)T狀態(tài)(屏蔽部分時鐘周期)進一步降低功耗(這種方式叫TMl),從TO到Τη,η值越大功耗越低。
      Linux是一種操作系統(tǒng)內(nèi)核,實現(xiàn)了如下一些電源管理方法
      Α、基本功能管理如關(guān)機,重啟等。
      B、待機管理待機分兩種,淺待機和深待機。淺待機通常叫Mandby,對應ACPI Sl ;深待機通常叫Suspend To RAM(掛起到內(nèi)存),對應ACPI S3。兩者的特征比較如下
      淺待機CPU狀態(tài)置為最深的Cx,大部分設(shè)備狀態(tài)置為最深的Dx (除了用于喚醒的設(shè)備),內(nèi)存處于正常工作狀態(tài)。功耗為開機狀態(tài)的10% 20%,喚醒時間1 2秒??赏ㄟ^任意預設(shè)的設(shè)備喚醒(如鍵盤)。
      深待機CPU和外設(shè)全部斷電,內(nèi)存供電但處于低耗能的自刷新狀態(tài)(內(nèi)容保持不變)。功耗為開機狀態(tài)的左右,喚醒時間5 8秒。必須通過電源按鍵喚醒。
      C、休眠管理即Hibernation,也叫Suspend To Disk(掛起到硬盤),對應ACPI S4。將系統(tǒng)狀態(tài)全部保存到硬盤以后,切斷電源。功耗跟軟關(guān)機相同(只有電源適配器等部件供電)。
      D、運行時電源管理系統(tǒng)運行時相當于ACPI SO。電源管理方法可以利用硬件提供的Cx、Dx、Px和Tx等特征。
      CPU工作態(tài)電源管理在Linux內(nèi)核中稱為CPUFreq子系統(tǒng),是利用Pltate (電壓/頻率調(diào)節(jié))以達到節(jié)能目的的電源管理方法。&狀態(tài)間的切換有著極低的延遲,通常感覺不到。CPUFreq基本原則是根據(jù)當前系統(tǒng)負載來選擇最合適的P^tate。
      CPU空閑態(tài)電源管理在Linux內(nèi)核中稱為CPUIdle子系統(tǒng),是利用Cltate (暫停流水線、關(guān)閉時鐘)以達到節(jié)能目的的電源管理方法。C-State是CPU停止工作的狀態(tài), 不執(zhí)行任何指令,有遠低于工作狀態(tài)的功耗,但是與工作狀態(tài)間切換時有一定的延遲;越深的C-State有越低的功耗和越長的延遲,將CPU從某種C-State喚醒回到到工作態(tài)的事件叫Cx阻斷事件(通常是硬件中斷)。空閑態(tài)的電源管理的實現(xiàn)方式是采用一定的策略,能夠比較精確的預測空閑狀態(tài)的持續(xù)時間,而選擇一個比較合適的C-State進入。
      設(shè)備電源管理利用D-State來降低計算機運行過程中外部設(shè)備的功耗。因為不會所有的外設(shè)同時出于工作狀態(tài),因此關(guān)閉處于非活動狀態(tài)的設(shè)備來達到省電的目的。 D-State跟CPU的C-State類似,越深的D狀態(tài)具有越低的功耗,但也有著更長的喚醒時間。 通常來說,D3代表完全關(guān)閉,DO代表正常工作,其他均為中間狀態(tài)。D狀態(tài)管理類似于C狀態(tài),根據(jù)預測的空閑時間來選擇合適的D狀態(tài),盡量達到省電而不影響性能的目的。
      在一些多核平臺上,幾個核之間存在依賴,比如每個核的頻率、電壓、暫停狀態(tài) (相當于ACPI C/P狀態(tài))不能單獨調(diào)節(jié)。這種情況下CPUFreq/CPUIdle要么效果不明顯、 要么影響性能。發(fā)明內(nèi)容
      本發(fā)明所要解決的技術(shù)問題是提供一種利用了 CPU熱插拔機制,基于處理器核數(shù)自動調(diào)節(jié)的電源管理方法。CPU熱插拔機制,即在系統(tǒng)運行過程中增減CPU核數(shù),也被稱為 CPU 自動插拔(CPUAutoplug)。
      為了解決上述的技術(shù)問題,本發(fā)明的技術(shù)方案是一種基于處理器核數(shù)自動調(diào)節(jié)的電源管理方法,在多核平臺上,當系統(tǒng)負載大于100%時,采用CPU熱插拔機制對處理器核數(shù)進行調(diào)節(jié),調(diào)節(jié)機制如下
      系統(tǒng)負載> (核數(shù)-1)+上調(diào)閾值,增核;
      系統(tǒng)負載< (核數(shù)-1)-下調(diào)閾值,減核。
      上調(diào)閥值、下調(diào)閥值可視具體的情況來設(shè)定,例如可以將上調(diào)閥值定為95%,下調(diào)閥值定為10%。
      處理器核數(shù)調(diào)節(jié)涉及到任務遷移,開/關(guān)一個核的有著較大的開銷,因此采用CPU 熱插拔機制的調(diào)節(jié)不能過于頻繁,否則會導致性能下降。
      本發(fā)明根據(jù)采樣周期來計算系統(tǒng)負載,并根據(jù)需要進行核數(shù)調(diào)整。
      為了避免上述調(diào)節(jié)過于頻繁的問題出現(xiàn),每600毫秒計算一次系統(tǒng)負載,并根據(jù)需要進行核數(shù)調(diào)整。
      本發(fā)明是構(gòu)建在Linux內(nèi)核中一種新的運行時電源管理方法。它適用于多核計算平臺,其基本思想是根據(jù)系統(tǒng)負載動態(tài)調(diào)整CPU核數(shù),以便在不影響性能的情況下降低功耗,延長電池使用時間。在“CPU自動插拔”里面,“插”的含義是增加CPU核數(shù),“拔”的含義是減少CPU核數(shù),而“自動”則表示根據(jù)負載情況進行自適應調(diào)整。
      與其他運行時管理機制,如電壓/頻率調(diào)節(jié)(CPUFreq)和CPU暫停(CPUIdle)不同的是CPUAUtoplUg能夠適用于各個處理器核不能獨立進行電壓/頻率調(diào)節(jié)或者CPU暫停的情況。同時,CPUAutoplug和CPUFreq、CPUIdle并不存在功能沖突,可以相互協(xié)作,更好地發(fā)揮節(jié)能作用。
      在本發(fā)明中,系統(tǒng)負載的含義是CPU利用率,它決定了插拔的時機。一個CPU核的負載范圍是0 100%,因此在有N個核的多處理器平臺上,負載范圍是0 NX 100%。 CPUAutoplug需要根據(jù)當前的負載情況選擇開啟最合適的核數(shù),如果核數(shù)過少就會影響性能,反之則會浪費資源并且達不到節(jié)能的效果。
      引入CPUAutoplug之前,系統(tǒng)負載為每個處理器核單獨統(tǒng)計,運行時電源管理策略的適用范圍是(L表示系統(tǒng)負載)
      5%< L < 100% 工作態(tài)電源管理(CPUFreq)占主導地位。
      0%< L < 5% 空閑態(tài)電源管理(CPUIdle)占主導地位。
      在一個電壓/頻率可以獨立調(diào)節(jié)雙核平臺上,如果一個核的負載80%,另一個是20%,CPUFreq可以將一個核的頻率設(shè)置成最高頻率的80%,另一個設(shè)置成最高頻率的 20%。而在一個電壓/頻率不能獨立調(diào)節(jié)的雙核平臺,CPUFreq就無法處理如果兩個核一起降頻到80%,則負載為20%的核會浪費資源,節(jié)能效果不好;而如果降頻到80%以下,則負載為80%的核會有性能損失。CPUAutoplug則可以解決這一難題,因為它可以將工作負載都遷移到同一個核上,同時將另一個核完全關(guān)閉,從而達到節(jié)能又不影響性能的目的。
      引入CPUAutoplug以后,系統(tǒng)負載總是使用全局統(tǒng)計,以四核平臺為例, CPUAutoplug、CPUFreq和CPUIdle的生效范圍大致如下
      100%< L < 400% 核數(shù)自動調(diào)節(jié)(CPUAutoplug)占主導地位。
      5%< L < 100% 工作態(tài)電源管理(CPUFreq)占主導地位。
      0%< L < 5% 空閑態(tài)電源管理(CPUIdle)占主導地位。
      因此,本發(fā)明和已有的運行時電源管理策略是可以完美協(xié)調(diào)的。
      本發(fā)明是一種新的運行時電源管理方法,可以給多核平臺帶來更好的節(jié)能效果。 在存在核間依賴的多核平臺上,原有的運行時電源管理方法難以勝任。引入本發(fā)明后,可以在不影響性能的前提下帶來更好的節(jié)能效果,例如在龍芯3A平臺上,CPU的節(jié)能幅度可以比原先提高25%。
      本發(fā)明方法可以和已有的電源管理方法完美協(xié)調(diào),不存在功能沖突,并且有著基本不重疊的使用范圍。它們的協(xié)調(diào)運作可以進一步改善節(jié)能效果。


      下面結(jié)合附圖和具體實施方式
      對本發(fā)明作進一步詳細的說明。
      附圖為ACPI狀態(tài)關(guān)系圖。
      具體實施方式
      以下采用的硬件平臺(處理器)是龍芯3A,軟件平臺(操作系統(tǒng))是Linux內(nèi)核, 版本為2. 6. 36為例對本發(fā)明進行說明,但本發(fā)明不限于龍芯3A多核處理器平臺。
      插拔機制實現(xiàn)插拔機制重用了 Linux內(nèi)核中已有的CPU熱插拔實現(xiàn),實施方式的步驟簡述如下,這里假設(shè)0號核是一個在線的核,1號核是一個需要插/拔的核
      增加CPU核(“插” 1號核)0號核設(shè)置1號核的起始運行地址一0號核開啟1號核的核心時鐘一1號核開始運行一1號核執(zhí)行TLB/Cache初始化一1號核啟動進程調(diào)度。
      減少CPU核(“拔” 1號核)1號核將進程遷移到0號核一1號核刷回TLB/Cache —1 號核進入等待循環(huán)一0號核關(guān)閉1號核的核心時鐘。
      當一個核啟動了進程調(diào)度,就意味著完全投入了運行,當其上的進程被遷移走,也就意味著不再運行有效的任務。
      系統(tǒng)負載計算系統(tǒng)負載決定了 CPU插拔的時機,因此負載的計算是CPUAutoplug 的一個重點。Linux內(nèi)核會對每個處理器核所處的狀態(tài)進行統(tǒng)計,這些處理器的狀態(tài)包括用戶態(tài)user、系統(tǒng)態(tài)system和空閑態(tài)idle三大類。更具體地說,用戶態(tài)包括兩種子狀態(tài), 即普通用戶態(tài)(normal user)和高優(yōu)先用戶態(tài)(nice);系統(tǒng)態(tài)包括普通系統(tǒng)態(tài)(normal system)、硬中斷態(tài)(hard irq)和軟中斷態(tài)(soft irq)。空閑態(tài)包括普通空閑態(tài)(normal idle)和1/0等待態(tài)(i/o wait)。這些狀態(tài)的相關(guān)統(tǒng)計數(shù)據(jù)都可以通過/proe/stat文件查看。
      對于某一個處理器核,其負載L可以通過如下公式計算
      L= (user+system) / (user+system+idle)
      這里,user、system、idle分別是過去一個統(tǒng)計周期里面用戶態(tài)、系統(tǒng)態(tài)和空閑態(tài)的累計時間。
      該公式是一個基本公式,在必要的情況下,可以通過調(diào)整各種狀態(tài)(或者其子狀態(tài))的權(quán)重來達到需要的目的。
      系統(tǒng)的全局負載等于每個核的負載之和。
      核數(shù)調(diào)整策略CPUAUtoplUg需要根據(jù)當前的負載情況選擇開啟最合適的核數(shù), 如果核數(shù)過少就會影響性能,反之則會浪費資源并且達不到節(jié)能的效果。另外,調(diào)整策略還需要防止發(fā)生顛簸狀態(tài),顛簸狀態(tài)的含義是負載處于調(diào)整臨界點時,核數(shù)在兩個值之間發(fā)生頻繁切換。
      以四核平臺為例,可以采取如表1所示的調(diào)整策略
      表ICPU自動插拔的核數(shù)調(diào)整策略G核平臺)
      權(quán)利要求
      1.一種基于處理器核數(shù)自動調(diào)節(jié)的電源管理方法,其特征在于在多核平臺上,當系統(tǒng)負載大于100%時,采用CPU熱插拔機制對處理器核數(shù)進行調(diào)節(jié),調(diào)節(jié)機制如下系統(tǒng)負載> (核數(shù)-1) +上調(diào)閾值,增核; 系統(tǒng)負載< (核數(shù)-1)-下調(diào)閾值,減核。
      2.根據(jù)權(quán)利要求1所述的基于處理器核數(shù)自動調(diào)節(jié)的電源管理方法,其特征在于根據(jù)采樣周期來計算系統(tǒng)負載,并根據(jù)需要進行核數(shù)調(diào)整。
      3.根據(jù)權(quán)利要求2所述的基于處理器核數(shù)自動調(diào)節(jié)的電源管理方法,其特征在于所述采樣周期為600毫秒。
      全文摘要
      本發(fā)明公開了一種基于處理器核數(shù)自動調(diào)節(jié)的電源管理方法,在多核平臺上,當系統(tǒng)負載大于100%時,采用CPU自動插拔機制對處理器核數(shù)進行調(diào)節(jié)。調(diào)節(jié)機制如下系統(tǒng)負載>(核數(shù)-1)+上調(diào)閾值,增核;系統(tǒng)負載<(核數(shù)-1)-下調(diào)閾值,減核。本發(fā)明給多核平臺帶來更好的節(jié)能效果,和已有的電源管理方法完美協(xié)調(diào),不存在功能沖突,并且有著基本不重疊的使用范圍。
      文檔編號G06F1/32GK102520782SQ20111042025
      公開日2012年6月27日 申請日期2011年12月15日 優(yōu)先權(quán)日2011年12月15日
      發(fā)明者吳少剛, 陳華才 申請人:江蘇中科夢蘭電子科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1