Aritmetica del computador
-
Upload
jose-gerardo-carrillo-manriquez -
Category
Documents
-
view
402 -
download
0
Transcript of Aritmetica del computador
Aritmética de la computadora
Jose Juan Meza Espinosa 1
Organización y arquitectura de Organización y arquitectura de computadorascomputadoras
Capítulo 8Capítulo 8
Aritmética de la computadoraAritmética de la computadora
Aritmética de la computadora
Arquitectura de computadoras
2
Unidad aritmética y lógicaUnidad aritmética y lógica
Hace los cálculosHace los cálculos El resto de los elementos de la computadora El resto de los elementos de la computadora
están para suministrar datos a la ALUestán para suministrar datos a la ALU– UDC, Registros, Memoria, E/SUDC, Registros, Memoria, E/S
Maneja enterosManeja enteros Puede menajar números de punto flotante Puede menajar números de punto flotante
(reales)(reales) Puede ser una FPU separada (coprocesador Puede ser una FPU separada (coprocesador
matemático)matemático)
Aritmética de la computadora
Arquitectura de computadoras
3
ALU Entradas y salidasALU Entradas y salidas
ALU
UnidadDe control
Registros
Banderas
Registros
Aritmética de la computadora
Arquitectura de computadoras
4
Representación de enterosRepresentación de enteros
Solo tenemos 0 y 1 para representar todoSolo tenemos 0 y 1 para representar todo Números positivos almacenados en binarioNúmeros positivos almacenados en binario
– ejemplo. ejemplo. 43=0010101143=00101011 No hay signo menosNo hay signo menos No hay puntosNo hay puntos
Representación de positivos y negativosRepresentación de positivos y negativos– Signo-MagnitudSigno-Magnitud
– Complemento a dosComplemento a dos
Aritmética de la computadora
Arquitectura de computadoras
5
Signo-MagnitudSigno-Magnitud
El bit de la izquierda es el bit de signoEl bit de la izquierda es el bit de signo– 00 significa positivo significa positivo– 11 significa negativo significa negativo– +18 = 00010010+18 = 00010010– -18 = 10010010-18 = 10010010
ProblemasProblemas– Se necesita considerar signo y magnitUd en la Se necesita considerar signo y magnitUd en la
aritméticaaritmética– Dos representaciones del cero (Dos representaciones del cero (+0+0 y y -0-0))
Aritmética de la computadora
Arquitectura de computadoras
6
Complemento a dosComplemento a dos
+3 = 00000011+3 = 00000011 +2 = 00000010+2 = 00000010 +1 = 00000001+1 = 00000001 +0 = 00000000+0 = 00000000 -1 = 11111111-1 = 11111111 -2 = 11111110-2 = 11111110 -3 = 11111101-3 = 11111101
Aritmética de la computadora
Arquitectura de computadoras
7
BeneficiosBeneficios
Una representación del ceroUna representación del cero La aritmética es fácilLa aritmética es fácil Negar es no tan fácilNegar es no tan fácil
– 3 = 000000113 = 00000011– Complemento booleanoComplemento booleano 1111110011111100– Agregar Agregar 11 al LSB al LSB 1111110111111101
Aritmética de la computadora
Arquitectura de computadoras
8
Negación caso especial 1Negación caso especial 1
0 =0 = 0000000000000000 Negación bit a bitNegación bit a bit 1111111111111111 Agrega 1 al LSBAgrega 1 al LSB +1+1 Resultado Resultado 1 000000001 00000000 Se ignora el overflow, tal:Se ignora el overflow, tal: - 0 = 0- 0 = 0
Aritmética de la computadora
Arquitectura de computadoras
9
Negación caso especial 2Negación caso especial 2
-128 =-128 = 1000000010000000 Negación de bitsNegación de bits 01111111 01111111 Suma 1 al LSBSuma 1 al LSB +1 +1 ResultadoResultado 10000000 10000000 Tal que: Tal que: -(-128) = -128-(-128) = -128
Aritmética de la computadora
Arquitectura de computadoras
10
Rango de númerosRango de números
8 bits complemento a 28 bits complemento a 2– +127 = 01111111 = 2+127 = 01111111 = 277-1-1– -128 = 10000000 = -2-128 = 10000000 = -277
16 bits complemento a 216 bits complemento a 2– +32767 = 011111111 11111111 = +32767 = 011111111 11111111 = 221515 - 1 - 1
– -32768 = 100000000 00000000 = --32768 = 100000000 00000000 = -221515
Aritmética de la computadora
Arquitectura de computadoras
11
Conversión entre longitudesConversión entre longitudes
Números positivos con ceros a la izquierdaNúmeros positivos con ceros a la izquierda– +18 = 00010010+18 = 00010010– +18 = 00000000 00010010+18 = 00000000 00010010
Números negativos con unos a la izquierdaNúmeros negativos con unos a la izquierda– -18 = 10010010-18 = 10010010– -18 = 11111111 10010010-18 = 11111111 10010010
Aritmética de la computadora
Arquitectura de computadoras
12
Suma y restaSuma y resta
Suma binaria normalSuma binaria normal El bit de signo monitorea el overflowEl bit de signo monitorea el overflow
Hacer el complemento a dos del substraendo y Hacer el complemento a dos del substraendo y súmalo al minuendosúmalo al minuendo– ejemplo. a - b = a + (-b)ejemplo. a - b = a + (-b)
Sólo necesitamos circuitería para la suma y el Sólo necesitamos circuitería para la suma y el complementocomplemento
Aritmética de la computadora
Arquitectura de computadoras
13
Hardware para suma y restaHardware para suma y resta
Registro B
Complementador
Sumador
Registro A
OF
Aritmética de la computadora
Arquitectura de computadoras
14
MultiplicaciónMultiplicación
ComplejaCompleja Generación de productos parcialesGeneración de productos parciales
– uno para cada dígito del multiplicadoruno para cada dígito del multiplicador Tener cuidado con donde ponemos cada Tener cuidado con donde ponemos cada
valor (en que columna)valor (en que columna) Sumar productos parcialesSumar productos parciales
Aritmética de la computadora
Arquitectura de computadoras
15
Ejemplo de multiplicaciónEjemplo de multiplicación
1011 Multiplicando (11 dec)
x 1101 Multiplicador (13 dec)
1011
0000 Productos parciales
1011
1011
10001111 Producto (143 dec)
Aritmética de la computadora
Arquitectura de computadoras
16
Diagrama de bloques para la Diagrama de bloques para la multiplicación binaria sin signomultiplicación binaria sin signo
An-1 • • • A0
Sumador de n- bits
Mn-1 • • • M0
Lógica de control deDesplazamientos y sumas
Qn-1 • • • Q0C
Sumar
Desplazar a la derecha
Multiplicador
Aritmética de la computadora
Arquitectura de computadoras
17
Ejemplo de la ejecuciónEjemplo de la ejecución
C A Q M
0 0000 1101 1011 Valores iniciales
0 1011 1101 1011 Suma
0 0101 1110 1011 Desplazamiento
0 0010 1111 1011 Suma
0 1101 1111 1011 Suma
0 0110 1111 1011 Desplazamiento
1 0001 1111 1011 Suma
0 1000 1111 1011 Desplazamiento
Primer Ciclo
Segundo Ciclo
Tercer Ciclo
Cuarto Ciclo (Producto en A, Q)
Aritmética de la computadora
Arquitectura de computadoras
18
Diagrama de flujo para la Diagrama de flujo para la multiplicación de binarios sin multiplicación de binarios sin
signosignoInicio
C,A 0M MultiplicandoQ MultiplicadorCuenta n
¿Q0=1?
C,A A + M
Desplazar C, A, QCuenta Cuenta -1
¿Cuenta=0?
Fin
Si
Si
No
No
Aritmética de la computadora
Arquitectura de computadoras
19
Multiplicando números negativosMultiplicando números negativos
¡Lo anterior no funciona! ¡Lo anterior no funciona! Solución 1Solución 1
– Convertir a positivo si se requiereConvertir a positivo si se requiere– Multiplica como se hizo anteriormenteMultiplica como se hizo anteriormente– Si los signos fueron diferentes, negar el Si los signos fueron diferentes, negar el
resultadoresultado
Solución 2Solución 2– El algoritmo de BoothEl algoritmo de Booth
Aritmética de la computadora
Arquitectura de computadoras
20
Algoritmo de BoothAlgoritmo de Booth
Inicio
A 0, Q-1 0M MultiplicandoQ MultiplicadorCuenta n
¿Q0,Q-1?
A A + M A A - M
¿Cuenta=0?Fin
Si
=01
No
=10
DesplazamientoAritmético a Derecha: A, Q, Q-1
Cuenta Cuenta -1
=11=00
Aritmética de la computadora
Arquitectura de computadoras
21
Ejemplo de la ejecuciónEjemplo de la ejecución
A Q Q-1 M
0000 0011 0 0111 Valores iniciales
1001 0011 0 0111 A A - M
1100 1001 1 0111 Desplazamiento
1110 0100 1 0111 Desplazamiento
0101 0100 1 0111 A A + M
0010 1010 0 0111 Desplazamiento
0001 0101 0 0111 Desplazamiento
Primer Ciclo
Segundo Ciclo
Tercer Ciclo
Cuarto Ciclo (Producto en A, Q)
Aritmética de la computadora
Arquitectura de computadoras
22
DivisiónDivisión
Más compleja que la multiplicaciónMás compleja que la multiplicación Los números negativos son más Los números negativos son más
complicados!complicados! Se basa en la división largaSe basa en la división larga
Aritmética de la computadora
Arquitectura de computadoras
23
División de números binarios sin División de números binarios sin signosigno
001111
1011
00001101
100100111011001110
1011
1011100
Cociente
Dividendo
Residuo
ResiduosParciales
Divisor
Aritmética de la computadora
Arquitectura de computadoras
24
Números realesNúmeros reales
Números con fraccionesNúmeros con fracciones Podrían representrase en binario puroPodrían representrase en binario puro
– 1001.1010 = 21001.1010 = 244 + 2 + 200 +2 +2-1-1 + 2 + 2-3 -3 =9.625=9.625
¿Dónde está el punto binario?¿Dónde está el punto binario? ¿Fijo?¿Fijo?
– Muy limitadoMuy limitado
¿Moviendolo?¿Moviendolo?– ¿Cómo sabemos dónde está?¿Cómo sabemos dónde está?
Aritmética de la computadora
Arquitectura de computadoras
25
Punto flotantePunto flotante
+/- .mantisa x 2+/- .mantisa x 2exponenteexponente
El punto está fijo entre el bit de signo y el El punto está fijo entre el bit de signo y el cuerpo de la mantisacuerpo de la mantisa
El exponente indica la posición del puntoEl exponente indica la posición del punto
Bit de
signo Exponentesesgado Mantisa
Aritmética de la computadora
Arquitectura de computadoras
26
Ejemplos de punto flotanteEjemplos de punto flotante
Bit de
signo
Exponentesesgado
Parte fraccionaria
8 bits 23 bits
0.11010001 x 210100 = 0 10010100 10100010000000000000000
-0.11010001 x 210100 = 1 10010100 10100010000000000000000
0.11010001 x 2-10100 = 0 01101100 10100010000000000000000
-0.11010001 x 2-10100 = 1 01101100 10100010000000000000000
Aritmética de la computadora
Arquitectura de computadoras
27
Signos para Punto FlotanteSignos para Punto Flotante
La mantisa se guarda en complemento a 2La mantisa se guarda en complemento a 2 Los exponentes son sesgados, un valor fijo Los exponentes son sesgados, un valor fijo
o sesgo se resta a ese campo para conseguir o sesgo se resta a ese campo para conseguir el exponente verdaderoel exponente verdadero– ejemplo. Sesgo =128ejemplo. Sesgo =128– Tenemos un campo exponente de 8 bitsTenemos un campo exponente de 8 bits– Rango de valores puros es de 0-255Rango de valores puros es de 0-255– Le restamos 128 para obtener el valor correctoLe restamos 128 para obtener el valor correcto– Rango -128 a +127Rango -128 a +127
Aritmética de la computadora
Arquitectura de computadoras
28
NormalizaciónNormalización
Los números PF usualmente están normalizadosLos números PF usualmente están normalizados El exponente se ajusta que el bit más significativo El exponente se ajusta que el bit más significativo
de la mantisa es 1de la mantisa es 1 Como siempre es 1 no se requiere almacenarloComo siempre es 1 no se requiere almacenarlo
– La notación científica donde los números están La notación científica donde los números están normalizados para tener un sólo dígito antes del punto normalizados para tener un sólo dígito antes del punto decimaldecimal
– Caso 3.123 x 10Caso 3.123 x 1033
Aritmética de la computadora
Arquitectura de computadoras
29
Rangos de PFRangos de PF
Para un número de 32 bitsPara un número de 32 bits– Exponente de 8 bitsExponente de 8 bits– +/- 2+/- 2256 256 1.5 x 10 1.5 x 107777
PrecisiónPrecisión– El efecto de cambiar lsb (bit menos El efecto de cambiar lsb (bit menos
significativo) de la mantisasignificativo) de la mantisa– Mantisa de 23 bits 2Mantisa de 23 bits 2-23 -23 1.2 x 10 1.2 x 10-7-7
– Aproximadamente 6 posiciones decimalesAproximadamente 6 posiciones decimales
Aritmética de la computadora
Arquitectura de computadoras
30
Números representablesNúmeros representables
Ent
eros
rep
rese
ntab
les
0-231 231-1N
úmer
osN
egat
ivos
Rep
rese
ntab
les
0-0.5X2-128 0.5x2-128N
úmer
osP
osit
ivos
Rep
rese
ntab
les
Des
bord
amie
nto
Pos
itiv
o
Des
bord
amie
nto
Neg
ativ
o Cero
Desbordamiento aCero positivo
Desbordamiento aCero negativo
Rectareal(1-2-24)x2127-(1-2-24)x2127
Aritmética de la computadora
Arquitectura de computadoras
31
IEEE 754IEEE 754
Un estandar para el almacenamiento de Un estandar para el almacenamiento de punto flotantepunto flotante
Formatos de 32 y 64 bitsFormatos de 32 y 64 bits Exponentes de 8 y 11 bits respectivamenteExponentes de 8 y 11 bits respectivamente Formatos extendidos (mantisa y exponente) Formatos extendidos (mantisa y exponente)
para resultados intermediospara resultados intermedios
Aritmética de la computadora
Arquitectura de computadoras
32
Aritmética de PF +/-Aritmética de PF +/-
Comprobar valores ceroComprobar valores cero Ajuste de mantisasAjuste de mantisas Suma o resta mantisasSuma o resta mantisas Normalizar el resultadoNormalizar el resultado
Aritmética de la computadora
Arquitectura de computadoras
33
Aritmética de PF x/Aritmética de PF x/
Checasr si cualquiera de los operandos es ceroChecasr si cualquiera de los operandos es cero Sumar/restar exponentes Sumar/restar exponentes Multiplicar/dividir mantisas (checar signo)Multiplicar/dividir mantisas (checar signo) NormalizarNormalizar RedondearRedondear Todos los resultados intermedios deben estar en Todos los resultados intermedios deben estar en
un almacenamiento del doble de tamañoun almacenamiento del doble de tamaño
Aritmética de la computadora
Arquitectura de computadoras
34
Multiplicación de punto flotanteMultiplicación de punto flotante
Multiplicar
¿X=0?
z0
Retornar
¿Y=0?Sumar
exponentes
Restarsesgo
¿DesbordamientoExponente?
¿Desbordamiento a Cero en exponente?
Indicardesbordamiento
IndicarDesbordamiento a
Cero
Multiplicarmantisas
Normalizar
Redondear
Retornar
Retornar
S
N
S
N
S
S
N
Aritmética de la computadora
Arquitectura de computadoras
35
División en punto flotanteDivisión en punto flotante
Divdirr
¿X=0?
z0
Retornar
¿Y=0?Restar
exponentes
Sumarsesgo
¿Desbordamiento enExponente?
¿Desbordamiento a Cero en exponente?
Indicardesbordamiento
IndicarDesbordamiento a
Cero
Dividirmantisas
Normalizar
Redondear
Retornar
Retornar
S
N
S
N
S
S
N
zinfinito
Aritmética de la computadora
Arquitectura de computadoras
36
Lecturas recomendadasLecturas recomendadas
IEEE 754 en el web de la IEEEIEEE 754 en el web de la IEEE
Aritmética de la computadora
Arquitectura de computadoras
37