Instrucciones y Registros del procesador Intel(R) Core(TM) i5 450M

Anuncio
Tecnológico de Estudios
Superiores de Jocotitlán
Instrucciones y
Registros del
procesador
Intel(R) Core(TM)
i5 450M
Autores:
-Adelina Hernández Torres
-Luis Angel Hermenegildo D.
Arquitectura de Computadoras
Contenido
INTRODUCCIÓN ............................................................................................................................. 4
OBJETIVOS ..................................................................................................................................... 4
Intel® Core™ i5-450M Processor (3M cache, 2.40 GHz) ...................................................... 4
Nombre del procesador: i5-450M .............................................................................................. 4
Fecha de lanzamiento: Q2'10 .................................................................................................... 4
Marca: Intel® Core™ .................................................................................................................. 4
Máximo de memoria: 8 Gb ......................................................................................................... 4
Niveles de cache: 3 Mb .............................................................................................................. 4
Velocidad: 2.40 GHz ................................................................................................................... 4
Tipo de socket: PGA988............................................................................................................. 4
Datos (I/O) (FSB): 2500 MHz ..................................................................................................... 4
DMI: 2.5 GT/s .............................................................................................................................. 4
Tipo de memoria: DDR3-800/1066 ............................................................................................ 4
1.
Instrucciones MMX ™ ............................................................................................................. 8
1.2 MMX Instrucciones de transferencia de datos ...................................................................... 8
1.3 Operaciones de conversión MMX ......................................................................................... 8
1.4 MMX Instrucciones aritméticas Almuerzos ........................................................................... 9
1.5 MMX Operaciones de comparación ...................................................................................... 9
1.6 Instrucciones lógicas MMX ................................................................................................ 10
1.7 MMX de desplazamiento y rotación ................................................................................... 10
2.
Instrucciones SSE.................................................................................................................. 11
2.1 SSE SIMD de precisión simple operaciones en coma flotante .............................................. 11
2.2 ESE Instrucciones de transferencia de datos ....................................................................... 11
2.3 INSTRUCCIONES SET RESUMEN .......................................................................................... 11
2.4 ESE Instrucciones aritméticas pic ........................................................................................ 12
2.5 ESE Operaciones de comparación ....................................................................................... 13
2.6 ESE Instrucciones lógicas .................................................................................................... 13
2.3 INSTRUCCIONES SET RESUMEN .............................................................................................. 13
2.4 SSE aleatoria e Instrucciones Descomprimir........................................................................ 13
2.5 Operaciones de conversión SSE .......................................................................................... 14
2.6 SSE MXCSR instrucciones de administración de estado ....................................................... 14
2.7 SSE 64 bits enteros SIMD instrucciones............................................................................... 14
2.6 SSE Control de almacenamiento en caché , Prefetch , e Instrucción Instrucciones para Ordenar
.................................................................................................................................................... 15
2.9 SSE SIMD de precisión simple operaciones en coma flotante .................................................. 16
2.9.1 ESE Instrucciones de transferencia de datos .................................................................... 16
2.10 INSTRUCCIONES SET RESUMEN ............................................................................................ 17
2.10.1 ESE Instrucciones aritméticas pic ....................................................................................... 17
2.10.2 ESE Operaciones de comparación ...................................................................................... 18
2.10.3 ESE Instrucciones lógicas ................................................................................................... 18
2.11 INSTRUCCIONES SET RESUMEN ............................................................................................ 18
2.11.1 Operaciones de conversión SSE ......................................................................................... 19
2.11.2 SSE MXCSR instrucciones de administración de estado ...................................................... 19
2.11.3 SSE 64 bits enteros SIMD instrucciones.............................................................................. 20
2.12 Instrucciones SSE2 ................................................................................................................ 21
2.12.1 SSE2 Bolsas y Scalar doble precisión operaciones en coma flotante ................................... 21
2.12.2 SSE2 Instrucciones de transferencia de datos .................................................................... 21
2.13 INSTRUCCIONES SET RESUMEN ............................................................................................ 22
2.13.1 SSE2 Instrucciones aritméticas Almuerzos ......................................................................... 22
2.13.2 SSE2 Instrucciones lógicas ................................................................................................. 23
2.13.4 SSE2 Instrucciones de comparación ................................................................................... 23
2.13.5 SSE2 aleatoria e Instrucciones Descomprimir..................................................................... 23
2.14 INSTRUCCIONES SET RESUMEN ............................................................................................ 23
2.14.1 SSE2 Operaciones de conversión ....................................................................................... 24
2.14.6 SSE2 Embalado precisión simple operaciones en coma flotante ......................................... 25
2.14.7 SSE2 de 128 bits SIMD enteros Instrucciones ..................................................................... 25
2.14.8 SSE2 Control de almacenamiento en caché y las instrucciones de pedido .......................... 26
2.15 SSE3 INSTRUCCIONES ........................................................................................................... 26
2.15.1 SSE3 x87 -FP Integer Instrucción de conversión ................................................................. 27
2.15.2 SSE3 Especializada datos Unaligned 128 bits de instrucciones de carga ............................. 27
2.15.3 SSE3 SIMD en coma flotante Almuerzos para ADD / Instrucciones SUB .............................. 27
2.15.4 SSE3 SIMD en coma flotante ADD horizontales / Instrucciones SUB ................................... 27
2.15.5 SSE3 SIMD en coma flotante LOAD / MOVE / Instrucciones DUPLICADO ............................ 28
2.15.6 Agente instrucciones SSE3 sincronización .......................................................................... 28
2.16 COMPLEMENTARIOS Extensiones Streaming SIMD 3 ( SSSE3 ) INSTRUCCIONES .................... 28
2.16.1 Horizontal suma / resta ..................................................................................................... 29
2.16.2 Valores absolutos pic ......................................................................................................... 30
2.16.3 multiplicar y sumar Almuerzos Bytes signo y sin signo ....................................................... 30
2.16.4 Embalado Multiply alta con la Ronda y Escala .................................................................... 30
2.16.5 Bytes aleatoria pic ............................................................................................................. 30
2.16.6 Packed Entrar .................................................................................................................... 31
2.16.7 Packed Alinear a la derecha ............................................................................................... 31
2.18 instrucciones SSE4 ................................................................................................................ 31
2.20 SSE4.1 INSTRUCCIONES ........................................................................................................ 32
2.20.1 Dword Instrucciones Multiplicar ........................................................................................ 32
2.20.2 coma flotante Dot Product Instructions ............................................................................. 32
2.20.3 Carga Streaming Instrucción Sugerencia ............................................................................ 32
2.20.4 Instrucciones de fusión pic ................................................................................................ 33
2.20.5 Bolsas enteros Instrucciones MIN / MAX ........................................................................... 33
2.20.6 Instrucciones Ronda de punto flotante con el modo de redondeo seleccionable ............... 33
2.20.7 Inserción y Extracciones de XMM Registros ....................................................................... 34
2.20.8 Bolsas Conversiones formato entero ................................................................................. 34
2.20.9 La mejora de las sumas de las diferencias absolutas ( SAD ) para bloques de 4 bytes ......... 35
2.20.10 Horizontal Buscar ............................................................................................................ 35
2.20.11 Prueba Packed................................................................................................................. 36
2.20.13 DWORD Embalaje Con Saturación Unsigned .................................................................... 36
2.21 SSE4.2 del conjunto de instrucciones .................................................................................... 36
2.21.1 cuerdas y texto Instrucciones de procesamiento ............................................................... 36
DISTRIBUCION DE REGISTROS ...................................................................................................... 38
Registros de propósito general ........................................................................................ 38
El registro EIP y el EFLAGS ............................................................................................................ 39
CONCLUSIONES............................................................................................................................ 40
INTRODUCCIÓN
En el presente documento de dará a conocer más acerca del procesador Core i5
540-M. De cierta manera se verá lo que son sus registros y sus instrucciones que
maneja dicho procesador.
Un registro es la memoria donde se procesa toda información (CPU), de tal
manera que en esta se encuentra lo que es un registro de segmento, de punteros
y de uso general. Dentro del registro de segmento esta; el registro CS, registro
DS, registro SS, registro ES y registro FS, GS.
Una instrucción es una serie de pasos a seguir, esto para que la información o
alguna operación aritmética o lógica sean procesadas correctamente.
Dependiendo de qué tipo de procesador se esta manejando.
OBJETIVOS



Llevar a cabo una buena información
Obtener buenos resultados
Conocer más acerca del procesador que estamos utilizando
Intel® Core™ i5-450M
(3M cache, 2.40 GHz)
Nombre del procesador: i5-450M
Fecha de lanzamiento: Q2'10
Marca: Intel® Core™
Máximo de memoria: 8 Gb
Niveles de cache: 3 Mb
Velocidad: 2.40 GHz
Tipo de socket: PGA988
Datos (I/O) (FSB): 2500 MHz
DMI: 2.5 GT/s
Tipo de memoria: DDR3-800/1066
Processor
Essentials
Estado
EOIS
Fecha de lanzamiento
Q2'10
Número de procesador
i5-450M
Cantidad de núcleos
2
Cantidad de subprocesos
4
Veloc. reloj
2.4 GHz
Frecuencia turbo máxima
2.66 GHz
Caché inteligente Intel®
3 MB
DMI
2.5 GT/s
Conjunto de instrucciones
64-bit
Extensiones
instrucciones
de
conjunto
Opciones integradas disponibles
de
SSE4.1, SSE4.2
No
Litografía
32 nm
Máximo de TDP
35 W
Precio de cliente recomendado
N/A
Memory Specifications
Tamaño
de
memoria
máximo
8 GB
(depende del tipo de memoria)
Tipo de memoria
DDR3-800/1066
Cantidad de canales de memoria
2
Máximo de ancho de banda de
17,1 GB/s
memoria
Extensiones de dirección física
Compatible con memoria ECC ‡
Graphics Specifications
36-bit
No
Gráficos del procesador
‡
Intel® HD Graphics
Frecuencia de base de gráficos
Frecuencia
gráficos
dinámica
máxima
500 MHz
de
766 MHz
Intel® Flexible Display Interface
Yes
Tecnología Intel® Clear Video HD
Yes
Licencia Macrovision* requerida
No
Nº de pantallas admitidas ‡
2
Expansion Options
Revisión de PCI Express
2.0
Configuraciones de PCI Express ‡
1x16
Cantidad
Express
16
máxima
de
líneas PCI
Package Specifications
Máximo de configuración de CPU
1
TJUNCTION
105°C
Tamaño de paquete
rPGA
37.5mmx
37.5mm,
BGA
34mmx28mm
Tamaño de chip de procesamiento
81 mm2
Cantidad de transistores de chip de
382 million
procesador
Litografía de IMC y gráficos
45 nm
Tamaño de chip de IMC y gráficos
114 mm2
Cantidad de transistores de chip y
177 million
gráficos
Zócalos compatibles
Baja concentración
disponibles
PGA988
de
halógenos
Ver MDDS
Advanced Technologies
Versión de la tecnología Intel® Turbo
Yes
Boost ‡
Tecnología Intel® vPro ‡
No
Tecnología Hyper-Threading Intel® ‡
Yes
Tecnología de virtualización Intel®
(VT-x) ‡
Yes
Tecnología de virtualización Intel®
para E/S dirigida (VT-d) ‡
No
Intel® VT-x con tablas de páginas
extendidas (EPT) ‡
Yes
Intel® 64 ‡
Yes
Estados de inactividad
Tecnología
mejorada
Intel
Yes
SpeedStep®
Yes
Tecnologías de monitoreo térmico
Yes
Acceso a memoria rápida Intel®
Yes
Intel® Flex Memory Access
Yes
Intel® Data Protection Technology
Nuevas instrucciones de AES
No
Intel® Platform Protection Technology
Tecnología Intel® Trusted Execution
Bit de desactivación de ejecución
‡
‡
No
Yes
1. Instrucciones MMX ™
Cuatro extensiones se han introducido en la arquitectura IA - 32 para permitir que los procesadores
IA - 32 para llevar a cabo singleinstruction ( SIMD ) las operaciones de datos múltiples. Estas
extensiones incluyen la tecnología MMX, extensiones SSE , SSE2
extensiones y extensiones SSE3 . Para una discusión que pone instrucciones SIMD en su contexto
histórico , ver Sección 2.2.7 , "Instrucciones SIMD . "
Instrucciones MMX operan sobre lleno byte , palabra, palabra doble o quadword operandos enteros
contenidos en la memoria , en registros MMX , y / o en registros de propósito general . Para más
detalles sobre estas instrucciones , consulte el Capítulo 9 , "Programación con la tecnología Intel ®
MMX ™ . "
Instrucciones MMX sólo se pueden ejecutar en el procesador Intel 64 y IA- 32 que soportan la
tecnología MMX . apoyar de estas instrucciones se pueden detectar con la instrucción CPUID . Ver
la descripción de la instrucción CPUID en Capítulo 3 , " Instruction Set Reference, AM , " del Intel ®
64 e IA- 32 Arquitecturas de Software del desarrollador Manual , Volumen 2A .
Instrucciones MMX se dividen en los siguientes subgrupos : transferencia de datos , la conversión ,
la aritmética envasados , comparación ,
lógica , desplazamiento y rotación , y las instrucciones de administración de estado . Las secciones
que siguen presentan cada subgrupo .
1.2 MMX Instrucciones de transferencia de datos
Las instrucciones de transferencia de datos se mueven doble palabra y palabra cuádruple
operandos entre registros MMX y entre
MMX
Registros y memoria.
MOVD Move doubleword
MOVQ Move quadword
1.3 Operaciones de conversión MMX
El paquete de instrucciones de conversión y desempaquetar bytes , palabras y palabras dobles
PACKSSWB Paquete palabras en bytes con saturación firmado
PACKSSDW Paquete palabras dobles en palabras con saturación firmado
INSTRUCCIONES SET RESUMEN
PACKUSWB
Paquete palabras en bytes con signo de saturación .
PUNPCKHBW Desembale bytes de orden superior
PUNPCKHWD Desembale palabras de orden
PUNPCKHDQ Desembale palabras dobles de alto orden
PUNPCKLBW Desembale bytes de orden inferior
PUNPCKLWD Desembale palabras de orden inferior
PUNPCKLDQ Desembale palabras dobles de bajo orden
1.4 MMX Instrucciones aritméticas Almuerzos
Las instrucciones aritméticas envasados realizan lleno aritmética de enteros en el byte lleno , la
palabra y doble palabra enteros .
PADDB Añadir byte enteros envasados
PADDW Agregar enteros llenos de palabras
PADDD Agregar enteros envasados doble palabra
PADDSB Añadir envasada enteros de byte con saturación firmado
PADDSW Añadir lleno enteros palabra firmados con saturación firmado
PADDUSB Añadir envasados enteros byte sin signo con la saturación sin signo
PADDUSW Agregar enteros sin signo de palabras llenas de saturación sin signo
PSUBB Restar enteros lleno byte
PSUBW Restar enteros lleno de palabras
PSUBD Restar enteros lleno doble palabra
PSUBSB Restar envasada enteros de byte con saturación firmado
PSUBSW Restar enteros lleno de palabras firmados con saturación firmado
PSUBUSB Restar enteros lleno de bytes sin signo con la saturación sin signo
PSUBUSW Restar enteros lleno de palabras sin signo con signo
saturación
PMULHW Multiplicar enteros llenos de palabras firmados y alta almacenar el resultado
PMULLW Multiplicar enteros llenos de palabras firmados y almacenar el resultado bajo
PMADDWD multiplicar y sumar enteros llenos de palabras
1.5 MMX Operaciones de comparación
Las instrucciones de comparación comparan bytes envasados , palabras o palabras dobles .
PCMPEQB Comparar bytes envasados para la igualdad
PCMPEQW Comparar palabras envasados para la igualdad
PCMPEQD Comparar palabras dobles envasados para la igualdad
PCMPGTB Comparar enteros envasados byte firmado por más de
PCMPGTW Comparar enteros llenos de palabras firmadas por más de
PCMPGTD Comparar enteros envasados doble palabra firmados por más de
1.6 Instrucciones lógicas MMX
Las instrucciones lógicas realizar AND y NOT , OR, XOR y operaciones en operandos de palabra
cuádruple .
PAND bit a bit AND lógico
PANDN bit a bit lógica AND NOT
POR bit a bit OR lógico
PXOR lógica OR exclusiva bit a bit
Vol. . en 5 a 13
INSTRUCCIONES SET RESUMEN
1.7 MMX de desplazamiento y rotación
El desplazamiento y rotación de desplazamiento y rotación bytes envasados , palabras o palabras
dobles o quadwords en 64 bits
operandos .
PSLLW Shift palabras llenas dejaron lógica
PSLLD Shift palabras dobles llenas dejaron lógica
PSLLQ Shift lleno quadword dejó lógica
PSRLW Shift lleno palabras correctas lógica
Shift PSRLD embalado palabras dobles razón lógica
PSRLQ Shift lleno quadword derecho lógica
PSRAW Shift palabras lleno aritmético a la derecha
PSRAD Shift lleno palabras dobles aritmético a la derecha
5.4.7 MMX instrucciones de administración de estado
La instrucción EMMS borra el estado de los registros MMX MMX .
Estado MMX vacío EMMS
2. Instrucciones SSE
Instrucciones SSE representan una extensión del modelo de ejecución SIMD introducido con la
tecnología MMX . para más detalles sobre estas instrucciones , consulte el Capítulo 10 , "
Programación con extensiones Streaming SIMD ( SSE) . "
Instrucciones SSE sólo se pueden ejecutar en el procesador Intel 64 y IA- 32 que soportan las
extensiones SSE . Apoyo a estas instrucciones se pueden detectar con la instrucción CPUID . Ver
la descripción de la instrucción CPUID en Capítulo 3 , " Instruction Set Reference, AM , " del Intel ®
64 e IA- 32 Arquitecturas de Software del desarrollador Manual , Volumen 2A .
Instrucciones SSE se dividen en cuatro subgrupos ( tenga en cuenta que el primer subgrupo tiene
subgrupos subordinados de su propia ) :
• SIMD de precisión simple instrucciones de coma flotante que operan en el XMM registra
• Instrucciones de manejo del estado MXSCR
• Las instrucciones de 64 bits SIMD enteras que operan en los registros MMX
Instrucciones de pedido • Control de almacenamiento en caché , prefetch , y la instrucción
Las siguientes secciones proporcionan una visión general de estos grupos.
2.1 SSE SIMD de precisión simple operaciones en coma flotante
Estas instrucciones operan sobre envasado y los valores de punto flotante de precisión sencilla
escalares ubicados en registros XMM
y / o de la memoria . Este subgrupo se subdivide en los siguientes subgrupos subordinados :
transferencia de datos, empaquetados
aritmética , comparación , lógicos , aleatoria y desempacar, y las instrucciones de conversión.
2.2 ESE Instrucciones de transferencia de datos
Instrucciones de transferencia de datos ESE mueven para llevar y escalares de precisión simple
operandos de coma flotante entre XMM registros y entre registros XMM y memoria.
MOVAPS Mover cuatro alineados valores de punto flotante de precisión sencilla empaquetadas
entre registros XMM o entre y XMM registro y la memoria
MOVUPS Mover cuatro valores de precisión simple de punto flotante lleno alineados entre registros
XMM o entre y XMM registro y la memoria 5-14 vol . 1
2.3 INSTRUCCIONES SET RESUMEN
MOVHPS Mover dos valores de punto flotante de precisión simple llenos a una de la alta palabra
cuádruple de un XMM registro y la memoria
MOVHLPS Mover dos valores de punto flotante de precisión simple llenas de la alta quadword de
XMM registrarse para el bajo palabra cuádruple de otro registro XMM
MOVLPS Mover dos valores de punto flotante de precisión simple llenos a una baja de la palabra
cuádruple de un
XMM registro y la memoria
MOVLHPS Mover dos valores de punto flotante de precisión simple para llevar en el bajo palabra
cuádruple de XMM
registrarse para el alto quadword de otro registro XMM
MOVMSKPS Extracto máscara de señal de cuatro valores de punto flotante de precisión simple
envasados
MOVSS Move escalar de precisión simple valor de punto flotante entre registros XMM o entre un
XMM
registro y la memoria
2.4 ESE Instrucciones aritméticas pic
SSE instrucciones aritméticas envasados realizan para llevar y operaciones aritméticas escalares
de lleno y singleprecision escalar
operandos de coma flotante .
ADDPS Agregar valores de punto flotante de precisión sencilla empaquetadas
ADDSS Agregar valores de punto flotante de precisión simple escalar
SUBPS Restar los valores de punto flotante de precisión sencilla empaquetadas
SUBSS Resta simple precisión valores de punto flotante escalares
MULPS valores de punto flotante de precisión simple Multiply envasados
MULSS Multiplicar los valores de punto flotante de precisión simple escalar
DIVPS Divide los valores de punto flotante de precisión sencilla empaquetadas
DIVSS Divide los valores de punto flotante de precisión simple escalar
RCPPS Calcular recíprocos de los valores de punto flotante de precisión simple envasados
RCPSS Calcular recíproco de los valores de precisión simple de punto flotante escalares
SQRTPS calcular raíces cuadradas de los valores de punto flotante de precisión simple envasados
SQRTSS Calcular la raíz cuadrada de precisión simple valores de punto flotante escalares
RSQRTPS Calcular recíprocos de las raíces cuadradas de los valores de punto flotante de
precisión simple envasados
RSQRTSS Calcular recíproco de la raíz cuadrada de precisión simple valores de punto flotante
escalares
MAXPS máximo retorno lleno valores de punto flotante de precisión simple
MAXSS Retorno de precisión simple máximos valores escalares de punto flotante
MINPS Volver valores mínimos lleno de precisión simple de punto flotante
MINSS Retorno de precisión simple valores mínimos escalares de punto flotante
2.5 ESE Operaciones de comparación
SSE Instrucciones de comparación comparan embalado y escalares de precisión simple operandos
de coma flotante.
CMPPS Compara los valores de punto flotante de precisión sencilla empaquetadas
CMPSS Compara los valores de punto flotante de precisión simple escalar
COMISS Realizar comparación ordenada de simple precisión valores de punto flotante escalares y
establecer indicadores de
EFLAGS registro
UCOMISS Realizar desordenada comparación de los valores de precisión simple de punto flotante
escalares y establecer indicadores de
EFLAGS registro
2.6 ESE Instrucciones lógicas
Instrucciones lógicas realizan SSE bit a bit AND, AND NOT, OR, XOR y las operaciones de
envasado de precisión simple operandos de coma flotante .
ANDPS asigna el operador AND lógico de los valores de punto flotante de precisión simple
envasados Vol. . 5 a 15 en
2.3 INSTRUCCIONES SET RESUMEN
ANDNPS asigna el operador lógico AND NOT de valores de punto flotante de precisión sencilla
empaquetadas
Orps Realizar valores de punto flotante lógicas bit a bit OR de envasados de precisión simple
XORPS Realiza bitwise XOR lógico de los valores de punto flotante de precisión simple envasados
2.4 SSE aleatoria e Instrucciones Descomprimir
SSE barajar y descomprimir instrucciones aleatoria o valores de punto flotante de precisión simple
intercalación en singleprecision embalado operandos de coma flotante .
SHUFPS Shuffles valores repleto de precisión simple de punto flotante operandos
Desempaqueta UNPCKHPS y entrelaza los dos valores de orden superior de dos de un solo punto
flotante de precisión operandos
Desempaqueta UNPCKLPS y entrelaza los dos valores de orden inferior de dos de un solo punto
flotante de precisión operandos
2.5 Operaciones de conversión SSE
Instrucciones de conversión ESE convertir enteros dobles palabras llenas e individual en lleno y
single precision escalar
valores de punto flotante y viceversa.
CVTPI2PS Convertir enteros dobles palabras llenas de valores de punto flotante de precisión
sencilla empaquetadas
CVTSI2SS Convertir entero doble palabra a escalar de precisión simple valor de punto flotante
CVTPS2PI convertir los valores de precisión simple de punto flotante a enteros envasados doble
palabra envasados
CVTTPS2PI convertir con truncamiento embalado valores de punto flotante de precisión simple a
doble palabra llena
enteros
CVTSS2SI Convertir un escalar de precisión simple valor de punto flotante a un entero doble
palabra
CVTTSS2SI convertir con truncamiento un escalar de precisión simple valor de punto flotante a una
doble palabra escalares
entero
2.6 SSE MXCSR instrucciones de administración de estado
MXCSR instrucciones de administración de estado permiten guardar y restaurar el estado del
control MXCSR y estado
registrarse.
LDMXCSR carga MXCSR registro
STMXCSR Guardar MXCSR estado registro
2.7 SSE 64 bits enteros SIMD instrucciones
Estos SSE 64 bits instrucciones de enteros SIMD realizar operaciones adicionales en bytes
envasados , palabras o palabras dobles
contenida en los registros MMX. Representan mejoras en el conjunto de instrucciones MMX
descrito en la sección 5.4 ,
"Instrucciones MMX ™. "
PAVGB Compute promedio de envasados enteros byte sin signo
PAVGW Calcular la media de los enteros sin signo lleno de palabras
PEXTRW palabra Extract
PINSRW Insertar palabra
PMAXUB máximo de envasados enteros byte sin signo
PMAXSW máximo de enteros con signo llenos
PMINUB mínimo de envasados enteros byte sin signo
PMINSW mínimo de enteros con signo llenos
PMOVMSKB máscara de byte Move
PMULHUW Multiplicar enteros sin signo para llevar y almacenar gran resultado
5-16 vol . 1
INSTRUCCIONES SET RESUMEN
PSADBW Calcular suma de diferencias absolutas
PSHUFW aleatoria lleno palabra entera en MMX registro
2.6 SSE Control de almacenamiento en caché , Prefetch , e
Instrucción Instrucciones para Ordenar
Las instrucciones de control de almacenamiento en caché proporcionan control sobre el
almacenamiento en caché de datos que no son temporales al almacenar los datos de
el MMX y XMM registra en la memoria. El PREFETCHh permite que los datos sean prefetched a un
nivel de caché seleccionado . la
Instrucción SFENCE controla la instrucción al comprar en las operaciones de almacén .
MASKMOVQ tiendas no -temporal de bytes seleccionados de un MMX registra en la memoria
MOVNTQ tiendas no -temporal de palabra cuádruple de un MMX registra en la memoria
MOVNTPS tiendas no -temporal de los cuatro valores de punto flotante de precisión simple para
llevar un registro de XMM
en la memoria
PREFETCHh cargar 32 o más bytes de memoria a un nivel seleccionado de la jerarquía de
memoria caché del procesador
SFENCE Serializa operaciones de la tienda
instrucciones SSE
Instrucciones SSE representan una extensión del modelo de ejecución SIMD introducido con la
tecnología MMX . para
más detalles sobre estas instrucciones , consulte el Capítulo 10 , " Programación con extensiones
Streaming SIMD ( SSE) . "
Instrucciones SSE sólo se pueden ejecutar en el procesador Intel 64 y IA- 32 que soportan las
extensiones SSE . Apoyo a
estas instrucciones se pueden detectar con la instrucción CPUID . Ver la descripción de la
instrucción CPUID en
Capítulo 3 , " Instruction Set Reference, AM , " del Intel ® 64 e IA- 32 Arquitecturas de Software del
desarrollador
Manual , Volumen 2A .
Instrucciones SSE se dividen en cuatro subgrupos ( tenga en cuenta que el primer subgrupo tiene
subgrupos subordinados de su
propia ) :
• SIMD de precisión simple instrucciones de coma flotante que operan en el XMM registra
• Instrucciones de manejo del estado MXSCR
• Las instrucciones de 64 bits SIMD enteras que operan en los registros MMX
Instrucciones de pedido • Control de almacenamiento en caché , prefetch , y la instrucción
Las siguientes secciones proporcionan una visión general de estos grupos.
2.9 SSE SIMD de precisión simple operaciones en coma flotante
Estas instrucciones operan sobre envasado y los valores de punto flotante de precisión sencilla
escalares ubicados en registros XMM
y / o de la memoria . Este subgrupo se subdivide en los siguientes subgrupos subordinados :
transferencia de datos, empaquetados
aritmética , comparación , lógicos , aleatoria y desempacar, y las instrucciones de conversión.
2.9.1 ESE Instrucciones de transferencia de datos
Instrucciones de transferencia de datos ESE mueven para llevar y escalares de precisión simple
operandos de coma flotante entre XMM registros y entre registros XMM y memoria.
MOVAPS Mover cuatro alineados valores de punto flotante de precisión sencilla empaquetadas
entre registros XMM o entre y XMM registro y la memoria
MOVUPS Mover cuatro valores de precisión simple de punto flotante lleno alineados entre registros
XMM o entre y XMM registro y la memoria 5-14 vol . 1
2.10 INSTRUCCIONES SET RESUMEN
MOVHPS Mover dos valores de punto flotante de precisión simple llenos a una de la alta palabra
cuádruple de un
XMM registro y la memoria
MOVHLPS Mover dos valores de punto flotante de precisión simple llenas de la alta quadword de
XMM registrarse para el bajo palabra cuádruple de otro registro XMM
MOVLPS Mover dos valores de punto flotante de precisión simple llenos a una baja de la palabra
cuádruple de un
XMM registro y la memoria
MOVLHPS Mover dos valores de punto flotante de precisión simple para llevar en el bajo palabra
cuádruple de XMM registrarse para el alto quadword de otro registro XMM
MOVMSKPS Extracto máscara de señal de cuatro valores de punto flotante de precisión simple
envasados
MOVSS Move escalar de precisión simple valor de punto flotante entre registros XMM o entre un
XMM registro y la memoria
2.10.1 ESE Instrucciones aritméticas pic
SSE instrucciones aritméticas envasados realizan para llevar y operaciones aritméticas escalares
de lleno y singleprecision escalar operandos de coma flotante .
ADDPS Agregar valores de punto flotante de precisión sencilla empaquetadas
ADDSS Agregar valores de punto flotante de precisión simple escalar
SUBPS Restar los valores de punto flotante de precisión sencilla empaquetadas
SUBSS Resta simple precisión valores de punto flotante escalares
MULPS valores de punto flotante de precisión simple Multiply envasados
MULSS Multiplicar los valores de punto flotante de precisión simple escalar
DIVPS Divide los valores de punto flotante de precisión sencilla empaquetadas
DIVSS Divide los valores de punto flotante de precisión simple escalar
RCPPS Calcular recíprocos de los valores de punto flotante de precisión simple envasados
RCPSS Calcular recíproco de los valores de precisión simple de punto flotante escalares
SQRTPS calcular raíces cuadradas de los valores de punto flotante de precisión simple envasados
SQRTSS Calcular la raíz cuadrada de precisión simple valores de punto flotante escalares
RSQRTPS Calcular recíprocos de las raíces cuadradas de los valores de punto flotante de
precisión simple envasados
RSQRTSS Calcular recíproco de la raíz cuadrada de precisión simple valores de punto flotante
escalares
MAXPS máximo retorno lleno valores de punto flotante de precisión simple
MAXSS Retorno de precisión simple máximos valores escalares de punto flotante
MINPS Volver valores mínimos lleno de precisión simple de punto flotante
MINSS Retorno de precisión simple valores mínimos escalares de punto flotante
2.10.2 ESE Operaciones de comparación
SSE Instrucciones de comparación comparan embalado y escalares de precisión simple operandos
de coma flotante.
CMPPS Compara los valores de punto flotante de precisión sencilla empaquetadas
CMPSS Compara los valores de punto flotante de precisión simple escalar
COMISS Realizar comparación ordenada de simple precisión valores de punto flotante escalares y
establecer indicadores de
EFLAGS registro
UCOMISS Realizar desordenada comparación de los valores de precisión simple de punto flotante
escalares y establecer indicadores de
EFLAGS registro
2.10.3 ESE Instrucciones lógicas
Instrucciones lógicas realizan SSE bit a bit AND, AND NOT, OR, XOR y las operaciones de
envasado de precisión simple
operandos de coma flotante .
ANDPS asigna el operador AND lógico de los valores de punto flotante de precisión simple
envasados Vol. . 5 a 15 en
2.11 INSTRUCCIONES SET RESUMEN
ANDNPS asigna el operador lógico AND NOT de valores de punto flotante de precisión sencilla
empaquetadas
Orps Realizar valores de punto flotante lógicas bit a bit OR de envasados de precisión simple
XORPS Realiza bitwise XOR lógico de los valores de punto flotante de precisión simple envasados
5.5.1.5 SSE aleatoria e Instrucciones Descomprimir
SSE barajar y descomprimir instrucciones aleatoria o valores de punto flotante de precisión simple
intercalación en singleprecision embalado
operandos de coma flotante .
SHUFPS Shuffles valores repleto de precisión simple de punto flotante
operandos
Desempaqueta UNPCKHPS y entrelaza los dos valores de orden superior de dos de un solo punto
flotante de precisión
operandos
Desempaqueta UNPCKLPS y entrelaza los dos valores de orden inferior de dos de un solo punto
flotante de precisión
operandos
2.11.1 Operaciones de conversión SSE
Instrucciones de conversión ESE convertir enteros dobles palabras llenas e individual en lleno y
singleprecision escalar valores de punto flotante y viceversa.
CVTPI2PS Convertir enteros dobles palabras llenas de valores de punto flotante de precisión
sencilla empaquetadas
CVTSI2SS Convertir entero doble palabra a escalar de precisión simple valor de punto flotante
CVTPS2PI convertir los valores de precisión simple de punto flotante a enteros envasados doble
palabra envasados
CVTTPS2PI convertir con truncamiento embalado valores de punto flotante de precisión simple a
doble palabra llena enteros
CVTSS2SI Convertir un escalar de precisión simple valor de punto flotante a un entero doble
palabra
CVTTSS2SI convertir con truncamiento un escalar de precisión simple valor de punto flotante a una
doble palabra escalares entero
2.11.2 SSE MXCSR instrucciones de administración de estado
MXCSR instrucciones de administración de estado permiten guardar y restaurar el estado del
control MXCSR y estado registrarse.
LDMXCSR carga MXCSR registro
STMXCSR Guardar MXCSR estado registro
2.11.3 SSE 64 bits enteros SIMD instrucciones
Estos SSE 64 bits instrucciones de enteros SIMD realizar operaciones adicionales en bytes
envasados , palabras o palabras dobles contenida en los registros MMX. Representan mejoras en
el conjunto de instrucciones MMX descrito en la sección "Instrucciones MMX ™. "
PAVGB Compute promedio de envasados enteros byte sin signo
PAVGW Calcular la media de los enteros sin signo lleno de palabras
PEXTRW palabra Extract
PINSRW Insertar palabra
PMAXUB máximo de envasados enteros byte sin signo
PMAXSW máximo de enteros con signo llenos
PMINUB mínimo de envasados enteros byte sin signo
PMINSW mínimo de enteros con signo llenos
PMOVMSKB máscara de byte Move
PMULHUW Multiplicar enteros sin signo para llevar y almacenar gran resultado
5-16 vol . 1
INSTRUCCIONES SET RESUMEN
PSADBW Calcular suma de diferencias absolutas
PSHUFW aleatoria lleno palabra entera en MMX registro
5.5.4 SSE Control de almacenamiento en caché , Prefetch , e Instrucción Instrucciones para
Ordenar
Las instrucciones de control de almacenamiento en caché proporcionan control sobre el
almacenamiento en caché de datos que no son temporales al almacenar los datos de
el MMX y XMM registra en la memoria. El PREFETCHh permite que los datos sean prefetched a un
nivel de caché seleccionado . la
Instrucción SFENCE controla la instrucción al comprar en las operaciones de almacén .
MASKMOVQ tiendas no -temporal de bytes seleccionados de un MMX registra en la memoria
MOVNTQ tiendas no -temporal de palabra cuádruple de un MMX registra en la memoria
MOVNTPS tiendas no -temporal de los cuatro valores de punto flotante de precisión simple para
llevar un registro de XMM
en la memoria
PREFETCHh cargar 32 o más bytes de memoria a un nivel seleccionado de la jerarquía de
memoria caché del procesador
SFENCE Serializa operaciones de la tienda
2.12 Instrucciones SSE2
SSE2 extensiones representan una extensión del modelo de ejecución SIMD introducido con la
tecnología MMX y la
Extensiones SSE. Instrucciones SSE2 operan sobre lleno de doble precisión operandos de punto
flotante y el envasado byte , palabra, doble palabra y palabra cuádruple operandos situados en los
registros XMM . Para más detalles sobre estas instrucciones, consulte el Capítulo 11 , "
Programación con extensiones Streaming SIMD 2 ( SSE2 ) . "
Instrucciones SSE2 sólo se pueden ejecutar en el procesador Intel 64 y IA- 32 que soportan las
extensiones SSE2.
El apoyo a estas instrucciones se puede detectar con la instrucción CPUID . Véase la descripción
de la CPUID instrucción en el Capítulo 3, " Instruction Set Reference, mañana, " el Intel ® 64 e IA32 Arquitecturas Software
Manual del desarrollador, volumen 2A.
Estas instrucciones se dividen en cuatro subgrupos ( tenga en cuenta que el primer subgrupo se
divide en subordinadas subgrupos ):
• Almuerzos y escalar doble precisión las instrucciones de punto flotante
• Las instrucciones de conversión de punto flotante de precisión simple Almuerzos
• Las instrucciones de enteros SIMD de 128 bits
• almacenamiento en caché de control e instrucción de las indicaciones de pedido
Las siguientes secciones proporcionan una visión general de cada subgrupo.
2.12.1 SSE2 Bolsas y Scalar doble precisión operaciones en coma
flotante
SSE2 envasados y escalar doble precisión las instrucciones de punto flotante se dividen en las
siguientes subordinadas subgrupos: el movimiento de datos , cálculo , comparación, conversión,
lógica , y las operaciones en orden aleatorio de doble precisión operandos de coma flotante . Estos
se introducen en las secciones que siguen.
2.12.2 SSE2 Instrucciones de transferencia de datos
Instrucciones SSE2 movimiento de datos se mueven de datos de doble precisión de punto flotante
entre registros XMM y entre XMM registros y la memoria.
MOVAPD Move dos alinea a lleno valores de punto flotante de doble precisión entre registros XMM
o entre y XMM registro y la memoria
Move MOVUPD dos valores de doble precisión de punto flotante lleno alineados entre registros
XMM o entre y XMM registro y la memoria
MOVHPD Move alta precisión doble valor de punto flotante llena a una de la gran palabra
cuádruple de un XMM registro y la memoria
Vol. . en 5 a 17
2.13 INSTRUCCIONES SET RESUMEN
MOVLPD Move precisión simple valor de punto flotante de baja llena a una baja de la palabra
cuádruple de XMM registro y la memoria
MOVMSKPD máscara de signos Extracto de dos valores de punto flotante de precisión doble
empaquetadas
MOVSD Move escalar de precisión doble valor de punto flotante entre registros XMM o entre un
XMM
registro y la memoria
2.13.1 SSE2 Instrucciones aritméticas Almuerzos
Las instrucciones aritméticas realizan la suma , resta, multiplicación, división , raíz cuadrada, y el
máximo / mínimo operaciones de envasado y escalar doble precisión operandos de coma flotante .
ADDPD Agregar valores de punto flotante de precisión doble empaquetadas
ADDSD Agregar valores de punto flotante de precisión doble escalares
Doble precisión valores de punto flotante SUBPD Restar escalares
Doble precisión valores de punto flotante SUBSD Restar escalares
Valores de punto flotante de doble precisión MULPD Multiply envasados
MULSD Multiplicar doble precisión valores de punto flotante escalares
DIVPD Divide los valores de punto flotante de precisión doble empaquetadas
Doble precisión valores de punto flotante DIVSD escalares Divide
SQRTPD Compute envasados raíces cuadradas de los valores de punto flotante de precisión doble
empaquetadas
Doble precisión valores de punto flotante SQRTSD Compute escalar raíz cuadrada de escalar
Volver máxima MAXPD lleno valores de punto flotante de doble precisión
Doble precisión valores de punto flotante MAXSD máxima escalares Volver
Valores de punto flotante de doble precisión embalada retorno mínimo MINPD
Doble precisión valores de punto flotante MINSD Volver escalares mínimo
2.13.2 SSE2 Instrucciones lógicas
Instrucciones SSE2 lógicas preformas AND y NOT , OR, XOR y operaciones en embalados punto
flotante de doble precisión valores .
ANDPD asigna el operador AND lógico de los valores de punto flotante de precisión doble
empaquetadas
ANDNPD Realizar valores de punto flotante bit a bit lógica y no de concentrado de doble precisión
ORPD asigna el operador lógico OR de valores de punto flotante de precisión doble empaquetadas
XORPD Realiza bitwise XOR lógico de los valores de punto flotante de precisión doble
empaquetadas
2.13.4 SSE2 Instrucciones de comparación
Comparar instrucciones SSE2 comparar lleno y doble precisión valores de punto flotante escalares
y devolver el
resultados de la comparación ya sea para el operando de destino o a los EFLAGS registran .
CMPPD Comparar los valores de punto flotante de precisión doble empaquetadas
CMPSD Comparar escalar los valores de punto flotante de doble precisión
COMISD Realizar comparación ordenada de doble precisión valores de punto flotante escalares y
establecer indicadores de EFLAGS registro
UCOMISD Perform desordenada comparación de los valores de doble precisión de punto flotante
escalares y establecer indicadores de
Registran EFLAGS .
2.13.5 SSE2 aleatoria e Instrucciones Descomprimir
Doble precisión valores de punto flotante SSE2 barajar y descomprimir instrucciones aleatoria o
intercalado en doubleprecision embalado
operandos de coma flotante .
5-18 vol . 1
2.14 INSTRUCCIONES SET RESUMEN
SHUFPD valores Shuffles en empaquetado de doble precisión de punto flotante operandos
Desempaqueta UNPCKHPD e intercala los altos valores de dos llenas de doble precisión de punto
flotante operandos
Desempaqueta UNPCKLPD e intercala los valores bajos de dos operandos de doble precisión de
punto flotante para llevar
2.14.1 SSE2 Operaciones de conversión
Instrucciones SSE2 conversión convertir enteros dobles palabras llenas e individual en lleno y
doubleprecision escalar valores de punto flotante y viceversa. También convertir entre lleno y
escalar de precisión simple y valores de punto flotante de doble precisión .
CVTPD2PI convertir los valores de doble precisión de punto flotante a enteros dobles palabras
envasados para llevar.
CVTTPD2PI convertir con truncamiento lleno valores de punto flotante de doble precisión de doble
palabra llena enteros
CVTPI2PD Convertir enteros dobles palabras llenas de valores de punto flotante de precisión doble
empaquetadas
CVTPD2DQ convertir los valores de doble precisión de punto flotante a enteros envasados doble
palabra envasados
CVTTPD2DQ convertir con truncamiento lleno valores de punto flotante de doble precisión de
doble palabra llena enteros
CVTDQ2PD Convertir enteros dobles palabras llenas de valores de punto flotante de precisión
doble empaquetadas
CVTPS2PD convertir los valores de precisión simple de punto flotante lleno de lleno de doble
precisión de punto flotante valores
CVTPD2PS convertir los valores de doble precisión de punto flotante lleno de lleno de punto
flotante de precisión simple valores
CVTSS2SD convertir valores de punto flotante de precisión simple escalar a escalar de doble
precisión de punto flotante valores
CVTSD2SS Convertir doble precisión de punto flotante valores escalares para escalar de precisión
simple de punto flotante valores
CVTSD2SI Convertir doble precisión valores de punto flotante escalar a una doble palabra entera
CVTTSD2SI convertir con doble precisión valores de punto flotante escalares truncamiento a
doubleword escalar enteros
CVTSI2SD Convertir entero doble palabra a escalar con precisión doble valor de punto flotante
2.14.6 SSE2 Embalado precisión simple operaciones en coma
flotante
SSE2 lleno de precisión simple instrucciones de punto flotante realizar operaciones de conversión
de precisión simple
operandos de punto flotante y entero. Estas instrucciones representan mejoras en precisión simple
SSE instrucciones de coma flotante .
CVTDQ2PS Convertir enteros dobles palabras llenas de valores de punto flotante de precisión
sencilla empaquetadas
CVTPS2DQ convertir los valores de precisión simple de punto flotante a enteros envasados doble
palabra envasados
CVTTPS2DQ convertir con truncamiento embalado valores de punto flotante de precisión simple a
doble palabra llena enteros
2.14.7 SSE2 de 128 bits SIMD enteros Instrucciones
SSE2 SIMD instrucciones enteras realizar operaciones adicionales en las palabras llenas, palabras
dobles y quadwords que figura en el XMM y MMX registros.
Movdqa Move alineado doble palabra cuádruple.
MOVDQU Mueva doble quadword no alineados
MOVQ2DQ Move quadword entero de MMX de XMM registra
MOVDQ2Q Move quadword entero de XMM a los registros MMX
Vol. . en 5 a 19
INSTRUCCIONES SET RESUMEN
PMULUDQ Multiplicar enteros envasados doble palabra sin signo
PADDQ Agregar enteros quadword envasados
PSUBQ Restar enteros lleno quadword
PSHUFLW aleatoria lleno palabras de baja
PSHUFHW aleatoria lleno altas palabras
Mezclar PSHUFD lleno palabras dobles
PSLLDQ Shift doble quadword dejó lógica
PSRLDQ Shift doble quadword derecho lógica
PUNPCKHQDQ Desembale alta quadwords
PUNPCKLQDQ Desembale bajo quadwords
2.14.8 SSE2 Control de almacenamiento en caché y las instrucciones
de pedido
SSE2 instrucciones de control de almacenamiento en caché proporcionan funciones adicionales
para el almacenamiento en caché de datos que no son temporales al almacenar los datos de XMM
registra en la memoria. LFENCE y MFENCE proporcionan un control adicional de instrucción de
ordenar el operaciones de la tienda.
Vacía CLFLUSH e invalida un operando de memoria y su línea de caché asociados de todos los
niveles de la jerarquía de caché del procesador
LFENCE Serializa las operaciones de carga
MFENCE Serializa las operaciones de carga y almacén
PAUSA Mejora el rendimiento de "bucles spin- espera"
MASKMOVDQU tiendas no -temporal de bytes seleccionados de un registro XMM en la memoria
MOVNTPD tiendas no -temporal de dos valores de punto flotante de precisión doble
empaquetadas de una XMM registrar en la memoria
MOVNTDQ tiendas no -temporal de la doble palabra cuádruple de un registro XMM en la memoria
MOVNTI tiendas no -temporal de una doble palabra de un registro de uso general en la memoria
2.15 SSE3 INSTRUCCIONES
El SSE3 extensiones ofrece 13 instrucciones que aceleran el rendimiento de la tecnología de las
extensiones Streaming SIMD.
Streaming SIMD Extensions 2 tecnología y x87 - PF capacidades matemáticas. Estas instrucciones
pueden ser agrupadas en las siguientes categorías:
• Una instrucción x87FPU utilizado en la conversión de número entero
• Un número entero de instrucciones SIMD que aborda cargas de datos no alineados
• Dos de punto flotante para llevar instrucciones ADD / SUB SIMD
• Cuatro SIMD instrucciones ADD / SUB horizontales de punto flotante
• Tres SIMD CARGA punto flotante / mover / DUPLICADO instrucciones
• Dos instrucciones de sincronización de subprocesos
Instrucciones SSE3 sólo se pueden ejecutar en el procesador Intel 64 y IA- 32 que soportan las
extensiones SSE3 . apoyar de estas instrucciones se pueden detectar con la instrucción CPUID .
Ver la descripción de la instrucción CPUID en
Capítulo 3 , " Instruction Set Reference, AM , " del Intel ® 64 e IA- 32 Arquitecturas de Software del
desarrollador
Manual , Volumen 2A .
Las secciones siguientes describen cada subgrupo .
2.15.1 SSE3 x87 -FP Integer Instrucción de conversión
FISTTP comporta como la instrucción FISTP pero utiliza truncamiento, con independencia de la
modalidad de redondeo especificado en el código de control de punto flotante ( FCW )
5-20 vol . 1
INSTRUCCIONES SET RESUMEN
2.15.2 SSE3 Especializada datos Unaligned 128 bits de instrucciones
de carga
LDDQU especial de carga alineados 128 bits diseñado para evitar la línea de caché se divide
2.15.3 SSE3 SIMD en coma flotante Almuerzos para ADD /
Instrucciones SUB
ADDSUBPS Realiza además de precisión simple en el segundo y cuarto pares de elementos de
datos de 32 bits dentro de los operandos ; precisión simple resta en el primer y tercer pares
ADDSUBPD Realiza además de doble precisión en el segundo par de quadwords y doble precisión
resta en el primer par
2.15.4 SSE3 SIMD en coma flotante ADD horizontales / Instrucciones
SUB
HADDPS Realiza una adición simple precisión en los elementos de datos contiguos . El primer
elemento de datos de el resultado se obtiene mediante la adición de los primero y segundo
elementos de la primera operando ; la segunda elemento mediante la adición de los elementos
tercero y cuarto de la primera operando ; el tercero mediante la adición de la elementos primero y
segundo del segundo operando , y el cuarto por la adición de la tercera y cuarta elementos del
segundo operando .
HSUBPS Realiza una precisión simple sustracción de elementos de datos contiguos . El primer
elemento de datos de el resultado se obtiene restando el segundo elemento del primer operando
de la primera elemento del primer operando , el segundo elemento restando el cuarto elemento de
la primera operando desde el tercer elemento del primer operando ; la tercera restando la segunda
elemento del segundo operando desde el primer elemento del segundo operando , y el cuarto
restando el cuarto elemento del segundo operando desde el tercer elemento de la segunda
operando .
HADDPD Realiza una suma de doble precisión en los elementos de datos contiguos . El primer
elemento de datos de el resultado se obtiene mediante la adición de los primero y segundo
elementos de la primera operando ; la segunda elemento mediante la adición de los primero y
segundo elementos del segundo operando .
HSUBPD Realiza una doble precisión sustracción de elementos de datos contiguos . El primer
elemento de datos del resultado se obtiene restando el segundo elemento del primer operando de
la primera elemento del primer operando , el segundo elemento restando el segundo elemento de
la segundo operando desde el primer elemento del segundo operando .
2.15.5 SSE3 SIMD en coma flotante LOAD / MOVE / Instrucciones
DUPLICADO
Cargas MOVSHDUP / se mueve 128 bits; duplicación de los segundo y cuarto elementos de datos
de 32 bits
Cargas MOVSLDUP / se mueve 128 bits; duplicación de los primero y tercer elementos de datos
de 32 bits
Cargas MOVDDUP / mueve 64 bits (bits [ 63:0 ] Si la fuente es un registro ) y devuelve los mismos
64 bits de ambas las mitades inferior y superior del registro de resultado de 128 bits ; duplica los 64
bits de la fuente
2.15.6 Agente instrucciones SSE3 sincronización
MONITOR Establece un rango de direcciones se utiliza para controlar write-back tiendas
MWAIT Permite que un procesador lógico para entrar en un estado óptimo a la espera de una
tienda de write-back al rango de direcciones definido por la instrucción MONITOR
2.16 COMPLEMENTARIOS Extensiones Streaming SIMD 3 ( SSSE3 )
INSTRUCCIONES
SSSE3 proporciona 32 instrucciones ( representado por 14 teclas de acceso ) para acelerar los
cálculos de enteros para llevar.
Estos incluyen:
• Doce instrucciones que realizan además horizontal u operaciones de resta .
Vol. . en 5 a 21
INSTRUCCIONES SET RESUMEN
• Seis instrucciones que evalúan los valores absolutos .
• Dos instrucciones que realizan operaciones de multiplicar y sumar y acelerar la evaluación de los
productos de punto .
• Dos instrucciones que aceleran las operaciones de multiplicar empaquetado enteros y producen
valores enteros con el escalamiento .
• Dos instrucciones que realizan un byte a byte , en lugar de mezclar de acuerdo con el segundo
operando de control de reproducción aleatoria .
• Seis instrucciones que niegan enteros envasados en el operando destino si las señales de la
correspondiente
elemento en el operando fuente es menor que cero .
• Dos instrucciones que se alinean los datos de la composición de dos operandos .
Instrucciones SSSE3 sólo se pueden ejecutar en el procesador Intel 64 y IA- 32 que apoyan
SSSE3 extensiones. Apoyar de estas instrucciones se pueden detectar con la instrucción CPUID .
Ver la descripción de la instrucción CPUID en
Capítulo 3 , " Instruction Set Reference, AM , " del Intel ® 64 e IA- 32 Arquitecturas de Software del
desarrollador
Manual , Volumen 2A .
Las secciones siguientes describen cada subgrupo .
2.16.1 Horizontal suma / resta
PHADDW añade dos adyacentes , enteros de 16 bits horizontalmente desde el origen y destino de
operandos y los paquetes de los resultados firmados de 16 bits del operando destino.
PHADDSW añade dos adyacentes , enteros de 16 bits horizontalmente desde el origen y destino
de operandos y los paquetes de los suscritos , saturados resultados de 16 bits para el operando
destino.
PHADDD Suma dos adyacentes, firmado enteros de 32 bits horizontalmente desde el origen y el
destino de los operandos y los paquetes de los resultados firmados de 32 bits para el operando
destino.
PHSUBW Realiza restas horizontales en cada par adyacente de enteros con signo de 16 bits al
restar la palabra más significativa de la palabra menos significativa de cada par en el origen y el
destino operandos . Los resultados firmados de 16 bits se empaquetan y se escriben en el
operando destino.
PHSUBSW Realiza restas horizontales en cada par adyacente de enteros con signo de 16 bits al
restar la palabra más significativa de la palabra menos significativa de cada par en el origen y el
destino operandos . Los suscritos, saturados resultados de 16 bits se empaquetan y se escriben en
el destino operando .
PHSUBD Realiza restas horizontales en cada par adyacente de enteros con signo de 32 bits al
restar
la doble palabra más significativa de la doble palabra de menor valor de cada par en el
operandos de origen y de destino . Los resultados firmados de 32 bits se empaquetan y se
escriben en el operando de destino .
2.16.2 Valores absolutos pic
PABSB Calcula el valor absoluto de cada elemento de datos byte con signo .
PABSW Calcula el valor absoluto de cada elemento de datos de 16 bits con signo .
PABSD Calcula el valor absoluto de cada elemento de datos de 32 bits con signo .
2.16.3 multiplicar y sumar Almuerzos Bytes signo y sin signo
PMADDUBSW multiplica cada valor de byte sin signo con el valor de byte con signo
correspondiente para producir una intermedio de 16 bits con signo . Cada par adyacente de valores
con signo de 16 bits se añaden horizontalmente.
Los suscritos, saturados resultados de 16 bits se empaquetan al operando destino.
2.16.4 Embalado Multiply alta con la Ronda y Escala
PMULHRSW Multiplica verticalmente cada entero de 16 bits con signo del operando destino con la
correspondiente entero con signo de 16 bits del operando de origen , produciendo intermedios ,
firmado de 32 bits números enteros . Cada número entero de 32 bits intermedia se trunca a los 18
bits más significativos.
El redondeo se realiza siempre mediante la adición de 1 en el bit menos significativo del intermedio
18 bits
5-22 vol . 1
INSTRUCCIONES SET RESUMEN
como resultado . El resultado final se obtiene mediante la selección de los 16 bits inmediatamente
a la derecha de los más
poco significativo de cada resultado intermedio de 18 bits y envasados al operando destino.
2.16.5 Bytes aleatoria pic
PSHUFB permuta cada byte en el lugar , de acuerdo con una máscara de control aleatorio. El
menor valor de tres o
cuatro bits de cada byte de control aleatorio de la máscara de control forman el índice de
reproducción aleatoria. La reproducción aleatoria
la máscara no se ve afectada . Si se establece el bit más significativo (bit 7 ) de un byte de control
de reproducción aleatoria , la
constante cero se escribe en el byte de resultado .
2.16.6 Packed Entrar
PSIGNB / W / D Niega cada elemento entero con signo del operando destino si la señal de la
correspondiente elemento de datos en el operando fuente es menor que cero .
2.16.7 Packed Alinear a la derecha
PALIGNR operando fuente se añade después del operando destino formando un valor intermedio
de el doble de la anchura de un operando . El resultado se extrae a partir del valor intermedio en el
operando destino seleccionando el valor del bit 128 bits o 64 que están alineados a la derecha en
el byte
desplazamiento especificado por el valor inmediato .
2.18 instrucciones SSE4
Intel ® Streaming SIMD Extensiones 4 ( SSE4 ) presenta 54 nuevas instrucciones . 47 de las
instrucciones SSE4 son conoce como SSE4.1 en este documento , 7 nuevas instrucciones SSE4
se conocen como SSE4.2 .
SSE4.1 está dirigido a mejorar el rendimiento de los medios de comunicación , formación de
imágenes , y las cargas de trabajo 3D . SSE4.1 añade instrucciones
que mejoran compilador vectorización y aumentar significativamente el apoyo a lleno cómputo
dword . La tecnología también proporciona un indicio de que puede mejorar el rendimiento de
memoria en la lectura de la memoria no almacenable en caché WC tipo.
Los 47 SSE4.1 instrucciones incluyen:
• Dos instrucciones realizan dword lleno multiplica.
• Dos instrucciones que realizan productos de punto de punto flotante con entrada / salida
selecciona.
• Una instrucción realiza una carga con un toque de streaming.
• Seis instrucciones simplifican la mezcla para llevar.
• Ocho instrucciones de ampliar el apoyo a lleno entero MIN / MAX .
• Cuatro instrucciones de soporte circular de punto flotante con el modo de redondeo seleccionable
y precisión excepción de anulación.
• Siete instrucciones de mejorar la inserción de datos y extracción de XMM registra
• Doce instrucciones de mejorar las conversiones de formato enteros envasados ( señal cero y
extensiones) .
• Una instrucción mejora la generación de SAD ( diferencia absoluta suma ) para los pequeños
tamaños de bloque .
• Una instrucción de las operaciones de búsqueda ayudas horizontales.
• Una instrucción de mejora comparaciones enmascarados.
• Una instrucción suma comparaciones de igualdad QWORD llevar.
• Una instrucción suma dword embalar con saturación sin signo.
Los siete SSE4.2 instrucciones incluyen:
• Cadena y procesamiento de texto que puede tomar ventaja de la programación de múltiples datos
de una sola instrucción técnicas.
• ( ATA ) las instrucciones de aplicación específicas del acelerador .
Vol. . en 5 hasta 23
INSTRUCCIONES SET RESUMEN
• Un número entero de instrucciones SIMD que mejora la capacidad de la capacidad enteros SIMD
de 128 bits en SSE4.1 .
2.20 SSE4.1 INSTRUCCIONES
SSE4.1 instrucciones pueden usar un registro XMM como origen o destino. Programación SSE4.1
es similar a programación de instrucciones SIMD en coma flotante en SSE/SSE2/SSE3/SSSE3 .
128-bit Integer SIMD y SSE4.1 hace no proporcionar instrucciones SIMD enteros de 64 bits que
funcionan en registros MMX. Las secciones siguientes describen cada subgrupo.
2.20.1 Dword Instrucciones Multiplicar
PMULLD Devuelve cuatro menores de 32 bits de los resultados de 64 bits del entero con signo de
32 bits multiplica .
PMULDQ Devuelve dos 64-bit firmado resultado de entero con signo de 32 bits multiplica .
2.20.2 coma flotante Dot Product Instructions
DPPD Realice precisión doble producto escalar para un máximo de 2 elementos y difusión.
DPPS Realizar productos de punto de precisión simple para un máximo de 4 elementos y difusión
2.20.3 Carga Streaming Instrucción Sugerencia
MOVNTDQA Proporciona un toque intemporal que puede causar artículos 16 bytes adyacentes
dentro de una de 64 bytes alineados región ( una línea de transmisión ) que se fue a buscar y se
mantiene en un pequeño conjunto de búferes temporales
( " Buffers de transmisión de carga ") . Posteriores cargas de transmisión a otros elementos de 16
bytes alineados en la misma línea de transmisión puede ser suministrado desde el buffer de carga
de transmisión y puede mejorar rendimiento .
2.20.4 Instrucciones de fusión pic
BLENDPD condicional copia de doble precisión los elementos de datos de punto flotante
especificados en la fuente operando a los elementos de datos correspondientes en el destino ,
utilizando un byte inmediata controlar .
BLENDPS condicional copia elementos de datos de punto flotante de precisión simple especificado
en la fuente operando a los elementos de datos correspondientes en el destino , utilizando un byte
inmediata controlar .
BLENDVPD condicional copia de doble precisión los elementos de datos de punto flotante
especificados en la fuente operando a los elementos de datos correspondientes en el destino ,
utilizando una máscara implícita .
BLENDVPS condicional copia elementos de datos de punto flotante de precisión simple
especificado en la fuente operando a los elementos de datos correspondientes en el destino ,
utilizando una máscara implícita .
PBLENDVB condicional copia elementos de bytes especificados en el operando origen al
correspondiente elementos en el destino , utilizando una máscara implícita .
PBLENDW condicional copia elementos denominativos especificados en el operando origen al
correspondiente elementos en el destino , utilizando un byte de control inmediato .
2.20.5 Bolsas enteros Instrucciones MIN / MAX
PMINUW Comparar enteros palabra sin signo para llevar.
PMINUD Comparar envasados dword enteros sin signo.
PMINSB Comparar enteros llenos de bytes con signo.
PMINSD Comparar enteros envasados dword firmados.
PMAXUW Comparar enteros palabra sin signo para llevar.
5-24 vol . 1
INSTRUCCIONES SET RESUMEN
PMAXUD Comparar envasados dword enteros sin signo.
PMAXSB Comparar enteros llenos de bytes con signo.
PMAXSD Comparar enteros envasados dword firmados.
2.20.6 Instrucciones Ronda de punto flotante con el modo de
redondeo seleccionable
ROUNDPS Round valores de precisión embalaje individual de punto flotante en valores enteros y
regresan redondeadas valores de punto flotante .
Ronda ROUNDPD lleno valores de doble precisión de punto flotante en valores enteros y devolver
redondeado valores de punto flotante .
ROUNDSS Round the precisión el valor de punto flotante única baja embalado en un valor entero y
devuelven un redondeada valor de punto flotante .
ROUNDSD Alrededor de la precisión de valor de punto flotante de doble bajo embalado en un valor
entero y devuelven un redondeada valor de punto flotante .
2.20.7 Inserción y Extracciones de XMM Registros
EXTRACTPS Extrae un valor de punto flotante de precisión simple de un desplazamiento en un
registro XMM especificado y almacena el resultado en la memoria o un registro de propósito
general
INSERTPS Inserta un valor de punto flotante de precisión simple de cualquiera de una posición de
memoria de 32 bits o seleccionados de un desplazamiento especificado en un registro XMM a un
desplazamiento en el destino XMM registro especificado.
Además, INSERTPS permite la puesta a cero de los elementos de datos seleccionados en el
destino, utilizando una máscara.
PINSRB Introduzca un valor de bytes de un registro o memoria en un registro XMM
PINSRD Introduzca un valor DWORD del registro de 32 bits o de memoria en un registro XMM
PINSRQ Introduzca un valor QWORD del registro de 64 bits o de memoria en un registro XMM
PEXTRB Extracto de un byte de un registro XMM e insertar el valor en un registro de propósito
general o memoria
PEXTRW Extracto de una palabra a partir de un registro XMM e insertar el valor en un registro de
propósito general o memoria
PEXTRD Extraiga una dword de un registro XMM e insertar el valor en un registro de propósito
general o memoria
PEXTRQ Extracto de un QWORD de un registro XMM e insertar el valor en un registro de propósito
general o memoria
2.20.8 Bolsas Conversiones formato entero
PMOVSXBW Registrarse ampliar el número entero de 8 bits inferior de cada elemento
denominativo lleno en lleno palabra firmada números enteros.
PMOVZXBW Zero ampliar el número entero de 8 bits inferior de cada elemento denominativo lleno
en lleno palabra firmada números enteros.
PMOVSXBD Entrar ampliar el entero de 8 bits más baja de cada elemento dword lleno en lleno
firmado dword números enteros .
PMOVZXBD Zero ampliar el entero de 8 bits más baja de cada elemento dword lleno en lleno
firmado dword números enteros .
PMOVSXWD Entrar ampliar el entero de 16 bits más baja de cada elemento dword lleno en lleno
firmado dword
números enteros .
PMOVZXWD Zero ampliar el entero de 16 bits más baja de cada elemento dword lleno en lleno
dword firmado
enteros ..
PMOVSXBQ Entrar ampliar el entero de 8 bits más baja de cada elemento QWORD lleno en lleno
firmado QWORD números enteros .
Vol. . 5-25 en
INSTRUCCIONES SET RESUMEN
PMOVZXBQ Zero ampliar el entero de 8 bits más baja de cada elemento QWORD lleno en lleno
firmado QWORD números enteros .
PMOVSXWQ Entrar ampliar el entero de 16 bits más baja de cada elemento QWORD lleno en
lleno firmado QWORD números enteros .
PMOVZXWQ Zero ampliar el entero de 16 bits más baja de cada elemento QWORD lleno en lleno
firmado QWORD números enteros .
PMOVSXDQ Entrar ampliar el entero de 32 bits más baja de cada elemento QWORD lleno en lleno
firmado QWORD números enteros .
PMOVZXDQ Zero ampliar el entero de 32 bits más baja de cada elemento QWORD lleno en lleno
firmado QWORD números enteros .
2.20.9 La mejora de las sumas de las diferencias absolutas ( SAD )
para bloques de 4 bytes
MPSADBW Realiza ocho de ancho Sum 4 bytes de las operaciones de las diferencias absolutas
para producir ocho palabras números enteros.
2.20.10 Horizontal Buscar
PHMINPOSUW Busca el valor y la ubicación de la palabra sin signo de un mínimo de 8 embalan
horizontalmente palabras sin signo . El valor resultante y la ubicación ( desplazamiento dentro de la
fuente ) se empaquetan en el bajo dword del destino XMM registro .
2.20.11 Prueba Packed
PTEST Realiza una operación lógica AND entre el destino con esta máscara y establece el
indicador ZF si el resultado es cero . La bandera CF ( cero TEST) se establece si la máscara
invertida AND'd con el destino es todos cero
10/05/12 Almuerzos comparaciones de igualdad QWORD
PCMPEQQ 128 bits empaquetado prueba de igualdad QWORD
2.20.13 DWORD Embalaje Con Saturación Unsigned
PACKUSDW PACKUSDW paquetes dword a la palabra con la saturación sin signo
2.21 SSE4.2 del conjunto de instrucciones
Cinco de los siete SSE4.2 instrucciones puede utilizar un registro XMM como origen o destino.
Estos incluyen cuatro texto / string instrucciones de procesamiento y uno lleno quadword comparar
instrucciones SIMD . Programación estos cinco
SSE4.2 instrucciones es similar a la programación de 128 bits de enteros SIMD en SSE2/SSSE3 .
SSE4.2 no proporciona ningún
64 bits enteros instrucciones SIMD .
Los otros dos SSE4.2 instrucciones utiliza registros de propósito general para realizar las funciones
de procesamiento acelerado
en áreas de aplicación específicas .
Las secciones siguientes describen cada subgrupo .
2.21.1 cuerdas y texto Instrucciones de procesamiento
PCMPESTRI Embalado comparar cadenas explícita de longitud , devuelva índice en ECX / RCX
PCMPESTRM Embalado comparar cadenas explícita de longitud , devuelva máscara XMM0
PCMPISTRI Embalado comparar cadenas implícita de longitud , índice de rentabilidad en ECX /
RCX
5-26 vol . 1
INSTRUCCIONES SET RESUMEN
PCMPISTRM Embalado comparar cadenas implícita de longitud , devuelva máscara XMM0
5.11.2 Packed Comparación SIMD entero Instrucción
PCMPGTQ Realiza lógico comparar de mayor que en empaquetado entero quadwords .
5.11.3 Instrucciones Acelerador de aplicación selectivas
CRC32 Proporciona aceleración de hardware para el cálculo de los controles de redundancia
cíclica para una rápida y eficiente
implementación de protocolos de integridad de datos .
POPCNT Esta instrucción calcula del número de bits puestos a 1 en el segundo operando (origen)
y
devuelve el recuento en el primer operando ( un registro de destino )
5.12 AESNI Y PCLMULQDQ
Seis instrucciones AESNI operan en XMM registra para proporcionar primitivas aceleradas para el
cifrado de bloque / descifrado
utilizando Advanced Encryption Standard (FIPS -197 ) . Instrucción PCLMULQDQ llevar a cabo ,
menos la multiplicación de dos
números binarios de hasta 64 bits de ancho.
AESDEC Realizar una ronda de descifrado AES mediante un estado de 128 bits y una clave de
ronda
AESDECLAST Realizar la última ronda AES descifrado usando un estado de 128 bits y una clave
de ronda
AESENC Realice un ciclo de cifrado AES con un estado de 128 bits y una clave de ronda
AESENCLAST Realizar la última ronda de cifrado AES con un estado de 128 bits y una clave de
ronda
AESIMC Realizar una mezcla de transformación inversa columna primitiva
AESKEYGENASSIST Ayuda a la creación de claves de ronda con un programa de expansión de
clave
PCLMULQDQ carryless realizar la multiplicación de dos números de 64 bits
DISTRIBUCION DE REGISTROS
Registros de propósito general
Los
registros
de
propósito
general
son
los
siguientes:
Estos registros tienen un uso especial en algunas instrucciones:
















EAX Registro acumulador. Fuente y destino en algunas operaciones.
EBX Puntero a los datos en el segmento DS.
ECX Contador en las operaciones de cadena y bucles.
EDX Puntero a los puertos de E/S.
ESI Puntero fuente en las operaciones de cadena y puntero a datos en el
segmento DS.
EDI Puntero destino en las operaciones de cadena y puntero a datos en el
segmento ES.
ESP Puntero de pila.
EBP Puntero a los datos alojados en la pila.
AX - acumulador, se utiliza para cálculos. Habitualmente se utiliza como
registro de retorno del resultado.
DX - extensión de AX. Lo mismo uso como AX.
CX - count register -- contadores, especialmente de bucles con número
predeterminado de ejecuciones.
BX - registro base. Se utiliza como índice, pero también para cálculos.
SI - source index - se utiliza para direccionar datos que principalmente se
leen, pero no se escriben.
DI - destination index - se utiliza para direccionar datos que principalmente
se escriben, pero no se leen.
BP - base pointer - se utiliza para pasar parámetros en la pila.






SP - stack pointer - se utiliza sólo implícitamente para indexar la pila con
PUSH POP,CALL RET, INT
IRET y para valor inicial de BP.
CS - segmento de código. Uso exclusivamente según su propósito según el
hardware de 8086.
SS - segmento de pila. Uso exclusivamente según su propósito según el
hardware de 8086.
DS - segmento de datos. Datos utilizados con alta frecuencia.
ES - extra segment. El resto de los datos. Si el programa es pequeña, es
normal que DS=ES.
El registro EIP y el EFLAGS
El registro EIP apunta a la siguiente instrucción a ejecutar del segmento de código.
Su valor se ve modificado con la ejecución de cada instrucción o como resultado
de ejecutar una instrucción de control de flujo (JMP, Jxx, CALL, RET, RET n,
IRET). Al registro EIP se le conoce como el puntero a instrucción o contador de
programa.
El registro EFLAGS contiene el estado del procesador en un momento dado,
incluyendo
los
bits
de
condición
(S,
Z,
P,
C,
...).
CONCLUSIONES
(Adelina Hernández Torres)
Al buscar más información del procesador como lo es grupo de instrucciones que
esta maneja y sus registros es de gran importancia, ya que, de cierta manera la
computadora es utilizada en muchas ocasiones, ya sea para hacer un proyecto,
ver videos, comprender algo más sobre esta, etc.
Generalmente hay que informarnos más de nuestra máquina, saber con qué se
está trabajando y que funciones al ser utilizada por un usuario.
(Luis Angel Hermenegildo Dominguez)
Una instrucción es una serie de pasos a seguir, esto para que la información o
alguna operación aritmética o lógica sean procesadas correctamente.
Dependiendo de qué tipo de procesador se está manejando.
REFERENCIAS BIBLIOGRÁFICAS
http://sop.upv.es/dso/es/t2-arquitectura/gen-t2-arquitectura.html
http://www.pmzone.org/chapter01.html
Descargar