頁以下R4000文檔81: http://www.scribd.com/doc/53181649/70/EntryLo0-2-and-EntryLo1-3-RegistersMIPS R4000:爲什麼每個EntryLo寄存器都有一個全局位?
顯示每個TLB項中一個全局位(這是有道理的)。如果在TLB條目中設置全局位,則在查找過程中將忽略ASID。
但是,在下一頁中,EntryHi寄存器具有保留(0)字段來代替TLB條目的全局位(如第82頁上的標題所述)。取而代之,有兩個全局位,每個EntryLo {0,1}寄存器中有一個位。 (包括「See MIPS Run」)表明,當使用TLBW指令編寫TLB條目時,如果EntryLo0(G)和EntryLo1(G)位不相同,「壞事情將會發生」。其他來源,例如linux-mips.org上的論壇帖子(http://www.linux-mips.org/archives/linux-mips/2003-04/msg00226.html)表明「換句話說,寫作只有EntryLo {0,1}寄存器對組中的一個G位的TLB條目將導致清除G位的TLB條目。「 (其本身不清楚究竟會發生什麼 - 「不好的事情」,或者其G位清晰的TLB條目)。
那麼兩個全局位的原因是什麼?遺留支持是否到位,還是我錯過了某些東西?
感謝您的回答,以及偉大的資源! – tj90241