精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

while(1)到底占了多少CPU功耗呢?這些功耗去哪里了呢?

冬至子 ? 來源:UEFI社區 ? 作者:Wolf ? 2023-06-29 17:30 ? 次閱讀

CPU耗能的基本原理

我們將CPU簡單看作場效應晶體管FET的集合。這么多個FET隨著每一次的翻轉都在消耗者能量。一個FET的簡單示意圖如下:

圖片

圖1

當輸入低電平時,CL被充電,我們假設a焦耳的電能被儲存在電容中。而當輸入變成高電平后,這些電能則被釋放,a焦耳的能量被釋放了出來。因為CL很小,這個a也十分的小,幾乎可以忽略不計。但如果我們以1GHz頻率翻轉這個FET,則能量消耗就是a × 10^9,這就不能忽略了,再加上CPU中有幾十億個FET,消耗的能量變得相當可觀。

從這里我們可以看出CPU的能耗和有多少個晶體管參與工作有關,似乎還和頻率是正相關的。我們下面分別來看一下。

指令功耗

如果我們將CPU簡單看作單核的,是不是運行while(1);就能讓該CPU達到TDP呢?實際上并不會。每條指令所要調動的晶體管數目不同,而功耗是被調動晶體管功耗的總和。

《動物莊園》有一句話很經典:“所有動物生來平等 但有些動物比其他動物更平等”。是不是指令都是平等的呢?當然不是了,有些指令更平等!每條指令需要調動的晶體管數目有很大不同,一條新指令和已經在L1指令Cache中的指令也不同。一個簡化版Hesswell CPU的流水線示意圖如下:

圖片

一個指令要不要調度運算器,要不要訪問外存,要不要回寫,在不在L1中都會帶來不少的區別。綜合下來,流水線中各個階段的功耗餅圖如下:

圖片

可以看到Fetch指令和decode占據了大頭,而我們的執行才占據%9?。hile(1);編譯完的指令們,這時已經在L1中,Fetch會節省不少能耗。這也是達成同樣功能,ASIC很省電,而CPU很費電的原因:

圖片

如果我們不討論指令的差異,在平均意義上來看指令的功耗,它有個專有的名詞:指令功耗(EPI,Energy per Instruction)。

EPI和CPU制程、設計息息相關。Intel的CPU在P4的EPI達到一個高峰,后來在注重每瓦功耗的情況下,逐年在下降:

圖片

Intel CPU EPI(數據較老)

耗能和頻率的關系

從圖1中,也許你可以直觀的看出,能耗和頻率是正相關的。這個理解很正確,實際上能耗和頻率成線性相關。能耗關系公示是(參考資料2):

圖片

P代表能耗。C可以簡單看作一個常數,它由制程和設計等因素決定;V代表電壓;而f就是頻率了。理想情況,提高一倍頻率,則能耗提高一倍??雌饋聿⒉皇謬乐兀皇菃??但實際情況卻沒有這么簡單。

我們這里要引入門延遲(Gate Delay)的概念。簡單來說,組成CPU的FET充放電需要一定時間,這個時間就是門延遲。只有在充放電完成后采樣才能保證信號的完整性。而這個充放電時間和電壓負相關,即電壓高,則充放電時間就短。也和制程正相關,即制程越小,充放電時間就短。讓我們去除制程的干擾因素,當我們不斷提高頻率f后,過了某個節點,太快的翻轉會造成門延遲跟不上,從而影響數字信號的完整性,從而造成錯誤。這也是為什么超頻到某個階段會不穩定,隨機出錯的原因。那么怎么辦呢?聰明的你也許想到了超頻中常用的辦法:加壓。對了,可以通過提高電壓來減小門延遲,讓系統重新穩定下來。

讓我們回頭再來看看公式,你會發現電壓和功耗可不是線性相關,而是平方的關系!再乘以f,情況就更加糟糕了。我們提高頻率,同時不得不提高電壓,造成P的大幅提高!我們回憶一下初中學過的y=x^3的函數圖:

圖片

Y在經過前期緩慢的提高后在a點會開始陡峭的上升。這個a就是轉折點,過了它,就劃不來了。功耗和頻率的關系也大抵如此,我們看兩個實際的例子:

圖片

i7-2600K頻率和功耗的關系

圖片

Exynos頻率和功耗的關系

ARM和X86陣營來看,他們能耗曲線是不是和冪函數圖很像?

其他因素

一個while(1);最多讓某個內核占有率100%,其他內核呢?CPU近期的目標是提供越來越精細的電源管理策略。原來不跑的部分就讓它閑著,后來改成它降頻運行,接著改成不提供時鐘信號,這樣猶嫌不足?,F在CPU的電源管理由PMC負責,它會完全切斷不用部分的電路。

操作系統層面,它會盡力將不用的內核設置成CState,從而讓PMC等電源控制模塊有足夠的提示(hint)來關閉電源。

結論

拉拉雜雜的說了這許多,我們可以看出,while(1);并不會耗掉整個CPU的TDP。就算一個內核,它的耗能也不會達到該內核的能耗上線(現在都是Turbo Mode,內核能耗上限是個動態的結果)。它可以把該內核拉入Turbo Mode的最高頻率,但因為指令都在L1中,耗能也不會很高。

至于消耗的能量都到哪里去了,根據能量守恒定律,一定是變成熱量散發出去了。這個過程中也許會產生動能(風扇轉動等等),光能(GPIO驅動LED發光),但在最后的最后,都會變成熱能。

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

    關注

    115

    文章

    6154

    瀏覽量

    144231
  • FET
    FET
    +關注

    關注

    3

    文章

    630

    瀏覽量

    62890
  • 場效應晶體管

    關注

    6

    文章

    359

    瀏覽量

    19472
  • LED發光
    +關注

    關注

    0

    文章

    23

    瀏覽量

    8243
  • 調度器
    +關注

    關注

    0

    文章

    98

    瀏覽量

    5238
收藏 人收藏

    評論

    相關推薦

    DAC功耗數據計算 功耗數字到底包括什么?

    電子發燒友網提供正確的DAC功耗數據計算方法,詳細講解了每個功耗數字到底包括什么?數字電路功耗
    發表于 11-30 16:11 ?4322次閱讀

    使用這些設計技巧降低FPGA功耗

       新一代 FPGA的速度變得越來越快,密度變得越來越高,邏輯資源也越來越多。那么如何才能確保功耗不隨這些一起增加?很多設計抉擇可以影響系統的功耗,
    發表于 01-11 11:59

    關于降低功耗在編程時的建議

    暫停指令,使系統進入休眠狀態,較while(1)方式能極大的降低整體功耗;設置定時中斷或事件中斷,可以在需要處理時將CPU喚醒 這種方式對于電池供電的產品來說非常必要,如果沒事做的時候
    發表于 03-27 11:21

    【精選】STM32功耗測試筆記

    功耗是永恒的話題,STM32的功耗到底怎么樣?
    發表于 03-03 12:45

    請問動態功耗怎么仿真

    DAC的靜態功耗容易仿真,隨便給一個碼值仿真dc看直流電流總和,乘以電源電壓。請問動態功耗怎么仿真
    發表于 06-24 06:55

    到底該怎么去使用KEIL的這些調試方法

    為什么要虛擬串口,這里的虛擬串口又是什么意思?到底該怎么去使用KEIL的這些調試方法?
    發表于 12-21 07:20

    如何對STOP的休眠功耗模式進行調試

    STOP模式休眠功耗的調試過程是怎樣的?如何對STOP的休眠功耗模式進行調試
    發表于 02-21 06:39

    請問TICKLESS是如何去實現功耗降低的

    什么是TICKLESS?怎么能實現功耗的降低?TICKLESS是如何去實現功耗降低的?
    發表于 02-24 08:02

    小米MIUI8.2你到底好在哪里?到底值不值得升級

    小米 MIUI8.2 穩定版已經更新,也有很多的米粉已經體驗上了新功能。相比以往的MIUI版本到底好在哪里?
    發表于 02-18 08:52 ?3w次閱讀

    從微架構設計和制造工藝低功耗CPU的實現

    隨著智能手機等移動應用的興起,目前的處理器設計不僅要提供高性能,還必須要符合另一個重要指標,那就是低功耗。通過簡單地降低電壓或頻率來實現低功耗不可取——試問有誰會去買性能打過折的產品?那么,低
    的頭像 發表于 02-01 11:48 ?7250次閱讀
    從微架構設計和制造工藝低<b class='flag-5'>功耗</b><b class='flag-5'>CPU</b>的實現

    如何知道真正的CPU功耗 功率墻問題怎么解決

    降速都有可能是達到了功率墻。那么,怎么知道真正的CPU功耗?是時候呼叫HWINFO這款小軟件。 首先,我們要從官網https://www.hwinfo.com處下載HWINFO。這
    的頭像 發表于 08-26 11:10 ?4.1w次閱讀
    如何知道真正的<b class='flag-5'>CPU</b><b class='flag-5'>功耗</b> 功率墻問題怎么解決

    CPU內部到底是如何工作的?

    眾所周知CPU是中央處理器,它是控制處理中心,我們的電腦、手機等電子產品都離不開CPU。 那么,CPU內部到底是如何工作的?我們一起來看看
    的頭像 發表于 04-04 14:36 ?5633次閱讀
    <b class='flag-5'>CPU</b>內部<b class='flag-5'>到底</b>是如何工作的<b class='flag-5'>呢</b>?

    在Linux系統中系統變量存在哪里?

    上面講了很多系統變量,那么在Linux系統中,這些變量存在哪里?為什么用戶一登錄shell就自動有這些變量
    的頭像 發表于 11-16 09:46 ?1869次閱讀

    什么是低功耗設計

    想必各位ICer們在招聘JD上專門看到低功耗設計經驗的要求,什么是低功耗設計?對于后端工程 師來講,在物理實現方面就是引入多條電源線
    的頭像 發表于 05-15 11:42 ?1213次閱讀
    什么是低<b class='flag-5'>功耗</b>設計<b class='flag-5'>呢</b>?

    CPU的低功耗與高功耗的區別

    CPU的低功耗與高功耗之間存在多方面的區別,這些區別主要體現在功耗水平、性能表現、應用場景、成本效益以及技術實現等多個維度。
    的頭像 發表于 08-07 15:43 ?3354次閱讀