Instrucciones JUMP y BRANCH

Las instrucciones JUMP y BRANCH hacen referencia a los saltos incondicionados y condicionados respectivamente en la implementación MIPS. 

A continuación se detalla su estructura.

Instrucciones JUMP y BRANCH Procesador MIPS
Photo by Markus Spiske on Unsplash

Instrucción JUMP

Es una operación de salto sin condición

Su formato es de tipo J, definido en las estructuras básicas de instrucciones MIPS. Debido a esto, se compone de dos partes: Código de operación y Dirección.

El salto se realiza siempre a la dirección especificada por la instrucción. 

Estructura de instrucción JUMP procesador MIPS Logisim

Código de operación: 2
La dirección corresponde a la dirección física de la Memoria de Instrucciones a la cual se debe realizar el salto. 

Ejemplo:


Ejemplo instrucción JUMP Procesador MIPS Logisim

Es un salto incondicional (JUMP) a la dirección 3 de la Memoria de Instrucciones.


Instrucción BRANCH

Es una instrucción de salto con condición. Se realiza el salto únicamente si la condición establecida se cumple.

Su formato es de tipo I, definido en las estructuras básicas de instrucciones MIPS. Debido a esto, se compone de 4 partes: Código de operación, rs, rt y Constante o Dirección.

Para evaluar la condición se compara el valor del registro rs contra el valor del registro rt.

Si la condición se cumple, entonces el valor de PC se debe actualizar a de la siguiente posición más el  BranchAddr de la instrucción.

PC = Siguiente posición + BranchAddr


Existen dos tipos de instrucción BRANCH.

Branch Equals

Código de operación: 4
rs: Numero del primer registro a comparar (5 bits)
rt: Numero del segundo registro a comparar (5 bits)
Constante o dirección: Valor a sumar.

Condición: ¿El valor almacenado en registro rs ES IGUAL al valor almacenado en registro rt?

Estructura instrucción BRANCH Equals Procesador MIPS Logisim


Branch NOT Equals

Código de operación: 5
rs: Numero del primer registro a comparar (5 bits)
rt: Numero del segundo registro a comparar (5 bits)
Constante o dirección: Valor a sumar.

Condición: ¿El valor almacenado en registro rs NO ES IGUAL al valor almacenado en registro rt?

Estructura Instrucción BRANCH NOT Equals Procesador MIPS Logisim

Ejemplo BRANCH

Ejemplo Instrucción BRANCH Equals Procesador MIPS Logisim

Es una instrucción Branch Equals para saltar a la siguiente dirección en memoria + 4 si se cumple la condición que el contenido del registro 1 sea igual al contenido del registro 2.

Conclusión

En este artículo vimos las estructuras de las instrucciones JUMP y BRANCH. Los códigos de operación de cada una, funciones y ejemplos de uso.

Igualmente, mostramos su importancia para el procesador ya que controlan el flujo de ejecución mediante los saltos condicionados y no condicionados.

En el siguiente Post vamos a implementar estas instrucciones al procesador que estamos construyendo.

Entradas más populares de este blog

Estructura básica de las instrucciones MIPS

Memoria SRAM: Qué es y cómo gestionan la información