隨著半導體技術的持續進步及使用者不間斷的需求,微處理器中單位面積所能容納的元件數大幅增加,且微處理器的時脈也不斷地向上提昇,以提高其運算速度。而在微處理器運算速度提高的同時,若是與微處理器連接的周邊在資料傳輸的速度上無法配合,將成為系統的瓶頸。如此,將使得微處理器的閒置時間(Idle time)增加,而造成微處理器運算資源的浪費。因此,為了降低微處理器與周邊晶片間資料傳輸的瓶頸問題,微處理器周邊的晶片組及快取記憶體,甚至主記憶體的時脈亦必須不斷地向上提昇。
微處理器及周邊的時脈不斷提昇的結果,固然使得電腦系統的整體性能較以往大幅增加,但也使得電腦系統的散熱問題較以往更為嚴重。當電腦系統的溫度過高時,將使其無法在額定的溫度範圍內工作,而造成電腦系統的不穩定或當機的現象發生,如此將大幅降低電腦系統的可靠度(Reliability)。此外,過高的溫度也會造成所謂電子遷移(Electro-migration)現象的產生,電子遷移現象的發生會造成半導體晶片上線路的損害,進而縮短電腦系統的壽命。
上述電腦系統溫度過高所產生的效應,可能在任何包含高速微處理機的系統中發生。所以不論是伺服器、個人電腦,或是即將興起的資訊家電,都必須考量到散熱的問題。尤其是以性能導向的伺服器級電腦以及設計日益精巧的個人電腦,更是需要注意散熱問題。
散熱問題的解決
任何包含高速微處理器的系統,都需要考慮到散熱的問題。本作品是以桌上型個人電腦作為解決散熱問題的對象,故在此以個人電腦為主要的討論重點。以往個人電腦的散熱考量,大多著重於降低中央處理器及電源供應器內部的溫度,使其能夠在額定的溫度下工作;但是隨著個人電腦速度的提昇,先前所述的問題已經隨之發生。因此在現在的個人電腦中,需要進行散熱考量的除了中央處理器外,可能還包括系統晶片組(Chipset),圖形處理器(Graphics Processing Unit),主記憶體甚至硬式磁碟機等週邊裝置。
所以在現今的個人電腦中,散熱的問題已經不若以往那樣單純。在許多系統中,需要安裝多個風扇以解決散熱問題。然而,若無法依照發熱源的溫度對這些風扇達到有效的管理,可能使得熱量累積在機殼內,造成機殼內的溫度持續上升。對於此種問題,使用高出風量的機殼風扇是必須的,但此種風扇帶來大量的噪音,將造成使用者相當程度的不適感。
現在對於個人電腦的散熱問題,已經有了一些簡單的解決方案。目前有廠商提供監督系統狀態的晶片供個人電腦製造商使用,然而這些晶片在目前的應用上,皆是被中央處理器所控制。如此的做法可以達到監視系統溫度的目的,但卻需要個人電腦的介入,消耗個人電腦的運算資源,且於實際使用時亦需要安裝驅動程式方可與使用者達到互動的動作。最後,這些晶片在實際被使用時並沒有與各主要發熱源接觸,且無法動態的調整各系統風扇的強弱。
基於上述的分析,我們可以知道,對於現在的個人電腦系統,需要有一套完整的溫度監控方案以監視各主要發熱源之溫度並藉以控制個人電腦中各風扇的強弱,以達到有效的散熱,同時降低個人電腦中因風扇而造成不必要的噪音。
作品架構
為了提供個人電腦一個完整的溫度監控方案,所以設計一套由個人電腦供應電源,但獨立於個人電腦系統之外的溫度監控系統。本系統的方塊圖如(圖一),在(圖一)中,四顆國家半導體的LM35溫度感測器直接與個人電腦中的主要發熱源接觸,以量測發熱源之溫度;LM35所量測到的值經過國家半導體的資料擷取晶片(LM12454)量化後,送至89C51處理;89C51會將溫度感測器所感測的值顯示於LCD模組,並與控制按鍵及EEPROM連接,讓使用者得以設定每個發熱源的臨界溫度,以及將臨界溫度儲存於EEPROM中。而最重要的是,89C51會持續的將各發熱源的溫度與儲存於EEPROM中的臨界溫度相比較,以決定目前每個發熱源的溫度狀態(normal/warm/hot),進而控制各風扇的運轉強弱。在決定溫度狀態時,將溫度上升時的狀態及下降時的狀態設定不同的比較標準,如此可以避免風扇在不同的溫度狀態間發生震盪的現象。比較的規則如下:
《公式一》 |
《圖一 電腦溫度監控系統方塊圖》 |
系統在得到每個發熱源的溫度狀態後,隨即將目前的狀況反映到風扇的運轉及LCD模組的顯示上。在本系統中,溫度感應器(SENSOR)的溫度狀態與風扇(FAN)強弱的對應關係如下:
《公式二》 |
其中S1及S4為電腦中發熱最高之元件,如中央處理器及系統晶片組;S2及S3為電腦中發熱次高之元件,如顯示晶片及硬式磁碟機。如此一來,89C51就可以依照所得到的狀態,以脈波寬度調變(Pulse Width Modulation;PWM)的方式控制風扇的強弱。當風扇得到的溫度狀態為normal時,風扇以全速的3/8運轉;當風扇得到的溫度狀況為warm時,風扇以全速的5/8運轉;當風扇得到的溫度狀況為hot時,風扇以全速運轉。
實際應用
當本系統接上電源後,LCD模組將在顯示約2秒的歡迎畫面後開始運作,而在此2秒中,各風扇也將全速運轉,以避免風扇無法啟動的情形發生。當系統運作時,LCD模組的第一行會顯示目前系統的整體狀態(normal/warm/hot),而LCD模組的第二行會由左至右顯示目前四顆溫度感測器(SENSOR1~SENSOR4)所感測到發熱源的溫度。使用者可以針對每個發熱源設定其個別之臨界溫度,以控制系統中風扇的轉速,而達到完整監控系統溫度的目的。
使用者在系統運作時按下Mode鍵即可進入溫度設定模式。此時,LCD模組的第一行會出現閃爍的箭頭以指示目前正在針對那一個發熱源進行設定,而按Left/Right可切換欲設定的發熱源,按Up/Down可設定臨界溫度。當設定完成後,按下Mode鍵即可返回運作畫面並將設定值儲存至EEPROM,而89C51也立即依照新的設定值進行監控的動作。此外,當使用者於設定模式時,89C51依然會依照未儲存的設定值進行監控的動作,不會因為使用者進入設定模式造成而停止監控的現象發生。
作品效能
本作品的主要目標是發展一套可以確實量測發熱源溫度、獨立於個人電腦之外,且提供良好使用者介面的電腦溫度監控系統。此外,於前文曾經討論到,現在的個人電腦中,必需使用高出風量的風扇,方可滿足散熱的需求,然而此種風扇帶來大量的噪音,造成使用者產生相當的不適感。因此,降低風扇所產生的噪音亦為本作作品的目標之一。本作品在約21度的室溫下,使用以下的電腦進行測試:
《公式三》 |
而SENSOR1以導熱膠固定於與中央處理器的散熱片中央;SENSOR2以導熱膠固定於主機板晶片組中央;SENSOR3與SENSOR4亦分別以導熱膠固定於硬式磁碟機之外殼及顯示卡上的顯示晶片中央。未使用本系統控制風扇時,皆令所有風扇全速運轉。且在使用監控系統的狀況下,各量測點的臨界溫度設定為未使用監控系統時各感測點所感測到的最高溫度減2.5℃。量測的結果如(表一)所示。
在表一中可以發現,當個人電腦進行大量的數值運算時,不論是否使用監控系統控制風扇強弱,各量測點的溫度皆相當接近,故可以有效的將個人電腦的溫度維持在安全的範圍內,這是因為此時風扇為全速運轉的緣故。而當進行單純的文書處理等工作時,由於監控系統會主動降低個人電腦中各風扇的轉速,故使用監控系統的溫度較未使用監控系統來的高出少許,但此時電腦因風扇所發出的噪音大幅降低,成功的減少了使用者因風扇而造成的不適感,且此時各發熱點的溫度依然在相當安全的工作範圍。
表一 電腦溫度量測的結果
|
未使用監控系統 |
使用監控系統 |
數值計算 |
文書處理 |
數值計算 |
文書處理 |
SENSOR1 |
41.6℃ |
28.8℃ |
40.5℃ |
28.8℃ |
SENSOR2 |
36.5℃ |
30.0℃ |
36.1℃ |
32.9℃ |
SENSOR3 |
33.6℃ |
33.4℃ |
33.4℃ |
31.8℃ |
SENSOR4 |
38.9℃ |
36.5℃ |
38.6℃ |
36.5℃ |
在製作這件作品時,不論是在電路設計或是程式撰寫方面,都曾經遇到問題,其中比較主要的問題是在設計電路時,主要的目標是希望在預定的功能範圍內,盡量使用89C51的輸出入埠,以減少其他元件的使用,而達到簡化電路的目的。但由於89C51的輸出入埠是以8位元為一組,且每組輸出入埠都有其特性,故如此的設計使得程式的撰寫複雜化,且需要考慮在相同輸出入埠上的不同元件所可能發生信號干擾的問題。例如,在本系統中89C51的Port1上是同時連接LCD模組及控制按鍵,當撰寫處理控制按鍵的程式時,必須將整個Port一次讀入後加以處理,而不是將每個控制按鍵分別讀入後處理,如此才不會對LCD模組部分的信號造成干擾。
在撰寫此種直接控制硬體的程式時,必須要對系統中所有元件的時序(Timing)規格完全了解。這原本應當是設計數位電路時的基本常識,但由於一時大意,忽略了LCD模組運作速度較慢,而造成程式無法成功的將LCD模組初始化(Initialize)的情況發生。
由於LM12454是一顆包含了類比與數位信號,亦即混合模式(Mixed-Mode)的晶片,故在設計此晶片週邊的類比電路時需要將電源部分以及參考電壓部分的高低頻雜訊盡可能的清除及保持穩定的電壓,以避免感測到的溫度有不正確的現象發生。
高速的電腦系統如果缺乏良好的散熱機制,將導致電腦系統的可靠性降低及元件壽命縮短。因此,需要有一套完整的方案以解決現代電腦系統的散熱問題。本作品成功的解決了電腦系統的散熱問題,並降低了風扇運轉所造成的大量噪音。同時,我要感謝陪伴我製作此作品的家人以及指導我的師長們,更要感謝美國國家半導體提供了這個難得的機會,讓我們這些學子們能夠利用國家半導體優異的元件,發揮想像的空間並製成完整的成品。(作者就讀於國立台灣科技大學電機工程博士班一年級)