小華的部落格: A20 Gate v.s A20 Mask

搜尋此網誌

星期一, 1月 21, 2008

A20 Gate v.s A20 Mask

前面文章中有提到A20的一些相關資訊,這邊我就畫一張圖來描述清楚一些概念。

對於圖中我們要區分的是A20 Gate與A20 Mask這兩種不同名詞分別所代表的意義為何。

以下是我自己畫的圖:



這邊描述幾個相關的硬體介面電路所代表的意義: 上圖中可以看到有一個A20 Gate (OR 邏輯匣),他分別有兩支source pin,分別連接到南僑與KBC,且分別由Port 92h與KBC控制狀態,另外還有一支輸出pin連接到CPU的A20 Mask接腳。

A20M # 的由來: The Intel 80486 added a special pin named A20M#, which when asserted low forces bit 20 of the physical address to be zero for all on-chip cache or external memory accesses. 看的出來從80486後就改成CPU自己搞....XD

A20 Gate: 一個可以用軟體控制的邏輯匣(AND/OR)...以前A20 gate 輸出腳是接到A20位址線(AND匣,其中一支src pin是接到KBC),後來改接到如上圖的 CPU A20M# 後變成OR匣 (這邊我不確定是否正確,因為我來不及參與過去^^)

A20 Gate 只針對A20有影響,對於其他的A21~A31都沒影響。

補充資料:

我曾經看過某個EC Datasheet,裡面有提到有關Port 92h的相關敘述,由於我並不是EC Engineer ,所以只能想像一下可能的實體電路圖:


這張圖裡面的重點在於EC本身也支援Port 92h功能,也就是說可以設定南橋把Port 92h cycle往EC送(選擇使用EC的Port 92h,此時南橋的Port 92h就失去功效),而EC內有一些組態暫存器,其中有一個是用來控制是否要開啟Port 92h功能,簡單說就是你可以選擇要使用ICH/EC 所提供的Port 92h功能,而使用EC的Port 92h功能時你就必須去設定ICH組態暫存器以及把EC內的Port92_EN_bit 打開。

如果你選擇EC內的Port 92h功能時,從圖中可以看見EC內部也有一個A20 Gate,而他的Source pin是跟KBC電路連接在一起,所以控制的方式會如同我前面畫的那張圖ㄧ樣的控制方式。

這部分補充資料是我自己想像所畫出來的圖,實際的電路圖還是要EC Engineer才能夠回答,所以僅供大家參考一下。

Reference

維基百科

4 則留言:

newcome 提到...

Harrison, cpu端A20M#这个pin的状态power on或者reset时候的default状态是什么?CPU刚一上电的时候这个A20#是否会影响CPU的取指?如果A20M# default 是active,那么是不是上电时候CPU没法正确去0fffffff0h处取得第一条指令啊,因为address bit 20会受A20M#影响而为0啊?我对这边一直比较疑惑,希望Harrison能帮忙解答,多谢!

Harrison 提到...

不同的SB可能會不同,而我知道的是:

1.CPU Reset時 = 看你的A20 Gate設定
2.在power on = High
3.S1 = High
4.S3 = 沒訊號
5.S4/S5 = 沒訊號

希望對你有幫助!

匿名 提到...

A20 Mask的問題應該發生在從80286開始..當CPU address line expand to 24 bit, but the CPU couldn't do the wraparound...所以需要把A20 disable for 8086 program..

匿名 提到...

"2.在power on = High"
这个是由什么决定的呢?CPU硬件决定的吗?
那么什么时候A20会变成High?