我有幾個基準應用程序符合SPARC V8 32位體系結構。我將它們用於SPARC 32位處理器的性能評估。但是,很少有應用程序的性能不足。我想用64位SPARC V9架構(如OpenSPARC T1/T2)測試性能。我的問題是,32位SPARC V8體系結構的編譯二進制文件是否將在SPARC V9體系結構中運行,而無需進行任何修改?兩種體系結構中的二進制文件是否兼容?32位SPARC V8應用程序可以在64位SPARC V9上運行嗎?
2
A
回答
1
術語混淆...
SPARC有點像ARM。您有:
- SPARC芯片架構(只要它們是Sun Microsystems /現在的Oracle開發的)被命名爲
sun4[a-z]
;實際流片只爲sun4
,sun4c
,,sun4m
,sun4u
和sun4v
這對應於ARM[1-9]
,ARM11
,Cortex-...
,即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位模式運行。
儘管如此,sun4u
和sun4v
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設計以提高吞吐量。
相關問題
- 1. SPARC硬件上的64位與32位性能與1.6 JVM
- 2. 32位應用程序可以在64位iPhone 5S上運行嗎?
- 3. gcc在sparc上生成32位代碼
- 4. libiconv solaris-sparc/opteron 64位
- 5. 我可以在32位機器上運行64位dll嗎?
- 6. 32位應用程序如何在64位Mac上運行?
- 7. 在64位機器上運行32位.NET應用程序
- 8. Sparc V8 RTOS查詢
- 9. 在Sparc 32位上處理值> 2^32的整數
- 10. 我可以在32位系統上運行在64位系統上開發的C#應用程序嗎?
- 11. 32位/ 64位Windows/Linux應用程序
- 12. 在64位操作系統上以32位身份運行AnyCPU應用程序
- 13. 在32位或64位matlab上運行?
- 14. 在XP,Vista,Windows7 ... 32和64位上運行.Net應用程序
- 15. 我可以在Sun SPARC服務器上運行Ubuntu Enterprise Cloud嗎?
- 16. 使用arm v8運行32位和64位操作系統
- 17. 是否可以從32位應用程序訪問64位dll?
- 18. 我可以將64位SQL Server作爲32位運行嗎?
- 19. 我可以在NetBeansIDE 32位上運行NetBeansIDE 64位開發的應用程序嗎?
- 20. solaris sparc 9/10 libstdC++兼容性問題(64位)
- 21. 在64位和32位系統上運行程序
- 22. WiX:阻止32位安裝程序在64位Windows上運行
- 23. 可以在64位Mac OS X上使用32位eclipse RCP嗎?
- 24. 如何在Vista 64上以32位模式運行程序?
- 25. 32位NSIS可以啓動64位程序嗎?
- 26. 如何使用VB 2005在64位上運行32位應用程序?
- 27. 在ubuntu上構建32位應用程序並使用64位庫運行它
- 28. 檢測C++應用程序是在32位還是在64位Windows上運行
- 29. 我可以從64位應用程序運行32位的C#程序集(dll)嗎?
- 30. 32位PHP可以在64位IIS服務器上運行.vbs腳本嗎?