A20位址線到底有什麼用?

時間 2021-06-08 15:21:16

1樓:取名麻煩啊

IBM最初推出的微機中使用的CPU是Intel 8088,位址線只有20根,只能訪問1M的位址空間。而CPU定址時是按照段+偏移的方式來定址的,也就意味著能定址的最高位址為0xFFFF:0xFFFF,即0x10FFEF(0xFFFF0+0xFFFF)。

對於超出0x100000(1MB)的定址位址將預設地環繞到0x0FFEF,這就是所謂的位址迴繞或者位址環繞。當時有一些程式利用了這種位址環繞機制進行工作,可是不久以後IBM公司又引入了AT機,使用的是Intel 80286的CPU,具有24根位址線,最高可以定址16MB,並且有和8088一樣的實模式執行模式,因此無法在超出1MB的地方產生位址環繞。為了實現完全的相容性,IBM公司公司開發了乙個開關來開啟或禁止0x100000位址位,這個訊號開關就是A20,如果它為0,則位20及以上位址都會被清除,從而實現了相容性。

當我們從實模式進入保護模式的時候,需要能夠訪問和使用1MB以上的物理記憶體,就需要開啟A20位址線。

綜上,A20位址線就是用來實現向下相容位址環繞問題的。

2樓:MaWin2er

想起來linux在檢查A20開啟的時候會對比0x00000和0x100000的內容,如果相同就是未開啟。所以迴圈訪問應該是address mod 1M位址。

分割線只是linux核心初學者所以只能粗略的解釋一下:

開啟A20位址線之後,用來表示記憶體位址的位數變多了。沒記錯的話應該是開啟前20位,開啟後好像是24位。如果不開啟A20位址線記憶體定址最大只能找到1M,對於1M以上的位址訪問會變成對address mod 1M位址的訪問(這裡不太肯定,也可能是對0x0ffef的訪問,但是總之會迴圈)。

開啟後可以訪問到16M的位址。

原因記得是IBM AT機的相容性考慮。

3樓:

因為在 IBM AT 機推出之前一些程式的編寫利用了 8086/8088 的位址環繞機制,為了相容此類程式,IBM 引入了乙個開關來開啟或禁止 0x100000 位元位。由於在當時的 8042 鍵盤控制器上恰好有空閒的埠引腳,於是便使用了該引腳來控制這個位址位元位,該訊號就是 A20 線。

4樓:貟挺

大學時候學習組成原理老師好像講過,不過後來沒從事這個方向的工作,都忘了,去網上找了一篇文章,覺得挺靠譜,你可以參考一下。 http://

blog.sina.com.cn/s/blog

_5d66c2780100bp8n.html

5樓:和龍

應該是為了保證80286以後的處理器與8086/8088在實模式下的相容性..

在實模式下,8086/8088的最大訪問位址為FFFF:FFFF..由於其只有20條位址線..故實體地址為0FFEF..

而在80286以後的處理器中..由於有多於20的位址線..FFFF:FFFF實際上表示的是10FFEF..第20位址線正好為1..

為了解決這個高階位址訪問的不相容性..所以在80286+的實模式下..A20被置零來保證實際位址的一致性..

而在保護模式下..就沒有這個限制了..

一般來說..作業系統啟動時會自動開啟A20線進入保護模式的..而且就硬體層面來講..A20也是預設開啟的..

吸菸到底有什麼用?

Wind trace 給社會新增經濟,提高癌症的風險,給醫療機構帶來跟好的研究材料,減少人口壓力,基因遺傳下一代,二手菸傳播更廣,以後不需要吸氧氣只需要吸二手菸,省了氧氣 裡哈哈 第一 吸菸可以調節人的情緒。吸菸以排憂解難。人生坷坷絆絆,就難免會有困難產生。當遇事感到為難想辦法怎樣處理時,或有不愉快...

PRD文件到底有什麼用?

誰禿誰知道 原型設計的作用 溝通 因為是原型是需求和功能的具象化表達,所以原型可以輔助產品經理與領導 互動 UI和技術的溝通產品思路。雖然需求文件也是可以滿足溝通需求的,通過用例將互動寫到設計描述文件中,但是原型可以更詳細地解釋互動。測試 因為原型相較於UI稿來說修改更方便,所以原型能提高產品經理的...

文學到底有什麼用?

文學是安放人生意義的領域,只要人還會死亡,還會怕死,還會有情感,還會有至少乙個人捫心自問 人生有什麼意義?要堅持什麼?就會有文學交流的空間,因為文學劃定了人生意義的界限,丈量了人生意義的寬度,使許許多多無意義的 混亂而痛苦的人生得到了規整和啟迪,不再迷茫不知道怎麼辦。和許許多多的事物一樣,文學也不過...