1 / 40

Breve introducción a la arquitectura de 32 bits intel

Breve introducción a la arquitectura de 32 bits intel. Modos de Operación. Modo Protegido (Protected) Todas las características del procesador son aprovechadas. Modo Virtual x86 Modo real dentro de un contexto protegido y multitarea Modo Real (Real-address) Modo 8086 con extensiones.

imelda
Download Presentation

Breve introducción a la arquitectura de 32 bits intel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Breve introducción a la arquitectura de 32 bits intel

  2. Modos de Operación • Modo Protegido (Protected) • Todas las características del procesador son aprovechadas. • Modo Virtual x86 • Modo real dentro de un contexto protegido y multitarea • Modo Real (Real-address) • Modo 8086 con extensiones. • (El arranque del procesador siempre se inicia en este modo) • Modo Gestion de sistema (management system) • Permite implementar funciones específicas dependientes de la plataforma (gestión de la alimentación, seguridad) • Se entra a este modo con la interrupción SMI#

  3. Entorno básico de ejecución • Espacio de direcciones lineal 4GB (232) • Espacio de direcciones físico 64GB (236) • Puertos I/O • 8 registros de propósito general • 6 registros de segmento • EFLAGS, EIP • X87 FPU unidad de punto flotante • MMX ejecución de instrucciones SIMD enteras • XMM ejecución de insturcciones SIMD p.flot

  4. Recursos del sistema para la gestión de la ejecución • Registros de control: CR*[0..4] • Determinan el modo operativo del procesador y las características de la tarea actual • Registros de control de acceso a memoria • GDTR, IDTR, LDTR • Registros de depuración • Permiten monitorizar operaciones de depuración de procesos • Registros para asignar características a regiones de memoria • MTRR’s (memory type range regs) • Etc.

  5. Organización de la memoria • Modelo Plano de memoria (+ paginado opcional) • Un simple espacio de direcciones contiguas (0..232-1). Contiene datos, código y stack. Dirección lineal. • Modelo Segmentado de memoria ( + paginado opcional) • El espacio de direcciones es dividido en secciones llamadas segmentos. Dirección lógica (Segmento+Offset). Un Selector de Segmento identica el segmento al que se quiere acceder. • Es posible manejar 16383 segmentos de hasta 232 bytes cada uno • Modelo Real-address de memoria

  6. Registros de propósito general

  7. Registros de proposito general • EAX- Acumulador para operandos y resultados • EBX-Puntero a datos en segmento DS • ECX-Contador para strings y bucles • EDX-Puntero para operaciones I/O • ESI-Puntero para datos en DS y fuente en operaciones de cadena • EDI-Puntero para datos en ES y destino en operaciones de cadena • ESP-Puntero de pila • EBP-Puntero para datos en la pila

  8. Registros de segmento • Más propiamente contienen selectores de segmento. • El selector apunta a una estructura en memoria que se denomina Descriptor de Segmento • El descriptor de segmento contiene entre otras cosas la dirección lineal del segmento.

  9. Registros selectores de segmento

  10. Registro de Flags

  11. Algunos flags • IOPL • Indica el nivel de privilegio que debe tener una tarea para poder ejecutar instrucciones de entrada salida • VM • Se activa para entrar en modo virtual x86

  12. Modos de direccionamiento

  13. Selectores, Descriptores y Tablas de descriptores. • Un selector, que se carga en un registro de segmento, es un apuntador a una Tabla de Descriptores • Una Tabla de Descriptores es una lista de posibles descriptores de segmento que puede utilizar la tarea que se ejecuta actualmente. • El Descriptor es una estructura de datos que describe un segmento

  14. Selector

  15. Selector. • Para confeccionar una dirección lineal hace falta acceder al descriptor de segmento y obtener los datos de chequeo, dirección base y límite. • La parte oculta del registro de segmento se cargan tras el primer acceso y quedan almacenadas para los sucesivos

  16. Descriptor de segmento

  17. Tablas de descriptores La Tabla Local (LDT) es propia del proceso actual, mientras que la Tabla Global es compartida por todos los procesos del sistema.

  18. Modo Protegido.Niveles de protección • Se basan en niveles de privilegio: • 0..3. 0 mayor privilegio, 3 menor privilegio • Los mecanismos operan: • A nivel de segmento • A nivel de página • Cada referencia a memoria es chequeada para verificar que satisface una serie de requerimientos. • Comprobación de límites • Comprobación de tipo de datos • Chequeo de niveles de privilegio • Restriccion de dominios accesibles • Restricción de puntos de entrada a procedimientos • Restricción del conjunto de instrucciones ejecutable según nivel de privilegio

  19. Niveles de privilegio

  20. Chequeo de privilegios CPL: Current Privilege Level Nivel de privilegio de la tarea que se ejecuta en un determinado momento. DPL: Descriptor Privilege Level Indica habitualmente el mínimo nivel de privilegio que debe tener una tarea para acceder a un segmento. RPL: Request Privilege Level Indica el nivel de privilegio del selector con el cual se accede a un segmento. Puede sobreescribir a CPL según el caso.

  21. Chequeo de privilegio para acceso a segmento de datos • El menor privilegio entre CPL y RPL es el que domina • Procesos o descriptores con mayor privilegio acceden a segmentos con menor requerimiento de privilegios

  22. Chequeo de privilegios para accesos segmentos de código

  23. Conforming-NonConforming • Conforming- non conforming es una característica de los segmentos de código • Relacionada con la capacidad de ese segmento para ser invocado desde otros niveles. • El acceso a un segmento nonconforming solo (?) es permitido a un código con su mismo nivel de privilegio (CPL==DPL) • El acceso a un segmento conforming está permitido a todo proceso con menor o igual nivel de privilegio • En ningún caso implica un cambio del nivel de privilegio del proceso invocante.

  24. Puertas • Las puertas facilitan la transferencia del control de ejecución entre niveles de privilegio. • La capacidad de un proceso con determinado nivel de privilegio de invocar a una tarea ejecutándose en un nivel más (¿o menos?) privilegiado. • Se invocan mediante un call o jump, pero en lugar de aportar un selector de segmento aportan un descriptor de puerta.

  25. Descriptor de Puerta • Especifica el segmento de código a ser accedido • Define un punto de entrada a un procedimiento • Especifica el nivel de privilegio que requiere el proceso invocante • Define el número de parámetros requerido

  26. Vector de interrupciones o IDT (Tabla de descriptores de interrupción) Las rutinas de atención a las interrupciones se ejecutan en niveles altos de protección, por lo que se requieren puertas en vez de simples descriptores de segmento.

  27. Vector de interrupciones

  28. Gestion de Tareas. TSS El procesador proporciona mecanismos para gestionar las tareas: lanzar su ejecución, suspenderla conservando el estado, conmutar a otra tarea. Para ello mantiene una estructura de datos conveniente, TSS

  29. Descriptor de la tarea • Los datos que permiten conservar el estado de una tarea son: • El espacio de ejecución actual de la tarea definido por sus registros de segmento • El estado de los registros de propósito general, los flags y el puntero de instrucción. • El estado de registros de control como CR3 (paginado) y TR • El estado del registro apuntador a la tabla de descriptores locales LDTR • El mapa de I/O accesible. • El estado de los puntero a los stacks en cada nivel de privilegio • Un apuntador a la tarea previamente ejecutada

  30. El descriptor de todas las tareas que se están ejecutando actualmente en el sistema está almacenado en la tabla de descriptores Global.

  31. Acceso a I/O • Las instrucciones de in/out no son privilegiadas, sin embargo el acceso al espacio de entrada salida está regulado. • Flag IOPL • Establece el nivel de privilegio mínimo para ejecutar instrucciones I/O • Mapa de permisos I/O en el TSS • Salvaría la prohibición de IOPL solo para aquellas direcciones permitidas

  32. Mapa de permisos I/O

  33. fin • Bibliografía • IA-32 Developers Manual • Arquitectura IA-32

More Related