INTRODUCCIÓN

 

Fundamentos básicos
El objetivo de este proyecto es la implementación de una simulación de un sistema multiprocesador basado en tecnología MIPS.

En referencia a esta tecnología MIPS, debemos hacer referencia a que existen 3 grandes filosofías de desarrollo de procesadores:
o Monociclo
o Multiciclo
o Segmentado

Para el desarrollo de nuestro simulador, nos basamos en la arquitectura del procesador MIPS monociclo cuya característica principal es la posibilidad de ejecutar las instrucciones que componen un programa invirtiendo un tiempo máximo de un ciclo de reloj para cada una de ellas.

Debe tenerse en cuenta que estamos tratando con instrucciones de tipos muy distintos y por tanto sus duraciones pueden ser distintas.
La solución que ofrece el simulador es que todas las instrucciones deben tardar el mismo tiempo en ejecutarse y este tiempo es "el mayor de los tiempos de ejecución de todas las instrucciones".

De esta forma, hemos descrito básicamente las reglas básicas que debemos tener en cuenta a la hora de implementar un procesador monociclo.

¿Qué queremos construir?
El fin que perseguimos es poder tener un sistema multiprocesador basado en MIPS.
La forma de desarrollar este sistema es incluir dos procesadores distintos, con sus respectivos elementos (contador de programa, memoria de instrucciones, unidad aritmético-lógica, etc.) y que estos procesadores utilicen una memoria de datos común, es decir, estos procesadores pueden almacenar datos en memoria y extraer dichos datos si es necesario.

Problemas que se presentan
El problema principal de esta implementación es que al tratarse de una memoria común, los procesadores no deben poder escribir simultáneamente en esta memoria, es decir deben hacerlo en ciclos de reloj distintos para que no se produzcan errores en la lectura o escritura de la memoria de datos.

Soluciones
Por tanto, debemos construir un sistema que evite que los dos procesadores utilicen en un mismo ciclo de reloj la memoria de datos.
La forma de conseguir que no haya problemas en la utilización de la memoria de datos es incluir una unidad de control adicional externa a ambos procesadores y a la memoria de datos que nos permita gestionar qué procesador debe utilizar la memoria de datos en un momento determinado. A esta unidad la llamamos Unidad de Multiprocesamiento (UMP) y es la clave para la construcción de este sistema.