在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

linux cpu dvfs介紹

sakobpqhz6 ? 來源:黑客與攝影師 ? 2023-03-07 11:36 ? 次閱讀

介紹

CPU dvfs(dynamic voltage frequency scaling)子系統(tǒng)負(fù)責(zé)cpu運行時,對其頻率及電壓進(jìn)行調(diào)整,以求性能滿足的前提下,cpu的功耗盡可能低。

芯片的CMOS電路的功耗有個計算公式,比較復(fù)雜,簡單來說功耗跟電壓平方成正比,跟頻率成正比,因此CPU dvfs在涉及到電壓調(diào)整的時候,功耗受益還是很明顯的。但是僅調(diào)頻的話,收益是比較小的,因為頻率對應(yīng)著算力,當(dāng)頻率減少,對應(yīng)的算力也減弱,這樣執(zhí)行時間也會變長。

CPU dvfs framework(也常被稱為cpufreq framework)和其他的linux framework類似。主要解決兩個問題:什么時候調(diào)頻調(diào)壓,怎么調(diào)頻調(diào)壓。cpufreq driver提供調(diào)頻調(diào)壓的機制,cpufreq governor提供不同的策略,cpufreq core對通用的調(diào)頻邏輯做抽象,為上層提供功能、接口封裝,對下層調(diào)用抽象封裝的硬件控制接口。此外,還借助頻率電壓對opp(operating performance points)功能,clk driver、regulator driver對頻率及電壓做硬件時鐘及電壓的調(diào)整。

2.框架

f855a21e-bc22-11ed-bfe3-dac502259ad0.png

cpufreq core:是cpufreq framework的核心模塊,和kernel其它framework類似,主要實現(xiàn)三類功能

抽象調(diào)頻調(diào)壓的公共邏輯和接口,主要圍繞struct cpufreq_driver、struct cpufreq_policy和struct cpufreq_governor三個數(shù)據(jù)結(jié)構(gòu)進(jìn)行

以sysfs的形式向用戶空間提供統(tǒng)一的接口,以notifier的形式向其它driver提供頻率變化的通知。

提供CPU頻率和電壓控制的驅(qū)動框架,方便底層driver的開發(fā);同時,提供governor框架,用于實現(xiàn)不同的頻率調(diào)整機制。

cpufreq governor:負(fù)責(zé)調(diào)頻調(diào)壓的各種策略,每種governor計算頻率的方式不同,根據(jù)提供的頻率范圍和參數(shù)(閾值等),計算合適的頻率。

userspace:用戶通過操作scaling_setspeed文件節(jié)點操作頻率及電壓的調(diào)整。

ondemand:根據(jù)CPU當(dāng)前的使用率,動態(tài)調(diào)整cpu的頻率及電壓。Sched通過調(diào)用ondemand注冊進(jìn)來的回調(diào)函數(shù)來觸發(fā)負(fù)載的估算,它以一定時間間隔對系統(tǒng)負(fù)載進(jìn)行采樣,按需調(diào)整cpu的頻率及電壓,若當(dāng)前cpu的利用率超過設(shè)定的閾值,就會立即調(diào)整到最大的頻率。調(diào)頻速度快,但是不夠精確。

conservative:類似ondemand,在調(diào)頻調(diào)節(jié)時會平滑一下,以防最大、最小頻率之間來回跳變。調(diào)整的時候會以一定步長調(diào)整,而不是直接調(diào)整到目標(biāo)值。同時會周期的計算系統(tǒng)負(fù)載,用以決定調(diào)到什么頻率。

schedutil:通過將自己的調(diào)頻策略注冊到hook,在負(fù)載發(fā)生變化的時候,會調(diào)用該hook,此時就可以進(jìn)行調(diào)頻決策或執(zhí)行調(diào)頻動作。前面的調(diào)頻策略都是周期采樣計算cpu負(fù)載有滯后性,精度也有限,而schedutil可以使用PELT(per entity load tracking)或者WALT(window assist load tracking)準(zhǔn)確的計算task的負(fù)載。如果支持fast_switch的功能,可以在中斷上下文直接進(jìn)行調(diào)頻。

cpufreq driver:負(fù)責(zé)平臺相關(guān)的調(diào)頻調(diào)壓機制的實現(xiàn),基于cpu subsystem driver、OPP、clock driver、regulator driver等模塊,提供對CPU頻率和電壓的控制。

cpufreq stats:負(fù)責(zé)調(diào)頻信息和各頻點運行時間等統(tǒng)計,提供每個cpu的cpufreq有關(guān)的統(tǒng)計信息。

3.數(shù)據(jù)結(jié)構(gòu)

struct cpufreq_policy:linux使用cpufreq policy來抽象cpu設(shè)備的調(diào)頻調(diào)壓功能,用于描述不同的policy,包含頻率表、cpuinfo等各種信息,并且每個policy都會對應(yīng)某個具體的governor。

struct cpufreq_governor:不同policy的管理策略,根據(jù)使用場景的不同,會有不同的調(diào)頻調(diào)壓策略。

struct cpufreq_driver:用于描述cpufreq的驅(qū)動,是驅(qū)動工程師最關(guān)注的結(jié)構(gòu)。

f87a849e-bc22-11ed-bfe3-dac502259ad0.png

4.初始化及工作流程

4.1初始化流程

cpufreq_register_driver函數(shù)為cpufreqdriver注冊的入口,驅(qū)動程序通過調(diào)用該函數(shù)進(jìn)行初始化,并傳入相關(guān)的struct cpufreq_driver,cpufreq_register_driver會調(diào)用subsys_interface_register,最終執(zhí)行回調(diào)函數(shù)cpufreq_add_dev。

系統(tǒng)中可以同時存在多個governor,policy通過cpufreq_policy->governor指針和某個governor相關(guān)聯(lián)。要想一個governor能夠被使用,首先要把該governor注冊到cpufreq framework中。

cpufreq core定義了一個全局鏈表變量:cpufreq_governor_list,注冊函數(shù)首先根據(jù)governor的名稱,通過__find_governor()函數(shù)查找該governor是否已經(jīng)被注冊過,如果沒有被注冊過,則把代表該governor的結(jié)構(gòu)體添加到cpufreq_governor_list鏈表中。

fa3469a8-bc22-11ed-bfe3-dac502259ad0.png

4.2工作流程

不同的governor的觸發(fā)調(diào)頻調(diào)壓流程不一樣,這里以scheduutil governor為例。

CFS負(fù)載變化的時候或者RT、DL任務(wù)狀態(tài)更新的時候,就會啟動調(diào)頻這幾個scheduler類會調(diào)用cpufreq_update_util函數(shù)(前面注冊進(jìn)來的hook函數(shù))觸發(fā)schedutil工作。每個cpu最終會回調(diào)到sugov_upate_shared或者sugov_upate_single函數(shù)中的一個。

由于是從scheduler里直接調(diào)用下來的,最終執(zhí)行調(diào)頻切換時,無論是快速路徑觸發(fā)的簡單寫寄存器,還是慢速路徑觸發(fā)的kthread都不會占用過多時間或者調(diào)度開銷。

具體的觸發(fā)時機如下:

fae67cd8-bc22-11ed-bfe3-dac502259ad0.png





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5363

    瀏覽量

    121205
  • CMOS電路
    +關(guān)注

    關(guān)注

    0

    文章

    49

    瀏覽量

    11594
  • LINUX內(nèi)核
    +關(guān)注

    關(guān)注

    1

    文章

    316

    瀏覽量

    21747
  • CFS
    CFS
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    9062

原文標(biāo)題:一文搞懂linux cpu dvfs

文章出處:【微信號:IC學(xué)習(xí),微信公眾號:IC學(xué)習(xí)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式Linux系統(tǒng)CPU控制常見辦法測試

    01 測試環(huán)境 Xilinx ZCU106 單板 Xilinx VCU TRD2020.1 02 介紹 嵌入式Linux系統(tǒng)中,Linux直接管理所有CPU。默認(rèn)情況下,系統(tǒng)的目標(biāo)是提
    的頭像 發(fā)表于 11-26 14:17 ?5165次閱讀

    Linux驅(qū)動開發(fā)之IO模型介紹

    Linux驅(qū)動開發(fā)中,應(yīng)用程序通過循環(huán)讀取或者中斷的方式都會使得CPU的占用率很高。本文介紹五種IO模型,可以用來優(yōu)化文件讀寫方式,降低CPU的使用率。
    發(fā)表于 07-29 09:03 ?862次閱讀

    關(guān)于DVFS與AVS

    請問工程師,在SmartReflex中的DVFS與AVS兩種方式的區(qū)別是什么,謝謝
    發(fā)表于 06-21 03:32

    請問是否有其他文檔詳細(xì)的描述Omap-l132芯片的DVFS使用方法?

    正在使用Omap-l132芯片,想要使用DVFS做省電。文檔《spruh78.pdf》和《omap-l132,pdf》中相關(guān)內(nèi)容較少且較概略,請問是否有其他文檔詳細(xì)的描述此芯片的DVFS使用方法?
    發(fā)表于 08-23 07:54

    RK3288 Android6.0 DVFS與DDR frequnecy的初始化

    Platform: RK3288OS: Android 6.0Kernel: 3.10.92DVFS即Dynamic Voltage and Frequency Scaling.有看到RK將DDR
    發(fā)表于 11-07 17:28

    ATMEL的CPU介紹

    ATMEL的CPU介紹ATMEL的CPU介紹ATMEL的CPU介紹ATMEL的
    發(fā)表于 10-30 18:08 ?5次下載

    Linux那些事兒linux的入門介紹

    電子發(fā)燒友網(wǎng)站提供《Linux那些事兒linux的入門介紹.pdf》資料免費下載
    發(fā)表于 05-02 08:00 ?4次下載

    DVFS對程序性能影響模型

    (dynamic voltage frequency scaling,簡稱DVFS)來提升單節(jié)點的能耗表現(xiàn).但是,DVFS這一類機制同時影響到應(yīng)用的能源消耗和性能,而這一問題尚未被深入探索.專注于 DVFS 機制對應(yīng)用程序性能的
    發(fā)表于 12-30 14:56 ?1次下載

    Linux CPU的性能應(yīng)該如何優(yōu)化

    Linux系統(tǒng)中,由于成本的限制,往往會存在資源上的不足,例如 CPU、內(nèi)存、網(wǎng)絡(luò)、IO 性能。本文,就對 Linux 進(jìn)程和 CPU 的原理進(jìn)行分析,總結(jié)出
    的頭像 發(fā)表于 01-18 08:52 ?3428次閱讀

    如何分析Linux CPU上下文切換問題

    在我的上一篇文章:《探討 Linux CPU 的上下文切換》中,我談到了 CPU 上下文切換的工作原理。快速回顧一下,CPU 上下文切換是保證 Li
    的頭像 發(fā)表于 05-05 20:11 ?2025次閱讀

    一文搞懂linux cpu dvfs

    CPU dvfs(dynamic voltage frequency scaling)子系統(tǒng)負(fù)責(zé)cpu運行時,對其頻率及電壓進(jìn)行調(diào)整,以求性能滿足的前提下,cpu的功耗盡可能低。
    的頭像 發(fā)表于 03-07 11:35 ?2085次閱讀
    一文搞懂<b class='flag-5'>linux</b> <b class='flag-5'>cpu</b> <b class='flag-5'>dvfs</b>

    如何在Linux中對CPU進(jìn)行壓力測試

    Linux環(huán)境中對CPU進(jìn)行壓力測試,主要是為了測試系統(tǒng)的CPU負(fù)載能力和穩(wěn)定性,可以使用多種工具和命令來進(jìn)行測試。本文主要介紹兩種常用的CPU
    發(fā)表于 07-18 09:55 ?7424次閱讀

    Linux服務(wù)器CPU飆升的原因

    首先在Linux系統(tǒng)中檢查CPU使用率。可以通過在命令行中輸入top或htop命令來查看當(dāng)前系統(tǒng)中各個進(jìn)程的CPU使用率。如果CPU使用率大于80%,則可以考慮進(jìn)行排查。
    發(fā)表于 02-28 11:00 ?1980次閱讀
    <b class='flag-5'>Linux</b>服務(wù)器<b class='flag-5'>CPU</b>飆升的原因

    淺析SoC芯片的DVFS技術(shù)

    DVFS(Dynamic Voltage and Frequency Scaling)即動態(tài)電壓頻率調(diào)節(jié)技術(shù),是一種高效的低功耗技術(shù),它通過動態(tài)調(diào)整工作電壓和時鐘頻率,以達(dá)到降低功耗的目的。
    的頭像 發(fā)表于 04-05 09:52 ?2832次閱讀
    淺析SoC芯片的<b class='flag-5'>DVFS</b>技術(shù)

    i.MX 8M Plus 系統(tǒng)級模塊 DVFS 支持 CPU 頻率控制

    作者: Tawfeeq Ahmad 動態(tài)電壓和頻率調(diào)節(jié) (DVFS) 是一種復(fù)雜的電源管理技術(shù),對于優(yōu)化嵌入式系統(tǒng)的性能和能效至關(guān)重要。DVFS 可根據(jù)工作負(fù)載需求動態(tài)調(diào)整處理器的電壓和頻率,從而
    的頭像 發(fā)表于 01-26 17:59 ?146次閱讀
    i.MX 8M Plus 系統(tǒng)級模塊 <b class='flag-5'>DVFS</b> 支持 <b class='flag-5'>CPU</b> 頻率控制
    主站蜘蛛池模板: 添人人躁日日躁夜夜躁夜夜揉 | 手机看片福利久久 | 夜夜艹天天干 | 天天操天天玩 | 1024手机看片你懂得的 日韩欧美 | 91色视频网站 | 黄视频网站入口 | 亚洲光棍天堂 | 欧美日韩生活片 | 午夜免费福利视频 | 综合色区 | 老司机51精品视频在线观看 | 亚洲欧洲精品成人久久曰影片 | 97狠狠操| 国产成人精品日本亚洲语言 | 亚洲高清国产一线久久 | 日韩精品另类天天更新影院 | 亚洲日本黄色 | 色之综合天天综合色天天棕色 | 岛国大片在线播放 | 精品成人在线 | 成人二区 | 免费抓胸吻胸激烈视频网站 | 天天摸天天澡天天碰天天弄 | 影音先锋午夜资源网站 | 亚洲午夜影视 | 国产片18在线观看 | 美女黄18 | 女人张开腿给男人桶爽免费 | 综合婷婷丁香 | 99免费视频观看 | 1000又爽又黄禁片 | 老色批 | 操狠狠 | 午夜刺激爽爽视频免费观看 | 哟交小u女国产精品视频 | 亚洲一区二区三区四区在线观看 | 99成人在线 | 色片视频网站 | www日| 欧美片欧美日韩国产综合片 |