tuto intel core i7

23
Intel Core i7: Descripción y características del nuevo procesador de Intel. ARQUITECTURA La arquitectura usada en los procesadores Core i7 es totalmente nueva. Nehalem representa el cambio de arquitectura más grande en la familia de procesadores de Intel desde 1995 . Dispositivo Single-die: Los cuatro núcleos, el controlador de memoria, y la Caché se encuentran dentro del mismo encapsulado. HyperThreading reimplementado. Cada uno de los cuatro núcleos puede procesar dos tareas simultáneamente, por tanto el procesador aparece como ocho CPUs desde el sistema operativo. Esta característica estaba presente en la antigua microarquitectura Netburst introducida en los Pentium 4 HT. Turbo Boost: La misma permite a los distintos núcleos acelerarse "inteligentemente" por sí mismos cada 133 MHz por encima de su velocidad oficial, mientras que los requerimientos térmicos y eléctricos de la CPU no sobrepasen los predeterminados. Se elimina el bus de memoria que conecta el procesador con el chipset. En las placas con el X58 ahora la memoria y el procesador interaccionan directamente, sin buses ni controladores de por medio. El controlador de memoria se encuentra integrado en el mismo procesador. Uso exclusivo con memorias DDR3. Son memoria de tres canales (ancho de datos de 192 bits): cada canal puede soportar una o dos Memorias DIMM DDR3. Las placa base compatibles con Core I7 tienen cuatro (3+1) o seis ranuras DIMM en lugar de dos o cuatro, y las DIMMs deben ser instaladas en grupos de tres, no dos. Subrayo lo de exclusivo, ya que no se puede utilizar DDR2 en los Intel Core i7.

Upload: cleiber-alfonso-fiallos-samiento

Post on 23-Nov-2015

50 views

Category:

Documents


1 download

TRANSCRIPT

Intel Core i7: Descripcin y caractersticas del nuevo procesador deIntel.

ARQUITECTURALa arquitectura usada en los procesadores Core i7 es totalmente nueva. Nehalem representa el cambio de arquitectura ms grande en la familia de procesadores deInteldesde1995.Dispositivo Single-die: Los cuatro ncleos, el controlador de memoria, y laCachse encuentran dentro del mismo encapsulado.HyperThreadingreimplementado. Cada uno de los cuatro ncleos puede procesar dos tareas simultneamente, por tanto el procesador aparece como ocho CPUs desde el sistema operativo. Esta caracterstica estaba presente en la antigua microarquitecturaNetburstintroducida en los Pentium 4 HT.Turbo Boost: La misma permite a los distintos ncleos acelerarse "inteligentemente" por s mismos cada 133MHzpor encima de su velocidad oficial, mientras que los requerimientos trmicos y elctricos de laCPUno sobrepasen los predeterminados.Se elimina el bus de memoria que conecta el procesador con elchipset. En las placas con el X58 ahora la memoria y el procesador interaccionan directamente, sin buses ni controladores de por medio. El controlador de memoria se encuentra integrado en el mismo procesador.Uso exclusivo con memoriasDDR3. Son memoria de tres canales (ancho de datos de 192 bits): cada canal puede soportar una o dosMemorias DIMMDDR3. Las placa base compatibles con Core I7 tienen cuatro (3+1) o seis ranuras DIMM en lugar de dos o cuatro, y las DIMMs deben ser instaladas en grupos de tres, no dos. Subrayo lo de exclusivo, ya que no se puede utilizarDDR2en los Intel Core i7.Ventajas de esta nueva memoria frente a laDDR2, que implican una mejora en la frecuencia y una mayor cantidad de memoria posible. El Intel X58 tambin brinda la posibilidad de utilizar tres canales de memoria a razn de un mximo de dos slots por cada canal. En total, seis slots por placa, cuando antes "slo" se podan utilizar hasta cuatro.Dual channelcontina siendo compatible.

Con el nombre en clave de Nehalem conocido hasta ahora desde hace varios aos que se lleva desarrollando, por fin llega al mercado rebautizado con el nombre comercial Intel Core i7 en sus versiones de dos, cuatro y ocho ncleos.Construdo a 45 nm., es el primer procesador del Intelen conseguir poner cuatro y ocho procesadores integrados de forma nativa compartiendo una misma memoria cach y procesador de instrucciones. Asmismo vuelve la tecnologa hyperthreading ya utlizada en el Pentium 4, por lo el sistema operativo nos reportara 16 procesadores si tuviermos instalado el Intel Core i7 Octo. Adems el controlador de memoria va integrado dentro del propio procesador con la nueva tecnologa QuickPath, algo a lo que AMD ya nos tiene acostumbrados desde hace bastante tiempo con su tecnologa HyperTransport.Tenemos cambio de socket y de chipsets, es decir, este procesador no ser compatible con ninguna de las placas madres desarrolladas para Intel Core 2 y procesadores anteriores. Intel Core i7 necesita placas madre nuevas y chipsets nuevo. El zcalo para el procesador ha crecido considerablemente de tamao pasando a ser LGA1366 en comparacin con el anterior LGA775.El Nombre Intel Core i7Aunque Intel an no se han pronunciado acerca de la procedencia del nombre i7, se ha especulado mucho sobre este nombre en la web. No coincido con ninguna de estas especulaciones, por lo que publico aqu la ma. La letra i vendra de Intel, y el nmero hara referencia a la generacin del procesador segn la siguiente tabla.

Generacin 1: Abarcara todos los procesadores de Intel hasta el 80188.Generacin 2: El procesador Intel 286 y todas sus variantes.Generacin 3: El procesador Intel 386 y todas sus variantes.Generacin 4: El procesador Intel 486 y todas su variantes.Generacin 5: El procesador Intel Pentium y todas sus variantes.Generacin 6: El procesador Intel Core, Intel Core2 y todas sus variantes.Generacin 7: El procesador Intel Core i7.

Mltiples Ncleos conHyperThreading (HT)Multi-Threading (SMT).Una de las principales caractersticas de este procesador es el integrar mltiples ncleos de forma nativa(single die). Es decir, ncleos que comparten la memoria cach y el juego de instrucciones. Disponible en versiones de dos, cuatro y ocho ncleos a velocidades que van inicialmente desde los 2.66 Ghz. hasta por encima de los 4 Ghz, aunque inicialmente solo veremos las versiones de cuatro ncleos.ConHyperthreadingMulti-Threading, tecnologa ya utilizada con Pentium 4, cada procesador ser capaz de ejecutar dos instrucciones por cada ciclo de reloj, por lo que en un sistema que tenga instalado el Intel Core i7 con cuatro ncleos, el sistema operativo le reportar que tiene instalado ocho ncleos.El viejo HyperThreading (HT), cambia de nombre con Intel Core i7,parallamarseSimultaneous Multi-Threading (SMT) contar con 2 vas (2-way) que permitir administrar hasta 16 hilos (threads) de ejecucin en un procesador de ocho cores, que es lo que permite Intel Core i7 oen su defecto 8 hilos de ejecucin en un procesador Quad core.Resulta algo contradictorio pues los procesadores multi-ncleos deberan suplir lo que se intentaba hacer con el HyperThreading en procesadores de un solo ncleo de la compaa aos atrs, pero la idea de tener mas hilos de ejecucin es algo que para futuros sistemas de computo seduce bastante y si se pueden entre comillas tener mas hilos, habr que ver como los sistemas y aplicaciones aprovechan estos canales adicionales para optimizar la performance, pues es sabido que cuando Intel incorporo el HT en sus P4, no todas las aplicaciones hacan uso o saban aprovecharlo, pues todo o casi todo se programaba para un solo hilo de ejecucin. Actualmente la tendencia es aprovechar los procesadores dual o quad core para optimizar el rendimiento, veremos si este remozado HT logra hacer diferencia.

Memoria Cach Compartida de Alto-Nivel.Mejoras en la memoria cach con una nueva arqitectura de tres niveles: la cach L1 con 32 Kb. de cach para intrucciones y otros 32 Kb para cach de datos; nueva cach L2 por ncleo de latencia muy baja con 256 Kb por ncleo para datos e instrucciones; y una nueva cach L3 compartida por todos los ncleos y con diferentes configuraciones en Mb. segn el tipo de procesador, 8 Mb en el caso de un Core i7 con cuatro ncelos, aunque con el tiempo se ir ampliando esta memoria cach compartida.Intel tendr en sus procesadores lo que ha denominado Multi-level shared cache, esto quiere decir que seguramente tanto la memoria cache de nivel 2 (L2) como la memoria Cache de nivel 3 (L3) sern memorias compartidas por cada uno de los ncleos del procesador, esto trae la ventaja de que se simplifica el diseo de la arquitectura interna del procesador, pero hay que ser cuidadosos en la forma en al que cada uno de los cores intenta acceder a la memoria para que no se produzcan conflictos en los accesos, quizs con un switch interno que administre las peticiones. Esto por que siempre ser mas optimo que cada core tenga su propio cache y que acceda a el exclusivamente a que tener un solo Gran cache en que dos, cuatro o mas ncleos intenten acceder a el provocando, colas o latencias demasiado altas en los accesos, lo que provoca un contrasentido en la razn de ser del la memoria Cache de un procesador, la cual es ahorrarse tiempos al tener un cache externo o tratar de acceder a la memoria principal en tareas crticas.Intel QuickPathEl procesador Intel Core i7 lleva integrado el controlador de memoria dentro del propio procesador. La tecnologaIntel QuickPath Interconnect, es una tecnologa de interconexin con el procesador punto a punto desarrollada por Intel en competencia con la tecnologa HyperTransport de AMD.Esta tecnologa incluye un controlador de memoria dentro del propio procesador. Reemplaza al Front Side Bus (FSB) de los procesador Xeon e Itanium.El rendimiento de esta tecnologa est reportado para ser de 4,8 a 6,4 Gigatransferencias por segundo (GT/s) por direccin, y un enlace puede ser 5, 10 o 20 bits de largo en cada direccin. Adems el ancho de banda provisto por un enlace largo completo asciende de 12,0 a 16,0 GB/s por direccin, o de 24,0 a 32,0 GB/s por enlace.Admite hastatres canales de memoria DDR3 a 1600 Mhz por lo que empezaremos a ver placas con seis slots de memoria en vez de cuatro.Integrated Graphics ProcessorTambien incluir un procesador grfico integrado dentro del propio procesador tambin en respuesta al anuncio de AMD con su tecnologa Fusion que consiste en integrar un procesador grfico dentro del propio procesador.En el caso de Intel Core i7, habr versiones distintas de este procesador, unas sin este controlador y otras con este procesador integrado.Aunque no veremos procesadores Intel Conre i7 hasta el ao 2.009, la idea es la de incluir una GPU, procesador grfico discreto integrado, para modelos concretos, como por ejemplo porttiles y dispositivos ultra-mviles (UMPC) ya que se conseguran consumos de energa muy bajos por lo que se aumentara considerablemente la duracin de las bateras en sistemas mviles como los porttiles.Nuevo Conjunto de Instrucciones SSE 4.2Streaming SIMD Extensions (SSE) es unconjunto de instruccionesSIMD (Single Instruction, Multiple Data nica Instruccin, Mltiples Datos) aadidas en el ao 1.999 al procesador Pentium III,como extension a la arquitectura x86 como respuesta a la tecnologa 3DNow! que AMD tena implementada aos atrs.La versin 4.2 de las extensiones de vector de Intel SSEtrae de regreso al futuro el x86 ISA atrs con la adicin de nuevas instrucciones de manipulacin de cadenas. Digo Regreso al futuro porque el soporte a nivel de cadena de procesamiento ISA es una caracterstica de las arquitecturas CISC que se considera obsoleta actualmente en los aos post-RISC. Pero la cadena de instrucciones del nuevo SSE 4,2estn destinadas a acelerar el procesamiento de XML, lo que las convierte en perfectas para la Web y aplicaciones futuras basadas en XML.SSE 4.2 tambin incluye una instruccinCRCque acelera el almacenamiento y las aplicaciones de red, as comouna instruccin POPCNT til para una variedad de tareas de patrn especificado.Adems, para ofrecer mejopr soporte a las aplicaciones multi-hilo, Intel ha reducido la latencia de los hilos de las primitivas de sincronizacin.En el frente de virtualizacin, acelera las transiciones y tiene algunas mejoras sustanciales, que no voy a detallar aqu, en su sistema de memoria virtual que reduce en gran medida el nmero de esas transiciones requeridas por el Hypervisor.

Otras CaractersticasCuatro unidades de dispatch en vez de tres, lo que se traduce en un 33% ms de mejora de proceso de datos por parte del procesador. El Intel Core i7 podr ejecutar cuatro microinstrucciones a la vez en lugar de las tres de Intel Core 2, consiguiendo un aumento considerable en velocidad.Adems este procesador llevar un segundo buffer de 512-entradas TLB (Translation Look-aside Buffer). Este circuito es una tabla utilizada para convertir las direcciones fsicas y virtuales por el circuito de memoria virtual. Aadiendo esta segunda tabla se mejora considerablemente el rendimiento del procesador.Un nuevo segundo buffer de prediccin de bifurcaciones o BTB (Branch Target Buffer) y aumentando el tamao del primer y este segundo nuevo buffer permitir carga ms instrucciones y predecir con ms exactitud cual es la siguiente instruccin a procesador mejorando an ms el rendimiento del procesador.Destaca tambin el Turbo, que vuelve otra vez a los procesadores como en las pocas del 386. El modelo a 2,66 podra llegar a 2,8 con el Turbo en momentos de mucha demanda de proceso, trabajo y carga del procesador y bajara la velocidad en momentos de reposo.Esto facilita tambin enormemente el trabajo de overclocking, pues aumentando el multiplicador del turbo se consiguen velocidades impresionantes con gran facilidad, claro que ello requiere disponer de buenos sistemas de refrigeracin o disipacin del procesador, as como aumentar los voltajes del mismo. Destacar que el modelo Extreme lleva el multiplicador desbloqueado, facilitando cualquier overcloking, mientras el resto de procesadores llevan el multiplicador bloqueado, impidiendo aumentar mucho el rendimiento del procesador, a no ser que se aumenten manualmente las frecuencias. Ya se puede ver en variastiendasque estn vendiendo ordenadores con este procesador con overcloking a 4,2 Ghz.

Desventajas El Core i7, o por lo menos, lasplacas basepara el Core i7 comercializadas a partir del22 de noviembrede2008, no son compatibles conECC(Error checking and correction) de memoria. Algunos expertos, como por ejemplo,Daniel Barrios,7recomiendan que sistemas sin soporte ECCnose usen para la computacin cientfica, y en general tampoco a menos que al usuario no le importen los errores en los datos crticos. El Core i7 presenta un consumo mximo de 160W, con el consiguiente problema trmico y exigencia de potencia en la fuente de alimentacin.(aunque tiene unTDPde 130W). Como desventaja adicional, resulta ms difcil llevar este rendimiento a los ordenadores porttiles, enfrentndose as a nicamente 2 o 3 horas de batera.Modelos de core i7

Tabla de especificacionesEspecificacionesEstadoLaunched

Fecha de lanzamientoQ2'13

Nmero de procesadori7-4770S

Cantidad de ncleos4

Cantidad de subprocesos8

Veloc. Reloj3.1 GHz

Frecuencia turbo mxima3.9 GHz

Cach inteligente Intel8 MB

DMI25 GT/s

Cantidad de enlaces QPI0

Conjunto de instrucciones64-bit

Extensiones de conjunto de instruccionesSSE 4.1/4.2, AVX 2.0

Opciones integradas disponibles

Yes

Litografa22 nm

Escalabilidad1S Only

Mximo de TDP65 W

Especificacin de solucin trmicaPCG 2013C

Precio de cliente recomendadoBOX : $305.00TRAY: $303.00

Hoja de datosLink

Memory Specifications

Tamao de memoria mximo (depende del tipo de memoria)32 GB

Tipos de memoriaDDR3-1333/1600

Cantidad de canales de memoria2

Mximo de ancho de banda de memoria25,6 GB/s

Compatible con memoria ECC

No

Graphics Specifications

Grficos del procesadorIntel HD Graphics 4600

Frecuencia de base de grficos350 MHz

Frecuencia dinmica mxima de grficos1.2 GHz

Memoria mxima de video de grficos1.7 GB

Intel Quick Sync Video

Yes

Tecnologa Intel InTru 3DYes

Intel InsiderYes

Intel Wireless Display

Yes

Tecnologa Intel Clear Video HDYes

N de pantallas admitidas3

Expansion Options

Revisin de PCI Express3.0

Configuraciones de PCI ExpressUp to 1x16, 2x8, 1x8/2x4

Cantidad mxima de lneas PCI Express16

Package Specifications

Mxima configuracin de CPU1

TCASE71.35C

Tamao de paquete37.5mm x 37.5mm

Litografa de IMC y grficos22nm

Zcalos compatiblesFCLGA1150

Baja concentracin de opciones de halgenos disponiblesVer MDDS

Advanced Technologies

Versin de la tecnologa Intel Turbo Boost2.0

Tecnologa Intel vPro

Yes

Tecnologa Hyper-Threading Intel

Yes

Tecnologa de virtualizacin Intel (VT-x)Yes

Tecnologa de virtualizacin Intel para E/S dirigida (VT-d)

Yes

Intel VT-x con tablas de pginas extendidas (EPT)

Yes

Intel Transactional Synchronization Extensions New InstructionsYes

Intel 64

Yes

Tecnologa Intel My WiFiYes

Estados de inactividadYes

Tecnologa Intel SpeedStep mejorada

Yes

Tecnologas de monitoreo trmicoYes

Tecnologa Intel Identity ProtectionYes

Programa Intel de imagen estable para plataformas (SIPP)Yes

Data Protection Technology

Nuevas instrucciones de AES

Yes

Secure KeyYes

Intel Platform Protection Technology

OS GuardYes

Tecnologa Trusted Execution

Yes

Bit de desactivacin de ejecucinYes

Tecnologa antirroboYes

Programacin para core i7El modernoconjunto de instrucciones x86es un superconjunto de las instrucciones del 8086 y el 8088 y una serie de extensiones a este conjunto de instrucciones que comenzaron con el microprocesadorIntel 8008. Existe casi una completacompatibilidadbinaria desde los chips Intel 8088 y 8086 con los modernos procesadoresIntel Pentium 4,Intel Core Duo,Intel Core i7,AMD Athlon 64,AMD Opteron, hasta la generacin actual de microprocesadores x86, aunque existen algunas excepciones. Esta compatibilidad se logra gracias al uso de 2 conjuntos de instrucciones de arquitecturas, lo cual es comnmente criticado. La compatibilidad de los programas en lenguaje ensamblador con procesadores ms antiguos slo es posible cuando el programa no incluye instrucciones solo disponibles en los procesadores nuevos.Generalmente, cada nuevo procesador de la serie tiene unas cuantas instrucciones adicionales y ms capacidades y mejor desempeo que los anteriores.Mnemotcnicos y cdigos de operacinCada instruccin del x86 est representada por unmnemotcnico, que traduce directamente a una serie de bytes la representacin de la instruccin, llamadacdigo de operacin. Por ejemplo, la instruccinNOPse codifica como 0x90 y la instruccinHLTcomo 0xF4. Algunos cdigos de operacin no tienen nombres mnemotcnicos y no estn documentados. Diferentes procesadores en la familia del x86 pueden interpretar cdigos de operacin indocumentados de forma distinta, haciendo que un mismo programa se comporte de forma distinta en diferentes procesadores.

SintaxisEl lenguaje ensamblador x86 tiene 2 vertientes diferentes en cuanto a su sintaxis de programacin:sintaxisIntel, usada en sus inicios para la documentacin de laplataforma x86, ysintaxisAT&T.1La sintaxis Intel es la dominante en la plataformaWindows, mientras que enUnix/Linuxambas son utilizadas aunqueGCCsolo soportaba la sintaxis AT&T en sus primeras versiones.La mayora de los ensambladores x86 utilizan la sintaxis de Intel, comoMASM,TASM,NASM,FASMandYASM.GASha soportado ambas sintaxis desde la versin 2.10 a travs de la directiva .intel_sintax.123RegistrosLos procesadores x86 tienen una serie de registros disponibles para almacenar informacin. Este conjunto de registros son conocidos comoregistros de propsito generalo GPR (del inglsGeneral Purpose Register).Adems de los GPR, existen adicionalmente: registros de segmento (CS, DS, ES, FS, GS, SS) otros registros (IP,Registro de estado) registros extra (MMX,3DNow!,SSE, etc).El registro IP apunta a la posicin del programa en la que el procesador est ejecutando el cdigo. EL registro no puede ser accedido por el programador directamente.Los registros del x86 pueden ser usados mediante la instruccinMOV. Por ejemplo: mov ax, 1234h mov bx, axcopia el valor 1234h en el registro ax y en la siguiente lnea copia el valor de ax en el registro bx.

Direccionamiento segmentadoLaarquitectura x86utiliza el mtodo de segmentacin para direccionar memoria, en lugar del mtodo lineal usado en otras arquitecturas. La segmentacin implica descomponer una direccin lineal en dos partes un segmento y un desplazamiento. El segmento apunta al inicio de un bloque de 64K direcciones y el desplazamiento indica la diferencia entre el lugar apuntado y el inicio del segmento.Este modo de direccionamiento se utiliza para aprovechar las caractersticas del procesador. El problema estaba en que los registros internos del procesador eran de 16 bits, mientras que el bus de direcciones era de 20. Faltaban por tanto 4 bits para poder aprovechar al mximo las capacidades de direccionamiento del procesador. Para resolver esto, cada direccin de memoria ser especificada como un segmento y un desplazamiento dentro de ese segmento. Esta solucin divide la memoria en segmentos de 64 K, lo cul limit bastante los diseos de los procesadores posteriores de la familia (Intel 80286,Intel 80386, etc.); aunque posteriormente se idearon mtodos para resolver este problema, como la memoria extendida (no compatible con el x86/x88). Con esto se consigue que el procesador sea capaz de direccionar 1,048,576 direcciones de 1 byte, o lo que es lo mismo, 1Mbyte.Se utilizan dos registros para el direccionamiento: uno para indicar el segmento, y el otro para indicar el desplazamiento.Para obtener la direccin de memoria (direccin efectiva): se toma el valor de registro de segmento, se desplaza 4 bits a la izquierda (multiplicacin por 16), y se le suma el valor del desplazamiento.Tipos de instruccionesEn general, las caractersticas del repertorio de instrucciones x86 son: Una codificacin compacta Longitud variable y alineacin independiente (codificacin en formatolittle endian) Instrucciones de una y dos direcciones, en las que el primer operando es tambin el destino. Operandos de memoria como origen y destino compatibles (normalmente utilizados para leer/escribir elementos de la pila usando pequeos desplazamientos inmediatos) Uso de los registros generales e implcitos; a pesar de que los siete registros generales (contando 'ebp') pueden ser utilizados como acumuladores o para direccionar, la mayora de ellos son tambin usados implcitamente por algunas instrucciones especiales; los registros afectados deben conservar temporalmente la informacin, si estn siendo utilizados durante el uso de estas instrucciones (normalmente mediante el uso de la pila). Produce flags condicionales implcitamente mediante el uso de la mayora de instrucciones de laALU Soporta varios modos de direccionamiento Incluye punto flotante en una pila de registros Contiene soporte especial para instrucciones atmicas (XCHG, CMPXCHG(8B), XADD e instrucciones enteras combinadas con el prefijo LOCK) InstruccionesSIMD(instrucciones que aplican una misma operacin sobre un conjunto ms o menos grande de datos)

Instrucciones de pilaLa pila es un segmento que es de suma utilidad en estos microprocesadores. En l se almacenan valores temporales como las variables locales de las funciones, o las direcciones de retorno de stas. Una funcin no es ms que una subrutina, o un fragmento de cdigo al que se le llama generalmente varias veces desde el programa principal, o desde una funcin jerrquicamente superior. Cuando se llama a una funcin se hace un mero salto al punto donde empieza ese cdigo. Sin embargo esa subrutina puede ser llamada desde distintos puntos del programa principal, por lo que hay que almacenar en algn sitio la direccin desde donde se hace la llamada, cada vez que esa llamada tiene lugar, para que al finalizar la ejecucin de la funcin se retome el programa donde se dej. Esta direccin puede almacenarse en un sitio fijo (como hacen algunos microcontroladores), pero eso tiene el inconveniente de que si esa funcin a su vez llama a otra funcin (o a s misma!) podemos sobreescribir la direccin de retorno anterior, y al regresar de la segunda llamada, no podramos volver desde la primera. Adems, es deseable que la funcin guarde los valores de todos los registros que vaya a usar en algn sitio, para que el que la llame no tenga que preocuparse de ello (pues si sabe que los registros van a ser modificados, pero no sabe cules, los guardar todos por si acaso). Todas estas cosas, y algunas ms, se hacen con la pila.El segmento de pila est indicado por SS, y el desplazamiento dentro del segmento, por SP.Cuando arranca el programa, SP apunta al final del segmento de pila. Para almacenar informacin en la pila se decrementa SP para que apunte un poco ms arriba y se copia a esa posicin de memoria, SS:SP. Para sacarlo, copiamos lo que haya en SS:SP a nuestro destino, e incrementamos el puntero.Como con todo lo que se hace con frecuencia, hay dispuestas instrucciones propias para el manejo de la pila. Las dos bsicas sonPUSHorigen(empujar) yPOPdestino(sacar). La primera decrementa el puntero de pila y copia a la direccin apuntada por l (SS:SP) el operando origen (de tamao mltiplo de 16 bits), mientras que la segunda almacena el contenido de la pila (elemento apuntado por SS:SP) en destino y altera el puntero en consecuencia. Si el operando es de 16 bits se modifica en 2 unidades, de 32 en 4, etc. Lo que se incrementa/decrementa es siempre SP, claro, porque SS nos indica dnde est ubicado el segmento de pila.La instruccinretsizese utiliza para recuperar de la pila los valores de IP o de CS e IP dependiendo del caso. Al salir de un procedimiento es necesario dejar la pila como estaba; para ello podemos utilizar la instruccin pop, o bien ejecutar la instruccinretsizedondesizees el nmero de posiciones que deben descartarse de la pila.

Instrucciones de la ALU con enterosEl ensamblador x86 tiene las operaciones matemticas estndar, comoadd,sub,mul, yidiv; los operadores lgicosand,or,xor,neg; desplazamientos,sal/sar,shl/shr; rotacin con/sin acarreo,rcl/rcr,rol/ror, un complemento de instrucciones aritmticas BCD,aaa,aad,daay otras.Instrucciones en coma flotanteEl ensamblador x86 incluye instrucciones para pila basada en unidades en coma flotante. Entre ellas se encuentran la suma, resta, negacin, multiplicacin, divisin, resto, races cuadradas, truncamiento entero y truncamiento fraccionado. Las operaciones tambin incluyen instrucciones de conversin con las que se puede cargar o almacenar un valor desde memoria a cualquiera de los siguientes formatos: BCD, entero de 32 bits, entero de 64 bits, punto flotante de 32 bits, punto flotante de 64 bits u 80 bits. El x86 tambin incluye funciones como seno, coseno, tangente, arco tangente, exponente con base 2 y logaritmos de base 2, 10 oe.La conversin de instrucciones al formato del registro de pila es normalmenteF (OP) st, st(*)oF (OP) st(*), st, donde st es equivalente a st(0), y st(*) es uno de los 8 registros de pila (st(0), st(1), ..., st(7)). Como con los enteros, el primer operando acta como primera fuente y como operando destino. La suma, resta, multiplicacin, divisin, almacenamiento y comparacin de instrucciones incluye modos de instruccin que se encargan de desapilar una vez completada la operacin.En el caso de que no exista ningn operando, supone destino = ST(1), fuente = ST y se hace adems pop sobre la pila, de modo que el resultado se sita en lo alto de la pila. Por ejemplo, FADD calcula ST(1)=ST(1)+ST y hace pop sobre la pila (incrementando en uno el puntero de pila), con lo que el nuevo elemento en lo alto de la pila contiene el resultado.Instrucciones SIMDLos procesadores x86 modernos tienen instrucciones SIMD, que permiten realizar la misma operacin en paralelo sobre diversos valores codificados en un registro SIMD. Varias tecnologas de instrucciones soportan diferentes operaciones sobre distintos repertorios de registros, pero todos (desde MMX hastaSSE4,2) incluyen clculo general sobre aritmtica entera o en coma flotante (suma, resta, multiplicacin, desplazamiento, minimizacin, maximizacin, comparacin, divisin o raz cuadrada). Por ejemplo, PADDW MM0, MM1 aplica 4 sumas paralelas de enteros de 16 bits (debido a la W que indica que son palabras) de los valores de mm0 hasta mm1, y los almacena en mm0. SSE tambin incluye el modo en coma flotante en el que el primer valor de los registros est modificado (expandido en el SSE2).

Instrucciones de manipulacin de datosEl procesador x86 tambin incluye modos de direccionamiento complejo para direccionar memoria con un desplazamiento inmediato, un registro, un registro con desplazamiento, un registro escalado con o sin desplazamiento y un registro con desplazamiento opcional y otro registro escalado. Entonces por ejemplo, uno puede codificarmov eax, [Table + ebx + esi*4]como una instruccin simple que carga 32 bits de datos desde la direccin localizada en el desplazamiento (Table + ebx + esi * 4) desde el segmento DS, y almacenarla en el registro eax. En general, los procesadores x86 pueden cargar y usar memoria ajustada al tamao del cualquier registro sobre el que est operando.Los repertorios de instrucciones x86 incluyen instrucciones de carga, almacenamiento y movimiento de cadenas (LODS, STOS and MOVS) que representan cada operacin con un tamao especificado (B para bytes, W para palabras de 16-bits, D para dobles palabras de 32 bits) e incrementan/decrementan el registro de direccin implcito (SI para LODS, DI para STOS y ambos para MOVS). Para la carga y almacenamiento, el registro destino/fuente implcito es el AL, AX o EAX, dependiendo del tamao. El segmento usado implcitamente es DS para LODS, ES para STOS y ambos para MOVS.La pila est implementada con un puntero que disminuye (push) y aumenta (pop) implcitamente. En el modo de 16 bits, este puntero se corresponde a la direccin SS:[SP], en 32- bits sera SS:[ESP] y en 64-bits [RSP]. El puntero de pila se encarga de apuntar al ltimo valor almacenado, asumiendo que su tamao coincide con el modo del procesador (12, 32 o 64 bits) para que coincida con el ancho por defecto de las instrucciones PUSH/POP/CALL/RET. Otras instrucciones para manipular la pila son PUSHF y POPF, que se utilizan para almacenar y recuperar el registro de FLAGS, almacenndolo o retirndolo de la parte alta de la pila.Flujo del programaEl ensamblador x86 tiene una operacin de salto incondicional,jmp, que admite una direccin inmediata, un registro o una direccin indirecta mediante registro como parmetro.Tambin se permiten los saltos condicionales, comoje(saltar cuando hay igualdad),jne(saltar en desigualdad),jg(saltar si 'mayor que', con signo),jl(saltar si 'menor que', con signo),ja(saltar si 'superior/mayor que', sin signo),jb(saltar si 'inferior/menor que', sin signo). Estas operaciones condicionales se basan en el estado especfico de los bits del registro de FLAGS. La mayora de las operaciones aritmticas se encargan de actualizar estos flags segn su resultado. Las instrucciones de comparacincmpytestmodifican el estado del registro de flags sin modificar los operandos. Las comparaciones en coma flotante se realizan mediante las instrucciones FCOM o FICOM.Cada operacin de salto tiene tres formas diferentes, dependiendo del tamao del operando. Un saltosortusa un operando con signo de 8bits, que se corresponde con el desplazamiento relativo a la instruccin actual. El saltoneares similar al corto pero usa un operando de 16 o 32 bits con signo. Un saltofarutiliza el segmento entero base:desplazamiento como una direccin total. Tambin hay forma indirecta e indexada para cada uno de ellos.Adems de las operaciones de salto, existen las instruccionescallyretpara llamar y regresar de una subrutina. Antes de transferir el control a la subrutina,callapila el desplazamiento de la instruccin siguiente a la llamada en la pila;retdesapila este valor de la pila, y transfiere el control a la direccin que indicaba el valor desapilado. En el caso de que se trate de una llamada a una funcin lejana,far call, la base tambin se apila siguiendo al desplazamiento.Existen algunas instrucciones similares, como la interrupcinint. sta activa el procedimiento de interrupcin especificado por el operando y guarda el valor del registro de flags en la pila . La activacin de la interrupcin se realiza mediante una llamada a un procedimiento lejano (far call), pero en lugar de una direccin, utiliza esevector de interrupcin. La direccin de este vector se calcula multiplicando por 4 el operando, que es un valor entre 0 y 255. Normalmente, el manejador de interrupciones guarda todos los registros que el procesador est usando, a menos que estn siendo usados para almacenar el resultado de una operacin. Por otro lado, para volver al programa desde una interrupcin se utilizairet, que se encarga de restablecer el valor de los flags. Las interrupciones ligeras descritas anteriormente son usadas por algunos sistemas operativos para las llamadas del sistema, y pueden tambin ser usadas paradepurarlos manejadores de interrupciones fuertes. stas son provocadas por eventos hardware externos, y deben mantener los valores de todos los registros ya que el estado del programa en ejecucin se desconoce. En el Modo Protegido, las interrupciones pueden ser activadas por el Sistema Operativo para realizar un cambio de tarea, almacenando automticamente todos los registros de la tarea en ejecucin.