美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区

產品分類

當前位置: 首頁 > 工業控制產品 > 自動化控制 > 平板式開關電源

類型分類:
科普知識
數據分類:
平板式開關電源

Linux2.6內核中的最新電源管理技術綜述

發布日期:2022-04-18 點擊率:62


Linux2.6內核中的最新電源管理技術綜述

來源:52RD  作者:IBM-王勇2014年08月29日 10:45

0

分享

微信QQ空間新浪微博騰訊微博人人網

訂閱

[導讀] 本系列文章將結合近年來不斷在各種硬件(包括 CPU、芯片組、PCI Express 等各種最新總線標準以及外設)上新增的節能技術。

關鍵詞:Linux2.6電源管理


  前言

  本系列文章將結合近年來不斷在各種硬件(包括 CPU、芯片組、PCI Express 等各種最新總線標準以及外設)上新增的節能技術。

  從 Linux? 2.6內核及整個 software stack (包括 kernel、middleware 以及各種用戶態 utility)如何添加對這些創新的節能技術的支持這一角度,為讀者介紹 Linux 操作系統近幾年來在電源管理方面所取得的長足進步以及未來的發展方向。

  作為本系列文章的開篇之作,首先要向大家介紹的是 cpufreq,它是 Linux 2.6內核為了更好的支持近年來在各款主流CPU 處理器中出現的變頻技術而新增的一個內核子系統。

  Cpufreq 的由來

  隨著 energy efficient computing 和 performance per watt 等概念的推廣以及高級配置與電源接口ACPI(Advanced Configuration and Power Interface)標準的發展,目前市場上的主流 CPU 都提供了對變頻(frequency scaling)技術的支持。例如Intel?處理器所支持的 Enhanced SpeedStep? 技術和 AMD? 處理器所支持的 PowerNow! ? 技術,另外像最新的PowerPC?、ARM?、SPARC? 和 SuperH? 等處理器中也提供了類似的支持。參考資料中列出了當前 Linux 2.6內核所支持的具備變頻技術的處理器。需要注意的是,這里要討論的變頻技術與大家以前所熟知的超頻是兩個不同的概念。超頻是指通過提高核心電壓等手段讓處理器工作在非標準頻率下的行為,這往往會造成 CPU 使用壽命縮短以及系統穩定性下降等嚴重后果。

  而變頻技術是指CPU硬件本身支持在不同的頻率下運行,系統在運行過程中可以根據隨時可能發生變化的系統負載情況動態在這些不同的運行頻率之間進行切換,從而達到對性能和功耗做到二者兼顧的目的。

  雖然多個處理器生產廠家都提供了對變頻技術的支持,但是其硬件實現和使用方法必然存在著細微甚至巨大的差別。這就使得每個處理器生產廠家都需要按照其特殊的硬件實現和使用方法向內核中添加代碼,從而讓自己產品中的變頻技術在 Linux 中得到支持和使用。然而,這種內核開發模式所導致的后果是各個廠家的實現代碼散落在 Linux 內核代碼樹的各個角落里,各種不同的實現之間沒有任何代碼是共享的,這給內核的維護以及將來添加對新的產品的支持都帶來了巨大的開銷,并直接導致了 cpufreq 內核子系統的誕生。實際上,正如前文所說,發明變頻技術的目的是為了能夠讓系統在運行過程中隨時根據系統負載的變化動態調整 CPU 的運行頻率。這件事情可以分為兩個部分,一部分是“做什么”的問題,另一部分是“怎么做”的問題。“做什么”是指如何根據系統負載的動態變化挑選出 CPU 合適的運行頻率,而“怎么做”就是要按照選定的運行頻率在選定的時間對 CPU 進行設置,使之真正工作在這一頻率上。這也就是我們在軟件設計中經常會遇到的機制 mechanism 與策略 policy 的問題,而設計良好的軟件會在架構上保證二者是被清晰的隔離開的并通過規范定義的接口進行通信。

  Cpufreq 的設計和使用

  為了解決前文所提到的問題,一個新的內核子系統—— cpufreq 應運而生了。Cpufreq 為在Linux 內核中更好的支持不同 CPU 的變頻技術提供了一個統一的設計框架,其軟件結構如圖 1 所示。

   電源管理

   圖 1. Cpufreq 的軟件結構

       如圖 1 所示,cpufreq 在設計上主要分為以下三個模塊:

  Cpufreq 模塊(cpufreq module)對如何在底層控制各種不同CPU 所支持的變頻技術以及如何在上層根據系統負載動態選擇合適的運行頻率進行了封裝和抽象,并在二者之間定義了清晰的接口,從而在設計上完成了前文所提到的對 mechanism 與policy 的分離。

  在 cpufreq 模塊的底層,各個CPU 生產廠商只需根據其變頻技術的硬件實現和使用方法提供與其 CPU 相關的變頻驅動程序(CPU-specific drivers),例如 Intel 需要提供支持Enhanced SpeedStep 技術的 CPU 驅動程序,而 AMD 則需要提供支持 PowerNow! 技術的 CPU 驅動程序。

  在 cpufreq 模塊的上層,governor 作為選擇合適的目標運行頻率的決策者,根據一定的標準在適當的時刻選擇出 CPU 適合的運行頻率,并通過 cpufreq 模塊定義的接口操作底層與 CPU 相關的變頻驅動程序,將 CPU 設置運行在選定的運行頻率上。

  目前最新的 Linux 內核中提供了 performance 、powersave 、userspace、conservative 和 ondemand 五種 governors 供用戶選擇使用,它們在選擇 CPU 合適的運行頻率時使用的是各自不同的標準并分別適用于不同的應用場景。用戶在同一時間只能選擇其中一個 governor 使用,但是可以在系統運行過程中根據應用需求的變化而切換使用另一個 governor 。

  這種設計帶來的好處是使得 governor 和 CPU 相關的變頻驅動程序的開發可以相互獨立進行,并在最大限度上實現代碼重用,內核開發人員在編寫和試驗新的 governor 時不會再陷入到某款特定 CPU 的變頻技術的硬件實現細節中去,而 CPU 生產廠商在向 Linux 內核中添加支持其特定的 CPU 變頻技術的代碼時只需提供一個相對來說簡單了很多的驅動程序,而不必考慮在各種不同的應用場景中如何選擇合適的運行頻率這些復雜的問題。

  內核中的 cpufreq 子系統通過 sysfs 文件系統向上層應用提供了用戶接口,對于系統中的每一個 CPU 而言,其 cpufreq 的 sysfs 用戶接口位于 /sys/devices/system/cpu/cpuX/cpufreq/ 目錄下,其中 X 代表 processor id ,與 /proc/cpuinfo 中的信息相對應。以cpu0 為例,用戶一般會在該目錄下觀察到以下文件:

  $ ls -F /sys/devices/system/cpu/cpu0/cpufreq/

  affected_cpus

  cpuinfo_cur_freq

  cpuinfo_max_freq

  cpuinfo_min_freq

  ondemand/

  scaling_available_frequencies

  scaling_available_governors

  scaling_cur_freq

  scaling_driver

  scaling_governor

  scaling_max_freq

  scaling_min_freq

  stats/

  這其中的所有可讀文件都可以使用 cat 命令進行讀操作,另外所有可寫文件都可以使用 echo 命令進行寫操作。其中cpuinfo_max_freq 和 cpuinfo_min_freq 分別給出了CPU 硬件所支持的最高運行頻率及最低運行頻率, cpuinfo_cur_freq 則會從 CPU 硬件寄存器中讀取 CPU 當前所處的運行頻率。雖然 CPU 硬件支持多種不同的運行頻率,但是在有些場合下用戶可以只選擇使用其中的一個子集,這種控制是通過scaling_max_freq 和 scaling_min_freq 進行的。Governor在選擇合適的運行頻率時只會在 scaling_max_freq 和scaling_min_freq 所確定的頻率范圍內進行選擇,這也就是scaling_available_frequencies 所顯示的內容。與cpuinfo_cur_freq 不同, scaling_cur_freq 返回的是cpufreq 模塊緩存的 CPU 當前運行頻率,而不會對 CPU 硬件寄存器進行檢查。 scaling_available_governors 會告訴用戶當前有哪些 governors 可供用戶使用,而 scaling_driver 則會顯示該 CPU 所使用的變頻驅動程序。 Stats 目錄下給出了對 CPU 各種運行頻率的使用統計情況,例如 CPU 在各種頻率下的運行時間以及在各種頻率之間的變頻次數。 ondemand 目錄則與 ondemand governor 相關,在后文會進行相應的介紹。

  通過以上的介紹,大家對如何使用 cpufreq 通過 sysfs 提供的用戶接口已經有了大致的了解,但是對于絕大部分用戶而言,逐一操作這些文件既費力又耗時。因此 Dominik 等人開發了cpufrequtils 工具包[2],為用戶提供了更加簡便的對內核cpufreq 子系統的操作接口。通過 cpufreq-info 的輸出,讀者可以很清楚的看到剛剛在上面介紹過的/sys/devices/system/cpu/cpuX/cpufreq/ 目錄下各個文件的內容。

  $ cpufreq-info

  cpufrequtils 002: cpufreq-info (C) Dominik Brodowski

  2004-2006

  Report errors and bugs to linux@brodo.de, please.

  analyzing CPU 0:

  driver: acpi-cpufreq

  CPUs which need to switch frequency at the same time:

  0 1

  hardware limits: 1000 MHz - 1.67 GHz

  available frequency steps: 1.67 GHz, 1.33 GHz, 1000

  MHz

  available cpufreq governors: userspace, conservative,

  ondemand, powersave, performance

  current policy: frequency should be within 1000 MHz

  and 1.67 GHz.

  The governor “ondemand” may decide which

  speed to use

  within this range.

  current CPU frequency is 1000 MHz.

  analyzing CPU 1:

  driver: acpi-cpufreq

  CPUs which need to switch frequency at the same time:

  0 1

  hardware limits: 1000 MHz - 1.67 GHz

  available frequency steps: 1.67 GHz, 1.33 GHz, 1000

  MHz

  available cpufreq governors: userspace, conservative,

  ondemand, powersave, performance

  current policy: frequency should be within 1000 MHz

  and 1.67 GHz.

  The governor “ondemand” may decide which

  speed to use

  within this range.

  current CPU frequency is 1000 MHz.

  ondemand governor 的由來及其實現剛剛我們在 cpufreq-info 的輸出中可以看到 cpufreq 子系統一共提供了五種 governors 供用戶選擇使用,它們分別是 userspace,conservative,ondemand,powersave 和performance。在最新的內核中如果用戶不進行額外設置的話,ondemand 會被作為默認的 governor 使用。為了理解是什么原因造成了這種現狀,我們在這里帶領讀者回顧一下 cpufreq 子系統中的governor在內核中的開發歷史。

  Cpufreq 作為一個子系統最早被加入到 Linux 內核中時只配備了三個governors ,分別是performance、powersave 和userspace。當用戶選擇使用 performance governor 時,CPU會固定工作在其支持的最高運行頻率上;當用戶選擇使用powersave governor 時,CPU會固定工作在其支持的最低運行頻率上。因此這兩種 governors 都屬于靜態 governor ,即在使用它們時 CPU 的運行頻率不會根據系統運行時負載的變化動態作出調整。這兩種 governors 對應的是兩種極端的應用場景,使用 performance governor 體現的是對系統高性能的最大追求,而使用 powersave governor 則是對系統低功耗的最大追求。雖然這兩種應用需求確實存在,但大多數用戶在大部分時間里需要的是更加靈活的變頻策略。最早的 cpufreq 子系統通過 userspace governor 為用戶提供了這種靈活性。正如它的名字一樣,使用 userspace governor 時,系統將變頻策略的決策權交給了用戶態應用程序,并提供了相應的接口供用戶態應用程序調節 CPU 運行頻率使用。通過使用 cpufrequtils 工具包中的 cpufreq-set 將 userspace 設置為 cpufreq 子系統所使用的 governor 后,我們可以看到與之前相比在 /sys/devices/system/cpu/cpuX/cpufreq/ 目錄下多出了一個名為 scaling_setspeed 的文件,這正是 userspace governor 所提供的特殊用戶接口。用戶可以通過向該文件寫入任何一個 scaling_available_frequencies 中所支持的運行頻率,從而將 CPU 設置在該頻率下運行。

  # cpufreq-set -g userspace

  # cat cpuinfo_cur_freq

  1000000

  # cat scaling_available_frequencies

  1667000 1333000 1000000

  # echo 1333000 》scaling_setspeed

  # cat cpuinfo_cur_freq

  1333000

  剛剛提到在使用 userspace governor 時,系統將變頻策略的決策權交給了用戶態應用程序。該用戶態應用程序一般是一個 daemon 程序,每隔一定的時間間隔收集一次系統信息并根據系統的負載情況使用 userspace governor 提供的 scaling_setspeed 接口動態調整 CPU 的運行頻率。作為這個daemon 程序,當時在幾個主要的 Linux 發行版中使用的一般是 powersaved 或者 cpuspeed。這兩個 daemon 程序一般每隔幾秒鐘統計一次 CPU 在這個采樣周期內的負載情況,并根據統計結果調整 CPU 的運行頻率。這種 userspace governor 加用戶態 daemon 程序的變頻方法雖然為用戶提供了一定的靈活性,但通過開源社區的廣泛使用所得到的意見反饋逐漸暴露了這種方法的兩個嚴重缺陷。第一個是性能方面的問題。例如powersaved 每隔五秒鐘進行一次系統負載情況的采樣分析的話,我們可以分析一下在下面給出的應用場景中的用戶體驗。假設 powersaved 的采樣分析剛剛結束,而且由于在剛剛結束的采樣周期內系統負載很低,CPU 被設置在最低頻率上運行。這時用戶如果打開 Firefox? 等對 CPU 運算能力要求相當高的程序的話,powersaved 要在下一個采樣點——大約五秒鐘之后才有機會觀察到這種提高 CPU 運行頻率的需求。也就是說,在Firefox 啟動之初的五秒鐘內 CPU 的計算能力并沒有被充分發揮出來,這無疑會使用戶體驗大打折扣。第二個是系統負載情況的采樣分析的準確性問題。將監控系統負載情況并對未來 CPU 的性能需求做出判斷的任務交給一個用戶態程序完成實際上并不合理,一方面是由于一個用戶態程序很難完整的收集到所有需要的信息,因為這些信息大部分都保存在內核空間;另一方面一個用戶態程序如果想要收集這些系統信息,必然需要進行用戶態與內核態之間的數據交互,而頻繁的用戶態與內核態之間的數據交互又會給系統性能帶來負面影響。

     

12下一頁全文

本文導航

  • 第 1 頁:Linux2.6內核中的最新電源管理技術綜述

  • 第 2 頁:那么這兩個問題有沒有解決的方法呢

分享到:微信QQ空間新浪微博騰訊微博

0 收藏(0) 打印

免費訂閱 ElecFans 信息速遞,掌握即時科技產業動態與最新技術方案


下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV

推薦產品

更多
美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区


        国产成人丝袜美腿| 婷婷国产v国产偷v亚洲高清| 欧美三级资源在线| 91国偷自产一区二区三区成为亚洲经典| 国产喷白浆一区二区三区| 日韩视频在线你懂得| 日韩欧美色综合| 日韩一区二区免费高清| 久久伊99综合婷婷久久伊| 国产午夜精品一区二区三区四区| 国产三级精品三级在线专区| 国产精品美女久久久久久久网站| 亚洲人成网站精品片在线观看| 亚洲免费在线观看视频| 午夜精品福利久久久| 精品一区二区日韩| 99re这里都是精品| 九九99玖玖| 亚洲激情图片| 欧美精品久久久久久久久老牛影院| 91精品婷婷国产综合久久性色 | 制服丝袜中文字幕亚洲| 欧美videos中文字幕| 国产精品蜜臀av| 亚洲最新视频在线播放| 看电视剧不卡顿的网站| av午夜一区麻豆| 日本精品一区二区三区视频| 欧美日韩免费观看一区三区| 国产亚洲成aⅴ人片在线观看| 一区2区3区在线看| 国产福利电影一区二区三区| 国产日韩欧美一区二区三区四区| 亚洲一区二区三区欧美| 精品欧美久久久| 一区二区三区免费在线观看| 精品一区免费av| 成人av男人的天堂| 欧美在线看片a免费观看| 欧美激情综合在线| 麻豆国产精品777777在线| 91尤物视频在线观看| 在线免费观看成人| 国产亚洲欧美在线| 蜜桃久久精品一区二区| av资源一区二区| 欧美亚洲综合网| **欧美大码日韩| 国产精品一二三| 欧美日韩国产不卡在线看| 91精品国产色综合久久| 一区二区三区资源| 91热门视频在线观看| 在线视频一区二区三区| 国产精品国产三级国产a| 国产一区二区成人久久免费影院 | 成人做爰66片免费看网站| 91久久精品网| 国产精品二三区| 高潮精品一区videoshd| 一区二区免费电影| 中文字幕中文乱码欧美一区二区| 国产呦精品一区二区三区网站 | 日韩精品一区二区三区四区 | 狠狠色丁香久久婷婷综| 精品国产乱码久久久久软件 | 亚洲h精品动漫在线观看| 99视频一区二区三区| 一区二区精品在线观看| 日韩美女视频一区二区 | 国产乱妇无码大片在线观看| 日本不卡在线观看| 亚洲国产精品成人久久综合一区 | 日本10禁啪啪无遮挡免费一区二区| 欧美mv日韩mv国产网站| 亚洲超碰精品一区二区| 国产视色精品亚洲一区二区| 久久亚洲免费视频| 国产成人精品午夜视频免费| 色婷婷久久综合| 尤物在线观看一区| 国产激情一区二区三区在线观看| 精品三级在线观看| 国产在线一区观看| 欧美日韩一区二区在线视频| 日韩中文字幕不卡| 亚洲视频在线二区| 亚洲观看高清完整版在线观看 | 欧美一区二区三区四区在线观看| 午夜一区二区三区在线观看| 日本成人看片网址| 夜夜嗨av一区二区三区网页 | 51午夜精品国产| 麻豆国产精品官网| 欧美制服丝袜第一页| 亚洲va欧美va国产va天堂影院| 欧美13一14另类| 亚洲黄网站在线观看| 久久精品美女| 综合激情成人伊人| 麻豆久久久9性大片| 日韩一区日韩二区| 精品国产第一页| 亚洲你懂的在线视频| 欧美国产综合视频| 亚洲成人av一区二区三区| 亚洲乱码一区二区三区| 亚洲va欧美va人人爽午夜| 亚洲一区二区精品在线观看| 亚洲第一在线综合网站| 最新精品视频| 极品少妇xxxx精品少妇| 宅男在线国产精品| 成人免费看视频| 久久久久国产免费免费 | 高清日韩一区| 日韩一区在线看| 视频一区二区三区在线观看| 午夜一区二区三区视频| 欧美亚洲图片小说| 风间由美一区二区三区在线观看| 精品粉嫩超白一线天av| 91一区二区三区| 亚洲精品亚洲人成人网在线播放| 日韩精品一级中文字幕精品视频免费观看| 欧美国产一区二区| 国内精品视频免费| 1区2区3区国产精品| 欧美日韩精品免费观看| 亚洲国产成人av好男人在线观看| 伊人av成人| 国产精品18久久久久久久网站| 久久日韩精品一区二区五区| 九九九九精品九九九九| 七七婷婷婷婷精品国产| 欧美刺激午夜性久久久久久久| 91麻豆精品秘密| 亚洲激情图片小说视频| 欧美性大战xxxxx久久久| 99视频精品在线| 亚洲欧洲成人av每日更新| 中文字幕一区二区三区在线乱码| 精品一区二区国语对白| 久久精品亚洲一区二区三区浴池 | 伊人久久大香线蕉综合75| 国产一区二区伦理| 国产精品女主播av| 日本人妖一区二区| 日韩和欧美一区二区三区| 欧美日韩国产首页在线观看| av激情亚洲男人天堂| 亚洲成av人片| 日韩欧美成人激情| 欧美日韩免费观看一区| 国产自产v一区二区三区c| 中文字幕欧美激情| 色综合久久综合| 99re这里只有精品视频首页| 午夜激情综合网| 国产日韩欧美一区二区三区综合| 色综合久久久网| 国产99在线播放| 国产一区免费电影| 亚洲激情第一区| 2020国产精品| 色88888久久久久久影院按摩| 在线观看国产一区| 日韩理论在线观看| 欧美一区日韩一区| 日产精品一线二线三线芒果| 波多野结衣精品在线| 天天综合网天天综合色| 国产性色一区二区| 精品1区2区3区| 久久久久久久久久久久久久一区 | 亚洲精品成人三区| 成熟亚洲日本毛茸茸凸凹| 亚洲综合色噜噜狠狠| www国产成人| 欧美日韩成人一区二区| 日韩在线导航| 99国产高清| 国产成人a级片| 亚洲国产成人av网| 中文一区一区三区高中清不卡| 欧美三级电影精品| 日本10禁啪啪无遮挡免费一区二区| 播五月开心婷婷综合| 美女久久久精品| 亚洲成人免费在线观看| 国产片一区二区三区| 欧美一区二区三区在线观看 | 亚洲成人激情av| 自拍偷拍欧美激情| 国产三级久久久| 欧美va亚洲va香蕉在线| 欧美一级精品在线| 91麻豆精品91久久久久久清纯| 欧美在线一二三| 色香色香欲天天天影视综合网|