Está en la página 1de 26

Tema 4.

La Unidad Aritmtico-Lgica

Arquitectura de
Computadores I

ndice

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

2 / 51

z
z
z

Estructura e implementacin de la ALU


Circuitos y algoritmos para la ALU:
Operadores lgicos y de desplazamiento
Operaciones sobre el signo
Suma en coma fija
Suma en coma flotante
Dgitos de guarda
Tcnicas de redondeo
Multiplicacin y divisin en coma fija
Multiplicacin y divisin en coma flotante
La ALU en la arquitectura Von Neumann: camino de datos y
unidades funcionales
La unidad de ejecucin del MC68000
Bibliografa

Arquitectura de Computadores I

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Estructura e implementacin de la ALU (I)


z

Unida aritmtico-lgica (ALU): es el conjunto de operadores


disponibles en un computador

Formada por:

Operadores: aritmticos, lgicos y de desplazamiento


Registros para almacenar datos temporales
Registro de estado: conjunto de flags que indican situaciones
ocurridas al operar
Registro contador de programa
Registro de direcciones de interrupcin

Tipos de ALU:
Coma fija
Coma flotante

3 / 51

Arquitectura de Computadores I

Estructura e implementacin de la ALU (II)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Clasificacin de los operadores:

4 / 51

mbito de aplicacin

General
Especializado

Realizacin

Combinacional
Secuencial

Nmero de operandos

Mondico (un operando)


Didico (dos operandos)

Paralelismo

Serie o de dgito
Paralelo o de vector

Operacin

De desplazamiento
Lgico
Aritmtico

Tecnologa empleada

MOS
Bipolar

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones de desplazamiento (I)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Desplazamientos lgicos:
Independientemente del sistema de representacin de los
operandos se introducen ceros por la derecha o por la izquierda
segn se trate de un desplazamiento a la izquierda o a la
derecha, respectivamente
El bit o los bits que salen suelen copiarse en el indicador de
acarreo (el ltimo que ha salido es el que queda)

Desplazamientos lgicos
a la izquierda

5 / 51

Desplazamientos lgicos
a la derecha

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones de desplazamiento (II)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

6 / 51

Desplazamientos aritmticos:
Equivalen a multiplicaciones y divisiones por dos, segn sean
hacia la izquierda o a la derecha, respectivamente.
El sistema de representacin de los operandos debe tenerse en
cuenta si los operandos tienen signo
El bit o los bits que salen suelen copiarse en el indicador de
acarreo (el ltimo que ha salido es el que queda)

Desplazamientos aritmticos
a la izquierda en C2

Desplazamientos aritmticos
a la derecha en C2

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones de desplazamiento (III)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Desplazamientos circulares:
Los bits que salen por un extremo entran por el otro
El bit o los bits que salen suelen copiarse en el indicador de
acarreo (el ltimo que ha salido es el que queda)

Desplazamiento
concatenado a la izquierda

7 / 51

Desplazamiento
concatenado a la derecha

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones de desplazamiento (IV)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

8 / 51

Desplazamientos circulares a travs del flag de acarreo:


Los bits que salen por un extremo entran por el otro
El bit o los bits que salen suelen copiarse en el indicador de
acarreo

Desplazamiento
concatenado a la izquierda a
travs del acarreo

Desplazamiento
concatenado a la derecha a
travs del acarreo

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones lgicas (I)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Las operaciones lgicas realizan la operacin sobre cada uno de los


bits del operando o de los operandos

OR

XOR
a

a b

a
+
b

a OR b

a XOR b

0
0
1
1

0
1
0
1

0
1
1
1

0
0
1
1

0
1
0
1

0
1
1
0

9 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Operaciones lgicas (II)

10 / 51

AND

NOT

a
a*b
b

a AND b

0
0
1
1

0
1
0
1

0
0
0
1

a
0
1

a
1
0

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (I)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Operaciones sobre el signo. Cambio de signo

Signo Magnitud
E

an-1

an-2 ,

Complemento a 2

. . . , a0

an-1

an-2

an-3

...

a0
E


a*n-1

an-2 ,

. . . , a0

Complemento a 1
E

an-1 ,

an-2 ,

...

a*n-1

a*n-2

a*n-3

...

a*0

. . . , a0
...

a*n-1, a*n-2 ,

... ,

a*0

11 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (II)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

12 / 51

Operaciones sobre el signo. Extensin de signo.

Es cuando se pasa de un operando de n bits a otro de m bits con m > n.


&RQVLVWHHQYHUFRPRUHOOHQDUORVELWVTXHVREUDQFRQVHUYDQGRHOVLJQR
Signo Magnitud

Complemento a 1 y a 2

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (III)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Suma: la suma es la operacin ms importante de todas, ya que:


Se emplea para el clculo de la direccin de la siguiente
instruccin
Se utiliza para el clculo de las direcciones a los operandos
Otras operaciones la emplean: multiplicacin, divisin

Sumador elemental de un bit

Si = Ai Bi Ci-1
Ci = Ai Bi + Bi Ci-1 + Ai Ci-1

Ai
Bi

Si

Ci-1

Ci

13 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (IV)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

14 / 51

Sumador con propagacin de acarreo de n bits empleando


sumadores completos (Ripple Carry Adder) de 1 bit
a n -1 b n -1

a n -2 b n -2

a1

b1

a0

b0
C0

S um ador
e le m e n ta l

S um ador
e le m e n ta l

S um ador
e le m e n ta l

C2

C n -1

S um ador
e le m e n ta l

C1

Cn
S n -1

S n -2

S1

S0

Problemas:
Muy lento porque debe propagarse el acarreo desde el primer
sumador al segundo, del segundo al tercero y as hasta que llegue
al ltimo sumador
El retardo es 2nr ya que es el mximo retardo de niveles de
puertas que tiene que pasar para obtener el acarreo es de dos, n
es el nmero de sumadores y r el retardo de las puertas
Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (V)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Aceleracin de la suma entera:


Debido a la importancia de la suma se han diseado circuitos que
permiten acelerar el proceso. Se intenta identificar qu es lo que
depende de los bits de la suma y del acarreo para mediante
circuitos adicionales anticipar su clculo

Funcin generacin (gi = aibi)


Funcin propagacin (pi = ai
bi)
Acarreo siguiente (ci+1 = gi + pici)

15 / 51

Problema: fan-in variable


Arquitectura de Computadores I

Circuitos y algoritmos para la ALU

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Operaciones aritmticas (VI)

16 / 51

Aceleracin de la suma entera:


Se intenta homogeneizar la fan-in a
partir de sumadores con
propagacin de acarreo de 4 bits
como bloque bsico y se definen
las fuciones de Generacin y
Propagacin a nivel de bloque para
obtener, por ejemplo un sumador de
16 bits con anticipacin

Funciones a nivel de bloque


P0 = p3p2p1p0
G0 =
g3+(g2p3)+(g1p3p2)+(g0p3p2p1)
C1 = G0 + P0ce
C2 = G1 + (G0P1) + (ceP1P0)

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Operaciones aritmticas (VII)


z

Aceleracin de la suma. Salto de acarreo (CSK)


Es un sumador intermedio entre uno de propagacin y uno de
anticipacin.
Se basa en calcular las Pi que son de clculo ms sencillo.

Para un sumador de salto de acarreo de K bits:


Primer propagador: 2k +1 (el primer sumador un nivel ms)
Nmero de puertas: 2(n/k-2)
ltimo propagador: 2k
Total: nmero niveles = 4k + 2n/k -3
En nuestro ejemplo n = 16, K = 4 num. Niveles = 23
Y[15..12]

Cout

X[15..12]

Sumador RCA
4 bits

Y[11..8]

C12

X[11..8]

C8

Sumador RCA
4 bits

P15,12

Y[7..4]

Y[3..0]

C4

Sumador RCA
4 bits

P11,8
S[15..12]

X[7..4]

Cin

Sumador RCA
4 bits

P7,4
S[11..8]

X[3..0]

P3,0
S[7..4]

17 / 51

S[3..0]

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (VIII)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Aceleracin de la suma. Seleccin de acarreo


Se basa en duplicar el hardware. Se suman los bits suponiendo
acarreo cero y acarreo 1 y mediante multiplexores se elige el
resultado correcto una vez conocido el acarreo
Y[15..12]

C16

X[15..12]

C16

X[15..12]

Sumador RCA
4 bits

C12

X[11..8]

C12

Sumador RCA
4 bits

Y[11..8]

Y[7..4]

C8

X[11..8]

Sumador RCA
4 bits

X[7..4]

C8

X[7..4]

Sumador RCA
4 bits

X[3..0]

Sumador RCA
4 bits

Y[7..4]

Y[3..0]

C4

Sumador RCA
4 bits

Cin

Cout

S[15..12]

18 / 51

Sumador RCA
4 bits

Y[15..12]

Y[11..8]

S[11..8]

S[7..4]

S[3..0]

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (IX)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Tiempo de suma requerido por cada uno de los distintos


tipos de sumadores
Tiempo de suma
600

Tiempo (ns)

500
400

RCA
CLA

300

CSK
CSA

200
100
0
4

16

32

64

128

Nmero de bits

tnivel = 2 ns

19 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (X)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

z
z
z

Multiplicacin. Algoritmo de
suma desplazamiento (A x B)
Inicialmente P0 = B
Slo nmeros sin signo

Multiplicando
n
1


n

Multiplexor 0

1 bit

+ n bits
n
n

Desplazamiento
n

n
P1

P0

reloj

20 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XI)
Ejemplo A = 1100 y B = 1010

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

1100

0000
n
1

n
R egistro de

Multiplexor 0

desplazam iento

1 bit

0000 0000

P
P1

P0

0000

1010

O peracin
E stado inicial

+ n bits
n

0000

0000
n

n
0000

1010

reloj

21 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XII)
Ejemplo A = 1100 y B = 1010

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

22 / 51

1100

0000
n
1

0000

n
Multiplexor 0

R egistro de
desplazam iento

1 bit

0000

P
P1

P0

O peracin

0000 0000

0000

1010

E stado inicial

0000 1010

0000

1010

S um a

+ n bits
0

0000
n
0000

1010

1010
n

n
0000

1010

reloj

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XIII)
Ejemplo A = 1100 y B = 1010

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

1100

0000
n
1

0000

Multiplexor 0

R egistro de
desplazam iento

1 bit

0000
+ n bits
0

0000
n
0000

1010

P
P0

P1

O peracin

0000 0000

0000

1010

0000 1010

0000

1010

E stado inicial
S um a

0000 0101

0000

0101

D esplazam iento

0101
n

n
0000

0101

reloj

23 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XIV)
Ejemplo A = 1100 y B = 1010

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

24 / 51

1100

0000
n
1

0000

n
Multiplexor 0

R egistro de
desplazam iento

1 bit

1100
+ n bits
0

1100
n
1100

0101

P
P1

P0

O peracin

0000 0000

0000

1010

0000 1010

0000

1010

E stado inicial
S um a

0000 0101

0000

0101

D esplazam iento

1100 0101

0000

0101

S um a

0101
n

n
0000

0101

reloj

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XV)
Ejemplo A = 1100 y B = 1010

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

1100

0000
n
1

0000

Multiplexor 0

R egistro de
desplazam iento

1 bit

1100
+ n bits
0

1100
n
0110

0101

P
P0

P1

O peracin

0000 0000

0000

1010

0000 1010

0000

1010

E stado inicial
S um a

0000 0101

0000

0101

D esplazam iento

1100 0101

0000

0101

S um a

0110 0010

0110

0010

D esplazam iento

0010
n

n
0110

0010

reloj

25 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XVI)
Ejemplo A = 1100 y B = 1010

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

26 / 51

1100

0000
n
1

0110

n
Multiplexor 0

R egistro de
desplazam iento

1 bit

0000
+ n bits
0

0110
n
0110

0010

0010
n

n
0110

P
P1

P0

O peracin

0000 0000

0000

1010

0000 1010

0000

1010

E stado inicial
S um a

0000 0101

0000

0101

D esplazam iento

1100 0101

0000

0101

S um a

0110 0010

0110

0010

D esplazam iento

0110 0010

0110

0010

S um a

0010

reloj

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XVII)
Ejemplo A = 1100 y B = 1010

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

1100

0000
n
1

0110

Multiplexor 0

R egistro de
desplazam iento

1 bit

0000
+ n bits
0

0110
n
0011

0010

0001
n

n
0011

P
P0

P1

O peracin

0000 0000

0000

1010

0000 1010

0000

1010

E stado inicial
S um a

0000 0101

0000

0101

D esplazam iento

1100 0101

0000

0101

S um a

0110 0010

0110

0010

D esplazam iento

0110 0010

0110

0010

S um a

0011 0001

0011

0001

D esplazam iento

0001

reloj

27 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XVIII)
Ejemplo A = 1100 y B = 1010

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

28 / 51

1100

0000
n
1

0011

n
Multiplexor 0

R egistro de
desplazam iento

1 bit

1100
+ n bits
0

1111
n
1111

0001

0001
n

n
0011

P
P1

P0

O peracin

0000 0000

0000

1010

0000 1010

0000

1010

E stado inicial
S um a

0000 0101

0000

0101

D esplazam iento

1100 0101

0000

0101

S um a

0110 0010

0110

0010

D esplazam iento

0110 0010

0110

0010

S um a

0011 0001

0011

0001

D esplazam iento

1111 0001

0011

0001

S um a

0001

reloj

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XIX)
Ejemplo A = 1100 y B = 1010

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

1100

0000
n
1

0011

n
Multiplexor 0

R egistro de
desplazam iento

1 bit

1100
+ n bits
1111
n

1111

0001

0001
n

n
0111

1000

P
P1

P0

O peracin

0000 0000

0000

1010

0000 1010

0000

1010

E stado inicial
S um a

0000 0101

0000

0101

D esplazam iento

1100 0101

0000

0101

S um a

0110 0010

0110

0010

D esplazam iento

0110 0010

0110

0010

S um a

0011 0001

0011

0001

D esplazam iento

1111 0001

0011

0001

S um a

0111 1000

0111

1000

D esplazam iento

reloj

29 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XX)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

30 / 51

Ajustes para operar con nmeros representados en


complemento a 1 y complemento a 2 (con signo)

Complemento a 2: si el multiplicador es negativo, cuando


llegue el 1 del bit ms significativo al multiplexor, entonces,
restar A

Complemento a 1: si el multiplicador es negativo, cuando


llegue el 1 del bit ms significativo al multiplexor, entonces,
restar A. Y adems, en la fase de inicializacin P1 y el registro
de desplazamiento toman el valor inicial del multiplicando

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XXI)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Multiplicacin. Algoritmo de Booth (C2)


Se trata de evitar las sumas de cero que
consumen ciclos de mquina y no
aportan nada al clculo puesto que
solamente se desplazara luego el
resultado.
Emplea la recodificacin del
PXOWLSOLFDGRUEXVFDQGRFDGHQDVGHV
y afectndoles del peso de ese 1 del 0

z
z

A = 1011, B = 0110
A x B = +Ax23 Ax21
0001010
1011000 +
1100010

Xi

Xi-1

Significado

Accin asociada

Yi

Cadena de 0s

Desplazar

Cadena de 1s

Desplazar

Principio de cadena de 1s Restar y desplazar

-1

Fin de cadena de 1s

Sumar y desplazar

31 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XXII)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

32 / 51

z
z
z

Divisin. Algoritmo de divisin con restauracin (sin signo)

Dividendo parcial inicial: tomar tantos bits del dividendo como


tenga el divisor.
Garantizar que tanto el dividendo como el divisor son positivos (si
empiezan por 1 aadirle un cero a la izquierda)
Sumar al dividendo el complemento a 2 del divisor

Si el resultado es positivo:
z
z

Si el resultado es negativo:
z
z
z

Bajar un nuevo bit del dividendo


Aadir 1 al cociente
Sumar de nuevo el divisor
Bajar un nuevo bit del dividendo
Aadir un 0 al cociente

Repetir hasta que no queden ms bits para bajar del dividendo

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XXIII)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Divisin. Algoritmo de divisin con restauracin (sin signo)


A = 0100011, B = 0011, Cociente = 1011, Resto = 0010

0 1 0 0 0 1 1 | 0011
+1 1 0 1
1011
100010
+1101
1111
0 0 1 0 1 Restauracin
+1101
100101
+1 1 0 1
10010

33 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XXIV)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

34 / 51

z
z
z

Divisin. Algoritmo de divisin sin restauracin (sin signo)


Dividendo parcial inicial: tomar tantos bits del dividendo como
tenga el divisor.
Garantizar que tanto el dividendo como el divisor son positivos (si
empiezan por 1 aadirle un cero a la izquierda)
Sumar al dividendo el complemento a 2 del divisor

Si el resultado es positivo:
z
z

Si el resultado es negativo:
z
z
z

Bajar un nuevo bit del dividendo


Aadir 1 al cociente
Sumar de nuevo el divisor en vez del complemento al bajar el siguiente bit
Bajar un nuevo bit del dividendo
Aadir un 0 al cociente

Repetir hasta que no queden ms bits para bajar del dividendo

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XXV)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Divisin. Algoritmo de divisin sin restauracin (sin signo)


A = 0100011, B = 0011, Cociente = 1011, Resto = 0010

0 1 0 0 0 1 1 | 0011
+1 1 0 1
1011
00010
+1101
11111
+0011
100101
+1101
10010

35 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Operaciones aritmticas (XXVI)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

36 / 51

Multiplicacin y divisin en coma flotante


Se pueden adaptar los algoritmos vistos antes
Los algoritmos se aplican a las mantisas
Los exponentes se suman (multiplicacin) o se restan
(divisin)
El resultado deber ser normalizado y redondeado
Se emplean bits de guarda para mejorar la precisin

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Circuitos (I)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Sumador-restador en binario sin signo


a7 a6 a5 a4 a3 a2 a1 a0

b7 b6 b5 b4 b3 b2 b1 b0

S/R

Cn-1

Desb ordami ento

C-1

c n 1 S R

CF

Sumador-restador en signo-magnitud

Se realiza tomando un sumador-restador en binario puro, y se le aade


el circuito para tratar los signos de los operandos

37 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Circuitos (II)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

a7a6a5a4a3a2a1a0

b7 b6 b5 b4 b3 b2 b1 b0

Cn-1

S/R

C-1

Sumador-restador
en complemento a 2
Desbordami ento

c n 1 c n  2

CF

S
a7a6a5a4a3a2a1a0

b7 b6 b5 b4 b3 b2 b1 b0

S/R
z

Cn-1

Sumador-restador
en complemento a 1

C-1

Desbordami ento

c n 1 c n  2

CF

38 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Circuitos (III)
Sumador-restador en exceso

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Habr que corregir el resultado:


Si la operacin es una suma restar M
Si la operacin es una resta sumar M
z

Si M = 2n-1 bastar con:


1 Invertir el bit ms significativo de cada operando
2 Operar como si fueran representaciones en C2
3 Invertir el bit ms significativo del resultado

39 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Circuitos (IV)
Sumador-restador en BCD

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

40 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Suma-resta en coma flotante (I)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Para sumar o restar nmeros en coma flotante se debe:


1. Separar las mantisas de los exponentes
2. Comparar los exponentes y:
z Guardar el exponente mayor que ser el del resultado salvo
que el nmero salga desnormalizado
z Restar del exponente mayor el menor. Dicho nmero ser el
nmero de veces que se tendr que desplazar a la derecha la
mantisa menor
3. Desplazar la mantisa menor a la derecha para alinear las mantisas
4. Realizar la suma o la resta
5. Comprobar si el nmero est normalizado y en caso de que no lo
est, normalizarlo
6. Realizar el redondeo si es preciso

41 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Suma-resta en coma flotante (II)

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

42 / 51

Ejemplo de suma en coma flotante:


z Sean A y B dos nmeros expresados en coma flotante. Exponente
en exceso 2n-1 con 8 bits y mantisa tambin con 8 bits, expresada
en complemento a 2, normalizada y sin bit implcito
z EA = 1000 0100
MA = 0100 0100
z EB = 1000 0011
MB = 0111 0000
z Comparamos exponentes EA(4) > EB(3). Exponente resultado EA
z Desplazamos MB EA-EB veces, es decir, 4 3 = 1
z 0100 0100
0011 1000 +
0111 1100
z ER = 1000 0100 MR = 0111 1100

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU


Dgitos de guarda

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

z
z
z

z
z
z
z

Los bits de guarda se aaden y se emplean nicamente dentro de la


Unidad Aritmtico-Lgica.
Se emplean para aumentar la precisin de los resultados y permitir el
redondeo y la normalizacin de manera correcta.
Normalmente se emplean 2 bits de guarda y un bit retenedor que se
aaden al final del nmero:
b8b7b6b5b4b3b2b1b0 bg1 bg2 br
Los bits b8 a b0 son un dato de 8 bits
bg1es el primer bit de guarda que se emplea para la normalizacin
bg2 es el segundo bit de guarda que se emplea para el redondeo
br es el bit retenedor que se emplea para no perder la precisin en la
operacin de resta y que se mantiene a 1 al pasar un 1 por l

43 / 51

Arquitectura de Computadores I

Circuitos y algoritmos para la ALU

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Tcnicas de redondeo

44 / 51

Al pasar de la ALU a los registros o la memoria, los bits de guarda y el


bit retenedor, tienen que eliminarse por lo que se debern tener en
cuanta para mejorar la precisin del resultado

Existen varias tcnicas de redondeo entre las que destacan:

Truncacin: se eliminan los bits de guarda y el bit retenedor

Forzar a 1 el LSB: se pone a 1 el bit menos significativo del


resultado y se truncan los bits de guarda

Redondeo al ms prximo: es la ms difcil de implementar pero


la que mejor resultado proporciona. Si supera la mitad del valor de
los bits de guarda se suma uno al resultado. Si no llega a la mitad,
se trunca. En el caso de que sea la mitad, se fuerza a par.

Para 3 bits de guarda las combinaciones 000, 001, 010, 011


truncara. Con 101, 110 y 111 se sumara 1 al resultado. La
combinacin 100 sumar 1 si el LSB es 1 truncar si el LSB es 0
Arquitectura de Computadores I

ALU y Arquitectura Von Neumann


Camino de datos

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

z
z
z
z
z

45 / 51

El rgano aritmtico de la arquitectura von Neumann se


denomina camino de datos o datapath
Consta de: unidades aritmtico-lgicas, desplazadores,
registros y caminos de comunicacin entre ellas
El camino de datos contiene el estado del computador
Tambin contiene el registro contador de programa CP, el
registro de direcciones de interrupcin y el registro de estado
El camino de datos influye en el coste del procesador,
aproximadamente necesita la mitad de los transistores y la
mitad del rea de silicio del procesador
La duracin del ciclo de reloj est determinada por los circuitos
ms lentos por lo que en el procesador es el camino de datos
el que hace de cuello de botella
Los pasos clave para disear el camino de datos son:
Elegir el nmero de puertos del banco de registros
Seleccionar el tipo de ALU o de ALUs

Arquitectura de Computadores I

ALU y Arquitectura Von Neumann


Camino de datos. Registro de estado

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

46 / 51

z
z

Al realizar operaciones aritmticas, existen una serie de


biestables de estado asociados a ellas y que se suelen recoger
en un registro de estado
El objetivo es guardar constancia de algunas caractersticas del
resultado de las operaciones realizadas
Los biestables de estado ms frecuentes son:
Cero, signo, desbordamiento y acarreo
Paridad del resultado, acarreo BCD
Condiciones de excepcin. Algunas de ellas se basan en el
contenido de los biestables de estado: desbordamiento.

Arquitectura de Computadores I

Ejemplos de hardware real

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Alpha 21064. Aceleracin de la suma (I)

U n id ad d e clcu lo en tero (E b ox )
C ontiene un cam ino de datos de 64 bits
x A dder
x L o gic b o x
x B arrel shifter
x B ypassers
x Integer m ultiplier
x A rchivo de registros con 32 registros de 64 bits, 4 ports de lectura y 2 de
escritura.
U n id ad d e clcu lo d e P u n to F lo tan te (F b ox )
C ontiene:
x M ultiplicador/S um ador
x D ivisor
x U n archivo de registros de 32 entradas, con registros d e punto flotante de
64 bits
x U n registro de control accesible por el usuario (F P C R ) que co ntine:
 C ontroles para m odos de redondeo dinm ico
 In form acin d el flag de ex cepciones
A cepta un a instruccin por ciclo, con ex cepcin la instru ccin de divisin.

47 / 51

Arquitectura de Computadores I

Ejemplos de hardware real

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Alpha 21064. Aceleracin de la suma (II)

48 / 51

El sumador de las unidades de enteros y de coma flotante del


microprocesador Alpha 21064 es de 64bits y realiza 2 sumas por ciclo
de reloj ya que es segmentado de 2 etapas
Se combinan tres mtodos de suma binaria:
Propagacin de acarreo en bloques de 8 bits
Seleccin de acarreo en 2 bloques de 32 bits
Anticipacin de acarreo entre ambos bloques de 32 bits
En todos los caminos de datos se han colocado latches de manera que
el operador cuenta con dos etapas aisladas que permiten realizar dos
operaciones por ciclo

Arquitectura de Computadores I

Ejemplos de hardware real

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

La unidad de ejecucin del MC68000 (I)

z
z

z
z

8 registros de direcciones de 32 bits divididos en parte alta y parte baja en


2 bancos separados
Operaciones sobre:
Direcciones pueden ser de 16 o de 32 bits
Datos de 8, 16 32 bits.
El conjunto de los registros esta organizado en 3 secciones de modo que
se puedan realizar operaciones a la vez en cada una de las secciones.
La UE posee una unidad que realiza operaciones especiales

49 / 51

Arquitectura de Computadores I

Ejemplos de hardware real

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

La unidad de ejecucin del MC68000 (II)

50 / 51

Arquitectura de Computadores I

Tema
4: La unidad aritmtico-lgica
Tema 2: La Unidad Aritmtico-Lgica

Bibliografa

51 / 51

Estructura y diseo de computadores


David A. Patterson y John L. Hennessy. Revert, 2000
Captulo 4

Arquitectura de computadores. Un enfoque cuantitativo


John L. Hennessy y David A. Patterson. Mc Graw Hill, 3 ed, 2002
Apndices A: aritmtica de computadores

Organizacin y arquitectura de computadores


William Stallings. Prentice Hall. 1996
Captulo 8

Arquitectura de Computadores I

También podría gustarte