La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn."— Transcripción de la presentación:

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

2 ExcepcionesUnidad 22 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.

3 ExcepcionesUnidad 23 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

4 ExcepcionesUnidad 24 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!!

5 ExcepcionesUnidad 25 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

6 ExcepcionesUnidad 26 Camino de Datos con excepciones MUX Pcsrc Dst DstW 40000040h PC +4 Al PC PC-4 EPCW EPC IntCause CauseW Cause 00000000h 00000001h

7 ExcepcionesUnidad 27 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.

8 ExcepcionesUnidad 28 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

9 ExcepcionesUnidad 29 Control para excepciones Cause<--0 CauseW=1 Cause<--1 CauseW=1 ALUselA=0 ALUselB=01 Aluop=01 EPCW=1 PCW=1 PCsrc=11

10 ExcepcionesUnidad 210 Excepciones en la máquina segmentada lineal M Reg M M M M M M Add $1, $2, $1 Slt $15, $6, $7 Lw $16, 50($2) Sw $25, 1000($0) Sw $26, 1000($0) 12345678 ciclos Eliminadas !! Reg M

11 ExcepcionesUnidad 211 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

12 ExcepcionesUnidad 212 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.

13 ExcepcionesUnidad 213 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

14 ExcepcionesUnidad 214 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 : anterioresFINALICEN las posterioresPUEDAN REINICIARSE

15 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

16 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

17 17 (a) Modificar el secuenciamiento Forzar una instrucción de trap en el próximo ciclo iadd i+1 lw i+2add i+ 3sw i+ 4sub primera instrucción del SO IF ID EX MEMWB MEM WBIFIDEXMEM WB Fallo de Página IFIDEXMEM

18 18 (b) Inhibir escrituras Previene cualquier cambio de estado antes de gestionar la excepción. (insertar burbuja) iadd i+1 lw i+2add i+3 sw i+4sub primera instrucción del SO IF ID EX MEMWB MEM IFIDEX Fallo de Página IFIDEXMEM

19 19 (c) Sistema Operativo Salvar PC de la instrucción en curso iadd i+1 lw i+2add i+3 sw i+ 4sub primera instrucción del SO IF ID EX MEMWB MEM IFIDEX Fallo de Página IFIDEXMEM

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

21 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

22 22 (d) Restaurar Estado Saltos indexados efectivos al final de la etapa de búsqueda kS.O k+1 jr $27 (i+1) IF ID EX MEMWB MEM IFIDEX IFIDEX i+1lw i+2add

23 23 Orden entre excepciones Pueden presentarse de manera desordenada IF ID EX MEMWB MEM IFIDEX Fallo de Página MEM No tratar una excepción hasta que se tiene garantía que las instrucciones anteriores finalizarán sin excepciones Tratar excepciones en orden.

24 FIN Excepciones


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

Presentaciones similares


Anuncios Google