11.05.2013 Views

Tema 5: El Pentium a Fondo - DAC

Tema 5: El Pentium a Fondo - DAC

Tema 5: El Pentium a Fondo - DAC

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!