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.