unidad aritmetico logica alu

Post on 28-Jun-2015

2.460 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

LA UNIDAD ARITMETICO LOGICAALU

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).

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.

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

• Enteros.• Coma flotante.

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”.

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.

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

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.

La mayoría de las acciones de la computadora son realizadas por la 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).

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á.

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.

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

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.

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.

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.

ALURegistros

Indicadores

Registros

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.

ALU

Unidad de control

Registros

Indicadores

Registros

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.

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

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.

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

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

• Si el 18 es negativo:

Casos problemáticos del complemento a dos

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

• 0• 128

“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

“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.

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”.

Caso 1

Caso 2

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.

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.

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.

• 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=

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.

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

Registro B Registro A

Complementador

SUMADOR

SW

OF

• 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

• 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

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.

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

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.

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0000 1101

1011

0

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

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0000 1101

1011

0

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0000+1011 1101

1011

0

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

1011 1101

1011

0

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0101 1110

1011

0

• Si Qo =0:

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

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0101 1110

1011

0

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0010 1111

1011

0

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0010 1111

1011

0

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

0010+1011 1111

1011

0

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

1101 1111

1011

0

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

1110 1111

1011

0

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

1110 1111

1011

0

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

1110+1011 1111

1011

0

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

1|1000 1111

1011

MultiplicandoRegistro M

SUMADOR Lógica de control de desplazamiento y suma

Registro AMultiplicador

Registro QC

1000 1111

1011

Bit de acarreo

1

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

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

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”.

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

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

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.

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

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.

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.

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

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

top related