Publicado el 23 de Abril del 2020
1.447 visualizaciones desde el 23 de Abril del 2020
19,1 MB
56 paginas
Creado hace 12a (13/08/2012)
Procesadores IA-32 e Intel c64
Alejandro Furfaro
Abril 2012
Alejandro Furfaro ()
Procesadores IA-32 e Intel c64
Abril 2012
1 / 55
1
2
3
Agenda
Inroducción
Genealogía
Arquitectura Básica
Modelo del Programador de aplicaciones
Arquitectura de 16 bits básica
IA-32
Arquitectura Intel R 64
Modos de Direccionamiento
Modo Implícito
Modo Inmediato
Modo Registro
Modos de Direccionamiento a memoria
Modo Desplazamiento
Modo Base Directo
Base + Desplazamiento
Base + Desplazamiento
Índice * escala + desplazamiento
Base + Índice + Desplazamiento
Alejandro Furfaro ()
Procesadores IA-32 e Intel c64
Abril 2012
1 / 55
Orígenes
Inroducci ón
Genealogía
La arquitectura IA-32 deriva de la familia iAPx86 que se presentó en
1978 de la mano del procesador de Intel 8086. Fue el primer
procesador de 16 bits. Meses luego Motorola lanzaría el 68000 y Zilog
el Z8000A y Z8000B. Pero IBM ya había decidido utilizar el procesador
de Intel para su modelo de Personal Computer (PC) que
revolucionaría el mercado de computadores.
Por entonces, los usuarios de computadores demandaban disminuir el
costo de actualización de sus equipos. En parte este elevado costo se
debía a la necesidad de reemplazar no solo el hardware sino además
el sistema operativo y las aplicaciones. Al lanzar el procesador 8086,
Intel se compromete a mantener compatibilidad ascendente en los
modelos subsiguientes de procesadores para satisfacer esta demanda
de los usuarios. Esto fue uno de los motivos de la decisión de IBM de
adoptar esta familia de procesadores como base para su PC.
Alejandro Furfaro ()
Procesadores IA-32 e Intel c64
Abril 2012
2 / 55
Orígenes
Inroducci ón
Genealogía
Unos meses luego del lanzamiento del 8086, Intel presenta una
variante del mismo procesador: el 8088, que era idéntico en su
arquitectura interna de 16 bits, salvo por su bus de datos que a
diferencia del bus de 16 bits del 8086 tenía solo 8 bits, lo cual le daba
una mas directa conectividad con la innumerable cantidad de
periféricos de 8 bits que por entonces había disponibles. Finalmente
por esta mejor adaptación a nivel de hardware con los dispositivos
existentes, IBM lanzaría su primer PC basada en un 8088. A partir de
entonces se afirmaría el liderazgo de Intel en esta industria.
En 1982 Intel presenta el 80286, que mejoraba la CPU 8086 en la
ejecución de numerosas instrucciones e incorporando multitasking. Su
arquitectura de 16 bits seguía siendo la misma. A partir de este
procesador IBM diseña el modelo de PC conocido como AT.
Alejandro Furfaro ()
Procesadores IA-32 e Intel c64
Abril 2012
3 / 55
Orígenes
Inroducci ón
Genealogía
En 1984 Intel lanza el primer procesador de 32 bits, el 80386, y con él
la arquitectura IA-32. Ya la industria comienza a hablar de los
procesadores x86. Aparecen fabricantes que producirán procesadores
IA-32, bajo licencia de Intel primero, y a partir de que ésta lanza el
procesador Pentium en 1993 ya en forma independiente. Entre ellos
se destaca AMD.
A fines de los años 90 Intel comienza una sociedad con Hewlett
Packard que derivaría en una nueva arquitectura llamada IA-64 y
cuyos procesadores de 64 bits Itanium e Itanium 2 no tendrían el éxito
de los x86. AMD en cambio apostó a la arquitectura dominante, e
ideó las extensiones de 64 bits para los procesadores IA-32. Llamó a
esta nueva arquitectura x86-64 y posteriormente AMD64. Intel por
primera vez debe incorporar a sus procesadores IA-32, funciones
desarrolladas por sus competidores. Llama a esta arquitectura Intel R
64 .
Alejandro Furfaro ()
Procesadores IA-32 e Intel c64
Abril 2012
4 / 55
Modos de Operación “Legacy”
Inroducci ón
Arquitectura Básica
Los procesadores IA-32 tienen tres modos de operación, de los cuales
surgen sus capacidades arquitecturales e instrucciones disponibles:
Modo Real: En este modo el procesador implementa el entorno
de operación del 8086, con algunas extensiones: puede pasar por
software al Modo Protegido o al Modo Mantenimiento del
Sistema, puede utilizar registros de 32 bits, puede reconfigurar la
ubicación del vector de interrupciones, ya que a pesar de que el
8086 no lo tenía, ahora existe y es accesible desde modo Real el
registro IDTR (ver Interrupciones mas adelante). Para honrar su
compromiso de compatibilidad ascendente, todos los
procesadores IA-32 e Intel R 64 arrancan en este Modo de
Trabajo.
Alejandro Furfaro ()
Procesadores IA-32 e Intel c64
Abril 2012
5 / 55
Modos de Operación “Legacy”
Inroducci ón
Arquitectura Básica
Modo Protegido: Este es el modo por excelencia de los
procesadores de esta familia inaugurado por el procesador
80286. En este modo se implementa multitasking y se despliega
un espacio de direccionamiento de 4 Gbytes, extensible a 64
Gbytes. A partir del procesador 80386 se lleva el modelo
arquitectural a 32 bits y se introduce un sub-modo al que puede
ponerse a una determinada tarea, denominado Virtual-8086 que
permite a un programa diseñado para ejecutarse en un
procesador 8086, poder ejecutarse como una tarea en Modo
Protegido. Esto fue muy útil para implementar en Windows la
“Ventana DOS”. Actualmente no es utilizado, ya que la consola
que se ejecuta utiliza un código diferente del DOS original, y es
en general una tarea mas.
Alejandro Furfaro ()
Procesadores IA-32 e Intel c64
Abril 2012
6 / 55
Modos de Operación “Legacy”
Inroducci ón
Arquitectura Básica
Modo Mantenimiento del Sistema: El procesador ingresa a este
modo por dos caminos: Activación de la señal de interrupción
#SMM, o mediante un mensaje SMI desde su APIC local. Este
modo fue introducido a partir de los modelos 386SL y 486SL para
realizar funciones específicas para la plataforma de hardware en
la cual se desempeña el procesador, como lo son ahorro de
energía y seguridad. Estos procesadores fueron los primeros
diseñados para notebooks. Al ingresar a este modo el procesador
resguarda en forma automática el contexto completo de la tarea o
programa interrumpido, y pasa a ejecutar en un espacio
separado. Una vez efectuadas las operaciones necesarias y
cuando debe salir de este modo el procesador reasume la tarea o
programa interrumpida independientemente del modo de
operación en el que se encuentra.
Alejandro Furfaro ()
Procesadores IA-32 e Intel c64
Abril 2012
7 / 55
Modos de Operación de 64 bits
Inroducci ón
Arquitectura Básica
Hasta la aparición de las extensiones de 64 bits, éstos eran los modos
de trabajo estándar de los procesadores IA-32. Los procesadores
Intel R 64 además de los modos de trabajo de los IA-32 incluyen un
modo IA-32e, al que se pasa estando en modo protegido, con
paginación habilitada y PAE activo (Como estudiaremos en
Paginación). En este modo a su vez existen dos sub-modos (nada es
simple en este mundo).: Compatibilidad y Modo 64 bits
Alejandro Furfaro ()
Procesadores IA-32 e Intel c64
Abril 2012
8 / 55
Modos de Operación de 64 bits
Inroducci ón
Arquitectura Básica
Modo Compatibilidad: Pensado tal vez para garantizar la
transición, permite a las aplicaciones de 16 y 32 bits ejecutarse
sin recompilación bajo un sistema operativo de 64 bits. El entorno
de ejecución es el que veremos para la arquitectura IA-32
(registros de 32 bits, etc). No soporta el manejo de tareas del
modo IA-32 (TSS mediante), ni el modo Virtual 8086 (en esto nos
basamos para asegurar que está obsoleto al referirnos a este
modo algunos párrafos atrás. Incluye los mecanismos de
protección del modo 64 bits.
En el modo compatibilidad un Sistema Operativo de 64 bits puede
ejecutar junto con aplicaciones puras de 64 bits, tareas o
aplicaciones de 16 y 32 bits sobre la base de diferentes
segmentos de código. La aplicación o tarea accede a una
arquitectura IA-32 pura, utilizando direcciones de 16 y 32 bits, con
4 Gbytes de espacio de direccionamiento y con la posibilidad de
acceder por encima de ese límite habilitando PAE.
Alejandro Furfaro ()
Procesadores IA-32 e Intel c64
Abril 2012
9 / 55
Modos de Operación de 64 bits
Inroducci ón
Arquitectura Básica
Modo 64 bits: Este modo habilita a un Sistema Operativo de 64
bits a ejecutar tareas escritas utilizando direcciones lineales de 64
bits. En este modo se extienden de 8 a 16 los Registros de
propósito general cuyo ancho de palabra ahora es de 64 bits
(para ello se introduce el prefijo REX para las instrucciones que
deseen acceder a las versiones de Registros de propósito general
de 64 bits), agregándose los registros R8 a R15, y los registros
SIMD también se extienden a 16 manteniendo su ancho de 128
bits, XMM0 a XMM15.
Alejandro Furfaro ()
Procesadores IA-32 e Intel c64
Abril 2012
10 / 55
Modelo del Programador de aplicaciones
Arquitectura de 16 bits básica
Registros y espacio de direccionamiento
Figura: Entorno Básico de ejecución en 16 bits
Alejandro Furfaro ()
Procesadores IA-32 e Intel c64
Abril 2012
11 / 55
AX015BXCXDXSIDIBPSPALBLCLDLAHBHCHDHIPFlags015CSSSDSES0152^20 -10Espacio de direccionamientoModelo del Programador de aplicaciones
Arquitectura de 32 bits compatible
IA-32
Figura: Entorno Básico de ejecución del 80386
Alejandro Furfaro ()
Procesadores IA-32 e Intel c64
Abril 2012
12 / 55
AX015BXCXDXSIDIBPSPALBLCLDLAHBHCHDHIPFlags015CSSSDSES0152^32 -10Espacio de direccionamiento1631EAXEBXECXEDXESIEDIEBPESP1631EIPEFlagsFSGSModelo del Programador de aplicaciones
IA-32
Floating Point Unit
Figura: Entorno Básico de ejecución de la FPU
Alejandro Furfaro ()
Procesadores IA-32 e Intel c64
Abril 2012
13 / 55
EDXEFlags06379R0R1R2R3R4R5R6R7SExponenteMantisaControl RegisterStatus RegisterTag RegisterLast Instruction Pointer Last Data (Operand) Pointer 015047Opcode Register011Modelo del Programador de aplicaciones
IA-32
Floating Point Unit
Figura: Formatos de los Datos d
Comentarios de: Procesadores IA-32 e Intel©64 (0)
No hay comentarios