日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 電源 > 電源
[導(dǎo)讀]  從 Linux? 2.6內(nèi)核及整個 software stack (包括 kernel、middleware 以及各種用戶態(tài) utility)如何添加對這些創(chuàng)新的節(jié)能技術(shù)的支持這一角度,為讀者介紹 Linux 操作系

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

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

  Cpufreq 的由來

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

  而變頻技術(shù)是指CPU硬件本身支持在不同的頻率下運(yùn)行,系統(tǒng)在運(yùn)行過程中可以根據(jù)隨時可能發(fā)生變化的系統(tǒng)負(fù)載情況動態(tài)在這些不同的運(yùn)行頻率之間進(jìn)行切換,從而達(dá)到對性能和功耗做到二者兼顧的目的。

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

  Cpufreq 的設(shè)計(jì)和使用

  為了解決前文所提到的問題,一個新的內(nèi)核子系統(tǒng)—— cpufreq 應(yīng)運(yùn)而生了。Cpufreq 為在Linux 內(nèi)核中更好的支持不同 CPU 的變頻技術(shù)提供了一個統(tǒng)一的設(shè)計(jì)框架,其軟件結(jié)構(gòu)如圖 1 所示。

  圖 1. Cpufreq 的軟件結(jié)構(gòu)

  如圖 1 所示,cpufreq 在設(shè)計(jì)上主要分為以下三個模塊:

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

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

  在 cpufreq 模塊的上層,governor 作為選擇合適的目標(biāo)運(yùn)行頻率的決策者,根據(jù)一定的標(biāo)準(zhǔn)在適當(dāng)?shù)臅r刻選擇出 CPU 適合的運(yùn)行頻率,并通過 cpufreq 模塊定義的接口操作底層與 CPU 相關(guān)的變頻驅(qū)動程序,將 CPU 設(shè)置運(yùn)行在選定的運(yùn)行頻率上。

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

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

  內(nèi)核中的 cpufreq 子系統(tǒng)通過 sysfs 文件系統(tǒng)向上層應(yīng)用提供了用戶接口,對于系統(tǒng)中的每一個 CPU 而言,其 cpufreq 的 sysfs 用戶接口位于 /sys/devices/system/cpu/cpuX/cpufreq/ 目錄下,其中 X 代表 processor id ,與 /proc/cpuinfo 中的信息相對應(yīng)。以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 命令進(jìn)行讀操作,另外所有可寫文件都可以使用 echo 命令進(jìn)行寫操作。其中cpuinfo_max_freq 和 cpuinfo_min_freq 分別給出了CPU 硬件所支持的最高運(yùn)行頻率及最低運(yùn)行頻率, cpuinfo_cur_freq 則會從 CPU 硬件寄存器中讀取 CPU 當(dāng)前所處的運(yùn)行頻率。雖然 CPU 硬件支持多種不同的運(yùn)行頻率,但是在有些場合下用戶可以只選擇使用其中的一個子集,這種控制是通過scaling_max_freq 和 scaling_min_freq 進(jìn)行的。Governor在選擇合適的運(yùn)行頻率時只會在 scaling_max_freq 和scaling_min_freq 所確定的頻率范圍內(nèi)進(jìn)行選擇,這也就是scaling_available_frequencies 所顯示的內(nèi)容。與cpuinfo_cur_freq 不同, scaling_cur_freq 返回的是cpufreq 模塊緩存的 CPU 當(dāng)前運(yùn)行頻率,而不會對 CPU 硬件寄存器進(jìn)行檢查。 scaling_available_governors 會告訴用戶當(dāng)前有哪些 governors 可供用戶使用,而 scaling_driver 則會顯示該 CPU 所使用的變頻驅(qū)動程序。 Stats 目錄下給出了對 CPU 各種運(yùn)行頻率的使用統(tǒng)計(jì)情況,例如 CPU 在各種頻率下的運(yùn)行時間以及在各種頻率之間的變頻次數(shù)。 Ondemand 目錄則與 ondemand governor 相關(guān),在后文會進(jìn)行相應(yīng)的介紹。

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

  $ 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 的由來及其實(shí)現(xiàn)剛剛我們在 cpufreq-info 的輸出中可以看到 cpufreq 子系統(tǒng)一共提供了五種 governors 供用戶選擇使用,它們分別是 userspace,conservative,ondemand,powersave 和performance。在最新的內(nèi)核中如果用戶不進(jìn)行額外設(shè)置的話,ondemand 會被作為默認(rèn)的 governor 使用。為了理解是什么原因造成了這種現(xiàn)狀,我們在這里帶領(lǐng)讀者回顧一下 cpufreq 子系統(tǒng)中的governor在內(nèi)核中的開發(fā)歷史。

Cpufreq 作為一個子系統(tǒng)最早被加入到 Linux 內(nèi)核中時只配備了三個governors ,分別是performance、powersave 和userspace。當(dāng)用戶選擇使用 performance governor 時,CPU會固定工作在其支持的最高運(yùn)行頻率上;當(dāng)用戶選擇使用powersave governor 時,CPU會固定工作在其支持的最低運(yùn)行頻率上。因此這兩種 governors 都屬于靜態(tài) governor ,即在使用它

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計(jì)中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計(jì)工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉