0% encontró este documento útil (0 votos)
16 vistas34 páginas

Funciones de la Unidad Aritmético-Lógica

La unidad aritmético-lógica (ALU) realiza operaciones aritméticas y lógicas utilizando diferentes representaciones de números, como enteros y coma flotante. La ALU usa registros y una unidad de control para sumar, restar, multiplicar y dividir números representados en formatos como complemento a dos y coma flotante. Estos formatos permiten representar tanto números positivos como negativos de forma eficiente.

Cargado por

Mtz Torvik
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
16 vistas34 páginas

Funciones de la Unidad Aritmético-Lógica

La unidad aritmético-lógica (ALU) realiza operaciones aritméticas y lógicas utilizando diferentes representaciones de números, como enteros y coma flotante. La ALU usa registros y una unidad de control para sumar, restar, multiplicar y dividir números representados en formatos como complemento a dos y coma flotante. Estos formatos permiten representar tanto números positivos como negativos de forma eficiente.

Cargado por

Mtz Torvik
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd

La unidad aritmtico-lgica (ALU)

Realiza las operaciones aritmticas y lgicas. El resto de elementos estn para suministrar datos a esta unidad. Representacin de enteros. Puede expresar cantidades en coma flotante (reales). Puede poner una unidad separada en las operaciones con la unidad de coma flotante (coprocesador matemtico). En las operaciones de la unidad de coma flotante puede incluir un chip en una unidad separada.

Entradas y salidas de la ALU

Unidad de control

Indicadores

Registros

Registros

Representacin de enteros
Para representar los nmeros, slo pueden utilizarse los dgitos 1 y 0. Los nmeros positivos se almacenan en el sistema binario.
Ejemplo: 41= 00101001.

No dispone de signo menos. No dispone de coma. Representacin en signo-magnitud. Representacin en complemento a dos.

Representacin en signo-magnitud
El bit ms a la izquierda de la palabra es un bit de signo. 0 significa nmero positivo. 1 significa nmero negativo. +18 = 00010010 -18 = 10010010 Problemas:
Se necesita tener en cuenta, tanto los signos de los nmeros como sus magnitudes, si se emplea la aritmtica en coma flotante. Hay dos representaciones del nmero 0 (+0 y -0).

Representacin en complemento a dos


+3 = 00000011 +2 = 00000010 +1 = 00000001 +0 = 00000000 -1 = 11111111 -2 = 11111110 -3 = 11111101

Beneficios
Una representacin de 0. Facilita las operaciones aritmticas Facilita bastante las operaciones con nmeros negativos.
3 = 00000011 El complemento booleano tiene como resultado: 11111100. Sumar 1 al patrn de bits resultante: 11111101.

Caso especial de negacin 1


0= 00000000 Bit a bit sin signo 11111111 Sumarle 1 al bit menos significativo (LSB) situado a la derecha +1 Resultado 1 00000000 Se ignora el desbordamiento, por lo tanto: - 0 = 0

Caso especial de negacin 2


-128 = 10000000 Bit a bit sin signo 01111111 Sumarle 1 al LSB +1 Resultado 10000000 De este modo: -(-128) = -128 X Controlar al bit ms significativo o MSB (tambin llamado bit de signo). Debera cambiar durante la negacin.

El rango de nmeros
8 bits en complemento a dos
+127 = 01111111 = 27 -1 -128 = 10000000 = -27

16 bits en complemento a dos


+32767 = 01111111 11111111 = 215 - 1 -32768 = 10000000 00000000 = -215

Conversin entre longitudes de bits diferentes


Para los nmeros positivos rellenar con ceros +18 = 00010010 +18 = 00000000 00010010 Para los nmeros negativos rellenar con unos -18 = 10010010 -18 = 11111111 10010010 Es decir, aadir los MSB (o bit de signo).

Suma y resta
Suma binaria normal. Observar el bit de signo para detectar el desbordamiento. Se obtiene el complemento a dos del substraendo y se le suma al minuendo:
es decir, a - b = a + (-b)

Por lo tanto, slo se necesita la suma y los complementadores.

Hardware para la suma y la resta

Registro B

Registro A

Complementador

SW

OF = Bit de desbordamiento SW = Conmutador (selecciona suma o resta)

OF

Sumador

Multiplicacin
Es una operacin compleja. Generar productos parciales para cada dgito. Tener cuidado con la posicin de los valores (en forma de columna). Sumar los productos parciales.

Ejemplo de multiplicacin
1011 Multiplicando (11). x 1101 Multiplicador (13). 1011 Productos parciales. 0000 Nota: Si el bit del multiplicador es 1, el producto parcial es el 1011 multiplicando (colocar el valor hacia la izquierda). 1011 De lo contrario es 0. 10001111 Producto (143). Nota: Es necesario que el resultado sea de longitud doble.

Multiplicacin de binarios sin signo


Multiplicando
M n-1 M0

Sumador de n-bits

Sumar

Lgica de control de desplazamientos y sumas

Desplazar a derecha

An-1

A0

Q n-1

Q0

Multiplicador

Ejemplo de clculo
Valores iniciales Suma Desplazamiento Suma Suma Suma Desplazamiento

Primer ciclo Segundo ciclo

Tercer ciclo

Suma Desplazamiento

Cuarto ciclo

Diagrama de flujo para la multiplicacin de binarios sin signo


INICIO C, A 0 M Multiplicando Q Multiplicador Cuenta n No S

Q0 = 1?

C, A Desplazar C, A, Q Cuenta cuenta - 1 No S

A+M

Cuenta = 0?

FIN

Producto en A, Q

Multiplicacin de nmeros negativos


No puede realizarse. Solucin 1:
Convertirlos en nmeros positivos, si es necesario. Multiplicar como se ha explicado anteriormente. Si los signos son distintos, poner el signo menos al resultado.

Solucin 2:
Algoritmo de Booth.

Algoritmo de Booth
INICIO A 0 Q-1 0 M Multiplicando Q Multiplicador Cuenta n = 10 = 01

Q0 , Q -1

A-M

= 00 = 11
Desplazamiento aritmtico a derecha: A, Q, Q -1 Cuenta Cuenta - 1

A+M

No

Cuenta = 0?

INICIO FIN

Ejemplo de algoritmo de Booth


Valores iniciales

A A-M Desplazamiento
Desplazamiento A A A A+ +M M Desplazamiento Desplazamiento Desplazamiento

Primer ciclo

Segundo ciclo Tercer Tercerciclo ciclo Cuarto ciclo

Divisin
Es algo ms compleja que la multiplicacin. El proceso de divisin de nmeros negativos es an ms complicado. Est basada en el proceso de divisin larga.

Divisin de enteros binarios sin signo


00001101 1011 10010011 1011 001110 Partial Restos 1011 Parciales Remainders 001111 1011 100 Divisor Divisor
Cociente Quotient Dividendo Dividend

Resto Remainder

Divisin con signo


1. Cargar el divisor en el registro M y el dividendo en los registros A y Q. El dividendo debe de estar expresado en C2 de 2n bits. 2. Desplazar A y Q una posicin a la izquierda 3. Si M y A tienen el mismo signo, ejecutar A= AM; si no A = A + M

Divisin con signo


4. La operacin anterior tiene xito si el signo de A es el mismo antes y despus de la operacin. a) Si la operacin tiene xito A= 0, entonces hacer Q0 =1 b) Si la operacin no tiene xito y A diferente de Cero, entonces Q0 =0 y restablecer el valor anterior de A 5. Repetir los pasos 2 a 4 tantas veces como numero de bits tenga Q 6. El resto esta en A si los signos del divisor y el dividendo eran iguales. El cociente esta en Q si no, el cociente correcto es el complemento a dos de Q

Nmeros reales
Fracciones. Podra realizarse mediante el proceso binario:
1001.1010 = 24 + 20 +2-1 + 2-3 =9,625

Dnde est la coma binaria? Es fija?


Pocas veces.

Se mueve?
Cmo se sabe dnde est?

Coma flotante
Bit de signo

Exponente sesgado

Parte significativa o mantisa

+/- ,mantisa x 2exponente Es un nombre inapropiado. En realidad, la coma se sita entre el bit de signo y la mantisa. El exponente indica la colocacin del valor (es decir, la posicin de la coma).

Ejemplos de coma flotante


Signo de la mantisa 8 bits 32 bits

Exponente sesgado
a) Formato

Mantisa

0,11010001 x 2 10100 = 0 - 0,11010001 x 2 10100 = 1 0,11010001 x 2 -10100 = 0 - 0,11010001 x 1 -10100 = 1

10010011 10010011 01101011 01101011


b) Ejemplos

10100010000000000000000 10100010000000000000000 10100010000000000000000 10100010000000000000000

Signos en coma flotante


La mantisa se almacena en complemento a dos. El exponente est en la representacin sesgada.
Ejemplo: Un sesgo de 128 comprende: Un campo de 8 bits. Los valores verdaderos que van desde 0 a 255. La resta de 128 para obtener el resultado correcto. El rango de -128 a +127.

Normalizacin
Los nmeros en coma flotante se suelen normalizar. Es decir, el exponente se ajusta para que el bit ms significativo (MSB) de la mantisa sea 1. Debido a que siempre es 1, no hay necesidad de almacenarlo. (En cambio, en la notacin cientfica los nmeros estn normalizados de tal forma que hay un dgito antes de la coma). Ejemplo: 3,123 x 103.

Los rangos en coma flotante


Para un nmero de 32 bits:
Exponente de 8 bits. +/- 2256 1,5 x 1077

Precisin:
Como consecuencia de haber cambiado la posicin del bit menos significativo (LSB) en la mantisa. Mantisa de 23 bits: 2-23 1,2 x 10-7 . La coma estar situada en la sexta posicin.

Formato IEEE 754


Estndar para el almacenamiento en coma flotante. Define los formatos tanto de 32 como de 64 bits. Con exponentes de 8 y de 11 bits, respectivamente. Los formatos ampliados incluyen bits adicionales en el exponente y en la mantisa para los resultados intermedios.

Aritmtica en coma flotante: Suma y resta


Comprobar valores cero. Ajuste de mantisas (ajuste de exponentes). Sumar o restar las mantisas. Normalizar el resultado.

Aritmtica en coma flotante: Multiplicacin y divisin


Comprobar valores cero. Sumar y restar exponentes. Multiplicar y dividir mantisas (teniendo en cuenta el signo). Normalizar. Redondear. Todos los resultados intermedios deben doblar su longitud al ser almacenados.

También podría gustarte