2

虽然 HDD 不断发展并在更小的空间内提供越来越多的空间,但我们为什么要“坚持使用”32 位或 64 位?

为什么不能有例如:128 位处理器?

(这不是我的作业;我只是一个对他们教给我们信息学的东西感兴趣的学生)

4

8 回答 8

5

因为 32 位和 64 位之间的差异是天文数字 - 这实际上是2 32(十亿中的十位数字)和2 64(二十位数字中的 squillions :-) 之间的差异。

64 位在未来几十年里已经绰绰有余了。

于 2010-04-12T12:42:18.747 回答
4

很少需要这个,你什么时候处理这​​么大的数字?当前可用于 64 位的可寻址内存空间远远超出了任何机器至少可以处理几年的能力……而且,它可能比任何台式机都可以容纳很长一段时间。

是的,桌面内存会继续增加,但现在是40亿倍?这将需要一段时间......如果在此之前没有抛弃整个当前模型,那么我们肯定会达到 128 位,我认为这同样可能。

此外,值得注意的是,在大多数情况下,从 32 位升级到 64 位会使您立即陷入性能漏洞(这是 Visual Studio 2010 仅保留 32 位的主要原因)。64 位到 128 位也会发生同样的情况。你拥有的小对象越多,指针就越多,现在是两倍大,这就是为了做同样的事情需要传递更多的数据,特别是如果你不需要那么多可寻址的内存空间。

于 2010-04-12T12:41:36.777 回答
3

当我们谈论 n 位架构时,我们经常将两个完全不同的东西混为一谈:

(1) n 位寻址,例如具有 32 位地址寄存器和 32 位地址总线的 CPU 可以寻址 4 GB 的物理内存

(2) CPU内部数据通路和通用寄存器的大小,例如32位内部架构的CPU有32位寄存器、32位整数ALU、32位内部数据通路等

在许多情况下 (1) 和 (2) 是相同的,但也有很多例外情况,这种情况可能会越来越多,例如,在可预见的未来,我们可能不需要超过 64 位的寻址,但我们可能希望 > 64用于寄存器和数据路径的位(许多支持 SIMD 的 CPU 已经存在这种情况)。

所以,简而言之,当你谈论“64 位 CPU”时,你需要小心——它在不同的上下文中可能意味着不同的东西。

于 2010-04-12T12:49:55.167 回答
2

成本。另外,您认为 128 位架构会给您带来什么?内存寻址等,但要有效地处理它,您需要更高带宽的总线和基本上一些新的指令语言来处理它。64 位足以寻址(18446744073709551616 字节)。

硬盘驱动器仍然有一些基础可以赶上 RAM 等。我认为它们仍然会成为 IO 瓶颈。另外,更新的芯片只是支持更多的内核,而不是对语言进行大规模的改变。

于 2010-04-12T12:45:08.670 回答
1

我还想提供一个计算机架构师对为什么 128 位目前不切实际的看法:

  1. 能源成本。请参阅 Bill Dally 的演讲,了解当今处理器中的大部分能量如何用于移动数据(消散在线路中)。然而,由于 128 位计算的最高有效位应该变化不大,它应该可以缓解这个问题。

  2. 大多数算术运算都具有非线性成本 wrt 操作数大小:

    一个。树乘法器具有 n^2 的空间复杂度,即位数。

    湾。分层进位超前加法器的延迟是 Log[n] wrt 位数(我认为)。所以 128 位加法器会比 64 位加法器慢。谁能给出一些硬数字(Log[n] 似乎很便宜)?

  3. 很少有程序使用 128 位整数或四精度浮点数,当它们使用时,有一些有效的方法可以从 32 位或 64 位操作中组合它们。

于 2013-07-15T01:04:07.960 回答
1

好吧,我碰巧是一名专业的计算机架构师(我的发明可能就在您正在阅读本文的计算机上),虽然我还没有得到报酬,可以在任何地址超过 64 位的处理器上工作,但我知道一些我的朋友们。

几十年来,我一直在玩弄 128 位架构。

即它已经发生了。

实际上,它已经在一定程度上发生了。HP Precision Architecture、Intel Itanium 和 IBM Power line 的更高端版本都有我所说的折叠虚拟内存。我已经在其他地方描述了这些,例如在 comp.arch 帖子中的一些细节,http ://groups.google.com/group/comp.arch/browse_thread/thread/53a7396f56860e17/f62404dd5782f309?lnk=gst&q=folded+virtual+memory# f62404dd5782f309

我需要为这些创建一个 comp-arch.net wiki 帖子。

但是您可以获取这些处理器的手册并自己阅读。

例如,您可以从 64 位用户虚拟地址开始。高 8 位可用于索引区域表,该表返回与剩余 64-8=56 位连接的高 24 位以产生 80 位扩展虚拟地址。然后像往常一样由 TLB、页表和哈希查找将其转换为您的物理地址。

为什么从 64->80 开始?

一个原因是共享库。您可能希望共享库在所有处理器中保持相同的扩展虚拟地址,以便您可以共享 TLB 条目。但是您的语言工具可能会要求您将它们重新定位到不同的用户虚拟地址。折叠的虚拟地址允许这样做。

折叠的虚拟地址不是用户可用的>64 位虚拟地址。

就此而言,有很多关于 >64 位指针的建议:例如,我研究了一个指针,其中指针由 64 位地址、64 位上下限和元数据组成,总共 128 位。边界检查。但是,尽管这些具有 >64 位的指针或功能,但它们并不是真正的 >64 位的虚拟地址。

Linus 在http://www.realworldtech.com/beta/forums/index.cfm?action=detail&id=103574&threadid=103545&roomid=2上发布了大约 128 位虚拟地址

于 2012-01-06T08:21:11.713 回答
0

对 64 位处理器的主要需求是处理更多内存——这就是切换到 64 位的驱动力。在 32 位系统上,您实际上只能寻址 4Gb 的 RAM,至少每个进程是这样​​。4Gb并不多。

64 位为您提供了几个 PB 的地址空间。(尽管,许多当前的 64 位硬件可以“仅”寻址 48 位 - 这仍然足以支持 256 TB 的内存)。

但是,增加处理器的自然整数大小并不会自动使其“更好”。有权衡。使用 128 位,您需要两倍于常见数据类型的 64 位存储空间(寄存器/内存/缓存/等) - 可能存在的所有缺点 - 需要更多内存来存储数据,更多数据要传输 = 更慢,更宽的总线可能需要更多的物理空间/也许更多的功率等。

于 2010-04-12T12:59:44.403 回答
0

处理器架构的下一件大事将是量子计算。一个 qbit 的概率不是 0 或 1,而是 0 或 1。

这将导致算法性能的巨大改进(例如,破解任何 RSA 私钥/公钥将非常容易)。

查看http://en.wikipedia.org/wiki/Quantum_computer了解更多信息,15 年后见 ;-)

于 2010-04-12T12:44:29.257 回答