Unidad 4
Unidad 4
Unidad 4
RECINTO UNIVERSITARIO SIMON BOLIVAR Facultad de Electrotecnia y Computacin Departamento de Arquitectura y Sistemas
UNIDAD IV
INDICE DE CONTENIDO
4 4.1 4.2
UNIDAD DE EJECUCION LA FUNCION DE PROCESAMIENTO REPRESENTACION DE DATOS 4.2.1 4.2.2 4.2.3 4.3 4.4 4.5 4.6 4.7 REPRESENTACIN DE ENTEROS NEGATIVOS. NMEROS EN PUNTO FLOTANTE OTROS TIPOS DE DATOS:
1 1 1 1 3 3 3 7 7 8 8 8 10
LA UNIDAD ARITMETICA LA UNIDAD LOGICA DISEO DE LA ALU EXTENSIONES DE LA ALU REGISTROS DE PROPOSITO GENERAL 4.7.1 DISEO DE LOS REGISTROS DE PROPSITO GENERAL O GPR
4.8
4 UNIDAD DE EJECUCION
4.1 LA FUNCION DE PROCESAMIENTO
La funcin de procesamiento en la computadora es realizada por la unidad de ejecucin. Esta unidad est constituida por la unidad aritmtica y lgica (ALU), los registros de propsito general (GPR) y todo hardware adicional que est destinado a realizar clculos (por ejemplo, una unidad de punto flotante o FPU). La ALU es la responsable de la ejecucin de los clculos dentro del procesador. Para tal cometido necesita almacenamiento interno temporal dentro del CPU por lo cual se le provee de tales almacenamientos por medio de registros de propsito general (GPR) que permiten almacenar operandos. Recordemos que en la forma en que se provean estos almacenamientos ha definido histricamente los diferentes tipos de arquitectura: Acumulador, Pila y Registros. Tambin la ALU puede contar con sus propios registros auxiliares que almacenan o retienen los datos sobre los que opera.
A Valor ( N ) ai r
i 0
n 1
La computadora trabaja en binario es decir r = 2. Cualquier entero en decimal puede representarse en binario. Otras bases importantes en arquitectura de computadoras son la Hexadecimal y la Octal. La gran ventaja de stas es que su base es potencia de 2 y por tanto tienen un nmero exacto de bits para cada dgito (4 para Hex. y 3 para Octal) con lo cual es ms fcil manipular y convertir datos.
4.2.1.1
Signo-magnitud
El bit ms significativo o MSB se destina para representar el signo (1 = negativo, 0 = positivo) y el resto de bits para representar la magnitud. En este caso el valor del nmero est dado por:
Pgina 1
A Valor ( N ) (1)
[ MSB]
i n2
a r
i
Ntese que existen dos posibles ceros: -0 y +0, por cuanto el rango es: [ (2 n-1 1), + (2 n-1 1)].
4.2.1.2
Complemento a r-1:
O simplemente el complemento. Como nuestra base binaria es 2, esta tcnica se denomina complemento a 1. Resulta de la complementacin del nmero bit a bit. En este caso, se entiende que el signo est integrado al nmero. Por la misma convencin, el valor del MSB indica el signo del nmero. En las operaciones siempre se debe sumar el acarreo al resultado. Rango: [ (2 n-1 1), + (2 n-1 1)]. En complemento a 1, al igual que en signo-magnitud, tambin tenemos 2 ceros, uno positivo y otro negativo.
4.2.1.3
Complemento a r
En binario: Complemento a dos. Un nmero se niega en complemento a dos desplazndolo un mdulo de su posicin. Esto es equivalente a complementar el nmero y sumarle 1. En las operaciones se desestima el acarreo sobrante. Esta representacin es la ms directa al momento de implementar las operaciones en la ALU. El rango es: [ 2 n-1, +2 n-1 1] pues solo existe un cero y es considerado positivo. Una tcnica muy til para calcular el valor de un nmero binario en complemento a 2 es el uso de la caja de valores. En sta, cada posicin representa su valor en positivo excepto la posicin ms significativa que representa su valor en negativo.
-128
64
32
16
4.2.1.4
Exceso a M
Las representaciones en complemento son muy apropiadas para agilizar los clculos aritmticos por cuanto las operaciones aritmticas entre nmeros de distinto signo no requieren operaciones extras para el manejo del signo. Sin embargo, adolecen del efecto de corrimiento de rango, con lo cual los nmeros no son fcilmente comparables si queremos establecer una relacin de orden. Para datos cuyo orden debe ser comparable, se propone otra tcnica llamada Exceso a M. En sta, el valor del nmero es el exceso de su valor positivo respecto a M. M representa el lmite de corrimiento o el cero del sistema. Aunque M puede ser cualquier valor positivo dentro del rango, si deseamos un conjunto simtrico, M debe ser la mitad del alcance del rango. Por ejemplo, en nmeros de 4 bits, M sera 8 de forma tal que 0000 equivaldra a 8 y 1111 a +7. En esta representacin, los nmeros quedan ordenados segn nuestros ejes coordenados.
En sistemas simtricos
2n y V(N) = A - M 2
Pgina 2
Usan sistemas de codificacin como el ASCII. Actualmente se emplean formatos ms largos como UNICODE que emplea 2 bytes por carcter.
4.2.3.2
Fecha y Tiempo:
Puede emplearse diferentes formatos. Por ejemplo, para llevar solo fechas, se suele usar un nmero de 32 bits(4 Bytes) y emplear el formato YYYYMMDD o hacerlo con 8 caracteres. Para llevar adems el tiempo, se suele emplear nmeros ms largos (64 o ms bits) para llevar un contador de segundos o milsimas de los mismos. En este caso el valor del nmero representa los segundos transcurridos desde una fecha inicial de ventana, por ejemplo 01/01/1900 a las 00:00.
4.2.3.3
Estructuras:
Se construyen en base a los tipos de datos simples o primitivos, que se almacenan contiguos en la memoria. Son de inters especial las estructuras estticas como las cadenas de caracteres y los arreglos.
Pgina 3
Una unidad de hardware que suma dos nmeros de 1 bit con acarreo, es llamado un sumador completo. El diagrama de bloques, tabla de verdad e implementacin de un sumador completo son mostrados en la figura 4.3. De la tabla de verdad, mediante la tcnica de trminos mnimos, se puede obtener la ecuacin lgica de S i y Ci+1 que corresponde a la suma de las entradas y el acarreo resultante, respectivamente. Luego de aplicar transformaciones algebraicas se obtienen las expresiones minimizadas cuya implementacin se muestra en la figura 4.3. Abajo se muestran las transformaciones algebraicas en cuestin:
Z = xiyi + xiyi = xi yi Si = ci Z + ci Z Si = xi yi ci
Xi
Yi
Xi 0 0 0 0 1 1 1 1
Yi 0 0 1 1 0 0 1 1
Ci 0 1 0 1 0 1 0 1
Si 0 1 1 0 1 0 0 1
Ci+1 0 0 0 1 0 1 1 1
Ci+1
Sumador Completo
Ci
Xi ' Yi '
Xi Yi
Xi ' Yi Ci
Xi Ci
Ci+1
Xi Yi '
Yi
Si = Xi
Xi Yi
Yi
Ci
Ci
Pgina 4
Se puede implementar sumadores completos para n bits, conectando en cascada n sumadores completos de 1 bit. La figura 4.4 presenta el esquema a bloques y la estructura de un sumador de 4 bits. Este tipo de sumador es tambin llamado Sumador de Acarreo propagado (CPA), dado que el acarreo en este circuito es propagado serialmente a travs de cada sumador completo. Cuando se suman dos nmeros, el acarreo inicial C 0 siempre es 0 excepto en caso de substraccin con operandos complementados a 2. Con el CPA, este acarreo necesita ser transmitido de un sumador a otro haciendo el proceso bastante lento.
X3 Y3 X2 Y2 X1 Y1 X0 Y0
X3 Y 3 X Y2 X1 Y1 X0 Y0 2
FA
C3
FA
C2
FA
C1
FA
C0
C4
CPA
C0
C4 S3 S2 S1 S0
S3 S 2 S 1 S 0
Como se puede apreciar en la figura 4.4, para generar el Ci+1 de Ci, se incurre en el retardo de tiempo de propagacin de dos niveles de compuertas lgicas en serie. Para generar Si, se gasta el tiempo de retardo de tres compuertas. Aunque el diseo de un CPA de n bits es directo, el tiempo de propagacin del acarreo en un CPA limita la velocidad de operacin. Por ejemplo; en un CPA de 16 bits, la operacin de suma es completada solamente cuando la suma del 15avo bit est disponible. Para ello, se debe contar con la suma en el 1er bit y su acarreo, luego la del 2do, tercero, etc. Supongamos que el tiempo de retardo de una compuerta es t, entonces el tiempo requerido para la suma de dos nmeros de 16 bits es: 15 * 2t (retraso de c0 hasta c15) + 3t (tiempo para generar s15 de c15) 33t Si t = 10 ns, entonces se deber esperar un total de 330ns para obtener una suma, lo cual es prohibitivo en las computadoras donde el tiempo de respuesta de la ALU se espera por debajo de los 100ns. Esto crea la necesidad de pensar en una tcnica que incremente la velocidad de operacin. Tal tcnica es conocida como Carry Look Ahead (acarreo adelantado) y permite acelerar la suma en un factor de 3. En esta tcnica se emplea hardware extra para generar cada acarreo (C i, i> 0) directamente de C0. Para ser mas prctico, considere el diseo de un sumador de acarreo adelantado de 4 bits (CLA: Carry Look Ahead) a partir de nuestro diseo original de CPA. Inicialmente recordemos que en un sumador completo, la salida de acarreo C i+1 est relacionada al acarreo de entrada Ci , de la siguiente manera:
C i+1 = Gi + PiCi
donde
Gi = XiYi
Pi = Xi+Yi
Pgina 5
La funcin G es llamada la Funcin Generadora del Acarreo, puesto que un acarreo es generado cuando Xi *Yi es 1. Si Xi o Yi es un 1, entonces el acarreo de entrada Ci es propagado al prximo sumador. Por esta razn, la funcin Pi es a menudo referida como Funcin de Propagacin de Acarreo. Usando Gi y Pi; C1, C2, C3, y C4 pueden ser expresados como siguen: C1 = G0 + P0C0 C2 = G1 + P1C1 C3 = G2 + P2C2 Estas ecuaciones son recursivas, y la recursin puede ser removida como se indica a continuacin: C1 = G0 + P0C0 C2 = G1 + P1C1 = G1 + P1(G0 + P0C0) = G1 + P1G0 + P1P0C0 C3 = G2 + P2C2 = G2 + P2(G1 + P1G0 + P1P0C0) = G2 + P2G1 + P2P1G0 + P2P1P0C0 C4 =G3 + P3C3 = G3 + P3(G2 + P2G1 + P2P1G0 + P1P1P0C0) = G3 + P3G2 + P3P2G1 + P3P2P1G0 + P3P2P1P0C0 Este resultado muestra que C1, C2, C3 y C4 pueden ser generados directamente de C0 y las entradas. Por esta razn, estas ecuaciones son llamadas Ecuaciones de Acarreo Adelantado. Estas ecuaciones pueden implementarse en un bloque hardware y alimentar con el las entradas de los carry del sumador completo obteniendo un CLA. La figura 4.5 muestra la implementacin de tal CLA. En funcin de un bloque CLA de n bits podemos implementar una unidad aritmtica de n bits de suma y resta como muestra la figura 4.6
X3 Y3 X2 Y2 X1 Y1 X0 Y0 C0
C3 FA FA
C2 FA
C1 FA
C0
S3
S2
S1
S0
16 16 F
Y 16 MUX
MUXsel
CLA
Cin
S0
Figura 4.6. Unidad Aritmtica de Suma y Resta
Parte importante de la unidad aritmtica son las banderas de resultado o condicin de las operaciones. Estas banderas se unen en una palabra de estado del procesador PSW o un registro de banderas FLAGS que es accesible bit a bit, pues se implementa
Pgina 6 Docente: Jos Daz Chow
como un conjunto de Flip Flops independientes. La implementacin de tales banderas se relaciona mucho con la ALU. Por ejemplo, la bandera Signo o Negativo, toma su valor del MSB o bit de signo del resultado en ALU. La bandera Zero, vale 1 cuando el resultado es 0 por tanto su implementacin es la operacin AND de todos los bits de resultado negados. La bandera Carry es el acarreo de salida del CLA.
16 16
AND
MUX G
16 16
OR
S0
Figura 4.7 Unidad lgica de dos funciones.
16 16 Unidad Aritmtica F
MUX
16 16 Unidad Lgica G
S0 S1
Docente: Jos Daz Chow
Pgina 7
Multiplicacin
Divisin
Un desplazamiento lgico de n posiciones a la derecha o a la izquierda de un nmero sin signo implica multiplicacin o divisin del nmero por 2n, respectivamente. En el caso de desplazamiento aritmtico, el bit de signo del nmero a ser desplazado debe ser retenido para asegurar que el signo del nmero se mantendr. Esto es necesario cuando se implementa desplazamiento aritmtico a la derecha. En el caso de desplazamiento hacia la izquierda, no hay diferencia entre el lgico y el aritmtico. La rotacin es til para la serializacin de datos paralelos. Dispositivos perifricos tales como lectoras de casetes esperan datos seriales de 8 bits. En esta situacin, la CPU transfiere el contenido de un registro de 8 bits del CPU a la lectora rotando el registro 8 veces. Tambin se emplea la rotacin para algunas operaciones de conteo aritmtico. Muchos CPUs permiten la rotacin con Carry lo que significa que la bandera de Carry forma parte de la rotacin. Si la rotacin es a la izquierda, el carry entra al bit menos significativo o lsb en tanto que el bit ms significativo se almacena en el acarreo. En caso de rotacin derecha sucede lo inverso, el carry se almacena en el bit ms significativo y el menos significativo pasa al acarreo.
Pgina 8
Para disear un registro de propsito general con capacidad de desplazamiento, vamos a proponer una celda bsica S. La organizacin de esta celda es mostrada en la figura 4.6. En este diseo, un multiplexor de 4 entradas selecciona una de las entradas externas para que sea la entrada D del flip-flop, y la entrada seleccionada aparecer en la salida del Flip-Flop Q despus del pulso del reloj. La entrada CLR es una entrada asincrnica de clear, y limpia el FF en el instante que sta es puesta en nivel bajo (cero).
s1 s0
MUX
s1 s0
s1 s0
s1 s0 CLK CLR
CLK D CLR Q
CLK
S
CLK CLR
CLR qi Salida qi Salida Organizacin interna de la celda bsica S Diagrama a bloque de la celda bsica S
Podemos disear un GPR completo usando la celda bsica S, mediante conexin en cascada, como muestra la figura 4.10. En esta figura, R (Right Shift Serial Input) y L(Left Shift Serial Input) son entradas que permiten implementar el desplazamiento y la rotacin segn el valor que tengan en cada momento.
X3 R (Entrada derecha) X2 X1 X0 L (Entrada izquierda)
s1 s0 CLK CLR
s1 s0
S3
S2
S1
S0
CLK CLR
q3
q2
q1
q0
Pgina 9
La tabla de verdad con las operaciones de este registro se presenta en la figura 4.11. Esta tabla muestra que la manipulacin de las entradas de seleccin S1 y S0 pueden causar tres operaciones distintas: Carga Paralela, Desplazamiento a la Izquierda y desplazamiento a la derecha. Si S1S0 = 11, la entradas externas Xs son seleccionadas como las entradas D a los flip-flops. Escogiendo los valores correctos para desplazamiento serial, con las entradas, R y L se pueden realizar operaciones de rotacin y desplazamiento lgico y aritmtico. Modifique esta tabla para que refleje los valores que deben de tomar R y L para implementar los desplazamientos lgicos y aritmticos y la rotacin.
D CLK CLR Q' Q CLR 0 1 1 D X 0 1 Q 0 0 1 S1 X 0 0 1 1 S0 X 0 1 0 1 CLR CLK 0 X 1 1 1 1 Operacin Clear GPR Ninguna Despl. Der. Despl. Izq. Carga Paral.
El registro puede ser cargado con cualquier dato en una forma serial. Por ejemplo, despus de cuatro operaciones sucesivas de desplazamiento a la derecha, el dato X ser cargado en el registro si el registro esta establecido en el modo desplazamiento a la derecha y el dato X requerido es aplicado serialmente a la entrada R. Para algunas aplicaciones, este retardo de n perodos de reloj para la ejecucin de una operacin, no es permisible, por cuanto se aplican otros mtodos asncronos para disear registros que no dependan de un reloj y por lo tanto sean ms rpidos. Esos tipos de registro combinacionales se denominan Barrel Shift Registers. El 68020 de Motorola y el 80386 de Intel ya emplean este tipo avanzado de registros.
Pgina 10