記憶體區段
维基百科,自由的百科全书
在Intel x86架構中,記憶體區段是在不改變16位元區段選擇子之下,可以使用單一索引暫存器所能夠定址的的記憶體範圍部份。在80286處理器(或80386和之後處理器的虛擬86模式)真實模式或保護模式,一個區段的大小是64 KB(使用16位元索引暫存器)。在32位元保護模式下,也就是在80386和後面系列的處理器中,一個區段是4 GB(由於32位元的索引暫存器)。
在16位元模式,要讓應用程式使用多個記憶體區段 (為了存取比任一64K區段還要大的記憶體)是相當複雜,但是被視為除了最小的工具(可以使用較少記憶體完成)外的一種必要罪惡。這個問題的根源 在於沒有適當的位址算術指令 適合做整個記憶體範圍的平面定址方式 來使用。因此平面定址方式可能以乘法的指令來完成,然而會導致較慢的程式執行速度。
在1990年末期,32位元作業系統的推出,以及更舒適的32位元平面記憶體模式導致幾乎消除了區段定址的使用。然而,使用平面記憶體模式也產生4 GB限制對於現今的使用也不足夠。區段允許作業系統限制每個行程虛擬定址空間,最大可利用到64 GB的系統記憶體,但這種勉強方式最終地回歸到區段,是進展到64位元處理器經常會引述的因素。
在Intel x86的真實模式下的區段架構會有所重疊,是一種不好的設計。
|
||||||||||||||||||||||||||||||