• No se han encontrado resultados

ARQUITECTURAS DE COMPUTADORES

N/A
N/A
Protected

Academic year: 2022

Share "ARQUITECTURAS DE COMPUTADORES"

Copied!
46
0
0

Texto completo

(1)

ARQUITECTURAS DE COMPUTADORES

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 3 – UNIDAD ARITMÉTICO- LÓGICA

JOSÉ GARCÍA RODRÍGUEZ

JOSÉ ANTONIO SERRA PÉREZ

(2)

La Unidad Aritmética y Lógica

 Introducción

 Operaciones Lógicas

 La suma y la resta



Sumador con propagación de acarreo (CPA)



Circuito sumador-restador



Desbordamiento



Sumadores con anticipación de acrreo (CLA)

 La multiplicación



Multiplicación binaria sin signo



Multiplicación binaria con signo



Algoritmo de Booth

La ALU

(3)

Introducción

 Operador aritmético y lógico (uno o varios)

 El Acumulador

 Uno o varios registros temporales

 Indicadores de resultado



Acarreo (C)



Negativo (N)



Desbordamiento (O o V)



Cero (Z)

B C D E

Z C O

A TEMP

ALU

Introducción

(4)

Operaciones lógicas



Fáciles de implementar ⇒ Correspondencia directa con Hardware.



Puertas lógicas AND, OR, OR-EXCLUSIVA, INVERSORES,...

Operación

A

B Resultado

00

01 10 Operaciones

Lógicas

(5)

La suma y la resta

Entradas Salidas

X Y S C

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

Y X C

Y X

Y X Y

X S

=

=

⋅ +

=

A B

S

H.A. C

A

B

C

S H.A.

Semisumador Binario (H.A.)

Semisumador

(6)

Sumador completo (F.A.)

La suma y la resta

A B

S Cin

Cout

F.A.

Entradas Salidas

A B Cin S Cout

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

Cin B

Cin A

B A Cout

Cin B

A Cin

B A Cin

B A Cin

B A S

⋅ +

⋅ +

=

⋅ +

⋅ +

⋅ +

=

(7)

Sumador completo (F.A.)

La suma

y la resta • Con semi-sumadores (H.A.)

H.A.

Cin

F.A.

S

Cout H.A.

C A S

B C

S

(8)

Sumador completo (F.A.)

La suma

y la resta • Con puertas

(9)

Sumador con propagación de acarreo

La suma y la resta



Para sumar dos números de n bits se necesita colocar en cascada n sumadores completos.



El acarreo se propaga de una etapa a la siguiente:

Sumador con Propagación de Acarreo (Carry Propagated Adder)

FA A

3

B

3

C

2

S

3

C

4

FA

A

2

B

2

C

2

S

2

FA A

1

B

1

C

1

S

1

FA A

0

B

0

C

0

S

0

(10)

Sumador con propagación de acarreo



Sumadores construidos con puertas lógicas a partir de la expresión:

Cin B

Cin A

B A Cout

Cin B

A Cin

B A Cin

B A Cin

B A S

⋅ +

⋅ +

=

⋅ +

⋅ +

⋅ +

=

FA A

3

B

3

C

2

C

4

FA

A

2

B

2

C

2

FA A

1

B

1

C

1

FA A

0

B

0

C

0

3T 2T

5T 4T

7T 6T

8T 9T La suma

y la resta

(11)

Sumador con propagación de acarreo



Sumadores completos construidos con semisumadores:

FA A

3

B

3

C

2

S

3

C

4

FA

A

2

B

2

C

2

S

2

FA A

1

B

1

C

1

S

1

FA A

0

B

0

C

0

S

0

2T 3T

4T 5T

6T 7T

9T 8T La suma

y la resta

( 2 n 1 ) T

Total

Tiempo _ = ⋅ +

Cin

S Cout A

B

(12)

Sumador 74ls83



Sumadores integrado

La suma

y la resta

(13)

Sumador 74ls83

La suma

y la resta

(14)

Circuito restador



Suponer que se trabaja con números expresados en complemento a 2.



A - B = A + (C1(B) + 1)

La suma y la resta

FA A

3

B

3

C

2

S

3

C

4

FA

A

2

B

2

C

2

S

2

FA A

1

B

1

C

1

S

1

FA A

0

B

0

C

0

=1

S

0

(15)

Circuito Sumador-Restador

La suma y la resta

FA A

3

B

3

C

2

S

3

C

4

FA

A

2

B

2

C

2

S

2

FA A

1

B

1

C

1

S

1

FA A

0

B

0

C

0

S

0

R/S R/S B

i

Entrada al FA

0 0 0

0 1 1

1 0 1

1 1 0

( n 1 ) T

2 Total

Tiempo _ = +

(16)

Detección de desbordamiento

La suma y la resta

Sumador-Restador en complemento a 2 con detección de desbordamiento.

FA A

3

B

3

C

3

S

3

C

4

FA

A

2

B

2

C

2

S

2

FA A

1

B

1

C

1

S

1

FA A

0

B

0

C

0

S

0

R/S

(17)

Detección de desbordamiento

La suma y la resta

1. Caso suma de dos positivos S

C4 C3 C2 C1 0 1 1 1

0 1 1 1 0 1 1 1

1 1 1 0 OV 2. Caso suma de dos negativos

S

C4 C3 C2 C1 1 0 1 1

1 0 0 1 1 0 1 1

0 1 0 0 OV

(18)

Sumador con anticipación de acarreo

 Carry Lookahead Adder (CLA)

 Suponer A y B números de 4 bits

 Señal generadora de acarreo :

 Señal propagadora de acarreo:

 Acarreo de la etapa i:

 Particularizando para A y B:

La suma y la resta

i i

i a b

G = ⋅

 

=

=

+ i i

i

i i

i

b a

P

b a

P

1 i i

i

i G P C

C = + ⋅

0 1 1

1

1 0

0 0

C P G

C

C P G

C

⋅ +

=

⋅ +

=

(19)

Sumador con anticipación de acarreo

 Desarrollando las expresiones y poniéndolas en función de C -1 :

 Todos los acarreos dependen de a i y b i .

 Estas expresiones se resuelven como suma de productos.

 Tres niveles de puertas lógicas para obtener cada uno de los acarreos.

La suma y la resta

1 0

1 2

3 0

1 2

3 1

2 3

2 3

3 3

1 0

1 2

0 1

2 1

2 2

2

1 0

1 0

1 1

1

1 0

0 0

C P

P P

P G

P P

P G

P P

G P

G C

C P

P P

G P

P G

P G

C

C P

P G

P G

C

C P

G C

⋅ +

⋅ +

⋅ +

⋅ +

=

⋅ +

⋅ +

⋅ +

=

⋅ +

⋅ +

=

⋅ +

=

(20)

Sumador con anticipación de acarreo

La suma y la resta

a

3

b

3

g

3

p

3

S

3

c

2

a

2

∑ ∑

∑ ∑

b

2

g

2

p

2

S

2

c

1

a

1

b

1

g

1

p

1

S

1

c

0

a

0

∑ ∑ ∑

b

0

g

0

p

0

S

0

c

-1

Generador de acarreo anticipado

c

3

(21)

Sumador con anticipación de acarreo

La suma y la resta

a

3

∑ ∑

∑ ∑

b

3

g

3

p

3

S

3

c

2

a

2

b

2

g

2

p

2

S

2

c

1

a

1

∑ ∑

∑ ∑

b

1

g

1

p

1

S

1

c

0

a

0

b

0

g

0

p

0

S

0

c

-1

Generador de acarreo anticipado

c

3

3T

1T 1T

4T 3T 3T

3T

4T 4T 4T

1T 1T 1T 1T

1T 1T

a

i

b

i

H.A.

C

i-1

F.A.

S

i

c

i

H.A.

1T 3T

4T

Sumadores construidos

con semisumadores

(22)

Ejemplo (Sumador CLA de 8 bits)

La suma y la resta

a

7

∑ ∑

∑ ∑

b

7

g7 p7

S

7

c

6

a

6

b

6

g6 p6

S

6

c

5

a

5

∑ ∑

∑ ∑

b

5

g5p5

S

5

c

4

a

4

∑ ∑

b

4

g4p4

S

4

c

3

Generador de acarreo anticipado

c

7

a

3

∑ ∑

b

3

g3 p3

S

3

c

2

a

2

∑ ∑

∑ ∑

b

2

g2p2

S

2

c

1

a

1

b

1

g1p1

S

1

c

0

a

0

∑ ∑

∑ ∑

b

0

g0p0

S

0

c

-1

Generador de acarreo anticipado

Calcular los retardos en este CLA suponiendo que los

sumadores se construyen con semisumadores.

(23)

La multiplicación

La

multiplicación



Algoritmo de sumas y desplazamientos



Si multiplicando de n bits y multiplicador de m bits, entonces el producto tendrá una longitud de n+m bits.



Multiplicación binaria: sencilla ya que hay que multiplicar por 1 o por 0.

Multiplicando 5 3 2

Multiplicador 4 3 1

5 3 2

1 5 9 6

2 1 2 8

Producto 2 2 9 2 9 2

(24)

Multiplicación binaria sin signo

La

multiplicación

ALU

Multiplicando

Multiplicador

Despl. derecha Suma

Despl. derecha

n bits n bits

Repetir n veces

Si el bit 0 del multiplicador=1 entonces

Sumar el multiplicando a la mitad izquierda del producto y colocar el resultado en la mitad izquierda del producto.

Fin entonces

Desplazar 1 bit a la derecha el registro producto Desplazar 1 bit a la derecha el registro multiplicador Fin repetir

Versión

preliminar

(25)

Multiplicación binaria sin signo

La

multiplicación

ALU

Multiplicando

Multiplicador

Producto

Despl. derecha

Escribir Suma

Despl. derecha

Control n bits

n bits

2n bits C

Versión preliminar

Multiplicando

1 0 1 1

Multiplicador

1 1 0 1

1 0 1 1

0 0 0 0

1 0 1 1

1 0 1 1

Producto

1 0 0 0 1 1 1 1

(26)

Multiplicación binaria sin signo

La

multiplicación

Repetir n veces

Si el bit 0 del registro producto=1 entonces

Sumar el multiplicando a la mitad izquierda del producto y colocar el resultado en la mitad izquierda del producto.

Fin entonces

Desplazar 1 bit a la derecha el registro producto Fin repetir

ALU

Multiplicando

Despl. derecha Suma

n bits

Versión

final

(27)

Multiplicación binaria sin signo

La

multiplicación

ALU

Multiplicando

Multiplicador Producto

Despl. derecha

Escribir Suma

Control 10(d

0

Iteración 0 valores iniciales 1 0 1 0

0 1 0

0 0 0 0 1

5(d

(28)

Multiplicación binaria sin signo

La

multiplicación

ALU

Multiplicando

Multiplicador Producto

Despl. derecha

Escribir Suma

Control 0

1 0 1 0

0 1 0

1 0 1 0 1

Iteración 1

suma P y Mando

(29)

Multiplicación binaria sin signo

La

multiplicación

ALU

Multiplicando

Multiplicador Producto

Despl. derecha

Escribir Suma

Control 0

1 0 1 0

0 0 1

0 1 0 1 0

Iteración 1

despla. P dcha.

(30)

Multiplicación binaria sin signo

La

multiplicación

ALU

Multiplicando

Multiplicador Producto

Despl. derecha

Escribir Suma

Control 0

1 0 1 0

1 0 0

0 0 1 0 1

Iteración 2

despla. P dcha

(31)

Multiplicación binaria sin signo

La

multiplicación

ALU

Multiplicando

Multiplicador Producto

Despl. derecha

Escribir Suma

Control 0

1 0 1 0

1 0 0

1 1 0 0 1

Iteración 3

suma P y Mando

(32)

Multiplicación binaria sin signo

La

multiplicación

ALU

Multiplicando

Multiplicador Producto

Despl. derecha

Escribir Suma

Control 0

1 0 1 0

0 1 0

0 1 1 0 0

Iteración 3

despla. P dcha.

(33)

Multiplicación binaria sin signo

La

multiplicación

ALU

Multiplicando

Multiplicador Producto

Despl. derecha

Escribir Suma

Control 0

1 0 1 0

0 0 1

0 0 1 1 0

Iteración 4 despla. P dcha.

50(d

(34)

Multiplicación binaria sin signo

La

multiplicación

Multiplicando = 1010 Multiplicador = 0101

Producto Multiplicando Acción Iteración

0000 0101 1010 Valores iniciales 0

1010 0101 1010 Sumar prod. y multiplicando 1

0101 0010 1010 Desplazar prod. a derecha 1

0010 1001 1010 Despl. producto 1 bit a la derecha 2

1100 1001 1010 Sumar prod. y multiplicando 3

0110 0100 1010 Despl. producto 1 bit a la derecha 3

(35)

Multiplicación rápida

La

multiplicación

(36)

Multiplicación binaria con signo

La

multiplicación



Supongamos números expresados en Ca2



A = 1010 y B = 0011



Apliquemos algoritmo de sumas y desplazamientos

1 0 1 0 x 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0

0 0 1 1 1 1 0

1 0 1 0 x 0 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 0 1 1 1 0

(37)

Algoritmo de Booth



Supongamos Multiplicando = 2 y Multiplicador = 7 (en binario 0010 x 0111)



Booth expresó 7 = 8 - 1 y sustituyo el multiplicador por esta descomposición:

0111 = 1000 - 0001 = +100-1

0 0 1 0 Multiplicando

x +1 0 0 -1 Multiplicador según A. Booth 1 1 1 1 1 1 1 0 Restamos el multiplciadndo

0 0 0 0 0 0 2 despl. (2 ceros en el multiplicador)

0 0 0 1 0 Sumamos el multiplicando

0 0 0 0 1 1 1 0

La

multiplicación

(38)

Algoritmo de Booth

La

multiplicación

Bit actual Bit a la izquierda Sustitución

0 0 0 (no hay transición)

0 1 -1 (transición hacia negativoo)

1 0 +1 (transición hacia positivo)

1 1 0 (no hay transición)

Ejemplo: Multiplicando = 11101110 y Multiplicador = 01111010 Recodificación del multiplicador según Booth = +1000-1+1-10

1 1 1 0 1 1 1 0

x +1 0 0 0 -1 +1 -1 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 1 0 0 1 0

1 1 1 1 1 1 1 1 1 0 1 1 1 0

(39)

Algoritmo de Booth

La

multiplicación

ALU

Multiplicando

Multiplicador Producto

Despl. derecha Suma/Resta

Control n bits

2n bits

q

-1

q

0

Inicialmente q

-1

=0 Repetir n veces

Si q

0

= 1 y q

-1

= 0 entonces

Producto

h

= producto

h

- Multiplicando Si q

0

= 0 y q

-1

=1 entonces

Producto

h

= Producto

h

+ Multiplicando

Desplazamiento aritmético a la derecha de Producto y q

-1

Fin repetir.

(40)

Algoritmo de Booth

La

multiplicación

Multiplicando Producto q

-1

Acción Iteración

1010 0000 1110 0 Valores iniciales 0

1010 0000 1110 0 00 → Ninguna operación 1 1010 0000 0111 0 Desplazamiento dcha. 1

1010 0110 0111 0 10 → Resta 2

1010 0011 0011 1 Desplazamiento dcha. 2 1010 0011 0011 1 11 → Ninguna operación 3

1010 0001 1001 1 Desplazamiento dcha 3

1010 0001 1001 1 11 → Ninguna operación 4

Multiplicando = 1010

Multiplicador = 1110

(41)

La división



La división la podemos expresar como:

Dividendo = Cociente x Divisor + Resto



El resto es más pequeño que el divisor. Hay que reservar el doble de espacio para el dividendo.



Supondemos operandos positivos.

La división

Dividendo → 10010011 1011 ← Divisor 10010 01101 ← Cociente 1011

001110 1011 001111 1011

0100 ← Resto

(42)

Algoritmo con restauración

La división

Repetir n veces

Desplazar el Dividendo a la izquierda Dividendo

h

= Dividendo

h

- Divisor Si Dividendo

h

< 0 entonces (no cabe)

q

0

=0

Dividendo

h

= Dividendo

h

+ Divisor (restaurar) Sino

q

0

=1 Fin Si Fin Repetir

ALU

Divisor

Dividendo

Despl. izquierda Suma/Resta

Control n bits

q

0

(43)

Algoritmo con restauración

La división Dividendo Divisor Acción Iteración

0101 0011 0110 Valores iniciales 0

1010 011_ 0110 Desplazar un bit a izquierda 1

0100 011_ 0110 Restar 1

0100 0111 0110 Dividendo

h

> 0 ⇒ q

0

= 1 1

1000 111_ 0110 Desplazar un bit a izquierda 2

0010 111_ 0110 Dividendo

h

- Divisor (Restar) 2 0010 1111 0110 Dividendo

h

> 0

q

0

= 1 2

0101 111_ 0110 Desplazar un bit a izquierda 3

1111 111_ 0110 Dividendo

h

- Divisor (Restar) 3 1111 1110 0110 Dividendo

h

<= 0 ⇒ q

0

= 0 3 0101 1110 0110 Dividendo

h

+ Divisor (Restaurar) 3

1011 110_ 0110 Desplazar un bit a izquierda 4

0101 110_ 0110 Dividendo

h

- Divisor (Restar) 4 0101 1101 0110 Dividendo

h

> 0 ⇒ q

0

= 1 4

Resto Cociente

(44)

Algoritmo sin restauración

La división

Dividendo

h

= Dividendo

h

- Divisor Repetir n veces

Si Dividendo

h

< 0 entonces

Desplazar el Dividendo a la izquierda Dividendo

h

= Dividendo

h

+ Divisor Sino

Desplazar el Dividendo a la izquierda Dividendo

h

= Dividendo

h

- Divisor Fin Si

Si Dividendo

h

< 0 entonces q

0

=0

Sino

q

0

=1 Fin Si Fin Repetir

ALU

Divisor

Despl.

izquierda

Suma/Resta

n bits

(45)

Algoritmo sin restauración

La división

Dividendo Divisor Acción Iteración

0000 0111 0010 Valores iniciales 0

1110 0111 0010 Dividendo

h

- Divisor 0

1100 111_ 0010 Dividendo

h

< 0 ⇒ Desplazar Izda 1

1110 111_ 0010 Dividendo

h

+ Divisor 1

1110 1110 0010 Dividendo

h

< 0 ⇒ q

0

= 0 1

1101 110_ 0010 Dividendo

h

< 0 ⇒ Desplazar Izda 2

1111 110_ 0010 Dividendo

h

+ Divisor 2

1111 1100 0010 Dividendo

h

< 0 ⇒ q

0

= 0 2

1111 100_ 0010 Dividendo

h

< 0 ⇒ Desplazar Izda 3

0001 100_ 0010 Dividendo

h

+ Divisor 3

0001 1001 0010 Dividendo

h

>= 0 q

0

= 1 3

0011 001_ 0010 Dividendo

h

> 0 ⇒ Desplazar Izda 4

0001 001_ 0010 Dividendo

h

- Divisor 4

0001 0011 0010 Dividendo

h

> 0 ⇒ q

0

= 1 4

↑ ↑

(46)

Conclusiones

 Sumadores



Problemática temporal de los Sumadores con Propagación de Acarreo (CPA), especialmente si n elevado.



Los Sumadores con anticipación de acarreo (CLA) mejoran el tiempo de respuesta de los sumadores.

 Multiplicación



Problemática de la multiplicación de números con signo.



El algoritmo de Booth permite multiplicar números en Ca2 y en algunos casos reduce el números de operaciones si aparecen cadenas de 1’s o 0’s en el multiplicador.

 La División



Algoritmo para la división con restauración para números positivos. Si números negativos, entonces tratamiento previo

Conclusiones

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

El nuevo Decreto reforzaba el poder militar al asumir el Comandante General del Reino Tserclaes de Tilly todos los poderes –militar, político, económico y gubernativo–; ampliaba

No había pasado un día desde mi solemne entrada cuando, para que el recuerdo me sirviera de advertencia, alguien se encargó de decirme que sobre aquellas losas habían rodado

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Esto viene a corroborar el hecho de que perviva aún hoy en el leonés occidental este diptongo, apesardel gran empuje sufrido porparte de /ue/ que empezó a desplazar a /uo/ a

En junio de 1980, el Departamento de Literatura Española de la Universi- dad de Sevilla, tras consultar con diversos estudiosos del poeta, decidió propo- ner al Claustro de la

Missing estimates for total domestic participant spend were estimated using a similar approach of that used to calculate missing international estimates, with average shares applied

Por lo tanto, en base a su perfil de eficacia y seguridad, ofatumumab debe considerarse una alternativa de tratamiento para pacientes con EMRR o EMSP con enfermedad activa