32 位 SPARC V8 应用程序能否在 64 位 SPARC V9 上运行?

Sha*_*han 2 performance cpu-architecture sparc 32bit-64bit

我很少有符合 SPARC V8 32 位架构的基准测试应用程序。我将它们用于 SPARC 32 位处理器的性能评估。然而,很少有应用程序在性能上达不到要求。我想用 64 位 SPARC V9 架构(如 OpenSPARC T1/T2)测试性能。我的问题是 32 位 SPARC V8 体系结构的编译二进制文件是否可以在 SPARC V9 体系结构中运行而无需任何修改?两种架构中的二进制文件是否兼容?

cb8*_*b88 5

假设您使用的是相同的操作系统,尽管可能是较新的版本。好的。Solaris Sparc 具有很强的二进制向后兼容性。Sparc 架构的每个版本在设计时都考虑到了这一点。

您应该记住的事情:

  • Sparc v7 是最低公分母,但实际上 Sparc v8 将覆盖 99% 的机器。
  • Sparc v7 通常缺乏硬件浮点,因此在大多数情况下它会变慢,尽管有时会添加它作为加速器。
  • 在某些情况下,Sparcv8 代码比 Sparcv9 64 位代码更快,因为指针只有 Sparcv9 64 位代码的一半大。
  • Sparc v9 的最佳代码通常是 Sparc v8+,它基本上是 32 位代码,带有一些大多数情况下只有 64 位机器才有的扩展。因此,大多数 64 位 Sparc 操作系统都以 32 位形式提供大部分代码,其中一些 64 位代码需要访问更多 RAM 或仅限 64 位扩展以提高性能,例如基于软件的加密。
  • 虽然 Sparc 的 ISA 相当静态,但性能却并非如此。例如,Sparc T1 Niagra CPU 对于任何单线程任务来说都非常慢,但当您向它们加载许多任务时,它的运行速度却非常快。然而,一些富士通 Sparc 芯片可能在各个领域的速度上与英特尔相媲美。另外,如果一些较旧的 Ultra 工作站在单线程到双线程方面比 Niagra T1/T2 快得多,我也不会感到惊讶。一旦进入多线程领域,Niagra 风格的 CPU 将开始大放异彩。

因此请记住 Sparc v7、Sparc v8 和 Sparc v9 不是芯片架构,它们是指令集架构。Sparc的性能主要取决于CPU架构的实现。Oracle 最新的 Sparc 处理器比过去提高了单线程性能,这一点也值得牢记(即使它们会在你的钱包上烧出一个德克萨斯州大小的洞)。

如果您的性能达不到要求,并且您正在设计基于 FPGA 的 CPU,请认真考虑改进您的 CPU 设计以提高吞吐量。