超能課堂(273):電腦開機時都幹了些什麼

如果你們的主板上有Debug LED等和簡易Debug燈的話,在開機的時候可以觀察一下,在顯示器有東西顯示之前這些Debug燈都會在一直跳動,如果卡在某個地方不動的話,恭喜你,有東西出問題了。

超能課堂(273):電腦開機時都幹了些什麼
傳統的AMI BIOS自檢,圖片來源:wikipedia

電腦開機的必備步驟:上電自檢

你看到的這個過程其實就是電腦的上電自檢Power On Self Test,簡稱POST,這是計算機接通電源後系統進行的一個自我檢查的例行程序,其實許多電子設備都有這個自檢過程,當然我們這里只討論PC的,POST自檢是設備預引導序列的一部分,自檢成功的話結果會顯示在螢幕上,當自檢完成後BIOS就會進入下一個步驟,從硬碟、光碟、移動設備或網絡驅動器上尋找作業系統進行啟動,PC控制權會交給作業系統。

上電自檢是有BIOS所執行的,當然有些外圍設備自帶BIOS的會讓他們自己檢查,比如顯卡和SCSI設備,這時你就會看到自檢過程中多了一兩個畫面。

超能課堂(273):電腦開機時都幹了些什麼
現在主板的自檢界面已經相當簡化

上電自檢期間主板BIOS的主要基本職責包括:

驗證CPU寄存器
驗證BIOS自身的完整性
驗證一些基本組件,例如DMA、計時器、中斷控制器
初始化、調整和驗證系統記憶體
初始化BIOS
把控制器交給其他擴展卡的BIOS
識別與選擇可用於引導的設備

而現在設備的主板BIOS上,POST自檢還包括:

初始化晶片組
查找、初始化和分類所有系統總線與設備
提供用於系統配置的用戶界面
構建目標作業系統所需要的系統環境

上電自檢的過程

當你按下電源鍵後,系統就會啟動上電自檢程序,在此期間系統的控制權在BIOS上。剛開機的時候電壓還不穩定,主板就會通過晶片組向CPU發出一個RESET信號,此時CPU會初始化,同時會等待電源發出的POWER GOOD信號,這段時間其實只有短暫的瞬間,當電壓穩定後就會撤去RESET信號。

隨後CPU就會從地址FFFF0H處執行指令,而這個地址是在主板BIOS的范圍內的,無論是什麼哪種BIOS放在這里的都是一條跳轉指令,就是跳轉到BIOS的啟動代碼,而這個啟動代碼要做的第一個事情就是執行上電自檢,檢查PC的硬體設備工作狀態是否正常。

上電自檢的大致過程為:Power——CPU——ROM——BIOS——System Clock——DMA——64KB RAM——IRQ——顯卡等非關鍵設備,I/O口、軟硬碟驅動器、滑鼠鍵盤、即插即用設備以及CMOS設置等都排在顯卡的後面,通常顯卡通過測試後螢幕就會亮起,並且在螢幕上顯示各種信息。

超能課堂(273):電腦開機時都幹了些什麼
主板上的DeBug LED

這個過程是逐一進行的,每個設備都有一個POST Code開機自我檢測代碼,在對某個設備進行檢查時就會把這個自我檢測代碼寫入診斷埠,檢測通過後就會送入另一個設備的代碼,如此重復。

如果某個設備檢測沒有通過,它的POST Code就會在檢測埠保留下來,而檢測程序也會終止,並會發出警報,看到這里你應該已經明白DeBug卡上面的兩個數字是怎麼來的了,如果你有接蜂鳴器的話還能聽到警報聲,通過DeBug卡或者蜂鳴器的聲音就能比較快速的找到問題的所在位置,並進行修理。

其實在早期的電腦上,上電自檢其實是會對所有設備進行全面的測試的,包括完整的記憶體測試。這其實是繼承了IBM在大型機上的設計,不過隨著PC逐漸發展為一種個人的消費級設備,大多數產品都放棄了這種高可靠性功能,記憶體的奇偶校驗和全面檢測被放棄了,因為這一過程非常的長,而且隨著記憶體容量的指數膨脹,這時間只會逐漸讓人無法接受。

最初的IBM PC最少記憶體容量只有16KB,而通常的產品容量是在64到640KB之間,當時使用的8088 CPU頻率只有4.77MHz,完成上電自檢大概耗時5秒到一分半鍾,而且無法跳過記憶體掃描,從IBM XT開始上電自檢期間會顯示記憶體計數器,而不是之前的空白螢幕。在上世紀80年代人們開始關注啟動時間,光記憶體自檢就要30到60秒其實是很讓人不爽的,所以從哪個時候開始,兼容機的BIOS里面就多了個設置,運行用戶通過按一個按鍵跳過記憶體自檢。

而現在的電腦基本都不會進行記憶體自檢了,現在的記憶體比以前可靠多,除非BIOS里面有著設置而且你還把它打開了。此外現在的BIOS在執行上電自檢前會確定其執行原因,如果是冷啟動的話就可能執行全部操作,但如果是休眠喚醒或者開啟了快速啟動的話,就會跳過標準的上電自檢程序,直接從預設的系統設備列表中加載設備即可。

為什麼不同主板的自檢時間有差異

用過HEDT平台的朋友應該都有體驗,就是X99/X299這類主板啟動速度明顯是要比普通Z字頭或者B字頭主板要慢的,原因嘛,其實就是HEDT平台的可擴展能力更強,上面的東西更多所以需要自檢的時間更長罷了,其實如果把主板的RAID功能開啟,或者安裝RAID卡,或安裝某些PCI-E SSD的話,自檢速度會更慢。

此外AMD平台啟動要比Intel平台慢這個估計也有許多人發現了,其實在AMD主板上BIOS啟動前還有個叫AGESA的東西,在AGESA 1.0.0.4之前開機自檢時間確實非常的長,這也導致了大家對AMD平台啟動慢的印象,當然現在新版的啟動時間已經大幅縮短,不比Intel平台慢多少。

現在的平台開機上電自檢時間已經非常短,如果BIOS設置與上次啟動是一致的話自檢時間是非常快的,再加上現在基本上廠家都用開機Logo替換了自檢界面,不把這東西關掉的話根本看不到自檢報告畫面,這一過程已經逐漸被大家忽略了它的存在,但它每次開機都在默默的運行。

當然如果你感覺到某次自檢特別慢,如果你沒加任何硬體的話,那多數是什麼地方出問題了,比如莫名的超頻失敗CMOS重置,或者是什麼地方鬆了導致開機卡住,這些時候就就會感覺到上電自檢的存在。

來源:超能網