Articulo de referencia

F16C

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 ...

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

Referencias

  1. Chuck Walbourn (11 de septiembre de 2012). "DirectXMath: F16C y FMA" .
  2. "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 . 
  3. Nuevas instrucciones para "Bulldozer" y "Piledriver" (PDF) , AMD, octubre de 2012
  • 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