理论上,一台64位计算机可以处理的最大RAM数量是多少?


21

我正在阅读我的计算机体系结构书,发现在x86、32位CPU中,程序计数器是32位。

因此,它可以寻址的字节数是2 ^ 32字节,即4GB。因此,对我来说,大多数32位计算机将ram的数量限制为4gb(忽略PAE)是有意义的。

我是否可以假设64位计算机理论上可以寻址2 ^ 64字节或16 艾字节的RAM?


4
请注意,没有现有的x86 64位处理器可以实际执行此操作。他们的缓存没有足够的标签位,他们的地址总线没有足够的宽度,依此类推。46位(8TB)是许多现代x86 CPU的最大值。
大卫·史瓦兹

4
从理论上讲,没有限制。即使32位CPU的地址空间也可以大于4 GiB。这取决于在硬件中如何实现内存管理系统,该系统通常与CPU的字长无关。程序中的指针始终为字长,但是无论如何它们都是虚拟地址(而不是物理地址),因此它们被进一步映射到另一个地址空间中。
突破

这是一个有旧答案的老问题,但是我觉得这个问题最被推崇的答案是非常令人误解的,它们是一台具有64位宽地址总线地址的机器可以拥有多少RAM的答案。正如上文的David和Breakthrough所指出的,体系结构的“位”反映的是主要寄存器的大小,而不是地址总线的大小。
塞比2015年

为什么您会忽略PAE?
Jamie Hanrahan

Answers:



17

为了补充马特·鲍尔的答案,我可以在某个特定的在线零售商上找到的最大RAM是32GB。其中的32个达到1 TB。每根棍子大约半英寸,这使我们可以在主板上留出16英寸的空间,以用于TB级的商用ram。要达到1680万TB,需要主板4,242.42英里。从洛杉矶到纽约的距离约为2141英里,因此该主板将在全国范围内延伸并容纳足够的RAM。

显然,这是不切实际的。

怎么样呢?我们并没有像大多数主板那样将所有RAM都排成一排,而是并排放置。我想说的是,公羊的平均杆长约为6英寸,因此,如果我们允许半英寸的宽度,则可以在6英寸的正方形中使用12根公羊的平方单位。我们称这个正方形为RAM-tile。然后,一个RAM块将容纳384GB的RAM。要在384GB的磁贴中达到所需的1680万兆兆字节,则需要4480万磁贴。让我们杂乱无章,并使用其平方根得出结论,这将适合于6693 x 6694瓷砖或13386 x 13388英尺的正方形,其足够接近2.5平方英里,足以在阴影中覆盖西雅图市中心他们还没有足够的抱怨。


2
太大。你为什么把它们放平?您可以在100'的立方体中获得所有内容。不过,您可能需要液氮来保持其凉爽!
罗伦·佩希特尔

1
沸腾的氮气量会给西雅图的伟大人民带来安全风险
Conrad.Dean 2014年

一种可能的更正。由于图块是6英寸乘6英寸,所以不会使面积3346.5乘3347英尺(图块数的一半),而不是所引用的13,386倍图块数。此外,似乎没有人提到的另一个问题。假设最佳布置:一个圆,半径将需要大约1,890英尺,以包围所需的区域。正如Adm,Grace Hopper所指出的那样,铜缆上的传输延迟约为一纳秒/英尺。这意味着到外环的往返延迟将为〜3.78微秒。主存储器的速度有点慢。IMEHO。
dgnuff

4

是的,实际上,进程可以在理论上寻址2 ^ 64字节的内存。但是正如您所指出的,有一些方法可以绕过此限制。


3

处理器的位大小和可寻址内存量之间没有特定的固定关系。1970年代后期,大多数8位计算机可以轻松地直接访问65,536字节,而16位8088和8086可以直接访问1,048,576字节。另外,可以添加硬件以允许机器间接访问任意数量的RAM。许多具有8位处理器的计算机都具有128K或更多的内存,用于基于8088的PC的内存扩展单元可以访问超过16兆的内存。尽管Microsoft仅在Windows的“服务器”版本中启用了此功能,但32位代码仍可以使用类似方法访问4GiB标记以外的内存。


2

你是正确的。您最多可以寻址16艾字节的RAM。现在..操作系统是否可以处理这将是另一个问题。


2

还要很好地指出,操作系统对64位体系结构中的内存有其自身的限制。

例如,请参阅维基百科对Windows Vista 64的评价:

Microsoft操作系统的所有64位版本当前都对地址空间施加16 TB的限制。在Windows Vista的64位版本上创建的进程可以为用户进程提供8 TB的虚拟内存,为内核进程提供8 TB的虚拟内存,以创建16 TB的虚拟内存。[29] 在物理内存方面,Windows Vista 64位基本版最多支持8 GB的RAM,Windows Vista 64位家庭高级版最多支持16 GB的RAM,Windows Vista 64位Business / Enterprise / Ultimate最多支持128 GB。内存。[8]



1

64位的最大优势不是它可以寻址的RAM,而是其他所有东西。例如,您可以为磁盘上的每个字节定义一个地址,而增加磁盘容量在数十年内不会使该地址无效。


当然,由于当前的CPU人为地限制了该地址空间,因此可能只有不到十年的时间,没有足够的位来寻址磁盘上的每个字节。希望到那个阶段,随着SSD的发展,限制将会提高,使整个磁盘作为内存的一部分出现可以极大地提高性能。我不介意将SSD插入RAM插槽而不是SATA电缆!
Malvineous

@Malvineous我在谈论的是更基本的内容,即使您将自己限制为63位,也可以直接寻址9223372 TB。RAM插槽中的SSD已经存在,请参阅Sandisk
Mark Ransom 2014年

我并不是不同意您的意思,我只是指出,对于当前的技术,您所建议的内容存在人为限制(例如,仅将48或51位地址带到物理总线上)。如果这些DIMM-SSD流行,我们可能会比您建议的时间快用完内存地址,除非可以提高或消除这些人为的限制。我同意,如果完整的64位可用,那么问题就需要数十年的时间。
Malvineous

仅作记录,我查看了SanDisk UlltraDIMM链接,但遗憾的是,这在技术上不是SSD-RAM。它是一个6Gbps SATA SSD,带有DDR3-to-SATA适配器,可以像访问内存一样对其进行访问。将内存请求额外转换为SATA协议会带来一些延迟,并且看起来有些混乱。希望有人能从中受益,并很快发布一个真正的内存接口进行刷新,而在两者之间没有任何不必要的适配器!
Malvineous

0

当今大多数当前的处理器在地址大小上都有一些人为限制。例如,AMD64体系结构的物​​理内存限制为52位,并且当前仅支持48位虚拟地址空间。(通过Wikipedia)。但是,可以,物理上约为1640万兆兆字节。


-1

一个真实的物理答案1536GB,带有48个运行32GB单棒和4个LGA2011 Xeon的ram卡

这是为某人可以购买而又不违反隐藏的硬核服务器的esayist pc认为那里有64GB单个stic带来的.... 3072GB 128GB是6144GB 256GB是12288GB

只是扔出去,如果ur os只能看到4gb ram,有办法解决ram的操作系统限制,将剩下的变成ram驱动器,并将ram驱动器用作页面文件XD XD XD XD只是做一个预引导操作系统即可系统早在dos / windows 3.11等早期就完成了类似的模拟工作

并且还有其他一些小技巧可以解决cpu的局限性

齿轮,我们可以看到没有多余的东西在那里,还有更多有效的东西,我有一台PC,运行98个处理器,运行8个处理器,有些像32gb ram这样的服务器,但这是昂贵的高端服务器

我将服务器视为台式机,因为我讨厌公共XD的计算机

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.