66.20 Organización de Computadoras Modelos de Memoria 66.20 Organización de Computadoras
Modelo de Memoria La arquitectura MIPS divide la memoria en tres secciones: Segmento de texto. Segmento de datos (estáticos y dinámicos). Pila (stack).
Registros La arquitectura MIPS presenta 32 registros de propósito general, y 32 registros para punto flotante. Debe respetarse una convención para su uso: $a0-$a3 primeros 4 argumentos a un procedimiento. $v0 y $v1 valor de retorno de un procedimiento. $t0-$t9 almacenamiento temporal. $s0-$s7 almacenamiento de largo plazo. $sp puntero a la pila. $fp puntero al stack frame. $ra dirección de retorno en la llamada a un procedimiento.
Llamada a Procedimientos Debe respetarse la convención para el uso de registros. Debe tomarse una porción de la pila (stack frame): Para almacenar los argumentos pasados. Para almacenar registros de largo plazo. Para almacenar las variables locales al procedimiento.
Recursividad Capacidad de una rutina de autoinvocarse. Puede ser directa (A A), o indirecta (A B A). No todos los lenguajes la soportan (debe permitir el apilado de stack frames).
La Función Factorial 1 si N = 0 N ! N * (N-1)! Si N > 0
La Función Factorial (cont.) Programa Principal
La Función Factorial (cont.)
Excepciones e Interrupciones Excepción: situación anómala e imprevista. Puede originarse en software o en hardware. Interrupción: solicitud externa (periférico solicitando algún servicio). Se origina en hardware.
Excepciones e Interrupciones (cont.) Unidad de Punto Flotante Unidad de Enteros Unidad de Manejo de Excepciones e Interrupciones
Excepciones EPC (Exception Program Counter) Dirección de la instrucción que causó la excepción. BadVAddr (Bad Virtual Address) Dirección siendo referenciada en el momento de la excepción.
Manejador de Excepciones e Interrupciones (handler) Analiza la causa de la excepción y le pasa el control al sistema operativo. El SO puede “matar” el proceso y/o tomar alguna acción. Algunas excepciones pueden ser tratadas con “decoro” (como un page fault, en cuyo caso se traería a memoria una página desde disco).