一、基本概念
1、BIOS(基本輸入輸出系統)
系統BIOS
顯卡BIOS
2、內存地址
內存是編址的存儲單元,每一個8bit賦予一個地址,以便CPU訪問 。32MB的地址範圍用十六進制數表示就是0~1FFFFFFH,其中0~FFFFFH的低端1MB內存非常特殊,因爲最初的8086處理器能夠訪問的內存最大隻有1MB,這1MB的低端640KB被稱爲基本內存,而A0000H~BFFFFH要保留給顯示卡的顯存使用,C0000H~FFFFFH則被保留給BIOS使用,其中系統BIOS一般佔用了最後的64KB或更多一點的空間,顯卡BIOS一般在C0000H~C7FFFH處,IDE控制器的BIOS在C8000H~CBFFFH處。
二、BIOS啓動順序
1、電源就開始向主板和其它設備供電,主板上的控制芯片組會向CPU發出並保持一個RESET(重置)信號,讓CPU內部自動恢復到初始狀態,但CPU在此刻不會馬上執行指令。當芯片組檢測到電源已經開始穩定供電了(當然從不穩定到穩定的過程只是一瞬間的事情),它便撤去RESET信號(如果是手工按下計算機面板上的Reset按鈕來重啓機器,那麼鬆開該按鈕時芯片組就會撤去RESET信號),CPU馬上就從地址FFFF0H處開始執行指令。
2、系統BIOS的啓動代碼首先要做的事情就是進行POST(Power-On Self Test,加電後自檢),POST的主要任務是檢測系統中一些關鍵設備是否存在和能否正常工作,例如內存和顯卡等設備。由於POST是最早進行的檢測過程,此時顯卡還沒有初始化,如果系統BIOS在進行POST的過程中發現了一些致命錯誤,例如沒有找到內存或者內存有問題(此時只會檢查640K常規內存),那麼系統BIOS就會直接控制喇叭發聲來報告錯誤,聲音的長短和次數代表了錯誤的類型。在正常情況下,POST過程進行得非常快,我們幾乎無法感覺到它的存在,POST結束之後就會調用其它代碼來進行更完整的硬件檢測。
3、接下來系統BIOS將查找顯卡的BIOS,前面說過,存放顯卡BIOS的ROM芯片的起始地址通常設在C0000H處,系統BIOS在這個地方找到顯卡BIOS之後就調用它的初始化代碼,由顯卡BIOS來初始化顯卡,此時多數顯卡都會在屏幕上顯示出一些初始化信息,介紹生產廠商、圖形芯片類型等內容,不過這個畫面幾乎是一閃而過。系統BIOS接着會查找其它設備的BIOS程序,找到之後同樣要調用這些BIOS內部的初始化代碼來初始化相關的設備。
4、查找完所有其它設備的BIOS之後,系統BIOS將顯示出它自己的啓動畫面,其中包括有系統BIOS的類型、序列號和版本號等內容。
5、接着系統BIOS將檢測和顯示CPU的類型和工作頻率,然後開始測試所有的RAM,並同時在屏幕上顯示內存測試的進度,我們可以在CMOS設置中自行決定使用簡單耗時少或者詳細耗時多的測試方式。
6、內存測試通過之後,系統BIOS將開始檢測系統中安裝的一些標準硬件設備,包括硬盤、CD-ROM、串口、並口、軟驅等設備,另外絕大多數較新版本的系統BIOS在這一過程中還要自動檢測和設置內存的定時參數、硬盤參數和訪問模式等。
7、標準設備檢測完畢後,系統BIOS內部的支持即插即用的代碼將開始檢測和配置系統中安裝的即插即用設備,每找到一個設備之後,系統BIOS都會在屏幕上顯示出設備的名稱和型號等信息,同時爲該設備分配中斷、DMA通道和I/O端口等資源。
8、到這一步爲止,所有硬件都已經檢測配置完畢了,多數系統BIOS會重新清屏並在屏幕上方顯示出一個表格,其中概略地列出了系統中安裝的各種標準硬件設備,以及它們使用的資源和一些相關工作參數。
9、接下來系統BIOS將更新ESCD
10、ESCD更新完畢後,系統BIOS的啓動代碼將進行它的最後一項工作,即根據用戶指定的啓動順序從軟盤、硬盤或光驅啓動
三、計算機內部運算基礎
1、計算機內部計算在處理器、存儲器和IO之間完成
a.基出知識
忙等:由CPU守戶,CPU處於忙等狀態,準備好一個取一個。
中斷:由IO控制器通知CPU。
DMA:由程序代替CPU執行存取,可以理解爲虛擬CPU
由程序員編寫程序通過外部IO自身的控制器通知CPU將數據(存/取)於內存的哪一個地址空間。CPU從內存中取出需要進行運算的數據放置寄存器內再取第二個數據進行計算,並將計算結果回存到內存中。
2、處理器
早期批處理:
job1$$$$$$$$$$$$$$$$$job2$$$$$$$$$$$$job3$$$$$$$$jobn
處理器在處理程序當遇到$符,此爲第一個程序執行完畢接着執行的是第二個程序
CTSS:分時系統
CTSS的方式爲執行的程序分配時間,時間到了強制執行第二個程序以此循環, CPU完成分時。
MMU:內存保護機器
使運行在CPU中的程序互不受影響,第一個程序不能垮界訪問第二個程序的內存地址,由虛擬空間MMU代替程序訪問真實存儲器地址空間,當某程序要訪問內存中某段地址時,CPU就劃分一塊虛擬空間代替程序去完成尋址操作,由此完成內存保護及內存護擬化。