El conjunto de instrucciones F16C [ 1 ] (anteriormente conocido informalmente como CVT16 ) es una extensión de la arquitectura del conjunto de instrucciones x86 que proporciona soporte para la conversión entre formatos de punto flotante de precisión media y precisión simple estándar IEEE .
Historia
El conjunto de instrucciones CVT16, anunciado por AMD el 1 de mayo de 2009, [ 2 ] es una extensión de las instrucciones del núcleo SSE de 128 bits en los conjuntos de instrucciones x86 y AMD64 .
CVT16 es una revisión de parte de la propuesta del conjunto de instrucciones SSE5 , anunciada el 30 de agosto de 2007, que se complementa con los conjuntos de instrucciones XOP y FMA4 . Esta revisión hace que la codificación binaria de las nuevas instrucciones propuestas sea más compatible con las extensiones de instrucciones AVX de Intel , mientras que la funcionalidad de las instrucciones permanece inalterada.
En documentos recientes, el nombre F16C se utiliza formalmente tanto en las especificaciones de arquitectura x86-64 de Intel como de AMD .
Información técnica
Hay variantes que convierten cuatro valores de punto flotante en un registro XMM u ocho valores de punto flotante en un registro YMM .
Las instrucciones son abreviaturas de "vector convertir medio empaquetado a simple empaquetado" y viceversa:
VCVTPH2PS xmmreg,xmmrm64– convertir cuatro valores de punto flotante de precisión media en la memoria o en la mitad inferior de un registro XMM a cuatro valores de punto flotante de precisión simple en un registro XMM.VCVTPH2PS ymmreg,xmmrm128– convertir ocho valores de punto flotante de precisión media en memoria o en un registro XMM (la mitad inferior de un registro YMM) a ocho valores de punto flotante de precisión simple en un registro YMM.VCVTPS2PH xmmrm64,xmmreg,imm8– convertir cuatro valores de punto flotante de precisión simple en un registro XMM a valores de punto flotante de precisión media en la memoria o en la mitad inferior de un registro XMM.VCVTPS2PH xmmrm128,ymmreg,imm8– convertir ocho valores de punto flotante de precisión simple en un registro YMM a valores de punto flotante de precisión media en la memoria o en un registro XMM.
El argumento inmediato de 8 bits VCVTPS2PHselecciona el modo de redondeo . Los valores 0–4 seleccionan el más cercano, hacia abajo, hacia arriba, truncar y el modo establecido en MXCSR.RC.
El soporte para estas instrucciones se indica mediante el bit 29 de ECX después de CPUID con EAX=1 .
CPUs con F16C
- AMD :
- Procesadores basados en Jaguar
- Procesadores basados en Puma
- Procesadores de "equipos pesados"
- Procesadores basados en Piledriver , cuarto trimestre de 2012 [ 3 ]
- Procesadores basados en apisonadoras , primer trimestre de 2014
- Procesadores basados en excavadoras , segundo trimestre de 2015
- Procesadores basados en Zen , primer trimestre de 2017 y posteriores.
- Intel :
- Procesadores Ivy Bridge y más recientes
Referencias
- ↑ Chuck Walbourn (11 de septiembre de 2012). "DirectXMath: F16C y FMA" .
- ↑ "Instrucciones XOP, FMA4 y CVT16 de 128 y 256 bits" (PDF) . Manual del programador de la arquitectura AMD64 . Vol. 6. 1 de mayo de 2009. Archivado del original (PDF) el 20 de mayo de 2009. Consultado el 5 de julio de 2022 .
- ↑ Nuevas instrucciones para "Bulldozer" y "Piledriver" (PDF) , AMD, octubre de 2012
Enlaces externos
- Nuevas instrucciones para excavadoras y pilotadorasArchivado el 7 de enero de 2013 en Wayback Machine .
- Matemáticas de DirectX F16C y FMA
- Manual del programador de la arquitectura AMD64, volumen 1Archivado el 14 de diciembre de 2013 en Wayback Machine .
- Manual del programador de la arquitectura AMD64, volumen 2
- Manual del programador de la arquitectura AMD64, volumen 3Archivado el 14 de diciembre de 2013 en Wayback Machine .
- Manual del programador de la arquitectura AMD64, volumen 4Archivado el 14 de noviembre de 2021 en Wayback Machine .
- Manual del programador de la arquitectura AMD64, volumen 5Archivado el 14 de diciembre de 2013 en Wayback Machine .
- Manual del desarrollador de software de arquitecturas IA32
- Instrucciones X86
- Tecnologías AMD