BIOS完全教程:基礎概念和工作原理
一、BIOS基本概念
??? BIOS(Basic Input / Output System)——基本輸入輸出系統,通常是固化在只讀儲存器(ROM)中,所以又稱為ROM-BIOS。它直接對計算機系統中的輸入輸出裝置進行裝置級、硬體級的控制,是連線軟體程式和硬體裝置之間的樞紐。ROM-BIOS是計算機系統中用來提供最低階、最直接的硬體控制的程式。計算機技術發展到今天,出現了各種各樣新技術,許多技術的軟體部分是藉助於BIOS來管理實現的。如PnP技術(Plug andPlay—即插即用技術),就是在BIOS中加上PnP模組實現的。又如熱插拔技術,也是由系統BIOS將熱插拔資訊傳送給BIOS中的配置管理程式,並由該程式進行重新配置(如:中斷、DMA通道等分配)。事實上熱插拔技術也屬於PnP技術。
二、BIOS的工作原理
講到BIOS的工作原理,我們先來介紹一下BIOS系統的兩類載體:EPROM和EEPROM的相關知識。EPROM——可擦除可程式設計只讀儲存器,從外觀上可以看見,在晶片的中央有一個透明的小視窗,紫外線光即是通過這個小視窗將晶片上儲存的資訊擦除掉的,因為在日光和熒光中都含有紫外線,因此,我們通常用一塊不透明的標籤將已儲存了資訊的EPROM晶片的紫外線視窗封住。當然,寫入EPROM晶片時,我們首先必須先用紫外線擦除器將EPROM中的資訊清除掉,使它變為空的晶片後才能進行寫操作,應該說明的是這裡“空晶片”的“空”並非我們通常意義上的“空白”,而是此時晶片內部變為全“1”資訊,因此,晶片的寫入原理實際上是將指定位置上的“1”改為“0”。到這裡,有的朋友一定想問:既然日光和熒光均含有紫外線,為什麼我們不讓EPROM晶片在這些光線下暴露一段時間來擦除呢?
要知道,完全擦除一塊EPROM中的內容,在日光下至少要一週,在室內熒光下至少要三年了!而且隨著晶片容量的增大,時間也得相應拉長。EEPROM是電可擦除可程式設計只讀儲存器。在平常情況下,EEPROM與EPROM一樣是隻讀的,需要寫入時,在指定的引腳加上一個高電壓即可寫入或擦除,而且其擦除的速度極快!通常EEPROM晶片又分為序列EEPROM和並行EEPROM兩種,序列EEPROM在讀寫時資料的輸入/輸出是通過2線、3線、4線或SPI匯流排等介面方式進行的,而並行EEPROM的資料輸入/輸出則是通過並行匯流排進行的。
另外還有一種EEPROM即是我們現在主機板上常見到的FLASH ROM——閃速儲存器,其讀寫速度更快,更可靠,而且可以用單電壓進行讀寫和程式設計,為行動式裝置的線上操作提供了極大的便利,也因此廣泛應用在計算機主機板上。
通常,486以及486檔次以下電腦的BIOS晶片基本上均是EPROM晶片,而586以及PⅡ、PⅢ檔次的BIOS晶片基本上均是EEPROM。另外我們也可以從BIOS晶片上的型號來識別:像27C010、27C512等以“27”打頭的晶片均是EPROM,而28C010、29C010、29C020、29C040等,均為EEPROM,其中28C010是128K×8,即1M位元並行EEPROM,29C010是128K×8(1M位元)、29C020是256K×8(2M位元)、29C040是512K×8(4M位元)的FLASH ROM。
序列EEPROM在計算機主機板上較少見,而提供這些晶片的廠家多為MX、WINBOND、ATMEL等廠家。應注意的是:不同廠家生產的晶片命名方式不同。以上介紹的晶片是以ATMEL公司的產品為例。
下面我們以當前最常見的AT29C020為例,介紹一下BIOS的工作原理和程式的燒錄過程。
AT29C020是ATMEL公司生產的256K×8的FLASH ROM晶片,採用單5V供電,由於AT29C020的容量為256K×8,所以需要18根地址線來定址,也即圖中A0~A17,而其輸出是8位並行輸出,需要8位雙向資料線,即圖中D0~D7,另外圖中還有幾個用於控制晶片工作狀態的引腳。“”引腳是控制晶片寫入的使能端,“”引腳是控制晶片輸出資料的使能端,這兩個引腳控制晶片在選中後的工作狀態,“”引腳為晶片的片選端。
當處理器需要對該晶片進行讀寫操作時,首先必須選中該晶片,即在“”端送出低電平,然後,再根據是讀指令還是寫指令,而將相應的“”引腳或”引腳拉至低電平,同時處理器要通過A0~A17地址線送出待讀取或寫入晶片指定的儲存單元的地址,AT29C020晶片就將該儲存單元中的資料讀出到資料線D0~D7上或者將資料線D0~D7上的資料寫入到指定的儲存單元中,從而就完成了一次讀或寫操作。
當上電後,計算機即從BIOS晶片中讀取出指令程式碼進行系統硬體的自檢(含BIOS程式完整性檢驗、RAM可讀寫性檢驗、進行CPU、DMA控制器等部件測試)。對PnP裝置進行檢測和確認,然後依次從各個PnP部件上讀出相應部件正常工作所需的系統資源資料等配置資訊。BIOS中的PnP模組試圖建立不衝突的資源分配表,使得所有的部件都能正常地工作。
配置完成之後,系統要將所有的配置資料即ESCD——Extended System Config Data寫入BIOS中,這就是為什麼我們在開機時看到主機啟動進入Windows前出現一系列檢測:配置記憶體、硬碟、光碟機、音效卡等,而後出現的“UPDATEESCD..SUCCESSED”等提示資訊。所有這些檢測完成後,BIOS將系統控制權移交給系統的引導模組,由它完成作業系統的裝入。
三、計算機主機板中的BIOS技術
第一代BIOS技術通常見於586以及現在的大部分440LX、440BX、i810等晶片組的主機板上,這些主機板通常只有一塊BIOS晶片,而且基本上均採用EEPROM晶片,因此在給予電腦愛好者提供便利的BIOS升級、提升主機板效能、充分發揮主機板潛力的大好機遇的同時,也給CIH之類的病毒造成了可乘之機。病毒通過程式指令給BIOS晶片加上程式設計電壓,然後向BIOS晶片寫入一大堆亂碼,從而達到破壞主機引導、癱瘓系統之目的。1999年的4月26日,想必許多人至今還刻骨銘心。
於是廠家集思廣益迅速推出了第二代雙BIOS技術,以技嘉科技推出的DUALBIOS技術最早也最為出名,其原理是在計算機主機板上安排了兩個BIOS晶片,一塊為Master BIOS,另一塊為Slave BIOS。兩塊BIOS中的內容完全一樣,Slave BIOS只是提供簡單的備份功能,每次系統啟動,Slave BIOS就會主動檢查Master BIOS的完整性,若發現主BIOS內容有損壞,立即用備份BIOS重寫主BIOS,一旦重寫失敗,則直接從備份BIOS啟動。
微星公司的SAFEBIOS技術原理也一樣,但其配備了一片容量為普通BIOS晶片容量兩倍的4MB Flash ROM作為BIOS晶片,平均劃分為兩個獨立的區域,並且這兩個區域的BIOS均可啟動系統。近來一些廠家又提出了更為先進實用的雙BIOS技術,像承啟科技提出TWIN BIOS技術,其與DUALBIOS技術所不同的是,TWIN BIOS技術中兩塊BIOS可以按完全不同配置進行配置,兩塊BIOS晶片地位完全對等,無主從之分,可以在開機時通過鍵盤按鍵選擇從哪一塊BIOS晶片上啟動,這樣大大地提高了另一片BIOS晶片的利用率,又能在一臺電腦上實現按不同系統環境進行不同系統配置的要求。
如可實現中文Windows與英文/日文Windows共存等,而不需用System Conmand等軟體來實現複雜的多重啟動來引導,從而使雙BIOS技術從單一的系統安全保護作用躍升為兼備獨立配置系統硬體裝置的強大功能。隨著科技的發展,可以預見不久的將來BIOS晶片的容量將會越來越大,提供給我們設定和監視系統的功能也將越來越大,當然也會越來越方便。