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