Cómo se leen las instrucciones en un procesador MIPS
En este artículo veremos de qué forma se accede y qué componentes intervienen en la lectura de las instrucciones para su posterior ejecución por parte del procesador. 😉
Photo by Vishnu Mohanan on Unsplash
Esta es la primera parte de la serie de tutoriales sobre cómo emular un procesador MIPS en Logisim.
Comenzaremos con los siguientes 3 elementos:
1) Memoria de Instrucciones
Memoria RAM donde se almacenan las instrucciones a ejecutar.
Tamaño de direccionamiento: 8 bits
Capacidad de almacenamiento: 256 Instrucciones de 32 bits
2) Contador de programa (PC)
También llamado Puntero de Instrucciones. Es un Registro que indica la posición donde está el procesador en su secuencia de instrucciones.
Capacidad de almacenamiento: 8bits
El registro Contador de Programa (PC) envía a la Memoria de Instrucciones la dirección donde se encuentra la Instrucción que se debe ejecutar actualmente.
Pero para recorrer todas las posiciones de memoria (e ir leyendo cada instrucción cargada) es necesario añadir nuestro último elemento.
3) Sumador
El sumador incrementará el valor actual del contador de programa en uno. Luego, enviará el resultado de la suma como dato de entrada al mismo contador de programa.
De esta forma, cada vez que se actualice el reloj, se guardará en el registro "Contador de Programa" su valor incrementado.
Capacidad: 8 bits
Resultado final 🙌
He conectado el reloj al registro "Contador de programa" para que se realice la actualización de su información en cada ciclo.
De esta forma la memoria es recorrida en cada una de sus posiciones.
Conclusión
Acabamos de ver cómo se combinan 3 componentes para crear el inicio de la ruta de datos del procesador.
Inicialmente, nos encargamos de buscar las instrucciones en la Memoria de Instrucciones. Luego, incrementamos el Contador de Programa para obtener la dirección de la siguiente instrucción de forma secuencial.
Cabe resaltar que la Memoria de Instrucciones y el Contador de Programa son elementos importantes en la emulación. Así como el comportamiento obtenido al agregar el sumador.
Descarga
El proyecto se puede descargar desde su repositorio en GitHub.