Tema 5: El Pentium a Fondo - DAC
Tema 5: El Pentium a Fondo - DAC
Tema 5: El Pentium a Fondo - DAC
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
MICROPROCESADORES<br />
<strong>Tema</strong> 5: <strong>El</strong> <strong>Pentium</strong> a <strong>Fondo</strong><br />
Carlos Garre y David Miraut<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
1
Contenidos<br />
Multitarea en el <strong>Pentium</strong><br />
• Multitarea en el <strong>Pentium</strong>:<br />
– Puertas de llamada.<br />
– Conmutación de tareas.<br />
– Interrupciones y excepciones.<br />
MICROPROCESADORES<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
2
Contenidos<br />
Transferencia de Control<br />
MICROPROCESADORES<br />
• Transferencia de control: el flujo de control de las instrucciones en<br />
ejecución se traslada o salta de un segmento de código a otro.<br />
• Se realiza mediante las instrucciones:<br />
JMP: salto incondicional.<br />
CALL: llamada a una rutina o procedimiento.<br />
RET: retorno de un procedimiento.<br />
INT: llamada a un programa de manejo de una interrupción.<br />
IRET: retorno de un programa de interrupción.<br />
• <strong>El</strong> <strong>Pentium</strong> examina los privilegios de acceso al segmento, y si no hay<br />
impedimento:<br />
Borra el registro de segmento CS.<br />
Se buscan en la LDT o GDT los valores base, límite y atributos.<br />
Estos valores se cargan en el registro CS.<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
3
Contenidos<br />
Acceso entre Segmentos<br />
MICROPROCESADORES<br />
• Regla de acceso entre segmentos de código Sólo se puede acceder<br />
a un segmento de código desde otro que pertenezca al mismo nivel<br />
de protección.<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
4
Contenidos<br />
Tipos de Transferencia de Control<br />
MICROPROCESADORES<br />
• Transferencias de control intranivel: <strong>El</strong> segmento peticionario y el<br />
segmento solicitado tienen el mismo nivel de privilegio.<br />
• Transferencias de control internivel: Un segmento de código accede<br />
a otro con distinto nivel de privilegio.<br />
– Es muy frecuente que un proceso requiera servicios del Sistema<br />
Operativo <strong>El</strong> segmento destino debe tener un nivel de privilegio<br />
mayor que el solicitante.<br />
– Es algo no permitido según la regla de acceso Uso de Puertas de<br />
Llamada (PLL).<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
5
Contenidos<br />
Puertas de Llamada<br />
MICROPROCESADORES<br />
• Recurso que permite un acceso controlado desde un segmento de<br />
código a otro de mayor privilegio.<br />
• Acceso por un punto específico (comienzo de un procedimiento<br />
particular). Al completarse dicho procedimiento, se retorna<br />
obligatoriamente al segmento peticionario.<br />
• Físicamente, la puerta de llamada consiste en un descriptor local o<br />
global (puede estar en la LDT o en la GDT), al que se accede a través<br />
de una instrucción de formato CALL Nombre_puerta.<br />
• Este descriptor permite acceder al punto de entrada concreto del<br />
segmento de código.<br />
• Al final del procedimiento accedido, una instrucción RET devuelve el<br />
control al segmento de código original.<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
6
Contenidos<br />
Estructura de una PLL<br />
MICROPROCESADORES<br />
• Selector (16 bits): Nuevo selector del segmento de código, que se<br />
cargará en CS.<br />
• Desplazamiento (32 bits): Punto de entrada al segmento accedido,<br />
que se carga en EIP. Apuntará a la primera instrucción de una rutina.<br />
• Atributos: …<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
7
Contenidos<br />
Fases de Transferencia con PLL<br />
MICROPROCESADORES<br />
1. En el programa en curso aparece una instrucción de llamada CALL<br />
PLL (se solicita una transferencia internivel).<br />
2. Desde la tabla de descriptores de segmento se accede al descriptor<br />
de la puerta de llamada solicitada, en donde se obtienen los<br />
atributos, el desplazamiento y el selector de la puerta de llamada.<br />
3. <strong>El</strong> valor del selector de la puerta de llamada se carga en CS.<br />
4. <strong>El</strong> valor del desplazamiento se carga en EIP.<br />
5. Comienza la ejecución de la rutina a la que apunta la PLL.<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
8
Contenidos<br />
Reglas de Manejo de las PLL<br />
MICROPROCESADORES<br />
• Para acceder a una puerta de llamada desde un segmento de<br />
código, el nivel de privilegio de este último ha de ser igual o mayor<br />
que el de la puerta.<br />
• Mediante una puerta de llamada sólo se puede transferir el flujo<br />
de control a un segmento de código de mayor nivel de privilegio<br />
que el peticionario.<br />
• Cuando se ejecuta una instrucción CALL PLL se guarda en la pila los<br />
parámetros que referencia al segmento (CS y EIP) y a la pila (SS y<br />
ESP).<br />
• <strong>El</strong> <strong>Pentium</strong> realiza un paso de parámetros de la pila del segmento<br />
peticionario al accedido Retorno con RET recupera el selector y<br />
el desplazamiento de los segmentos de código y pila primitivos.<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
9
Contenidos<br />
Multitarea en el <strong>Pentium</strong><br />
• Multitarea en el <strong>Pentium</strong>:<br />
– Puertas de llamada.<br />
– Conmutación de tareas.<br />
– Interrupciones y excepciones.<br />
MICROPROCESADORES<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
10
Contenidos<br />
Características de la Multitarea<br />
MICROPROCESADORES<br />
• Tarea: Unidad de trabajo que un procesador puede ejecutar,<br />
conmutar o suspender.<br />
• Multitarea: capacidad de un microprocesador para realizar muchas<br />
tareas simultáneamente.<br />
• Un único procesador Ejecución secuencial de tareas (con CPU y<br />
conmutaciones rápidas parece que cada tarea usa la CPU en<br />
exclusiva).<br />
• Utilidad de la multitarea:<br />
Permitir que varias aplicaciones trabajen simultáneamente.<br />
Compartir recursos físicos entre varios usuarios.<br />
Compartir recursos lógicos (información).<br />
Acelerar los cálculos de una tarea trabajando en paralelo.<br />
Mejorar la modularidad de una aplicación dividiéndola en distintas<br />
tareas.<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
11
Contenidos<br />
Conmutación de Tarea<br />
MICROPROCESADORES<br />
• Conmutación de tarea: Abandono del procesamiento de la tarea en<br />
curso (vieja) para reanudación de otra tarea (nueva).<br />
• Para reanudar una tarea hay que almacenar el contexto (estado<br />
completo) del procesador cuando abandona la tarea:<br />
Registros: propósito general, estado, punteros, segmento,…<br />
LDT.<br />
Parámetros del SO.<br />
• Cada tarea tiene guardado su contexto del procesador en un<br />
segmento Segmento de Estado de la Tarea (TSS).<br />
• Estructura básica de una conmutación de tareas: se salva el contexto<br />
de la tarea vieja y se carga el de la nueva.<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
12
Contenidos<br />
Estructura del TSS del <strong>Pentium</strong><br />
MICROPROCESADORES<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
13
Contenidos<br />
Registro de Tarea<br />
MICROPROCESADORES<br />
• <strong>El</strong> <strong>Pentium</strong> hace referencia al TSS por medio del registro de tarea TR<br />
que apunta al descriptor del TSS a través de la GDT.<br />
• TR: Registro de 16 bits que apunta a un descriptor de la GDT del que<br />
se obtiene la base y el límite del TSS., que se cargan en un registro<br />
caché oculto asociado al TR.<br />
• <strong>El</strong> procesador accede al registro caché (en lugar de a memoria) para<br />
manejar el TSS de la tarea actual Ejecución de la tarea más<br />
eficiente.<br />
• La instrucción LTR carga la parte visible (selector de segmento) del<br />
registro de tarea que apunta a un descriptor TSS en la GDT, de donde<br />
se carga la parte invisible del TR.<br />
• La instrucción STR guarda la parte visible del registro de tarea en un<br />
registro de propósito general o en memoria.<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
14
Contenidos<br />
Puertas de Tarea<br />
MICROPROCESADORES<br />
• La conmutación de tareas mediante la ejecución de instrucciones<br />
JMP o CALL en un segmento de código exige que su nivel de<br />
privilegio sea el máximo (igual que el TSS).<br />
• Para poder acceder a un TSS desde un segmento de código con<br />
menor nivel de privilegio se usan las puertas de tarea.<br />
• Puerta de tarea:<br />
Tipo especial de descriptor del sistema ubicado en la GDT ó LDT.<br />
Realiza una indirección sobre el TSS: funciona de forma similar a la<br />
puerta de llamada.<br />
• Fases de una conmutación de tarea usando puertas de tarea:<br />
1. Se realiza un JMP o CALL a una puerta de tarea.<br />
2. <strong>El</strong> descriptor de la puerta de tarea nos da el selector de la nueva TSS,<br />
que se carga en TR.<br />
3. Se carga la información del nuevo TSS (cambio de contexto).<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
15
Contenidos<br />
Multitarea en el <strong>Pentium</strong><br />
• Multitarea en el <strong>Pentium</strong>:<br />
– Puertas de llamada.<br />
– Conmutación de tareas.<br />
MICROPROCESADORES<br />
– Interrupciones y excepciones.<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
16
Contenidos<br />
Interrupciones y Excepciones<br />
MICROPROCESADORES<br />
• Las interrupciones y excepciones son acontecimientos (en el sistema<br />
o en el programa en ejecución) que requieren la atención del<br />
microprocesador Provocan la desviación del flujo de control del<br />
microprocesador.<br />
• Interrupciones:<br />
Generalmente, son acontecimientos externos que desvían el flujo de<br />
control del microprocesador (con la activación de uno de sus pines).<br />
También internas (ejecución de instrucciones).<br />
• Excepciones:<br />
Desviaciones del flujo de control provocadas automáticamente como<br />
consecuencia de alguna anomalía en el microprocesador.<br />
Producidas y detectadas en el curso del programa en ejecución. (ej.<br />
ejecución de una división por cero).<br />
• Ambas son muy frecuentes (ratón muchas por segundo…).<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
17
Contenidos<br />
Interrupciones y Excepciones<br />
MICROPROCESADORES<br />
• Cuando se genera una interrupción o excepción, el procedimiento en<br />
ejecución se suspende automáticamente mientras el procesador<br />
ejecuta la rutina del manejador asociado.<br />
• Vector: número de identificación de cada tipo de interrupción o<br />
excepción. Rango 0-255:<br />
0-31: reservados para IA-32.<br />
32-255: interrupciones definidas por el usuario.<br />
• Para manejar las interrupciones y excepciones, el <strong>Pentium</strong> dispone<br />
de una tabla de descriptores de interrupciones(IDT):<br />
256 entradas. Cada entrada (apuntada por un vector) atiende a un tipo<br />
de interrupción o excepción diferente (rutina del manejador diferente).<br />
Ocupa un segmento cuya base y límite están contenidos en el registro<br />
de tablas de descriptores de interrupciones (IDTR).<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
18
Contenidos<br />
• Interrupciones externas:<br />
Tipos de Interrupciones<br />
MICROPROCESADORES<br />
Señales eléctricas activadas por componentes hardware externos, que<br />
provocan la activación de uno de los pines del <strong>Pentium</strong>.<br />
Es detectada por el controlador de interrupciones programable<br />
avanzado (APIC).<br />
Hay interrupciones enmascarables y no enmascarables (problemas de<br />
hardware críticos).<br />
• Interrupciones internas:<br />
Se activan por software, mediante la ejecución de instrucciones<br />
especiales:<br />
INT n: genera una interrupción no enmascarable. <strong>El</strong> operando n es un<br />
número de vector de interrupción.<br />
INTO: genera la interrupción 4 si el flag OF (Overflow) del registro<br />
EFLAGS está activado.<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
19
Contenidos<br />
Tipos de Excepciones<br />
MICROPROCESADORES<br />
• Las excepciones son provocadas automáticamente por el procesador<br />
al detectar alguna anomalía en el flujo de control.<br />
• Faltas o errores:<br />
Se encargan de corregir la anomalía producida al intentar ejecutar una<br />
instrucción. <strong>El</strong> programa retorna a la instrucción que provocó la<br />
excepción La instrucción que la había provocado se puede realizar.<br />
Ejemplo: el procesador ejecuta una operación matemática y aún no<br />
tiene todos los operandos.<br />
• Trampas o cepos (Traps):<br />
Se generan tras la finalización de la instrucción. Permiten continuar con<br />
la ejecución del programa, retornando a la siguiente instrucción a la que<br />
provocó la excepción.<br />
Ejemplo: interrupciones definidas por el usuario e incluidas en el<br />
programa.<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
20
Contenidos<br />
• Abortos:<br />
Tipos de Excepciones (II)<br />
MICROPROCESADORES<br />
Las genera el procesador, sin saber la localización exacta de la<br />
instrucción que las originó.<br />
No permiten restablecer el programa que causó la excepción.<br />
Se suelen usar para indicar errores muy graves.<br />
Ejemplos: errores de hardware o valores ilegales en las tablas del<br />
sistema.<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
21
Contenidos<br />
Interrupciones y Excepciones del <strong>Pentium</strong><br />
MICROPROCESADORES<br />
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA<br />
INFORMÁTICA<br />
22