Remove ads
tipo particular de firmware utilizado en algunos microprocesadores de propósito general De Wikipedia, la enciclopedia libre
Un microcódigo o microprograma es el nombre de una serie de instrucciones o estructuras de datos implicados en la implementación de lenguaje máquina de nivel más alto en muchos procesadores , especialmente los microprogramados . El Microcódigo está almacenado en una memoria que es de acceso muy rápido.
El diseño de microprocesadores de propósito general conoce dos técnicas que conducen a una clasificación de éstos en dos grupos:
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:
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:
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.
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).
Una unidad de control microprogramada consiste esencialmente en "microprocesador dentro del microprocesador", y consta de elementos análogos aunque mucho más simplificados:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.