unidad aritmetico logica alu

69
LA UNIDAD ARITMETICO LOGICA ALU

Upload: astrid-ximena-hernandez-piedrahita

Post on 28-Jun-2015

2.457 views

Category:

Education


1 download

DESCRIPTION

Explicación del funcionamiento de las operaciones realizadas por la ALU

TRANSCRIPT

Page 1: Unidad aritmetico logica ALU

LA UNIDAD ARITMETICO LOGICAALU

Page 2: Unidad aritmetico logica ALU

Introducción

Los dos aspectos fundamentales de la aritmética del computador son:

• La forma de representar las números, (el formato binario),• Algoritmos utilizados para realizar las operaciones aritméticas

básicas, (suma, resta, multiplicación y división).

Page 3: Unidad aritmetico logica ALU

La mayoría de los procesadores implementan la normalización o estándar IEEE 754 para la representación de números y aritmética en coma flotante.

Esta norma define el formato de 32 bits, así como el de 64 bits.

Page 4: Unidad aritmetico logica ALU

La aritmética de un computador es realizada normalmente con dos tipos de números muy diferentes:

• Enteros.• Coma flotante.

Page 5: Unidad aritmetico logica ALU

LA UNIDAD ARITMETICO LOGICA (ALU)

La ALU, es la parte del computador que realiza realmente las operaciones aritméticas y lógicas con los datos.

El resto de los elementos del computador, (unidad de control, registros, memoria, E/S), están principalmente para suministrar datos.

La ALU puede considerarse como el “núcleo central del computador”.

Page 6: Unidad aritmetico logica ALU

Una ALU, y en realidad todos los componentes electrónicos del computador, se basan en el uso de dispositivos lógicos digitales, que pueden almacenar dígitos binarios y realizar operaciones lógicas Booleanas.

Page 7: Unidad aritmetico logica ALU

Muchos tipos de circuitos electrónicos necesitan realizar algún tipo de operación aritmética, así que incluso el circuito dentro de un reloj digital tendrá una ALU minúscula que se mantiene sumando 1 al tiempo actual

Page 8: Unidad aritmetico logica ALU

Por mucho, los más complejos circuitos electrónicos son los que están construidos dentro de los chips de microprocesadores modernos como el Intel Core Duo.

Por lo tanto, estos procesadores tienen dentro de ellos un ALU muy complejo y poderoso. De hecho, un microprocesador moderno pueden tener múltiples núcleos, cada núcleo con múltiples unidades de ejecución, cada una de ellas con múltiples ALU.

Page 9: Unidad aritmetico logica ALU

La mayoría de las acciones de la computadora son realizadas por la ALU.

Page 10: Unidad aritmetico logica ALU

Operaciones Llevadas a cabo por la ALU

La mayoría de las ALU pueden realizar las siguientes operaciones:

1.) Operaciones aritméticas de números enteros (adición, sustracción, y a veces multiplicación y división, aunque esto es más costoso)

2.) Operaciones lógicas de bits (AND, NOT, OR, XOR, XNOR) 3.) Operaciones de desplazamiento de bits (Desplazan o rotan una

palabra en un número específico de bits hacia la izquierda o la derecha).

Page 11: Unidad aritmetico logica ALU

Operaciones Complejas:

Un ingeniero puede diseñar una ALU para calcular cualquier operación, sin importar lo compleja que sea; el problema es que cuanto más compleja sea la operación, tanto más costosa será la ALU, más espacio usará en el procesador, y más energía disipará.

Page 12: Unidad aritmetico logica ALU

Por lo tanto, los ingenieros siempre calculan un compromiso, para proporcionar al procesador (u otros circuitos) un ALU suficientemente poderoso para hacerlo rápido, pero no tan complejo para llegar a ser prohibitivo.

Page 13: Unidad aritmetico logica ALU

Una ALU simple de 2 bits que hace operaciones de AND, OR, XOR y adición

Page 14: Unidad aritmetico logica ALU

ALU vs. FPU Una unidad de punto flotante, Floating Point Unit (FPU), también realiza operaciones aritméticas entre dos valores, pero lo hace para números en representación de punto flotante, que es mucho más complicada que la representación de complemento a dos usada en una típica ALU. Para hacer estos cálculos, una FPU tiene incorporados varios circuitos complejos.

Page 15: Unidad aritmetico logica ALU

Generalmente los ingenieros llaman ALU al circuito que realiza operaciones aritméticas en formatos de número entero (como complemento a dos), mientras que los circuitos que calculan en formatos más complejos como punto flotante, números complejos, etc., reciben generalmente un nombre más ilustre.

Page 16: Unidad aritmetico logica ALU

Interconexión de la ALU

Los datos se presentan a la ALU como “registros”, y en registros se almacenan los resultados de las operaciones producidas por la misma.

La ALU puede activar indicadores (flags) como resultado de una operación, por ejemplo:

• Indicador de desbordamiento se pondrá a 1 si el resultado de una operación, excede la longitud del registro en donde se debe almacenar.

Page 17: Unidad aritmetico logica ALU

ALURegistros

Indicadores

Registros

Page 18: Unidad aritmetico logica ALU

La unidad de control proporciona las señales que gobiernan el funcionamiento de la ALU y la transferencia de datos dentro y fuera de esta.

Page 19: Unidad aritmetico logica ALU

ALU

Unidad de control

Registros

Indicadores

Registros

Page 20: Unidad aritmetico logica ALU

REPRESENTACION DE ENTEROSEn el sistema de numeración binaria, cualquier numero puede representarse tan solo con dígitos 1 y 0.

Sin embargo, para ser almacenados y procesados por un computador, no se tiene la posibilidad de disponer del signo y de la coma.

Page 21: Unidad aritmetico logica ALU

Representación en signo-magnitud

Existen varias convenciones para representar números positivos y negativos, esto implica tratar el bit mas significativo de la palabra, como un bit de signo:

• Ejemplo: 18 0010010

0 0010010

1 0010010

Positivo

Signo magnitud = negativo

Page 22: Unidad aritmetico logica ALU

La representación “signo-magnitud” posee varias limitaciones. Una de ellas es que la suma y la resta requiere tener en cuenta tanto los signos de los números, como sus magnitudes, para llevar a cabo la operación en cuestión.

Debido a las limitaciones, raramente se usa la representación en “signo-magnitud” para implementar en la ALU, las operaciones con enteros.

Por lo cual, el esquema mas común es la representación en complemento a dos.

Page 23: Unidad aritmetico logica ALU

Representación en complemento a dos

Este método también utiliza, para su representación, el bit mas significativo como bit de signo.

Para obtener el complemento a dos de un numero binario, simplemente se complementa , es decir, se pone el opuesto del numero original:

Numero decimal Numero binario Complemento a dos

18 00010010 11101101

Page 24: Unidad aritmetico logica ALU

• Ejemplo: Convertir el numero +18, en complemento a dos.

• Si el 18 es negativo:

Page 25: Unidad aritmetico logica ALU

Casos problemáticos del complemento a dos

El método de complemento a dos, posee dos casos particulares de discusión:

• 0• 128

Page 26: Unidad aritmetico logica ALU

“0”En la conversión de un cero negativo a complemento a dos, hay un acarreo de la posición de bit mas significativo, que es ignorado.

Como resultado se obtiene que +0=-0.

Esto es correcto

Page 27: Unidad aritmetico logica ALU

“128”Este segundo caso es mas problemático.

Si se genera el complemento a dos del numero binario y se vuelve negativo, el numero, el resultado es el numero binario original.

• Esta anomalía debe evitarse.

Page 28: Unidad aritmetico logica ALU

SUMA Y RESTA

CASO 1 Si el resultado de la operación es un numero positivo, se obtiene un numero positivo en “notación binaria”.

CASO 2 Si el resultado de la operación es un numero negativo, conseguimos un numero negativo en “complemento a dos”.

Page 29: Unidad aritmetico logica ALU

Caso 1

Page 30: Unidad aritmetico logica ALU

Caso 2

Page 31: Unidad aritmetico logica ALU

En cualquier suma, el resultado puede que sea mayor que el permitido por la longitud de palabra que se esta utilizando. Esta condición se denomina “desbordamiento” (overflow).

Cuando ocurre un desbordamiento, la ALU debe indicarlo para que no se intente utilizar el resultado obtenido.

Page 32: Unidad aritmetico logica ALU

Acciones a efectuar ante overflowPara detectar un overflow, se debe observar la siguiente regla:

Al sumar dos números, bien sean negativos o positivos “ambos”, se produce desbordamiento, SI Y SOLO SI el signo del resultado es opuesto.

Page 33: Unidad aritmetico logica ALU

En algunos casos, hay un bit de acarreo mas allá del final de la palabra (desbordamiento), este bit se ignora.

• Ejemplo: Sume -4 + -1 Para la operación de suma, si el numero es positivo se trabaja como un binario normal, pero cuando el numero es negativo, primero se realiza la conversión binario complemento a dos y luego, al resultado, se le adiciona un 1 que es el que determinara que es negativo.

Page 34: Unidad aritmetico logica ALU
Page 35: Unidad aritmetico logica ALU

• Ahora se suman las cantidades obtenidas.

Como se puede apreciar, ocurre un desbordamiento, es decir, el resultado es mayor de 4 bits. El bit mas significativo, el que se encuentra mas hacia la izquierda, se ignora.

• La respuesta es=

Page 36: Unidad aritmetico logica ALU

Para sumar, los números se presentan al sumador desde dos registros (Registro A y Registro B). El resultado es almacenado normalmente en un tercer registro o en uno de los ya existentes.

La indicación de desbordamiento se almacena en una OF (Overflow Flag) de 1 bit, (bit =0 si no hubo desbordamiento- bit = 1 si ocurrió desbordamiento).

Para la resta, el sustraendo se pasa a través de un “complementador”, antes de llegar al sumador.

Page 37: Unidad aritmetico logica ALU

• A continuación se mostrara une ejemplo del camino a seguir en caso de suma.

Registro B Registro A

Complementador

SUMADOR

SW

OF

Page 38: Unidad aritmetico logica ALU

• A continuación se mostrara une ejemplo del camino a seguir en caso de suma.

Registro B Registro A

Complementador

SUMADOR

SW

OF

Conmutador: Selecciona si es

suma o resta

Page 39: Unidad aritmetico logica ALU

• A continuación se mostrara une ejemplo del camino a seguir en caso de suma.

Registro B Registro A

Complementador

SUMADOR

SW

OF

Conmutador: Selecciona si es

suma o resta

Bit de desbordamiento

Page 40: Unidad aritmetico logica ALU

Multiplicación

Esta operación es un poco mas compleja que la suma o la resta. Se han utilizado, tanto soluciones en Hardware, como diverso algoritmos para llevarla a cabo.

A continuación se apreciara una implementación en Hardware para la multiplicación.

Page 41: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

Page 42: Unidad aritmetico logica ALU

Tomemos como ejemplo la multiplicación de 11 por 13:

• 111011• 131101

• Entonces:

• A=0000• Q=1101• M=1011• C= 0, Hasta que no halla un acarreo.

Page 43: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0000 1101

1011

0

Page 44: Unidad aritmetico logica ALU

La lógica de control lee uno por uno los bits del “multiplicador”.

• Si Qo es 1: • A=A+M0000+1011 • Se desplazan todos los valores, tanto de A como de Q, hacia la

derecha

Page 45: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0000 1101

1011

0

Page 46: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0000+1011 1101

1011

0

Page 47: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

1011 1101

1011

0

Page 48: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0101 1110

1011

0

Page 49: Unidad aritmetico logica ALU

• Si Qo =0:

• No se realiza suma, solo se presenta el desplazamiento a la derecha, de A y Q

Page 50: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0101 1110

1011

0

Page 51: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0010 1111

1011

0

Page 52: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0010 1111

1011

0

Page 53: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0010+1011 1111

1011

0

Page 54: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

1101 1111

1011

0

Page 55: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

1110 1111

1011

0

Page 56: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

1110 1111

1011

0

Page 57: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

1110+1011 1111

1011

0

Page 58: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

1|1000 1111

1011

Page 59: Unidad aritmetico logica ALU

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

1000 1111

1011

Bit de acarreo

1

Page 60: Unidad aritmetico logica ALU

El resultado de la multiplicación es unir, ubicar uno a continuación del otro, los valores de A y de Q.

• A=1000• Q=1111

• Respuesta= 10001111

Page 61: Unidad aritmetico logica ALU

A continuación se mostrara el diagrama de flujo que representa la operación de multiplicación.

INICIO

C, A 0M MultiplicandoQ Multiplicador

Cuenta n

¿Qo =1?

Desplazar C, A, QCuenta cuenta-1

C, A A+M

¿Cuenta =0?

FIN

si

si

no

no

Page 62: Unidad aritmetico logica ALU

Multiplicación en complemento a dos

Se hace necesaria la multiplicación en complemento a dos, cuando se vallan a multiplicar números con signo negativo.

Una de las técnicas mas comunes utilizadas para este fin es el “Algoritmo de Booth”.

Page 63: Unidad aritmetico logica ALU

Algoritmo de Booth

Este algoritmo tiene la ventaja adicional de acelerar el proceso de multiplicación, respecto de una aproximación mas directa.

Q1 Qo Q-1

Page 64: Unidad aritmetico logica ALU

INICIO

A 0 Q10M MultiplicandoQ Multiplicador

Cuenta n

Qo , Q-1

DesplazamientoAritmético a derecha:

A, Q , Q-1Cuenta Cuenta 1

A A+M

¿Cuenta =0? FIN

=01=10

A A-M

sino

=11=00

Page 65: Unidad aritmetico logica ALU

División

La división es algo mas compleja que la multiplicación pero esta basada en los mismos principios generales. La operación conlleva repetidos desplazamientos y sumas o restas.

Page 66: Unidad aritmetico logica ALU

INICIO

A oM Divisor

Q DividendoCuenta n

¿A<0?

Cuenta = Cuenta-1

Q0 0A A+M

¿Cuenta =0? FIN

sino

Q01

sino

Desplaza a izquierda A , Q

A A-M

Cociente QResto A

Page 67: Unidad aritmetico logica ALU

REPRESENTACION EN COMA FLOTANTE

Un valor real se puede extender a la izquierda o a la derecha de forma arbitraria.

En la informática se dispone de una cantidad limitada de dígitos para representar un valor, un número real puede rebasar este rango con facilidad.

La coma flotante proporciona un cambio de ponderación que en este entorno técnico permite almacenar valores con partes significativas de peso alejado del “0”, esto es alejadas de la coma a su derecha o a su izquierda.

Page 68: Unidad aritmetico logica ALU

Tipos de datos en coma flotanteLos números en coma flotante, también conocidos como números reales en otros lenguajes, se utilizan cuando se calculan funciones que requieren precisión fraccionaria.

Los cálculos complejos, como la raíz cuadrada, o trigonométricas, como el seno y el coseno, tienen como resultado un valor cuya precisión requiere un tipo en coma flotante.

Page 69: Unidad aritmetico logica ALU

• Hay dos clases de tipos en coma flotante, float y double:

• Float, (flotante): 32 bits• Double (doble): 64 bits