Diferencia entre la microprogramación horizontal y vertical

Diferencia entre la microprogramación horizontal y vertical

El proceso de escribir microcódigo para la memoria de control de la unidad de procesamiento central de una computadora se llama microprogramación. Se genera el microcódigo para la memoria de control después de la configuración de una computadora y su unidad de control micro programado. La memoria de control es parte de la unidad de control que almacena todos los micro programas que no se pueden modificar con frecuencia. Cada línea del programa micro representa una microinstrucción que especifica una o más microoperaciones. Hay dos formas distintas en que se pueden organizar microinstrucciones: horizontal y vertical. Las microinstrucciones horizontales representan varias microoperaciones que se ejecutan al mismo tiempo. Sin embargo, en casos extremos, cada microinstrucción horizontal controla todos los recursos de hardware del sistema. Por el contrario, la microinstrucción vertical se asemeja al formato de lenguaje de máquina convencional que comprende una operación y algunos operandos. A diferencia de las microinstrucciones horizontales, la microinstrucción vertical representa microoperaciones individuales.

Microprogramación horizontal

En la microprogramación horizontal, cada bit se identifica específicamente con un solo punto de control, lo que indica que la microoperación correspondiente se ejecutará. Dado que cada microinstrucción es lo suficientemente capaz como para controlar varios recursos simultáneamente, tiene la ventaja potencial de una utilización de hardware más eficiente y, además, requiere un número menor de microinstrucciones por microprograma. Permite un mayor grado de paralelismo con una cantidad mínima de codificación y campos de control separados. Sin embargo, desarrollar microprogramas que usan recursos de manera óptima o eficiente es una tarea compleja. La microprogramación horizontal ofrece una gran flexibilidad porque cada broca de control es independiente entre sí. Tiene mayor longitud, por lo que generalmente contiene más información que las microinstrucciones verticales.

Microprogramación vertical

La microprogramación vertical emplea un formato variable y un mayor grado de codificación, a diferencia de la microprogramación horizontal. No solo acorta la longitud de la microinstrucción, sino que también evita que el aumento de la capacidad de memoria afecte directamente la longitud de la microinstrucción. Cada microinstrucción vertical generalmente representa una sola microoperación. Se utiliza un código para cada microoperación que se realizará y el decodificador traduce el código en señales de control individuales. Debido a que solo se especifica la microoperación a realizar, los campos de microinstrucción se utilizan completamente. Además, los microprogramas verticales son más fáciles de escribir que sus contrapartes horizontales. La microinstrucción vertical se asemeja al formato de lenguaje de máquina convencional que comprende una operación y algunos operandos. En consecuencia, es fácil de usar para la microprogramación. Generalmente consta de cuatro a seis campos que requieren aproximadamente 16 a 32 bits por instrucción.

Diferencia entre la microprogramación horizontal y vertical

Codificación

La microprogramación vertical emplea un formato variable y un mayor grado de codificación, a diferencia de la microprogramación horizontal. En la microprogramación vertical, los bits de control están codificados con cada código que se utiliza para cada acción que se realizará y un decodificador de instrucciones decodifica el código en múltiples señales de control. Por el contrario, la microprogramación horizontal implica microinstrucciones horizontales que no usan codificación en absoluto. Representan cada bit de control en el DataPath asignado con un bit separado en el formato de microinstrucción. Cada bit en el campo de control está conectado a una línea de control.

Secuencia

La microprogramación horizontal generalmente sigue un enfoque secuencial para especificar la siguiente microinstrucción en un microprograma, similar al formato de lenguaje de máquina convencional. Cada bit se identifica específicamente con un solo punto de control, que indica que la microoperación correspondiente se ejecutará. Luego se requieren microinstrucciones de rama condicionales e incondicionales especiales para romper la secuencia. La microprogramación vertical puede usar un esquema de direccionamiento relativamente en el que se requieren unos pocos bits para especificar un avance relativo o un salto hacia atrás. Esto requiere el cálculo de la dirección en cada paso.

Diseño

- Los microprogramas verticales tienen una mejor densidad de código que es beneficiosa para el tamaño de la tienda de control. La microinstrucción vertical se asemeja al formato de lenguaje de máquina convencional que comprende una operación y algunos operandos. Cada microinstrucción vertical representa una sola microoperación, mientras que los operandos pueden especificar el sumidero de datos y la fuente. Los microprogramas horizontales, por otro lado, generalmente representan múltiples microoperaciones que se ejecutan al mismo tiempo. En casos extremos, cada microinstrucción horizontal controla varios recursos de hardware simultáneamente.

Flexibilidad

- Los microprogramas horizontales ofrecen una flexibilidad mejorada porque cada bit de control es independiente entre sí. Tiene mayor longitud, por lo que generalmente contiene más información que las microinstrucciones verticales. Las microinstrucciones horizontales con 48 o más bits son bastante comunes. Los microprogramas horizontales tienen la ventaja potencial de utilizar el hardware de manera más eficiente y además, requiere un número menor de microinstrucciones por microprograma. Las microinstrucciones verticales, por otro lado, son más compactas pero menos flexibles que las microinstrucciones horizontales. En consecuencia, el enfoque vertical es fácil de usar para la microprogramación.

Horizontal vs. Microprogramación vertical: tabla de comparación

Resumen de microprogramación horizontal y vertical

A diferencia de las microinstrucciones horizontales, la microinstrucción vertical representa microoperaciones individuales. Los microprogramas horizontales permiten un mayor grado de paralelismo con una cantidad mínima de codificación y campos de control separados, mientras que los bits de control están codificados en microprogramas verticales. La elección entre los dos enfoques debe hacerse con cuidado. Sin embargo, en la práctica, los diseñadores usan una combinación de formatos de microinstrucción horizontales y verticales para que la estructura resultante sea compacta pero eficiente.