A20匯流排

A20匯流排,是x86體系的擴充電子線路之一。A20匯流排是專門用來轉換地址匯流排的第二十一位。

歷史

IBM設計IBM PC AT機器時,他們決定採用性能更好但是在實模式下並不完全兼容以前的Intel 8088Intel 8086系列的Intel 80286微處理器。以前的x86體系微處理器並沒有從A20到A23的匯流排。80286微處理器能夠尋址到16MB的系統內存。

在8088及8086下,任何使用x86內存分段方式嘗試訪問超過最大1MB的內存都會使得溢出的第二十一位無效化。 許多實模式程序利用這一點,使不改變微處理器的段暫存器而去訪問最開始的64KB內存成為一個通用的技巧。為了和這些程序保持兼容性,IBM自己在主板上去修復這個問題。在微處理器與系統匯流排間插入一個邏輯閘完成了這個修復。這個邏輯閘也因此被命名為A20匯流排。A20匯流排能被軟體關閉或打開,以此來阻止或允許地址匯流排收到A20傳來的信號。在引導系統時,BIOS先打開A20匯流排來統計和測試所有的系統內存。而當BIOS準備將計算機的控制權交給作業系統時會先將A20匯流排關閉。一開始,這個邏輯閘連接到Intel 8042的鍵盤控制器。控制它是相對較慢。

激活A20匯流排是啟動作業系統的步驟之一,通常在啟動程式將控制權交給內核之前完成[1]

  1. ^ A20 Line - OSDev Wiki. wiki.osdev.org. [2020-09-18]. (原始內容存檔於2020-09-16).