从 16 位架构过渡到 32 位和 64 位架构的原因

问题描述

为什么在现代通用处理器(例如 ARM)中使用 64 位寄存器?对于大多数用户任务,16 位 ALU 就足够了(对于媒体和其他任务,还有更多位 SIMD)。

对于mOOderators:不要屏蔽这个问题,stackoverflow上没有答案,不重复!

解决方法

主要原因是地址空间。使用 32 位寄存器,您可以寻址 4 GB 的内存(或者更有可能仅需要 2 GB 作为内存映射 IO 的地址空间的一部分)。 2 GByte 对于当今的服务器、台式计算机和智能手机来说显然是不够的。所以使用了 64 位寄存器。

由于寄存器和 ALU 是通用寄存器 ALU,即用于计算内存中的地址和一般数值计算,因此 64 位架构已盛行。

我也拒绝你的说法,即 16 位 ALU 在大多数情况下就足够了。 16 位数字非常有限。我想 32 位 ALU 通常就足够了。

,

一般而言,处理器的发布是根据可能提前/正在进行的预期/要求,并基于生态系统在其他硬件组件、软件组件/功能和新兴技术方面的演变。

内存成本的降低为具有高 RAM 大小的系统铺平了道路,并且使用超过 4GB 的虚拟内存空间成为处理某些类型用例场景/问题/解决方案的理想选择。为了满足这一要求,MIPS 和 DEC 提出了最初的 64 位架构,主要面向服务器机器和高端工作站。

与 32 位处理器相比,64 位处理器可以一次处理更多数据,可以存储更多计算值,包括内存地址,因此可以访问大量内存。相应地,32 位处理器具有 4GB 的可寻址空间,而 64 位处理器具有 16GB 的可寻址空间。

这使应用程序能够顺利执行内存读取和其他操作,因为操作系统没有应用程序正在使用的命令的“翻译”(内存打包/解包等)开销。此外,如果应用程序对内存有巨大的需求,那么 64 位版本将具有优势。如果系统是 16GB RAM,那么最好使用 64 位以最大限度地利用 RAM。需要多任务处理的应用程序受益匪浅,因为它可以在多个任务之间快速切换。例如,需要保存大量上下文并同时打开/操作多个庞大文件集的图像处理/编辑软件,将从中受益。需要处理负载/压力测试的系统也从中受益。更大的 RAM 可用性和 64 位处理器的增加使顶级操作系统制造商能够构建充分利用 64 位支持的操作系统。因此,需要高性能要求的应用程序和游戏软件可以充分利用 RAM 可用性。

64 位支持的好处并非适用于所有应用程序,除非应用程序需要大地址空间或处理 64 位数据项,否则可能不会考虑 64 位环境/系统。因此它适用于可能需要此要求的应用程序。

另外,需要注意的是,并非所有算法都需要使用 SIMD 技术或使用 SIMD 技术运行,因此使用应根据产品/应用程序要求而适用。