performance - protein - ¿Se puede ejecutar la aplicación SPARC V8 de 32 bits en SPARC V9 de 64 bits?
sparc protein (2)
Confusión terminológica ...
SPARC es un poco como ARM. Tienes:
- las arquitecturas de chip SPARC (en la medida en que fueron desarrolladas por Sun Microsystems / ahora Oracle) se llaman
sun4[az]
; cinta de salida real solo parasun4c
,sun4d
,sun4m
,sun4m
,sun4u
ysun4v
Esto corresponde aARM[1-9]
,ARM11
,Cortex-...
, es decir, la evolución del diseño de la CPU. - Los conjuntos de instrucciones de la CPU SPARC están ''versionados'' -
sparcv7
,sparcv8
/sparcv8+
,sparcv9
; algunos de estos son de 32 bits,sparcv9
es de 64 bits
Esto corresponde aARMv[0-9]
, revoluciones en el conjunto de instrucciones. - modos de funcionamiento (32 bits / 64 bits en SPARC);
ARM aquí tiene Thumb [2], 32bit ARM y ARMv8 / 64bit.
En este contexto, sparcv9
es el conjunto de instrucciones de 64 bits y, por lo tanto, requiere el modo operativo de 64 bits; la misma codificación binaria puede tener diferentes significados en modos de 32 bits / 64 bits y, por sparcv7/8
tanto, el código sparcv7/8
no se ejecutará en el modo de 64 bits.
Aún así, las arquitecturas de CPU sun4u
y sun4v
admiten el modo de 32 bits, con un conjunto de instrucciones sparcv8+
más algunas extensiones, y sparcv8
en sí mismo es un superconjunto de sparcv7
. Sun / Oracle se enorgullecen de su compatibilidad hacia atrás binaria; todas las CPU SPARC actuales deben ejecutar el código binario existente de 32 bits sin problemas. Supongo que, en este contexto, ¿estás hablando de los binarios de Solaris?
Tengo pocas aplicaciones de referencia cumplidas para la arquitectura SPARC V8 de 32 bits. Los usé para la evaluación del desempeño del procesador SPARC de 32 bits. Sin embargo, pocas aplicaciones se quedan cortas en rendimiento. Quiero probar el rendimiento con una arquitectura SPARC V9 de 64 bits (como OpenSPARC T1 / T2). Mi pregunta es si los binarios compilados para la arquitectura SPARC V8 de 32 bits se ejecutarán en la arquitectura SPARC V9 sin ninguna modificación. ¿Son los binarios en ambas arquitecturas compatibles?
Suponiendo que está utilizando el mismo sistema operativo aunque tal vez en una versión más nueva. Entonces sí. Solaris Sparc es muy binario compatible con versiones anteriores. Cada revisión de la arquitectura Sparc fue diseñada con esto en mente.
Cosas que debes tener en cuenta:
- Sparc v7 es el denominador común más bajo, sin embargo, en la práctica, Sparc v8 cubrirá el 99% de las máquinas.
- Sparc v7 carece de punto flotante de hardware por lo que será más lento en la mayoría de los casos
- El código Sparcv8 será más rápido en algunos casos que el código Sparcv9 de 64 bits debido a la mitad de la sobrecarga de carga de instrucciones.
- el código óptimo para un Sparc v9 es más a menudo Sparc v8 + que es básicamente código de 32 bits con algunas extensiones que en su mayor parte solo tienen máquinas de 64 bits. Debido a esto, la mayoría de los sistemas operativos Sparc de 64 bits envían la mayoría del código como 32 bits con un código de 64 bits donde necesita acceso a más extensiones de RAM o de 64 bits para el rendimiento, como con el cifrado basado en software.
- Mientras que el ISA para Sparc es bastante estático, el rendimiento no es ... por ejemplo, las CPU Sparc T1 Niagra son lentas para cualquier tarea con un solo hilo, pero funcionan como champs cuando las cargas con muchas tareas. Sin embargo, algunos de los chips Fujitsu Sparc probablemente rivalizan con Intel por la velocidad en todas las áreas. Además, no me sorprendería en absoluto si algunas de las estaciones de trabajo Ultra más antiguas fueran mucho más rápidas que Niagra T1 / T2 para hilos individuales o de pareja. Una vez que ingresas en el área de muchos hilos, comenzará a brillar una CPU de estilo Niagra.
Así que recuerde que Sparc v7, Sparc v8 y Sparc v9 no son arquitecturas de chips, sino arquitecturas de conjuntos de instrucciones. El rendimiento de Sparc depende principalmente de la implementación de la arquitectura de la CPU. Los nuevos procesadores Sparc de Oracle están mejorando el rendimiento de un único subproceso mucho más que en el pasado, algo a tener en cuenta también (incluso si pudieran hacer un agujero en su billetera del tamaño de Texas).
Si su rendimiento es insuficiente y está diseñando una CPU basada en FPGA, considere seriamente mejorar su diseño de CPU para aumentar el rendimiento.