為什麼32位的計算機記憶體要用32位二進位制數編址,用64位二進位制數編址記憶體不就可以更大了嗎?

時間 2021-05-31 13:29:52

1樓:

幾乎所有8位微控制器位址匯流排都是16位或16位以上的,幾乎所有16位微控制器位址匯流排都是24位或20位的,為什麼32位的x86cpu位址匯流排是32位呢,這樣做設計方便是乙個原因,最主要的原因是386設計的時候記憶體還普遍使用的是4M,8M的記憶體條,在pc發展速度如此驚人的情況下,10年後128M的記憶體條仍然是頂級容量。所以說當時情況cpu位址匯流排32位寬度是足夠的,再對比看一下連全世界使用的ip位址當時都認為32位永遠用不完了。至於現在為什麼不使用32位資料,64位位址的做法,因為把資料匯流排提高到64位還可以提高匯流排頻寬啊。

ps:就算現在資料匯流排都到64位了,位址匯流排也只有48位。

結論32位計算機要用32位位址是因為24位當時已經不夠用了,為了以後擴充套件方便,使用了永遠用不完的32位位址

2樓:北極

先說基礎概念:

CPU位數:一般是指通用暫存器的位數,跟其它東西的位數沒有任何關係

記憶體定址範圍:取決於CPU的位址線個數和硬體的支援情況,跟XX位CPU沒有任何關係

作業系統定址範圍:受限於硬體,同時也受限於軟體

CPU位數跟它的定址範圍沒有直接關係!!

16位Intel CPU的位址匯流排最多可能達到20根,定址範圍是1MB,而不是16位(64KB)

支援PAE的32位Intel CPU具備64GB的定址能力,你的32位XP/WIN7不支援超過4G的記憶體是軟體限制,跟硬體無關;

所以不存在32位CPU只能用32位編址的說法,是軟體不支援不是硬體不支援,題主你的問題本身就是錯的,而且實際上只要Intel想支援的話,在32位CPU上支援64位定址沒有任何困難(本來PAE模式下PD/PT也是64位的)

具體為什麼XP不能支援超過4G記憶體參見:為何微軟不在新的作業系統中讓 32 位支援大於 4GB 的記憶體? - 北極的回答

另外,64位CPU裡有很多暫存器都是128/256位的(注意,這裡沒有「通用」二字)。

3樓:lammer ren

1、記憶體是用來幹啥的?是用來存資料的!

存資料是用來幹啥的?是讓CPU計算的!

如果CPU的運算能力不夠強,那還存那麼多資料在記憶體裡面幹啥?!

換句話說,CPU才是核心,電腦的硬體需要圍繞CPU轉

所以,實際的記憶體大小應該是以滿足CPU的運算能力為標準。

簡單模擬一下:你一輩子可能需要吃幾百噸糧食,但是你每次吃半斤就撐得不行,難道題主你應該在家裡建個大倉庫這幾百噸的糧食?

CPU的字長是逐步發展的,最早是8位,然後是16位,然後才是32位,然後才是64位。

每一代的CPU字長所能支援的最大定址空間都沒有用滿,CPU字長公升級的主要動力是計算能力的提公升。

或者說,CPU理論支援的最大記憶體數量一直以來都是遠超過當時的計算能力的

32位的CPU根本就用不到32位編址那麼多的記憶體,那還蛋疼地搞64位編址幹毛?

2、記憶體的單位成本很高,一直就很高

原因很簡單,因為現在記憶體(SDRAM)的基本結構很簡單,簡單到根本無法再優化,一位資料要使用6個電晶體儲存。換句話說,記憶體的成本和容量至少是正比例相關的

CPU可以通過優化結構,增加指令集,增加快取等不改變生產工藝的方式提高運算能力,也就是降低單位運算能力的成本;但是記憶體就只能依靠晶元製造工藝的提高來降低成本而無法通過優化結構來降低單位成本,而每一次晶元製造工藝的提高都需要幾十億美金的前期投入和五年甚至更長時間的試驗。

所以記憶體這種東西一直以來就是夠用就好。

3、CPU的每一位記憶體定址,都需要對應主機板上的一根線

32位需要32根線,64位需要64根線。

重點來了,為了保證訊號同步,這些線路的長度差別必須控制在非常小的水平。如果注意看就會發現主機板上CPU和記憶體之間的很多線不是直線而是中間有很多彎曲的地方,那就是為了調整線路長度而刻意製作出來的。

記憶體編址的位數越多,主機板設計和製作的成本越高

4樓:二喵

可是不支援啊,這東西不是你一拍腦門想,我們不要一次處理32位,處理64位吧,然而你需要更長字的暫存器,更多的指令暫存器,和更快的處理速度

就比如,乙個運動員想,我挺舉150kg太輕了,拿不到獎牌,下次挺舉300kg吧

然後,運動員卒

5樓:yang leonier

6502的字長是8位,但其位址匯流排是16位8086的字長是16位,但位址匯流排是20位68000的字長32位,位址匯流排卻只有24位當年所有人都以為68000是16位,只有蘋果第一代mac明確宣傳了它是32位這個事實。世嘉MD外殼上的16-BIT,只是宣傳它比8-BIT強的手法而已

計算機中記憶體3B是什麼?

張玉明 計算機是2進製的,只能識別0和1 0或1稱為乙個二進位制位 0000 0000 8個2進製位稱為b,叫位元組 0000 0000 0000 0000稱為字,1字 2位元組 1024 0000 0000 1kb,表示1024個位元組 1024 1kb 1mb,表示個1024 1024個位元組 ...

計算機記憶體底層到底怎麼儲存東西的,有沒有比較象形的解釋?

雪糕 試著拋開那些微電子方面的原理僅就中學階段的物理知識來解釋 先說說怎麼讀取資訊。中學科技常識課程就告訴我們,計算機裡面實際就是利用高低電平來識別資料,晶元裡面沒有磁性結構,於是也就沒有各種複雜的轉換,很簡單就是檢查儲存單元裡面電平。用常見的科普文章說 有電就是1,沒電就是0。當這樣的儲存單元足夠...

計算機的記憶體為什麼不是無限的??

醉臥沙場 計算機記憶體需要通過位址匯流排來訪問,比如你訪問第0個位元組的實體地址,沒問題。你想訪問第0xffffffffffffffff個位元組的實體地址,理論上也沒問題。但是你怎麼定義記憶體位址的第無限個?你先給我定義一下你怎麼在計算機上訪問第 無限 個位元組的記憶體塊。 計算機有 物理記憶體 和...