Etapas de las Instrucciones de un Procesador y Metodología de Sincronización por Flanco

Etapas de las Instrucciones de un Procesador

Etapas de una instrucción LW:

Carga en el registro rt el contenido de la palabra de 32 bits ubicada en la posición de memoria offset+rs

  1. Lectura de la instrucción que está en memoria e incremento del PC.
  2. Lectura de la dirección base, contenida en un registro de propósito general ubicado en el banco de registros.
  3. Cálculo de la dirección del operando fuente en la UAL mediante la suma del registro base más los 16 bits menos significativos de la instrucción extendidos en signo.
  4. Lectura en memoria del operando fuente. La dirección en la que se encuentra viene dada por el resultado de la suma efectuada en la etapa anterior.
  5. Escritura del dato leído en la etapa anterior en el registro destino, ubicado en el banco de registros en la posición dada por los bits 20-16 de la instrucción.

Etapas de una instrucción BEQ:

  1. Lectura de la instrucción que está en memoria e incremento del PC.
  2. Lectura de los operandos fuente, contenidos en sendos registros de propósito general ubicados en el banco de registros.
  3. La UAL resta los operandos fuente para determinar si son iguales, lo cual es cierto si el resultado de la resta es 0. Al mismo tiempo, se suma el valor del PC, previamente incrementado, más los 16 bits menos significativos de la instrucción previamente desplazados dos lugares hacia la izquierda y extendidos en signo hasta 32 bits para calcular la dirección de ramificación.
  4. Se almacena la dirección de la siguiente instrucción en el PC. Esta dirección puede ser la que ya contenía (en caso de que la resta no dé resultado nulo), o bien la dirección de ramificación (en caso de que el resultado de la resta sea nulo).

Etapas de una instrucción J:

Realiza un salto incondicional cargando en los 28 bits menos significativos del PC el valor especificado en target, que previamente ha sido desplazado 2 lugares hacia la izquierda. Los 4 bits más significativos del PC quedan inalterados, mientras que los 2 menos significativos valen ambos 0.

  1. Lectura de la instrucción que está en memoria e incremento del PC.
  2. Almacenamiento de la dirección de la siguiente instrucción en el PC, que se calculará como la concatenación de los cuatro bits más significativos del PC actual y el campo de dirección destino de la instrucción desplazado dos posiciones hacia la izquierda.

Etapas de una instrucción de tipo R:

  1. Lectura de la instrucción que está en memoria e incremento del PC.
  2. Lectura de los operandos fuente, contenidos en sendos registros de propósito general ubicados en el banco de registros.
  3. Realización de la operación en la UAL.
  4. Escritura del resultado obtenido en el registro destino ubicado en el banco de registros.

RegDest, FuenteALu (ALUsrc), MemReg, EscrReg (RegWrite), LeerMem (MemRead), Branch, ALUop1, ALUop2 (Jump)
R –> 1-0-0-1-0-0-0-1-0 LW –> 0-1-1-1-1-0-0-0-0 SW –> x-1-x-0-0-1-0-0-0 BEQ –> x-0-x-0-0-0-1-0-1

Instrucciones Tipo R

  1. Los operandos fuente proceden del banco de registros.
  2. El cálculo se realiza en la UAL.
  3. El resultado se almacena en el banco de registros.

Instrucciones de Acceso a memoria

  1. La dirección del dato en memoria la obtenemos en la UAL mediante la suma del registro base más el desplazamiento.
  2. Si estamos en una instrucción de escritura, el dato procede del banco de registros.
  3. Si estamos en una instrucción de lectura, el dato va desde el puerto de lectura de la memoria al banco de registros.

Instrucciones de Ramificación Condicional

  1. Se compara el contenido de dos registros en la UAL.
  2. El indicador de resultado nulo de la UAL se conecta a una lógica de control utilizada para cargar el valor correspondiente en el PC.
  3. En cualquier caso, en el sumador de arriba se suma el PC actual (incrementado) con el desplazamiento (desplazado dos lugares hacia la izquierda) por si es necesario realizar la ramificación.

Metodología de Sincronización por Flanco

Funcionamiento típico de un sistema con metodología de sincronización por flanco:

  • Se leen los contenidos de un elemento de estado.
  • Los valores leídos atraviesan un circuito combinacional.
  • Los resultados producidos se almacenan en uno o varios elementos de estado.
  • Todo esto sucede en un único ciclo de reloj.

La metodología de sincronización por flanco permite leer y escribir en un elemento de estado en un mismo ciclo de reloj sin que se produzcan condiciones de carrera que puedan hacer indeterminado el contenido final de dicho elemento de estado.

  • El elemento de estado se actualiza al final del ciclo.

En cualquier caso, las entradas a los biestables deben permanecer estables al menos durante los tiempos de preestabilización y mantenimiento anterior y posterior respectivamente a la llegada del flanco de reloj.

En cualquier caso, la duración del ciclo de reloj depende del retardo del circuito combinacional y de los tiempos de propagación y preestabilización de los elementos de estado.
El tiempo de mantenimiento se satisface, pues siempre es menor que el tiempo de propagación del biestable.

Camino crítico: camino más lento de un circuito (con mayor retardo).
El retardo del circuito combinacional viene dado por el retardo del camino crítico del mismo.
Problema: no todos los elementos de estado reciben el flanco de reloj al mismo tiempo.
Sesgo del reloj: diferencia en tiempo absoluto entre los instantes en que dos elementos de estado reciben el flanco de reloj.
Si el sesgo del reloj es mayor que el retardo del combinacional, este sistema funcionará mal:
Para que funcione correctamente se debe cumplir que:
Ciclo de reloj = tiempo de propagación + retardo del combinacional + tiempo de preestabilización + sesgo del reloj.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.