【问题标题】:32 vs 64 bit...or, what exactly does 'processing information' mean32 与 64 位……或者,“处理信息”到底是什么意思
【发布时间】:2011-02-01 16:37:46
【问题描述】:

我无法理解 32 位处理器和 64 位处理器之间的区别。我知道 32 位处理器一次可以访问 32 位,而 64 位处理器一次可以访问 64 位。但是一次访问一定数量的位究竟是什么意思呢?

【问题讨论】:

  • 这个太含糊不清了

标签: memory operating-system processor computer-architecture


【解决方案1】:

基本上,这意味着能够对这种大小的数字进行操作(例如添加它们)。虽然 32 位和 64 位架构之间的差异比这更多。

【讨论】:

    【解决方案2】:

    这是衡量处理能力的指标。更像是一辆可以搭载 4 名乘客或 12 名乘客的车辆,但能耗大致相同。

    例如,32 位包含 4 个字节或 4 个普通字符,而 64 位是 8 个字节,而对于浪漫语言来说,则为 8 个字符。对于相应的架构数据宽度,可以一次对这些操作进行多种操作。

    另一种看待它的方式是架构可以直接使用多大的整数。对于这些宽度中的每一个,对应的范围是

    8 位:0 到 255 / -128 到 127
    16 位:0 到 65,535 / -32768 到 32767
    32 位:0 到 4,294,967,295 / -2,147,483,648 到 2,147,483,647
    64 位:0 到 18,446,744,073,709,551,615 / -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

    【讨论】:

    • 这根本不是真的。 32 位处理器不一定不如 64 位。
    • 当然。它并不比特定发动机的排量更能代表整体性能。
    【解决方案3】:

    Wikipedia entry for 64-bit 为这个话题带来了一些很好的启发

    【讨论】:

    • 这在理论上可以回答这个问题,但it would be preferable 将答案的基本部分包含在此处供未来用户使用,并提供链接以供参考。
    【解决方案4】:

    这不是一个非常精确的表达方式,但我认为它是指内存地址的长度。例如,32 位意味着 4 GiB(232 字节)可供程序使用。

    (顺便说一句,请查看IBM s390 31 位架构。)

    此外,CPU 一次可以读取或操作的数据量并不总是最大。例如,64 位 AMD/Intel 处理器具有一系列片上缓存,可以从主内存中大块提取数据。它们还具有 128 位 SSE 寄存器。

    【讨论】:

      【解决方案5】:

      我注意到你标记了记忆,所以我会用那个答案:

      在 32 位处理器中,处理器只能使用 32 位来寻址内存。这意味着有 2^32 个唯一的组合,因此,处理器只能寻址 2^32 个字节。 (4Gb)

      在 64 位处理器中,处理器(理论上)可以使用 64 位来寻址内存,或 2^64 字节的可寻址内存。我相信这相当于 16 个 Exo Bytes,这是一个巨大的数字,几乎可以计算你机器中分子的数量。但在实践中,由于当前的硬件限制,今天在线上的大多数 CPU 只允许您处理 42 位物理内存和 48 位虚拟内存。

      【讨论】:

      • 32 位与地址总线无关。市面上有很多具有 36 位地址总线的 32 位机器(例如,英特尔架构上的 PAE 和 PSE-36)。
      • 是的,但这有点无关紧要。我想我应该指出一个 32 位处理器可以拥有多于或少于 32 个可寻址位的内存
      【解决方案6】:

      我想真正的答案是它很复杂。除了专门的研究之外,隐喻是唯一能给你一个基本概念的东西。 Wallyk 走在正确的轨道上。

      有几件事可以驱动处理器。一是每秒可以执行多少次操作(以赫兹为单位)。虽然架构无法给出简单的答案,但 1Ghz 单核处理器每秒执行 1,000,000,000 次操作。大致。虽然可以获得更具体的答案,但它不会澄清这种情况。

      处理器也是其他东西,例如内存控制器(在 i7 中)、ALU 和 FPU 以及其他专用电路,这就是让这个问题难以回答的原因。

      不过,出于您的意图和目的,每个处理器都有寄存器。寄存器就像暂存空间(比内存快),供处理器在处理少量数据时存储。这些由 L1 和 L2(有时是 L3)缓存支持,速度也快得离谱。基本上,64 位是指暂存空间的大小(通过代理,将寄存器连接到缓存的管道,因为数据一次加载和加载)。

      更大的暂存空间意味着无需从缓存或内存中读取新信息即可完成更多工作。然而,仅仅因为它可以做到并不意味着它总是会。程序通常必须在 64 位支持下编译以利用加速,即使那样,除非您处理大于 32 位可以存储的数据,否则您通常也不会看到差异。不过,对于系统程序员来说,这更像是一个问题。

      处理器还需要密切关注内存中的内容(例如,正在使用的内容和未使用的内容。)它使用一个特殊的寄存器来做到这一点。 32 位处理器通常不能寻址超过 4GB 的 RAM 的原因与该寄存器的大小有关。虽然 PAE 等处理器扩展允许 32 位处理器上的 32 位操作系统处理多达 64 GB 的 RAM,但大多数操作系统通常不支持它。

      TL;DR,64 位处理器通过正确的编程可以一次对更大的数据块执行操作,并寻址更多内存。除此之外,没有太大的区别。

      编辑:以免人们误解,“操作”我并不是专门指操作(加法、乘法等)。糟糕的是,我专注于回答问题,而不是全面介绍微处理器架构。

      【讨论】:

      • 从程序员的角度来看,这正是它的意思。在更复杂的事情(例如优化指令或考虑数据是否已经在缓存中或是否必须从内存中获取)之前,Hertz 指定每秒执行多少操作,即使该操作未完成。一些操作需要更长的时间(除法/乘法/模数值得注意,因为它们是由加/减操作连续构建的)。也许您想用答案/澄清来启发我,而不仅仅是反对和谴责?这不是回答问题的地方吗?
      • 很棒的解释。我来这里是因为苹果刚刚推出了 64 位处理器的 iPhone5S,所以想知道它有那么大吗。
      • @emcee 只是好奇,您说“32 位处理器通常不能处理超过 4GB 的 RAM”。 64 位的 RAM 限制是多少?
      猜你喜欢
      • 1970-01-01
      • 2012-04-04
      • 2010-12-29
      • 2014-03-10
      • 1970-01-01
      • 2017-08-07
      • 2017-07-20
      • 2014-09-23
      • 2014-07-25
      相关资源
      最近更新 更多