32位系統(tǒng)最大只能支持4GB內(nèi)存的原因
32位系統(tǒng)最大只能支持4GB內(nèi)存的原因
也許大家對這個問題都不陌生,實際裝過系統(tǒng)用過電腦的朋友可能都有這樣的經(jīng)歷:自己電腦配的是4G的內(nèi)存條,可是裝完系統(tǒng)之后發(fā)現(xiàn)電腦上顯示的只有3.2G左右可用內(nèi)存,其它的內(nèi)存跑到哪去了?接下來是小編為大家收集的32位系統(tǒng)最大只能支持4GB內(nèi)存的原因,希望能幫到大家。
32位系統(tǒng)最大只能支持4GB內(nèi)存的原因:
一.總線結(jié)構(gòu)和主板的構(gòu)成
說起總線大家肯定不陌生,而且大家平時肯定跟它打過交道,我們在用U盤拷貝數(shù)據(jù)的時候先要把U盤通過USB接口與電腦相連才能拷貝。USB接口實際上就是一種總線,一般稱這種總線為USB總線(也叫做通用串行總線)。在很久之前是沒有USB總線的,那個時候每個外設(shè)各自采用自己的接口標(biāo)準(zhǔn),舉個最簡單的例子:鼠標(biāo)生產(chǎn)廠商采用鼠標(biāo)特有的接口,鍵盤生產(chǎn)廠商用鍵盤特有的接口,這樣一來的話,PC機(jī)上就必須提供很多接口,這樣一來增加了硬件設(shè)計難度和成本,直到后來USB接口的出現(xiàn),它統(tǒng)一了很多外設(shè)接口的標(biāo)準(zhǔn),不僅使得用戶可以很方便地連接一些外設(shè),更增強(qiáng)了PC的可擴(kuò)展性。所以現(xiàn)在大家看到的鼠標(biāo)、鍵盤、U盤、打印機(jī)等等這些外設(shè)都可以直接通過USB接口直接插到電腦上的。
在計算機(jī)系統(tǒng)中總線是非常重要的一個概念,正是因為有了總線,所有的組成部件才能一起正常協(xié)同分工合作。在很久以前的PC機(jī)中,采用的是三總線結(jié)構(gòu),即:數(shù)據(jù)總線、地址總線、控制總線。它們分別用來傳輸不同類型的數(shù)據(jù),數(shù)據(jù)總線用來傳輸數(shù)據(jù),地址總線用來傳輸?shù)刂?,控制總線用來傳輸一些控制信號。下面這幅圖很清楚地展示了三總線結(jié)構(gòu):
隨著時代的發(fā)展,這種簡單的總線結(jié)構(gòu)逐漸被淘汰。下面這幅圖是現(xiàn)代計算采用的結(jié)構(gòu):
事實上這也是現(xiàn)代主板所采用的結(jié)構(gòu),當(dāng)然可能部分地方有略微不同(大體結(jié)構(gòu)是差不多的),仔細(xì)觀察過主板構(gòu)成的朋友可能對上面一幅圖很熟悉。在主板上主要有兩大主要部分:北橋(North Bridge也稱Host Bridge)和南橋(South Bridge)。北橋主要負(fù)責(zé)CPU和內(nèi)存、顯卡這些部件的數(shù)據(jù)傳送,而南橋主要負(fù)責(zé)I/O設(shè)備、外部存儲設(shè)備以及BIOS之間的通信。現(xiàn)在有些主板已經(jīng)沒有北橋了,因為芯片廠商已經(jīng)把北橋所負(fù)責(zé)的功能直接集成到CPU中了(不過暫且我們以上副圖的模型來討論)。
在上副圖中,我沒有畫出 數(shù)據(jù)總線和地址總線等,因為在某些總線標(biāo)準(zhǔn)中它們被集成到一起了,比如在PCI總線中,地址總線和數(shù)據(jù)總線總是分時復(fù)用的(也就是說假如PCI總線有32位數(shù)據(jù)總線,這32位總線在某個時刻可以充當(dāng)數(shù)據(jù)總線的作用,在下一時刻可以充當(dāng)?shù)刂房偩€的作用)。有的總線同時提供了數(shù)據(jù)總線和地址總線。
下面來說一下幾個主要總線和南北橋的作用:
FSB總線:即前端總線(Front Side Bus),CPU和北橋之間的橋梁,CPU和北橋傳遞的所有數(shù)據(jù)必須經(jīng)過FSB總線,可以這么說FSB總線的頻率直接影響到CPU訪問內(nèi)存的速度。
北橋:北橋是CPU和內(nèi)存、顯卡等部件進(jìn)行數(shù)據(jù)交換的唯一橋梁,也就是說CPU想和其他任何部分通信必須經(jīng)過北橋。北橋芯片中通常集成的還有內(nèi)存控制器等,用來控制與內(nèi)存的通信?,F(xiàn)在的主板上已經(jīng)看不到北橋了,它的功能已經(jīng)被集成到CPU當(dāng)中了。
PCI總線:PCI總線是一種高性能局部總線,其不受CPU限制,構(gòu)成了CPU和外設(shè)之間的高速通道。比如現(xiàn)在的顯卡一般都是用的PCI插槽,PCI總線傳輸速度快,能夠很好地讓顯卡和CPU進(jìn)行數(shù)據(jù)交換。
南橋:主要負(fù)責(zé)I/O設(shè)備之間的通信,CPU要想訪問外設(shè)必須經(jīng)過南橋芯片。
在了解了這些基礎(chǔ)東西之后,下面來講解一下為何32位系統(tǒng)最大只支持4GB內(nèi)存。
二.來由
在使用計算機(jī)時,其最大支持的內(nèi)存是由 操作系統(tǒng) 和 硬件 兩方面決定的。
先說一下硬件方面的因素,在上面已經(jīng)提到了地址總線,在計算機(jī)中 CPU的地址總線數(shù)目 決定了CPU 的 尋址 范圍,這種由地址總線對應(yīng)的地址稱作為物理地址。假如CPU有32根地址總線(一般情況下32位的CPU的地址總線是32位,也有部分32位的CPU地址總線是36位的,比如用做服務(wù)器的CPU),那么提供的可尋址物理地址范圍 為 232=4GB(在這里要注意一點(diǎn),我們平常所說的32位CPU和64位CPU指的是CPU一次能夠處理的數(shù)據(jù)寬度,即位寬,不是地址總線的數(shù)目)。自從64位CPU出現(xiàn)之后,一次便能夠處理64位的數(shù)據(jù)了,其地址總線一般采用的是36位或者40位(即CPU能夠?qū)ぶ返奈锢淼刂房臻g為64GB或者1T)。在CPU訪問其它任何部件的時候,都需要一個地址,就像一個快遞員送快遞,沒有地址他是不知道往哪里送達(dá)的,舉個例子,CPU想從顯存單元讀取數(shù)據(jù),必須知道要讀取的顯存單元的實際物理地址才能實現(xiàn)讀取操作,同樣地,從內(nèi)存條上的內(nèi)存單元讀取數(shù)據(jù)也需要知道內(nèi)存單元的物理地址。換句話說,CPU訪問任何存儲單元必須知道其物理地址。
用戶在使用計算機(jī)時能夠訪問的最大內(nèi)存不單是由CPU地址總線的位數(shù)決定的,還需要考慮操作系統(tǒng)的實現(xiàn)。實際上用戶在使用計算機(jī)時,進(jìn)程所訪問到的地址是邏輯地址,并不是真實的物理地址,這個邏輯地址是操作系統(tǒng)提供的,CPU在執(zhí)行指令時需要先將指令的邏輯地址變換為物理地址才能對相應(yīng)的存儲單元進(jìn)行數(shù)據(jù)的讀取或者寫入(注意邏輯地址和物理地址是一一對應(yīng)的)。
對于32位的windows操作系統(tǒng),其邏輯地址編碼采用的地址位數(shù)是32位的,那么操作系統(tǒng)所提供的邏輯地址尋址范圍是4GB,而在intel x86架構(gòu)下,采用的是內(nèi)存映射技術(shù)(Memory-Mapped I/O, MMIO),也就說將4GB邏輯地址中一部分要劃分出來與BIOS ROM、CPU寄存器、I/O設(shè)備這些部件的物理地址進(jìn)行映射,那么邏輯地址中能夠與內(nèi)存條的物理地址進(jìn)行映射的空間肯定沒有4GB了,看下面這幅圖就明白了:
所以當(dāng)我們裝了32位的windows操作系統(tǒng),即使我們買了4GB的內(nèi)存條,實際上能被操作系統(tǒng)訪問到的肯定小于4GB,一般情況是3.2GB左右。假如說地址總線位數(shù)沒有32位,比如說是20位,那么CPU能夠?qū)ぶ返?MB的物理地址空間,此時操作系統(tǒng)即使能支持4GB的邏輯地址空間并且假設(shè)內(nèi)存條是4GB的,能夠被用戶訪問到的空間不會大于1MB(當(dāng)然此處不考慮虛擬內(nèi)存技術(shù)),所以用戶能夠訪問到的最大內(nèi)存空間是由硬件和操作系統(tǒng)兩者共同決定的,兩者都有制約關(guān)系。
對于64位的操作系統(tǒng),其邏輯地址編碼采用的地址位數(shù)是40位,能夠最大支持1T的邏輯地址空間。考慮一種情況,假如CPU是64位的,地址總線位數(shù)是40位,操作系統(tǒng)也是64位的,邏輯地址編碼采用的地址位數(shù)也是40位,內(nèi)存條大小是64GB,那么是不是內(nèi)存條的64GB全部都能被利用了呢?答案是不一定,因為這里面還要考慮一個因素就是內(nèi)存控制器,內(nèi)存控制器位于北橋之內(nèi)(現(xiàn)在基本都是放在CPU里面了),內(nèi)存控制器的實際連接內(nèi)存的地址線決定了可以支持的內(nèi)存容量,也就是說內(nèi)存控制器與內(nèi)存槽實際連接的地址線如果沒有40位的話,是無法完全利用64GB的內(nèi)存條的存儲空間的。當(dāng)然對于內(nèi)存控制器這個問題幾乎可以不用考慮,因為現(xiàn)在大多數(shù)的內(nèi)存控制器至少都采用的是40位地址總線。
關(guān)于這個問題就說這么多了,有興趣深入研究的朋友可以自己查閱更多的資料。
看了“32位系統(tǒng)最大只能支持4GB內(nèi)存的原因”還想看:
1.32位和64位系統(tǒng)最大支持的內(nèi)存是多少
2.win7的32位系統(tǒng)怎么支持128G內(nèi)存
3.32位的Windows7系統(tǒng)怎么使用4G內(nèi)存
4.win7的32位系統(tǒng)可以用多大內(nèi)存