32位系統最大只能支援4GB記憶體之由來

2021-10-02 01:41:52 字數 1947 閱讀 1471

也許大家對這個問題都不陌生,實際裝過系統用過電腦的朋友可能都有這樣的經歷:自己電腦配的是4g的記憶體條,可是裝完系統之後發現電腦上顯示的只有3.2g左右可用記憶體,其它的記憶體跑到哪去了?網上也有很多朋友給出了一些解釋,大部分我覺得都沒有解釋得很清楚,今天我們就來看一下其中的具體緣由。

在此之前先來了解一些計算機系統結構和pc硬體方面的一些知識。

說起匯流排大家肯定不陌生,而且大家平時肯定跟它打過交道,我們在用u盤拷貝資料的時候先要把u盤通過usb介面與電腦相連才能拷貝。usb介面實際上就是一種匯流排,一般稱這種匯流排為usb匯流排(也叫做通用序列匯流排)。在很久之前是沒有usb匯流排的,那個時候每個外設各自採用自己的介面標準,舉個最簡單的例子:滑鼠生產廠商採用滑鼠特有的介面,鍵盤生產廠商用鍵盤特有的介面,這樣一來的話,pc機上就必須提供很多介面,這樣一來增加了硬體設計難度和成本,直到後來usb介面的出現,它統一了很多外設介面的標準,不僅使得使用者可以很方便地連線一些外設,更增強了pc的可擴充套件性。所以現在大家看到的滑鼠、鍵盤、u盤、印表機等等這些外設都可以直接通過usb介面直接插到電腦上的。

在計算機系統中匯流排是非常重要的乙個概念,正是因為有了匯流排,所有的組成部件才能一起正常協同分工合作。在很久以前的pc機中,採用的是三匯流排結構,即:資料匯流排、位址匯流排、控制匯流排。它們分別用來傳輸不同型別的資料,資料匯流排用來傳輸資料,位址匯流排用來傳輸位址,控制匯流排用來傳輸一些控制訊號。

在使用計算機時,其最大支援的記憶體是由 作業系統 和 硬體 兩方面決定的。

先說一下硬體方面的因素,在上面已經提到了位址匯流排,在計算機中 cpu的位址匯流排數目 決定了cpu 的 定址 範圍,這種由位址匯流排對應的位址稱作為實體地址。假如cpu有32根位址匯流排(一般情況下32位的cpu的位址匯流排是32位,也有部分32位的cpu位址匯流排是36位的,比如用做伺服器的cpu),那麼提供的可定址實體地址範圍 為 2的32次方=4gb(在這裡要注意一點,我們平常所說的32位cpu和64位cpu指的是cpu一次能夠處理的資料寬度,即位寬,不是位址匯流排的數目)。自從64位cpu出現之後,一次便能夠處理64位的資料了,其位址匯流排一般採用的是36位或者40位(即cpu能夠定址的實體地址空間為64gb或者1t)。在cpu訪問其它任何部件的時候,都需要乙個位址,就像乙個快遞員送快遞,沒有位址他是不知道往**送達的,舉個例子,cpu想從視訊記憶體單元讀取資料,必須知道要讀取的視訊記憶體單元的實際實體地址才能實現讀取操作,同樣地,從記憶體條上的記憶體單元讀取資料也需要知道記憶體單元的實體地址。換句話說,cpu訪問任何儲存單元必須知道其實體地址。

使用者在使用計算機時能夠訪問的最大記憶體不單是由cpu位址匯流排的位數決定的,還需要考慮作業系統的實現。實際上使用者在使用計算機時,程序所訪問到的位址是邏輯位址,並不是真實的實體地址,這個邏輯位址是作業系統提供的,cpu在執行指令時需要先將指令的邏輯位址變換為實體地址才能對相應的儲存單元進行資料的讀取或者寫入(注意邏輯位址和實體地址是一一對應的)。

所以當我們裝了32位的windows作業系統,即使我們買了4gb的記憶體條,實際上能被作業系統訪問到的肯定小於4gb,一般情況是3.2gb左右。假如說位址匯流排位數沒有32位,比如說是20位,那麼cpu能夠定址到1mb的實體地址空間,此時作業系統即使能支援4gb的邏輯位址空間並且假設記憶體條是4gb的,能夠被使用者訪問到的空間不會大於1mb(當然此處不考慮虛擬記憶體技術),所以使用者能夠訪問到的最大記憶體空間是由硬體和作業系統兩者共同決定的,兩者都有制約關係。

對於64位的作業系統,其邏輯位址編碼採用的位址位數是40位,能夠最大支援1t的邏輯位址空間。考慮一種情況,假如cpu是64位的,位址匯流排位數是40位,作業系統也是64位的,邏輯位址編碼採用的位址位數也是40位,記憶體條大小是64gb,那麼是不是記憶體條的64gb全部都能被利用了呢?答案是不一定,因為這裡面還要考慮乙個因素就是記憶體控制器,記憶體控制器位於北橋之內(現在基本都是放在cpu裡面了),記憶體控制器的實際連線記憶體的位址線決定了可以支援的記憶體容量,也就是說記憶體控制器與記憶體槽實際連線的位址線如果沒有40位的話,是無法完全利用64gb的記憶體條的儲存空間的。當然對於記憶體控制器這個問題幾乎可以不用考慮,因為現在大多數的記憶體控制器至少都採用的是40位位址匯流排。

32位系統最大只能支援4GB記憶體之由來

也許大家對這個問題都不陌生,實際裝過系統用過電腦的朋友可能都有這樣的經歷 自己電腦配的是4g的記憶體條,可是裝完系統之後發現電腦上顯示的只有3.2g左右可用記憶體,其它的記憶體跑到哪去了?網上也有很多朋友給出了一些解釋,大部分我覺得都沒有解釋得很清楚,今天我們就來看一下其中的具體緣由。在此之前先來了...

32位系統最大只能支援4GB記憶體之由來

也許大家對這個問題都不陌生,實際裝過系統用過電腦的朋友可能都有這樣的經歷 自己電腦配的是4g的記憶體條,可是裝完系統之後發現電腦上顯示的只有3.2g左右可用記憶體,其它的記憶體跑到哪去了?網上也有很多朋友給出了一些解釋,大部分我覺得都沒有解釋得很清楚,今天我們就來看一下其中的具體緣由。在此之前先來了...

32位作業系統使用4GB以上記憶體

一 3gb 方式 1 記憶體分配 從80386開始,出於安全性的考慮 防止使用者訪問並篡改作業系統的關鍵部分 以及考慮到系統的穩定性,該系列的cpu可以執行於ring0至ring3從高到低4個許可權級別,對資料也提供相應的4個保護級別。規則如下 1 執行於較低階別的 不能隨意呼叫高階別的 和訪問高階...