advertisement

Exc Int

33 %
67 %
advertisement
Information about Exc Int

Published on August 5, 2007

Author: stefanosalvatori

Source: slideshare.net

advertisement

Excepciones e Interrupciones Cecilia Hernández

Descripción Excepciones e interrupciones Tipo especial de transferencia de control Como llamadas no programadas Alteran la ejecución normal de un programa Manejar eventos externos Reportar errores o condiciones excepcionales ocurridos durante ejecución de programa

Excepciones e interrupciones

Tipo especial de transferencia de control

Como llamadas no programadas

Alteran la ejecución normal de un programa

Manejar eventos externos

Reportar errores o condiciones excepcionales ocurridos durante ejecución de programa

Esquema

Diferencias Interrupciones Manejan eventos asincrónicos externos al procesador Llegada de un paquete por interfaz de red Se chequean a cada ciclo para ejecutar insterrupciones pendientes En pipelining, si una instrucción ocurre, no se busca la siguiente instrucción, se resetea pipeline y se atiende interrupción Excepciones Manejan condiciones detectadas por el procesador durante la ejecución del programa, sincrónicas División por cero, violación de memoria, traps (interrupciones software), etc

Interrupciones

Manejan eventos asincrónicos externos al procesador

Llegada de un paquete por interfaz de red

Se chequean a cada ciclo para ejecutar insterrupciones pendientes

En pipelining, si una instrucción ocurre, no se busca la siguiente instrucción, se resetea pipeline y se atiende interrupción

Excepciones

Manejan condiciones detectadas por el procesador durante la ejecución del programa, sincrónicas

División por cero, violación de memoria, traps (interrupciones software), etc

Excepciones Pueden ocurrir en cualquier etapa en el pipeline, pero no WB Durante IF : fallo de página Durante ID : opcode ilegal Durante EXE: división por 0 Durante MEM: fallo de página, violación de acceso a Memoria

Pueden ocurrir en cualquier etapa en el pipeline, pero no WB

Durante IF : fallo de página

Durante ID : opcode ilegal

Durante EXE: división por 0

Durante MEM: fallo de página, violación de acceso a Memoria

Excepciones precisas Si excepción ocurre en instrucción i entonces Instrucciones i-1, i-2, etc, terminan normalmente Instrucciones i+1, i+2, etc, que están en pipeline se reejecutan después que se atienda excepción

Si excepción ocurre en instrucción i entonces

Instrucciones i-1, i-2, etc, terminan normalmente

Instrucciones i+1, i+2, etc, que están en pipeline se reejecutan después que se atienda excepción

Idea básica del manejo de excepciones precisas Cuando la excepción ocurre Forzar una instrucción “trap” en el próximo IF Transfiere el control a una parte conocida en el SO Desabilitar escrituras para todas las instrucciones Que causó excepción y las siguientes Cuando se produce excepción SO salva el PC de la instrucción que causó excepción Después que se maneja excepción una instrucción “return from trap” recupera PC

Cuando la excepción ocurre

Forzar una instrucción “trap” en el próximo IF

Transfiere el control a una parte conocida en el SO

Desabilitar escrituras para todas las instrucciones

Que causó excepción y las siguientes

Cuando se produce excepción SO salva el PC de la instrucción que causó excepción

Después que se maneja excepción una instrucción “return from trap” recupera PC

Manejando excepciones Cuando una excepción ocurre Dirección almacenada en PC es salvada en EPC (Exception Program Counter) registro no visible a la ISA Transfiere control a SO 2 tipos de manejo de excepciones Excepciones tambien pueden ser interrupciones (excepciones asincrónicas) Registrar causa de excepción en “Registro Causa” MIPS Transfiere a la rutina de manejo de excepción de acuerdo a la causa de la excepción. A esto se denomina normalmente “vector de interrupciones” Intel

Cuando una excepción ocurre

Dirección almacenada en PC es salvada en EPC (Exception Program Counter) registro no visible a la ISA

Transfiere control a SO

2 tipos de manejo de excepciones

Excepciones tambien pueden ser interrupciones (excepciones asincrónicas)

Registrar causa de excepción en “Registro Causa”

MIPS

Transfiere a la rutina de manejo de excepción de acuerdo a la causa de la excepción.

A esto se denomina normalmente “vector de interrupciones”

Intel

Registro Causa vs Vector de Interrupciones Reg Estado Reg Causa Reg Estado Excepción Reg Causa MIPS Vector Interrupciones Intel 80000180hex Chequear y saltar Rutina atención Vector Interrupciones Rutinas de atención dir rutina 1. Salvar PC 2. Desabilitar exc 3. Modo nucleo 4. Ejecutar rutina atención 5. Repuperar PC 6. Modo usuario

Manejando excepciones (cont) SO salva el estado del proceso (registros y punteros a memoria) SO ejecuta rutina de manejo de excepción Puede decidir terminar proceso o realizar algo en favor de proceso (syscalls, llamadas a sistema) Retorna a proceso en ejecución Recupera estado y PC

SO salva el estado del proceso (registros y punteros a memoria)

SO ejecuta rutina de manejo de excepción

Puede decidir terminar proceso o realizar algo en favor de proceso (syscalls, llamadas a sistema)

Retorna a proceso en ejecución

Recupera estado y PC

Manejando excepciones precisas (cont) Excepciones deben ser manejadas en el orden de instrucciones Ejemplo Instrucción i comienza en t Instrucción i+1 comienza en t+1 Ocurre excepción en MEM ( t + 3 ) para i Ocurre excepción en IF ( t + 1 ) para i+1 Excepción de i debe ser tratada antes de excepción de i+1

Excepciones deben ser manejadas en el orden de instrucciones

Ejemplo

Instrucción i comienza en t

Instrucción i+1 comienza en t+1

Ocurre excepción en MEM ( t + 3 ) para i

Ocurre excepción en IF ( t + 1 ) para i+1

Excepción de i debe ser tratada antes de excepción de i+1

Manejo excepciones en MIPS Registros especiales accesados por instrucciones mfc0, mtc0 (Coprocesador 0 para instrucciones enteras, Coprocesador 1 para instrucciones punto flotante) Registro Count: se incrementa a razón fija (en SPIM cada 10ms) Cuando registro Count == registro Compare, se produce una interrupción

Registros especiales accesados por instrucciones

mfc0, mtc0 (Coprocesador 0 para instrucciones enteras, Coprocesador 1 para instrucciones punto flotante)

Registro Count: se incrementa a razón fija (en SPIM cada 10ms)

Cuando registro Count == registro Compare, se produce una interrupción

Llamadas a sistema Debe prevenir que usuario se comunique directamente con el dispositivo de E/S Usuarios deben ser capaces de acceder a servicios de dispositivos de E/S SO se encarga de requerimiento de usuario en forma segura mediante Llamada a Sistema Programa usuario pide servicio a SO mediante llamada a sistema Se salva estado programa de usuario en ejecución Se cambia a modo protegido (un bit en registro estado de CPU) Se ejecuta rutina de servicio Se recupera estado proceso de usuario Se retorna a ejecución a proceso de usuario cambiando a modo usuario

Debe prevenir que usuario se comunique directamente con el dispositivo de E/S

Usuarios deben ser capaces de acceder a servicios de dispositivos de E/S

SO se encarga de requerimiento de usuario en forma segura mediante Llamada a Sistema

Programa usuario pide servicio a SO mediante llamada a sistema

Se salva estado programa de usuario en ejecución

Se cambia a modo protegido (un bit en registro estado de CPU)

Se ejecuta rutina de servicio

Se recupera estado proceso de usuario

Se retorna a ejecución a proceso de usuario cambiando a modo usuario

Interrupciones y excepciones en Intel 80386 Fuentes de interrupciones Enmascarables, pin INTR No enmascarables, pin NMI Fuentes excepciones Detectada por procesador. Fallas, traps y abortos Programadas. Intrucciones INT n. También llamadas interrupciones software

Fuentes de interrupciones

Enmascarables, pin INTR

No enmascarables, pin NMI

Fuentes excepciones

Detectada por procesador. Fallas, traps y abortos

Programadas. Intrucciones INT n. También llamadas interrupciones software

Animación de Interrupción HW mov ax, (115) mov ax, (115) ---------------- Jmp 200 100 200 015 200 210 200 mov sp, 008 iret xxx inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT Operación CPU empieza en IF IP apunta a Instrucción a ejecutar mov ax,(115) IP++

Animación de Interrupción HW 100 200 015 201 210 200 mov sp, 008 iret mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ Timer interrumpe en IF, pero no se atiende hasta terminar ejecución inst actual Int timer pendiente

xxx Animación de Interrupción HW 100 200 015 201 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ mov ax,(115) Int timer pendiente

Animación de Interrupción HW 200 100 200 015 201 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ mov ax,(115) xxx Atención Interrupción mov (SP), F dec SP mov (SP), IP dec SP mov IP, (000) cli

Animación de Interrupción HW 100 200 015 201 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ mov ax,(115) xxx Atención Interrupción mov (SP), F dec SP mov (SP), IP dec SP mov IP, (000) cli 200 014

201 Animación de Interrupción HW 100 200 014 201 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ mov ax,(115) xxx Atención Interrupción mov (SP), F dec SP mov (SP), IP dec SP mov IP, (000) cli 200

Animación de Interrupción HW 100 200 201 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ mov ax,(115) xxx Atención Interrupción mov (SP), F dec SP mov (SP), IP dec SP mov IP, (000) cli 200 201 014 013

Animación de Interrupción HW 100 200 013 201 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ mov ax,(115) xxx Atención Interrupción mov (SP), F dec SP mov (SP), IP dec SP mov IP, (000) cli 200 201 100 Vector 000 Rutina atención timer

200 0 Animación de Interrupción HW 100 013 100 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ mov ax,(115) xxx Atención Interrupción mov (SP), F dec SP mov (SP), IP dec SP mov IP, (000) cli 200 201

mov sp, 008 Animación de Interrupción HW 100 000 013 100 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ 200 201 Rutina atención timer

Animación de Interrupción HW 100 000 013 100 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ 200 201 Rutina atención timer 101 mov sp,008

Animación de Interrupción HW 100 000 013 101 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ 200 201 Rutina atención timer mov sp, 008 008

Animación de Interrupción HW 100 000 008 101 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ 200 201 Rutina atención timer mov sp, 008 iret

Animación de Interrupción HW 100 000 008 101 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ 200 201 Rutina atención timer 102 iret

Animación de Interrupción HW 100 000 008 102 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ 200 201 Retorno Interrupción inc SP mov IP, (SP) inc SP mov F, (SP) iret 009

Animación de Interrupción HW 100 000 009 102 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ 200 201 Retorno Interrupción inc SP mov IP, (SP) inc SP mov F, (SP) iret 210

Animación de Interrupción HW 100 000 009 210 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ 200 201 Retorno Interrupción inc SP mov IP, (SP) inc SP mov F, (SP) iret 010

Animación de Interrupción HW 100 000 010 210 210 200 mov sp, 008 iret xxx mov ax, (115) ---------------- Jmp 200 inc (115) ---------------- Jmp 210 IF ID EXE MEM WB INT IP++ 200 201 Retorno Interrupción inc SP mov IP, (SP) inc SP mov F, (SP) iret 200

Excepciones Animación interrupción SW (ejecutando int n) http://www.inf.udec.cl/~jlopez/VISUALIZACION/JAVA/EDANIM_PROYECTO/Demos/EDANIMDEMO-arq/ Manejando excepciones del reloj en XSPIM Bajar de página del curso links xspim-excep.tar y probar en Lab

Animación interrupción SW (ejecutando int n) http://www.inf.udec.cl/~jlopez/VISUALIZACION/JAVA/EDANIM_PROYECTO/Demos/EDANIMDEMO-arq/

Manejando excepciones del reloj en XSPIM

Bajar de página del curso links xspim-excep.tar y probar en Lab

Add a comment

Related pages

Enduro - KTM - READY TO RACE

500 exc-f six days; 500 exc-f; 450 exc-f six days; 450 exc-f; 350 exc-f six days; 350 exc-f; 300 exc six days; 300 exc; 250 exc-f six days; 250 exc-f; 250 ...
Read more

KTM - READY TO RACE!

250 EXC-F Six Days; 250 EXC-F; 250 EXC Six Days; 250 EXC; 150 XC-W; 125 XC-W; Freeride. Übersicht Freeride; Freeride 350; Freeride 250 R; e-ride ...
Read more

EXC INT - Google+

EXC INT. 16,247 views. About Posts Photos Videos. Stream. EXC hasn't shared anything with you. People are more likely to share with you if you add them to ...
Read more

EXCELLENT INT'L GROUP LTD

Official website for EXCELLENT INT'L GROUP LTD. Official website for EXCELLENT INT'L GROUP LTD. 登录邮箱. 帐号: @ exc ... @ exc-intl.com. 密码:
Read more

KTM 125 Motor | eBay - Elektronik, Autos, Mode ...

KTM 125 SX / EXC *98-12 / EGS *98-05 / MXC *02-05 Motor Simmerringe (Satz) ... MINARELLI KTM 125 LC2 Motor *APR*int* EUR 346,10. Sofort-Kaufen. oder ...
Read more

Int. Six Days Enduro - offroadchampions

Int. Six Days Enduro 30th September - 5th October 2013 Sardegna, Italy ... the basis of the new 2014 EXC model series with special SIX DAYS features.
Read more

viedo 1 Exc Int Riesgos 223 - YouTube

Logros en el taller empresarial de Bienestar Emocional y Productividad.
Read more

KTM 125 LC2 | eBay - Elektronik, Autos, Mode ...

KTM 125 LC2*GF250*EXC*(int.fze)*seat*Sitz*Sitzbank. EUR 26,90. Sofort-Kaufen. ... EXC SX EXCF KTM LC4 LC2 125 200 250 350 450 DUKE Spiegel Rückspiegel ...
Read more

Internationale Sechstagefahrt – Wikipedia

Die Internationale Sechstagefahrt oder Six Days (International Six Days Enduro – ISDE, bis 1980 International Six Days Trial – ISDT) ist die wichtigste ...
Read more