32位操作系統(tǒng)內(nèi)存4G地址空間的局限
在使用32位操作系統(tǒng)時(shí),我們會(huì)遇到一個(gè)內(nèi)存4GB地址空間的限制。要理解這個(gè)限制,首先我們需要了解兩個(gè)概念:物理內(nèi)存和地址空間。 物理內(nèi)存包括主板上的內(nèi)存條(RAM)、主板BIOS芯片的ROM、顯卡上
在使用32位操作系統(tǒng)時(shí),我們會(huì)遇到一個(gè)內(nèi)存4GB地址空間的限制。要理解這個(gè)限制,首先我們需要了解兩個(gè)概念:物理內(nèi)存和地址空間。
物理內(nèi)存包括主板上的內(nèi)存條(RAM)、主板BIOS芯片的ROM、顯卡上的顯存(RAM)和BIOS(ROM),以及各種PCI、PCI-E設(shè)備上的RAM和ROM。而地址空間是對(duì)物理內(nèi)存編碼的范圍,就像日常生活中給每家每戶分配一個(gè)地址門牌號(hào)一樣。
從Pentium Pro處理器開始,CPU的地址總線已經(jīng)升級(jí)到36位,尋址能力達(dá)到64GB。但是,由于芯片組地址總線的限制,很多芯片組只有32條地址線,只能提供4GB的地址空間,即最高可以安裝4GB的內(nèi)存條。
4GB地址空間的分配
盡管可以安裝4GB內(nèi)存條,但實(shí)際上無法全部分配給內(nèi)存。因?yàn)閺?GB空間的頂端地址開始向下要有400MB-1GB的地址空間要分配給主板上的其他物理內(nèi)存。
所以,4GB的地址空間可以分為兩大部分:0MB到物理內(nèi)存頂端的地址分配給主板上安裝的物理內(nèi)存,4GB到物理內(nèi)存頂端的地址分配給BIOS和PCI/PCI-E設(shè)備的存儲(chǔ)器。
由于這些存儲(chǔ)器主要用于系統(tǒng)的輸入和輸出,所以被稱為“MMIO”(Memory-Mapped I/O-I/O存儲(chǔ)器映射)區(qū)域。當(dāng)系統(tǒng)安裝3GB以下的內(nèi)存時(shí),MMIO區(qū)域不會(huì)與物理內(nèi)存條的地址空間相重疊,操作系統(tǒng)可以訪問幾乎全部的物理內(nèi)存。但是,當(dāng)系統(tǒng)安裝上4GB內(nèi)存時(shí),問題就出現(xiàn)了。
位于4GB下面的部分地址空間要優(yōu)先分配給MMIO,而內(nèi)存條上對(duì)應(yīng)的這段區(qū)間就得不到編址,所以操作系統(tǒng)無法使用。因此,建議使用這些芯片組主板的用戶不要安裝4GB的內(nèi)存。
支持大于4GB內(nèi)存的芯片組和“內(nèi)存重映射”技術(shù)
為了突破4GB內(nèi)存限制,一些芯片組已經(jīng)升級(jí)到支持64GB地址空間,并推出了一系列可以突破4GB內(nèi)存限制的芯片組。同時(shí),還引入了“內(nèi)存重映射”技術(shù)。
“內(nèi)存重映射”技術(shù)的原理是將被MMIO占用的地址區(qū)段重新映射到內(nèi)存條頂端地址以上(例如4GB以上)的地址空間,從而回收給物理內(nèi)存使用。
但是,要使用“內(nèi)存重映射”技術(shù),BIOS必須支持,并且需要在設(shè)置選單中啟用“Memory Re-Mapping”功能。
操作系統(tǒng)的支持
目前常用的桌面操作系統(tǒng)都是32位的,只能支持4GB的地址空間。如果安裝4GB以上的內(nèi)存,就需要使用支持大于4GB地址空間的32位操作系統(tǒng)或64位操作系統(tǒng)。
因此,解決4GB內(nèi)存限制的問題還需要操作系統(tǒng)的支持。
小結(jié)
總結(jié)起來,由于IA32架構(gòu)的規(guī)定,4GB內(nèi)存的一部分地址空間被MMIO占用,無法分配給內(nèi)存條。為了解決這個(gè)問題,可以選擇支持64GB地址空間的芯片組和啟用內(nèi)存重映射功能的BIOS。同時(shí),也需要安裝支持大于4GB地址空間的操作系統(tǒng)。