随着应用程序日渐多功能化和复杂化,同时数据集的大小不断增长,现有应用程序对地址空间的要求也持续增加。目前,某些类的应用程序需要超过 32 位系统的 4 GB 地址空间限制。以下举例说明了超过 4 GB 地址空间的应用程序:
各种数据库应用程序,特别是那些执行数据挖掘的应用程序
Web 高速缓存和 Web 搜索引擎
CAD(计算机辅助设计)和 CAE(计算机辅助工程)模拟组件以及建模工具
科学计算
开发 64 位计算环境的主要目的是为了使这些应用程序和其他大型应用程序能够高效运行。
图 1–1 中的图表绘制了在安装了大量物理内存的计算机上,典型的性能与所运行的应用程序的问题大小之间的关系。如果问题非常小,则数据高速缓存 (D$
) 或外部高速缓存 (E$
) 中可以容纳整个程序。但是,程序的数据区域最终会变得非常大,以至于占满 32 位应用程序的整个 4 GB 虚拟地址空间。
超出 32 位虚拟地址限制之后,应用程序编程人员仍可以处理大型问题。对于超出 32 位虚拟地址空间限制的应用程序,通常可以在主存储器和辅助存储器(例如,磁盘)之间分割应用程序数据集。遗憾的是,向磁盘驱动器传入或传出数据远比在内存间传输数据慢(相差若干个数量级)。
现在,许多服务器都可以处理 4 GB 以上的物理内存。高端台式机遵循同样的趋势,但是,没有任何 32 位程序可直接处理 4 GB 以上的空间。不过,64 位应用程序可以使用 64 位虚拟地址空间功能来允许直接处理最多为 18 EB(1 EB 大约等于 1018 个字节)的空间进行寻址。这样,较大的问题便可以直接在主存储器中进行处理。对于可伸缩的多线程应用程序,可以向系统中添加更多处理器以进一步加快应用程序的执行速度。此类应用程序仅受计算机中物理内存量的限制。
不过,很显然,对于各类应用程序来说,能够直接在主存储器中处理大型问题无疑是 64 位计算机的主要性能优势。
主存储器中可驻留更大的数据库。
主存储器中可以容纳更大的 CAD/CAE 模型和模拟对象。
主存储器中可以容纳更大的科学计算问题。
Web 高速缓存可在内存中包含更多内容,从而缩短了延迟时间。
迫切需要创建 64 位应用程序的其他原因还包括:
需要针对 64 位整数值执行大量计算,这些值使用 64 位处理器更宽的数据路径来提高性能。
几个系统接口已进行了增强或者取消了限制,因为用来增强这些接口的基础数据类型的长度已变大。
需要获取 64 位指令集的性能益处(如改进的调用约定和充分利用寄存器集)。