Implementación de módulo RSM

 

El módulo RSM está constituido por dos bancos de memoria del mismo tamaño, nombrados en la figura bank 1 y bank 2. El espacio de direcciones del RSM está dividido en un conjunto de bloques continuos del mismo tamaño. Cada bloque consiste en un valor actual, contenido en el bank 1 y un valor de recuperación, en el bank 2. Cada bloque tiene un tag que indica cual es el escritor activo y el identificador del punto de recuperación. El campo del identificador del punto de recuperación es usado por el mecanismo de "copy-on-write" implementado en el protocolo de generación del "commit". El manejo de las dependencias entre procesadores se realiza en una matriz boleana de n x n. (donde n es la cantidad máxima de procesadores en la arquitectura).

El "bus interface" provee la información necesaria por el protocolo de recuperación, para almacenar las dependencias entre procesadores. Para las operaciones de lectura y escritura de memoria, las dependencias entre procesadores son almacenadas sin pérdida en el desempeño de la memoria, ya que la información propia del protocolo es almacenada en memoria SRAM, para un rápido acceso y muchas de las acciones destinadas a determinar dependencia, pueden ser realizadas en paralalelo.

En el prototipo actual, la capacidad de cada banco de memoria es de 32 Mbytes. Se utiliza memoria SRAM para almacenar la matriz de dependencia y contadores e identificadores de puntos de recuperación, junto con los campos de escritor activo asociados a los bloques de memoria.

Por último, asumiendo un número máximo de 16 procesadores, un banco de 32Mbytes de tamaño, un bloque de 32 bytes y contadores e identificadores de puntos de recuperación de 32 bits, se requieren 96 bytes de memoria SRAM para almacenar la matriz de dependencia y 4,5 Mbytes para la información asociada a los bloques.

 

 

Referencias.

IEEE Transactions on Computers, Vol. 45, Nro. 10, Octubre 1996, Pag. 1001