Registros de propósito general: ventanas para soportar llamadas a procedimientos

El procesador dispone de n registros físicos r0, r 1, …rn de los que en cada momento sólo son visibles para el programador (ventana) m de ellos: R0, R1, …, Rm (m < n). Cuando todavía no se ha realizado ningún salto a subrutina, los registros visibles coinciden con los m primeros registros físicos.

Cuando se ejecuta una instrucción de salto, los registros visibles se desplazan sobre los físicos de tal manera que se da un solapamiento entre los últimos antes del salto y los primeros después del salto.

Es en los registros de solapamiento donde se realiza el paso de parámetros a la rutina y la devolución de resultados.

Registros de la máquina

El conjunto de registros tiene una estructura de buffer circular, de tal manera que cuando se agota su capacidad se lleva a memoria el conjunto de registros del entorno (registro de activación) que primero se introdujo (primera llamada).

El tamaño del buffer se elige de manera tal que permita soportar un nivel de anidamiento activo (en registros) de acuerdo a los datos empíricos que muestran los programas.

En nuestro caso vimos que una variación de nivel igual a 5 se mantenía durante 33 llamadas/retorno, lo que significa que durante esas 33 llamadas todos los registros de activación se hubiesen soportado en un sistema con 5 ventanas.

buffer circular

Fuente: Estructura de Computadores, Facultad de Informática, UCM