Está en la página 1de 3

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.

�ndice
1 Breve rese�a hist�rica
2 En qu� consiste
3 Morfolog�a de una microinstrucci�n
3.1 Multiplexaci�n
4 Implementaci�n
5 V�ase tambi�n
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�ales 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
Arquitectura de CPU
CPU
Microprocesador
Unidad de control
Unidad aritm�tico l�gica
Unidad de punto flotante
Unidad de gesti�n de memoria
Unidad de ejecuci�n
Registro (hardware)

También podría gustarte