64位机器理论上到底能放多少内存

来源:互联网 发布:算法 第四版 英文 pdf 编辑:程序博客网 时间:2024/04/28 11:46
http://www.geekfan.net/4345/


大部分从32位系统升级到64位的人,主要是为了突破4GB内存的限制。到底进入64位之后,你的内存容量能达到多大呢?


今天的问答来自SuperUser——Stack Exchange的分支。这是一个社区驱动型的Q&A网站。


问题


SuperUser的读者KingNestor想知道64位能跑多少内存:在关于计算机架构的书中,我发现x86,32位CPU的程序计数器(指令地址寄存器)是32位的。


因此,它可以寻址2^32字节,也就是4GB。也因此,大部分32位机器的内存限制是4GB(忽略PAE)。


那到底64位机器理论上可以寻址2^64字节,也就是16EB内存,对吗?


你说EB?唔,不要这么贪心,有个1,2TB就很满足了~


回答


关于这个问题的探究,那是一个有趣的,理论与实践的结果。Matt Ball马上就来了一个理论上的答案:


理论上是168, 000, 000TB(就是16EB)。实际上,要塞下那么多内存,你的电脑有点太小了。


Conrad Dean插了一脚,他表示以今天的技术,不可能达到(64位)理论上的内存上限。


补充Matt Ball的回答。目前我从特别的在线零售店能找到的,最大容量的内存条是32GB。组成1TB就需要32条。每条内存大概是半英寸宽,那么你在主板上就要16英寸的空间来放这1TB的商用内存。要到168, 000, 000TB,那就是4, 242.42英里的主板。从洛杉矶到纽约大约是2141英里。这块主板要来回一趟才能装下那么多内存。


明显这达不到。


如果我们不像大部分主板那样,把所有内存放在一行上,而是并排放。我想说,每条内存是6英寸长,算上半英寸的宽,你需要6平方英寸来放12条内存。设这是一个”内存块“,那就是384GB内存。跑到上限需要44, 800, 000块,麻烦点算下,那就是6693×6694的矩形,或者说是13, 386×13, 388英尺。如果西雅图人没意见,那就可以把整个地方遮蔽起来。


最后,David Schwartz提出,即便是CPU架构都很难达到理论上限。


实际上不存在x86 64位处理器能达到。它们的缓存中没有足够的特征字节,地址总线也不够宽……46位(8TB)是大部分现代x86CPU的上限。


还有其它要补充的不?留下你的评论。想读其它Stack Exchange科技迷的回答?


来这看完整的讨论。
http://superuser.com/questions/65191/what-is-the-maximum-amount-of-ram-a-64bit-machine-can-theoretically-address
0 0