Sunteți pe pagina 1din 36

Fundamentos de Computadores Tema 5 Circuitos Aritmticos

OBJETIVOS
Conceptuales:
Suma y resta binaria Implementaciones hardware/software Circuito sumador y semi-sumador bsico Sumadores/restadores de n bits Acarreo y desbordamiento Unidad aritmtico-lgica

OBJETIVOS
Procedimentales:
Diseo de etapas aritmticas bsicas Diseo de sumadores de n bits. Asociacin de sumadores. Diseo de sumadores/restadores en complemento a 2 Diseo de unidades aritmtico-lgicas

OBJETIVOS
Actitudinales:
Importancia del diseo modular y reutilizacin de diseos. Complemento a 2 como base para la implementacin hardware de circuito aritmticos Abstraccin al nivel RT

Bibliografa

Bsica:
[GARC92] Captulos 3, 7 y 8 [NELS96] Captulos 1 y 4 [WAKE94] Captulos 2 y 5 [ALMO94] Captulos 1, 2 y 3

Complementaria:
[FLOYD00] Captulo 2 [HAMA90]

CONTENIDOS

INTRODUCCIN CIRCUITOS SUMADORES BSICOS SUMADOR PARALELO DE N BITS SUMADOR RESTADOR UNIDAD ARITMTICO LGICA (ALU)

INTRODUCCIN
Los sistemas digitales poseen una gran potencia de clculo ya que permiten ejecutar con gran velocidad operaciones aritmticas y lgicas

Una operacin aritmtica en un computador puede ser realizada de dos formas: hardware: existe un circuito en el procesador que realiza esa operacin (gran velocidad y alto coste) software: existe un algoritmo que descompone esa operacin en otras ms elementales que son realizadas mediante hardware

INTRODUCCIN
Hardware aritmtico en los procesadores: Todos los procesadores poseen al menos un sumador-restador, los procesadores diseados para el clculo numrico (coprocesadores matemticos) poseen multiplicadores e incluso circuitos para la divisin.

Software aritmtico en los procesadores: Los procesadores ms simples poseen instrucciones para la suma y la resta, a medida que aumenta la complejidad se incluyen instrucciones de multiplicacin y divisin, en los ms complejos se tienen operaciones ms abstractas como exponenciales, logaritmos, etc

INTRODUCCIN
Las principales diferencias entre la forma de operar manual y la de un computador digital son: La base del sistema de numeracin es B = 2 (binaria). Aunque no siempre, tambin la aritmtica a utilizar es la binaria. La forma de representar nmeros con signo normalmente no es con signo-magnitud, sino a travs de los complementos (a 2 o a 1). El nmero de bits de los datos est acotado, lo que introduce errores de desbordamiento, de precisin y de cumplimiento de propiedades algebraicas (las operaciones se vuelven no-cerradas y pueden incumplirse las propiedades asociativas y distributiva).

CIRCUITOS SUMADORES BSICOS


Ejemplo de suma de dos nmeros binarios:
0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 Acarreo A B Suma

En general:
c3 c2 a3 b3 S3 a2 c1 a1 a0 b0 Acarreo A B Suma

b2 b1

S2 S1 S0

CIRCUITOS SUMADORES BSICOS


Semisumador o Half Adder: Se trata del circuito que suma dos bits. Obtiene como salida el bit de suma y el acarreo.

ai b i 0 1 0 1 0 0 1 1

Ci+1 Si 0 0 0 1 0 1 1 0

ai bi HA

Si Ci+1

CIRCUITOS SUMADORES BSICOS


Semisumador o Half Adder: Una posible implementacin mediante puertas lgicas

Ci+1 = ai bi Si = ai bi

ai bi

& Ci+1

ai bi

=1

Si

CIRCUITOS SUMADORES BSICOS


Sumador completo o Full Adder: Permite realizar la suma de tres bits simultneamente. Obtiene como salida el bit de suma y el acarreo.

ai bi Ci 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1

Ci+1 Si 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 ai bi Ci Si FA Ci+1

CIRCUITOS SUMADORES BSICOS


Full Adder: Una implementacin mediante puertas lgicas:

Ci+1 = ai bi + ai Ci + bi Ci Si = ai bi Ci

ai bi ai bi ai Ci bi Ci

=1 Ci &

=1

Si

&

& Ci+1

&

CIRCUITOS SUMADORES BSICOS


Full Adder: Una implementacin mediante semisumadores

ai bi

HA Ci+1

Si

HA Ci+1

Si

Si

Ci

>1

Ci+1

SUMADOR PARALELO DE n BITS


Un sumador paralelo de n bits, es un dispositivo lgico combinacional de 2n+1 entradas y n+1 salidas que realiza la suma de dos nmeros binarios de n bits.
an-1an-2 a0 bn-1bn-2 b0 Cout cn-1 . . . c2 c1 c0 = Cin an-1 . . . a2 a1 a0 + bn-1 . . . b2 b1 b0 Sn-1 . . . S2 S1 S0 Cin

A
Cout

B S

Sn-1Sn-2 S0

SUMADOR PARALELO DE n BITS


Sumador paralelo con acarreo serie
Es el ms intuitivo y tiene un coste razonablemente bajo.
an-1bn-1Cn-1 a2 b2 C2 a1 b1 C1 a0 b0C0 = Cin

FA

....

FA

FA

FA

Cout = Cn Sn-1

C3 S2

C2 S1

C1 S0

Tambin es conocido como sumador de rizado o ripple adder. Se trata de un circuito modular.

SUMADOR PARALELO DE n BITS


Sumador paralelo con acarreo serie
Es lento debido a la propagacin serie del acarreo
an-1bn-1Cn-1 a2 b2 C2 a1 b1 C1 a0 b0C0 = Cin

FA

....

FA

FA

FA

Cout = Cn Sn-1

C3 S2

C2 S1

C1 S0

El tiempo que tarda en realizarse una suma crece linealmente con el nmero de bits.

El problema del desbordamiento en la suma de magnitudes


Con n bits el rango representable es [0,2n-1] Si A+B>2n-1, el resultado no es representable hay desbordamiento (overflow) Cout seala la existencia de desbordamiento En caso de desbordamiento, el resultado correcto est en el nmero de n+1 bits CoutSn-1 - S0 = A + B
0 0 1 1 (0) 1 0 0 1 + 0 0 1 1 OK! 1 1 0 0 Ci A B 1 0 1 1 (0) 1 0 0 1 A + 1 0 1 1 B A+B 0 1 0 0

A + B =1 0 1 0 0

La suma-resta de nmeros con signo


Calcular la diferencia A-B es equivalente a calcular A + (-B) la resta aritmtica se reduce a una suma implica trabajar con nmeros con signo
A, B 0 (s) 1 (r) ( B)

s/r B

S=A+B

La suma-resta de nmeros en compl. a 2


Utilizaremos la notacin complemento a 2 para representar los nmeros positivos y negativos

1001 = -7 0101 = +5 1110 = -2 1100 = -4 1111 = -1 11011 = -5

1100 = -4 0100 = +4 1 0000 = 0 0101 = +5 0100 = +4 1001 = -7

0011 = +3 0100 = +4 0111 = +7 1001 = -7 1010 = -6 1 0011 = +3

desbordamiento

SUMADOR RESTADOR
En general, A - B = A + (-B) A, B 0 (s) 1 (r) Cout B -B Sumador paralelo de n bits A B

Complementador C de n bits Y Cin s/r

s/r

S=A+B

SUMADOR RESTADOR
El complementador es simplemente una coleccin de XOR:
B C 0 1 Y B B Complementador C de n bits Y

Bn-1

Bn-2 =1 ... Yn-2

B0

=1 Yn-1

=1 Y0

El problema del desbordamiento en la sumaresta de nmeros con signo


Se pone de manifiesto porque la magnitud ocupa un bit ms y el bit de signo no es correcto

En caso de desbordamiento, el resultado correcto est en el nmero de n+1 bits CoutSn-1 - S0 = A + B La deteccin del desbordamiento se lleva a cabo mediante una seal adicional: el bit de overflow (V)

El problema del desbordamiento


En la suma, el desbordamiento se produce cuando: al sumar dos nmeros positivos se obtiene un negativo al sumar dos nmeros negativos se obtiene un positivo
Cn Cn-1 0 1 0 an-2 . . . 0 bn-2 . . . 1 Sn-2 . . . Cn Cn-1 1 0 1 an-2 . . . 1 bn-2 . . . 0 Sn-2 . . .

a0 b0 S0

a0 b0 S0

V = Cout Cn-1

SUMADOR RESTADOR
El sumador restador quedara:

an-1 bn-1
Cout V

an-2 bn-2 Cn-2

Cn = Cout
A +/S B s/r

FA

Cn-1

FA

Bit de Signo (en su caso)

Sn-1

Sn-2

=1 V

V = Cout Cn-1

ALU: La Unidad Aritmtico-Lgica


(Arithmetic-Logic Unit)

Es el circuito donde se realiza el procesado de datos Procesado: operaciones aritmticas y lgicas. Normalmente se opera sobre dos datos Usualmente pueden realizar diversas operaciones. Para escogerlas se incluyen unas seales de seleccin Adems de las salidas que muestran el resultado de la operacin, se incluyen otras salidas (flags) de estado o de condicin. Tpicamente son Cout, V, Z (Z=1 si el resultado es 0) y S (signo)

ALU: La Unidad Aritmtico-Lgica

A = an-1 ...a0 B = bn-1 ...b0 n seales de seleccin Sk-1 ...S0 k Cin n F = fn-1 ...f0 n m salidas de estado

ALU

ALU: La Unidad Aritmtico-Lgica


Un ejemplo es:
S2S1S0

Funcin ALU Cin = 0 Cin = 1 F=A F = A+ B F=A-B-1 F=A-1


Incrementa F=A+1 Suma F = A + B + 1 Suma con acarreo Resta y decrementa F = A - B Resta Decrementa Transfiere F = A; F = A B A v B: OR F = A B: XOR F = A & B A B A ^ B: AND Transfiere

000 001 010 011 100 101 110 111

F = A: NOT

ALU: La Unidad Aritmtico-Lgica


Realizacin de la ALU: Se separan las partes Aritmtica y Lgica. Cada una de ellas n-plica la etapa de un bit.
ai bi Ci

LUi Ci+1 fLUi 1 0

AUi

S1 S0 fAUi S2

fi

ALU: La Unidad Aritmtico-Lgica


-> ALU de n bits como cascada de n mdulos de 1 bit:

an-1 bn-1 Cout Cn-1 Ci+1


...

ai bi Ci . . . C1 ALUi

a0 b0 Cin

ALUn-1

ALU0

S2 S1 S0 fn-1 fi f0

Diseo de la Unidad Lgica


Diseo con multiplexor
Funcin F = A B: AND F = A B: OR F = A: NOT F = A B: XOR S1S0 00 01 10 11 fLUi ai . bi ai + bi ai ai b i

ai bi ai bi ai ai bi

& >1 1 =1 S1S0

0 1 2 310

fLUi

Tambin se puede realizar un diseo en dos niveles

Diseo de la Unidad Aritmtica


El bloque aritmtico consta bsicamente de un sum. paralelo Para obtener las diferentes operaciones se ha de modificar los datos de entrada al sumador
S2S1S0 000 001 010 011 Funcin ALU Cin = 0 F=A Transfiere F = A+ B Suma F = A - B - 1 Resta y decrementa F=A-1 Decrementa Cin = 1 F=A+1 Incrementa F = A + B + 1 Suma con acarreo F=A-B Resta F = A; Transfiere

Bi Ai Ci+1
Generador Y

Yi Ci

S1 S0

Sumador Fi = Ai + Yi

Diseo de la Unidad Aritmtica


A Cout 0 Cin = 0 Cout A 0 Cin = 1

Sumador paralelo F=A


Transfiere A

Sumador paralelo F=A+1


Incrementa A

A Cout

B Cin = 0 Cout

B Cin = 1

Sumador paralelo F=A+B


Suma

Sumador paralelo F=A+B+1


Suma con acarreo

Diseo de la Unidad Aritmtica


A Cout B Cin = 0 Cout A B Cin = 1

Sumador paralelo F=A+B


(e) Resta y decrementa

Sumador paralelo F=A+B+1


(f) Resta

A Cout

11 ... 1 Cin = 0 Cout

11 ... 1 Cin = 1

Sumador paralelo F=A-1


(g) Decrementa A

Sumador paralelo F=A


(h) Transfiere A

Diseo de la Unidad Aritmtica


Bi Ai Ci+1
Generador Y

Yi Ci

S1 S0

S1S0 00 01 10 11

Yi 0 Bi Bi 1

Sumador Fi = Ai + Yi

bi S1 S0 00 01 11 10

0 0 0 1 1 Yi

0 1 1 0

bi S0 bi S1

& >1 & Yi

S-ar putea să vă placă și