與P-State類似,T-State也是將CPU頻率降低來達到降低電量(以及降低熱量)的方法之一。
P-State跟T-State到底有什麼不一樣呢?
雖然都是降頻,但T-State跟P-State最早是分別由Intel和AMD提出。以技術上而言採取的方法也不一樣。簡單來說她們的差異如下圖所示:
就算同樣是把頻率降成原本的50%,但P-State是真的把頻率放慢成原本的50%,而T-State是把把一半的頻率切掉(Clock 0跟Clock 2都消失)。
當Intel發現P-State的方法更能夠省電並且有效降低晶片的發熱量,所以也把P-State的技術加入。到今天為止,Intel的CPU同時支援P-State跟T-State,而AMD的CPU只有支援P-State。
根據筆者經驗,T-State不在被使用在主要的省電功能(註1),而是被使用在ACPI Thermal Zone來降低溫度,詳細內容請參考ACPI Specification第11章Thermal Management。
基本上T-State的宣告跟C-State跟P-State分別有類似的地方:
1. FADT:
跟C-State類似,BIOS要支援T-State在FADT當中要宣告兩個值如下:
[068h 0104 1] Duty Cycle Offset : 01
[069h 0105 1] Duty Cycle Width : 00
作業系統要將CPU放入T-State中就依照以上兩個值寫入P_CNT + 0的位置。
在Power Management (2):CPU省電功能(一)有範例解釋如何解讀FADT,請讀者參考前篇文章以及ACPI Specification,這邊不再累述。
2. _TSS & _TPC in DSDT/SSDT
跟P-State類似,T-State也有對應的_TSS回報支援的T-State給OS(也跟C-State相同的有_TSS就忽略FADT的宣告),並且可以用_TPC修改支援的最高T-State,但是用
Notify(CPUx, 0x82)
來告訴OS是T-State的狀態需要改變。
在此不再累述詳細內容,請參考Power Management (2):CPU省電功能(二)並且對應ACPI Specification。
由於T-State最主要用在降低系統溫度,請期待以後討論Thermal Zone的文章。
硬體觸發
Throttling除了能夠用軟體觸發,也因為他可以把CPU的速度降低,CPU上也常有一根Pin腳讓外部的thermal sensnor或是micro controller能夠觸發throttling
硬體保護是最後一道防線,軟體的保護機制如果在測試階段沒有被100%測試(有時候不容易作到),又沒有設計硬體防線,當機器在市場流通的時候才需要re-call,造成的損失將會是用「億」為單位計算(某前公司發生過)。如果造成人命的損傷,身為一位工程師,你晚上睡得著嗎?
No comments:
Post a Comment