Microcódigo

Microcódigo

Un microcódigo o microprograma es un tipo particular de firmware utilizado en algunos microprocesadores de propósito general.

Contenido

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

Un microprograma es una secuencia de datos binarios o microinstrucciones que representan señales eléctricas internas de la unidad de control de un microprocesador.

Unas pocas de estas microinstrucciones implementan una instrucción completa del microprocesador. Por ejemplo, la instrucción "sumar dos registros" típica de cualquier microprocesador, se implementa mediante la activación y desactivación de un conjunto reducido de señales eléctricas en el banco de registros y la unidad aritmético-lógica. En concreto, el microprograma de esta instrucción significaría:

  • Activar las señales de selección de registro como primer operando de la ALU.
  • Activar las señales de selección de registro como segundo operando de la ALU.
  • Activar las señal de selección de operador para que corresponda a la suma en la ALU.
  • Esperar unos ciclos de reloj hasta que la operación esté completada.
  • Activar la señal de escritura en el registro acumulador.

Morfología de una microinstrucción

La microinstrucción es una palabra binaria con tantos bits como señales de control existan en el microprocesador. Generalmente no son múltiplos de ocho bits porque no existe ninguna necesidad de alineamiento. Un bit a "cero" indica que la señal no debe activarse. Un bit a "uno" indica lo contrario.

Los bits de una microinstrucción se organizan, conceptualmente, en campos. Cada campo representa un conjunto de señales eléctricas relacionadas entre sí.

Este es un ejemplo (ficticio) de formato de microinstrucción:

  bit:    00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 
         +-----------+-----------+-----------+-----------------+
  campo:   registro    registro    operación  salto siguiente
           operando 1  operando 2  ALU        instrucción

Este ejemplo tiene cuatro campos. Los bits 00 a 03 permiten seleccionar un registro como operando de la ALU. Tratándose de 4 bits, se puede seleccionar uno de 2^4=dieciséis registros del microprocesador. Los bits 04 a 07 son análogos para el segundo operando. Los bits 08 a 11 indican el tipo de operación aritmética que debe realizar la unidad aritmético-lógica (suma, resta, multiplicación, etc.). El último campo, bits 12 a 15, indican cuál es la siguiente microinstrucción. Se trata de un desplazamiento (positivo o negativo) que hace saltar hacia atrás o hacia delante.

Multiplexación

Existen algunos campos que nunca se utilizan simultáneamente. Por ejemplo, el campo operación de la unidad aritmético-lógica y una dirección de memoria. Para ahorrar memoria, es posible utilizar el mismo conjunto de bits para campos distintos. Así, una microinstrucción puede tener formatos diferentes. El formato a utilizar se distingue mediante algún bit adicional. Ejemplo:

  bit:    "0" 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18
          +--+-----------+-----------+-----------+-----------------+
  campo:      registro    registro    operación   salto siguiente
              operando 1  operando 2  ALU         instrucción
  bit:    "1" 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18
          +--+-----------+-----------------------+--+--------------+
  campo:      registro     dirección de memoria   op salto siguiente
              operando 1                             instrucción

El primer bit distingue qué formato se está utilizando. El segundo formato correspondería a instrucciones de transferencia con memoria (lectura o escritura).

Implementación

UC microprogramada generica.PNG

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

  • 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.

Véase también


Wikimedia foundation. 2010.

Игры ⚽ Поможем сделать НИР

Mira otros diccionarios:

  • Intel iAPX 432 — El Intel iAPX 432 fue el primer diseño de microprocesador de 32 bits de Intel, introducido en 1981 como un conjunto de tres circuitos integrados. El iAPX 432 fue pensado para ser el principal diseño de Intel para los años 1980, implementando… …   Wikipedia Español

  • IBM 5100 — El IBM 5100 Portable Computer El IBM 5100 Portable Computer fue un computador de escritorio introducido en septiembre de 1975, seis años antes del IBM PC. Contenido 1 …   Wikipedia Español

  • Xerox Alto — Xerox Alto. El Xerox Alto, desarrollado en el Xerox PARC en 1973, fue el primer ordenador personal, así como el primero que utilizó la metáfora de escritorio y una interfaz gráfica de usuario. Contenido …   Wikipedia Español

  • Intel 8086 y 8088 — Intel 8088 Microprocesador Microprocesador Intel 8088 Producción 1979   1982 Fabricante(s) …   Wikipedia Español

  • Advanced Micro Devices — Para otros usos de este término, véase AMD (desambiguación). Advanced Micro Devices, Inc. Lema The Future Is Fusion …   Wikipedia Español

  • Firmware — Saltar a navegación, búsqueda Una visión típica de la arquitectura de computadores como una serie de capas de abstracción: hardware, firmware, ensamblador, kernel, sistema operativo y aplicaciones …   Wikipedia Español

  • IBM S/360 — Consola del operador de un System/360 Model 65, con válvula de registro, lámparas y switches (mitad de la fotografía), y arriba a la derecha, un interruptor de emergencia rojo. El 360 fue el primero en usar microprogramación, y creó el concepto… …   Wikipedia Español

  • microprogramación — ► sustantivo femenino INFORMÁTICA Técnica de programación de un ordenador, en la que las instrucciones del programa se realizan a través de una sucesión de instrucciones muy elementales. * * * ► femenino INFORMÁTICA Técnica de programación de una …   Enciclopedia Universal

  • Unidad aritmético lógica — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar …   Wikipedia Español

  • Unidad central de procesamiento — Oblea de un microprocesador Intel 80486DX2 (tamaño: 12×6,75 mm) en su empaquetado. La unidad central de procesamiento, UCP o CPU (por el acrónimo en inglés de central processing unit), o simplemente el procesador o microprocesador, es el… …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”