Beruflich Dokumente
Kultur Dokumente
COMPUTADORE S
PROFESORES: Katzalin Olcoz Herrero. Guadalupe Miana.
1
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.
4.
V.
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.
II.
computador sencillo: la MR.
III.
X (t)
Z (t)
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)}
1)
X
F3 1 1 Tabla de la verdad
0 0 1 0
1 0
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
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)
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
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
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
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
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)
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)
c)
NOT (inversor). X X
11
d)
e)
f)
XOR. Z Z= X1 X0= X1 X0 + X0 X1
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
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
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
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.
S/R
15
SUMADOR
C3
C-1
S3
s2
s1
s0
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
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.
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
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)
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
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.
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
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.
24
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
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
Clk
BANCO DE REGISTROS
L/E
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.
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.
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.
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).
CPU
Memoria 28 x 16
32
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
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
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
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
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
Evaluacin de la condicin
RZ A RN O B
L/E 44
45
Fetch 0 1 1 0 0 0 0 0 0 X X
Deco 0 0 0 0 0 0 0 0 x x x
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.
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
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
49
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.
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
Salidas UC Ld_RA Ld_IR Ld_PC Ld_R@ Ld_RZ Ld_RN ERd L/E PC/@ CRf OPERAR
B 0 1 1 0 0 0 0 0 1 x x
52
FETCH
100 Xx0
10x
xxx
0xx
11x
EC
ADR
LPO xxx
Xx1
01x
00x
ADR 2
STOR E
LOA D Xxx
LSOE
BRANC H
53
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.
Xxx
Xxx
01x
BRANCH
57