轉(zhuǎn)自:
http://www.eetop.cn/blog/html/64/64964-2377.html
早期的8086只有20根地址線,只能訪問(wèn)1M的地址空間。CPU尋址則按段+偏移的方式進(jìn)行。16位段+16位偏移的可能的范圍是0~0x10FFEF(即0xFFFF0+0xFFFF),即1M+65520字節(jié)的范圍。由于只有20根地址線,所以在對(duì)1M~1M+65520范圍進(jìn)行訪問(wèn)時(shí),會(huì)發(fā)生“地址回繞”的現(xiàn)象,就是說(shuō)實(shí)際會(huì)訪問(wèn)到0~65520的地方。據(jù)說(shuō)某個(gè)著名的/臭名昭著的軟件利用了這個(gè)特點(diǎn)。在80286,386等CPU上,它會(huì)失敗,因?yàn)檫@些CPU有多于20根的地址線,并不產(chǎn)生“地址回繞”現(xiàn)象。為了保持完全的兼容性,IBM決定在PC AT系統(tǒng)上加個(gè)邏輯,來(lái)模仿以上的回繞特征。他們的方法就是把A20和鍵盤(pán)控制器的一個(gè)輸出進(jìn)行AND,這樣來(lái)控制A20的打開(kāi)和關(guān)閉。一開(kāi)始時(shí)A20是被屏蔽的(總為0),直到系統(tǒng)軟件去打開(kāi)它。
A20地址線問(wèn)題
1981年8月,IBM公司最初推出的個(gè)人計(jì)算機(jī)IBM PC使用的CPU是Intel 8088。在該微機(jī)中地址線
只有20根(A0 – A19)。在當(dāng)時(shí)內(nèi)存RAM只有幾百KB或不到1MB時(shí),20根地址線已足夠用來(lái)尋址這些
內(nèi)存。其所能尋址的最高地址是0xffff:0xffff,也即0x10ffef。對(duì)于超出0x100000(1MB)的尋址地址將默認(rèn)
地環(huán)繞到0x0ffef。當(dāng)IBM公司于1985年引入AT機(jī)時(shí),使用的是Intel 80286 CPU,具有24根地址線,最
高可尋址16MB,并且有一個(gè)與8088完全兼容的實(shí)模式運(yùn)行方式。然而,在尋址值超過(guò)1MB時(shí)它卻不能
象8088那樣實(shí)現(xiàn)地址尋址的環(huán)繞。但是當(dāng)時(shí)已經(jīng)有一些程序是利用這種地址環(huán)繞機(jī)制進(jìn)行工作的。為了
實(shí)現(xiàn)完全的兼容性,IBM公司發(fā)明了使用一個(gè)開(kāi)關(guān)來(lái)開(kāi)啟或禁止0x100000地址比特位。由于在當(dāng)時(shí)的8042
鍵盤(pán)控制器上恰好有空閑的端口引腳(輸出端口P2,引腳P21),于是便使用了該引腳來(lái)作為與門(mén)控制這
個(gè)地址比特位。該信號(hào)即被稱為A20。如果它為零,則比特20及以上地址都被清除。從而實(shí)現(xiàn)了兼容性。
由于在機(jī)器啟動(dòng)時(shí),默認(rèn)條件下,A20地址線是禁止的,所以操作系統(tǒng)必須使用適當(dāng)?shù)姆椒▉?lái)開(kāi)啟它。
但是由于各種兼容機(jī)所使用的芯片集不同,要做到這一點(diǎn)卻是非常的麻煩。因此通常要在幾種控制方法中
選擇。
對(duì)A20信號(hào)線進(jìn)行控制的常用方法是通過(guò)設(shè)置鍵盤(pán)控制器的端口值。 有些操作系統(tǒng)將A20的開(kāi)啟和禁止作
為實(shí)模式與保護(hù)運(yùn)行模式之間進(jìn)行轉(zhuǎn)換的標(biāo)準(zhǔn)過(guò)程中的一部分。
由于鍵盤(pán)的控制器速度很慢,因此就不能使用鍵盤(pán)控制器對(duì)A20線來(lái)進(jìn)行操作。為此引進(jìn)了一個(gè)A20快
速門(mén)選項(xiàng)(Fast Gate A20),它使用I/O端口0x92來(lái)處理A20信號(hào)線,避免了使用慢速的鍵盤(pán)控制器操作方
式。對(duì)于不含鍵盤(pán)控制器的系統(tǒng)就只能使用0x92端口來(lái)控制,但是該端口也有可能被其它兼容微機(jī)上的
設(shè)備(如顯示芯片)所使用,從而造成系統(tǒng)錯(cuò)誤的操作。
還有一種方式是通過(guò)讀0xee端口來(lái)開(kāi)啟A20信號(hào)線,寫(xiě)該端口則會(huì)禁止A20信號(hào)線。
posted on 2008-10-07 17:51
楊彬彬 閱讀(575)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
操作系統(tǒng)