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).