當前位置: 華文問答 > 數碼

為什麽大多數32位元的Windows被設計成只能用4GB的記憶體?

2020-03-26數碼

設計成只用4G是常規操作。超過4G是黑科技,而黑科技存在相容性問題。

有的人拿【16位元DOS能使用640K記憶體】來說事,其實啊,這還真不是一回事。

因為電腦的字長分為【地址字長】跟【數據字長】兩種,前者是尋址空間,後者是數據空間。所對應的總線頻寬也就是地址線跟數據線。

16位元DOS的那個時代,數據線是16位元,地址線是 20位 20位地址線本來就能存取1M記憶體 。DOS使用640K記憶體完全在1M範圍內。

——要想存取1M以上的記憶體?有記憶的人應該知道,後來,32位元CPU的80386,提供了保護模式,切換到保護模式,才能存取1M以上的記憶體。才能突破20位地址線的限制。

然而Windows的早期時代,數據線是32位元,地址線是32位元,存取4G記憶體才是天經地義的。所以,並不是Windows限制到了4G,而是32位元系統本來就只應該能存取4G記憶體。

(補充更正:評論區有說地址線在1995年就擴充套件到了36位元,如果是這樣的話那麽確實應該支持到4G以上的記憶體,所以在36位元時代確實存在其它因素阻止了記憶體突破32G。以上段落供參考)

32位元使用超過4G記憶體,確實存在這樣的黑科技,例如PAE技術,PAE技術使得32位元系統能辨識出4G以上的記憶體空間,然而在實用中它有很多限制,也存在相容性問題。已知的幾個問題有,作業系統辨識4G以上但每個單行程只能用到4G以內的記憶體,存取實體記憶體地址大於4G的記憶體地址會造成部份程式崩潰,以及32位元程式碼無法使用64位元CPU的部份指令與寄存器(這會影響效能)。——個人認為這個技術的存在,其實是對科技發展有害的。它拖延了64位元的普及速度。