2013-03-11 42 views
0

有很多問題決定了指針的大小。 基本上作爲一個經驗法則,你可以說這是處理器架構,指針相對於RAM的大小,體系結構

86 - > 4個字節指針

64 - > 8個字節指針

我看到也有人這裏說的是系統總線負責它,但其他的被拒絕。假設架構告訴我指針的大小是多少。

要尋址4GB的RAM,您需要4,294,967,296映射,大小爲4字節的指針可以尋址4,294,967,296個內存位置。

要尋址8GB的RAM,您需要8,589,934,592個映射,並且大小爲4字節的指針不能解決所有可能的值。 所以這就是爲什麼我不能在x86架構上擁有超過4GB內存的原因?

回答

2

RAM數量不受架構限制(32位或64位)。體系結構僅決定可由操作系統及其上運行的程序在時間處尋址多少存儲器。在32位機器上,即32位寬內存總線的機器,操作系統和程序只能「看到」4 GB的內存。但這並不意味着只有4 GB的RAM。如果製造商提供了它,則可以擁有16 GB或4x4 GB的RAM。在這種情況下,將會有2個「隱藏」地址線,並且還會有硬編碼邏輯來決定這2行的電平,從而選擇任何可用的4 GB RAM - 00 01 10 11。這些「隱藏的」地址位不被軟件層使用,所以對於這些層,它們只能使用4字節的指針。這些「隱藏」地址線的數量取決於您可以擴展RAM的數量。

這只是一個例子。這取決於供應商,他們如何決定提供額外的RAM。

+0

但是應用程序仍然可以處理4GB的RAM,因此它如何從剩餘的3 * 4GB中受益? – 4pie0 2013-03-11 18:04:23

+1

其優點是,在可用的總內存中。程序1 +程序2 +程序3總共可以使用8或12或11 GB,而且每個程序都不會意識到系統具有超過4G的內存。 – 2013-03-11 20:45:55

+0

,所以每個應用程序都可以使用不同的RAM塊,現在我明白了 – 4pie0 2013-03-11 20:49:20