Secuenciación de microinstrucciones

Necesidad de diseñar la técnica de secuenciación de microinstrucciones: 
El primer propósito es minimizar el tamaño de la memoria de control porque la memoria de control está presente dentro del procesador.
El segundo propósito es ejecutar las microinstrucciones lo más rápido posible. Lo que significa que la dirección de la siguiente microinstrucción se puede calcular lo más rápido posible.

Los factores que son responsables de reducir el tamaño de la memoria de control son:

  • Grado de paralelismo, es decir, cuántas microoperaciones se pueden realizar simultáneamente.
  • Representación/codificación de la información de control.
  • La forma de especificar la dirección de la siguiente microinstrucción.

El número de microoperaciones ejecutadas en el procesador depende de la arquitectura del procesador y la codificación de las instrucciones lo acorta. Pero la principal preocupación es calcular la dirección de la próxima microinstrucción. 

La dirección de la siguiente microinstrucción puede ser:

  • La dirección de la siguiente microinstrucción en la secuencia, es decir, una tras otra.
  • Dirección de la sucursal (que puede ser condicional o incondicional).
  • Calculado sobre la base del código de operación de la instrucción.

 La dirección de la primera microinstrucción se puede calcular una vez a partir del código de operación de la instrucción que está presente en el registro de instrucciones, luego esa dirección se carga en CMAR (Registro de dirección de memoria de control). CMAR pasa la dirección al decodificador. El decodificador identifica las microinstrucciones correspondientes de la Memoria de Control. 
Una microinstrucción tiene dos campos: un campo de control y un campo de dirección. 

  • Campo de control:  
    determina qué señales de control se generarán.
  • Campo de dirección: 
    determina la dirección de la siguiente microinstrucción.
  • Esta dirección se carga aún más en CMAR para obtener la siguiente microinstrucción.

Como sabemos, normalmente las microinstrucciones no se ejecutan secuencialmente durante mucho tiempo. Digamos que después de 4 o 5 microinstrucciones, la bifurcación generalmente puede ocurrir. Por lo tanto, nuestro motivo principal es mejorar el algoritmo de bifurcación para que la dirección de la próxima microinstrucción se pueda calcular de manera eficiente. 
Por lo tanto, la secuenciación de microinstrucciones es el método para determinar el flujo del microprograma.

Entonces, existen técnicas que se basan en la cantidad de direcciones utilizadas para la secuenciación:

  1. Dos campos de dirección en cada microinstrucción (campo de dirección dual).
  2. Campo de dirección única (campo de dirección única).
  3. Microinstrucciones de formato variable

1. Campo de doble dirección:

Campo de doble dirección

.

  • En este enfoque, las microinstrucciones no se ejecutan de manera secuencial.
  • El registro de instrucciones (IR) da la dirección de la primera microinstrucción.
  • A partir de entonces, cada microinstrucción da la dirección de la siguiente microinstrucción.
  • Si es una microinstrucción condicional, contendrá dos campos de dirección.
  • Uno para que la condición sea verdadera y el otro para que sea falsa. Por lo tanto, se llama campo de dirección dual.
  • El multiplexor decidirá la dirección que se cargará en el registro de direcciones de memoria de control (CMAR) en función de los indicadores de estado.

Aquí, se desperdicia mucha memoria de control porque al menos uno de los campos de dirección no es necesario en muchas microinstrucciones (es decir, para secuenciales o incondicionales).

2. Campo de dirección única:
con algunas modificaciones y la lógica agregada, la cantidad de direcciones se reduce a una. Aquí, se utiliza un nuevo registro llamado contador de microprogramas. En este caso, la dirección de la siguiente microinstrucción puede ser la dirección de la siguiente dirección secuencial o puede ser la dirección generada mediante el código de operación o puede ser la dirección almacenada en el campo de dirección de la microinstrucción. 

Campo de dirección única.

  • En este enfoque, las microinstrucciones se ejecutan de manera secuencial.
  • El registro de instrucciones (IR) proporciona la dirección de la primera microinstrucción en CMAR.
  • A partir de entonces, la dirección simplemente se incrementa.
  • Por lo tanto, cada microinstrucción no necesita llevar la dirección de la siguiente.
  • Esto es cierto siempre que el microprograma se ejecute de manera secuencial.
  • Para una sucursal incondicional, las microinstrucciones incluyen la dirección de la sucursal. Esta dirección se cargará en CMAR.
  • Para una rama condicional, la microinstrucción contiene la dirección de la rama para la condición verdadera. Si la condición es falsa, la dirección actual en CMAR simplemente se incrementará.
  • Esto significa que, incluso en el peor de los casos, la microinstrucción solo llevará una dirección.
  • Por lo tanto, se llama campo de dirección única.
  • El multiplexor decidirá la dirección que se cargará en el registro de direcciones de memoria de control (CMAR) en función de los indicadores de estado.

Este método se usa comúnmente. Pero el espacio provisto en cada microinstrucción en un solo campo de dirección no es del todo útil si las instrucciones se ejecutan secuencialmente.  

3. Formato de dirección variable –

  • En esta técnica se utilizan dos formatos. En tal técnica, se necesita un bit en la microinstrucción para diferenciar entre una microinstrucción de control o una microinstrucción de ramificación. El primer formato proporciona la microinstrucción de control (es decir, los bits se utilizan para generar señales de control), mientras que el segundo formato proporciona la dirección y la lógica de bifurcación (puede haber bifurcación condicional o incondicional).
  • En el primer formato, la microinstrucción contiene señales de control, luego la siguiente dirección de microinstrucción se calcula utilizando el código de operación del registro de instrucción o es la dirección de la siguiente microinstrucción en secuencia. En este enfoque, se necesita un ciclo adicional para la microinstrucción de rama.

Formato de instrucción variable

Publicación traducida automáticamente

Artículo escrito por goutamnagpal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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