PREVIEW
Instruction Register

Instruction Register

Advanced signal_cellular_alt Advanced schedule 25 min

Registro de instrucción (IR)

Descripción general

  • Propósito: El registro de instrucción (IR) es un registro especializado dentro de una CPU que contiene temporalmente la instrucción de código máquina obtenida de la memoria mientras está siendo decodificada y ejecutada por la unidad de control.
  • Símbolo: El registro de instrucción se representa mediante un bloque rectangular con entradas para datos desde memoria, reloj y habilitación de carga, con salidas que proporcionan los bits de instrucción al decodificador.
  • Rol en DigiSim.io: Sirve como componente crítico en los diseños de CPU, enlazando las etapas de búsqueda y decodificación del ciclo de instrucción y proporcionando acceso estable al código de operación y los operandos de la instrucción.

instruction register component

Descripción funcional

Comportamiento lógico

El registro de instrucción captura y mantiene los datos de instrucción de la memoria durante el ciclo de búsqueda, haciéndolos disponibles para el decodificador de instrucciones durante los ciclos de decodificación y ejecución. Funciona principalmente como un elemento de almacenamiento con control de carga.

Tabla de funciones:

LD CLK A_OE Acción Opcode (OP0-OP3) Dirección (A0-A3)
1 X Cargar nueva instrucción Datos cargados[3:0] Datos cargados[7:4] o Alta-Z
0 X Mantener valor actual Valor actual Valor actual o Alta-Z
X 0 X Sin cambio Valor actual Valor actual o Alta-Z
X X 1 Habilitación de salida de dirección Valor actual Valor actual
X X 0 Dirección Alta-Z Valor actual Alta-Z

Nota: ↑ representa un flanco de subida del reloj, X representa una condición "no importa"

Entradas y salidas

  • Entradas:

    • I0-I7: Entradas de datos de 8 bits conectadas al bus de datos de memoria para recibir instrucciones buscadas.
    • LD: Entrada de habilitación de carga de 1 bit que permite la carga de una nueva instrucción cuando está activa.
    • CLK: Entrada de reloj de 1 bit que sincroniza la operación de carga.
    • A_OE: Habilitación de salida de dirección de 1 bit que controla si los bits de dirección se envían a las salidas.
  • Salidas:

    • OP0-OP3: Salidas de código de operación de 4 bits que proporcionan el código de operación a la unidad de control (siempre habilitadas).
    • A0-A3: Salidas de dirección de 4 bits que proporcionan información de direccionamiento (controladas por A_OE).
    • Las salidas de código de operación siempre están disponibles una vez cargadas, ya que la unidad de control necesita acceso inmediato.
    • Las salidas de dirección pueden ponerse en tres estados usando A_OE para compartir el bus durante operaciones de memoria.

Parámetros configurables

  • Ancho del registro: El número de bits que el IR puede almacenar, coincidiendo con el tamaño de palabra de instrucción de la CPU.
  • Sensibilidad al flanco de reloj: Si el registro responde a flancos de subida o bajada del reloj.
  • Comportamiento de carga: Cómo la señal de control de carga interactúa con el reloj.
  • Retardo de propagación: El tiempo que tardan las salidas en cambiar después de un evento de disparo.

Representación visual en DigiSim.io

El registro de instrucción se muestra como un bloque rectangular con las entradas etiquetadas en el lado izquierdo (DATA[n:0], CLK, LOAD) y las salidas (IR_OUT[n:0]) en el lado derecho. La entrada de reloj está típicamente marcada con un símbolo de triángulo que indica sensibilidad al flanco. Cuando se conecta en un circuito, el componente indica visualmente su estado actual a través del valor de instrucción mostrado en sus salidas y los cambios de color en los cables de conexión.

Valor educativo

Conceptos clave

  • Ciclo de instrucción: Demuestra una etapa clave en el ciclo de búsqueda-decodificación-ejecución de una CPU.
  • Decodificación de instrucciones: Ilustra cómo las instrucciones de código máquina se preparan para su interpretación.
  • Arquitectura de CPU: Introduce un componente fundamental en las unidades de control de CPU.
  • Procesamiento secuencial: Muestra cómo los datos fluyen a través de una CPU en etapas discretas.
  • Arquitectura del conjunto de instrucciones: Ayuda a visualizar cómo se manejan las instrucciones de código máquina.

Objetivos de aprendizaje

  • Comprender el papel del registro de instrucción en el ciclo de ejecución de la CPU.
  • Aprender cómo las instrucciones se capturan y mantienen estables durante la operación de la CPU.
  • Reconocer cómo el IR interactúa con la memoria y el decodificador de instrucciones.
  • Aplicar los conceptos del IR en el diseño de arquitecturas de CPU simples.
  • Comprender la relación entre los formatos de instrucción y la organización de la CPU.

Ejemplos de uso/Escenarios

  • Diseño básico de CPU: Componente central en una implementación del ciclo de búsqueda-decodificación-ejecución.
  • Decodificación de instrucciones: Proporcionar datos de instrucción estables al circuito decodificador.
  • Arquitectura segmentada: Separar las etapas de búsqueda y decodificación en un pipeline de CPU.
  • Implementación de microcódigo: Mantener instrucciones mientras la unidad de control avanza a través de micro-operaciones.
  • Modelos de CPU educativos: Demostrar los principios fundamentales de la operación de la CPU.
  • Unidades de control cableadas: Proporcionar bits de instrucción directamente a la lógica de control combinacional.

Notas técnicas

  • El ancho del registro de instrucción coincide con el tamaño de instrucción de la arquitectura del procesador.
  • El IR se carga típicamente durante la fase de búsqueda del ciclo de instrucción.
  • En una CPU simple sin pipeline, el IR mantiene cada instrucción durante toda su duración de ejecución.
  • En arquitecturas segmentadas, pueden existir múltiples IRs en diferentes etapas del pipeline.
  • Las salidas del IR a menudo se dividen en campos que tienen significados específicos según el formato de instrucción.
  • Algunos conjuntos de instrucciones complejos requieren lógica adicional para manejar instrucciones de longitud variable.
  • El IR aísla la unidad de control del bus de datos, permitiendo que la memoria se use para otras operaciones mientras se ejecuta la instrucción actual.
graph LR
    DATA[Data Bus<br/>from Memory] --> IR[Instruction Register]
    CLK[Clock] --> IR
    LOAD[Load Enable] --> IR
    IR --> OUT[Output to Decoder<br/>Opcode & Operands]

Nota: El tamaño del IR coincide con el tamaño de instrucción de la arquitectura. Las salidas se dirigen a la lógica del decodificador de instrucciones.

Tabla de verdad / Tabla de funciones

El IR funciona principalmente como un elemento de almacenamiento:

LOAD CLK Acción realizada en el flanco de reloj Salida IR (Estado siguiente)
1 Cargar datos de entrada Datos de entrada
0 Mantener valor actual Salida IR (Actual)
X 0/↓ Sin cambio Salida IR (Actual)

La salida es típicamente estable entre operaciones de carga y está continuamente disponible para el decodificador de instrucciones.

Características

  • Configuración de entrada:

    • Entradas de datos (I0-I7): 8 entradas paralelas conectadas al bus de datos de memoria para recibir instrucciones buscadas.
    • Habilitación de carga (LD): Señal de control activada durante el ciclo de búsqueda para almacenar la instrucción.
    • Entrada de reloj (CLK): Sincroniza la operación de carga en el flanco de subida.
    • Habilitación de salida de dirección (A_OE): Controla el comportamiento de tres estados de las salidas de dirección para compartir el bus.
  • Configuración de salida:

    • Salidas de código de operación (OP0-OP3): Salidas de 4 bits que proporcionan el código de operación, siempre habilitadas para acceso inmediato por la unidad de control.
    • Salidas de dirección (A0-A3): Salidas de 4 bits que proporcionan información de direccionamiento, pueden ponerse en tres estados mediante A_OE.
    • Los bits de código de operación se dirigen típicamente directamente a la unidad de control para la decodificación de instrucciones.
    • Los bits de dirección se usan para direccionamiento de memoria y operaciones de salto cuando están habilitados.
  • Funcionalidad:

    • Almacena temporalmente la instrucción actualmente buscada.
    • Mantiene la instrucción estable mientras se decodifica y ejecuta.
    • Aísla la unidad de control de cambios en el bus de datos después del ciclo de búsqueda.
    • Proporciona los bits de instrucción en bruto necesarios por el decodificador de instrucciones.
  • Retardo de propagación:

    • Retardo de reloj a salida: Tiempo para que la instrucción esté disponible en las salidas después del flanco de reloj durante una operación de carga.
    • Requisitos de tiempo de establecimiento/mantenimiento para las entradas de datos relativos al reloj y la señal de carga.
  • Complejidad del circuito:

    • Núcleo: Un registro de entrada paralela, salida paralela compuesto por flip-flops D (uno por bit del ancho de instrucción).
    • Lógica de control para la señal LOAD.

Métodos de implementación

  1. Matriz de flip-flops D: El método más común, usando un flip-flop D para cada bit de la palabra de instrucción, con reloj simultáneo con una señal LOAD común.
  2. CI de registro estándar: Usando CIs de registro estándar (p. ej., 74HC374, 74HC574 para instrucciones de 8 bits).
  3. Implementación FPGA/ASIC: Sintetizado a partir de código HDL dentro de un diseño de CPU más grande.

Aplicaciones

  • Ciclo de decodificación y ejecución de instrucciones: Componente central en el ciclo de búsqueda-decodificación-ejecución de una CPU.
  • Unidad de control de CPU: Proporciona la entrada a la lógica del decodificador de instrucciones, que a su vez genera señales de control para el resto de la CPU.
  • Etapas de pipeline: En procesadores segmentados, el IR a menudo existe dentro de la etapa de pipeline de decodificación de instrucción (ID).

Limitaciones

  • Ancho fijo: El tamaño del IR dicta el tamaño máximo de instrucción que la CPU puede manejar directamente.
  • Cuello de botella: En algunas arquitecturas antiguas, la búsqueda en el IR podía ser un cuello de botella de rendimiento, abordado por técnicas como la prebúsqueda de instrucciones y la segmentación.

Detalle de implementación del circuito

Un IR de 8 bits implementado con flip-flops D:

graph LR
    D0[Data_In 0] --> FF0[D Flip-Flop 0]
    D1[Data_In 1] --> FF1[D Flip-Flop 1]
    D2[Data_In 2] --> FF2[D Flip-Flop 2]
    D7[Data_In 7] --> FF7[D Flip-Flop 7]
    
    CLK[Clock] --> FF0
    CLK --> FF1
    CLK --> FF2
    CLK --> FF7
    
    LOAD[Load Enable] --> FF0
    LOAD --> FF1
    LOAD --> FF2
    LOAD --> FF7
    
    FF0 --> OUT0[IR_Out 0]
    FF1 --> OUT1[IR_Out 1]
    FF2 --> OUT2[IR_Out 2]
    FF7 --> OUT7[IR_Out 7]

Todos los flip-flops comparten las mismas señales de reloj (CLK) y habilitación de carga (LOAD).

Componentes relacionados

  • Contador de programa (PC): Proporciona la dirección para buscar la instrucción que se cargará en el IR.
  • Memoria (RAM/ROM): Almacena las instrucciones.
  • Bus de datos: Transporta la instrucción desde la memoria al IR.
  • Unidad de control: Contiene el IR y el decodificador de instrucciones.
  • Decodificador de instrucciones: Lee la salida del IR para interpretar la instrucción.
  • ALU: Ejecuta la operación especificada por la instrucción decodificada.
  • Registros: Pueden contener operandos especificados por campos dentro de la instrucción almacenada en el IR.

school Ruta de Aprendizaje

arrow_back Requisitos Previos

arrow_forward Siguientes Pasos

help_outline Preguntas Frecuentes

¿Qué es el Registro de Instrucciones?

El IR contiene la instrucción buscada de la memoria. Su contenido es decodificado por la unidad de control para determinar qué operación realizar.

¿Qué información contiene el IR?

El IR típicamente contiene el opcode (código de operación) y la dirección del operando o valor inmediato, dependiendo del formato de instrucción.

play_arrow Ejecutar Circuito en Vivo

Ver Otros Componentes