2013-05-04 91 views
2

我有幾個基準應用程序符合SPARC V8 32位體系結構。我將它們用於SPARC 32位處理器的性能評估。但是,很少有應用程序的性能不足。我想用64位SPARC V9架構(如OpenSPARC T1/T2)測試性能。我的問題是,32位SPARC V8體系結構的編譯二進制文件是否將在SPARC V9體系結構中運行,而無需進行任何修改?兩種體系結構中的二進制文件是否兼容?32位SPARC V8應用程序可以在64位SPARC V9上運行嗎?

回答

1

術語混淆...

SPARC有點像ARM。您有:

  • SPARC芯片架構(只要它們是Sun Microsystems /現在的Oracle開發的)被命名爲sun4[a-z];實際流片只爲sun4sun4c,​​,sun4msun4usun4v
    這對應於ARM[1-9]ARM11Cortex-...,即CPU設計的演進。
  • SPARC CPU指令集是'版本化的 - sparcv7,sparcv8/sparcv8+,sparcv9;其中一些是32位,sparcv9是64位
    這對應於ARMv[0-9],對指令集進行轉換。
  • 工作模式(SPARC上的32位/ 64位);
    ARM這裏有Thumb [2],32位ARM和ARMv8/64bit。

在這種情況下,sparcv9是64位指令集,因此需要64位工作模式;在32位/ 64位模式下相同的二進制編碼可能具有不同的含義,因此sparcv7/8代碼將不會以64位模式運行。

儘管如此,sun4usun4v CPU架構支持32位模式 - 在自己爲的sparcv7一個超集sparcv8+指令集加了一些擴展,並sparcv8。 Sun/Oracle爲自己的二進制向後兼容性而自豪;所有當前的SPARC CPU都應該運行現有的32位二進制代碼而不會出現問題。在這種情況下,我假設你在談論Solaris二進制文件?

3

假設您使用的是相同的操作系統,但可能是在較新的版本。好的。 Solaris Sparc非常兼容二進制。 Sparc架構的每個修訂版都是在設計時考慮到了這一點。

事情你應該記住:

  • 的Sparc V7然而最小公分母在實踐中SPARC V8西港島線覆蓋機器的99%。
  • 的Sparc V7缺乏硬件浮點所以這將是在大多數情況下都慢
  • Sparcv8代碼會更快在某些情況下比SPARCV9 64位代碼,由於一半的指令負荷開銷。
  • Sparc v9的最佳代碼最經常是Sparc v8 +,它基本上是32位代碼,其中一些擴展在大多數情況下只有64位機器具有。由於這種情況,大多數64位Sparc操作系統都將大部分代碼作爲32位代碼發佈,其中一些64位代碼需要訪問更多內存或64位擴展,才能實現性能,例如基於軟件的加密。
  • 雖然用於Sparc的ISA是相當靜態的性能不是..例如Sparc T1 Niagra CPU對於任何單線程任務來說都很慢,但是當您用很多任務加載它們時就像冠軍一樣運行。然而,一些富士通Sparc芯片可能與英特爾在各個領域的速度相提並論。另外,如果一些舊的Ultra工作站比Niagra T1/T2更快,那麼對於單個到多個線程,我也不會輕易得到。一旦進入許多線程區域,Niagra風格的CPU將開始發光。

所以記住,Sparc v7,Sparc v8和Sparc v9不是芯片架構,它們是指令集架構。 Sparc的性能主要取決於CPU架構的實現。甲骨文公司最新的Sparc處理器正在改進單線程性能,比過去要多得多(即使它們會在德克薩斯州的大小的錢包中燒出一個洞)。

如果您的性能不足並且您正在設計基於FPGA的CPU,請認真考慮改進您的CPU設計以提高吞吐量。

相關問題