El conjunto de instrucciones visuales ( VIS ) es una extensión del conjunto de instrucciones SIMD para los microprocesadores SPARC V9 desarrollado por Sun Microsystems . Existen cinco versiones de VIS: VIS 1, VIS 2, VIS 2+, VIS 3 y VIS 4. [1]
Historia
VIS 1 se introdujo en 1994 y fue implementado por primera vez por Sun en su microprocesador UltraSPARC (1995) y por Fujitsu en sus microprocesadores SPARC64 GP (2000).
VIS 2 fue implementado por primera vez por UltraSPARC III . Todos los microprocesadores UltraSPARC y SPARC64 posteriores implementan el conjunto de instrucciones.
VIS 3 se implementó por primera vez en el microprocesador SPARC T4 .
VIS 4 se implementó por primera vez en el microprocesador SPARC M7 .
Diferencias con x86
VIS no es un conjunto de herramientas de instrucciones como MMX y SSE de Intel . MMX tiene solo 8 registros compartidos con la pila FPU , mientras que los procesadores SPARC tienen 32 registros, también asociados a los registros de punto flotante de doble precisión (64 bits).
Al igual que con las extensiones del conjunto de instrucciones SIMD en otros procesadores RISC , VIS se ajusta estrictamente al principio principal de RISC: mantener el conjunto de instrucciones conciso y eficiente.
Este diseño es muy diferente de las extensiones comparables en procesadores CISC , como MMX , SSE , SSE2 , SSE3 , SSE4 , 3DNow !.
A veces, los programadores deben utilizar varias instrucciones VIS para realizar una operación que se puede realizar con una sola instrucción MMX o SSE , pero se debe tener en cuenta que menos instrucciones no resultan automáticamente en un mejor rendimiento.
Funcionalidad
VIS reutiliza los registros de punto flotante de 64 bits de SPARC V9 existentes para almacenar múltiples valores enteros de 8, 16 o 32 bits. En este sentido, VIS es más similar al diseño de MMX que otras arquitecturas SIMD como SSE / SSE2 / AltiVec .
VIS incluye una serie de operaciones principalmente para compatibilidad con gráficos, por lo que la mayoría de ellas son solo para números enteros. Entre ellas se incluyen la conversión de 3D a 2D, el procesamiento de bordes y la distancia entre píxeles.
Hay cuatro formas de utilizar VIS en el código:
- La opción -mvis de GCC
- Utilice el ensamblaje en línea
- Utilice una plantilla en línea en VSDK, similar a los elementos intrínsecos del compilador, que tienen funciones C como interfaces
- Utilice la biblioteca multimedia mediaLib , que tiene interfaces de funciones C. Utiliza VIS en plataformas SPARC (y MMX/SSE/SSE2 en plataformas x86/x64) para acelerar la ejecución de aplicaciones multimedia.
Referencias
- ^ Liang He; Harlan McGhan (mayo de 2005). «MT mediaLib para procesadores Chip MultiThreaded (CMT)» (PDF) . Sun Microsystems, Inc. Archivado desde el original (PDF) el 30 de diciembre de 2006. Consultado el 3 de diciembre de 2007 .
- Gwennap, Linley (5 de diciembre de 1995). "UltraSparc añade instrucciones multimedia". Informe sobre microprocesadores .
- Tremblay, Marc et al. (agosto de 1996). "VIS acelera el procesamiento de nuevos medios". IEEE Micro .
Enlaces externos
- Introducción a las ofertas de SIMD de SPARC (pequeño tutorial)
- Extensiones del conjunto de instrucciones UltraSPARC y VIS
- Funciones integradas de GCC SPARC VIS