El conjunto de instrucciones F16C [1] (anteriormente / informalmente conocido como CVT16 ) es una extensión de la arquitectura del conjunto de instrucciones x86 que brinda soporte para convertir entre formatos de punto flotante de precisión simple y de precisión media IEEE estándar .
Historia
El conjunto de instrucciones CVT16, anunciado por AMD el 1 de mayo de 2009, es una extensión de las instrucciones centrales SSE de 128 bits en el conjunto de instrucciones x86 y AMD64 .
CVT16 es una revisión de parte de la propuesta de 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 no se modifica.
En documentos recientes, el nombre F16C se usa formalmente en las especificaciones de la arquitectura Intel y AMD x86-64 .
Información técnica
Hay variantes que convierten cuatro valores de punto flotante en un registro XMM o 8 valores de punto flotante en un registro YMM .
Las instrucciones son abreviaturas de "vector convertir la mitad empaquetada en un solo empaquetado" y viceversa:
VCVTPH2PS xmmreg,xmmrm64
- convierta cuatro valores de coma flotante de precisión media en la memoria o la mitad inferior de un registro XMM en cuatro valores de coma flotante de precisión simple en un registro XMM.VCVTPH2PS ymmreg,xmmrm128
- convierta ocho valores de coma flotante de precisión media en la memoria o un registro XMM (la mitad inferior de un registro YMM) en ocho valores de coma flotante de precisión simple en un registro YMM.VCVTPS2PH xmmrm64,xmmreg,imm8
- convierta cuatro valores de coma flotante de precisión simple en un registro XMM en valores de coma flotante de precisión media en la memoria o la mitad inferior de un registro XMM.VCVTPS2PH xmmrm128,ymmreg,imm8
- convierta ocho valores de coma flotante de precisión simple en un registro YMM en valores de coma flotante de precisión media en la memoria o un registro XMM.
El argumento inmediato de 8 bits para VCVTPS2PH
selecciona el modo de redondeo . Los valores 0–4 seleccionan más cercano, abajo, arriba, truncar y el modo establecido MXCSR.RC
.
El soporte para estas instrucciones se indica mediante el bit 29 de ECX después de CPUID con EAX = 1 .
CPU con F16C
- AMD :
- Procesadores basados en Jaguar y más nuevos
- Procesadores basados en Puma y más nuevos
- Procesadores de "equipo pesado"
- Procesadores basados en bulldozer, cuarto trimestre de 2011 [2]
- Procesadores basados en Piledriver , cuarto trimestre de 2012 [3]
- Procesadores basados en apisonadora, primer trimestre de 2014
- Procesadores basados en excavadoras y más nuevos, 2015
- Procesadores basados en Zen , primer trimestre de 2017
- Procesadores basados en Zen + , segundo trimestre de 2018
- Procesadores basados en Zen2 , tercer trimestre de 2019
- Intel :
- Procesadores Ivy Bridge y más nuevos
Referencias
- ^ Chuck Walbourn (11 de septiembre de 2012). "DirectXMath: F16C y FMA" .
- ^ David Christie (2009-05-07), lograr un equilibrio , los blogs de AMD Developer, archivada desde el original en 11/09/2013 , recuperado 2012-01-17
- ^ Nuevas instrucciones "Bulldozer" y "Piledriver" (PDF) , AMD, octubre de 2012
enlaces externos
- Instrucciones para excavadoras y perforadoras nuevas [1]
- DirectX Math F16C y FMA [2]
- Manual del programador de la arquitectura AMD64 Volumen 1 [3]
- Manual del programador de la arquitectura AMD64 Volumen 2 [4]
- Manual del programador de la arquitectura AMD64 Volumen 3 [5]
- Manual del programador de la arquitectura AMD64 Volumen 4 [6]
- Manual del programador de la arquitectura AMD64, volumen 5 [7]
- Manual del desarrollador de software de arquitecturas IA32 [8]