gpt4 book ai didi

32bit-64bit - 32 位操作与 64 位机器/操作系统上的 64 位操作

转载 作者:行者123 更新时间:2023-12-04 17:58:58 24 4
gpt4 key购买 nike

哪个操作,即 32 位操作或 64 位操作(如屏蔽 32 位标志或 64 位标志),在 64 位机器上会更便宜?

最佳答案

由于您没有指定架构,我只能建议一般性的答案,因为它取决于操作和所讨论的处理器架构。一旦您在 CPU 寄存器中有数据,那么无论该值最初是 32 位还是 64 位,大多数操作通常会花费相同的时间。

但是,数据进入寄存器的方式在某些架构上可能存在一些差异。以下是在某些硬件上“ native ”值可能比较小值更快的一些情况:

获取数据

  • 获取“ native 大小”的值可能比获取较小的值更快。也就是说,处理器可能无论如何都需要获取 64 位,然后屏蔽/移出其中的 32 位以“加载”一个 32 位值。在处理 64 位值时不需要这种掩码/移位,因此可以更快地加载它。 (这违背了直觉的想法,即两倍大的东西可能需要两倍的时间来加载)。
  • 或者,如果总线可以处理半角读取,则可以在加载 64 位值的同时加载 32 位。
  • 更令人困惑的是,CPU 缓存也会改变结果。通常,当您从内存中读取一个值时,会将多个内存位置的“一行”读入缓存,以便可以从快速缓存内存提供后续读取,而不需要从 RAM 中完全提取。在这种情况下,如果您按顺序访问许多值,使用 32 位值会更快,因为它们将被缓存两倍,从而减少缓存未命中。

  • 计算
  • 处理器硬件针对处理 64 位值进行了优化,因此使用 32 位计算值可能会导致更多麻烦,从而可能会减慢速度。例如它可能能够“本地”处理 double (64 位)值,但必须先将浮点(32 位)值转换为 double ,然后才能处理它,然后再将结果转换回浮点。
  • 或者,可能有 32 位和 64 位路径通过 CPU,或者 CPU 可能能够以不影响指令总执行时间的方式进行任何所需的转换,在这种情况下,它们可以被计算以同样的速度。
  • 这可能会影响复杂操作(浮点),但不太可能是简单操作(AND、OR 等)的问题
  • 关于32bit-64bit - 32 位操作与 64 位机器/操作系统上的 64 位操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2588472/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com