先說兩個規則:1. 定址範圍=定址單元大小*定址字長2. 定址字長與CPU字長無直接關係對於比較老的硬碟來說:定址單元是一個扇區512位元組,定址字長是2^32,所以可用的最大磁碟容量是2TB對於現在的硬碟來說:定址單元是一個扇區,可能是512位元組也可能是4096位元組,定址字長是2^48,所以可用的最大磁碟容量是128PB~1EB左右。解釋一下CPU的字長與定址字長無直接關係(以下討論僅限記憶體,定址單元大小是位元組):CPU字長可以比定址字長大,比如:64位系統裡的一些DMA控制器地址線就是32位的。CPU字長也可以比定址字長小,比如:小霸王學習機裡8位系統可用最大記憶體是64KB;386的16位系統可用記憶體可以達到640K甚至更大,x86架構下32位CPU開啟PAE可以獲得物理上超過4GB的定址範圍。如果CPU字長比地址線要多,那麼軟體設計時,會嘗試遮蔽某些高位;如果CPU字長比地址線要少,那麼訪問時一般採取多級選擇、多暫存器組合的方式,比如記憶體分段、分頁都是在CPU字長不足的情況下獲得更大的記憶體訪問能力手段。對於32位CPU來說,開啟PAE可以獲得更大的定址能力,但Windows將其在軟體上限制死了,這個問題可以參見:為何微軟不在新的作業系統中讓 32 位支援大於 4GB 的記憶體? - 北極的回答
先說兩個規則:1. 定址範圍=定址單元大小*定址字長2. 定址字長與CPU字長無直接關係對於比較老的硬碟來說:定址單元是一個扇區512位元組,定址字長是2^32,所以可用的最大磁碟容量是2TB對於現在的硬碟來說:定址單元是一個扇區,可能是512位元組也可能是4096位元組,定址字長是2^48,所以可用的最大磁碟容量是128PB~1EB左右。解釋一下CPU的字長與定址字長無直接關係(以下討論僅限記憶體,定址單元大小是位元組):CPU字長可以比定址字長大,比如:64位系統裡的一些DMA控制器地址線就是32位的。CPU字長也可以比定址字長小,比如:小霸王學習機裡8位系統可用最大記憶體是64KB;386的16位系統可用記憶體可以達到640K甚至更大,x86架構下32位CPU開啟PAE可以獲得物理上超過4GB的定址範圍。如果CPU字長比地址線要多,那麼軟體設計時,會嘗試遮蔽某些高位;如果CPU字長比地址線要少,那麼訪問時一般採取多級選擇、多暫存器組合的方式,比如記憶體分段、分頁都是在CPU字長不足的情況下獲得更大的記憶體訪問能力手段。對於32位CPU來說,開啟PAE可以獲得更大的定址能力,但Windows將其在軟體上限制死了,這個問題可以參見:為何微軟不在新的作業系統中讓 32 位支援大於 4GB 的記憶體? - 北極的回答