1. 程式人生 > >【計算機基礎知識】計算機硬體基礎知識

【計算機基礎知識】計算機硬體基礎知識

寫在前面:我關於計算機硬體的總結不多,其實計算機硬體的基礎知識是很重要的,真實工作中雖然沒有直接用到(軟體開發人員),但瞭解計算機硬體知識,能讓你對軟體的思考不僅僅停留在表面,還能很快的看出一些問題的癥結所在。以後此總結會繼續更新並增加新的內容。

一:PC機電源各組輸出電壓作用

名詞解釋:
AXT:Advanced Technology Extended的縮寫,譯為ATX或者ATX主機板標準。
AXT是一種主機板規格,由因特爾公司在1995年制定。

+12V: 為PC機中的硬碟、光碟機、軟碟機的主軸電機和尋道電機提供電源,併為插槽提供工作電壓作為串列埠裝置等電路邏輯訊號電平。+12V的電壓輸出不正常時,會造成硬碟、光碟機、軟碟機的讀盤效能不穩定。當電壓偏低時,表現為光碟機挑盤嚴重,硬碟的邏輯壞道增加,經常出現壞道,系統容易宕機,無法正常使用。偏高時,光碟機的轉速過高,容易出現失控現象,較容易出現炸盤現象,硬碟表現為失速,飛轉。目前,如果+12V供電短缺直接影響PCI-E顯示卡效能,並且影響到CPU,直接造成宕機。

-12V:為串列埠提供邏輯判斷電平,需要電流不大,一般在1A一下,即使電壓偏差過大,也不會造成故障,因為邏輯電平的0電平從-3V到-15V,有很寬的範圍。

+5V:提供給CPU和PCI、AGP、ISA等積體電路的工作電壓,是電腦中主要的工作電源。目前,CPU都使用了+12V和+5V的混合供電。對於它的要求已經沒有以前的那麼高。只是在最新的IntelATX 12V 2.2版本加強了+5V的供電能力,加強雙核CPU的供電。它的電源質量的好壞直接關係著計算機的系統穩定性。現在的主機板都是從3.3V 取電,經主機板處理驅動CPU,記憶體及PCI裝置。

+3.3V:在以前的AT電源上並沒有這一路輸出,這是ATX電源專門設定的,為記憶體提供電源。該電壓要求嚴格,輸出穩定,紋波係數要小,輸出電流大,要20安培以上。一些中等檔次的主機板為了安全全都採用大功率場管控制記憶體的電源供應。不過也會因為記憶體插反而把這個管子燒燬。使用+2.5V DDR記憶體和+18V DDR2記憶體的平臺上,主機板上都安裝了電壓變換電路。

二:作業系統啟動解釋

此處只講冷啟動(Cold Boot/Power On Self Test Activities)
       (1).通電後8284時序發生器開始工作


     (2)匯流排產生正常訊號


     (3)cpu的復位引腳被觸發,cpu復位


     (4)DS,ES,SS初始值為0(CPU處於真實模式下)


     (5)CS:IP初始值為FFFF:0000(該地址為BIOS的ROM POST的程式碼)


     (6)跳轉到CS:IP指向的地址,開始執行開機自檢
下面cpu開始取第一條指令(執行post,開機自檢)
     下面是BIOS內固化程式的執行過程


     (7)interrupts are disabled  關中斷


     (8)設定cpu標誌位,用讀寫讀來測試cpu暫存器


     (9)checksum test of ROM BIOS  檢測ROM BIOS的校驗和


     (10)initialize DMA(verify/init 8237 timer,begin DMA RAM refresh)
     初始化DMA(校驗,初始化8237時鐘控制器,開始DMA記憶體重新整理)


     (11)儲存復位標誌,然後對記憶體的前32K位元組進行讀寫測試


     (12)初始化8259可程式設計中斷控制器,設定好8個主要的BIOS中斷向量(INT 10h-17H) 


     (13)determine and set configuration information
      檢測並設定好CMOS配置資訊 


     (14) initialize/test CRT controller & test video memory (unless 1234h found in reset word) 
     初始化/測試CRT控制器,測試視訊記憶體(除非在復位字的位置找到1234h) 


     (15)test ~8259~ Programmable Interrupt Controller 
     測試8259可程式設計中斷控制器 


     (16)test Programmable Interrupt Timer (~8253~) 
     測試8253可程式設計時鐘中斷控制器 


     (17)reset/enable keyboard, verify scan code (AAh), clear keyboard, check for stuck keys, setup interrupt vector lookup table 
     復位、啟用鍵盤,校驗掃描碼,清除鍵盤緩衝區,檢查是否有卡住的鍵,設定中斷查詢表 


     (18)hardware interrupt vectors are set 
     設定硬體中斷向量


     (19)test for expansion box, test additional RAM
      測試擴充套件裝置,測試擴充記憶體


     (20)read/write memory above 32K (unless 1234h found in reset word) 
     讀寫測試32K位元組以上的記憶體(除非在復位字的位置找到1234h) 


     (21)addresses C800:0 through F400:0 are scanned in 2Kb blocks in search of valid ROM. If found, a far call to byte 3 of the ROM is executed. 
     以2K位元組大小的塊為單位,從c800:0到f400:0掃描,查詢有效對映的ROM。找到後,對ROM的第3個位元組進行遠端呼叫。 


     (22)test ROM cassette BASIC (checksum test) 

     檢測ROM BASIC(校驗和測試,現在的BIOS已取消ROM BASIC了……) 
     (23) test for installed diskette drives & ~FDC~ recalibration & seek 
     檢測安裝了的硬碟驅動器、軟盤控制器。


     在這裡尋找一個啟動裝置,這些裝置包括Floppy Disk(A:),或者Hard Disk(C:),還可以包括CD-ROM Driver或者其它裝置。
    (24) test printer and RS-232 ports. store printer port addresses at 400h and RS-232 port addresses at 408h. store printer time-out values at 478h and Serial time-out values at 47Ch.


     檢測印表機口和RS-232串列埠。把列印口地址儲存在記憶體的400h,串列埠地址儲存在408h。印表機超時值儲存在478h,串列埠超時值儲存在47Ch。 
     (25) NMI interrupts are enabled 
     啟用NMI中斷 


     (26)perform ~INT 19~ (bootstrap loader), pass control to boot record or cassette BASIC if no bootable disk found 
     執行INT 19h(引導裝載程式),把控制權轉交給載入程式
 
當找到響應的啟動裝置之後,BIOS將會查詢Boot資訊時能後續開始OS的啟動過程。如果它找到了一個Hard Disk,它將會查詢一個位於Cylinder 0, Head 0, Sector 1的Master Boot Record(硬碟的第一個扇區),如果它找到的是Floppy Disk,它也會讀區軟盤的第一個扇區。 如果找不到任何啟動裝置,系統將會顯示一條錯誤資訊,然後凍結系統。如果找到了響應的啟動裝置,BIOS會將讀到的扇區放在記憶體7C00h的位置,並跳轉到那裡執行它。從此以後,就有硬體啟動階段進入了OS啟動階段。

     (27)~WARM BOOT~ procedure is now executed
開始執行熱啟動

到這裡基本的硬體啟動和初始化都已經完成了,剩下的就是OS的bootloader工作了。