色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

linux cpu dvfs介紹

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

介紹

CPU dvfs(dynamic voltage frequency scaling)子系統負責cpu運行時,對其頻率及電壓進行調整,以求性能滿足的前提下,cpu的功耗盡可能低。

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

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

2.框架

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

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

抽象調頻調壓的公共邏輯和接口,主要圍繞struct cpufreq_driver、struct cpufreq_policy和struct cpufreq_governor三個數據結構進行

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

提供CPU頻率和電壓控制的驅動框架,方便底層driver的開發;同時,提供governor框架,用于實現不同的頻率調整機制。

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

userspace:用戶通過操作scaling_setspeed文件節點操作頻率及電壓的調整。

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

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

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

cpufreq driver:負責平臺相關的調頻調壓機制的實現,基于cpu subsystem driver、OPP、clock driver、regulator driver等模塊,提供對CPU頻率和電壓的控制。

cpufreq stats:負責調頻信息和各頻點運行時間等統計,提供每個cpu的cpufreq有關的統計信息。

3.數據結構

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

struct cpufreq_governor:不同policy的管理策略,根據使用場景的不同,會有不同的調頻調壓策略。

struct cpufreq_driver:用于描述cpufreq的驅動,是驅動工程師最關注的結構。

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

4.初始化及工作流程

4.1初始化流程

cpufreq_register_driver函數為cpufreqdriver注冊的入口,驅動程序通過調用該函數進行初始化,并傳入相關的struct cpufreq_driver,cpufreq_register_driver會調用subsys_interface_register,最終執行回調函數cpufreq_add_dev。

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

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

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

4.2工作流程

不同的governor的觸發調頻調壓流程不一樣,這里以scheduutil governor為例。

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

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

具體的觸發時機如下:

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





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5357

    瀏覽量

    120685
  • CMOS電路
    +關注

    關注

    0

    文章

    49

    瀏覽量

    11568
  • LINUX內核
    +關注

    關注

    1

    文章

    316

    瀏覽量

    21675
  • CFS
    CFS
    +關注

    關注

    0

    文章

    7

    瀏覽量

    9058

原文標題:一文搞懂linux cpu dvfs

文章出處:【微信號:IC學習,微信公眾號:IC學習】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式Linux系統CPU控制常見辦法測試

    01 測試環境 Xilinx ZCU106 單板 Xilinx VCU TRD2020.1 02 介紹 嵌入式Linux系統中,Linux直接管理所有CPU。默認情況下,系統的目標是提
    的頭像 發表于 11-26 14:17 ?5132次閱讀

    Linux驅動開發之IO模型介紹

    Linux驅動開發中,應用程序通過循環讀取或者中斷的方式都會使得CPU的占用率很高。本文介紹五種IO模型,可以用來優化文件讀寫方式,降低CPU的使用率。
    發表于 07-29 09:03 ?840次閱讀

    關于DVFS與AVS

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

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

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

    基于RK3399的Linux kernel中CPU時鐘管理介紹

    1、基于RK3399的Linux kernel中CPU時鐘管理介紹絕大多數的電子器件都是由時鐘驅動其工作的。而SoC芯片或電路板中的時鐘以樹狀結構呈現,按時鐘域進行劃分,按照不同的時鐘需求
    發表于 06-21 16:00

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

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

    ATMEL的CPU介紹

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

    Linux那些事兒linux的入門介紹

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

    DVFS對程序性能影響模型

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

    Linux CPU的性能應該如何優化

    Linux系統中,由于成本的限制,往往會存在資源上的不足,例如 CPU、內存、網絡、IO 性能。本文,就對 Linux 進程和 CPU 的原理進行分析,總結出
    的頭像 發表于 01-18 08:52 ?3396次閱讀

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

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

    一文搞懂linux cpu dvfs

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

    如何在Linux中對CPU進行壓力測試

    Linux環境中對CPU進行壓力測試,主要是為了測試系統的CPU負載能力和穩定性,可以使用多種工具和命令來進行測試。本文主要介紹兩種常用的CPU
    發表于 07-18 09:55 ?7386次閱讀

    Linux服務器CPU飆升的原因

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

    淺析SoC芯片的DVFS技術

    DVFS(Dynamic Voltage and Frequency Scaling)即動態電壓頻率調節技術,是一種高效的低功耗技術,它通過動態調整工作電壓和時鐘頻率,以達到降低功耗的目的。
    的頭像 發表于 04-05 09:52 ?2705次閱讀
    淺析SoC芯片的<b class='flag-5'>DVFS</b>技術
    主站蜘蛛池模板: 98久久无码一区人妻A片蜜| 岛国大片在线播放高清| 国产中文字幕乱码一区| 性xxx欧美| 国产精品人妻无码久久久2022| 我的家庭女教师| 精品四虎国产在免费观看| 在线少女漫画| 日韩无码在线| 国产中文字幕乱码免费| 456亚洲人成在线播放网站| 人妻熟女斩五十路0930| 国产婷婷午夜精品无码A片| 在线看片av以及毛片| 秋霞电影网午夜鲁丝片| 国产在线精品亚洲视频在线| 2021国产精品| 天上人间影院久久国产| 久久免费精品视频| 成都电影免费中文高清| 亚洲国产五月综合网| 男的插曲女的下面免费APP| 国产精品观看视频免费完整版| 永久adc视频年龄确认| 色久悠悠无码偷拍自怕| 久久婷婷色香五月综合激情| 俄罗斯19girl video9| 伊人久久青青| 四虎影视国产精品亚洲精品hd| 久久婷婷五月综合色丁香| 古代又黄又肉到湿的爽文| 中国农村妇女真实BBWBBWBBW| 视频一区在线免费观看| 免费看到湿的小黄文软件APP| 国产欧美日韩国产高清| adc网址在线观看| 一天不停的插BB十几次| 少妇大荫蒂毛多毛大| 蜜臀AV中文字幕熟女人妻| 国产午夜一级鲁丝片| 成年人视频在线免费观看|