24
Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn

Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Embed Size (px)

Citation preview

Page 1: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Organización del Computador I Verano

Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy

Verano 2004 Profesora Borensztejn

Page 2: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Excepciones Unidad 2 2

Definiciones• Excepción: cambio inesperado en el flujo de control

proveniente de una causa interna o externa.• Interrupción: cambio inesperado en el flujo de

control proveniente de una causa externa.• El hardware debe ser capaz de salvar el estado

completo de la máquina, incluyendo la causa de la interrupción y el PC causante antes de pasar el control a la subrutina de servicio.

• Dificultad: cuando la excepción ocurre en el medio de una instrucción, y la instrucción requiere que el hardware restaure el estado existente antes de producirse el evento.

Page 3: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Excepciones Unidad 2 3

Definiciones

Excepciones

Entre instrucciones

En el medio de la instrucción

Continuar: pedido E/S, breakpoint, trace.

Continuar: Fallo Página

Terminar: Overflow Instrucción Indefinida

• Una computadora se denomina recuperable si es capaz de salvar el estado existente antes de que se produzca el evento

Page 4: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Excepciones Unidad 2 4

Ejemplos: excepciones en máquinas no segmentadas

• VAX, primera computadora reiniciable: instrucciones de longitud variable, de hasta 6 operandos que podían estar en memoria y además, almacenados de forma desalineada, de forma que la mitad de un operando podía estar en memoria y la mitad en disco!!! Cuando el procesador descubre que el siguiente byte de la instrucción NO está en memoria, tendrá que reiniciar una instrucción cuyo PC deberá apuntar 50 bytes más arriba!!

Page 5: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Excepciones Unidad 2 5

Excepciones en la máquina no segmentada multiciclo

• Dos tipos de excepciones:– ejecución de una instrucción indefinida (0)– desbordamiento aritmético (1)

• Acciones: – Guardar la dirección de la instrucción causante en el

registro EPC (Exception Program Counter)(32 bits)

– Pasarle información al S.O sobre el tipo de excepción en un registro de estado llamado Cause (32 bits en MIPS)

– Transferir el control a una dirección predeterminada: supongamos 40000000H

Page 6: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Excepciones Unidad 2 6

Camino de Datos con excepciones

MU

X

Pcsrc

Dst

DstW

40000040h

PC +4

Al PC

PC-4

EPCW

EP

C

IntCause

CauseW

Cause

00000000h

00000001h

Page 7: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Excepciones Unidad 2 7

Control para excepciones

• Cuando se detectan?– Instrucción Indefinida: cuando no está definido

el valor del estado siguiente a partir del estado 1– Desbordamiento: debe detectarlo la ALU al final

del estado de resultado para tipo R.

Page 8: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Excepciones Unidad 2 8

Grafo de Estados

IR<--MEM[PC];

PC<-PC+4

A<-----R[rs];

B<-----R[rt];

DST<---PC+(signext(inm16)<<2)

S<---AopB

S<---A+ signext(inm16)

Z<---AopB

si (Z) PC<--DST

dato<---MEM[S]MEM[S]<--B

R[rd]<---S R[rt]<---dato

Op=otro

Desbordamiento

Al estado 10

Al estado 11

Page 9: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Excepciones Unidad 2 9

Control para excepciones

Cause<--0

CauseW=1

Cause<--1

CauseW=1

ALUselA=0

ALUselB=01

Aluop=01

EPCW=1

PCW=1

PCsrc=11

Page 10: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Excepciones Unidad 2 10

Excepciones en la máquina segmentada lineal

M Reg

M Reg MReg

M Reg

M

M Reg M Reg

Add $1, $2, $1

Slt $15, $6, $7

Lw $16, 50($2)

Sw $25, 1000($0)

Sw $26, 1000($0)

1 2 3 4 5 6 7 8ciclos

Eliminadas !!

Reg M Reg

Page 11: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Excepciones Unidad 2 11

Detección de la excepción de desbordamiento y cancelar

• La lógica está en EX.

• Hay una instrucción en IF, otra en ID, y otra en EX que hay que cancelar ===> señales IFFlush, IDFlush y EXFlush.

• Ecuaciones del Control para cancelar:• Si (V=1 )

IF.Flush=1; ID.Flush=1; EX.Flush=1;

• Control para salvar el PC en EPC

Page 12: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Excepciones Unidad 2 12

Problemas• Las más difíciles de tratar son las excepciones que se producen en

el medio de la ejecución de una instrucción y tienen que ver con la instrucción. Son las llamadas excepciones síncronas, y deben ser recuperables

• Hay cinco instrucciones ejecutándose cuando se produce una excepción. Es importante identificar la instrucción que la produjo para saber qué instrucciones eliminar, qué PC guardar....

• Los distintos tipos de excepciones se producen en distintas etapas: por ejemplo código de op. Inválido se detecta en ID.

• Sin embargo, puede suceder que las excepciones se produzcan a la vez. Prioridades.

Page 13: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Excepciones Unidad 2 13

Tipos de Excepciones• Búsqueda

– Fallo de página– Fallo de alineamiento en memoria– Error de protección

• Dec/Lectura– Código de operación ilegal

• ALU– excepción arimética

• Memoria– Fallo de página– Fallo de alineamiento en memoria– Error de protección

Page 14: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

Excepciones Unidad 2 14

Excepciones precisas

• La utilización de una arquitectura secuencial y una implementación segmentada entran en conflicto cuando se produce una excepción.

• Dada una instrucción que produce una excepción, ésta es precisa si:– El procesador puede pararse de forma que las

instrucciones :

anteriores FINALICEN

las posteriores PUEDAN REINICIARSE

Page 15: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

15

Excepciones precisas• DIFICULTAD CON:

– Instrucciones que modifican el estado del procesador antes de que se garantice que finalizarán

• ALTERNATIVA– No actualizar el estado hasta que exista garantía de que la

instrucción finalizará.

• INFLUENCIA :– Debido a que hay dependencias entre instrucciones la no

actualización del estado del procesador es perjudicial si se quieren mantener todos los segmentos ocupados y no bloquear

Page 16: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

16

Procesadores segmentados lineales

• Pasos para recuperarse de una excepción síncrona:– (a) Modificar el secuenciamiento– (b) Inhibir las escrituras– (c) Sistema Operativo– (d) Restaurar el estado

Page 17: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

17

(a) Modificar el secuenciamiento

• Forzar una instrucción de trap en el próximo ciclo

i add

i+1 lw

i+2 add

i+ 3 sw

i+ 4 sub

primera instrucción del SO

IF

IF

IF

IF

ID

ID

ID

ID

EX

EX

EX

EX

MEM WB

MEM

MEM

MEM

WBIF ID EX MEM

WB

WB

WB

Fallo de Página

IF ID EX MEM

Page 18: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

18

(b) Inhibir escrituras

• Previene cualquier cambio de estado antes de gestionar la excepción. (insertar burbuja)

i add

i+1 lw

i+2 add

i+3 sw

i+4 sub

primera instrucción del SO

IF

IF

IF

IF

ID

ID

ID

ID

EX

EX

EX

EX

MEM WB

MEM

IF ID EX

Fallo de Página

IF ID EX MEM

Page 19: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

19

(c) Sistema Operativo

• Salvar PC de la instrucción en curso

i add

i+1 lw

i+2 add

i+3 sw

i+ 4 sub

primera instrucción del SO

IF

IF

IF

IF

ID

ID

ID

ID

EX

EX

EX

EX

MEM WB

MEM

IF ID EX

Fallo de Página

IF ID EX MEM

Page 20: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

20

Sistema Operativo• Código rutina (para MIPS R-2000)

– $a0..$a3 corresponden a los registros $4..$7 y se utilizan para pasar parámetros

– $13 es el Registro Cause del Coprocesador 0

– $k0 es el registro $26 del procesador, es reservado para el ensamblador y sistema operativo

– $14 es el Registro EPC del coprocesador

– $k1 es el registro $27 del procesador, es reservado para el ensamblador y sistema operativo

– la instrucción rfe restaura los bits correspondientes en el registro de estado.

Page 21: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

21

Sistema Operativo

.ktext 0x80000080

sw $a0, save0; salva para luego pasar parámetros

sw $a1, save1;

mfc0 $k0, $13; transfiere causa de interrupción

mfc0 $k1, $14; transfiere EPC

lw $a0, save0; restaura

sw $a1, save1;

rfe

jr $k1; reejecuta instrucción

tratamiento

Page 22: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

22

(d) Restaurar Estado• Saltos indexados efectivos al final de la etapa de

búsqueda

k S.O

k+1 jr $27 (i+1)

IF

IF

IF

IF

ID

ID

ID

EX

EX

EX

MEM WB

MEM

IF ID EX

IF ID EX

i+1 lw

i+2 add

Page 23: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

23

Orden entre excepciones• Pueden presentarse de manera desordenada

IF

IF

IF

IF

ID

ID

ID

ID

EX

EX

EX

EX

MEM WB

MEM

IF ID EX

Fallo de Página

MEM

MEM

• No tratar una excepción hasta que se tiene garantía que las instrucciones anteriores finalizarán sin excepciones

• Tratar excepciones en orden.

Page 24: Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

FIN Excepciones