Microprograma

Microprograma o microcódigo
Información sobre la plantilla
Microcodigo1.jpg
Concepto:Un microcódigo o microprograma es un tipo particular de firmware utilizado en algunos microprocesadores de propósito general. Implementa un conjunto de instrucciones de CPU.

Microcódigo o Microprograma. es un tipo particular de firmware utilizado en algunos microprocesadores de propósito general. Implementa un conjunto de instrucciones de CPU. Así como una sentencia en un lenguaje de alto nivel es compilada en una serie de instrucciones de máquina, en una CPU usando microcódigo, cada instrucción de máquina es implementada por una serie de microinstrucciones.

Breve reseña histórica

El diseño de microprocesadores de propósito general conoce dos técnicas que conducen a una clasificación de éstos en dos grupos:

  • Los microprocesadores "cableados": aquellos que tienen una unidad de control específicamente diseñada sobre el silicio para un juego de instrucciones concreto.
  • Los microprocesadores "microprogramados": aquellos que tienen una unidad de control genérica o prediseñada y que implementan un juego de instrucciones u otro dependiendo de un microprograma.

En los primeros años de la "era del silicio", el diseño de microprocesadores cableados resultaba enormemente costoso debido a que son muy complejos y no existían herramientas adecuadas para diseñar y verificar la corrección de los diseños.

Por este motivo, era habitual que los microprocesadores fueran gobernados por un microprograma, mucho más sencillo de diseñar. Una vez creada una unidad de control microprogramada, era posible replicarla en todos los modelos de microprocesador. La única diferencia entre unos y otros radicaba en el microprograma utilizado.

Hoy día la microprogramación ha desaparecido prácticamente por completo. Esto se debe a los siguientes factores:

  • Ya existen herramientas avanzadas para diseñar complejas unidades de control con millones de transistores litografiados. Estas herramientas prácticamente garantizan la ausencia de errores de diseño.
  • Las unidades de control cableadas tienen un rendimiento significativamente mayor que cualquier unidad microprogramada, resultando más competitivas.

En qué consiste

Los microprogramas son cuidadosamente diseñados y optimizados para una ejecución lo más rápida posible, pues un microprograma lento podría causar una instrucción de máquina lenta, lo que causaría que todos los programas que emplean esa instrucción sean lentos.

Los microprogramadores deben tener un extenso conocimiento de bajo nivel del circuiterío de una computadora.
En la mayoría de las computadoras que emplean microprogramas, éstos no residen en la memoria principal del sistema, sino que existen en una memoria de alta velocidad especial, llamada almacenamiento de control (control store), y que pertenece a la unidad de control de la CPU.

Esta memoria puede ser memoria de solo lectura, o puede ser memoria de lectura-escritura. En este caso, el microprograma podría ser cargado al almacenamiento de control desde otro medio de almacenamiento como parte de la inicialización del CPU. Si el microprograma se encuentra en una memoria que permite lectura-escritura, puede ser alterado para corregir errores en el conjunto de instrucciones, o para implementar nuevas instrucciones de máquina.

Implementación

Una unidad de control microprogramada consiste esencialmente en "microprocesador dentro del microprocesador", y consta de elementos análogos aunque mucho más simplificados:

Implementacion1.JPG
  • Una memoria de programa. Suele ser una pequeña memoria de solo lectura que incluye todo el microprograma.
  • Un "micro-contador de programa": un registro que indica cual es la microinstrucción en curso.
  • Un "registro de micro-instrucción": contiene la microinstrucción en curso.
  • Un demultiplexor, en caso de que existan campos multiplexados.
  • Un pequeño sumador, que permite los saltos de una instrucción a otra.
  • Una señal de reloj: que indica la duración de cada microinstrucción.

Enlace externo

Fuente