記憶體定址...是把記憶體的位元組寬度(8bit)乘以可定址位元數吧?例如93C46這顆EEPROM的定址是7x8bit寬度(byte mode),7位元可以解碼成0~127共128個,得到128x8個位元的儲存能力是這顆晶片的總容量值
現在的電腦用記憶體,依然使用位元組來計算(8bit),所以8x32位元定址能力就是32位元系統的最大記憶容量限制(擴增技術不論)但是因為實用上不把位元組拆開...
其實即使以硬體的角度來看, 32 Bit x86 可定址空間可以不只 4GB, 有談及32位元以上CPU的計概, 應該都看過 GDT、LDT,一個LDT就可以定址4GB, 系統可以有8千多個LDT,所以x86 32位元CPU上限並不只4GB.
在16位元時代 (8088/86/186/286), 記憶體的限制最大困擾, 除了因為 segment:offset 最大1MB主記憶體外 (會迴繞) , offset最多64K節區也是當時寫程式很大的困擾.
而32位元系統, 把segment改為selector, 解決迴繞問題. 但是實做作業系統, 則是固定 selector, 把重點放在節區上, 所以說, 32位元CPU只能定址到4GB也是不太正確的, 應該說只是節區限制 (跟 64K 節區的性質相同), 這只是 FLAT 的限制.
也因為作業系統為了效率以及方便考量的緣故, 所以硬體本來就有支援的 selector 幾乎失去效用了.
話說回來, 這也沒什麼不好, 畢竟在效率上, 只用一個暫存器來定址效率好不少.