硬科技:x86處理器的電源管理簡史 省電篇

2021.11.24 01:03PM
照片中提到了Transition、Down、Transition,包含了性傳播感染、人的、人類行為、生物、行為

常看硬科技專欄的科科們,絕對不可能不知道不學無術的水球,吃飽閒閒就拼命考古、如痴漢裸奔般的野人獻曝給各位親愛的科科。在這個節能省碳愛護北極熊早已成為生活常識的當下,處理器絕對需要具備強大的電源管理機能,最起碼當閒閒沒事做時,就降低時脈或著關閉用不到的功能單元,也是站在時代浪頭的科科們必備的基礎知識。但各位科科知道在20年前,處理器這方面的技術是多麼的五窮六絕,而時下習以為常的省電技術,大多數也都是在Intel最慘烈的歲月,奠定結實的基礎嗎?

硬科技:為何遲遲不見市場上的高效能泛用處理器上看10GHz
為悼念Intel NetBurst的失敗而刻下的墓誌銘 (上)
為悼念Intel NetBurst的失敗而刻下的墓誌銘 (中)
為悼念Intel NetBurst的失敗而刻下的墓誌銘 (下)
硬科技:做為x86伺服器象徵的Intel Xeon處理器:混亂期(2004-2006)
硬科技:做為x86伺服器象徵的Intel Xeon處理器:轉型期(2006-2008)

不少人經常迷惑於琳瑯滿目的處理器電源管理技術行銷名詞,但只要記得1個重點就好:作業系統在近代電源管理扮演著主導性的角色。在1996年,也就是Intel發表Pentium Pro後沒多久,由微軟主導,結合Intel、HP、Toshiba、Phoenix等公司一起推動「先進電源管理界面 (ACPI, Advanced Configuration and Power Interface)」,這才是真正的故事起點。

古早利用BIOS控制、且功能極度有限的純硬體電源管理功能,逐漸被ACPI取代。畢竟只有掌握工作排程的作業系統,才知道目前系統中正在運行的所有程式,是否需要吃威而剛,能否偷塞「什麼都不做」的NOP指令 (在x86是”XCHG EAX, EAX”) 讓「炎上」的執行單元偷懶一下。一旦遭遇散熱功能全面失效、處理器或周邊硬體溫度完全失控、被迫強制關機時,讓作業系統補上最後一刀、而非外部硬體強迫斷電,更可將資料損失降到最低。所以每當Intel AMD (特別是後者) 推出新款微架構的處理器,也往往需要作業系統更新,才能充分壓榨其節能或「合法超頻」的潛力。

ACPI包含4種基本狀態:整體系統(G0~Gn)、周邊裝置狀態(D0~Dn)、處理器狀態(C0~Cn,C0代表正在執行指令,C1以後則是不同的省電模式)和其C0效能等級(P0~Pn),依據處理器利用率與I/O使用量等資訊,那個「n」數字越大,代表作業系統認為整台電腦越是「無聊沒事幹」。能否讓處理器擁有更精細的「換檔」,讓效能更可以剛剛好貼近作業系統眼中的實際需求,不多出一分力,並更快的切換不同的模式,就考驗著Intel和AMD的真本事。

照片中提到了Power、Failurel、Modem,包含了acpi 電源狀態、能源管理、高級配置和電源接口、中央處理器、電腦硬件

Intel最早在筆電版Pentium III的初代SpeedStep,只有「最高時脈/最高電壓(HFM,High Frequency Mode,該處理器的最高時脈)」和「最低時脈/最低電壓(LFM,Low Frequency Mode,統一600MHz)」2種模式。到了為筆電完全量身訂做的Pentium M,引進了EIST (Enhanced Intel SpeedStep,代號Geyserville),就變成以下的樣貌。EIST也持續演進到Skylake的SST (Speed Shift Technology)。

EIST:以Pentium M 1.6GHz為例

電壓(Vdc)

時脈

1.484

1.6GHz

1.42

1.4GHz

1.276

1.2GHz

1.164

1GHz

1.036

800MHz

0.956

600MHz

一步接著一步,在桌機市場,Intel在90nm製程NetBurst家族加入C1E (擴充型C1,或稱為強化暫停模式),在2005年第一季的Prescott 600系列導入完整的EIST。另一方面,筆電市場的Pentium M支援到C4 (Deeper Sleep),雙核心的Core (Yonah) 更多出Deeper C4,睡的更死。下面這張圖很清晰的描繪出Intel P6家族的電源管理演進,也象徵著Intel的x86處理器如何一步一步的踏入行動運算的世界。

照片中提到了AutoHalt Power Down State、BCLK Running、Snoops / Interrupts Recognized,包含了圖、線、字形、組織、圖

Intel在Prescott核心的Xeon “Nocona” 補強了DBS (Demand-Based Swiching),更能充分發揮ACPI的潛能。同時期的AMD CnQ (Cool'n'Quiet, PowerNow!的桌機版名稱),也是基於相同原理的技術。這個3.6GHz的Xeon執行Red Hat Enterprise 4的範例,應該能讓各位科科瞬間茅塞頓開,一次搞清楚ACPI是怎麼一回事。

照片中提到了Intel Demand-Based Switching、with Enhanced Intel SpeedStep、PO CO,包含了施溫克萊斯、線、組織、字形、產品

但在ACPI之外,硬體層面的溫度控管機制也同樣重要。有點電腦資歷的讀者請回想一下,某些知名硬體網站曾經播過的著名場景:拿掉初代Pentium 4的散熱器時,執行中的遊戲畫面會瞬間降格,散熱器放回去後,又恢復正常的速度,這就是Clock Throttling (時脈阻塞) 的作用,由初代Thermal Monitor (TM1) 塞一堆Stop Clock (STPCLK#) 訊號,但這並不會降低倍頻和電壓,實際作用並不會比塞入NOP指令,讓處理器大多數ALU單元休息一下好到哪裡去。

也因此,Intel在90nm製程的Prescott追加了以下項目:

  • Thermal Monitor 2 (TM2):可實際調控倍頻與電壓。
  • Tcontrol及Tambient參數:可針對處理器內的熱量感應器 (一般放在最熱的位置,如浮點運算器和ALU的中間) 的回報溫度,過熱時就自動降低運作效能。處理器封裝邊緣的另一個熱量感測器,則用來控制風扇轉速。
  • PROCHOT (Processor Hot) 腳位改為雙向訊號:有別於過去由主機板通知處理器過熱、必須降溫,當處理器過熱時,可反過來告知主機板、讓主機板從外部調降時脈,提供處理器以外的系統層級保護,尤其可避免主機板上的供電散熱零件,因過熱導致損壞。

為何筆者會刻意強調溫控的重要性,因為這剛好是同期AMD產品缺乏的特色。究竟有多麼重要?筆者任職於某週刊期間,就曾經在測試產品時,不小心沒裝好散熱器,燒了價值999美元的Athlon 64 FX-57,還讓公司賠了這筆錢。每當回顧這段往事,至今仍讓筆者科科地笑。

講完省電,接著就是「超頻」了,各位科科請不要忘記ACPI喔。科科。