Académique Documents
Professionnel Documents
Culture Documents
de Computadoras –
Cómputo Aritmético
Las preguntas de fondo cuando se aborda el tema
de la aritmética de computadoras son:
¿Cómo represento los números?
¿Qué algoritmos tengo para operar con esos números?
¿Cuánto cuesta implementar y operar los algoritmos con
las representaciones planteadas?
Área del dispositivo (en tecnologías digitales área de silicio)
Tiempo de cómputo
Energía por operación
Quizás la pregunta más importante es cuál es la aplicación
en cuestión. ¿Qué requisitos tiene el problema?
Aritmética - Parte I
1
Introducción a UAL
Unidad Aritmético-Lógica (ALU: Arithmetic Logic
Unit) es la parte del procesador que implementa las
operaciones lógicas y aritméticas
Aritmética - Parte I
Aritmética - Parte I
2
Representación de números
Enteros
Signo/Valor Absoluto
Complemento a base menos uno
Complemento a la base
Cero desplazado
Fraccionarios
Punto fijo
Punto flotante IEEE 754-2008
Binario Racionales vs. Irracionales
Decimal
Aritmética - Parte I
Representación de números
(repaso Introducción Arquitectura de Sistemas)
Signo/Valor Absoluto
Usado en representación de mantisa de números en punto
flotante, los desplazamientos se realizan en forma directa
Simple negar un número
Tratamiento especial de signos en operaciones
Cero desplazado
Flexible posicionamiento de frontera
Ideal para las comparaciones, usado en representación de
exponentes de números en punto flotante
Se deben hacer correcciones en las operaciones
Aritmética - Parte I
3
Representación de números
(repaso Introducción Arquitectura de Sistemas)
Complemento base
No requiere correcciones en las operaciones aritméticas
Usado en representación de números enteros
Aritmética - Parte I
Sumador binario
El sumador binario más clásico (Ripple-Carry
Adder) utiliza en forma recursiva (en el tiempo o en
el espacio) un sumador completo (Full-Adder; FA)
de dos operandos de un bit xi, yi, más acarreo
previo ci-1 que proporciona dos bits de resultados: la
suma y el acarreo saliente ci. x y i i
xi yi
ri = xi ⊕ yi ⊕ ci −1 ci ci-1
ci FA ci-1
ci = M ( xi , yi , ci −1 )
ri
ri
Aritmética - Parte I
4
Sumador binario (carry-chain)
El acarreo de salida se puede determinar a
partir de las funciones de generación y
propagación de acarreo.
Gi = x i • y i Gi xi
Pi = xi ⊕ y i ci yi
Pi
ci-1
ri = Pi ⊕ ci −1
ci = Gi + Pi • ci −1
ri
Aritmética - Parte I
X+Y
rn rn-1 rn-2 r1 r0
Aritmética - Parte I
5
Sumador con propagación de
acarreo (Ripple-carry adder)
“Iteración” en el tiempo. Serial, secuencial
FA
ci ri
C
r
Aritmética - Parte I
X = x (− 2 )+ ∑ x 2
n −2
n −1 i
n −1 i =0 i
Aritmética - Parte I
6
Sumador binario con signo
X ,Y son dos números binarios expresados en
complemento a dos, la suma R=X+Y
cn −1 cn − 2 cn −3 ... c1 c0 c−1
xn −1 xn − 2 ... x2 x1 x0
yn −1 yn − 2 ... y2 y1 y0
rn −1 rn − 2 ... r2 r1 r0
1 0
1 1
Aritmética - Parte I
7
Sumador binario con signo
Del análisis de xn-1, yn-1, cn-2 y cn-1 resultarán el
overflow y del resultado de la suma
cn-1 cn-2 xn-1 = yn-1 = 0 xn-1 = yn-1 = 1 xn-1 ≠ yn-1
0 0 X, Y >= 0 rn-1 = 1
R >= 0 R<0
0 1 Overflow
positivo
1 0
1 1
Aritmética - Parte I
Aritmética - Parte I
8
Sumador binario con signo
Del análisis de xn-1, yn-1, cn-2 y cn-1 resultarán el
overflow y del resultado de la suma
cn-1 cn-2 xn-1 = yn-1 = 0 xn-1 = yn-1 = 1 xn-1 ≠ yn-1
0 0 X, Y >= 0 rn-1 = 1
R >= 0 R<0
0 1 Overflow
positivo
1 0 Overflow
negativo
1 1 rn-1 = 1 rn-1 = 0
R<0 R >= 0
Aritmética - Parte I
... ...
cn-1
cin
cn-2 ∑
OV R
Aritmética - Parte I
9
Carry look-ahead adder
Sumador con cálculo anticipado de acarreo (Carry
look-ahead adder-CLA) .
Gi = x i • y i
Pi = xi ⊕ y i
Aritmética - Parte I
10
Carry look-ahead adder
Ejemplo: CLA de 4 bits
x3 y3 x2 y2 x1 y1 x0 y0
1er nivel
G3 P3 G2 P2 G1 P1 G0 P0
Aritmética - Parte I
2do nivel
3do nivel
P3 c2 P2 c1 P1 c0 P0 c-
4do nivel
c3 r3 r2 r1 r0
Aritmética - Parte I
11
Ejercicios
Obtener expresiones de tiempo de cálculo y área de
sumador Ripple-carry de 6 bits y Carry look-ahead de 6
bits
Aritmética - Parte I
12