超能課堂(273):電腦開機時都干了些什么
如果你們的主板上有Debug LED等和簡易Debug燈的話,在開機的時候可以觀察一下,在顯示器有東西顯示之前這些Debug燈都會在一直跳動,如果卡在某個地方不動的話,恭喜你,有東西出問題了。
傳統(tǒng)的AMI BIOS自檢,圖片來源:wikipedia
電腦開機的必備步驟:上電自檢
你看到的這個過程其實就是電腦的上電自檢Power On Self Test,簡稱POST,這是計算機接通電源后系統(tǒng)進行的一個自我檢查的例行程序,其實許多電子設(shè)備都有這個自檢過程,當然我們這里只討論PC的,POST自檢是設(shè)備預引導序列的一部分,自檢成功的話結(jié)果會顯示在屏幕上,當自檢完成后BIOS就會進入下一個步驟,從硬盤、光盤、移動設(shè)備或網(wǎng)絡(luò)驅(qū)動器上尋找操作系統(tǒng)進行啟動,PC控制權(quán)會交給操作系統(tǒng)。
上電自檢是有BIOS所執(zhí)行的,當然有些外圍設(shè)備自帶BIOS的會讓他們自己檢查,比如顯卡和SCSI設(shè)備,這時你就會看到自檢過程中多了一兩個畫面。
現(xiàn)在主板的自檢界面已經(jīng)相當簡化
上電自檢期間主板BIOS的主要基本職責包括:
驗證CPU寄存器
驗證BIOS自身的完整性
驗證一些基本組件,例如DMA、計時器、中斷控制器
初始化、調(diào)整和驗證系統(tǒng)內(nèi)存
初始化BIOS
把控制器交給其他擴展卡的BIOS
識別與選擇可用于引導的設(shè)備
而現(xiàn)在設(shè)備的主板BIOS上,POST自檢還包括:
初始化芯片組
查找、初始化和分類所有系統(tǒng)總線與設(shè)備
提供用于系統(tǒng)配置的用戶界面
構(gòu)建目標操作系統(tǒng)所需要的系統(tǒng)環(huán)境
上電自檢的過程
當你按下電源鍵后,系統(tǒng)就會啟動上電自檢程序,在此期間系統(tǒng)的控制權(quán)在BIOS上。剛開機的時候電壓還不穩(wěn)定,主板就會通過芯片組向CPU發(fā)出一個RESET信號,此時CPU會初始化,同時會等待電源發(fā)出的POWER GOOD信號,這段時間其實只有短暫的瞬間,當電壓穩(wěn)定后就會撤去RESET信號。
隨后CPU就會從地址FFFF0H處執(zhí)行指令,而這個地址是在主板BIOS的范圍內(nèi)的,無論是什么哪種BIOS放在這里的都是一條跳轉(zhuǎn)指令,就是跳轉(zhuǎn)到BIOS的啟動代碼,而這個啟動代碼要做的第一個事情就是執(zhí)行上電自檢,檢查PC的硬件設(shè)備工作狀態(tài)是否正常。
上電自檢的大致過程為:Power——CPU——ROM——BIOS——System Clock——DMA——64KB RAM——IRQ——顯卡等非關(guān)鍵設(shè)備,I/O口、軟硬盤驅(qū)動器、鼠標鍵盤、即插即用設(shè)備以及CMOS設(shè)置等都排在顯卡的后面,通常顯卡通過測試后屏幕就會亮起,并且在屏幕上顯示各種信息。
主板上的DeBug LED
這個過程是逐一進行的,每個設(shè)備都有一個POST Code開機自我檢測代碼,在對某個設(shè)備進行檢查時就會把這個自我檢測代碼寫入診斷端口,檢測通過后就會送入另一個設(shè)備的代碼,如此重復。
如果某個設(shè)備檢測沒有通過,它的POST Code就會在檢測端口保留下來,而檢測程序也會終止,并會發(fā)出警報,看到這里你應(yīng)該已經(jīng)明白DeBug卡上面的兩個數(shù)字是怎么來的了,如果你有接蜂鳴器的話還能聽到警報聲,通過DeBug卡或者蜂鳴器的聲音就能比較快速的找到問題的所在位置,并進行修理。
其實在早期的電腦上,上電自檢其實是會對所有設(shè)備進行全面的測試的,包括完整的內(nèi)存測試。這其實是繼承了IBM在大型機上的設(shè)計,不過隨著PC逐漸發(fā)展為一種個人的消費級設(shè)備,大多數(shù)產(chǎn)品都放棄了這種高可靠性功能,內(nèi)存的奇偶校驗和全面檢測被放棄了,因為這一過程非常的長,而且隨著內(nèi)存容量的指數(shù)膨脹,這時間只會逐漸讓人無法接受。
最初的IBM PC最少內(nèi)存容量只有16KB,而通常的產(chǎn)品容量是在64到640KB之間,當時使用的8088 CPU頻率只有4.77MHz,完成上電自檢大概耗時5秒到一分半鐘,而且無法跳過內(nèi)存掃描,從IBM XT開始上電自檢期間會顯示內(nèi)存計數(shù)器,而不是之前的空白屏幕。在上世紀80年代人們開始關(guān)注啟動時間,光內(nèi)存自檢就要30到60秒其實是很讓人不爽的,所以從哪個時候開始,兼容機的BIOS里面就多了個設(shè)置,運行用戶通過按一個按鍵跳過內(nèi)存自檢。
而現(xiàn)在的電腦基本都不會進行內(nèi)存自檢了,現(xiàn)在的內(nèi)存比以前可靠多,除非BIOS里面有著設(shè)置而且你還把它打開了。此外現(xiàn)在的BIOS在執(zhí)行上電自檢前會確定其執(zhí)行原因,如果是冷啟動的話就可能執(zhí)行全部操作,但如果是休眠喚醒或者開啟了快速啟動的話,就會跳過標準的上電自檢程序,直接從預設(shè)的系統(tǒng)設(shè)備列表中加載設(shè)備即可。
為什么不同主板的自檢時間有差異
用過HEDT平臺的朋友應(yīng)該都有體驗,就是X99/X299這類主板啟動速度明顯是要比普通Z字頭或者B字頭主板要慢的,原因嘛,其實就是HEDT平臺的可擴展能力更強,上面的東西更多所以需要自檢的時間更長罷了,其實如果把主板的RAID功能開啟,或者安裝RAID卡,或安裝某些PCI-E SSD的話,自檢速度會更慢。
此外AMD平臺啟動要比Intel平臺慢這個估計也有許多人發(fā)現(xiàn)了,其實在AMD主板上BIOS啟動前還有個叫AGESA的東西,在AGESA 1.0.0.4之前開機自檢時間確實非常的長,這也導致了大家對AMD平臺啟動慢的印象,當然現(xiàn)在新版的啟動時間已經(jīng)大幅縮短,不比Intel平臺慢多少。
現(xiàn)在的平臺開機上電自檢時間已經(jīng)非常短,如果BIOS設(shè)置與上次啟動是一致的話自檢時間是非常快的,再加上現(xiàn)在基本上廠家都用開機Logo替換了自檢界面,不把這東西關(guān)掉的話根本看不到自檢報告畫面,這一過程已經(jīng)逐漸被大家忽略了它的存在,但它每次開機都在默默的運行。
當然如果你感覺到某次自檢特別慢,如果你沒加任何硬件的話,那多數(shù)是什么地方出問題了,比如莫名的超頻失敗CMOS重置,或者是什么地方松了導致開機卡住,這些時候就就會感覺到上電自檢的存在。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。