Vous êtes sur la page 1sur 57

FUNDAMENTOS DE

COMPUTADORE S
PROFESORES: Katzalin Olcoz Herrero. Guadalupe Miana.
1

MODULO 1: DISEO LGICO.


1. Introduccin. Representacin de la informacin.

I. Sistemas analgicos y digitales. II. Modelo de sistemas digitales. III. Sistemas de numeracin.
2. Especificacin de sistemas secuenciales.
Especificacin por funciones de conmutacin (FFCC). Especificacin por expresiones de conmutacin (EECC). Manipulacin algebraica de EECC. Formas cannicas de EECC. Mapas de Karnaugh. Simplificacin de EECC.

I. II. III. IV. V.


3.

Implementacin de sistemas combinacionales.

I. II.
4.

Introduccin. Puertas lgicas.

Mdulos combinacionales bsicos.


Descodificador: aplicacin al diseo. Codificador. Codificador de prioridad. Multiplexor: aplicacin al diseo. ROM: generacin de funciones y almacenamiento de la PAL: aplicacin al diseo. Sumador/restador binario.

I. II. III. IV. V.


informacin.

VI. VII. I. II. III. IV.


binaria.

5. Codificacin de sistemas secuenciales.


Concepto de estado y diagrama de estados. Sistemas sincronos y asncronos. Maquinas de Mealy y Moore. Mtodo de obtencin de una especificacin Contadores y reconocedores de secuencia.
2

V.

6. Implementacin de sistemas secuenciales sincronos. I. Biestables: RS asncrono, RS sncrono y D


sncrono.

II. III.
sincronos.

Implementacin cannica. Inicializacin de sistemas secuenciales Mdulos secuenciales estndar: registro, desplazador, contador, BR. introduccin al diseo algortmico de sistemas digitales: procesador y unidad de control.

IV. V.

MODULO 2: INTRODUCCIN A LA ARQUITECTURA DE COMPUTADORES.


7. Arquitectura bsica del computador. I. Computadores Von Neumann:
estructura y caractersticas.

II.
computador sencillo: la MR.

Descripcin de la arquitectura de un Lenguaje de la Maquina Rudimentaria: tipos y formatos de instrucciones.

III.

8. Diseo e implementacin de un computador sencillo. I. Diseo de la unidad de proceso


de la MR: almacenamiento y secuenciamiento de instrucciones, banco de registros, ALU, gestin de saltos y calculo de direcciones. II. Diseo de la unidad de control de la MR: fases de ejecucin de una instruccin, diagrama de estados, implementacin.

TEMA 1. INTRODUCCIN. REPRESENTACION DE LA INFORMACION. 1 SISTEMAS ANALOGICOS Y DIGITALES


Analgico: puede tomar cualquier valor. Digital: toma valores dentro de un conjunto discreto.

2 MODELO DE SISTEMAS DIGITALES

Un sistema digital es un conjunto de componentes que manda y recibe dgitos.

X (t)

Z (t)

Especificacin: funcin de salida para cada una de las entradas del


sistema. Implementacin: como esta hecho el sistema.

Hay dos tipos de sistemas: Combinacionales: el valor de salida depende del de la entrada en ese momento. Son simples. Secuenciales: hay que saber la secuencia de valores que ha tomado la entrada y la que tiene ahora.

3 SISTEMAS DE NUMERACION
Conceptos: Dgitos: conjunto ordenado de cifras {0,1,,9} con una serie de reglas. Signos: +, -, x, . Base cardinal:{0,1,,9} 10 (n)base Sistema posicional. El valor de un digito depende de su posicin. 121= 1x100 + 2x10 + 1 = 1x102 + 2x101 + 1x100
10

La base seria 10. El peso es la base elevada a un exponente, que es la posicin del digito empezando por la derecha desde el 0. Base=2 (sistema BINARIO) {0,1} BInary digiTbit + 0 1 0 0 1 1 1 10 x 0 1 0 0 0 1 0 1
4

10110,01=1x24 + 0x23 + 1x22 + 1x21 + 0x20 + 0x2-1 + 1x22 = 22,2510 Base=8 (sistema OCTAL) {0,1,7} Base=16 (sistema HEXADECIMAL) {0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)}

TEMA 2. ESPECIFICACION DE SISTEMAS SECUENCIALES


1 ESPECIFICACION POR FUNCIONES DE CONMUTACION
Una conmutacin va desde los nmeros binarios de un bit hasta los de n bits. F {0,1}n{0,1}1; dominioD (f)= {0,1}n Rango {0,1}

1)
X

FFCC(funciones de conmutacin) de 1 variable x


f0 F1 f2 0 1

F3 1 1 Tabla de la verdad

0 0 1 0

1 0

F1 es igual que X. F2=not(complemento lgico de X)

2)

FFCC DE 2 VARIABLES X1 Y X0
X1 X0 f0 0 0 1 1

F1 0 0 0 1

f2 0 0 1 0

f3 0 0 1 1

f4 0 1 0 0

f5 f6 0 1 0 1 0 1 1 0

f7 0 1 1 1

f8 1 0 0 0

f9 1 0 0 1

f10 1 0 1 0

f11 1 0 1 1

f12 1 1 0 0

f13 1 1 0 1

f14 1 1 1 0

F15 1 1 1 1

0 1 0 1

0 0 0 0

F1 es la funcin Y (AND). Vale 1 si x1 y x0 valen 1.


5

F6 es la funcin O-exclusiva (XOR). Vale 1 si x1 o x0 valen 1, pero no los dos a la vez. F7 es la funcin O (OR). Vale 1 si x1 o x0 valen 1. F8 es la funcin NOR ya que es opuesta a la OR. F9 es la funcin XNOR ya que es opuesta a la XOR. F14 es la funcin NAND al ser opuesta a la AND.

3)

FFCC INCOMPLETAMENTE ESPECIFICADAS

F:{0,1}n{0, 1, d} d / - :dont care (indefinido, indeterminado)

4)

CONVERSOR DE CODIGO
Es poner el siguiente cambiando un digito del anterior

Binario Gray;

n decimal 0 1 2 3 4 5 6 7

Gray 000 001 011 010 110 111 101 100

2 ESPECIFICACION POR EXPRESIONES DE CONMUTACION (EECC).


1)

Conceptos.
Rango {0,1} + (o-lgica), x (y-lgica), () (complemento de lo que contenga el parntesis). Variacin binaria.

2)

Reglas de constitucin.
0 y 1 son EC.
6

Una variable binaria x es EC (x {0,1}) Si X e Y son EECC => (X+Y) y (X Y) tambin lo son. Si X es EC entonces (X) tambin lo es. Solo son EECC los que se construyen con un nmero finito de aplicaciones de las reglas anteriores.

3)

Algebra de conmutacin.
Rango{0,1}. +suma lgica.
X 0 0 1 1 Y 0 1 0 1 + 0 1 1 1

producto lgico. X 0 0 1 1 Y 0 1 0 1 0 0 0 1

(X)complemento X 0 1 X 1 0

Algebra de Boole. 4) Evaluacin de EECC.


V(E,X) Expresiones equivalentes.

3 MANIPULACION ALGEBRAICA DE EECC


7

Propiedad Conmutativa Distributiva Asociativa Complemento Idempotencia Elemento neutro Involucin Absorcin Leyes de De Morgan

Suma a+b=b+a a+(bc)=(a+b) (a+c) a+(b+c)=a+b+c a+a=1 a+a=a 0+a=a 1+a=a a=a a+ab=a (a+b)=ab

Producto ab=ba a(b+c)=ab + ac a(bc)=abc a a=0 a a=a 1a=a 0a=0 a(a+b)=a (ab)=a+b

4 FORMAS CANONICAS DE EECC


Literal. X,X Termino producto. X, XYminterminos de n variables.

n=2 X1 X0 X1 X0 X1 X0 X1 X0 Termino suma. X, Y + Xmaxtermino de n variables.


n=2 X1 + X0 X1 + X0 X1 + X0 X1 + X0

Suma de productos. X, XY + XZSPC( suma de productos cannica (minterminos no definidos)){X1, X0 + X1 X0} Producto de sumas. (X+Y) ( Z+X)YPSC(producto de sumas cannicas(maxterminos no definidos)){(X1 + X0)(X1 + X0)}

5 MAPAS DE KARNAUGH
Es una matriz de casillas o celdas, cada una de las cuales representa un mintermino de una FC

1) Construccin.
8


X 0 0 1 1

n=2
Y 0 1 0 1 z 0 0 0 1

x1\x0

0 1

0 0 1

1 1 1

n=3 celda
X2 0 0 0 0 1 1 1 1 X1 0 0 1 1 0 0 1 1 X0 0 1 0 1 0 1 0 1 Z 0 1 1 0 1 0 1 1

solo vara un digito entre cada

x1-x0\ x2

0 1

00 0 1

01 1 0

11

10

0 1

1 1

X3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

X2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

X1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

X0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Z 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1

x1-x0\ x2-x3

n=4
00 0 0 1 1 01 1 1 0 0 11 1 0 1 0 10 0 0 1 0

00 01 11 10

2) Procedimiento de simplificacin.
x1-x0\ x2x3

OO O1 11 10

OO O1 1 1 1 1

11 1 1

10

a) b) c)
d)

Menor numero de rectngulos. Se empieza por los rectngulos mayores. Se puede incluir un mintermino en 2 rectngulos. Se empieza por los minterminos con un vecino.

En este caso seria igual a (X0 X2 X3) + (X0 X3 X1) + (X3 X2 X1) + (X3 X1 X0). 3) Procedimiento de simplificacin para FFCC incompletamente especificadas. Z1(X3, X2, X1, X0)= m (1, 2, 3, 12, 14) + d (6, 9, 10, 15)

x1-x0\ x2-x3

00

00 01 11 10

01 1

11 1 -

1 -

10 1 1 -

10

X1 X0 (X3 X2 + X3 X2 + X2 X3 + X2 X3)

TEMA 3. IMPLEMENTACION DE SISTEMAS COMBINACIONALES.


1 INTRODUCCIN.

Retardo de propagacin.

Es el tiempo que pasa desde que cambia la entrada hasta que se ve el cambio V

2 PUERTAS LOGICAS.
a) AND. Z Z=Xn ... X0 Es asociativa

b)

OR. Z Z=Xn ++ X0 Es asociativa

c)

NOT (inversor). X X
11

d)

NAND. Z Z= (Xn ... X0)

e)

NOR. Z Z= (Xn ++ X0)

f)

XOR. Z Z= X1 X0= X1 X0 + X0 X1

Solo dos entradas. Es asociativo. g) XNOR Z Z= (X1 X0)= X1 X0 + X0 X1

TEMA 4. MODULOS COMBINACIONALES BASICOS.


1. Descodificador.
X0 Entradas Xn-1 E Y0 Salidas Y2^n -1

Es un sistema combinacional con n entradas y 2n salidas. Para cada una de las 2n posibles configuraciones binarias que pueden presentarse en sus entradas, el sistema pone a 1 solo una salida siguiendo una regla: si la configuracin binaria forma un numero i, se activa la salida i-esima. Se le conoce con el nombre de descodificador de n a 2n. E indica si esta activo (1) o no el sistema (0) (on u off).
12

DE CO

2.

Codificador de 2n entradas.
E X0

Entradas X2n-1

CO D

Y0 Yn-1

salidas

Y= 2i x Yi

Es un sistema combinacional con 2n entradas y n salidas. Genera un numero binario sobre sus n salidas que identifique que entrada esta activada. Por tanto, realiza la funcin inversa del decodificador. Posee E y A, que vale 1 si hay alguna entrada activada.

3. Codificador de prioridad.
E X0 Entradas X2n-1 Y0 Salidas

C DE P
A Eout

Yn-1

El codificador de prioridad resuelve el problema que se presentaba en el codificador simple si tiene ms de una entrada activada, mediante la asignacin de prioridades a sus entradas. Si hay mas de una se toma el valor de la ms prioritaria (la de mayor subndice). Eout= E x A (solo vale 1 si (E=1) y (A=0). Eout se podra usar como E de un segundo codificador de prioridad, pudiendo construir codificadores de prioridad con el numero de entradas que se desee.

4. Multiplexor.
E

Xi si E=1 y S=i
X0 Entradas X2n-1

Z=
MUX

0
Z

CC

S=2j Sj

13

S0

Sn-1 Entradas de control

Es un modulo combinacional con un conjunto de 2n entradas de datos, otro conjunto de n entradas (entradas de control), y una salida. Su funcin es hacer que la salida tome el mismo valor que una cierta entrada de datos, seleccionada por el nmero en binario presente en las entradas de control. Por ello se puede decir figuradamente que conecta cualquiera de sus entradas con la salida

5. ROM (Read Only Memory).


E X0 Lneas de direccin

ROM
Xn-1

Zk-1

Z Lneas de datos

Su nombre responde a las siglas inglesas de memoria de solo lectura. Es un dispositivo integrado por un cierto nmero de puertas lgicas, donde algunas de las conexiones internas pueden ser alteradas en el laboratorio del usuario al objeto de implementar un determinado conjunto de funciones de conmutacin. La ventaja de estos dispositivos es que los fabricantes de circuitos integrados pueden producirlos en grandes tiradas, lo cual abarata los costes de produccin. Despus los usuarios pueden personalizarlos para un diseo concreto alterando algunas conexiones internas. Los dispositivos que se han hecho as se agrupan bajo la denominacin de dispositivos de lgica programable, de los cuales la ROM es un ejemplo. Se compone de 2n puertas AND (siendo n el numero de bits de las lneas de direccin), y m puertas OR (siendo m el numero de bits de las lneas de datos

6. PAL (Programmable Array Logic).


E N m

PAL

14

Se compone de p puertas AND por cada puerta OR, en total mp AND, y m puertas OR. La implementacin de FFCC con una ROM se hace mediante una suma de minterminos, ya que las AND estn fuertemente interconectadas de modo que implementan los minterminos de las entradas. Si se trata de una funcin que cubre pocos minterminos, usar una ROM no es una buena idea ya que la mayora de las AND no se usaran. Pasa igual si la FC admite una gran simplificacin. Usando una ROM no tiene sentido simplificar; habr que limitarse a programar la ROM para que haga la suma de minterminos. Sin embargo, una simplificacin podra llevar a una simple implementacin con puertas lgicas. Por todo esto, el uso de PALs es una interesante alternativa. Un PAL presenta una matriz AND de conexiones programables y una matriz OR de conexiones fijas. En una PAL con n entradas y k salidas, la matriz AND contiene n inversores y m puertas AND de 2n entradas, y la matriz OR k puertas OR de p entradas, siendo p=m/k.

7.

Sumador / restador binario.


Al principio se garantizaba que, en la suma de nmeros en complemento a 2, el digito del signo no requera un tratamiento especial y se poda procesar como un bit ms. Luego se aplico la ventaja del complemento a 2. Al considerarse el bit del signo como uno mas, el sumador anterior podra sumar y restar numero positivos o negativos, siempre en complemento a 2. Por tanto para la suma se ignorara el signo y para la resta se evala A+ C2B. Para implementar esto hace falta una entrada de control que determine la operacin a realizar, as como disponer de un sistema combinacional F que haga llevar el operando B a la entrada derecha del sumador en la suma, y el C1B en la resta. S/R es la sea de control que permite gobernar el funcionamiento del dispositivo. Si S/R vale 0 suma, y al revs.
A3 a2 a1 a0 b3 b2 b1 b0

S/R

15

SUMADOR

C3

C-1

S3

s2

s1

s0

TEMA 5. ESPECIFICACION DE SISTEMAS SECUENCIALES


1. CONCEPTO DE ESTADO Y DE DIAGRAMA DE ESTADOS.

1 0

Entrada (x)

Salida (z)

El estado dir que hay que recordar de los valores de entrada. Para conocer el valor de la salida en un instante determinado, hay que saber lo que vale la entrada en ese instante y lo que vala justo antes.

EstadoS (t). Funcin de salida Z (t)= F(X (t), S (t)). Funcin de transicin de estadosS (t+1) (sncronos)=G(X (t), S

(t)).
16

2. SISTEMAS SINCRONOS Y ASINCRONOS.


Sncronos S(t)(el estado) cambia con CLK(seal de reloj peridica) Asncronos S y Z cambian con X.
Ciclo (ns)

CLK
Periodo

. Pulso (de 0 a 1, y al revs). Sensible al nivel, mientras que CLK=1 pueden cambiar de estado. . Disparados por flanco de subida.

. Disparados por flanco de bajada

3. MAQUINAS DE MEALY Y MOORE.


Constituyen formas alternativas para la especificacin de sistemas secuenciales, que difieren al generar la funcin de salida. El modo de especificar sistemas secuenciales usado hasta el momento se corresponde con el concepto de Maquina de Mealy. Por ello esta descrito as: Z(t)=H(S(t), X(t)) S(t+1)= G(S(t),X(t)) Siendo X la entrada, Z la salida, y S el estado. Como H establece que la entrada influye en el acto en la salida, cualquier cambio en la entrada en medio del ciclo de reloj repercutir inmediatamente en la salida aunque el estado no cambie. Puesto que el diseador de un sistema digital puede no saber cuando cambia la entrada del sistema, y que variaciones transitorias en la salida como las que se acaban de describir pueden dar problemas si se quiere que acten como entradas de otros sistemas, interesa construir sistemas en los que la salida es funcin exclusiva del estado y no de la entrada. As si se produce un cambio transitorio en la entrada, el estado no cambia y
17

tampoco lo hace la entrada. Estas son las caractersticas de una Maquina de Moore, que se describe del siguiente modo: Z(t)=H(S(t)) S(t+1)=G(S(t), X(t)) Que son similares a las de Mealy con la salvedad de que H depende exclusivamente de S(t). Es evidente que las maquinas de Moore estn incluidas en la de Mealy. Para describir una maquina de Moore por un diagrama de estados se adopta un convenio distinto al de las maquinas de Mealy. Al depender la salida del estado, el valor de la salida se especifica sobre los nodos del diagrama y no sobre los arcos.

X1

S1/Z1

S2/Z2

En este caso, si el sistema esta en el estado S1 produce salida Z1, y si esta en S2, produce Z2. Adems, si en S1 recibe una entrada X1, pasa al estado S2.

4. ESPECIFICACION BINARIA.
La nica diferencia entre hacerlo de un modo o de otro es el almacenamiento del estado. Segn los valores de X0, S1 y S0 en el ciclo t, se calculan los valores de S1 y S0 para al ciclo (t+1). Los valores de S1 y S0 no varan en todo el ciclo. Para materializar fsicamente esto habr que estudiar nuevos tipos de dispositivos, ya que nada de todo lo estudiado hasta ahora es capaz de almacenar informacin. Para ello vamos a introducir un dispositivo capaz de almacenar un bit, denominado biestable.
D(t) Q(t+1) 0 0 1 1

Clk del BIESTABLE D

Q Esquema y tabla de verdad del biestable D.


18

D Por Clk (abreviatura de Clock, reloj en ingles) recibe el biestable la seal de reloj que determina los instantes en que se puede cambiar de estado y establece la separacin entre ciclos de reloj. Tal como muestra la tabla de verdad, Q toma en el ciclo t+1 el mismo calor que tenia D en el ciclo t (durante el ciclo t+1 la salida del biestable recuerda cual era el valor de la entrada en el ciclo t). Adems, si los pulsos de reloj dejan de llegar al biestable, Q no cambia aunque lo haga D, manteniendo su valor indefinidamente. Este biestable se llama D por ser la inicial de delay (retardo), hecho justificado por copiar su salida los valores de la entrada con un ciclo de retraso. Como el valor de Q no puede cambiar a la mitad de un ciclo de reloj, se le suele llamar estado del biestable. Los pasos a seguir para obtener una especificacin binaria son: a) Obtener especificacin. b) Definir estados (Mealy o Moore). c) Codificar en binario

5. 1)

SISTEMAS SECUENCIALES TIPICOS. Contador.

Un contador modulo-p es un sistema secuencial con una entrada binaria X y una salida Z, que toma valores en {0, 1,, p-1}, de modo que el valor de Z es igual al numero de unos que han llegado por X, modulo p. Es decir: Z(t)= ((X(i)) mod p Cada vez que el sistema recibe un pulso por la lnea de reloj, si la entrada vale 1, el valor de la salida se incrementa en 1, excepto cuando Z vale p-1, en cuyo caso vuelve a valer 0. Esto equivale a decir que Z es el resto de dividir el numero de 1s recibido por X entre p. Lo que se acaba de definir no es distinto de los contadores que tenemos a nuestro alrededor. La forma mas natural de disear sistemas secuenciales que hagan de contadores es identificar el estado con la salida, hacer que sea el estado del sistema el que represente el valor de la cuenta.
19

S(t+1) = [S(t) + X(t)] mod p (suma aritmtica) Z(t)=S(t)

2)

Reconocedores de secuencias.

Tiene una salida Z, que indica si los ltimos smbolos recibidos por la entrada X forman una secuencia concreta P. La relacin entrada/salida se puede definir matemticamente como: 1 si X (t-m+1, t)=P Z(t)= 0 CC Esta definicin implica el reconocimiento de secuencias de m smbolos que pueden estar solapadas en el tiempo. Para obtener una descripcin basada en estados, se puede representar el estado como un vector, se puede representar el estado como un vector de m-1 componentes, S=(Sm-2,, S0) y definir: Si(t+1) = Si-1(t) para todo i, 1 i m-2 S0(t+1)=X(t) Lo que almacena S son los ltimos m-1 smbolos recibidos por X. si estos smbolos forman la secuencia P, entonces la salida debe valer 1, por lo cual es trivial representar la salida como: 1 si (S (t), X (t))=P Z(t)= 0 CC donde el valor de la salida t depende del estado y de la entrada, siendo una maquina de Mealy. Si X es binaria el almacenamiento del vector que representa el estado puede realizarse de un modo muy sencillo con un conjunto de m-1 biestables, encadenados linealmente de tal forma que la salida de cada uno esta conectada a la entrada del siguiente. Al recibir un pulso de reloj, cada biestable manda la informacin que contiene al biestable que esta a su izquierda, de modo que el conjunto de los biestables almacena siempre los m-1 bits recibidos por la entrada X. en cada ciclo de reloj un comparador verifica si (S(t), X(t)) es idntico a P, en cuyo caso produce una salida Z(t)=1. El esquema se puede extender ya que usando N comparadores y una puerta OR se pueden reconocer N secuencias. Si X(t) no fuera binaria, no se producira ninguna variacin y habra que poner la entrada como un vector del tipo

20

X(t)=(Xk-1(t),, X0(t)) lo cual transforma en el problema del reconocimiento simultneo de k secuencias binarias, que puede resolverse mediante la utilizacin de k reconocedores de secuencias, cuyas salidas alimentan a una puerta AND de k entradas.

TEMA 6. IMPLEMENTACIN DE SISTEMAS SECUENCIALES SINCRONOS.


1. BIESTABLES. 1) Biestable RS asncrono.

Puede almacenar una informacin binaria modificable poniendo un 1 en una de las entradas y que se conserva poniendo 0. Por esto recibe el nombre de biestable. Por lo que hace la entrada r se le llama Set (S). Por lo que hace la entrada s se le llama Reset (R). R Q R S Q S

BIESTABL E RS

Q Q

21

S(t) 0 0 1 1

R(t) 0 1 0 1

Q(t +t) Q(t) 0 1 0

Estructura, smbolo y tabla de la verdad del biestable RS asncrono

2)

Biestable RS sncrono.

El valor de Q y Q solo cambia cuando CLK vale 1. Si vale 0, el circuito seria un RS asncrono a 0, sin variar su estado. R Q Clk Q

R
CLK

BIESTABLE RS S SINCRONO

3)

Biestable D sncrono

Tiene una sola entrada, D, y su estado es el valor de la entrada en el periodo de reloj anterior. Desde un RS sncrono se obtiene un D aadiendo un inversor de modo que D coincida con S y R se complemente. Q Clk Q D Al actuar como un elemento de memoria que puede almacenar un bit durante un ciclo y tiene una sola entrada, es adecuado para almacenar el estado en una maquina de Mealy o Moore. Esto presenta ciertos
22

inconvenientes. Si cuando Clk vale 1 D tiene un valor estable, pasara lo dicho. Pero si D varia, la seal podra hacerlo varias veces antes de que Clk volviese a 0, por lo que no cumplira el concepto de sncrono (el estado no debe cambiar mas de una vez por ciclo). Adems, si Clk vale 1 y D pasa de 0 a 1, el retardo del inversor har que brevemente las entradas a las puertas AND desde D estn a 1, pudiendo propagarse estos valores por las puertas AND hasta las puertas NOR. As el biestable RS asncrono formado por las NOR tendra las entradas a 1 y seria imprevisible. Para evitar esto se dispone de un dispositivo donde el D que decide S(t+1) correspondiera a un intervalo concreto y corto. La mejor opcin seria hacer el nuevo estado del biestable quede fijado por el valor de D cuando pasa de 0 a 1 o de 0 a 1, de CLK (flancos de subida y de bajada). El estado del biestable seria determinado por D en un instante concreto estos biestables se llaman biestables disparados por flanco. El smbolo incluye un pequeo ngulo al lado de la entrada del reloj. Si el flanco es de bajada se incluye adems un crculo en tal entrada.

D BIESTABLE D

Clk

El estado de este biestable lo determina el valor de D en el flanco de bajada de la seal del reloj. En otro momento el estado no varia por los cambios de D. si el flanco de bajada es instantnea ningn circuito puede funcionar, permaneciendo D estable durante un tiempo en torno al flanco de bajada del reloj. Se puede implementar un D disparado por flanco con NAND.
23

2. IMPLEMENTACIN CANNICA.
Se basa en el diagrama de estados. Consta de un registro de estado, que almacena el estado, y dos sistemas combinacionales para implementar las funciones de salida y de transicin de estado. Obtener la implementacin cannica de un sistema secuencial implica la realizacin sistemtica de una serie de pasos, el primero de los cuales es la obtencin de una especificacin mediante un diagrama de estados. El comportamiento de un sistema puede ser representado por varios diagramas que pueden contener distinto nmero de estados. La cantidad de estados puede repercutir sobre el nmero de biestables y en el coste del diseo. Esto implica la conveniencia de usar el mnimo nmero de estados en la especificacin. A veces estos diagramas no son fciles de obtener. Pese a todo esto, el diseador se debe centrar en que el diagrama represente con exactitud el comportamiento del sistema, ya que un diagrama no mnimo puede llevar a una implementacin correcta. El siguiente paso es la asignacin de codificaciones binarias a los estados, a las entradas y a las salidas del sistema. Se han desarrollado procedimientos que permiten hacer esto de un modo ms o menos ptimo, y que se han incorporado a los programas de ayuda al diseo que estn a la disposicin del diseador de hardware. Los pasos finales se refieren a la creacin de las tablas de verdad de los sistemas a implementar y a su realizacin fsica, respectivamente.

3. INICIALIZACION DE SISTEMAS SECUENCIALES SINCRONOS


Cmo se logra que un sistema secuencial sncrono tenga un estado inicial antes del primer pulso de reloj? Utilizando biestables con entrada de borrado (Clear) y puesta a 1 (Preset). Mientras Clear y Preset estn a 1, el circuito se comporta como un biestable D sncrono. Por ello se dice que 1 es el estado de reposo de estas entradas. Si Clear vale 0 y Preset 1, el biestable adopta el estado 0 valga lo que valga Clk. Al subir Clear, el biestable sigue en 0 hasta que se aplique el pulso de reloj. Preset se comporta de un modo anlogo a Clear, aunque cuando vale 0 hace que el biestable adopta el estado 1. Como Clear=Preset=1 no provoca ningn cambio en el estado del biestable, son activas a la baja, lo cual se denota con un pequeo circulo en tales entradas. Si valieran 0, el biestable tendra un estado indeterminado, por lo que esto no esta permitido.

24

4. MODULOS SECUENCIALES ESTANDAR.


a)
Registro. Es una asociacin de biestables D con Clk comn, pudiendo almacenar un vector de n bits. Tiene una entrada de n bits y una salida de n bits. Se pueden usar biestables disparados por flanco de subida o bajada. n

Clk

REGISTRO

N A este tipo de registro no se le puede llevar a un estado inicial concreto, ni cargarlos de un modo selectivo al recibir un pulso de reloj. Para controlar ambas funciones se aaden Clear y Load. Cuando Clear vale 0 significa que su estado es cero y que el registro almacena un 0. Esta entrada es asncrona y permite llevar al registro al estado cero antes del primer pulso de reloj. Esto solo pasa si el estado inicial se representa por 0 en binario. Solo carga si Load vale 1, lo cual representa un medio de preservar el estado aunque reciba pulsos de reloj. Funciona del siguiente modo: Si Clear = 0 Q (t + t)=0 (t es el retardo de Clear a travs de los biestables). Si Clear vale 1, Q (t) Load = 0 Q (t+1) E (t) Load = 1

b) Registro de desplazamiento.
Desplazan la informacin que contienen en uno o ambos sentidos. Desplazamiento a la derecha. Asociacin de biestables conectados de modo que con cada pulso cada biestable transfiere el bit que contiene al que esta a su derecha. Desplazamiento a la izquierda. Es como el de a la derecha pero al revs.

25

Desplazamiento bidireccional. Desplaza la informacin en ambos sentidos bajo el control de una seal externa recibida por un MUX. Desplazamiento bidireccional con carga en paralelo y desplazamiento en serie. Si a un registro de desplazamiento bidireccional se le aade la funcionalidad de un registro convencional se obtiene un nuevo modulo secuencial muy verstil. Recibe bits en serie y los almacena por desplazamiento a la izquierda o la derecha.

n ESD

Entrada en paralelo ESI

REGISTRO
CLK N salida en paralelo

C0 C1

Para controlar este dispositivo existen 2 entradas, C1 y C0, que permiten seleccionar el modo de desplazamiento. Para pasar de paralelo a serie se procede del siguiente modo: 1) Cargar n bits en paralelo en el ciclo t. 2) Desplazar el contenido del registro a la izquierda o la derecha. Para pasar de serie a paralelo se procedera as: a. Introducir n bits por ESD/ESI en los ciclos t,t+n-1. b. Tras el ciclo t+n la informacin estar en paralelo en los cables que representan el estado del registro. Tambin implementa la multiplicacin y divisin por potencias de 2.

c) Contadores.
adems de contar, puede realizar la funcin de un registro con carga en paralelo. Incluye las seales Load, Contar y Clear. Funciona as: Si Clear vale 0, Q (t + t)=0. Si Clear vale 1,

E (t) si Load vale 1. Q (t+1) (Q (t) + 1) mod p si load vale 0 y contar vale 1 Q (t) si load vale 0 y contar vale 0.
26

N entrada Load Clk N salida Clear Contar

d) Banco de registros. A veces conviene agrupar en un circuito un


conjunto de registros tales que el procesamiento de lo que almacenan solo afectara a uno de ellos mnimo en cada ciclo. Esto es un banco de registros, formado por 2k registros de un bit cada uno. Las k entradas, llamadas lneas de direccin, especifican un binario de 0 a 2k-1 que selecciona el registro a leer o escribir. La funcin de estas lneas es identificar el registro a acceder, y se usa la letra A (Adress). L/E selecciona el tipo de operacin a efectuar. Al leer, el contenido del registro aparecer sobre las lneas de salida de datos, y al revs, solo que el dato se almacenara en el registro seleccionado segn el flanco activo. Lneas de entrada de datos Lneas de direccin

Clk

BANCO DE REGISTROS

L/E

Lneas de salida de datos

5. INTRODUCCIN AL DISEO ALGORITMICO DE SISTEMAS DIGITALES: PROCESADOR Y UNIDAD DE CONTROL.


En la implementacin distinguiremos dos partes claramente diferenciadas, llamadas procesador y controlador.
27

El procesador, tambin llamado unidad de proceso o ruta de datos, esta formado por circuitos combinacionales y secuenciales. Los combinacionales transforman la informacin y la encaminan dentro del sistema. Los secuenciales la almacenan. El controlador o unidad de control es un circuito secuencial que genera como salida la informacin necesaria para gobernar el funcionamiento del procesador. Debe generar en todo momento los valores adecuados para todas las entradas de control de los MUX, decodificadores o circuitos aritmticos que se encuentren en el procesador, as como las entradas de carga o borrado de registros, incremento de contadores, desplazamientos. Todas estas entradas reciben el nombre de puntos de control.

TEMA 6. ARQUITECTURA BSICA DEL COMPUTADOR.


1. COMPUTADORES VON NEUMANN.

Estn formados bsicamente por 3 mdulos: Unidad de memoria. Almacena las instrucciones y los datos del programa. Unidad central de proceso (CPU). Ejecuta las instrucciones. Unidad de entrada/salida. Transfiere informacin entre el computador y el usuario.

Segn la informacin que lleven se distinguen tres buses: Bus de datos. Por el van los datos entre la memoria, los dispositivos de entrada/salida y la CPU. Son grupos de bits que codifican nmeros, caracteres.Tambin lleva las instrucciones de los programas de la memoria a la CPU.

28

Bus de direcciones. Las direcciones son nmeros naturales que indican la direccin de los datos dentro de la memoria o del espacio de direcciones de e/s. los genera la CPU. Bus de control. Transmite las seales de control de todos los mdulos del computador.

Bus de datos Bus de direcciones Bus de control

CPU

MEM

E/S

PERIFERICOS DE E/S

MONITOR DISQUETERA, CD

IMPRES ORA

TECLADO

MOUSE

a)

Caractersticas de la CPU.

Esta formada por 2 bloques: Unidad de proceso. Realiza todas las operaciones requeridas por las instrucciones del nivel de lenguaje maquina. Esta formada por:

ALU. Contiene los circuitos digitales necesarios para realizar las operaciones aritmetico-lgicas requeridas. Banco de registros. contiene los registros que almacenan temporalmente los datos y resultados con los que opera la ALU. Registros especiales. Contienen la informacin necesaria para la correcta ejecucin de las instrucciones y el programa. Buses internos. Conexiones entre los distintos elementos de la UP.

29

Unidad de control. Gestiona el buen funcionamiento de las operaciones da la UP para que se ejecuten bien las instrucciones. Esto se hace generando en orden las seales de control necesarias para coordinar el funcionamiento de del resto de unidades de un computador. La UC es secuencial y su complejidad depende de la UP y el nmero de instrucciones a ejecutar.

El objetivo de la arquitectura es soportar los programas a ejecutar, que estn en alto nivel, siendo muy distinto del lenguaje maquina de la arquitectura. Es importante estudiar el diseo del nivel del lenguaje maquina de modo que un compilador traduzca bien los programas. Hay que considerarlos datos que debe soportar el lenguaje maquina, las instrucciones que debe poder ejecutar, los mtodos de direccionamiento que debe ofrecer, y como controlar el secuenciamiento de las instrucciones.

b)

Caractersticas de la CPU.
Organizacin lineal de las palabras de memoria. Todas son igual de largas y no hay distincin explicita entre instruccin y datos. El secuenciamiento de las instrucciones es implcito, y lo determina el orden en que han sido almacenadas. Solo se modifica el orden ejecutando instrucciones de salto. La CPU ejecuta una a una las instrucciones. Es lenguaje maquina de bajo nivel, basado en operaciones simples sobre datos elementales soportados por la CPU.

DESCRIPCION DE LA ARQUITECTURA DE UN COMPUTADOR SENCILLO: LA MAQUINA RUDIMENTARIA.


2.

Es un computador simple y pedaggico del tipo von Neumann. 1) LA MEMORIA.

El tipo de datos que soporta la MR so nmeros enteros de 16 bits codificados en complemento a 2. El rango es [-215,..,215-1]. Tiene una RAM de 256 palabras de 16 bits. Cada direccin contiene una instruccin o un dato, y se referencia con una direccin nica. Su bus de direcciones es de 8 bits. Su rango es [0, 28] o bien [00h, FFh] en hexadecimal con 8 bits. Al contenido de cada direccin se le llama palabra. Posee dos buses de entrada de 16 bits, uno para leer (Mout) y
30

otro para escribir (Min), un bus de direcciones de 8 bits (M@) y una seal de lectura/escritura (L/E). Para almacenar un dato se debe poner en Min, la direccin de memoria en M@, y L/E en 1. Tras cierto tiempo, el dato queda almacenado. Para recuperar el dato, se pone su direccin en M@ y un 0 en L/E. El dato se puede leer en Mout. Contenido 6062h Direccin 00h 01h 16 16 8 Mout M@ Min

1 FFh 2)

MEMORIA
L/ E

LA CPU.

Es el ncleo central de todo computador, ya que ejecuta las instrucciones del programa, que pueden ser aritmtico-lgicas, de transferencia de datos entre memoria y CPU, y de salto. La UP esta formada por un conjunto de bloques combinacionales y secuenciales: Registro de instrucciones (IR). Registro de 16 bits; almacena la instruccin que se esta ejecutando. Contador de programa (PC). Registro de 8 bits, que almacena la direccin de la instruccin siguiente. Banco de registros. conjunto de registros visibles por el programador de lenguaje maquina. Contiene 8 registros (de R0 a R7) de 16 bits. R0 siempre vale 0 y no se puede modificar. ALU (Unidad aritmticolgica). Realiza las operaciones aritmtico-lgicas requeridas por las instrucciones. Solo opera con datos almacenados en el Banco de Registros y, a veces, en el IR. El resultado se almacena en el BR. Indicadores de condicin. La ALU evala si el resultado es cero o negativo. Esto se almacena en 2 registros de 1 bit. N (signo) es 1 si es negativo y 1 si positivo. Z (=0?) es 1 si es 0 y 1 N no lo es. si
M 31

UC

Salidas Entradas

Banco De registros

UP

IR

PC AL U

CPU

La UC genera varias seales para gestionar el funcionamiento de los bloques de la UP. 3) BUSES DE INTERCONEXION.

Los buses de la MR tienen estas caractersticas: El bus de datos tiene las siguientes partes: Uno de 16 bits para datos de la CPU Memoria. Otro de 16 bits para datos e instrucciones de memoria CPU. El de direcciones es de 8 bits (28 palabras). El de control es la nica seal de 1 bit (L/E).

Bus de datos (16 bits) Bus de datos (16 bits)

CPU

Bus de direcciones (8 bits)

Memoria 28 x 16

Bus de control (1 bit)

32

3. LENGUAJE MAQUINA DE LA MR: TIPOS Y FORMATOS DE INSTRUCIONES. 1) Aritmtico-lgicas.

Realizan operaciones aritmticas o lgicas del algebra conmutacional. Sirven para hacer operaciones matemticas, calcular la condicin de los bucles y las condiciones en sentencias de toma de decisin. Su formato es el siguiente: Nombre de instruccin (operacin a realizar), operando fuente (datos con los que opera), operando destino (donde se escribe el resultado) Los registros con los operandos fuente se llaman Rf, y el que recibe el resultado es el Rd. Si el registro se especifica como Rx (x 07) es del BR. Si el operando es inmediato se pone #n. Junto al resultado guardan informacin sobre si es cero o negativo. Operan con datos de 16 bits en complemento a 2.

Codificacin de la informacin.
CO (cdigo de operacin). Identifica el tipo de instruccin.

Usa 2 bits. Para las aritmtico lgicas es 11. OP (operacin aritmtica). Se requieren tres bits para codificar una de las posibles instrucciones. ADD100 SUB101 ASR110 AND111 ADDI000 SUBBI001 Rd (registro destino). 3 bits para un registro del BR. Rf1 (registro fuente 1). dem. Rf2 (registro fuente 2). dem. Para ASR sirve para codificar el operando fuente. Operando inmediato n. Se codifica en decimal en mnemotcnica con # antes, y en maquina en binario C2 en 5 bits.

Las instrucciones que requieran 2 operandos en registros requieren los siguientes campos: CO (2), OP (3), Rf1 y 2 (6 en total), Rd (3). En total son 16 bits, por lo que sobran 2 bits codificados con 0s siempre.
15 CO 13 Rd 10 Rf1 7 Rf2 4 00 2 OP 33 0

Las instrucciones con un operando inmediato y otro en registro requieren los siguientes campos: CO (2), OP (3), Rd (3), Rf (3), # (5), en total 16 bits en cada palabra.
15 CO 13 Rd 10 Rf 7 Inmediato 2 OP 0

2) acceso a memoria.

Instrucciones de

Permiten la transferencia de datos entre BR y M, y al revs. Hay 2 tipos: Load (carga), que lleva una palabra de la memoria a un registro, y Store (almacenamiento), que guarda el contenido de un registro en una direccin de memoria. El formato de en mnemotcnica es: Nombre instruccin, operando fuente, operando destino. Los operandos pueden estar en el BR o en la M. Para Load, el fuente esta en memoria y el destino en el BR; en Store es al revs. La MR ofrece un solo mecanismo paras calcular la direccin de memoria de las palabras a las que acceden Load y Store. Direccin de acceso:= direccin base + desplazamiento. La direccin base es un numero natural de 8 bits codificados en la instruccin. El desplazamiento esta en los 8 bits de menor peso de un registro del BR (Ri). Load A (Ri), Rd. Escribe en un registro del BR un dato de 16 bits almacenados en la memoria. La direccin de la palabra se calcula como se ha dicho anteriormente. La direccin base se identifica como un natural en decimal (A). Ri se escribe despus de A entre parntesis. La ejecucin actualiza N y Z segn el dato de la memoria. Store Rf, A (Ri). Escribe en una direccin de memoria un dato de 16 bits almacenado en el BR. El registro a leer es Rf. La direccin de memoria se calcula durante la ejecucin. No cambian N y Z.

Codificacin de la informacin.

34

CO. Identifica el cdigo de operacin con 2 bits. Para Load es 00 y para Store es 01. Rd. Registro destino de Load. 3 bits para un registro del BR. Rf. Registro fuente del Store. dem. Ri. Registro ndice con el desplazamiento usado en el clculo de la direccin de memoria. 3 bits para un registro del BR. Son los 8 bits de menor peso del Ri. Direccin base. Direccin base de 8 bits. Contiene la instruccin a ejecutar.

Load requiere CO (2), DB (8), Ri (3) y Rf (3). Store requiere CO (2), DB (8), Ri (3) y Rd (3).
15 CO 13 Rd 10 Ri 7 Direccin base 0 LOAD 0 Direccin base STORE

15 CO

13 Rf

10 Ri

El acceso a datos estructurados se puede hacer tambin por el mecanismo de clculo de direcciones. Los vectores se suelen almacenar en posiciones consecutivas de memoria desde una DB, la del primer elemento del vector.

3) salto.

Instrucciones de

Permiten realizar bucles y realizar sentencias de tomas de decisin para romper el secuenciamiento implcito de las instrucciones en un programa. La condicin de salto se evala a partir del valor de N y Z, que deben haber sido actualizadas por la ALU o un Load antes. Hay 7 tipos: BL, BG, BEQ, BNE, BLE, BGE, BR. Codificacin de la informacin.
CO. 10 identifica a las instrucciones de salto. COND. Se requieren 3 bits para codificar una de las 7: BRsalta siempre000 BEQsalta si es igual a 0 (Z=1)001 35

BLsalta si es menor que 0(N=1)010 BLEsalta si es que 0 (N=1 y Z=1)011 BNEsalta si no es igual a 0 (Z=0)101 BGEsalta si es mayor o igual a 0 (N=0 y Z=1)110 BGsalta si es mayor que 0 (N=0 y Z=0)111

DD. Direccin de memoria (8 bits) donde esta la siguiente

instruccin. Requieren CO (2), COND (3) y DD (8), en total 13 bits; los 3 que faltan para los 16 son 000.
15 13 10 7 0 CO COND 000 Direccin

TEMA 7. DISEO E IMPLEMENTACIN DE UN COMPUTADOR SENCILLO. 1. DISEO DE LA UNIDAD DE PROCESO.


La UP realiza todas las operaciones necesarias para completar una instruccin. Esta gestionado por las seales de control de la UC. Debe generar informacin para que la UC sepa como va la ejecucin de cada instruccin, y decida as cual es el secuenciamiento de las seales de control para ejecutar el programa. La UC necesita saber que tipo de instruccin se ejecuta.

1) Diseo modular.
Para poder ejecutar las instrucciones se requiere que la UP pueda realizar una serie de operaciones:

Almacenar la instruccin en ejecucin. Ejecutar las instrucciones requiere consultar los campos de bits de la instruccin. Para facilitar esto se almacena la instruccin en un registro de 16 bits,
36

ya que contiene informacin para controlar las operaciones que se realicen. Este registro es IR. Cuando se inicia la ejecucin de la instruccin, IR se carga con la informacin que viene de la memoria a travs de Mout. Para ello se requiere que Ld_IR este a 1 y que L/E este a 0. Ambas seales son controladas por la UC. 16
IR Mout

MEMORIA Ld_IR

L/ E

Control del secuenciamiento implcito. La MR tiene un bloque especial para gestionar el secuenciamiento implcito de instrucciones. Este bloque es PC, que genera las instrucciones. Cada vez que se inicia la ejecucin de la instruccin dada por PC, este se incrementa en 1, pasando a la siguiente instruccin. Para esto se usa un contador o un sumador. Cuando se carga PC, este es gestionado por la UC a travs de Ld_PC. Si es de salto, la direccin de la prxima ejecucin esta en IR. Para saber que direccin de memoria corresponde, se pone un MUX conectado a PC, IR y el bus de direcciones. Tiene 8 bits en la salida y se llama SELDIR. Su seal de control (PC/@) es enviada por la UC.

SELDIR PC +1 IR

M@

Ld_PC

MEMORIA

Banco de registros. Contiene 8 registros de 16 bits que almacenan los datos requeridos por las instrucciones y para guardar los resultados. Tambin almacenan el desplazamiento para hallar la direccin de memoria en Load y Store. No permite hacer ms de 1 operacin del mismo tipo por ciclo, pudindose leer y escribir a la vez. Esto afecta al diseo de los bloques de la UP y su gestin. Requiere:
37

Una entrada de 3 bits para codificar el registro a leer (SL). Una salida de 16 bits para leer el registro codificado en SL (Dout). Una entrada de 3 bits para codificar el registro a escribir (SE). Una entrada de 16 bits con el dato a escribir en el registro codificado en SE (Din). Una seal de permiso de escritura en el registro indicado (SE). El registro a leer puede venir de Rf1 y Rf2 de las operaciones aritmtico lgicas (bits 10 8 y 7 5) o de Ri y Rd/Rf de Load y Store (10 8 y 13 11). Al estar Ri y Rf1 con los mismos bits, solo hay que escoger entre 3 grupos de bits, lo cual se hace mediante un MUX llamado SELREG. Sus dos bits de control (CRf1 y 0) los controla la UC. La codificacin del registro a escribir puede venir de los bits (13 11) de la instruccin (Rd de las aritmtico lgicas y Load), que se conectan a SE. La seal de escritura del BR (ERd) la dirige la UC. 3 3 No usada 3
Rf/R d Rf1/Ri Rf2 SELREG

3 3

SL BANCO DE Dout REGISTROS SE E Din

16

2 CRf

16

ALU. Ejecuta las instrucciones aritmtico lgicas y calcula el valor de N y Z segn un operando previamente ledo. Especificaciones de la ALU. Se requieren 3 bits para codificar una de las operaciones de la ALU. Por ello tiene las siguientes conexiones con el exterior.
3 bits de control (C0, C1, C2) que seleccionan la operacin.

2 entradas de 16 bits (A y B) para leer los operandos. 1 salida de 16 bits (O) para el resultado. 2 salidas de 1 bit con el resultado de N y Z.
38

La codificacin de C1 y C0 es la de los 2 bits de menor peso del OP de las operaciones aritmtico lgicas. Valen lo mismo tanto para las sumas como las restas. Los 2 de menor peso del registro de instruccin solo pueden conectarse a C1 y C0 en la ALU. La UC solo tendra que generar C2, que dice a la ALU si debe dejar pasar el resultado (C2 = 0) o si debe operar C1 y C0 (C2 = 1). Esta seal se llama OPERAR. Diseo de la ALU.
Suma y resta. Se hace en un sumador y un restador de

16 bits. Generan un bit de acarreo no usado por la MR. Desplazamiento a la derecha. Permite realizar divisiones por 2 desplazando a la derecha todos los bits de 16 bits. Se requieren 16 AND que realizan el producto bit a bit de los 2 operandos. Dejar pasar operando. La ALU debe disponer de un camino directo que lleve directamente el valor de un operando hasta la salida. Este operando es el B, y esta operacin actualiza N y Z en Load. Generacin de N y Z. N se activa con el bit de mayor peso del resultado. Z se obtiene por una puerta NOR de 16 entradas conectada a los 16 bits del resultado.

Despl

AND

39

16 16 0

16 1

16 2 3

16 0 1
C0 C1

16
C2

16 N Z O Conexin con el resto de componentes. Para ejecutar instrucciones aritmtico lgicas con dos operandos hay que leer dos veces el BR, ya que solo permite una lectura por ciclo. Hay que disponer de un registro adicional de 16 bits para almacenar uno de los operandos. Este registro es RA y esta conectado a Dout y a la A de la ALU. El proceso para efectuar una instruccin aritmtica es: Leer Rf1 y almacenarlo en RA. Esto lo controla la UC por Ld_RA. II. Leer Rf2 y poner un1 en OPERAR. Tras la operacin se actualizan N y Z y se guarda el resultado en Rd, para lo cual la salida de la ALU esta conectado a Din. Dos registros de 1 bit almacenan el valor de N y Z; la carga de estos registros, llamados RN y RZ, esta controlada por Ld_RN y Ld_RZ. Para las operaciones que requieran un operando inmediato, el 2 operando es una constante de 5 bits almacenada en la instruccin en IR. Al operar la ALU en 16 bits, debe hacerse una extensin de signo del # a 16 bits. I.

40

La entrada A de la ALU siempre lee el contenido de RA, que es el primer operando. El segundo operando se lee a travs de B, y puede venir de BR o de IR. El operando fuente de Load, proveniente de la memoria, tambin se lee por B, ya que es la entrada que deja pasar a un operando hacia la salida activando N y Z.
Dout IR Mout SELDAT RA

ERd Ld_RA
Din

EXT

Co0 MEMORIA Op2

Ld_RZ
RZ

Ld_RN
RN

A O

OPERAR

Como en la entrada B se leen operandos de 3 bloques, hace falta un MUX (SELDAT). Es de 4 entradas de 16 bits cada una, y se controla por OP2 y CO0. Son los bits 2 y 14, respectivamente, de IR. CO0 distingue entre instrucciones aritmtico lgicas y Load. OP2 dice si el segundo operando es del BR (OP2 = 1) o inmediato (OP2 = 1).

Evaluacin de la condicin de salto. Cuando se ejecuta una instruccin de salto, la UC debe decidir si salta o no segn los 3 bits de COND codificados en los bit 13 11 de la instruccin de salto, y del valor de N y Z. decidir si saltar o no la puede realizar un bloque especial que reciba como entrada las 5 seales. La salida de este bloque (Cond) es de un bit, y es la entrada de la UC lo que le dice si salta o no. Este bloque se llama evaluacin de la condicin. 1 1
41

Evaluacin de la condicin

RZ

Cond 1

RN COND

Calculo de direcciones. Load y Store son las nicas que accionan la memoria para leer o escribir un dato. La direccin de memoria se calcula sumando una direccin base (los 8 bits de menor peso de la instruccin) y un desplazamiento (8 bits de menor peso de Ri). Para Store se requiere otro registro, ya que se requiere leer dos registros del BR, Ri y Rf, y el BR solo permite uno solo por ciclo. Este registro es R@ y se carga con Ld_R@. Store se ejecuta en 2 pasos: R@:=X + Ri M[R@]:=Rf Load se ejecuta: Load X (Ri), Rd R@:=X + Ri Rd:=M [R@] Si la ejecucin es secuencial, basta con seleccionar la entrada 0 de SELDIR, y el PC se incrementa cada ciclo cuando Ld_PC esta a1. Si salta, la direccin se almacena antes en R@. Basta con seleccionar R0 y almacenar el resultado de sumar R0 con la direccin en R@: R@:=IR7 0 + R0= IR 7 0+0= IR 7 0 Luego se selecciona 1 en SELDIR, accediendo a la instruccin de salto, y se carga el PC con este valor incrementado en 1. Esto se resume en: R@:=IR7 0 + R0 PC:=R@ + 1

Dout

BR

42

16 8 8
+1 IR

16

Min

R@

Ld_R@ PC/@ 8 1
SELDIR

MEMORIA
M@

PC

8 0

43

8
Dout Min

+
Din

R@

MEMORIA
Seldir

M@

PC +1

IR EXT Mout SELDAT RA

Evaluacin de la condicin

RZ A RN O B

L/E 44

2. DISEO DE LA UNIDAD DE CONTROL.


1) Fases de ejecucin de una instruccin.

a) Fetch. El objetivo de esta fase es realizar las siguientes operaciones:


IR:=M [PC] PC:=PC + 1 Primero se accede a la memoria para leer la posicin que indica el PC, y la instruccin contenida en dicha posicin se almacena en el registro PC en una unidad para que este contenga la direccin de memoria de la siguiente instruccin a ejecutar. Es al final de la fase fetch, marcado por el flanco de reloj del sistema, cuando se actualiza el contenido de IR y PC. La direccin de memoria a leer permanece invariable en PC durante todo el ciclo que dura la fase de fetch. Es al final cuando IR y PC se actualizan, cuando el flanco de reloj indica el comienzo de la fase de descodificacin. Las acciones requeridas en la fase fetch (poner en el bus de direcciones de memoria el contenido del PC a travs de SELDIR, leer la instruccin e incrementar el PC) tienen cierto retardo. Es necesario que la suma de los tiempos de retardo de las acciones que se realizan sean menores que el tiempo de ciclo de reloj. Esto asegura que el flanco de reloj llegue cuando todos los bits tengan un valor estable a la entrada de los registros que se han de actualizar. Por eso el tiempo de ciclo de reloj debe ser superior a la suma del tiempo de retardo de SELDIR ms el tiempo de lectura de un dato de memoria, y a la suma de SELDIR ms el tiempo de incrementar PC.

b) Fase de descodificacin (deco).


Las operaciones que debe realizar la UP para ejecutar las instrucciones dependen del tipo de instruccin, determinado por CO. En la fase deco, la lgica de la UC evala el CO de la instruccin para decidir que operaciones realizar. La UC no hace ninguna operacin ms en esta fase. El contenido de los registros se conserva poniendo a 0 sus controladores de carga.

45

c) Tabla de salidas de las fases de Fetch y decodificacin.


Salidas UC Ld_RA Ld_IR Ld_PC Ld_R@ Ld_RZ Ld_RN ERd L/E PC/@ CRf OPERAR

Fetch 0 1 1 0 0 0 0 0 0 X X

Deco 0 0 0 0 0 0 0 0 x x x

d) Ejecucin de las instrucciones aritmtico lgicas.


Requiere que en la ALU se realicen operaciones sobre 2 nmeros enteros de 16 bits codificados en C2, llamados operandos, salvo ASR que tiene solo 1 operando. Estos operandos pueden estar contenidos en el BR o en los bits de IR. La UC de la MR se ha diseado de modo que todas las instrucciones aritmtico lgicas se ejecuten segn una secuencia de operaciones. En la fase de bsqueda de operandos la UC trae los operandos desde donde estn hasta la ALU. En el caso de ADD, SUB y AND estn en el BR. En el caso de SUBI y ADDI el primer operando esta en el BR y el segundo en IR. Para ASR, el nico operando se lee desde el BR, considerndose una instruccin de dos operandos donde el primero no se usa.

I. Bsqueda del primer operando.


Su objetivo es realizar la siguiente operacin: RA:=Rf1 El registro Rf1 esta codificado en los bits (10 8) de IR. Para acceder a el, los bits CRf de la UC se activan a 01. A la vez, se activa Ld_RA de RA. As el contenido del Rf1 se carga en RA cuando llega el flanco de reloj que indica el final del ciclo. Si la instruccin es ASR, la lectura del primer operando se hace para no establecer diferencias entre la ejecucin de las
46

distintas instrucciones aritmtico lgicas. Los bits correspondientes a Rf1 no contienen informacin valida y el valor que se carga en RA corresponde al contenido de un registro indeterminado del BR. La lectura del primer operando no afecta a ASR.

II. Bsqueda del segundo operando y ejecucin de la instruccin.


Su objetivo es realizar estas operaciones: Rd:=RA op Rf2 RN:=( RA op Rf2 < 0) RZ:=( RA op Rf2 = 0) El primer operando esta en RA al empezar la fase. Adems de llevar el segundo operando a la entrada B de la ALU, se debe permitir que la ALU ejecute la operacin deseada y su resultado sea escrito en el registro destino. Si el operando esta en el BR, el identificador de Rf2 esta codificado en los bits (7 5) de IR. Para llegar a el los dos bits de CRf se activan a 10. Los bits de control de SELDAT vienen de IR y valen 1 para estas instrucciones. Por ello se selecciona el canal 3 para alimentar la entrada B de la ALU. Si el segundo operando es inmediato se obtiene de IR directamente. Como se requiere un operando de 16 bits en C2, e IR contiene un operando de 5 bits, se debe hacer una extensin de signo. Para ADDI y SUBI CO0 es 1 y OP2 es 0, seleccionando el canal 2 de SELDAT, proveniente del modulo de extensin de signo. Mediante esta conexin se consigue poner el segundo operando en la entrada B de la ALU. Para que la ALU realice la operacin requerida se codifica OP de modo que coincida con la codificacin de la operacin que la ALU debe realizar. Adems la seal OPERAR de la UC debe estar activada a 1 para que la operacin se realice (sino dejara pasar el operando B a travs de la ALU). El resultado puede ser escrito en el registro destino con el flanco de reloj que indica el fin de ciclo. Para escribir el resultado en el Rd, la UC debe activar a 1 ERd, lo cual permite que se cargue el registro cuyo nmero se codifica en el campo Rd de la instruccin. En la fase de ejecucin las instrucciones aritmtico lgicas se actualizan los registros que almacenan los indicadores de condicin, RN y RZ, segn el valor obtenido por la ALU. Para ello se activan las seales de carga Ld_RN y Ld_RZ.
47

Tabla de salidas de las instrucciones aritmtico lgicas.

Salidas UC Ld_RA Ld_IR Ld_PC Ld_R@ Ld_RZ Ld_RN ERd L/E PC/@ CRf OPERAR

LPO 1 0 0 0 0 0 0 0 X 1 X

LSOE 0 0 0 0 1 1 1 0 x 2 1

e) Ejecucin de las instrucciones de acceso a memoria.


Tanto Load como Store acceden a memoria. Ambos usan un registro del BR y un campo de la instruccin para calcular la direccin de memoria a la que se accede. Para hacer esto, la UP necesita 2 fases tras deco, una comn a Load y Store en la que se calcula la direccin y se almacena en R@, y otra en la que se accede a la direccin especificada en modo de escritura (Store) o lectura (Load).

Carga de la direccin de acceso a memoria en R@.

Se encarga de realizar la siguiente operacin: R@:=Ri7 0 + IR7 0 para calcular la direccin de acceso a memoria de un Load o un Store. Para realizar esta suma se usa el sumador conectado a la entrada de R@. El registro ndice se toma del BR poniendo a 01 la seal CRf que controla SELREG. A la salida del sumador se obtiene la direccin del operando. La seal de carga del registro debe estar a 1 para que la direccin se almacene en R@ al llegar el pulso de reloj que indique el final del ciclo.
48

Ejecucin de la instruccin Store. Escritura en memoria.


Realiza la operacin: M[R@]:=Rf Es decir, escribir en el registro fuente la direccin de memoria indicada por R@. La UP manda el contenido de Rf, especificado en IR13 11, al bus de entrada de memoria (Min). La seal CRf de SELREG se pone a 00. La direccin donde debe escribirse el dato es enviada al bus M@ por SELDIR activando a 1 la seal PC/@. Se requiere que la seal de lectura y escritura este a 1 durante todo el ciclo. As el dato se escribe en la direccin adecuada una vez transcurrido el tiempo requerido por la memoria para escribir un dato en una posicin.

Ejecucin de la instruccin Load. Lectura de memoria.


Su objetivo es realizar las siguientes operaciones: Rd:=M [R@] RN:=(M [R@] < 0) RZ:=(M [R@] = 0) Es decir, escribir el contenido de la posicin indicada por R@ en el registro destino y modificar los contadores de condicin RN y RZ segn el valor de la posicin de memoria. La direccin contenida en R@ es mandada a M@ a travs de SELDIR. Para ello la UC activa a 1 PC/@. Tras el retardo el dato esta disponible en el bus de salida de la memoria Mout y puede ser escrito en el registro destino. Load modifica los indicadores de condicin. Por eso el dato ha de atravesar la ALU para que se calculen los valores de los indicadores de condicin, para lo cual el dato debe atravesar SELDAT. Mout esta conectado a las entradas 0 y 1 de SELDAT. La entrada de mayor peso del MUX es CO0. Para Load vale 0. Para que la ALU deje pasar el valor de la entrada B, la UC debe activar a 0 la seal OPERAR. Cuando se produzca un flanco de subida Ld_RN y Ld_RZ se activan para que se actualicen RN y RZ. Cuando el dato pasa por SELDAT y la ALU debe ser escrito en el registro destino, para lo que se activa la seal ERd.

49

Tabla de salidas para las instrucciones de Load y Store.


Salidas UC Ld_RA Ld_IR Ld_PC Ld_R@ Ld_RZ Ld_RN ERd L/E PC/@ CRf OPERAR AD Store Load 0 0 0 1 0 0 0 0 x 1 x 0 0 0 0 0 0 0 1 1 0 x 0 0 0 0 1 1 1 0 1 x 0

f) Ejecucin de las instrucciones de salto.


Todas ellas se ejecutan de un modo similar. Una instruccin tiene dos fases. Una dice si se ejecuta o no el salto; en caso de que se deba realizar la segunda fase calcula la direccin de la instruccin destino del salto y se ejecuta Fetch de esa instruccin. Si no se salta, se hace el Fetch de la instruccin siguiente en secuencia.

Fase de evaluacin de la condicin de salto.


Decide si se realiza o no el salto. Esto se hace mediante el modulo Evaluacin de la condicin. Tiene como entradas RN y RZ y el COND de IR13 11. El modulo manda un bit llamado cond a la UC, indicando si debe ejecutar o no el salto. Si se produce pasa a la segunda fase del salto. Si no, se pasa al FETCH de la siguiente instruccin. En esta fase no se realiza ninguna operacin en la UP.

Fase de clculo de direccin y ejecucin del salto.

Solo se realiza si cond vale 1. Realiza estas operaciones: R@:=IR 7 0 PC:=IR 7 0 + 1 IR:=M [R@]
50

Esta fase requiere dos ciclos. En el primer ciclo, para que los bits de IR7 0 puedan ser copiados en R@ deben pasar por un sumador que esta a la entrada de este registro. En el segundo ciclo se hace el FETCH de la instruccin de salto, cuya direccin esta contenida en R@. PC/@ debe tomar el valor 1 para que la direccin que se enva a memoria se la de R@. Para completar la operacin de FETCH, la instruccin debe ser almacenada en IR y el PC debe cargarse con esta direccin incrementada en 1. Para esto se deben activar las seales de carga de PC e IR. Con esto se consigue que se pueda seguir con el secuenciamiento implcito partir de la direccin a la que se ha saltado.

Tabla de estados de las instrucciones de salto.


Salidas UC Ld_RA Ld_IR Ld_PC Ld_R@ Ld_RZ Ld_RN ERd L/E PC/@ CRf OPERAR

EC 0 0 0 0 0 0 0 0 0 x x

AD 0 0 0 1 0 0 0 0 x 1 x

B 0 1 1 0 0 0 0 0 1 x x

51

g) Diagrama de estados y tabla de salidas de la UC.

Salidas UC Ld_RA Ld_IR Ld_PC Ld_R@ Ld_RZ Ld_RN ERd L/E PC/@ CRf OPERAR

F DECO AD Load Store LPO LSOE EC 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 x 1 1 x x x x x 1 x 0 1 2 x x x x 0 x x 1 x

B 0 1 1 0 0 0 0 0 1 x x

52

FETCH

100 Xx0

xxx DEC O Xxx xxx

10x

xxx

0xx

11x

EC

ADR

LPO xxx

Xx1

01x

00x

ADR 2

STOR E

LOA D Xxx

LSOE

BRANC H

53

h) Optimizaciones del diagrama de estados.


Estn destinadas a reducir el nmero de estados. Esto simplifica el diseo de la UC y reduce el tiempo de ejecucin en la MR al reducir los ciclos requeridos para cada instruccin. Un modo de hacer esto es estudiar las tareas que realicen 2 o ms estados consecutivos. Si estas tareas se pueden hacer a la vez, los estados pueden transformarse en uno solo que realiza el trabajo de todos ellos. La funcin de salida de este estado es una combinacin de las funciones de salida de los estados a los que substituye. Otro modo es estudiar las tareas de 2 o ms estados A y B que se ejecutan de forma excluyente a partir de un tercer estado C:
Si las ramas de las seales de salida de A y B son equivalentes

ambos pueden combinarse en un estado D que sucede al estado C y tiene la misma tabla de salidas. Si los valores de las seales de salida son compatibles ambos estados pueden combinarse en un estado D que sucede al C, y que tiene como salida una combinacin de las salidas de A y B.

1) Optimizacin 1.
Un claro ejemplo del primer tipo de optimizacin se puede aplicar entre los estados de decodificacin y evaluacin de la condicin de salto. Son consecutivos, con igual tabla de salidas y ninguno realiza operaciones sobre la UP. En deco se evala CO y durante ECS se evala la condicin de salto. La evaluacin de estos tres bits se puede hacer a la vez, ya que durante deco no se altera el valor de cond. Por ello ambos pueden formar un nuevo estado, llamado DECS, que tiene la misma tabla de salidas de deco o ECS.

2) Optimizacin 2.
Un ejemplo del segundo tipo de optimizacin afecta a los estados ADR1 y ADR2 que se ejecutan tras deco y ECS. Son dos estados equivalentes, producen los mismos valores en las salidas de la UC, pero se llega a ellos a partir del cumplimiento de condiciones distintas.
54

A ADR1 se llega desde DECS cuando CO es 0x (Load o Store), y a ADR2 se llega desde DECS cuando CO es 10 (instruccin de salto) y el bit cond es 1. Ambos se pueden reunir en un nico estado ADR al que se accede desde DECS si cumple cualquier condicin de las que llevaban a ADR1 o ADR2. Tras la unificacin desde DECS se pasa a ejecutar ADR si se ha descodificado una instruccin Load, Store o de salto. Se mantiene los cdigos de operacin de todas ellas.

3) Optimizacin 3.
Como DECS no realiza ninguna operacin sobre la UP se puede anticipar durante este estado parte del trabajo que se realiza una vez que la instruccin se descodifica. Se puede ver que la actividad en la UP durante ADR y LPO es compatible. En ambos se lee del BR el registro codificado en IR10 8. En LPO, su contenido se escribe en RA, mientras que en ADR su contenido se suma a los bits de la direccin base y se escribe en R@. Si se comparan sus tablas de salidas las nicas diferencias entre ambas se encuentran en las seales de carga de estos registros. Como en DECS no se realiza ninguna operacin en la UP, se pueden anticipar las operaciones que realizan ambos en DECS. La salida del nuevo estado (DECO) es una combinacin de las salidas de ADR y LPO. Esto es posible porque las aritmtico lgicas no utilizan el valor que pudiese estar almacenado en R@, y Load, Store y las de salto no requieren el valor que hubiera almacenado en RA.

4) Optimizacin 4.
La ltima optimizacin afecta a las instrucciones aritmtico lgicas, y consiste en anticipar el FETCH de la siguiente operacin. Se puede ver que FETCH y LSOE son compatibles, y por tanto se pueden unificar en un solo estado llamado ARIT. La salida de este estado es el resultado de combinar la salida de ambos estados. Como el FETCH de la siguiente instruccin se realiza en ARIT, el estado que se ejecuta despus es DECS.
55

Esto no se puede hacer con Load o Store ya que en ambos se accede a memoria y por lo tanto no son compatibles con FETCH.

5) Diagrama de estados y tabla de la verdad simplificados.


Salidas UC Ld_RA Ld_IR Ld_PC Ld_R@ Ld_RZ Ld_RN ERd L/E PC/@ CRf OPERAR F 0 1 1 0 0 0 0 0 0 x x D 1 0 0 1 0 0 0 0 x 1 x A 0 1 1 0 0 0 0 0 0 2 1 L 0 0 0 0 1 1 1 0 1 x 0 S 0 0 0 0 0 0 0 1 1 0 x B 0 1 1 0 0 0 0 0 1 x x

FETC H 100 xxx Xxx DECOP ARI T

Xxx

00x STOR E LOA D


56

Xxx

101 Xxx 11x

01x

BRANCH

57

Vous aimerez peut-être aussi