You are on page 1of 21

OBJETIVO

- Diferenciar las diferentes arquitecturas de computadores, mediante


las filosofas de diseo actuales.
-Identificar los enfoques que permiten la implementacin de la unidad
de control de la CPU.
ARQUITECTURA RISC Y CISC3
Existen dos tipos bsicos de de filosofa de diseo de
procesadores: Computadores de conjunto reducido
de instrucciones (RISC) y computadoras de conjunto
de instrucciones complejas (CISC). La arquitectura
Intel IA-32 pertenece a esta categora.
Antes de entrar en detalle de estos dos diseos, veremos acerca de la
actual tendencia.
En los aos 1970 e inicios de los aos 80, los procesadores
predominantemente seguan el diseo CISC. La actual tendencia es
usar la filosofa RISC.
Para entender este cambio de CISC a RISC, se necesita dar un
vistazo a la motivacin para ir inicialmente a la forma CISC, pero
primero se debe explicar que son estos dos tipos de filosofa de
diseo.
Como su nombre sugiere, un sistema CISC usa instrucciones
complejas, pero Qu es una instruccin compleja?, por ejemplo,
sumar dos enteros es considerado una instruccin simple, pero, una
instruccin que copia un elemento de un arreglo en otro y
automticamente actualiza los subndices de ambos arreglos es
considerada una instruccin compleja.
Los sistemas RISC usan solo instrucciones simples, mas an, los
sistemas RISC asumen que los operandos requeridos se encuentran
en los registros internos del procesador, no en la memoria principal.
Un diseo CISC no impone tales restricciones, pero a su vez tales
caractersticas como instrucciones simples y restricciones como
operandos basados en registros no solo simplifica el diseo del
procesador sino que adems resulta en un procesador que provee
mejoras en el rendimiento de aplicaciones.
Muchos factores contribuyeron a la popularidad del CISC en los aos
setenta, en aquellos das, las memorias eran muy caras y de poca

capacidad, as que era necesario minimizar el monto de memoria


requerida para almacenar un programa. Una implicancia de este
requerimiento es que cada instruccin del procesador debe hacer
mas, conduciendo a complejos diseos de conjunto de instrucciones.
Estos diseos causan otro problema, Cmo puede un procesador ser
diseado para que pueda ejecutar tales instrucciones complejas
usando la tecnologa de esos das?, instrucciones complejas significa
hardware complejo, el cual tambin era caro.
Este era el problema con el cual deba lidiar el diseador de
procesadores hasta que Wilkies propuso control microprogramado en
los inicios de los aos 1950.
Un microprograma es un pequeo interprete en tiempo de ejecucin
que toma una instruccin compleja y genera una secuencia de
instrucciones simples que pueden ser ejecutas por el hardware, as, el
hardware no necesita ser complejo.
Una vez que esto lleg a ser posible, el diseo de tales procesadores
complejos por el uso de control microprogramado, los diseadores se
volvieron locos y trataron de acercar la brecha semntica entre las
instrucciones del procesador y los lenguajes de alto nivel. Esta brecha
semntica se refiere al hecho que cada instruccin en lenguaje de
alto nivel especifica un montn de mas trabajo que una instruccin en
lenguaje de mquina. Pensando en una instruccin de bucle while
en lenguaje de alto nivel tal como C, por ejemplo, si se puede tener
una instruccin de procesador con la semntica del bucle While, se
podra usar solo una instruccin de lenguaje de mquina, esto explica
por que la mayora de los diseadores CISC usa control
microprogramado.
El diseo RISC, de otra forma, elimina la capa de microprograma y
usa el hardware para directamente ejecutar la instruccin, aqu hay
otra razn por que los procesadores RISC puede potencialmente dar
un mejor rendimiento.
Una ventaja
implementar
arquitectura,
necesidad de

de usar control microprogramado es que se puede


variaciones en el conjunto bsico de instruccin de la
simplemente modificando el microprograma, no hay
cambiar el hardware.

As es posible llegar con una versin de procesador mas econmica


as como tambin de alto rendimiento para la misma familia de
procesadores.

CARACTERSTICAS DE LA ARQUITECTURA RISC


1.- Todas las instrucciones tienen el mismo tamao y se cargan y
almacenan de una nica forma, excepto las instrucciones de salto y
llamadas a subrutinas.
2.- Todas las instrucciones toma el mismo tiempo de ejecucin,
excepto las instrucciones de salto y llamadas a subrutinas.
3.- La cantidad de instrucciones son pocas ( menos 100).
4.- No dispone de microprogramas.

CARACTERSTICAS DE LA ARQUITECTURA CISC


1.- Las instrucciones tienen tamaos distintos y
almacenan de formas distintas.

se cargan y

2.- Las instrucciones tomas distintos tiempo de ejecucin.


3.- La cantidad de instrucciones son muchas ( mas 200).
4.- Dispone de microprogramas.

ORGANIZACIN DEL PROCESADOR

Ya se ha revisado el set de instrucciones de la


mquina, y a continuacin se explora la parte
de la mquina que es responsable de la
implementacin de estas operaciones: La
unidad de control de la CPU, en este
contexto, se ha revisado la mquina al nivel
de micro arquitectura.
La micro arquitectura consiste de la unidad
de control y los registros visibles al
programador, la unidad funcional tal como la ALU y cualquier registro
adicional que pueda ser requerido por la unidad de control.
Un conjunto de instrucciones dado puede ser implementado con
diferentes micros arquitecturas, por ejemplo, el set de instrucciones
del Pentium de Intel ha sido implementado en diferentes formas,
todas las cuales soporta el mismo conjunto de instrucciones. Adems
de Intel, un nmero de competidores tales como AMD y Cyrix han
implementado el conjunto de instrucciones del Pentium.
Una cierta micro arquitectura podra destacar la alta velocidad de
ejecucin, mientras otras destacar su bajo consumo de energa y
otras el bajo costo del procesador. Teniendo la capacidad de
modificar la micro arquitectura mientras se mantiene el conjunto de
instrucciones sin cambio significa que el vendedor del procesador
puede tomar ventajas del nuevo circuito integrado y de la tecnologa
de memorias mientras ofrece al usuario compatibilidad creciente para
sus inversiones en software.
Los programas corren sin cambio en diferentes procesadores siempre
y cuando el procesador implemente el mismo conjunto de
instrucciones, independiente de la micro arquitectura que esta
debajo.
Von Neumann dividi el computador en componentes bsicos, y estos
componentes permanecen todava: la CPU o procesador, es el ncleo
del computador y contiene todo excepto memoria, entrada y salida.
El procesador se divide adems en clculo y control.
A continuacin se examinan dos enfoques de micro arquitecturas
completamente opuestas: Unidades de control micro programadas y
unidades de control cableadas o por hardware.

EL DATAPATH O CAMINO DE DATOS2


Hoy da, el rgano aritmtico de Von
Neumann se denomina camino de datos
(datapath). Consta de unidades de ejecucin,
como por ejemplo unidades aritmticolgicas (ALU) o desplazadores, registros, y
caminos de comunicacin entre ellos.
Desde la perspectiva del programador, el
camino de datos contiene la mayor parte del
estado del procesador -la informacin que se
debe guardar cuando se suspende la
ejecucin de un programa y despus
restaurar para que contine ejecutndose-. Adems de los registros
de propsito general visibles al usuario, el estado incluye el contador
de programa (PC), el registro de direcciones de interrupcin (IAR), y
el registro de estado del programa; el ltimo contiene todos los
sealizadores de estado para una mquina, como habilitacin de
interrupciones, cdigos de condicin, etc.
Como una implementacin se crea para una tecnologa hardware
especfico, es la implementacin la que impone la duracin del ciclo
de reloj. La duracin del ciclo de reloj est determinada por los
circuitos ms lentos que operan durante un periodo de ciclo de reloj en el procesador, el camino de datos frecuentemente tiene ese
honor-. El camino de datos predominar tambin en el coste del
procesador, necesitando normalmente la mitad de los transistores y
la mitad del rea del procesador. Aunque haga todo el clculo, afecte
al rendimiento y predomine en el coste, el camino de datos es la
parte de diseo ms simple del procesador.
En la siguiente figura se muestra un esquema de un procesador tpico
dividido en control y camino de datos, ms memoria, en ella se
muestran los caminos para el control en lneas a trazos y los caminos
para la transferencia de datos en lneas continas.
El procesador utiliza tres buses: SI, S2 y Dest. La operacin
fundamental del camino de datos es leer operandos del fichero de
registros, operar sobre ellos en la ALU, y despus volver a almacenar
el resultado.

Como el fichero de registros no necesita ser ledo ni escrito en cada


ciclo de reloj, la mayora de los diseadores siguen la advertencia de
hacer el caso frecuente rpido, descomponiendo esta secuencia en
mltiples ciclos de reloj y haciendo ms corto el ciclo de reloj. Por
ello, en este camino de datos hay cerrojos en las dos salidas del
fichero de registros (denominadas A y B) y un cerrojo en la entrada
(C).
El fichero de registros contiene los 32 registros de propsito general
de una arquitectura denominada DLX (El registro 0 del fichero de
registros siempre tiene el valor 0, coincidiendo con la definicin de
registro 0 en el repertorio de instrucciones de DLX.)
El contador de programa (PC) y el registro de direccin de
interrupciones (IAR) son tambin parte del estado de la mquina.
Hay tambin registros, no parte del estado, utilizados en la ejecucin
de instrucciones: registro de direcciones de memoria (MAR), registro
de datos de memoria (MDR), registro de instruccin (IR) y registro
temporal (Temp).
El registro Temp es un registro disponible para almacenamiento
temporal para que el control realice algunas instrucciones de DLX.
Observar que el nico camino desde los buses S1 y S2 al bus Dest es
a travs de la ALU.

Un procesador tpico dividido en control


y camino de datos, ms memoria

Fuente: (Hennessy, Patterson) Arquitectura de computadores

FUNCIONAMIENTO GENERAL DE LA CPU


Un programa est compuesto por una serie de instrucciones, cada
una de las cuales esta dividida en al menos dos partes:
Cdigo de la instruccin (opcode): expresa la accin a realizar.
Dato: la cantidad sobre la que se debe realizar la accin.
Los cdigos y los datos correspondientes (o sus
escriben en las memorias del sistema. Cada zona
dedica a una finalidad concreta. El mapa de memoria
las diversas zonas y su utilidad; dicha tabla vara en
de mquina y de los programas que contiene.

direcciones) se
de memoria se
o tabla muestra
funcin del tipo

El desarrollo de una instruccin de programa tiene lugar de acuerdo


con una secuencia de operaciones denominadas CICLO.
En general, las fases en que se articula el desarrollo de un ciclo son
las siguientes:
-Bsqueda de la instruccin (FETCH).
-Decodificacin y ejecucin (EXECUTE).
Esta es la forma mas simple; instrucciones ms complejas requieren
varias operaciones.
En el momento de conectar la mquina, o cuando se da la orden de
comenzar una tarea, la CPU toma la primera instruccin, la ejecuta,
pasa a la segunda y as sucesivamente.
Para seguir esta secuencia se hace uso del PC, el cual almacena la
direccin de la instruccin siguiente a ejecutar. Si todas las
instrucciones fuesen secuenciales (es decir, si hubiera que realizar un
programa sin saltos de un punto a otro), para conocer la direccin de
la instruccin siguiente bastara sumar 1 al contenido del PC.

Los pasos que normalmente sigue el procesador son los siguientes


pasos en forma repetitiva cuando esta en operacin.
1. Pone en el bus de direcciones el valor del PC, direccionando en
la memoria la instruccin que se ejecutar.
2. El PC se actualiza apuntando a la siguiente direccin.
3. Se lee la instruccin desde la memoria, la cual viaja por el bus
de datos hasta la CPU.(ciclo fetch).
4. Se coloca la instruccin en el registro de instrucciones.
5. La instruccin es decodificada.
6. Se ejecuta la instruccin, iniciando toda la secuencia de seales
y habilitaciones que correspondan.
7. Si la instruccin usa una palabra en memoria, determina donde
esta.
8. Obtiene la palabra, si es necesaria, para la CPU.
9. Vuelve al punto 1
Una CPU con arquitectura Von Neuman ejecuta las instrucciones
segn el ciclo alimentar-decodificar-ejecutar.

El siguiente diagrama de flujo esquematiza el ciclo de operacin de la


CPU, el lado izquierdo del diagrama representa todas las operaciones
internas al procesador y el lado derecho representa todas la acciones
externas al mismo.
Se comienza por extraer una instruccin de la direccin de memoria
indicada por el contador de Programa (PC) para cargarla en el
registro de instrucciones de la CPU. Acto seguido se incrementa dicho
PC con la longitud de la instruccin alimentada.
A continuacin se decodifica la instruccin, es decir, se averigua cul
es la operacin a realizar. Seguidamente se debe calcula la direccin
de los operandos, tarea cuya dificultad vara en funcin de los modos
de direccionamiento utilizados. Una vez obtenida la direccin de los
operandos, se extraen o bien de la propia instruccin, o bien de los
registros generales o de la memoria principal.

Por ltimo, los operandos se hacen pasar a la ALU y el resultado se


almacena en alguno de los registros generales o en alguna direccin
de memoria principal.
Volviendo al comienzo del ciclo, se alimenta la siguiente instruccin.
Diagrama de flujo del ciclo de operacin de la CPU

BASES DE LA MICRO ARQUITECTURA


La funcionalidad de la micro arquitectura se centra alrededor del ciclo
fetch-ejecucin, el cual es en algn sentido el corazn de la
mquina. Como se indic, los pasos involucrados en el ciclo fetchejecucin son:
1.- Se alimenta (Fetch) la siguiente instruccin desde la memoria
para ser ejecutada.
2.- Decodifica el opcode.
3.- Lee operando(s) desde la memoria principal o registros si hay.
4.- Ejecuta la instruccin y almacena el resultado.
5.- Vuelve al paso 1.
La micro arquitectura es la responsable de hacer que los cinco pasos
ocurran.
La micro arquitectura obtiene (fetch) la siguiente instruccin para ser
ejecutada, determina cual instruccin es, obtiene (fetch) los
operandos, ejecuta la instruccin, almacena el resultado y entonces
se repite.
La micro arquitectura consiste en una seccin de datos el cual
contiene registros y una ALU, y una seccin de control, como se
ilustra a continuacin.
Vista de alto nivel de una micro arquitectura

Fuente: (Vincent P. Heuring) Principles of computer architecture

La seccin de datos es llamada tambin datapath. El control micro


programado usa un microprograma de propsito especial, no visible
al usuario, para implementar operaciones en registros y otras partes
de la mquina. Generalmente, el microprograma contiene muchos
pasos de programa que en conjunto implementan una sola (macro)
instruccin.
La unidad de control cableada adopta el enfoque en la que los pasos
que deben adoptarse para implementar una operacin comprende
estados en una mquina de estados finita, y el diseo es producto de
usar mtodos convencionales de diseo digital.
En ambos casos el datapath permanece en gran medida sin cambios,
aunque puede haber diferencias menores para soportar las diferentes
formas de control.

MICROINSTRUCCIONES CABLEADAS Y PROGRAMADAS


Para implementar una funcin compleja, existen dos caminos:
empleando una unidad de control cableada o una unidad
microprogramada.
Con cualquiera de estas dos versiones se alcanza la misma finalidad,
que consiste en producir una ejecucin secuencial de las operaciones
primitivas, exigidas por la macroinstruccin. Esto equivale a poder
determinar las seales de control para el circuito siguiente, a partir
del actual.
Durante el ciclo Fetch, la unidad de control interpreta el cdigo de
operacin OP-CODE, procedente de la memoria central, lo que
ocasiona cambios de diferentes estados de la computadora. Las
seales de control del siguiente microciclo dependen entonces del
resultado de la operacin primitiva actual y/o de las condiciones
presentes. La decisin sobre el paso siguiente a partir del estado
actual, est a cargo de una lgica especial llamada Lgica del
siguiente estado o direccin.

UNIDAD DE CONTROL CABLEADA (HARDWARE)


La unidad de control indica al camino de
datos lo que tiene que hacer, cada ciclo de
reloj, durante la ejecucin de las
instrucciones.
Esto
se
especifica
normalmente por un diagrama de estados
finitos. Cada estado corresponde a un ciclo
de reloj, y las operaciones que se van a
realizar durante el ciclo de reloj se
escriben en ese estado. Cada instruccin
tarda varios ciclos de reloj en completarse.
Convertir un diagrama de estados en hardware es el siguiente paso, y
esta implementada por medio de un circuito lgico que se compone
de compuertas, contadores, registros, decodificadores, etc. Cada
macroinstruccin exige de por s su propio circuito lgico, lo que
significa, que la unidad de control es inflexible respecto a cualquier
cambio o ampliacin
Las alternativas para hacer esto dependen de la tecnologa de
implementacin. Una forma de acotar la complejidad del control es
mediante el producto:
Estados -Entradas de control- Salidas de control
Donde:
Estados = el nmero de estados en un controlador de una
mquina de estados finitos;
Entradas de control = el nmero de seales examinadas por
la unidad de control;
Salida de control = el nmero de salidas de control generadas
por el hardware, incluyendo los bits para especificar
el siguiente estado.

La siguiente figura muestra una organizacin para el control de una


arquitectura DLX. Digamos que el diagrama de estados finitos de DLX
contiene 50 estados, por lo que se requieren 6 bits para representar
el estado. Por tanto, las entradas de control deben incluir estos 6
bits, algunos bits ms (p. e., 3) para seleccionar condiciones desde el
camino de datos y la unidad de interfaz de memoria, ms los bits de
la instruccin.
Control especificado como tabla para un
sencillo repertorio de instrucciones

Fuente: (Hennessy, Patterson) Arquitectura de computadores

Los especificadores de registros e inmediatos se envan directamente


al hardware, as no hay necesidad de enviar los 32 bits de las
instrucciones DLX como entradas de control. El cdigo de operacin
de DLX es de 6 bits, y solamente se utilizan 6 bits del cdigo de
operacin extendido (el campo func), haciendo un total de 12 bits
de la instruccin para entradas de control. Dadas esas entradas, el
control se puede especificar con una gran tabla. Cada fila de la tabla
contiene los valores de las lneas de control, para realizar las
operaciones requeridas por ese estado, y suministra el nmero del
estado siguiente. Supondremos que hay 40 lneas de control.

REDUCCIN DEL COSTE HARDWARE DEL CONTROL CABLEADO


La implementacin ms rpida de una tabla es con una memoria de
slo lectura (ROM). En este ejemplo se necesitarn 221 palabras, cada
una de 40 bits (i 10 MB of ROM!), se necesitar mucho tiempo antes
que podamos permitirnos esta cantidad de hardware para el control.
Afortunadamente, una parte pequea de esta tabla tiene informacin
nica, por ello su tamao puede reducirse manteniendo solamente las
filas con informacin nica -a costa de una decodificacin de
direcciones ms complicada. Esta construccin hardware se denomina
array de lgica programada (PLA) y reduce, esencialmente, el
hardware de 221 a 50 palabras, aunque incrementando la lgica de
decodificacin de direcciones.
Los programas de diseo asistido por computador pueden reducir,
an ms, los requerimientos hardware, minimizando el nmero de
minterms, que es esencialmente el nmero de filas nicas.
En mquinas reales, a veces es prohibitivo incluso un nico PLA, ya
que su tamao crece como el producto de las filas nicas por la suma
de las entradas y salidas. En tal caso, se factoriza una gran tabla en
varios PLA pequeos, cuyas salidas son multiplexadas para escoger el
control correcto.
Aunque parezca mentira, la numeracin de los estados del diagrama
de estados finitos puede marcar una diferencia en el tamao del PLA.
La idea aqu es tratar de asignar nmeros de estados similares a
estados que realicen operaciones similares. Diferenciar los patrones
de bits que representan el nmero del estado solamente en un bit digamos 010010 y 010011 - hace las entradas prximas para la
misma salida. Hay tambin programas de diseo asistido por
computador para ayudar a este problema de asignacin de estados.
Como los bits de la instruccin tambin son entradas al PLA de
control, stos pueden afectar la complejidad del PLA de la misma
manera que la numeracin de los estados. Por tanto, debe tenerse
cuidado cuando se seleccionen los cdigos de operacin, ya que
pueden afectar el coste del control.

UNIDAD DE CONTROL MICROPROGRAMADA (FIRMWARE)


Despus de construir en 1949 el primer computador de programa
almacenado, operativo a escala completa, Maurice Wilkes reflexion
sobre el proceso.
Las entradas/salidas eran fciles -los teletipos podan comprarse
directamente en la compaa de telgrafos. La memoria y el camino
de datos eran altamente repetitivos, y eso haca las cosas ms
simples. Pero el control no era fcil ni repetitivo, as que Wilkes trat
de descubrir una mejor forma de disearlo.
Su solucin fue convertir la unidad de control en un computador en
miniatura, que tuviera una tabla para especificar el control del camino
de datos y una segunda tabla para determinar el flujo de control al
nivel micra. Wilkes llam a esta invencin microprogramacin y
antepuso el prefijo micro a los trminos tradicionales utilizados a
nivel de control: microinstruccin, microcdigo, microprograma, etc.
(Para evitar confusiones, a veces se utiliza el prefijo macro para
describir el alto nivel, p. e., macroinstruccin y macroprograma.)
Las microinstrucciones especifican todas las seales de control del
camino de datos, ms la posibilidad de decidir condicionalmente qu
microinstruccin se debe ejecutar a continuacin. Como sugiere el
nombre de microprogramacin, una vez que se disean el camino
de datos y la memoria para las microinstrucciones, el control se
convierte bsicamente en una tarea de programacin; es decir, la
tarea de escribir un intrprete para el repertorio de instrucciones. La
invencin de la microprogramacin posibilit que el repertorio de
instrucciones pudiera cambiarse alterando el contenido de la memoria
de control sin tocar el hardware.
Esta versin emplea en lugar de la lgica de identificacin de estado
una memoria del microprograma, direccionable por medio de una
lgica de la direccin siguiente. Est basada en el hecho, de que
cualquier operacin primitiva
puede ser representada
por una
microinstruccin, almacenada en una memoria especial.
De acuerdo con este concepto, cualquier OP-CODE ser ejecutado
como una secuencia de microinstrucciones (microprograma),
extradas de una memoria.
Los fundamentos de microprogramacin de las unidades de control
fueron propuestos, como se indic antes, por Wilkes.
Entre las ventajas, que lo caracterizan cabe destacar una insuperable
flexibilidad del sistema y la reduccin de la lgica aleatoria.

A pesar de estas ventajas, la microprogramacin encontr una amplia


aceptacin solo ms tarde, cuando la tecnologa de los circuitos
integrados estaba suficientemente madura para fabricar memorias:
Rpidas: La ejecucin de una microinstruccin requiere acceso a la
memoria del microprograma. Cuanto ms corto es el tiempo, tanto
ms corto ser tambin el ciclo de la microinstruccin. Sin duda
alguna, el desarrollo de las memorias ROM y RAM rpidas jug un
papel
decisivo
en
la
fabricacin
de
las
computadoras
microprogramazas y microprogramabales.
Grandes: Memorias de alta integracin permiten estructurar
microinstrucciones de un formato ms amplio, la que redunda en una
decodificacin simple y rpida.

FUNCIONAMIENTO BSICO DE LA UNIDAD CENTRAL CPU.


Para que un sistema digital pueda ejecutar funciones complejas
(macrofunciones), tendr que poseer rganos (circuitos lgicos),
capaces de efectuar ciertas operaciones elementales (microfunciones)
y una unidad de control (mando) para dirigir por medio de seales de
habilitacin la secuencia de microfunciones, de acuerdo con una
macrofuncin dada.
Aplicando estas ideas a una computadora, los circuitos lgicos,
estructurados para implementar funciones primitivas, tales como la
suma binaria, operaciones booleanas, desplazamientos a la derecha o
a la izquierda, complemento, etc., estn concentradas en la unidad
aritmtica lgica ALU-. La unidad de control se encarga del manejo
de estos circuitos, como asimismo del trfico de la informacin dentro
del sistema.

MICROINSTRUCCIN, MICROPROGRAMA,
MACROINSTRUCCION (INSTRUCCIN DE MAQINA).
Se define en primer termino la microprogramacin como la
realizacin de las funciones de control dentro de un sistema digital,
almacenadas en una memoria, en forma de palabra binaria
(microinstrucciones).
La misin de la unidad de control consiste entonces en impartir
ordenes (microinstrucciones) tanto a los circuitos lgicos, como a los
rganos de almacenamiento y transmisin de datos, adems de
controlar su propio funcionamiento.
La generacin de las seales de control (habilitacin) es de
fundamental importancia, tanto para la correcta ejecucin de una
operacin primitiva, como para una compleja, tal como una
instruccin de mquina, que una vez decodificada, desencadena una
serie de microinstrucciones (microprograma) , que habilitan en forma
secuencial ciertos elementos del sistema que intervienen en la
macroinstruccin.
De esa manera, la unidad central CPU- se compone de un nmero
de elementos lgicos, que pueden ser activados por una secuencia de
seales de habilitacin, impartidas por la unidad de control.
Tomemos ahora como ejemplo la complementacin de un vector
binario, que actualmente se encuentra en el acumulador, como
muestra la figura siguiente:
Representacin funcional de una cpu

Esta operacin, representada por una sola instruccin de mquina


(macroinstruccin), requiere para su ejecucin los siguientes 5 pasos
elementales:
1.
2.
3.
4.
5.

Mover el vector del acumulador al bus de datos.


Mover el vector del bus de datos al complementador.
Activar la lgica del complementador.
Mover el vector al bus de datos
Mover el vector al acumulador.

Estas cinco microinstrucciones, ejecutadas por medio de 5 seales de


habilitacin, procedentes de la unidad de control, forman un
microprograma, cuya ejecucin es iniciada por una sola
macroinstruccin (instruccin de mquina).
Por consiguiente, entre los lenguajes de programacin rige el
siguiente orden jerrquico:

Lenguaje
Lenguaje
Lenguaje
Lenguaje

de
de
de
de

microprogramacin (microinstruccin).
mquina.
ensamblador.
alto nivel (Fortran, C, C++, etc.).

Aunque al hardware no le importe cmo se agrupen las lneas de


control de una microinstruccin, las lneas de control que realizan
funciones afines se colocan tradicionalmente juntas para mejor
comprensin. Los grupos de las lneas de control afines se denominan
campos y tienen nombres en un formato de microinstruccin.
La siguiente figura muestra un formato de microinstruccin con ocho
campos, cada nombre de campo refleja su funcin. La
microprogramacin puede considerarse la manera de suministrar el
patrn de bits adecuado a cada campo, muy parecido a la
programacin de macroinstrucciones el lenguaje ensamblador
Ejemplo de microinstruccin ejemplo con ocho campos

Fuente: (Hennessy, Patterson) Arquitectura de computadores

Como indica figura siguiente, se puede utilizar un contador de


programa para proporcionar la siguiente microinstruccin, pero
algunos computadores dedican un campo, en cada microinstruccin,
para la direccin de la siguiente instruccin. Algunos proporcionan
incluso mltiples campos de la direccin siguiente para manipular
saltos condicionales.
Una mquina microcodificada bsica

Fuente: (Hennessy, Patterson) Arquitectura de computadores

Aqu hay un incrementador y lgica especial para seleccionar la


siguiente microinstruccin. Hay dos aproximaciones para especificar
la siguiente microinstruccin: utilizar un contador de programa de
microinstrucciones, como muestra la figura, o incluir la direccin de la
siguiente microinstruccin en cada microinstruccin.
La memoria del microprograma a veces se denomina ROM porque la
mayor parte de las primeras mquinas utilizaron una ROM para
almacenar el control.
NOTAS
El uso de microprograma para la unidad de control requiere un
mnimo de hardware.
Existe una situacin intermedia en la cual algunas instrucciones son
alambradas y otras son microprogramazas, es as, que las
instrucciones de uso mas frecuente son alambradas, este tipo de
tecnologa la usaba AMD y algunas arquitecturas tipo RISC.
Los 386 de Intel eran totalmente programados, y los de AMD eran
algunas instrucciones eran programadas, por lo que la CPU AMD era
25% ms rpida que la de Intel trabajando con el mismo reloj.

BIBLIOGRAFIA
1.- PRINCIPLES OF COMPUTER ARCHITECTURE; Miles J. Murdocca,
Vincent P. Heuring; Copyright 1999 Prentice Hall.
2.- ARQUITECTURA DE COMPUTADORES
Un enfoque cuantitativo; John L. Hennessy, David A. Patterson;
McGRAW-HILL 1993
3.- Guide to RISC Processors for Programmers and Engineers;
Sivarama P. Dandamudi; 2005 Springer Science+Business Media, Inc.