Вы находитесь на странице: 1из 57

1.1.

1 Introduccin
La unidad de control es la seccin del computador encargada fundamentalmente, de interpretar las
instrucciones del programa y gobernar la ejecucin de las mismas, gestionando el modo en que se
controlan los diversos elementos del computador.
La unidad de control (U.C) genera todas las seales que forman el bus de control en funcin de la
informacin que dispone. sta labor puede descomponerse en las siguientes funciones
espec!ficas"
#$ %ecibir de la memoria el cdigo m&quina de la instruccin a ejecutar. 'ara la correcta
recepcin de instrucciones (ay que controlar al Contador de 'rograma, que es el registro que
carga al bus de direcciones para apuntar la siguiente instruccin del programa.
)$ *nterpretar y decodificar cada instruccin.
+$ Controlar la ejecucin de las instrucciones, generando las seales adecuadas en cada
momento para que los elementos de los restantes modelos (memoria, camino de datos y ,-)
act.en correctamente.
/$ 0ebe ser capa1 de resolver las situaciones anmalas y atender las interrupciones y la
comunicacin con los perif2ricos.
n la 3igura +.4 5# se representa de forma gr&fica las cone6iones de la unidad de control en el
entorno de la m&quina.
La Unidad de Control recibe desde la memoria, a trav2s del bus de datos, el cdigo m&quina de la
instruccin en curso que proviene de una posicin direccionada por el C'. 0ic(o cdigo se carga
en un registro especial denominado Registro de Instrucciones (RI).
La ejecucin de una instruccin no se puede reali1ar en un solo paso porque a menudo se utili1a
varias veces el mismo recurso. La ejecucin se lleva a cabo en varias fases que se consideran
operaciones elementales o microinstrucciones. Cada operacin elemental se reali1a en un
tiempo m&6imo de un ciclo de reloj, ra1n por la que e6iste un generador interno de impulsos de
reloj, que sincroni1a el trabajo de la m&quina.
0el mismo modo, la ejecucin de cada instruccin requiere reali1ar una serie acciones en cada
ciclo de reloj (contador de periodos) que se llevan a cabo por las seales de control7 estos pasos
se llaman operaciones elementales.
La funcin del C' se engloba dentro de la actividad fundamental de la unidad de control. n cuanto
finali1a una instruccin, el C' suelta su contenido para iniciar el proceso de ejecucin de la
siguiente. -lo (ay ciertas instrucciones de salto que rompen la secuencia ordenada al cargar en
el C' la direccin de una instruccin cualquiera.
UCP
Camino de datos
Bus de direcciones
Bus de datos
Unidad de control
Unidad de control
PC
PC
%8
%#
Banco de
registros
%n
%8
%#
Banco de
registros
%n
-LCC*9:
%;*-<%=
SP
SP
Sistema de E/S
Sistema de E/S
Memoria
Memoria
R. Estado
R. Estado
C
C
!U
3igura +.45#" Unidad de Control , >rquitectura de von :eumann
La unidad de control implementa en su interior un decodificador de instrucciones se encarga,
principalmente, de interpretar la instruccin almacenada en el registro de instrucciones de la UC. l
decodificador de instrucciones selecciona el inicio de las operaciones elementales que
corresponden a la instruccin en curso. Utili1a la siguiente informacin"
Cdigo de la operacin procedente de %egistro de *nstrucciones (%*).
stado de los seali1adores (Flags %).
:.mero de microinstrucciones ya reali1adas, para lo que se dispone de un Contador de
periodos.
stado de las l!neas de interrupcin y las de ,-.
3igura +.45)"
*nformacin
de la Unidad de Control
Unidad
de
control
Unidad Unidad
de de
control control
Cod. de "peracin
procedente de RI
Cod. de "peracin Cod. de "peracin
procedente de RI procedente de RI
Registro estado
(#lags)
Registro estado Registro estado
(#lags) (#lags)
Estado !$neas de
interrupcin % E/S.
Estado !$neas de Estado !$neas de
interrupcin % E/S. interrupcin % E/S.
Contador de Periodos Contador de Contador de Periodos Periodos
Se&ales
de
Control
Se&ales Se&ales
de de
Control Control
La ejecucin de cada instruccin se desarrolla en varias fases o microinstrucciones, en cada una
de las cuales se efect.an una o varias operaciones elementales. La duracin m&6ima de cada
operacin elemental es de un ciclo de reloj, tiempo en el cual debe completarse el trabajo de todos
los elementos que participan en ella.
1.1.' Control de las operaciones elementales
Las microinstrucciones en que se descompone una instruccin constan de varias operaciones
elementales.
'ara disear la Unidad de Control (ay que conocer perfectamente el repertorio de instrucciones
que tienen que interpretar as! como las operaciones elementales que se deben desarrollar en cada
microinstruccin.
Las operaciones elementales pueden ser de dos tipos"
#$ 0e transferencia de informacin.
)$ 0e procesamiento de la informacin.
"peraciones de trans(erencia
Consiste en esta)lecer caminos que unan dos elementos de almacenamiento y reali1ar la
transferencia cargando uno de ellos con el contenido del otro.
n la 3igura +.4 5+ se ilustra un esquema b&sico con tres elementos de almacenamiento (registros
>, ?, y C) que son capaces de cargarse con un dato desde el bus y que pueden volcar en el bus
su contenido mediante las correspondientes seales de control" !*registro+ (load@registroA) y
,*registro+ (transfer@registroA).
3igura +.45+" =peraciones de transferencia.
La copia del contenido del registro > en el registro C ser& una operacin de transferencia en la que
actuar&n dos seales de control" la de volcado en el bus de datos del contenido del registro >
(esta)lece un camino) y la de carga del registro C (almacenamiento de in(ormacin). >mbas
seales de control se pueden dar en el mismo ciclo de reloj siempre que se cumplan las siguientes
condiciones temporales"
-e debe esperar a que los datos se estabilicen en el bus de datos.
l dato debe estar presente en el bus todo el tiempo que sea necesario para que se
copie en el registro destino.
Como regla general vamos a admitir que las seales de control que establecen caminos son
activas por nivel, mientras que aquellas que almacenan informacin son activas por flanco.
%;*-<%= > L>
<>
L?
<?
%;*-<%= ? LC
<C
%;*-<%= C
BUS -E -,"S
n la 3igura +.4 5/ se ofrece el cronograma de esta operacin de transferencia.
3igura +.45/
0iagrama de tiempos de una operacin de transferencia.
"peracin de proceso
Una operacin de proceso es aquella en la que una determinada informacin pasa a trav2s de un
operador. n cierto sentido se puede decir que la informacin or!genes BfiltradaC por el operador
para obtener un resultado.
n la 3igura +.4 5D se ilustra un operador capa1 de escoger informacin de entre varios registros y
BfiltrarlaC de acuerdo a la operacin dada por las l!neas de seleccin. Las seales de control que se
activar&n para llevar a cabo esta operacin elemental son" seleccin de operando a trav2s de los
multiple6ores de entrada al operador (./ 0), seleccin de operacin (S1/ S1/2) y carga del
resultado en uno de los registros (!*registro+).
Las seales de control seleccionan los operandos y la operacin se puede considerar de
establecimiento de camino y, por tanto, ser&n activas por nivel. 'ara cargar el resultado en el
registro elegido es necesario tener en cuenta el tiempo de retardo del operador.
seales de control
<>
LC
tiempo
3igura +.45D =peraciones de 'roceso.
n la 3igura +.4 5E se da el cronograma correspondiente a una de estas operaciones elementales
del proceso.
3igura +.45E
0iagrama de tiempos de una operacin de proceso.
l diagrama de tiempos correspondiente a la operacin de suma de los operandos contenidos en
los registros > y 0 salvando el resultado en el registro C.
suma
carga del
registro C
seleccin de
operacin
seleccin
de
operandos
tiempo
.
0
!C
S1/ S1/ ...
seales de control
! !B !C !-
BUS -E -,"S
"PER-"R
S1/ S1/ ...
.
0
1.1.3 #ases de una Instruccin
La funcin de un computador es ejecutar instrucciones y la unidad de control es la seccin donde
se interpreta el cdigo m&quina y se generan las seales de control adecuadas en cada fase.
Las etapas principales en las que se descompone cualquier instruccin son +"
#$ 3>- 0 ?U-FU0> (3etc()
l 'C proporciona la direccin de la memoria donde se encuentra el cdigo m&quina de la
instruccin. -e lee y se deposita el contenido en el registro de instrucciones (%*).
M (CP) RI
)$ 3>- 0 0C=0*3*C>C*9:
Utili1ando el cdigo de operacin contenido en %*, m&s la informacin procedente de los
seali1adores, las interrupciones, el contador de periodos y las ,-, la unidad de control decide
qu2 instruccin corresponde ejecutar y las microinstrucciones que la componen. >s! se consigue
direccionar la memoria de control que contiene los valores de los vectores de salida de las
microinstrucciones.
+$ 3>- 0 GCUC*9:
-e procede a desarrollar la secuencia de microoperaciones correspondientes a la instruccin en
curso. -i e6iste n cdigos de operacin, (abr& n secuencias de microinstrucciones distintas. ( 4 B
)
#) Leer los operandos
)) %eali1ar la operacin
>ctuali1ar el registro de estado
+) >lmacenar el resultado
*:C%H:<= 0L C=:<>0=% 0 '%=;%>H>
n las m&quinas C*-C, el contador de programas slo podr& incrementarse una ve1 conocido el
tamao de la instruccin en curso dado que no todas las instrucciones ocupan lo mimo. La unidad
de control sabr& en cu&nto tiene que incrementar el contador de programa (C') una ve1 que (aya
reali1ado la decodificacin de la instruccin. 'or tanto, el incremento del C' se (ar& en la fase de
ejecucin, antes de la lectura de los operandos. 'or el contrario, en una m&quina %*-C todas las
instrucciones se basan en el mismo formato y tienen el mismo tamao por tanto, el incremento del
C' siempre se reali1ar& en la cantidad correspondiente al tamao de una instruccin de lenguaje
m&quina. s por eso por lo que el incremento del C' puede adelantarse a l fase de b.squeda de la
instruccin, (aci2ndose efectivo en la fase de decodificacin.
l contador de programa se actuali1a para"
*niciali1acin (La U.C le env!a la direccin 8888I y se carga en el C')
>puntar a la siguiente instruccin a ejecutar (incremento *:C) para H&q. %*-C.
-altos relativos (C' C' J despla1amiento (direccin de salto vienen de la UC)
-altos absolutos (la direccin de salto viene de la U.C y se carga en el C').
3>- 0 *:<%%U'C*9:
sta fase no la contemplan todos los autores, aunque s! est& presente en la ejecucin de las
instrucciones en cualquier computador.
>l completar cada instruccin, los procesadores que son capaces de aceptar interrupciones
e6ploran si e6iste alguna peticin de interrupcin pendiente de atender. 'or ejemplo, se (a pulsado
una tecla o se (a reali1ado una divisin por 8.
Las interrupciones se emplean para atender, prioritariamente, acontecimientos e6ternos al
computador. Cuando se produce uno de dic(os acontecimientos, se activa una de las patitas del
procesador, que origina la detencin de la ejecucin de la secuencia de instrucciones del programa
principal, para pasar a reali1ar una rutina especial, almacenada en una 1ona reservada de la
memoria, destinada a resolver el problema surgido. 3inali1ada la rutina de atencin a la
interrupcin, el procesador regresa al punto del programa principal donde se produjo la rotura de la
secuencia y contin.a normalmente.
1.1.5 Estructura de un computador elemental % se&ales de
control
studiaremos las seales de control que genera una unidad de control bas&ndonos en una
m&quina simplificada que sigue la >rquitectura de von :eumann.
3igura +.454 >rquitectura de von :eumann.
n la 3igura +.4 54 vamos a prescindir del bloque de ,- para simplificar el estudio. > dem&s de
los bloques e6pl!citamente indicados en la figura (ay que aadir una unidad de direccionamiento
para actuali1ar el contador de programa que forma parte de la propia unidad de control, tambi2n
aadir un bus de datos, bus de direcciones, bus de control.
UCP UCP UCP
Memoria
principal
Memoria Memoria
principal principal
Banco de registros
(CP/ PP/ ...)
Banco de registros Banco de registros
(CP/ PP/ ...) (CP/ PP/ ...)
Unidad
aritm6tico7lgica
Unidad Unidad
aritm6tico7lgica aritm6tico7lgica
Unidad
de control
Unidad Unidad
de control de control
Unidad de
entrada/salida
Unidad de Unidad de
entrada/salida entrada/salida
Bus de datos
RI
RI RI Sal datos
Sal datos Sal datos
Unidad de control Unidad de control Unidad de control
Contad.
(ases
Contad. Contad.
(ases (ases
R
-
R
-
R
-
Memoria
principal
Memoria Memoria
principal principal
RE
RE RE
Bus de direcciones
CP
CP CP
S' S' S'
C C C
Mu8 Mu8 . .
U! U!
Mu8 Mu8 0 0
S1 S1 S1
Banco
registros
Banco Banco
registros registros
E E E
Bus de control
Bus de control
E/S 999 E/S 999 E/S 999
3igura +.45K Computador elemental seg.n la arquitectura de von :eumann.
Memoria principal
l bloque de memoria principal consta de los siguientes elementos"
'astilla,s de memoria %>H.
%egistro para mantener la direccin dada por el bus de direcciones.
?uffer bidireccional para la cone6in al bus de datos.
-eales
n la 3igura +.4 5L se puede ver la intercone6in entre los distintos elementos.
?U- 0 0*%CC*=:-
?U- 0 0><=-
HH=%*>
'%*:C*'>L
HH
H%
HM
>L
H%
%eg. 0ir.
buffer bidireccional
?us de datos
3igura +.45L ?loque de memoria.
l buffer bidireccional podr!a implementarse con una puerta triestado de la siguiente manera"
Las seales de control son las siguientes"
-eal >ctivada por :ombre -ignificado
:H :ivel Hemory cti:a la pastilla de memoria
H% :ivel Hemory read Ciclo de lectura
HM :ivel Hemory Nrite Ciclo de escritura
>L 3lanco >rdes matc( enable Carga el registro de direcciones
MR ;i:el 555 ni:el alto los datos se :uelcan al )us< a
ni:el )a=o se leen del )us
<abla +.4O# -eales de control del bloque de memoria.
Los cronogramas de acceso a la memoria son los siguientes"
3igura +.45#8 Cronograma del ciclo de lectura.
3igura
+.45## Cronograma del ciclo de escritura.
0ir.
seales
tiempo
HH
>L
H%
HM
?us dirs
?us datos
0ato
seales
tiempo
HH
>L
H%
HM
?us dirs
0ir.
?us datos
0ato
La duracin de la seales H% y HM depende de la memoria, es decir, de sus tiempos de lectura y
escritura.
La duracin de la HH ser& la m!nima posible, es decir, la correspondiente al periodo b&sico de la
m&quina.
Banco de registros
l banco de registro consta de los siguientes elementos"
#E registros de propsito general accesibles al usuario desde el ensamblador o lenguaje
m&quina.
) puertas de salida que permiten leer ) registros simult&neamente ('uerto > -# y
'uerto ? -)).
La seleccin de ambos registros se efect.a mediante ) conjuntos de direcciones de /
bits (0*% > y 0*% ?) que provienen directamente de la unidad de control.
# puerta de entrada () que permite cargar un registro desde el bus de datos7 se
direcciona con el bloque direccin > y la carga se efect.a mediante la correspondiente
seal de control (L%).
n la 3igura +.4 5#) se puede observar la intercone6in entre estos elementos.
3igura
+.45#) ?anco de registros.
?U- 0 0*%CC*=:-
?U- 0 0><=-
?>:C= 0 %;*-<%=-
'uerto entrada
'uerto > 'uerto ?
#E registros
/ bits
/ bits
0*%. > 0*%. ?
L%
de la UC
de la UC
a la >LU a la >LU
Se&al
cti:a
por
;om)re Signi(icado
L% 3lanco Load register
Carga el registro
indicado por
0*%. > con un
dato del bus de
datos
0*%>
0*%?
:ivel
-eleccionan uno
de los registros
del banco

Las seales de control son las siguientes"
P
<abla +.4O) -eales de control del banco de registros.
Cuando se carga un dato en un registro este mismo dato aparece en la puerta de salida > una ve1
cumplido el tiempo de retardo correspondiente.
Unidad aritm6tico7lgica.
La unidad aritm2tico5lgica consta de los siguientes elementos"
Un operador aritm2tico lgico con / seales de control para seleccin de la operacin a
reali1ar7 se BalimentaC a trav2s de ) multiple6ores de + posibles operandos en ambas
entradas Q e R.
) multiple6ores de + entradas y # salida que seleccionan entre los posibles operandos y
que se gobiernan con las seales de control Q8, Q# y R8, R# respectivamente.
Un registro acumulador que permite almacenar resultados intermedios.
La salida del registro acumulador puede estar presente en el operando Q, en el bus de
datos o en el bus de direcciones seg.n marquen las seales de control.
La 3igura +.4 5#+ muestra el diseo indicado m&s arriba. =bs2rvese como la propia unidad
aritm2tico5lgica va a servir para actuali1ar el contador de programa ya que uno de los posibles
operandos es C'. ste aspecto se encuentra descrito en el apartado de la unidad de
direccionamiento.
?U- 0 0><=-
?U- 0 0*%CC*=:-
Hultiple6or R
U!
Hultiple6or Q
Q R
de ? de ? de > del C'
>cumul.
@-8, ...-+A
@Q8, Q#A
@R8, R#A
L>C
0<
><
3igura +.45#+ Unidad aritm2tico5lgica.
Las seales de control >< y 0< que permiten volcar el contenido del registro acumulador en los
buses de direcciones y datos respectivamente pueden ser implementadas con buffer triestado.
3!sicamente, estos dispositivos permanecen en estado de alta impedancia mientras est&n inactivos
separando el2ctricamente los buses de los elementos que tienen conectados a la entrada. Cuando
son activados establecen un camino el2ctrico entre la entrada y la salida.
Las seales de control del bloque de la >LU son las siguientes"
<abla +.4O+ -eales de control del banco de registros.
Unidad de direccionamiento
La unidad de direccionamiento se encarga de generar las direcciones de memoria en la secuencia
de ejecucin de un programa.
st& directamente relacionada con el contador de programa (C') y debe contar con un sumador
para calcular la direccin a la que se accede tras una bifurcacin (en este caso, el sumador ser& el
mismo operador de la U>L).
0ado que el contenido del C' debe salvarse y restaurarse siempre que se ejecute una subrutina
(an de ser posibles de alg.n modo las transferencias entre este registro y el bus de datos.
-upondremos que nuestra m&quina tiene la misma Banc(uraC en ambos buses y en sus registros.
6isten diferentes soluciones para el diseo de esta unidad de direccionamiento. n la 3igura +.4
5#/ se muestra una posible solucin en la que se cumplen los requerimientos e6plicados
anteriormente. l contador de programa se carga siempre desde el bus de datos ya sea al arrancar
el computador como al retornar de una subrutina. -u contenido se puede volcar directamente en el
bus de direcciones e indirectamente en el bus de datos a trav2s de la U>L. 3inalmente, los
c&lculos que se realicen para obtener una nueva direccin se pueden volcar en ambos buses de
forma que se genere una direccin de memoria y a la ve1 se cargue dic(a nueva direccin en el
registro contador de programa.
Se&al
cti:a
por
;om)re Signi(icado
-8...-+ :ivel Selection
-elecciona la
operacin a reali1ar
Q8, Q# :ivel ---
-elecciona uno
entre + operandos
R8, R# :ivel ---
-elecciona uno
entre + operandos
L>C 3lanco Load acumulator
Carga el
acumulador con la
salida del operador
0< :ivel Data transfer
<ransfiere el
acumulador al bus
de datos
>< :ivel Address transfer
<ransfiere el
contenido del
acumulador al bus
de direcciones
3igura +.45#/ Unidad de direccionamiento.
Las seales de control para la unidad de direccionamiento son las siguientes"
<abla
+.4O/ -eales de control en la unidad de direccionamiento.
?U- 0 0><=-
Hultiple6or Q Hultiple6or R
U!
Q R
de ? de ?de >
del >C
>C
de ?.0at.
C'
@R8, R#A
L>C
><
L'C
0?< 'C<
?U- 0 0*%CC*=:-
@Q8,Q#A
0<
Se&al
cti:a
por
;om)re Signi(icado
L'C 3lanco
Load program
counter
Carga una direccin
nueva en el C'
desde el bus de
datos
0?< :ivel
Data bus
transfer
<ransfiere el
contenido del bus
de datos al bus de
direcciones
'C< :ivel
Program
counter transfer
<ransfiere el
contenido del
registro C' al bus
de direcciones
Las funciones que reali1a la unidad de direccionamiento con el C' son las siguientes"
*niciali1acin (La U.C le env!a la direccin de inicio al bus de datos por el puerto 0*< y
se carga en el C' activando la seal CC')
-altos relativos (C' C' J despla1amiento (direccin de salto vienen de la UC) la
direccin que esta en el C' se carga en la >LU y la direccin de salto enviada por la UC
que est& en el bus de datos, se carga en la >LU para sumarse y el resultado se deja en
el acumulador activando la seal L>C. Luego se transfiere el resultado al bus de datos
activando la seal ><. 'osteriormente se carga en el C' activando la seal L'C.
-altos absolutos (la direccin de salto viene de la U.C y est& en el bus de datos y se
carga en el C' activando la seal LC').
>puntar a la siguiente instruccin a ejecutar. Como el C' no cuenta con un dispositivo
propio que realice un incremento autom&tico, el incremento del C' se reali1a utili1ando
la misma U>L, de las que dispone la m&quina para reali1ar operaciones aritm2ticas y
lgicas, colocando en el bus de datos la cantidad a la que se desea incrementar el C' y
operando de forma similar a como se (acen los saltos relativos.
Unidad de control
La unidad de control genera todas las seales de control que se (an ido viendo en el resto de
bloques. stas seales forman el )us de control.
>dem&s de generar seales de control necesita una serie de registros au6iliares propios que le
ayuden al gobierno del computador. stos registros y sus seales de control son"
Bu((er de instrucciones/ donde almacena varios bytes de cdigo m&quina
correspondiente a una secuencia de instrucciones. n el caso m&s sencillo almacenar&
solamente una instruccin. ste buffer se carga a trav2s de un puerto llamado Bentrada
de instruccionesC cuando se activa la seal L*.
6iste un puerto de salida que vuelca en el bus de datos aquellos datos inmediatos o
despla1amientos que llevan asociados algunas instrucciones. -u seal de control se
llama 0*<.
Registro de estado que contiene los flags. ste registro se carga selectivamente con
varias seales de control activas por flanco y provenientes de la >LU. -u cone6in con
la >LU no es sencilla por lo que se (a indicado tan solo una seal de control" L3lags.
La unidad de control tambi2n posee un registro contador de (ases o per$odo
gobernado por el reloj del sistema y que se puede poner a 8 con la seal %-<. -e
encarga de la tempori1acin de todas las seales que genera dic(a unidad de control.
3inalmente, encontramos dos )uses de 5 )its que sirven para generar las seales de
seleccin de registro (0*% > y 0*% ?) en el banco de registros del computador. 0ic(as
seales provendr&n de la decodificacin de las instrucciones.
n la 3igura +.4 5#D se pueden ver todos estos elementos y su intercone6in para dar lugar a la
unidad de control de nuestro computador elemental.
Las seales de control son las siguientes"
<abla +.4OD -eales de control de la propia unidad de control.
3igura +.45#D Unidad de control.
Sisto esto, el computador elemental que (emos diseado bas&ndonos en la arquitectura de von
:eumann queda tal como se puede ver en la 3igura +.4 5#E. %ecordemos que en su diseo se (a
omitido todo lo que tiene que ver con el bloque de ,- y que se estudiar& con m&s detalle en el
<ema 4.
La arquitectura de este computador elemental va a determinar el juego de instrucciones, los modos
de direccionamiento, el n.mero de ciclos de reloj que ocupa la ejecucin de cada instruccin y la
programacin de aplicaciones entre otros aspectos. 'or ejemplo, una limitacin que salta a simple
vista es la imposibilidad de transferir el contenido de un registro directamente a memoria7 es
necesario pasar por la >LU y (acerlo desde el acumulador.
<ambi2n es importante recordar cmo las seales de control que establecen caminos son activas
por nivel, mientras que las que almacenan informacin son activas por flanco.
U;I-- -E C";,R"!
?U- 0 0*%CC*=:-
?U- 0 0><=-
seales de control
-alida de despla1amientos
o datos inmediatos
ntrada de
instrucciones
Contador
de fases
0irecciones
de registros
0*% >
0*% ?
=-C*L>0=%
reloj
L*
0*<
%egistro de estado (3lags)
L3lags
%-<
>l ?anco de %egistros
Se&al
cti:a
por
;om)re Signi(icado
L* 3lanco Load instruction Carga una instruccin desde el bus de datos
0*< :ivel Data im. transfer <ransfiere un dato inmediato o un despla1amiento al bus de datos
L3lags 3lanco Load flags Carga los flags despu2s de una instruccin aritm2tica o lgica
%-< 3lanco Reset 'one a 8 el contador de fases

?U- 0 0*%CC*=:-
?U- 0 0><=-
HUQ Q HUQ R
U!
Q R
>CUHUL>0=%
CP
MEM"RI
PRI;CIP!
HH
H%
HM
>L
H%
'uerto > 'uerto ?
B;C" -E RE>IS,R"S
#E registros
/ bits / bits
0*%. > 0*%. ?
L%
'uerto entrada
%egistro de estado
seales de control
U;I-- -E C";,R"!
->L*0> 0 0-'L>T>H*:<=-
= 0><=- *:H0*><=-
%egistro de *s. Contador
de fases
0*%CC*=:- 0 %;*-<%=-
=-C*L>0=%
reloj
@Q8, Q#A @R8, R#A
@-8,...-+A
>CUHUL>0=% L>C
0<
>< 0?<
L'C
'C<
0*%CC*9: >
0*%CC*9: ?
L*
0*<
%-<
L3lags
Cdigo de operacin %egistro %egistro
-- B
#D K 4 4 + 8
3igura +.45#E Computador lemental.
1.1.? E=ecucin de una Instruccin
'ara estudiar el funcionamiento din&mico de la unidad de control vamos a ejecutar algunas
instrucciones b&sicas en el computador que acabamos de disear.
-e ver&n las acciones a seguir y su descomposicin en operaciones elementales y posteriormente
su tempori1acin en cronogramas.
> continuacin se mostrar& las fases de una instruccin"
3>- ?U-FU0> (3<CI)
M (CP) RI
C' ?.0ir %eg. 0ir.
<C' C%0
Leer de la memoria 'rincipal (optengo la *nstruccin) HH H%
Cargar el %eg. *nstrucciones (UC) L*
*ncrementar el Contador de programa (C') *:C (*ncrementa C' y almacena el
resultado incrementado).
0C=0*3*C>C*9:
GCUC*9:
4 B (>00 >, ?)
0*%P> (?) Hu6 Q
Q#58
0*%P? (>) Hu6 R
R#58
-85-+ (J) >C
L>C
Lflags (cargar el registro de estado).
>C ?us 0atos ?% (ntrada BC)
0< 0*%P> (>)
L%
'8 V 8 (contador de fases o per!odo le aplicamos el reset)
>qu! termina la aplicacin de las fases de una instruccin.
E=ecucin de -- / B
Seamos la suma en modo de ejecucin registro5registro.
l formato de la instruccin es el siguiente"
> continuacin se describe paso a paso, operacin elemental a operacin elemental, el proceso
completo de ejecucin de la instruccin. -e (a incluido tambi2n la fase de 3etc( y la actuali1acin
del contador de programa.
n incrementar C'" (la UC tiene que decodificar la instruccin y esto es igual a un retardo).
n la 3igura +.4 5#4 se muestra el cronograma correspondiente a esta secuencia de operaciones
elementales.
CCI@; "PERCI@; E!EME;,!
SEA! -E
C";,R"!
,raer instruccin"
0ireccionar
Leer instruccin
C' bus direcciones
Cargar registro de direcciones
Ciclo de memoria
Lectura
Cargar instruccin en la Unidad de Control (UC)
'C<
>L (desactivar)
HH
H%
L* (desactivar)
-ecodi(icacin" %etardo (# periodo)
Incrementar CP"
-umar C'J)
Cargar nuevo C'
La UC entrega el ) al bus de datos
-eleccin de operandos y de operacin
(simult&neamente)
Carga del acumulador
<ransferencia al bus de datos
Carga del nuevo C'
0*<
Q8, Q# (?.0atos),
R8, R# (C'),
-8..-+ (suma)
L>C (desactivar)
0<
L'C (desactivar)
CCI@; "PERCI@; E!EME;,!
SEA! -E
C";,R"!
RealiBar suma"
=btener direcciones registros
%eali1ar la suma
La UC genera las direcciones de los
registros > y ?
-eleccin de operandos y de operacin
(simultaneamente)
Carga del acumulador
0*% > (registro ?),
0*% ? (registro >)
Q8, Q# (salida ?),
R8, R# (salida >),
-8, ...-+ (suma)
L>C (desactivar)
>uardar resultado"
<ransferir dato del acumulador
Cargar registro >
<ransferencia al bus de datos
La UC genera direccin del registro>
-eal de carga
0<
0*% > (registro >)
L% (desactivar)
ctualiBar registro de estado"
L3lags
Poner a 1 el contador de (ases"
%-<
3igura +.45#4 Cronograma de >00 >, ?.
Samos a (acer algunos comentarios a este cronograma"
-i el tamao del bus de datos es de # byte, la fase de fetch solamente trae # byte7 en
ese caso tendr!amos que reali1ar dos accesos a memoria para traer la instruccin
entera.
l periodo / se BpierdeC en decodificar (BentenderC) la instruccin7 es parte del tiempo de
ejecucin de la instruccin.
Los periodos D y E de actuali1acin del C' se podr!an a(orrar diseando una
arquitectura en la que la unidad de direccionamiento contara con un sumador aparte,
distinto de la >LU. n ese caso la actuali1acin del C' y la fase de Fetch serian
simult&neas.
*gualmente, la actuali1acin de C' llevar!a un per!odo menos si los resultados de la
>LU se volcaran directamente al bus de datos o direcciones sin pasar por el registro
acumulador.
seales
MEM
!E
MR
MC
relo=
PC,
!I
-I,
.1/ .1
01/ 01
S1/ ...S3
!C
-IRECCI@; B
periodo # periodo ) periodo + periodo /. periodo D periodo E periodo 4 periodo K
!#lags
RESE,
!R
-,
-IRECCI@;
,
!PC
puerto >
registro >
puerto ?
registro ? registro >
suma
?.0atos
C'
suma
Fase de fetch Actualizacin CP Decodif. Ejecucin
-e puede optimi1ar el funcionamiento si (acemos que antes de terminar de ejecutar la
instruccin se empiece la fase de fetch de la siguiente. Iay que tener cuidado con los
posibles conflictos en los buses (ver 3igura +.4 5)8).
3igura +.45#K Cronograma de >00 >, ? (solapamiento del final de la actuali1acin del C' con la
operacin de suma).
n la 3igura +.4 5#L se reali1a una mejora iniciando la b.squeda de la siguiente instruccin
(solapando la fase de fetch de la siguiente)
La operacin ptima est& en el formato fijo es decir que todas las instrucciones ocupen lo mismo.
n este caso, no ser!a necesario esperar a la codificacin ya adelantamos7 un ejemplo de este
computador son las %*-C. (Ser la 3igura +.4 5)8).
seales
MEM
!E
MR
MC
relo=
PC,
!I
-I,
.1/ .1
01/ 01
S1/ ...S3
!C
-IRECCI@; B
periodo # periodo ) periodo + periodo /. periodo D periodo E periodo 4
!R
-,
-IRECCI@;
,
!PC
puerto >
registro >
puerto ?
registro ? registro >
suma
?.0atos
C'
suma
Fase de fetch Actualizacin CP Decodif.
Ejecucin
!#lags
RESE,
3igura +.45#L Cronograma de >00 >, ? (Hejora al rendimiento por inicio anticipado de una nueva
fase de Fetch).
seales
MEM
!E
MR
MC
relo=
PC,
!I
-I,
.1/ .1
01/ 01
S1/ ...S3
!C
-IRECCI@; B
periodo # periodo ) periodo + periodo /. periodo D periodo E periodo 4
!R
-,
-IRECCI@;
,
!PC
puerto >
registro >
puerto ?
registro ? registro >
suma
?.0atos
C'
suma
Fase de fetch Actualizacin CP Decodif.
Ejecucin
!#lags
RESE,
3igura +.45)8 Cronograma de >00 >, ? (Hejora al rendimiento suponiendo que todas las
instrucciones se basan en el mismo formato).
E=ecucin de M"D / *B4-ESP!EMIE;,"+.
Seamos una instruccin de transferencia con direccionamiento directo relati:o a registro. La
operacin que reali1a es" @?J0-'L>T>H*:<=A >.
l formato de la instruccin es el siguiente"
seales
MEM
!E
MR
MC
relo=
PC,
!I
-I,
.1/ .1
01/ 01
S1/ ...S3
!C
-IRECCI@; B
periodo # periodo ) periodo + periodo /. periodo D periodo E
!R
-,
-IRECCI@;
,
!PC
puerto >
registro >
puerto ?
registro ? registro >
suma
?.0atos
C'
suma
Fase de fetch
Actualizacin CP
Decodif. Ejecucin
!#lags
RESE,
%egistro %egistro Cdigo de operacin
M"D B
+# )/ )+ )8 #L #E #D 8
despla1amiento
La 3igura +.4 5)# correspondiente a esta secuencia de operaciones elementales.
CCI@; "PERCI@; E!EME;,!
SEA! -E
C";,R"!
,raer instruccin"
0ireccionar
Leer instruccin
C' bus direcciones
Cargar registro de direcciones
Ciclo de memoria
Lectura
Cargar instruccin en la Unidad de Control (UC)
'C<
>L (desactivar)
HH
H%
L* (desactivar)
-ecodi(icacin" %etardo (# periodo)
Incrementar CP"
-umar C'J/
Cargar nuevo C'
La UC entrega el / al bus de datos
-eleccin de operandos y de operacin
(simult&neamente)
Carga del acumulador
<ransferencia bus de datos
Carga del nuevo C'
0*<
Q8, Q# (?.0atos),
R8, R#,(C'),
-8, ..., -+ (suma
L>C (desactivar)
0<
L'C (desactivar)
CCI@; "PERCI@; E!EME;,!
SEA! -E
C";,R"!
Calcular direccin operando (uente"
-eleccin de sumandos (?J0-'L.)
-umar
La UC entrega 0-'L. al bus de datos
La UC genera la direccin del registro ?
-eleccin de operandos y de operacin
Carga del acumulador
0*<
0*% > (%eg.?)
Q8, Q# (?.0at.),
R8, R# ('to. >),
-8, ..., -+ (suma)
L>C (desactivar)
>uardar resultado"
Solcar al bus de datos el operando
fuente
Cargar registro
<ransferencia del >C al bus de direcciones
Cargar registro de direcciones
Ciclo de memoria
Lectura
La UC genera la direccin del registro >
-eal de carga del registro
><
>L (desactivar)
HH
H%
0*% > (%eg. >)
L% (desactivar)
Poner a 1 el contador de (ases"
%-<
-IRECCI@;
-IRECCI@; B
MEM
!E
MR
MC
PC,
!I
-I,
.1/ .1
01/ 01
S1/ ...S3
!C
,
bus de
datos
suma
puerto >
registro ? registro >
relo=
seales
!R
RESE,
!PC
-,
C'
bus de
datos
suma
3igura +.45)# Cronograma de H=S >, @?J0-'L>T>H*:<=A.
E=ecucin de FE E,IGUE,
> continuacin mostramos la ejecucin de una instruccin de salto y codificamos, siempre se
llevan dos diagramas para estas instrucciones" (ver 3igura +.4 5)))
-i (T V 8) entonces C' C' J#
-i (T V #) entonces C' tiqueta.
3igura +.45)) Cronograma de ejecucin de una instruccin de salto.
1.1.H -ise&o de la unidad de control
Ra (emos visto que la UC trabaja con la informacin dada por el cdigo de operacin de la
instruccin, el estado del sistema y las seales de E/S y, todo ello, al ritmo marcado por el
contador de (ases o contador de periodos. -i el contador de fases se ve como una fuente m&s de
informacin, la unidad de control podr!a considerarse una Bcaja negraC que genera como salida las
seales de control en funcin de una entrada gen2rica conocida como informacin.
0esde este punto de vista la unidad de control es slo un circuito combinacional que traduce la
informacin generando una BpalabraC de seales de control.
Cronograma de FE EtiIueta/ condicin de no salto Cronograma de FE EtiIueta/ condicin de salto
(salto relativo al C')
l cdigo m&quina de la instruccin ocupa #E bits
,71
se&ales
MC
!I
tiempo
periodo # periodo ) periodo + periodo / periodo D periodo E periodo 4
relo=
-I,
RESE,
C' 01/ 01
-IR
-IR B
,
!R
!#lags
PC,
MEM
!E
MR
decodificacin
y
evaluacin de la condicin de salto
S17S3 J
!C
-,
!PC
.1/ .1 )
se&ales
MC
!I
tiempo
periodo # periodo ) periodo + periodo / periodo D periodo E periodo 4
relo=
-I,
RESE,
C' 01/ 01
-IR
-IR B
,
!R
!#lags
PC,
MEM
!E
MR
decodificacin
y
evaluacin de la condicin de salto
S17S3 J
!C
-,
!PC
.1/ .1 tiq.
3igura
+.45)+ *nterpretacin de la unidad de control como Bcaja negraC.
0isear este circuito es definir todas las posibles salidas en funcin de las posibles entradas.
WCu&l es la dimensin de este programaX -upongamos las siguientes condiciones"
Guego de #)K instrucciones 4 bits.
jecucin de cada instruccin en un m&6imo de +) periodos D bits.
-in tener en cuenta estado ni ,-.
Un computador normal cuenta con m&s de #D8 seales de control.
<=<>L *:3=%H>C*9: V #) bits V /8LE combinaciones posibles para una media de #D8 seales
de control.
6isten dos m2todos de diseo"
Unidad de control mediante lgica ca)leada (lgica cableada).
Unidad de control microprogramada (Consiste en almacenar las distintas BpalabrasC de
control correspondiente a cada periodo en memoria. ;enerar seales de control es leer
posiciones de memoria).
Cada BpalabraC de control (conjunto de seales de control) se llama microinstruccin y las
unidades de control diseadas as! se conocen como unidades de control microprogramadas.
Un conjunto de microinstrucciones es un microprograma encargado de ejecutar una determinada
instruccin. l conjunto de microprogramas que ejecutan las instrucciones se llama firmware o
microcdigo.
La unidad de control microprogramada se usa para maquinas C*-C. (8888##8#8#).
La unidad de control cableada se utili1a en maquinas %*-C. (3lip5flop y puertas lgicas).
l 'entium esta construido con una unidad de control cableada pero por compatibilidad binaria con
anteriores computadores iK86KE, el juego de instrucciones es C*-C. 'or tanto, 'entium reali1a una
traduccin de las instrucciones C*-Cs a instrucciones %='- (%educe =perations), que son las que
interpreta la unidad de control cableada.
I;S,RUCCI@;
ES,-"
,-
U;I--
-E
C";,R"!
SEA!ES -E
C";,R"!
C";,-"R
-E #SES
UC ca)leada
(lgica cableada)
H2todo tradicional de diseo lgico
(utili1ando flip5flops)
jemplos"
>lp(a )##E/, )#)E/, >H0 YE,
'entium
S:<>G>-"
Circuito m&s r&pido que el de lgica
almacenada
*:C=:S:*:<-"
Huy laborioso de disear
UC microprogramada
(lgica almacenada)
>lmacena, en memoria de control, las
seales de control correspondientes
a cada periodo de ejecucin de una
instruccin
jemplos"
Computadores C*-C
K86KE
*:C=:S:*:<-"
H&s lentas
1.1.J E=ercicios de la Unidad de Control
EFERCICI" 1K
-e dispone de una computadora que consta, entre otros, de los siguientes elementos"
>LU que se alimenta de dos entradas y permite reali1ar #E operaciones.
Contiene un registro para almacenar resultados temporales.
?% de #E registros, con un puerto de entrada y un puerto de salida.
C' con posibilidad de auto incremento y conectado al registro de direcciones.
Hemoria principal de E/8 Ybytes, organi1ada en palabras de +) bits.
-e considerar& que las lecturas y escrituras en memoria se reali1an en dos periodos de
reloj.
<anto el bus de datos como el bus de direcciones, son de +) bits.
-e quiere que la C'U ejecute la siguiente instruccin de una palabra" -U? >, @? J #888 (A
sta instruccin reali1a la siguiente operacin" > > 5 H (? J #888 ()
a) 0escribir las operaciones elementales que se reali1an en cada una de las fases necesarias
para ejecutar la instruccin.
b) %eali1ar el cronograma correspondiente a la anterior secuencia de operaciones elementales.
EFERCICI" 'K
-e dispone de una computadora que consta, entre otros, de los siguientes elementos"
>LU que se alimenta de dos entradas y permite reali1ar K operaciones" J, ,
despla1amiento aritm2tico a la i1quierda y a la derec(a, >:0, =%, Q=% y
despla1amiento lgico a la derec(a.
?% es de #E registros, con un puerto de entrada y un puerto de salida.
Contador de programa con posibilidad de auto incremento.
Hemoria principal de E/8 Ybytes, organi1ada en palabras de +) bits.
<anto el bus de datos como el bus de direcciones, son de +) bits.
Bus de datos
Bus de
direcciones
-alida dato
-alida dato
Banco de registros
ntrada dato
ntrada dato
!R
Contador de
fases
Contador de
fases
%egistro de
instrucciones
%egistro de
instrucciones
-alida despla1amientos
o datos inmediatos
-alida despla1amientos
o datos inmediatos
Unidad de control
Unidad de control
%. de estado
%. de estado
=scilador
=scilador
!#lags
RESE,
SE!LRE>
!I
-eales de control
-I,
,
<emporal
<emporal
!,MP
,MP,
!U
*S1/.../S3+
Memoria
principal
Memoria
principal
%
.

d
i
r
e
c
c
i
o
n
e
s
%
.

d
i
r
e
c
c
i
o
n
e
s
MEM
MR
MC
?uffer de datos
?uffer de datos
MR

!
E
CP,
CP
CP
!CP
I;C
l formato de todas las instrucciones de la m&quina ocupa una palabra.
-e quiere que la C'U ejecute la instruccin HUL >Q, @>QJ CQ J #888 (A, que reali1a la siguiente
operacin" >Q >Q 6 H (>Q J CQ J #888 ()
a) 0escribir las operaciones elementales que se reali1an en cada una de las fases necesarias
para ejecutar la instruccin.
b) %eali1ar el cronograma correspondiente a la anterior secuencia de operaciones elementales,
especificando sobre 2ste, dnde comien1a y dnde finali1a cada una de las fases.
EFERCICI" 3K
-e dispone de una computadora que consta, entre otros, de los siguientes elementos"
>LU que se alimenta de dos entradas y permite reali1ar #E operaciones.
Contiene un registro para almacenar resultados temporales.
?anco de registros de #E registros, con un puerto de entrada y un puerto de salida.
Contador de programa con posibilidad de auto incremento.
Hemoria principal de E/8 Ybytes, organi1ada en palabras de +) bits.
-e considerar& que las lecturas y escrituras en memoria se reali1an en dos periodos de reloj.
<anto el bus de datos como el bus de direcciones, son de +) bits.
-e quiere que la C'U ejecute la siguiente instruccin de una palabra" >00 @?Q J #888 (A, >Q
sta instruccin reali1a la siguiente operacin" H (?Q J #888 () H (?Q J #888 () J >Q
a) 0escribir las operaciones elementales que se reali1an en cada una de las fases necesarias
para ejecutar la instruccin.
b) %eali1ar el cronograma correspondiente a la anterior secuencia de operaciones elementales.
!U
*S1/.../S'+
Bus de datos
Bus de
direcciones
Contador de
fases
Contador de
fases
%egistro de
instrucciones
%egistro de
instrucciones
-alida despla1amientos
o datos inmediatos
-alida despla1amientos
o datos inmediatos
Unidad de control
Unidad de control
%. de estado
%. de estado
=scilador
=scilador
!#lags
RESE,
SE!LRE>
!I
-eales de control
-I,
-alida dato
-alida dato
Banco de registros
ntrada dato
ntrada dato
!R ,
-,
<emporal
<emporal
!,MP
,MP,
!U,
Bus 1
CP,
CP
CP
!CP
I;C
Memoria
principal
Memoria
principal
%
.
d
i
r
e
c
c
i
o
n
e
s
%
.
d
i
r
e
c
c
i
o
n
e
s
MEM
MR
MC
?uffer de datos
?uffer de datos
MR

!
E
EFERCICI" 5K
-e dispone de un computador que consta, entre otros, de los siguientes elementos"
>LU que se alimenta a trav2s de dos multiple6ores, que permiten seleccionar el origen
de los operandos, y es capa1 de reali1ar #E operaciones.
Contiene un registro acumulador para almacenar resultados temporales, adem&s de un
registro temporal, ambos transparentes al usuario, es decir, que no se pueden direccionar desde
las instrucciones m&quina.
?anco de #E registros con dos salidas > y ?, y un puerto de entrada.
C' con posibilidad de auto incremento y de carga del contenido del bus de datos.
Hemoria principal, organi1ada en palabras de +) bits.
-e cuenta con la posibilidad de transferir el contenido del ?0 al ? de direcciones.
Los buses son de +) bits.
l formato de las instrucciones se (a diseado de forma que todas ocupan +) bits.
Bus de datos
Bus de
direcciones
-alida dato
-alida dato
Banco de registros
ntrada dato
ntrada dato
!R
Contador de
fases
Contador de
fases
%egistro de
instrucciones
%egistro de
instrucciones
-alida despla1amientos
o datos inmediatos
-alida despla1amientos
o datos inmediatos
Unidad de control
Unidad de control
%. de estado
%. de estado
=scilador
=scilador
!#lags
RESE,
SE!LRE>
!I
-eales de control
-I,
,
<emporal
<emporal
!,MP
,MP,
!U
*S1/.../S3+
Memoria
principal
Memoria
principal
%
.
d
i
r
e
c
c
i
o
n
e
s
%
.
d
i
r
e
c
c
i
o
n
e
s
MEM
MR
MC
?uffer de datos
?uffer de datos
MR
CP,
CP
CP
!CP
I;C

!
E
-e quiere que la C'U ejecute la siguiente instruccin de una palabra" >00 direccin, @>A, @?J#888A
sta instruccin reali1a la siguiente operacin" H (dir) H (?J#888)JH(>).
a) 0escribir, a nivel de operaciones elementales, el proceso completo de ejecucin de la
instruccin.
b) %eali1ar el cronograma correspondiente a la anterior secuencia de operaciones elementales.
EFERCICI" ?K
-e dispone de una computadora que consta, entre otros, de los siguientes elementos"
>LU que se alimenta a trav2s de dos multiple6ores, que permiten seleccionar el origen
de los operandos, y es capa1 de reali1ar #E operaciones.
Contiene un registro acumulador para almacenar resultados temporales, adem&s de un
registro temporal, ambos transparentes al usuario.
?anco de #D registros con dos salidas > y ?, y un puerto de entrada.
Contador de programa con auto incremento y de carga desde del bus de datos.
Hemoria principal de #E Hbytes.
-e cuenta con la posibilidad de transferir el contenido del bus de datos, al bus de
direcciones.
Los buses son de +) bits, y la memoria se organi1a en palabras de +) bits.
l formato de las instrucciones se (a diseado de forma que todas ocupan +) bits.
-e quiere que la C'U ejecute la siguiente instruccin de una palabra" SUB / B
sta instruccin reali1a la operacin" > > 5 ?.
>dem&s, se considerar& que las lecturas y escrituras en memoria se reali1an en dos periodos de
reloj.
?us de datos
?us de
direcciones
-alida >
-alida >
-alida ?
-alida ?
Banco de registros
ntrada >
ntrada >
!R
Memoria
principal
Memoria
principal
%
.

d
i
r
e
c
c
i
o
n
e
s
%
.

d
i
r
e
c
c
i
o
n
e
s
MEM
MR
MC
?uffer de datos
?uffer de datos
MR

!
E
-,
%. temporal
%. temporal
!,MP
%. acumulador
%. acumulador
!C
,MP, -,
,
Hultiple6or Q
Hultiple6or Q
Hultiple6or R
Hultiple6or R
*.1/ .1+ *01/ 01+
*S1/.../S3+
!U
PC,
CP
CP
!CP
I;C
Contador de
fases
Contador de
fases
ntrada de
instrucciones
ntrada de
instrucciones
-alida despla1amientos
o datos inmediatos
-alida despla1amientos
o datos inmediatos
Unidad de control
Unidad de control
%. de estado
%. de estado
=scilador
=scilador
!#lags
RESE,
-IR
!I
-IR B
-eales de control
-I,
-e pide"
a) 0escribir, al nivel de operaciones elementales, el proceso completo de ejecucin de la
instruccin.
b) %eali1ar el cronograma correspondiente a la anterior secuencia de operaciones elementales.
c) 6plicar los siguientes conceptos"
Codificacin de campos en la unidad de control microprogramada.
n qu2 consiste el solapamiento de campos y el secuenciamiento impl!cito. (8,D puntos)
d) 0isear el formato de las microinstrucciones considerando secuenciamiento impl!cito y el
conjunto de todas las seales de control, suponiendo que no se reali1an instrucciones de salto
condicional.
-e (a de considerar que la memoria de control es de +) Ybytes
EFERCICI" HK
n la siguiente figura se ilustra la arquitectura interna de un microprocesador cuya unidad de
control es microprogramada.
'osee buses de datos y direcciones internos de +) bits.
l modo de ejecucin de este microprocesador es registro5registro.
l banco de registros consta de #E registros de +) bits cada uno, siendo los puertos >,
? y 0 puertos de salida, y C de entrada de datos.
Las seales -LP0 y %0< entregan el contenido de un registro al bus de datos, mientras que
-LP> y -LP? lo entregan a la >LU. La carga de un registro se reali1a por el puerto C, mediante
la seal de control -LPC y la de carga L%.
La >LU toma como operandos alguno de los registros o un dato del bus de datos.
l registro de estado cuenta con E flags.
?us de datos
?us de
direcciones
-alida >
-alida >
-alida ?
-alida ?
Banco de registros
ntrada >
ntrada >
!R
Memoria
principal
Memoria
principal
%
.

d
i
r
e
c
c
i
o
n
e
s
%
.

d
i
r
e
c
c
i
o
n
e
s
MEM
MR
MC
?uffer de datos
?uffer de datos
MR

!
E
-,
%. temporal
%. temporal
!,MP
%. acumulador
%. acumulador
!C
,MP, -,
,
Hultiple6or Q
Hultiple6or Q
Hultiple6or R
Hultiple6or R
*.1/ .1+ *01/ 01+
*S1/.../S3+
!U
PC,
CP
CP
!CP
I;C
Contador de
fases
Contador de
fases
ntrada de
instrucciones
ntrada de
instrucciones
-alida despla1amientos
o datos inmediatos
-alida despla1amientos
o datos inmediatos
Unidad de control
Unidad de control
%. de estado
%. de estado
=scilador
=scilador
!#lags
RESE,
-IR
!I
-IR B
-eales de control
-I,
La unidad de direccionamiento posee un contador de programa de +) bits donde el bit
de menor peso es siempre 8. Las seales de control reali1an la iniciali1acin del 'C,
cargando la informacin contenida en el bus de datos7 la suma al 'C de un
despla1amiento de n bits7 el incremento del 'C o la transferencia del 'C al bus de
direcciones.
La interfa1 con memoria se encarga de reali1ar las transferencias del bus de datos
interno con una memoria principal organi1ada en palabras de ) bytes.
La unidad de control tiene una memoria de control que cuenta con /Y palabras y admite
formatos de instrucciones de +) bits, generando las seales de control adecuadas para
ejecutar las instrucciones.
%. *nstrucciones
%. *nstrucciones
-alida datos inmediatos
y despla1amientos
-alida datos inmediatos
y despla1amientos
Unidad de control
Unidad de control
Bus de direcciones
Unidad de direccionamiento
Unidad de direccionamiento
+# #
+# #
8
8 PC
Reg. -irs.
Reg. -irs.
Bus de datos
%eg. estado
%eg. estado
Inter(aB con
memoria
Inter(aB con
memoria
%eg. >C
%eg. >C
Q
Q
R
R
!U
!U
-LP>
-LP0
%0<
>
>
?
?
Banco de
registros
Banco de
registros
0
0
C
C
L%
-LP?
-LPC
-eg.n esta informacin, responde a las siguientes preguntas"
a) 0escribe brevemente el funcionamiento de la unidad de direccionamiento, indicando las
operaciones que reali1a.
b) %eali1a el diseo de la unidad de direccionamiento e indica qu2 seales de control
intervienen. -abiendo que para ello se cuenta con los siguientes elementos" multiple6ores,
puertas lgicas, registros y la sencilla >LU de la siguiente figura"
c) >ade las seales de control que consideres necesarias al esquema del computador para que
funcione correctamente.
d) 0ibuja el cronograma correspondiente a la fase de ejecucin de una instruccin que realice la
siguiente operacin" %# J %) %+.
EFERCICI" JK
n la siguiente figura se ilustra la arquitectura interna de un computador con las siguientes
caracter!sticas"
<odas las instrucciones son de +) bits y tienen el mismo formato.
'osee buses de datos y de direcciones de +) bits.
La unidad aritm2tico5lgica cuenta con #E operaciones distintas para n.meros enteros.
l banco de registros cuenta con K registros generales que slo almacenan n.meros
enteros representados en C).
''" s el registro puntero de pila.
C'" s el registro contador de programa, y tiene la posibilidad de auto incrementarse.
____________
SUMA/TRANSFERENCIA
OPERADOR A
(31 bits)
OPERADOR B
(31 bits)
RESULTADO
(31 bits)
ALU
a) >adir al esquema las seales de control necesarias para que el computador funcione
correctamente, indicando si los dispositivos se activan por nivel o por flanco de reloj.
b) 0escribir las operaciones elementales que reali1a la unidad de control para cada una de las
fases de ejecucin de la instruccin" -uma %#, @%)A. (%# %# J H (%))).
c) %eali1ar el cronograma correspondiente a la anterior secuencia de operaciones elementales.
d) -i la unidad de control altera el orden en que se seleccionan los operandos, justificar si ser!a
posible ejecutar la instruccin -uma %#, @%)A. n caso de que as! sea, reali1ar el cronograma
correspondiente a la fase de ejecucin.
-uponiendo que se quiere dotar a este computador de un coprocesador matem&tico que permita
reali1ar / operaciones con n.meros representados en coma flotante con" K bits para el e6ponente,
representado en e6ceso #)K, y )/ bits para la mantisa, fraccionaria y normali1ada representada en
C#.
e) 6plicar qu2 elementos y qu2 cone6iones (abr!a que aadir al computador de la figura.
Gustificar la respuesta.
S"!UCI@; -E! EFERCICI" 1K
partado a)
#. BMsIueda de la instruccin (fetch)K lectura de la instruccin apuntada por el C',
almacen&ndola en el registro de instrucciones de la Unidad de Control.
). -ecodi(icacin.
+. Incremento del contador de programa en el n.mero de palabras de ocupa la instruccin,
esta informacin la env!a la unidad de control a trav2s de la salida de despla1amientos o datos
inmediatos.
/. E=ecucin de la instruccin"
RealiBacin de la operacin. <omar los operandos del registro > y de la direccin de
memoria H (? J #888() y reali1ar la de resta dejando el resultado en el registro
temporal.
lmacenamiento del resultado. <ransferir el resultado del registro temporal al bus de
datos y guardarlo el registro > del banco de registros y actuali1ar los flags del registro
de estado, ya que se (a reali1ado una operacin con la >LU.
'oner el contador de (ases a 1.
Periodo ccin "peraciones elementales Se&ales de control
#ase de )MsIueda de la instruccin ((ase de (etcN)
# 0ireccionar
C' ?us direcciones
?us dirs. %.
direcciones
C'<,
>L
) y + Leer instruccin
Ciclo de lectura ()
periodos)
Cargar instruccin en el
%. *nstrucciones de la UC
HH, H%
L*
#ase de decodi(icacin
/ 0ecodificar
#ase de incremento del CP
D *ncremento del C'
0esp.(#) ?.datos C'
=peracin de incremento
>ctuali1acin del C'
0*<
*:C
LC'
#ase de e=ecucin de la instruccin
E
?.squeda de operandos"
#
er
operando"
H(?J#888)
?.regs.(?) J 0at.inm. ?.dirs.
?us dirs. %. direcciones
-LP%; (?), 0*<,
-8..-+(J), ><
>L
4 y K Ciclo de lectura () periodos) HH, H%
K )Z operando" %eg. > ?.regs. (>) >LU -LP%; (>)
K %eali1acin de operacin > 5 H(? J #888 () <emporal -8..-+(5), L<H'
L
>UR-R E!
RESU!,-"
<emp. ?.datos ?.regs.(>)
<H'<, -LP%; (>),
L%
L
C,U!IER
RE>. -E ES,-"
>ctuali1ar reg. de estado L3L>;-
L *niciar contador de fases %-<
partado ))
> continuacin se muestra el cronograma de la instruccin -U? >, @? J #888 (A"
S"!UCI@; -E! EFERCICI" 'K
partado a)
#. BMsIueda de la instruccin (fetch)" lectura de la instruccin apuntada por el C',
almacen&ndola en el registro de instrucciones de la Unidad de Control.
). -ecodi(icacin e incremento del contador de programa en una unidad, puesto que todas
las instrucciones ocupan una palabra de memoria.
3. E=ecucin de la instruccinK
RealiBacin de la operacin. <omar los dos operandos" registro >Q y el dato
almacenado en la direccin de memoria H (>Q J CQ J #888(). %eali1ar el producto de
ambos operandos, dejando el resultado en el registro temporal.
lmacenamiento del resultado. <ransferir el resultado del registro temporal al bus de
datos y guardarlo el registro >Q y actualiBar los (lags del registro de estado.
#inaliBacin poniendo el contador de fases a 8.
Periodo ccin "peracin elemental
Se&ales de
control
#ase de )MsIueda de la instruccin ((ase de (etcN)K
# 0ireccionar
C' bus de direcciones
Cargar registro de direcciones
C'<
>L
) y + Leer instruccin
Ciclo de lectura en memoria
Cargar la instruccin en la UC
HH, H%
L*
#ase de decodi(icacin e incremento del CP
+ y / 0ecodificar
C!O
CP,
I;C
!PC
!E
MEM
MR
MC
!I
-I,
SE!.RE>
S1..S3
,
!,MP
,MP,
!R
!#lags
RESE,
0

C
=
0
*
3
*
C
>
C
*
=
:
%eg.? %eg.> %eg.>
J 55
Periodo ccin "peracin elemental
Se&ales de
control
*ncrementar C' >ctivar seal de incremento y actuali1ar C' *:C, LC'
#ase de e=ecucin de la instruccin
D
Calcular la direccin del
operando fuente"
>Q J CQ J #888 ( y
cargarla en el registro
de direcciones de
memoria
CQ J #888 ( temporal
-eleccionar CQ en el banco de registros
0espla1amiento bus de datos bus #
-eleccionar operacin de suma en la >LU
;uardar resultado en el registro temporal
-LP%; (CQ)
0*<, >LU<
-8..-) (J)
L<H'
E
>Q J temporal ?.direcciones
%.direcciones
-eleccionar >Q en el banco de registros
<emporal bus #
-eleccionar operacin de suma en la >LU
<ransferir resultado al bus de direcciones
Cargar registro de direcciones de memoria
-LP%; (>Q)
<H'<
-8..-) (J)
><
>L
4 y K
%eali1ar el producto de
los dos operandos"
>Q6H(>QJCQJ#888()
#
er
operando, (>Q)"
-eleccionar >Q del banco de registros
)Z operando, H(>Q J CQ J #888 ()"
Ciclo de lectura en memoria
?us datos bus #
-eleccionar operacin de multiplicacin
;uardar resultado en el registro temporal
-LP%; (>Q)
HH, H%
>LU<
-8..-) (Q)
L<H'
L
;uardar producto en el
registro >Q
%egistro temporal bus # bus de datos
scribir en >Q el contenido del bus de datos
<H'<, 0<
-LP%;(>Q),
L%
L
>ctuali1ar registro de
estado
>ctuali1ar registro de estado L3L>;-
L Contador de fases a 8 %-<
partado ))
> continuacin se muestra el cronograma de la instruccin HUL >Q, @>Q J CQ J #888 (A"
('&gina siguiente)
S"!UCI@; -E! EFERCICI" 3K
partado a)
La ejecucin de la instruccin >00 @?Q J #888 (A, >Q, se (ar& siguiendo las fases"
#. BMsIueda de la instruccin (fetch)" lectura de la instruccin, almacen&ndola en el registro de
instrucciones de la Unidad de Control.
). -ecodi(icacin.
+. Incremento del contador de programa en una unidad, puesto que la instruccin que se va a
ejecutar ocupa una palabra de memoria.
5. E=ecucin de la instruccinK
%eali1acin de la operacin"
C&lculo de del dato contenido en la direccin de memoria H (?QJ#888()"
-uma del dato inmediato, #888(, con el registro ?Q.
Lectura en memoria de H(?QJ#888()
%eali1ar la suma del dato le!do con el registro >Q, dejando el resultado en el registro temporal.
>uardar el resultado en la direccin de memoria H (?QJ#888() y actualiBar los (lags del
registro de estado, ya que se (a reali1ado una operacin con la >LU.
'oner el contador de (ases a 1.
Periodo ccin "peraciones elementales Se&ales de control
#ase de )MsIueda de la instruccin ((ase de (etcN)
# 0ireccionar C' ?us de direcciones %.dirs. C'<, >L
) y + Leer instruccin
Ciclo de lectura () periodos)
Cargar instruccin en %eg.instrucs.
HH, H%
L*
#ase de decodi(icacin e incremento del CP
/ 0ecodificar
#ase de incremento del CP
D y E
*ncrementar
C'
0esp.(#) ?.datos C'
*ncrementar y actuali1ar el C'
0*<,*:C
L'C
#ase de e=ecucin de la instruccin
E
Lectura del primer
operando"
H
(?QJ#888)
0ato inmediato J ?% (?Q)
?.direcciones %.instrucciones
0*<, -L.%; (?Q),
-8..-+(J), ><, >L
4 y K Lectura en memoria H(?QJ#888) HH, H%
K )Z operando" ?% (>Q) >LU -L.%; (>Q)
K
=peracin suma
de"
?. datos J -al. ?% <emporal
-8..-+(J), L<H'
L y #8 ;uardar
%.<emporal en
H(?QJ#888 ())
Ciclo de escritura en memoria HH, HM
#8 <emp. ?.datos ?uffer datos <H'<
#8
>ctuali1ar reg
estado
>ctuali1acin registro de estado L3L>;-
#8
*niciar contador
fases
%-<
partado ))
l cronograma correspondiente a la ejecucin de esta instruccin es"
C!O
CP,
I;C
!PC
!E
MEM
MR
MC
!I
-I,
SE!.RE>
S1..S3
,
!,MP
,MP,
!R
!#lags
RESE,
0

C
=
0
*
3
*
C
>
C
*
=
:
J J
%.?Q %.>Q
S"!UCI@; -E! EFERCICI" 5K
partado a)
#. BMsIueda de la instruccin (fetch)" lectura de la instruccin, almacen&ndola en el registro
de instrucciones de la Unidad de Control.
). -ecodi(icacin.
sta etapa se solapar& con el incremento del contador de programa. 'uesto se sabe que todas
las instrucciones de la m&quina ocupan lo mismo, y no ser& necesario esperar a la decodificacin.
3. E=ecucin de la instruccinK
%eali1acin de la operacin"
C&lculo de del dato contenido en la direccin de memoria H (?J#888()"
-uma del dato inmediato, #888(, con el registro ?.
Lectura en memoria de H (?J#888) y almacenamiento del dato en registro <H'.
C&lculo del dato contenido en la direccin de memoria a la que apunta el registro >.
%eali1ar la suma del dato le!do con <H', dejando el resultado en el acumulador.
>uardar el resultado en la direccin de memoria indicada por el operando dir y actualiBar los
(lags del registro de estado, ya que se (a reali1ado una operacin con la >LU.
#inaliBacin/ poniendo el contador de (ases a 1.
Periodo ccin "peraciones elementales Se&ales de control
#ase de )MsIueda de la instruccin ((ase de fetch)
# 0ireccionar C' ?us de direcciones %.dirs. 'C<, >L
) y + Leer instruccin
Ciclo de lectura () periodos)
Cargar instruccin en reg. instrucs.
HH, H%
L*
#ase de decodi(icacin e incremento del CP
+ y /
0ecodificar
*ncrementar C' *ncrementar y actuali1ar el C' *:C, LC'
#ase de e=ecucin de la instruccin
D
Lectura del primer
operando"
H(?J#888)<H'
-eleccin de operandos y
operacin (simult&neamente)"
0ato inmediato J ?% (>) >C
0*<, Q8,Q# (?.de datos),
0*% > (?), R8,R# ('to.>),
-8..-+(J), L>C
E >C %. 0irs. ><, >L
4 y K
Lectura en memoria de H(?J#888)
0ato le!do (bus datos) <H'
HH, H%
Q8,Q# (? de datos),
-8..-+ (=p. tras), L<H'
L y #8
Lectura del segundo
operando"
H(>) ?us de
datos
?%(>) >C
>C %. 0irs.
0*% > (>), Q8,Q# ('to.>),
-8..-+ (=p. transf.), L>C
><, >L
## y #) Lectura en memoria HH, H%
#) =peracin suma de" ?. 0atos J <H' >C
Q8,Q# (<H'), R8,R# (?.
datos), -8..-+(J), L>C
#+ ;uardar resultado
del >C en H(dir)
0. inm.?. dat. ?. dirs. %.
dirs.
0*<, 0><, >L
Periodo ccin "peraciones elementales Se&ales de control
#/ y #D *nicio de escritura en memoria HH, HM
#D >C ?. dat., escritura en memoria 0<
#D
>ctuali1ar reg
estado
>ctuali1acin registro de estado L3L>;-
#D
*niciar contador
fases
%-<
partado ))
Cronograma de la instruccin >00 ,dir, @>A, @? J #888A"
(st& en la siguiente p&gina)
C!O
P,C
I;C
!E
MEM
MR
MC
!I
-I,
.
1
/ .
1
0
1
/ 0
1
S
1
/../S
3
!C
!,MP
-IR
-IR B
!R
-,
,
,MP,
-,
!PC
!#!>S
RESE,
0

C
=
0
*
3
*
C
>
C
*
=
:
?.0at. ?.0at. 'to. > <H'
'to. > ?. 0at.
J <rf. Q <rf. Q J
?%5? ?%5>
S"!UCI@; -E! EFERCICI" ?K
partado a)
#. BMsIueda de la instruccin (fetch)" lectura de la instruccin, almacen&ndola en el registro de
instrucciones de la Unidad de Control.
). -ecodi(icacin.
n esta etapa tambi2n se reali1ar& el incremento del contador de programa. 'uesto que todas
las instrucciones ocupan lo mismo, no ser& necesario esperar a la decodificacin.
3. E=ecucin de la instruccinK
RealiBacin de la operacin. <omar los datos de los registros > y ?, y reali1ar la
operacin de resta, dejando el resultado en el registro acumulador.
lmacenamiento del resultado. <ransferir el dato del acumulador al bus de datos y
actuali1ar el registro > del banco de registros. <ambi2n se actualiBarPn los (lags del
registro de estado, puesto que se (a reali1ado una operacin con la >LU.
'oner el contador de (ases a 1.
Periodo ccin "peraciones elementales Se&ales de control
#ase de )MsIueda de la instruccin ((ase de (etcN)
# 0ireccionar
C' ?us 0irecciones
?us 0irs. %. 0irecciones
'C<,
>L
) y + Leer instruccin
Ciclo de lectura () periodos)
Cargar instruccin en el
%. *nstrucciones de la UC
HH, H%
L*
#ase de decodi(icacin e incremento del CP
/
0ecodificar
*ncrementar C' *ncrementar y actuali1ar C' *:C, L'C
#ase de e=ecucin de la instruccin
D
?.squeda de
operandos y operacin"
> 5 ? >C
-eleccin de operandos y
operacin (simult&neamente)
?. %egs. (>) 5 ?. %egs.(?) >C
0*% ? (>), Q8,Q# ('to.?),
0*% > (?), R8,R# ('to. >),
-8..-+(5), L>C
E
;uardar >C >
>ctuali1ar reg. de
estado
> C ?us datos ?. %egs. (>)
>ctuali1ar reg. de estado
0<, 0*% > (>), L%
L3L>;-
E
*niciar contador de
fases
%-<
partado ))
> continuacin se muestra el cronograma de la instruccin -U? >, ?"
S"!UCI@; -E! EFERCICI" HK
partado a)
La unidad de direccionamiento se encarga de generar las direcciones de memoria en la secuencia
de ejecucin de un programa. n este caso, se cuenta con una unidad que contiene los circuitos
necesarios para reali1ar los c&lculos de la nueva direccin, seg.n las siguientes especificaciones"
*niciali1acin del contador de programa ('C), cargando la informacin contenida en el
bus de datos
-uma al 'C de un despla1amiento de n bits
*ncremento del 'C
<ransferencia del 'C al bus de direcciones
partado ))
'ara reali1ar las operaciones anteriormente descritas se cuenta con la sencilla >LU de la siguiente
figura"
>dem&s, ser& necesario conectar a la salida de la >LU el registro contador de programa ('C) que
almacene el resultado obtenido, que ser& la direccin de la siguiente instruccin, siempre que se
active la seal de carga del registro, L'C.
-eg.n el apartado a), la unidad de direccionamiento reali1ar& las siguientes funciones"
*niciali1acin del contador de programa ('C), cargando la informacin contenida en el
bus de datos.
'ara reali1ar esta operacin, es necesario conectar el bus de datos con la entrada
='%>0=% ? de la >LU y activar la operacin de transferencia, seleccionando la
entrada"
8
PPPP PPPPPPPPPP
C*> <%>:-3%: -UH> , =
.
-uma al 'C de un despla1amiento de n bits.
'ara reali1ar la suma del 'C con un despla1amiento, ser& necesario conectar el
='%>0=% > de la >LU con la salida del registro 'C. -abiendo que el despla1amiento
que (ay que aplicar al 'C vendr& dado por el contenido del bus de datos y que 2ste
est& conectado con la entrada ='%>0=% ?, bastar& con seleccionar la operacin de
suma en la >LU, activando la entrada
PPPP PPPPPPPPPP
C*> <%>:-3%: -UH> ,
V#.
*ncremento en # del 'C
-abiendo que la entrada ='%>0=% > de la >LU est& conectada a la salida del registro
'C, ser& necesario introducir un [#[ por el ='%>0=% ? de la >LU. -in embargo, 2sta
entrada est& conectada con el bus de datos. 'or tanto, en este caso ser& necesario
aadir un multiple6or que permita seleccionar entre la entrada del bus de datos y el [#[,
todo ello controlado por la seal de incremento, *:C.
<ransferencia del 'C al bus de direcciones
____________
SUMA/TRANSFERENCIA
OPERADOR A
(31 bits)
OPERADOR B
(31 bits)
RESULTADO
(31 bits)
ALU
n este caso, basta con conectar el 'C al bus de direcciones, aadiendo un buffer
triestado con su seal correspondiente, ><, para controlar el acceso al bus.
La arquitectura de la unidad de direccionamiento ser& la que se muestra en la siguiente figura"
AT
0....01 (31 bits)
BUS DE DATOS
BUS DE DIRECCIONES
31 1
PC
0
0
LPC
____________
SUMA/TRANSFERENCIA
OP_A OP_B
ALU
(31 bits)
0 1
MUX
INC
D31D0
3!
Iay que observar que en este computador, se accede siempre a ) bytes consecutivos de
memoria. 'or esto, la entrada del multiple6or procedente del bus de datos, es de +# bits, ya que
todas las direcciones que se generan en esta m&quina son pares, siendo el bit de menor peso
siempre 8.
3inalmente, la tabla de operaciones y el valor de cada una de las seales que intervienen ser& el
siguiente"
I;C
LL
SUM./,R#.
"PERCI@; , "PERCI@;
8 8 Carga el contenido del bus de datos en el 'C 8 555
8 #
-uma al 'C el despla1amiento del bus de
datos
#
<ransferencia del 'C
al bus de direcciones
# 8 Carga un [#[ en el registro 'C (\:o utili1ada)
# #
-uma al registro 'C un [#[ (*ncremento del
'C)
partado c)
> continuacin se muestran todas las seales de control necesarias para que el computador
funcione correctamente"
%. *nstrucciones
%. *nstrucciones -alida datos inmediatos
y despla1amientos
-alida datos inmediatos
y despla1amientos
Unidad de control
Unidad de control
Bus de direcciones
Unidad de direccionamiento
Unidad de direccionamiento
+# #
+# #
8
8 PC
Reg. -irs.
Reg. -irs.
Bus de datos
%eg. estado
%eg. estado
Inter(aB con
memoria
Inter(aB con
memoria
%eg. >C
%eg. >C
Q
Q
R
R
!U
!U
-LP>
-LP0
%0<
>
>
?
?
Banco de
registros
Banco de
registros
0
0
C
C
-L.?
-LPC
L'C
*:C
PPPPPPP
-UH>,<%>:-3.
>L
HH
P
%,M
>C<
><
0*<
0><
L>C
L*
%-<
L3L>;-
R Q
='+..8
L%
partado d)
S"!UCI@;
-E!
EFERCICI" JK
partado a)
Las seales de control necesarias en esta m&quina son las que aparecen en la siguiente figura"
;i:el #lanco de relo=
%;*-<%=-
-LP%; -eleccin de registro C?% Carga en el banco de registros
<?% <ransferencia del ?% al ?.0atos CC' Carga del contador de programa
<C' <ransferencia del C' al ?.0irs. *:CPC' *ncremento del C'
<'' <ransferencia del puntero de pila C'' Carga del puntero de pila
U>L
='+..='8 -eleccin de operacin en U>L C< Carga en el registro <emporal
<U>L <ransferencia de la U>L
<< <ransferencia del registro <emporal
HH=%*> '%*:C*'>L
HH Ciclo de memoria C%> Carga del registro de direcciones
LH Lectura de memoria principal
H scritura en memoria principal
UC
<0* <ransferencia de datos inmediatos C%* Carga del registro de instrucciones
C3L>;
-
Carga del registro de estado
%-< *nicio del contador de fases
<?>0 <ransferencia del ?.0irs al ?.0atos
<?0> <ransferencia del ?.0atos al ?.0irs
partado ))
> continuacin se muestran las operaciones elementales que reali1a la unidad de control en cada
una de las fases de la instruccin -uma %#, @%)A"
Periodo ccin "peracin elemental
Se&ales de
control
#ase de )MsIueda de la instruccin ((ase de (etcN)K
# 0ireccionar
C' bus de direcciones
Cargar registro de direcciones
<C'
C%>
) y + Leer instruccin
Ciclo de lectura en memoria
Cargar la instruccin en la UC
HH, LH
C%*
#ase de decodi(icacin e incremento del CP
/
0ecodificar
*ncrementar >ctivar seal de incremento del C' *:CPC'
#ase de e=ecucin
D
Calcular el dato
almacenado en
H(%))
-eleccin de %) ?us de datos ?us de
direcciones %egistro de direcciones
-LP%; (%))
<?%, <?0>
C%>
E y 4 Ciclo de lectura en memoria HH, LH
4
%eali1ar la suma de
los dos operandos"
%# J H(%)) %#
-eleccin del %# y suma con la informacin
del bus de datos <emporal
-LP%;(%#),
='+..='8 (J),
C<
K
<emporal ?us de datos
;uardar resultado en %# del banco de
registros
<<,
-LP%;(%#),
C?%
K
>ctuali1ar el registro
de estado e iniciar
contador de fases a 8
>ctuali1ar el registro de estado,
*niciar contador de fases
C3L>;-,
%-<
n la siguiente figura aparece el cronograma correspondiente, en 2l se (an omitido las seales del
bus de control que permanecen puestas a 8 mientras se ejecuta la instruccin.
partado c)
-i la UC seleccionar& los operandos de la suma en orden inverso al anteriormente descrito,
primero el registro %# y despu2s el operando H (%)), podr!a observarse que se produce un
conflicto para introducir ambos operandos simult&neamente en la U>L. Una manera de solucionar
2ste problema, consistir!a en dotar a una de las entradas de la U>L con un multiple6or que permita
seleccionar entre los datos provenientes de bus de datos y del registro temporal.
partado d)
Una posible solucin, ser!a aadir al computador de la figura anterior el siguiente bloque"
C"#$"%&s'("$ )'t&)*ti%"
OP
1+ OP
0
B',%" (&
$&-ist$"s &,
%")' ./"t',t&
T&)#"$'/_F
CTF
CBRF
SEL_RE0_F
TBRF
TTF
BUS DE DATOS

Вам также может понравиться