2011年6月22日 星期三

剖析CPU溫度監控技術

引言 迄今為止還沒有一種cpu散熱係統能保證永不失效。失去了散熱係統保護傘的“芯”,往往會在幾秒鍾內永遠停止“跳動”。值得慶幸的是,聰明的工程師們開發出有效的CPU溫度監控、保護技術。以特殊而敏銳的“嗅覺”隨時監測CPU的溫度變化,並提供必要的保護措施,使CPU免受高溫下的滅頂之災。在我們看來,探索這項技術如同開始一段神秘而有趣的旅程,何不與我們同行? CPU功耗和溫度隨運行速度的加快而不斷增大,現已成為一個不折不扣的“燙手山芋”。如何使CPU安全運行,提高係統的可靠性,防止因過熱而產生的死機、藍屏、反複重啟動甚至CPU燒毀,不僅是CPU所麵臨的困境,也是留給主板設計者的一個重要課題。為此,Intel率先提出了溫度監控器(Thermal Monitor)的概念,通過對CPU進行溫度控製和過熱保護,使穩定性和安全性大大增加。 &n bsp; 但是,由於電腦愛好者和普通用戶對CPU溫度監控係統了解不多,而且介紹這方麵知識的中文資料也難以獲得,遇到相關問題時會感到不知所措,所以有必要將 CPU溫度監控技術係統地介紹給大家。 一、溫度測量:從表麵深入到核心 建立CPU溫度監控係統,首先要選擇一種合適的溫度測量器件。能夠測量溫度的器件有很多種,如熱敏電阻、熱電偶和半導體溫度傳感器等。電腦中最早使用熱敏電阻作為測溫元件,CPU插座下豎立的球狀或帶狀的小元件,就是熱敏電阻(如圖1)。 圖1 CPU插槽下的熱敏電阻 熱敏電阻(Thermal Resistor ,簡稱Thermistor)體積小、價格低,使用方便,但用於檢測CPU溫度時存在著先天不足: 1.熱敏電阻是接觸式測溫元件,如果熱敏電阻與CPU接觸不夠緊密,CPU的熱量不能有效地傳送到,所測量溫度會有很大誤差。有些主板上采用SMD貼片熱敏電阻去測量CPU溫度,其測量誤差比直立式熱敏電阻誤差更大,因為這種貼片元件很難緊密接觸到CPU。 2.CPU的核心(die)發出熱量由芯片封裝向外部散熱,CPU的表麵溫度和核心溫度之間約有15℃~30℃的溫差,同時因芯片封裝形式不同,及環境溫度的不同而難以確定。至今還沒有一種技術能夠把熱敏電阻埋進芯片內部去,導致現在熱敏電阻隻能測量CPU的表麵溫度,而無法測量核心溫度。 總之,熱敏電阻不僅測量精度難以保證,更重要的是無法檢測到熱源的真實溫度。 由於熱敏電阻先天不足帶來了一個十分嚴重的問題∶表麵溫度不能及時反映CPU核心溫度變化,用專業術語說就是存在一個時間滯後的問題。因為核心溫度變化之後要經過一段時間才能傳送到CPU表麵。圖2反映了采用核心測溫方式下保護電路起作用的情況,當核心溫度達到CPU極限溫度T2時,控製電路及時切斷 CPU的供電,否則隻需幾秒鍾時間便會到達燒毀溫度T3。相比之下,表麵溫度反應十分遲鈍,其升溫速度遠不及核心溫度,當核心溫度發生急劇變化時,表麵溫度隻有“小幅上揚”。Pentium 4和Athlon XP等最新的CPU,其核心溫度變化速度達30~50℃/s,核心溫度的變化速度越快,測量溫度的延遲誤差也越大。在這種背景之下,如果再以表麵溫度作為控製目標,保護電路尚未做出反應,CPU可能已經命歸黃泉了。 圖2 表麵溫度的時間滯後特性 為了解決熱敏電阻無法測量C PU核心真實溫度的問題,Intel在Pentium Ⅱ和Celeroncpu中植入了熱敏二極管(Thermal Diode,或簡稱作Thermodiode)直接測量CPU核心溫度,開創了半導體測溫技術的先河。此後的Pentium Ⅲ和Pentium 4芯片中都植入了熱敏二極管,AMD在Athlon和DuronCPU中也植入了熱敏二極管。現在許多主板都在監控芯片內設置有熱敏二極管,用於檢測芯片所在位置的環境溫度。 (小知識∶如何知道BIOS或測試軟件顯示的CPU溫度是表麵溫度還是核心溫度?) 就目前來看,無論使用Intel還是AMD的CPU,已很少使用熱敏電阻測量CPU表麵溫度了,所以BIOS與檢測軟件所顯示的CPU溫度都是指CPU的核心溫度。而在Pentium Ⅱ以前,CPU溫度通常是指表麵溫度;Pentium Ⅱ及以後的CPU內都集成有熱敏二極管,所測量溫度就是核心溫度。不過,在過渡期內許多主板上仍在CPU插座下麵保留了熱敏電阻,這樣就同時能檢測到兩個不同的CPU溫度值,通常BIOS中顯示的是CPU的外部溫度,而檢測軟件所測試的是核心溫度。 熱敏二極管又叫熱敏PN結(Thermal PN junction),基於矽基PN結正向電壓和溫度的關係,其測溫範圍在-55℃~+150℃之間。與熱敏電阻一樣,熱敏二極管屬於變阻器件,其等效電阻值是由其工作溫度所決定。 二、溫度監控:從單純顯示到溫度監控 在熱敏電阻為主要測溫手段時期,測得的CPU表麵溫度經放大器將微弱信號放大後經A/D轉換,將模擬信號轉換成數字信號後再通過數據線發送給BIOS芯片(如圖3),數據進入BIOS芯片後,BIOS或監控軟件就能在屏幕上顯示了。 圖3 溫度信號處理電路 溫度顯示係統是一種被動的體係,無法對溫度進行調節。一旦測得CPU溫度超出設定溫度,電腦可以發出聲光報警,以提醒電腦用戶進行人為幹預。這種係統用於目前發熱量大的CPU基本上沒有安全可言。如果散熱係統發生問題後,沒等用戶反應過來,CPU就已經燒毀了。因此,Intel提出了溫度監控的概念,讓係統具有自我調控能力,一旦CPU溫度超出所設定的極限溫度,係統將通過降低供電電壓、降低芯片工作頻率和加強冷卻等手段進行主動降溫,甚至自動關機,以確保CPU安全。 溫度監控技術有兩個鮮明的特點∶一是cpu內置熱敏二極管直接測量核心溫度,二是主板上設置監控芯片(如圖4)。Intel首先在Pentium Ⅱ及CeleronCPU中植入熱敏二極管,並公開了具有溫度監控技術的主板設計指南,這一舉措得到主板製造商的積極響應,各具特色的所謂的“智能主板” 如雨後春筍,一時精彩紛呈。一些有實力的主板製造商還自行開發監控芯片(如MSI的CoreCell等),溫度監控技術在短短幾年內便有了很大進步,不斷完善溫度監控功能。 ; 圖4 各種硬件監控芯片 實際監控係統所采取的主動降溫措施中,哪種方法更有實際意義呢?下麵我們進行一個簡短的分析。 芯片的功耗(發熱量)由靜態功耗和動態功耗兩部分組成(如圖5),靜態功耗是因為漏電流引起的。由P=V2/R可知,在芯片等效電阻R不變的情況下,功耗 P與電壓V的2次方成正比,降低供電電壓可以極大地降低靜態功耗。所以這些年來芯片工作電壓從5V降到3.3V,甚至降到目前的1V以下。我們當然希望這個數值進一步降低,但如果沒有k值更高的柵極材料,就無法保證在低電壓下完成晶體管開啟和關閉動作。所以,降低電壓的手段畢竟還是有限的。而且由於CPU 內集成的晶體管數量的按摩爾定律逐年增加,眾多晶體管並聯後使得等效電阻值不斷減少,集成電路內層與層之間的絕緣層變薄也使得層間泄漏電流增加,所以 CPU的靜態功耗一直趨於上升態勢。 圖5 芯片工藝進步 泄漏功耗增加 芯片的動態功耗P = CV2f,其中C表示電路負載大小,V表示供電電壓,f為工作頻率。可見f與芯片的動態功耗成正比,頻率愈高則消耗的功率也愈高。降低CPU的時鍾頻率雖然是降低動態功耗的有效手段,但是,電腦用戶總是希望程序能夠執行得更快,通過降低頻率來降溫的手段是難以被用戶所接受的。 既然降低電壓和頻率的降溫方法都有很多現實困難,所以利用風扇帶走熱量就成了一種最簡便可行的方法。近幾年來,CPU風扇的尺寸越來越大、轉速越來越高,使得排氣量越來越大,這在一定程度上緩解了CPU溫度高居不下的問題。但是風扇扇葉尺寸過大、轉速過高,又帶來了噪音問題,而且環境溫度過高也會影響散熱效果,所以又必須增加機箱風扇,使得噪音問題進一步加劇。 為了降低噪音和節省能耗,在CPU溫度不太高的時候讓風扇保持低速運轉,在不得已的情況下才提高轉速,就成了一個被大家普遍認可的溫度控製方案。因此,大多數溫度監控係統實際上就是一個“溫度-轉速控製係統”,很多溫度監控芯片也是針對這種需要而設計的。 三、第一代溫度監控係統,並不可靠 cpu 溫度監控係統根據控製電路所處的位置,可分為外部控製型和內部控製型兩種基本結構。外部控製型監控係統,現在被稱為第一代溫度監控技術,它有三種基本存在形式∶一種是采用獨立的控製芯片,如WINBOND的W83627HF、ITE的IT8705、IT8712等,這些芯片除了處理溫度信號,同時還能處理電壓和轉速信號(如圖6);第二種形式是在BIOS芯片中集成了溫度控製功能;第三種形式是南橋芯片中集成溫度控製功能。在現行的主板中,三種形式同時存在,如果主板說明書中沒有特別說明,我們一時難以判斷監控硬件的準確位置。   圖6 第一代熱量監控係統框圖 圖7是一個以MIC284為核心CPU溫度監控電路,該電路隻能控製CPU風扇的轉速,但它可以將溫度信號通過SMBus端口傳送給BIOS芯片,以實現更多控製功能。 圖7 一個實際的監控電路 小知識∶什麼是SMBus? SMBus是System Management Bus(係統管理總線)的縮寫,是1995年由Intel提出的。SMBus隻有兩根信號線:雙向數據線和時鍾信號線。PCI插槽上也給SMBus預留了兩個引腳(A40為SMBus 時鍾線,A41為SMBus 數據線),以便於PCI接口卡與主板設備之間交換信息。 SMBus的數據傳輸率為100kbps,雖然速度較慢,卻以其結構簡潔造價低廉的特點,成為業界普遍歡迎的接口標準。Windows中顯示的各種設備的製造商名稱和型號等信息,都是通過SMBus總線收集的。主板監控係統中傳送各種傳感器的測量結果,以及BIOS向監控芯片發送命令,也是利用SMBus 實現的。 監控芯片通常是可編程的ASIC微控製器,應用軟件經BIOS將控製命令和數據經接口電路發送給監控芯片,修改其控製參數,一些監控軟件正是通過這種途徑來顯示和調整CPU電壓和風扇轉速的。 監控芯片是溫度監控係統的核心,其質量優劣對控製性能有很大的影響。但由於監控芯片種類繁多,在功能和性能上有很大差異,給使用和鑒別帶來一定困難。 首先,各種監控芯片在控製功能上有很大差異(譬如某個芯片可以控製兩個風扇,多數則隻能控製一個風扇),通常引腳數越多,功能越強。 其次,即便功能相同的芯片,性能上也會有差別,其中一個重要的區別在數據位的不同(譬如MAX6682的分辨率是10位,TC1024為9 位,FMS2701為8位),位數少的芯片輸出的數據精度自然也就降低了(8位芯片溫度轉換誤差為±3℃)。另一個性能差別在采 第一代cpu溫度監控技術建立在依靠外援的基礎上,當CPU過熱而超過極限溫度時,由係統向CPU發出HLT命令,讓係統暫停。因為熱量可能導致係統不穩定,如果電腦死機或程序進入死循環,就會失去監控作用,也就無法保護CPU了。同時,由於構成監控係統的元器件較多,戰線拉得很長,導致反應速度慢,無法及時跟蹤CPU溫度變化。而現在的CPU不僅核心溫度高,而且升溫速度快(最高可達50℃/s),一旦災難來臨必有“遠水不解近渴”之憂患。 四、第二代溫度監控技術,Pentium 4燒不死的秘密 為了彌補第一代溫度監控技術的缺陷,提高監控能力,Intel開發了第2代溫度監控技術。 第二代溫度監控係統的一個突出特點是在CPU內部集成了溫度控製電路(Thermal Control Circuit,TCC),由CPU自身執行溫度控製功能,同時,CPU內設置了兩個相互獨立的熱敏二極管,D1是本地熱敏二極管,所測信號提供給 TCC,D2則為遠端熱敏二極管,其測量結果用於實現主板控製功能及顯示核心溫度,如圖8。 圖8 第2代溫度監控係統框圖 我們先看看TCC是如何發揮作用的。TCC定義了兩種工作狀態:激活態和非激活態。TCC的狀態與PROCHOT#信號的電平高低相對應,PROCHOT#為低電平時,TCC為激活態,否則處於非激活態。當CPU核心溫度達到警戒溫度(Warning Temperature)時,溫度檢測電路將PROCHOT#信號置為低電平,從而激活TCC。TCC激活後,采取“抑製任務周期”(Throttle duty Cycle)的方式(如圖9),使CPU有效頻率下降,從而達到降低功耗的目的。當CPU的溫度降低後(低於警戒溫度1℃以上),TCC回到非激活態,CPU恢複到“標稱頻率”。可見,TCC實質上是一個由CPU溫度控製的頻率調節器。 圖9 TCC激活時,任務周期減少 如果發生災難性冷卻失敗的情況,使CPU溫度超出極限溫度(thermal Trip),TCC將設THERMTRIP#信號為低電平,BIOS芯片檢測到這一變化後,直接關閉CPU時鍾信號,並通過PWM控製器封鎖VRM向 CPU供電,直到溫度降到極限溫度以下,RESET#信號有效,THERMTRIP#才會重新變為高電平,係統才能繼續工作。否則THERMTRIP#總為低電平,係統就停留在暫停狀態。“當CPU離開風扇的時候”,Pentium 4CPU之所以能夠安然無恙,答案就在這裏。 樣速率上,如果采樣速率低(例如FMS2701的采樣速率為1s),必然增加信號延遲,無法及時跟蹤CPU溫度的變化。 小知識∶警戒溫度與極限溫度有什麼不同? cpu警戒溫度(warning temperature)和極限溫度(thermal trip)都是指核心溫度,但它們所代表的意義有所不同。警戒溫度是能夠保證CPU穩定運行的溫度;極限溫度也叫最高核心溫度(Maximum die temperature)或關機溫度(Shutdown temperature),是防止CPU免於燒毀的溫度。 各款CPU的警戒溫度和極限溫度值是製造商根據CPU的製造工藝和封裝形式及封裝材料確定的,並在技術白皮書中給出。為防止用戶自行設定而帶來危險,Intel已將Pentium 4CPU的警戒溫度和極限溫度寫入TCC內的ROM單元中,用戶無法修改它們。 現在有不少主板的BIOS中也可以設置警戒溫度和關機溫度,不過可選的數值都比較保守,例如警戒溫度最大值為70℃、關機溫度為85℃,這是遠低於TCC 內設定值的。 兼顧性能和可靠性是第2代溫度監控技術的優秀之處。由公式P = CV2f(其中C是等效電容容量;V是工作電壓)可知,頻率f與能耗P之間是一種線性關係,降低頻率是減少發熱量的有效途徑。這種通過降低有效頻率實現降溫的措施,比之以前那種關斷時鍾信號的做法顯然要聰明一些,避免了因強行關閉CPU,而導致數據丟失的情況。 Pentium 4CPU中的PROCHOT#引腳還有另外兩個實用的功能。其中的一個功能是向主板發出報警信號——PROCHOT#引腳為低電平時,說明CPU核心溫度超過了警戒溫度,此時CPU工作在較低的頻率上。如果超出警戒溫度(電腦用戶利用工具軟件可以獲得這個信息),應及時檢查散熱器安裝是否妥當,風扇轉速是否正常。 PROCHOT#引腳的另一個功能是可以保護主板上的其他元件。PROCHOT#引腳采用雙工設計——信號既可以從這根信號線出去,也能進得來。主板設計者可利用這一特性為供電模塊提供保護,當供電模塊的溫度超出警戒溫度時,監控電路輸出一個低電平到PROCHOT#引腳以激活TCC,通過降低CPU功耗來達到保護供電模塊的目的。 可見,Pentium 4CPU不僅能自保平安,還能對供電電路提供保護,細微之處體現出設計者的良苦用心。同時,將TCC集成到CPU內不僅對自身更加安全,也簡化了主板設計,降低了主板製造成本。可以說,第2代溫度監控技術是一個給CPU製造商與下遊主板廠商帶來雙贏的技術。 小知識∶如何設置BIOS中的“Processor speed throttling”? Pentium 4主板的BIOS中通常有“Processor speed throttling ”之類的選擇項,用於選擇超警戒溫度後CPU任務周期(duty cycle)占全部周期的比例,在CPU頻率不變的情況下,這個比例越大說明CPU的工作效率越高。其中有“Automatic”和“On demand” 兩種選擇,“Automatic(自動)”表示任務周期的占空比為50%,也就是說比正常頻率低一半;“On demand(按要求)”下麵有12.5%、25%、…、87.5%等多種選擇,選擇的數值越小,則任務周期的比例越小,降頻幅度也越大。 五、溫度控製,僅靠降頻是不夠的 以降低頻率為手段來保障CPU安全,是第2代溫度監控技術的主要思想。但是這種技術也存在明顯的缺陷:當溫度超過警戒溫度時,雖然可以勉強運行,但係統整體性能卻隨著CPU頻率的下調而降低到一個很低的水平。假如一個3.8GHz的CPU隻能長期工作在2GHz的速度上,這等於讓用戶花錢買了奔馳,卻隻能當奧拓使用。如果真是這樣的話,第二代溫度監控技術就算不上成熟的技術,而隻不過是個苟且小計。 在係統性能不受損失的前提下保證CPU安全穩定運行,這才是我們希望看到的結果。事實上,影響CPU溫度的因素,除了頻率外,還有CPU供電質量和散熱效率。所以,Pentium 4溫度監控係統采取了全麵的監控措施,把頻率、電壓和散熱三個控製參數視為保障CPU安全運行的三駕馬車,如圖10。 點擊看原圖 圖10 Pentium 4cpu溫度監控方案 在供電方麵,單純采用多相供電結合大電容濾波的傳 統方法已難以滿足Pentium 4(Prescott)CPU的要求,為此,Intel製定了新的電壓調節標準VRD10,將VID(電壓識別碼)從VRM9的5位升級到6位,使電壓調整精度更高。VRD10還首次公開了Dynamic VID(動態電壓識別碼)技術,可根據CPU負荷變化隨時調節供電電壓,見縫插針地降低功耗。此外,Dynamic VID技術還能限製電流突變,避免CPU偶然燒毀的可能。有關Pentium 4CPU的最新供電規範,請參閱本刊2004年第13期“全麵掌握Prescott主板最新供電技術”一文。 在散熱方麵,Intel在Pentium 4 processor Thermal and Mechanical Design Guidelines(Pentium 4CPU熱量和構造設計指南)中要求,CPU的散熱器必須具有足夠強的散熱能力,以便及時將CPU所產生的熱量帶走。同時要求風扇能夠輸出轉速信號,以實現對風扇的監控,防止因風扇停轉而導致CPU過熱的情況發生。由於CPU所產生的熱量因工作負荷變化而有很大變化,因此也要求風扇轉速按需要自動調節,以降低不必要的能源消耗和噪音汙染。 小知識∶如何判斷風扇是否具有測速功能? 有些電腦BIOS中顯示風扇轉速為0,而實際上風扇卻在正常旋轉,通常是因為風扇沒有測速功能。風扇是否具有測速功能,可以從風扇連線的數目來區別,具有測速功能的風扇至少有三根線,通常紅色線為+12V,黑色線為地線,黃色線或白色線就是測速信號線。如果還有第四根線——一根藍色的信號線,那是用於變頻調速的脈寬調製信號PWM,如圖11。 圖11 CPU風扇插頭引腳定義 下麵以ADT7436監控芯片為核心的Pentium 4CPU溫度監控係統實例進行解剖,如圖12。先看看風扇的情況,圖中TACH是風扇電機速度信號,監控電路使用PWM(Pulse Width Modulation,脈寬調製)控製風扇電機的轉速,從PWM信號可以看出三隻風扇都是可以調速的。 圖12 溫度監控係統實例 北橋芯片是cpu與BIOS芯片進行數據交換的橋梁,監控芯片與北橋芯片三個信號中,SDA是SMBus雙向數據線,它既可以將電源電壓、CPU核心溫度、風扇轉速和環境溫度等全部監控信息發送給BIOS實現進行顯示,也可以由BIOS將來自係統的命令發送給監控芯片(前麵已經介紹過,監控芯片是可編程的ASIC,所以完全有能力處理這些來自係統的命令),實現控製參數的修改或調節功能;SCL是來自係統的時鍾信號,這是監控芯片與北橋芯片以及監控芯片與CPU之間進行同步通信的必要條件;SMBALART#在此定義為監 控芯片通過SMBus接口發往BIOS芯片的報警(ALART)信號。 監控芯片與CPU之間通過4個引腳進行聯絡:CPU將電壓識別碼VID發送給監控芯片,由它可算出CPU理論電壓值(來自電源模塊的Vcore才是CPU 的實際電壓值);D2+和D2-是CPU核心溫度信號(“D”在此表示Diode,而不是Data),當CPU溫度超過警戒溫度時,CPU通過 PROCHOT#信號通知監控芯片,而當電源模塊電流超標時,監控芯片將PROCHOT#信號置為低電平,激活CPU內的TCC,對CPU和供電模塊進行降溫。這些控製功能完全體現了第2代溫度監控技術的特點。 六、現有技術並不完善 CPU溫度監控係統在電腦中雖然毫不起眼,人們很少去注意它,但它對整個係統來卻起著十分重要的作用,像一位藏在後麵的天使,默默地守護著我們的電腦。從1993年Intel推出第一款奔騰CPU以來,十年之間主頻提升了數十倍,期間CPU技術的發展已不再是簡單的頻率提升,係統設計者必須在性能、耗電量、噪音和熱量四個因素之間進行綜合平衡。正因為如此,溫度監控技術經曆了從無到有、逐漸成熟的發展過程,從一個側麵見證了CPU的發展史。據說即將推出的Pentium 4 6XX係列CPU將集成Enhanced SpeedStep技術,CPU自身溫度監控功能得到強化。 我們也應看到,現有的監控技術水平還遠沒有達到理想的狀態,在溫度測量精度、監控係統的及時性和降溫技術的有效性等方麵還有待提高,電壓、頻率和散熱三個子係統目前處於各自為戰的狀態。未來的溫度監控技術必然朝著更精確、更有效、更智能的方向發展。

沒有留言:

張貼留言