La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Breve introducción a la arquitectura de 32 bits intel."— Transcripción de la presentación:

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

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

3 Entorno básico de ejecución Espacio de direcciones lineal 4GB (2 32 ) Espacio de direcciones lineal 4GB (2 32 ) Espacio de direcciones físico 64GB (2 36 ) Espacio de direcciones físico 64GB (2 36 ) Puertos I/O Puertos I/O 8 registros de propósito general 8 registros de propósito general 6 registros de segmento 6 registros de segmento EFLAGS, EIP EFLAGS, EIP X87 FPU unidad de punto flotante X87 FPU unidad de punto flotante MMX ejecución de instrucciones SIMD enteras MMX ejecución de instrucciones SIMD enteras XMM ejecución de insturcciones SIMD p.flot 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] Registros de control: CR*[0..4] Determinan el modo operativo del procesador y las características de la tarea actual Determinan el modo operativo del procesador y las características de la tarea actual Registros de control de acceso a memoria Registros de control de acceso a memoria GDTR, IDTR, LDTR GDTR, IDTR, LDTR Registros de depuración Registros de depuración Permiten monitorizar operaciones de depuración de procesos Permiten monitorizar operaciones de depuración de procesos Registros para asignar características a regiones de memoria Registros para asignar características a regiones de memoria MTRR’s (memory type range regs) MTRR’s (memory type range regs) Etc. Etc.

5 Organización de la memoria Modelo Plano de memoria (+ paginado opcional) Modelo Plano de memoria (+ paginado opcional) Un simple espacio de direcciones contiguas (0..2 32 -1). Contiene datos, código y stack. Dirección lineal. Un simple espacio de direcciones contiguas (0..2 32 -1). Contiene datos, código y stack. Dirección lineal. Modelo Segmentado de memoria ( + paginado opcional) 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. 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 2 32 bytes cada uno Es posible manejar 16383 segmentos de hasta 2 32 bytes cada uno Modelo Real-address de memoria Modelo Real-address de memoria

6

7 Registros de propósito general

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

9

10 Registros de segmento Más propiamente contienen selectores de segmento. Más propiamente contienen selectores de segmento. El selector apunta a una estructura en memoria que se denomina Descriptor 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. El descriptor de segmento contiene entre otras cosas la dirección lineal del segmento.

11 Registros selectores de segmento

12 Registro de Flags

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

14 Modos de direccionamiento

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

16 Niveles de privilegio

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

18 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

19 Chequeo de privilegios para accesos segmentos de código

20 Conforming-NonConforming Conforming- non conforming es una característica de los segmentos de código 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. 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 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 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. En ningún caso implica un cambio del nivel de privilegio del proceso invocante.

21 Puertas Las puertas facilitan la transferencia del control de ejecución entre niveles de privilegio. 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. 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. Se invocan mediante un call o jump, pero en lugar de aportar un selector de segmento aportan un descriptor de puerta.

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

23

24

25 Selectores, Descriptores y Tablas de descriptores. Un selector, que se carga en un registro de segmento, es un apuntador a una Tabla 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. 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 El Descriptor es una estructura de datos que describe un segmento

26

27 Selector

28 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. 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 La parte oculta del registro de segmento se cargan tras el primer acceso y quedan almacenadas para los sucesivos

29 Descriptor de segmento

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

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

32

33 Vector de interrupciones

34 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

35 Descriptor de la tarea Los datos que permiten conservar el estado de una tarea son: 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 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 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 de registros de control como CR3 (paginado) y TR El estado del registro apuntador a la tabla de descriptores locales LDTR El estado del registro apuntador a la tabla de descriptores locales LDTR El mapa de I/O accesible. El mapa de I/O accesible. El estado de los puntero a los stacks en cada nivel de privilegio El estado de los puntero a los stacks en cada nivel de privilegio Un apuntador a la tarea previamente ejecutada Un apuntador a la tarea previamente ejecutada

36

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

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

39 Mapa de permisos I/O

40 fin Bibliografía Bibliografía IA-32 Developers Manual IA-32 Developers Manual Arquitectura IA-32 Arquitectura IA-32


Descargar ppt "Breve introducción a la arquitectura de 32 bits intel."

Presentaciones similares


Anuncios Google