Apuntes Arquitectura I 2 - 2
January 27, 2023 | Author: Anonymous | Category: N/A
Short Description
Download Apuntes Arquitectura I 2 - 2...
Description
ARQUITECTURA DE COMPUTADORAS I Revision 2.2
Contenido
Los NUMEROS .................................................................................................. 3 FORMATO DE REPRESENTACION DE ENTEROS SIN SIGNO ............. .................. ..... 5 SISTEMAS DE NUMERACION Y SISTEMAS BINARIOS ............ ......................... .................. ..... 6 El sistema binario ........................................................................................... 7 Definiciones: ................................................................................................... 8 ALGORITMO: ................................................................................................. 8 CODIFICACION .............................................................................................. 8 REPRESENTACION DE LA INFORMACION .................................................... 8 NUMEROS DE PUNTO FIJO SIN SIGNO ......................... ............ .......................... .......................... ................ ... 9 RANGO Y PRECISION EN NUMEROS DE PUNTO FIJO ............. .......................... ................ ... 9 LA LEY ASOCIATIVA DEL ALGEBRA NO SIEMPRE FUNCIONA EN LA COMPUTADORA A+(B+C)=(A+B)+C) ............ ......................... .......................... ......................... .................. ...... 10 SISTEMAS DE NUMERACION POSICIONAL ............................................. 11 CONVERSION ENTRE SISTEMAS ............................................................. 13 DEFINICIONES. SISTEMAS BINARIO, OCTAL Y HEXADECIMAL ............. ............ . 13 Conversión a binario de la parte entera de un número de punto fijo ............ ......... ... 13 METODO DE LOS RESTOS ........................................................................ 13 CONVERSION DE LA PARTE FRACCIONARIA DE UN NUMERO DE PUNTO FIJO ................................................................................................ 14 FRACCIONES NO EXACTAS ...................................................................... 15 REPRESENTACION DE NUMEROS EN LOS SITEMAS BINARIO, BI NARIO, OCTAL Y DECIMAL ...................................................................................................... 16 CONVERSIÓN DE UN NUMERO DECIMAL A OCTAL................................ 16 CONVERSIÓN DE UN NUMERO OCTAL A BINARIO ............. ......................... .................... ........ 17 CONVERSIÓN DE UN NUMERO DECIMAL A UN NUMERO HEXADECIMAL ...................................................................................................................... 17 DE UN NUMERO HEXADECIMAL A UN NUMERO DECIMAL CONVERSIÓN ...................................................................................................................... 18 ARITMETICA DE LAS COMPUTADORAS ...................................................... 19 SUMA BINARIA ............................................................................................ 19 RESTA BINARIA .......................................................................................... 21 NUMEROS DE PUNTO FIJO CON SIGNO ..................................................... 22 MAGNITUD Y SIGNO ................................................................................... 22 COMPLEMENTO A UNO ............................................................................. 23 COMPLEMENTO A DOS .............................................................................. 24 DECIMAL CODIFICADO EN BINARIO y COMPLEMENTO A 9 Y 10 .......... 26 REPRESENTACION EXCEDIDA (DESPLAZADA) ...................................... 28 REPRESENTACION EN PUNTO FLOTANTE ........................ ........... .......................... ......................... ............ 31 RANGO Y PRECISION EN LOS NUMEROS CON COMA FLOTANTE ....... 33 NORMALIZACION Y ESQUEMA DE BIT IMPLICITO ........................ ........... ....................... .......... 34
1
REPRESENTACION DE NUMEROS DE PUNTO FLOTANTE DENTRO DE LA COMPUTADORA .................................................................................... 36 ERRORES EN LA REPRESENTACION DE PUNTO FLOTANTE ............... 39 CARACTERIZACION DEL ERROR, EL RANGO Y LA PRECISION ............ 39 CARACTERISTICAS A CONSIDERAR EN LA REPRESENTACION CON PUNTO FLOTANTE ..................................................................................... 40 Números extremos de la posición planteada ......................... ............. ......................... ....................... .......... 41 IEEE 754....................................................................................................... 45 PARAMETROS DEL FORMATO IEEE 754 ......................... ............ .......................... ......................... ............ 48 CASO MISIL PATRIOT ................................................................................. 51 CODIGOS ALFANUMERICOS ......................................................................... 52 ASCII ............................................................................................................ 52 EBCDIC ........................................................................................................ 53 UNICODE ..................................................................................................... 54 ARITMETICA .................................................................................................... 55 SUMA Y RESTA EN PUNTO FIJO ............................................................... 55 SUMA Y RESTA EN LA REPRESENTACION DE COMPLEMENTO A DOS ...................................................................................................................... 55 DESBORDE .................................................................................................. 56 METODO ALTERNATIVO ............................................................................ 56 DIAGRAMA DE BLOQUES DEL HARDWARE PARA LA SUMA Y RESTA . 57 SUMA Y RESTA EN REPRESENTACION DE.............................................. COMPLEMENTO A UNO.... 59 58 PRODUCTO Y COCIENTE EN PUNTO FIJO MULTIPLICACION DE NUMEROS SIN SIGNO ......................... ............ ......................... .................. ...... 59 IMPLEMENTACION CIRCUITAL .................................................................. 60 DIVISION SIN SIGNO .................................................................................. 62 IMPLEMENTACION CIRCUITAL .................................................................. 64 PRODUCTO Y COCIENTE SIGNADOS....................................................... 67 ARITMETICA DE PUNTO FLOTANTE ............................................................ 68 SUMA Y RESTA EN FORMATO DE PUNTO FLOTANTE .......................... ............. ............... 68 PRODUCTO Y COCIENTE EN FORMATO DE PUNTO FLOTANTE .......... 70 COCIENTE ................................................................................................... 71 ESTÁNDAR DEL IEEE PARA PARA LA ARITME ARITMETICA TICA BINARIA CON COMA FLOTANTE ................................................................................................... 72 NUMEROS DESNORMALIZADOS .............................................................. 72 ARITMETICA DE ALTO RENDIMIENTO............ ......................... .......................... .......................... ................ ... 74 SUMA DE ALTO RENDIMIENTO ................................................................. 74 PRODUCTO DE ALTO RENDIMIENTO ....................................................... 74 ALGORITMO DE BOOTH ............................................................................. 74 DIVISION DE ALTO RENDIMIENTO............ ......................... ......................... ......................... ....................... .......... 77
2
L OS NUMERO S Un número, en ciencia, es un concepto que expresa una cantidad en relación a su unidad. También puede indicar el orden de una serie (números ordinales) y También, en sentido amplio, indica el carácter gráfico que sirve para representarlo; dicho signo gráfico de un número recibe el nombre de numeral o cifra.
Los números más conocidos son los números naturales. Denotados mediante
, son conceptualmente los más más simp simples les y los que se usan para
contar unidades discretas. Éstos, conjuntamente con los números negativos, conforman el conjunto de los enteros, denotados mediante (del alemán 'números'). Los números negativos permiten representar formalmente Zahlen 'números'). deudas, y permiten generalizar la resta de cualesquiera dos números naturales. Otro tipo de números ampliamente usados son números fraccionarios, fracc ionarios, y tanto cantidades inferiores a una unidad, como números mixtos mixt os (un conjunto de unidades más una parte inferior a la unidad). Los números fraccionarios pueden ser expresados siempre como cocientes de enteros. El conjunto de todos los números fraccionarios es el conjunto de los números racionales (que usualmente se definen para que incluyan tanto a los racionales positivos, como a los racionales negativos y el cero). Este conjunto de números de designa como
.
3
Los números racionales permiten resolver gran cantidad c antidad de problemas prácticos, pero desde los antiguos griegos se conoce que ciertas relaciones geométricas (la diagonal de un cuadrado de lado unidad) son números no enteros que tampoco son racionales. Igualmente, la solución numérica de una ecuación polinómica cuyos coeficientes son s on números racionales, usualmente es un número no racional. Puede demostrarse que cualquier número irracional puede representarse como una sucesión de Cauchy de números racionales que se aproximan a un límite numérico. El conjunto de todos los números racionales y los irracionales (obtenidos como límites de succesiones de Cauchy de números números racionales) es el conjunto de los números reales reales
. Durante Durante un
tiempo se pensó que toda magnitud física existente ex istente podía ser expresada en términos de números reales exclusivamente. Entre los reales, existen números que no son soluciones de una ecuación polinomial o algebraica, que reciben el nombre de transcendentales. Ejemplos famosos de estos números son el número π (Pi) y el número e (este último base de los logaritmos naturales), los cuales están relacionados entre sí por la identidad de Euler. Uno de los problemas de los números reales es que no forman un cuerpo algebraicamente cerrado, por lo que ciertos problemas no tienen solución planteados en términos de números reales. Esa es una de las razones por las cuales se introdujeron los números números complejos
, qu que e son el mínimo
cuerpo algebraicamente cerrado que contiene a los números reales. Además algunas aplicaciones prácticas así como en las formulaciones estándar de la mecánica cuántica se considera útil introducir los números complejos. Al parecer la estructura matemática de los números complejos refleja estructuras existentes en problemas físicos, por lo que en física teórico y en diversas aplicaciones los números complejos se usan en pie de igualdad con los números reales, a pesar de que inicialmente fueron considerados cons iderados únicamente como un artificio matemático sin relación con la realidad física. Todos los conjuntos de números
fueron de alguna manera "descubiertos"
o sugeridos en conexión con problemas planteados en problemas físicos o en el seno de la matemática elemental y todos ellos parecen tener importantes conexiones con la realidad física.
4
Fuera de los números reales y complejos, claramente conectados con problemas de las ciencias naturales, existen otros tipos de números que generalizan aún más y extienden el concepto de número de una manera más abstracta y responden más a creaciones c reaciones deliberadas de matemáticos. La mayoría de estas generalizaciones del concepto de número se usan sólo en matemáticas, aunque algunos de ellos han encontrado aplicaciones para resolver ciertos problemas físicos. Entre ellos están los números hipercomplejos que incluyen a los cuaterniones c uaterniones útiles para representar rotaciones en un espacio de tres dimensiones, y generalizaciones de etos como octoniones y los sedeniones. A un nivel un poco más abstracto abs tracto también se han ideado conjuntos de números capaces de tratar con cantidades infinitas e infinitesimales como los hiperreales y los transfinitos. Un sistema numérico significa una forma estructurada de representar números, lo que implica varias acepciones: °
identificación (841-99-9999, 532-40-1234, 786-2885)
°
orden (primero, segundo, vigésimotercero)
°
cantidad (docena, gruesa, millar)
°
medida (un metro, galón, quilate)
°
solución a una ecuación polinomial (1+2i, -5i)
Nosotros nos limitaremos a las acepciones de cantidad y medida. Cada acepción conlleva su propio sistema. Para representar cantidades, cantidades, usamos el conjunto de los números enteros; para representar medidas, usamos el conjunto de los números reales. A nivel de máquina sólo se representan números enteros o números reales, mientras que otros conjuntos numéricos se manejan por programación.
FORMATO DE REPRESENTACION DE ENTEROS SIN SIGNO
El formato de representación de enteros sin signo se emplea en el direccionamiento de la memoria. No es un formato para representar datos propiamente.
5
No obstante, necesitamos ejecutar operaciones de aritmética (comparaciones, suma, multiplicaciones) con con el mismo. La memoria se organiza organiza en unidades ddee almacenamiento llamadas células o celdas, identificadas con un rótulo numérico. (La celda típica típica está constituida por por ocho bits, a esta estructura le llamamos byte, y cada byte en la memoria se reconoce por su número de identificación único). Los rótulos se asignan asignan del cero en adelante, hasta cubrir todos las celdas en la memoria. Es importante diseñar un formato capaz de numerar numerar toda la memoria. Los tamaños de memoria se declaran de acuerdo a la cantidad de bytes que constituyen la misma. SISTEMAS DE NUMERACION Y SISTEMAS BINARIOS
Los sistemas de numeración son símbolos y reglas para denotar cantidades Muchas civilizaciones inventaron los suyos, por ejemplo, los romanos usaron la notación I, II, III, IV, .. En nuestros tiempos, el sistema de numeración que usamos cotidianamente se llama sistema de numeración posicional en base 10 (o simplemente sistema decimal). Es decimal pues se usan diez símbolos (a saber 0, 1, 2, 3, 4, 5, 6, 7, 8, 9) y depende de la posición pues no es lo mismo 12 (uno dos) que 21 (dos uno). *
**
***
****
*****
***** *
***** **
***** ***
***** ****
***** *****
1
2
3
4
5
6
7
8
9
10
***** ***** *
***** ***** **
***** ***** ***
***** ***** ****
***** ***** *****
***** ***** ***** *
***** ***** ***** **
***** ***** ***** ***
***** ***** ***** ****
***** ***** ***** *****
11
12
13
14
15
16
17
18
19
20
¿Pero por qué usamos este sistema? ¿Y por qué se eligieron diez símbolos? Pues la respuesta está en la historia; el sistema decimal desciende de los números usados por los árabes. Pero si nos vamos a la lógica matemática, no hay razón para usar exactamente diez símbolos; podríamos emplear cuantos quisiéramos y usar las reglas que queramos. Por ejemplo, los mayas usaron 3 símbolos y ponían símbolos arriba de otros.
6
Pero ya no tenemos que irnos al pasado para encontrar otros sistemas de numeración. En la actualidad, se emplea el sistema de numeración hexadecimal posicional (de dieciséis símbolos 0, 1, 2, …, 9, A, B, …, F ) para encriptar contraseñas o para denotar colores. En decimal
En hexadecimal
Color
10, 354 714
9E001A
_______________ _________ ______
7, 556 367
734D0F
_______________ _________ ______
La relación al uso del sistema hexadecimal en los lenguajes computacionales tiene que ver en gran medida a que la información se guarda en bloques de potencia de dos (2n). Y el 16 es una potencia de dos: 24 El sistema binario
El sistema binario es util por tener tan pocos símbolo porque con sólo dos símbolos se pueden escribir todos los números, incluyendo al cero. Pero además, aprovecha de la posición para reducir la cantidad de dígitos (como se hace en el sistema decimal). * 1
** 10
*** 11
**** 100
***** 101
****** 110
******* 111
******** 1000
******** *
******** **
******** ***
******** ****
******** *****
******** ******
******** *******
******** ********
1001
1010
Una primera pregunta que podemos hacernos de la notación decimal es la siguiente, ¿qué cantidad representa la notación 100...00 (un uno con muchos)? Pues la respuesta es más o menos la misma que lo que ocurre en la notación decimal. 7
Binario 10
Decimal 10
2
100
2×2=2
1000
2×2×2=2
10000
2
10
100
10×10=10
1000
10
10000
10
La simple existencia de esta notación y este parecido a la notación decimal puede parecer no muy motivante, pero tal vez la siguiente observación les resulte más importante. Todo número entero es una potencia de dos o suma de potencias de dos. Por ejemplo, 6=21+22
Para ver esto, basta con observar que la notación de binaria se transforma a una suma de potencias de dos, por ejemplo, 43=(101011) 2
5 4 3 2 1 0 =25 +0×2 3 1+1×2 0 +0×2 +1×2 +1×2
=2 +2 +2 +2 =32+8+2+1
Esto es similar a lo que muchos hemos visto para el sistema decimal: 3
2
1
0
1235 = 1x10 +2×10 +3×10 +5×10
Definiciones: ALGORITMO:
Conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permiten realizar una actividad mediante pasos sucesivos que no generan dudas a quien deba realizar esa actividad. CODIFICACION
Se entiende por Codificación en el contexto de la Ingeniería al proceso de conversión de un sistema de datos de origen a otro sistema de datos de destino. De ello se desprende como corolario que la información contenida en esos datos resultantes deberá ser equivalente a la información de origen.
REPRESENT CION DE L
INFORM CION
8
Codificación de números de punto fijo con y sin signo Números reales (números de punto flotante) Caracteres para impresión de texto
•
•
•
RECORDAR 1. Para el almacenaje y posterior representación de la información, debemos recordar que el tamaño de las locaciones de memoria habitualmente es fijo, y que lo usual es tener caracteres de 8,16,32 o 64 bits. 2. Si bien intuitivamente para el ser humano es mas simple utilizar el sistema decimal (tenemos 10 dedos), para una computadora que se maneja con valores de 0 y 1, los sistemas de numeración utilizados serán binarios (binario, octal, hexadecimal).
NUMEROS DE PUNTO FIJO SIN SIGNO Todos los números a representar tienen exactamente la misma cantidad de dígitos y la coma esta siempre ubicada en el mismo lugar. 5,12 9,11 En binario
11,10 01,10 00,11
En una computadora los números no se almacenan como decimales sino que se presupone que ocupan un lugar determinado que los identifica como tales
RANGO Y PRECISION EN NUMEROS DE PUNTO FIJO RANGO:: Expresa la diferencia entre el mayor y menor numero representable. RANGO PRECISION:: Distancia entre dos números consecutivos en una serie numérica. PRECISION
9
Ej.: Para 3 dígitos en decimal Rango: 0.00 a 9.99 Precisión: La mitad entre dos valores consecutivos 0.01 y 0.02 ⇒ max. Error 0.005.
LA LEY ASOCIATIVA DEL ALGEBRA NO SIEMPRE FUNCIONA EN LA COMPUTADORA A+(B+C)=(A+B)+C) Muchas veces las memorias memorias se organizan de de manera circular. Es decir, después de alcanzar la dirección más alta continuamos en la dirección cero. Esto significa que si a una dirección le añadimos una cantidad que sobrepasa la dirección más grande tendremos condición de overflow, pero el resultado de la suma no necesariamente necesariamente es inválido. En memorias circulares nnos os apunta a la dirección correcta a la que queremos llegar. En el caso de números en el formato de punto fijo con representación finita, donde suponemos un registro que almacena un solo digito.(0 a 9). Ej.: A:7, B:4 y C:-3. A+(B+C)= 7 + (4-3)= 8 (A+B)+C= (7+4) - 3= 1 1 - 3
FUERA DE RANGO (A+B)+C = ( 7 + 4 ) – 3 = 9 – 3 = 6 Se produ jo un desborde en el resultado intermedio al utilizar utilizar un formato de punto fijo de longitud finita.
La única solución es detectar el desborde y modificar el tamaño del registro donde se almacena el mismo, pero no siempre es posible hacerlo.
10
SISTEMAS DE NUMERACION NUMERACION POSICIONAL Analiza la utilización de sistemas numéricos con bases arbitrarias en escrituras posicionales
BAS E o RA IZ: de un sis sistema tema de n umeración define el rango de valores posibles.. posibles n −1
VALOR :
∑ b .k
i
i
i:− m
Donde b es el valor del digito k es la base i es la posición del digito n cantidad de dígitos de la parte entera m cantidad de dígitos en la parte decimal Ej.:
541,25 Base: 10 ⇒ k= 10 n=3 m=2 2
1
0
-1
-2
= 5 x 10 + 4 x 10 + 1 x 10 + 2 x 10 + 5 x 10 = 500 + 40 + 1 + 2/10 + 5/100 = 541,25 Ej.: binario (1010,01)2 K=2 n=4 m=2 3
2
1
0
-1
-2
= 1 x 2 + 0 x 2 + 1 x 2 + 0 x 2 + 0 x 2 + 1 x 2
11
= 8 + 0 + 2 + 0 + 0/2 + ¼ = 10,25
Ejemplo Un profesor dice que hay 100 estudiantes en la clase de los cuales 24 son hombres y 32 son mujeres. ¿Qué base numérica está utilizando el profesor? Sea n la base pedida.
Se debe cumplir que: 100n=1 x n2+0 x n1+0 x n0=24n+32n 1 x n2=(2 x n1+ 4 x n0)+(3 x n1+2 x n0) . n 2 = 5n + + 6 n 2 + 5n + + 6 = 0
Por tanto n = 6 y n = - 1. La base que está utilizando es 6. El número de estudiantes es (en base 10):
estudiantes. Número de hombres:
12
Número de mujeres:
CONVERSION ENTRE SISTEMAS DEFINICIONES. DEFINICIO NES. SISTEMAS BINARIO, OCTAL Y HEXADECIMAL
El sistema binario es un sistema de numeración en el que los números se representan utilizando solamente dos bits que pueden ser cero o uno (0 y y 1).Su base numérica es 2. El octal utiliza tres bits por lo que comprenderá del 0 al 7 y su base numérica será 8. El hexadecimal utiliza 4 bits y numera 16 posiciones (0, 1, 2, 3, 4, 5, 6, 7, 8 ,9, A , B ,C ,D ,E y F) y su base numérica es 16. Comenzareos con el sistema BINARIO Es simple pasar de binario a decimal, no al revés. Si hay parte entera y decimal, se operan por separado
Conversión a binario de la parte entera de un número de punto fijo La representación era bi x 2i + b i-1 x 2 i-1 + … + b1 x 21 + b0 x 20
dividiendo el numero por 2 bi x 2i-1 + b i-1 x 2 i-2 + … + b1 x 20 con un resto de b0.
METODO DE LOS RESTOS Ej.: 23 23/2 = 11
resto 1
11/2 = 5
resto 1
5/2= 2
resto 1
bit menos significativo
13
2/2= 1
resto 0
1/2 = 0
resto 1
bit mas significativo
(23)10 = (10111)2
En forma inversa = (10111)2 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = 16 + 0 + 4 + 2 + 1 = 23
CONVERSION DE LA PARTE FRACCIONARIA DE UN NUMERO DE PUNTO FIJO METODO DE LAS MULTIPLICACIONES Una fracción binaria esta representada por: b-1 x 2-1 + b-2 x 2-2 + b-3 x 2-3 +… si multiplicamos por 2 b-1 + b-2 x 2-1 + b-3 x 2-2 +…
14
Ej.: 0,375 0.375 x 2 =
0 .75 bit mas significativo
0.75 x 2 =
1 .5
0,5 x 2 =
1
bit menos significativo
0.375) 10 = 0.011)2 (0.011)2 = 0 x 2-1 + 1 x 2-2 + 1 x 2-3 = 0 +1/2 + 1/8 = 0 + 0.25 + 0.125 = (0.375)10
FRACCIONES NO EXACTAS No todas las fracciones representadas en el sistema decimal tienen un número racional exacto en binario. Ej.: (0,2)10 0.2 x 2 =
0. 4
0
0.4 x 2 =
0. 8
0
0.8 x 2 = 0.6 x 2 =
1. 6 1. 2
1 1
0.2 x 2 =
0. 4
0
Para núm eros de un solo digito, digito, sol soloo 0 y 0 .5 dan soluciones soluciones exactas 0.5 x 2 =
1
0
0x2=
0
0
15
Para números de 4 dígitos lo hacen 0 , 0.25 , 0.5 y 0.75 0. 75
REPRESENTACION DE NUMEROS EN LOS SITEMAS BINARIO, OCTAL Y REPRESENTACION DECIMAL
Para pasar a octal se divide div ide el número binario en grupos de 3, y para el hexadecimal en grupos de 4. (10110)2 = (010)2 (110)2 = (2)8 (6)8 = (26)8 (10110110)2 = (1011)2 (0110)2 = (B)16 (6)16 = (B6)16
CONVERSIÓN DE UN NUMERO DECIMAL A OCTAL Para convertir un número en el sistema decimal al sistema de numeración Octal, debemos seguir los siguientes pasos Ej.: Convertir Convertir el núme ro decimal 323,625 a el si sistema stema d e num eración Octal 1. Se toma el numero entero y se s e divide entre 8 repetidamente hasta que el dividendo sea menor que el divisor, para colocar entonces el numero 0 y pasar el dividendo a formar el primer dígito del numero equivalente en decimal 2. Se toma la parte fraccionaria del numero decimal y la multiplicamos por 8 sucesivamente hasta que el producto no tenga números fraccionarios fracc ionarios 3. Pasamos la parte entera del producto a formar f ormar el dígito correspondiente 4. Al igual que los demás sistemas , el numero equivalente en el sistema decimal , esta formado por la unión del numero entero equivalente y el numero fraccionario equivalente.
16
Conversión de decimal a octal
CONVERSIÓN DE UN NUMERO OCTAL A BINARIO La ventaja principal del sistema de numeración Octal es la facilidad conque pueden realizarse la conversión entre un número binario y octal. A continuación mostraremos un ejercicio que ilustrará la teoría. Por medio de este tipo de conversiones, cualquier número Octal se convierte a binario de manera individual. En este ejemplo, mostramos claramente c laramente el equivalente 100 111 010 en binario de cada numero octal de forma individual .
Figura 11: Conversión de octal a binario
CONVERSIÓN DE UN NUMERO DECIMAL A UN NUMERO HEXADECIMAL Convertir el número 250.25 a Hexadecimal 1. Se toma la parte entera y se divide sucesivamente sucesivamente por el numero decimal 16 (base) hasta que el cociente sea 0 2. Los números enteros resultantes de los cocientes, pasarán a
conformar el numero hexadecimal correspondien correspondiente, te, teniendo en cuenta que el sistema de numeración hexadecimal posee solo 16 símbolos, donde los números del 10 hasta el 15 tienen símbolos alfabéticos que ya hemos explicado 3. La parte fraccionaria del numero a convertir se multiplica por 16 (Base) sucesivamente sucesivamente hasta que el producto rresultante esultante no tenga parte fraccionaria 4. Al igual que en los sistemas anteriores, el numero equivalente se forma, de la unión de los dos números equivalentes, tanto entero
17
como fraccionario, separados por un punto que establece la diferencia entre ellos.
Resto
valor en hexa.
10 15
A F
ENTERO 250 / 16 = 15 15/16 = 0 FRACCIONARIA 0,25 X 16 = 4
(250.25)10 = (FA.4)16 (F )
16
= (15 x 16) + (10 x 1) = 250
CONVERSIÓN DE UN NUMERO HEXADECIMAL A UN NUMERO DECIMAL Como en los ejemplos anteriores este también nos ayudará a entender mejor este procedimiento: Convertir el numero hexadecimal 2B6 a su equivalente decimal. 1. Multiplicamos el valor de posición de cada columna por el dígito hexadecimal correspondiente. 2. El resultado del número decimal equivalente se obtiene, sumando todos los productos obtenidos en el paso anterior.
18
O lo que es lo mismo n −1
VALOR :
∑
i
bi .k
i :− m
y B16= 1110
2 x 162 + 11 x 161 + 6 x 160 = 69410
RITMETIC RITMETI C
DE L S COMPU T DOR S
SUMA: Similar a la realizada a mano para números decimales 0+0=0 0+1=1 1+0=1 1+1=0 y nos llevamos 1 (arrastre) Arrastre
11110000
Sumando A
01111100
(124)10
Sumando B
01011010
(90)10
11010110
(214)10
SUMA BINARIA
19
Suma binaria
La suma o adición binaria es análoga a la de los números decimales. La diferencia radica en que en los números binarios se produce un acarreo (carry) cuando la suma excede de uno mientras en decimal se produce un acarreo cuando la suma excede de nueve(9). Del gráfico anterior podemos sacar las siguientes conclusiones: 1. Los números o sumandos se suman en paralelo o en columnas, colocando un numero encima del otro. Todos los números bajo la misma columna tienen el mismo valor posicional. 2. El orden de ubicación de los números no importa (propiedad conmutativa).
Reglas para la suma binaria
En la figura anterior se indican las reglas quellamado rigen lasemisumador, suma binaria yque en la figura proxima se muestra un circuito lógico suma 2 bits (A y B) que genera un bit de suma y un bit b it de acarreo cuando este se produce. La operación de un semisumador como el anterior mostrado en la figura se puede sintetizar mediante las siguientes 2 operaciones booleanas: S=A(xor)B (suma) Co=A·B (acarreo) Para realizar una suma binaria donde d onde se tenga presente un carry de entrada se debe implementar un circuito que tenga presente esta nueva variante; como es el caso del sumador completo. El sumador completo tiene 3 entradas que se suman y son: A, B, y Cin (entrada de arrastre), y las salidas habituales S y Co (suma y salida de arrastre)
Semisumador
Sumador completo
20
RESTA: Se resuelve igual que en el sistema s istema decimal, tomando una unidad llevo 11,, lo que en decimal prestada de la posición siguiente: 10-1=1 y me llevo equivale a decir 2 – 1 = 1. Esa unidad prestada debe devolverse, sumándola a la posición siguiente. 10001
(17) 10
-01010
-(10 ) 10
00111
( 7 ) 10
RESTA BINARIA
Resta binaria
La resta o sustracción de números binarios es similar a los números decimales. La diferencia radica en que, en binario, cuando c uando el minuendo es menor que el sustraendo, se produce un préstamo (o borrow) de 2, mientras que en decimal se produce un préstamo de 10. Al igual que en la suma, el proceso de resta binaria, se inicia en la columna correspondiente a la de los dígitos menos significativos. En la figura 5 se indican las reglas que rigen la resta binaria y en la figura 6 se muestra un circuito lógico, llamado semirrestador (HS), que sustrae un B de un bit A y suministra un bit de diferencia (Di) y un bit de préstamo (Bo). La operación de un Semirrestador como el mostrado en la figura anterior se puede resumir mediante las 5 ecuaciones booleanas: Di=A·B neg)+A neg)·B= A xor)B dif diferencia) erencia) Bi=A neg).B borrow)
21
En la figura siguiente se muestra muest ra el proceso de resta de 2 números binarios de 5 bits. El objeto de esta operación es ilustrar el manejo de los préstamos y plantear la necesidad de un restador completo de 2 bits que tenga, como entradas, el minuendo, el sustraendo, y el préstamo anterior y ofrezca como salidas, la diferencia y el préstamo, si existe. En la figura se muestra el diagrama de bloques, conexión en bloques utilizando semirrestadores y una puerta OR y el diagrama lógico de un restador completo.
Figura 6: Semirrestador
Restador completo
NUMER OS DE PUNTO FIJO FI JO CON SIGNO Hay 3 convenciones en la representación de números con signo
MA GNITUD Valor Absoluto) y SIGNO COMP LEMENTO A UNO, A DOS, A NUEVE, etc) NOTACION EXCEDIDA
•
•
•
MAGNITUD Y SIGNO (o Valor Absoluto y Signo) Es la más habitual Para el signo se utiliza el bit de mayor valor significativo
22
⇒0+ ⇒1– +(12)10 = (0000 1100)2 -(12)10 = (1000 1100)2 Existen dos representaciones para el cero +0 = 0000 0000 -0 = 1000 0000 En este caso, con 8 bits se pueden representar 255 números (no 256) por la duplicación del cero.
COMPLEMENTO A UNO Nos permite obtener la representación binaria de números negativos. NO
ES
DE USO COMUN
El bit de la extrema izquierda es el signo (0 = +, 1 = -). El negativo de un numero se obtiene complementando cada bit de 0 a 1 o de 1 a 0.Esto convierte numeros positivos en negativos y negativos en positivos. Dos representaciones para cero: +0 = 000000002, -0 = 111111112. Si se usa una representacion de 8 bits el mayor número es +127 10, y el mas pequeño -12710. Tiene una resolución trivial Para la parte negativa convierte todos los ceros en uno y todos los unos en cero. Decimal
Magnitud y Signo
Complemento a Uno
3
011
011
2
010
010
1
001
001
+0
000
000
-0
100
111
-1
101
110
23
-2
110
101
-3
111
100
Esto se conoce como complementación de la palabra.
Ejemplo:
+2510 = 000110012 -2510 = 111001102
Desventajas de la representación en Complemento a uno
Siguiendo con el ejemplo de n = = 8 (8 bits). Posee doble representación del cero. Al representar en Complemento a uno, aparece nuevamente el cero signado: 000000002 (+010) y 111111112 (-010). Ventajas de la representación en Complemento a uno
Siguiendo con el ejemplo de n = = 8 (8 bits). Posee un rango simétrico: los números van del +12710 = 011111112, pasando por el +010 = 000000002 y el -010 = 111111112, hasta el -12710 = 100000002. Y en forma general, para n -bits, -bits, el rango (en decimal) para Complemento a uno n-1 n-1 es (-(2 -1); 2 -1), o bien ± 2n-1-1. acarreo obtenido obtenido al Permite operar aritméticamente. Al operar se debe sumar el acarreo final de la adición/resta realizadas (conocido como end-around carry), en caso de haberlo obtenido, para conseguir el resultado correcto. Ejemplo: 000101012 + 100111102 = 101100112 (+2110 + -9710 = -7610) puesto que el end-around carry es cero; pero, 000000102 + 111111102 = 1000000002 (+210 + -110 = -010 ≠ +110), que corregimos mediante 000000102 + 111111102 = 000000002 + 12 = 000000012, que es el resultado correcto. Los protocolos de Internet IPv4, ICMP, UDP y TCP usan todos el mismo algoritmo de suma de verificación de 16 bits encarecen complemento a uno. para Aunque la mayoría de la computadoras del hardware manejar acarreo del último bit (end-around carry), la complejidad adicional es aceptada ya que es igualmente sensible a errores en todas las posiciones de bits. En UDP, una representación de todos ceros indica que la suma de verificación opcional ha sido omitida. La otra representación, todos unos, indica un valor 0 en la suma de verificación (las sumas de verificación son obligatorias para IPv4, TCP e ICMP; fueron omitidas en IPv6). COMPLEMENTO A DOS
24
Se realiza el complemento a 1 y se le suma 1 al resultado resultado obtenido, y si hay un arrastree a l bit mas significat arrastr significativo, ivo, se descarta excepto qu e haya desborde. Su ventaja es que hay una sola representación del cero.
Como definición, el complemento a dos de un número N que, que, expresado en el sistema binario está compuesto por n dígitos, dígitos, se define como: C2N : 2n – N + 0 ) 10 = 0000 0000)2 complemento -
0 ) 10 = 1111 1111 +
1
0000 0000
+ (12)10 = 0000 1100 complemento - (12)10 = 1111 0011 +
1
1111 0100
Se considera solo +0 y para abajo arranca en -1 Es la representación mas utilizada en computadoras
Desventajas de la representación en Complemento a dos
Siguiendo con el ejemplo de n = = 8 (8 bits). Posee un rango asimétrico: los números van del +12710 011111112, pasando por el +010, 000000002. Y aquí aparece la primera diferencia, el 111111112, ya no es -010 como en la representación anterior, sino que es -1 10, y al llegar al 100000002 nos encontramos con que el complemento a dos de 100000002 es 100000002, ¡el mismo número!. Por convención, se asigna a este número particular el valor -1282 (para 8 bits). Luego, en forma general, para n -bits, -bits, el n-1 n-1 rango (en decimal) para Complemento a dos es (-2 ; 2 -1).
25
Ventajas de la representación en complemento a dos
Siguiendo con el ejemplo de n = = 8 (8 bits). No posee doble representación del cero. Permite operar aritméticamente. REPRESENTACION REPRESENTACIO N GRAFICA DE COMPLEMENTO A 2
EJEMPLO Sumar +2 y -1 +2
0010 +
-1
1111 0001 con overflow de 1 que se descarta
DECIMAL CODIFICADO EN BINARIO BINARIO y COMPLEMENTO A 9 Y 10 En la representación de complemento a nueve los nueve los números positivos se representan en el formato BCD habitual, pero el digito decimal mas significativo adopta un valor menor a 5 si el número es positivo y 5 o mas si el numero es negativo. El complemento a 9 se obtiene restando cada digito de 9.
Ej.:
+ 301 ⇒ 0301
26
- 301 ⇒ 9698
El complemento a 10 se obtiene sumando 1 al complemento a 9
⇒ - 301 = 9698 + 1 = 9699 Rango:
números positivos =
0 a 4999
números negativos =
5000 a 9999
27
REPRESENTACION REPRESENTACIO N EXCEDIDA (DESPLAZADA) en su Los números se tratan como si no tuviesen signo, pero se los desplaza desplaza en valor por medio de la resta de otro número conocido como exceso o desplazamiento. Lo que logra es desplazar el núm ero en un valor dado.
Ej.: +12 y -12 con representación en exceso 128.
⇒
+ 12 = 1000 1100)2
128 - 12 = 116 ⇒
- 12 = 0111 0100)2
128 + 12 = 140
No hay ningún significado numérico asociado con el valor v alor del exceso. Su efecto es simplemente el de desplazar la representación de los números expresados en complemento de dos.
28
+ 127 = 1111 1111 - 128 = 0000 0000
En el exceso a K , a cada número se le suma el mismo valor, y está en exceso por dicho valor. Este formato es habitual para la representación del exponente en
números en punto flotante. -1 K no no tiene un valor estandarizado, pero suele tomarse como 2n -1 (que coincide con el complemento a dos con el bit más significativo negado), o como -1 2n -1 -1 (como en el caso de la norma IEEE-754). -1 Ejemplo de Exceso 2n -1
Sea una representación en formato de Exceso que nos permite codificar en binario en punto fijo con 8 bits (un byte). -1 Luego, los números 8 bits serán representados en Exceso a 28 -1 = 12810. 8 Con 8 bits, podemos representar, 2 = 256 números. Supongamos que debemos representar el número -97 10 (decimal) con un desplazamiento 128 Procedemos a: Tomar el número -9710 y sumarle el exceso, en este caso 12810, luego 9710 + 12810 = 3110; Convertimos a binario, 3110 = 000111112.
•
•
Para el caso inverso, inverso, dado un número binario en Exceso 12810, por ejemplo, 101101012, procedemos a: Convertir el número número a la bas basee deseada, deseada, por ejemplo, en en decimal: decimal: 101101012 = 18110;
•
•
•
Pero el valor obtenido obtenido exceso exceso 12 128, 8, luego debemos quitarle dicho exceso, restando 128: está 18110en - 128 10 = 5310.
-1 Desventajas de la representación en Exceso 2 n -1 -1
Siguiendo con el ejemplo de n = = 8 (8 bits). Requiere de operaciones aritméticas intermedias para su obtención, y de cambiar el número de bits bit s se deben actualizar dichas operaciones intermedias para reflejar el nuevo exceso. Posee rango asimétrico: éste va desde +12810 = 111111112 hasta -12710 = 000000002. Y en forma general, para n -bits, -bits, el rango (en decimal) para Exceso n n-1 n-1 2 es (-2 +1; 2 ). -1 Ventajas de la representación en Exceso 2n -1 -1
29
Siguiendo con el ejemplo de n = = 8 (8 bits). El menor número posible de representar consiste en todos los bits en cero y el mayor en unos. Permite operar aritméticamente, pero hay que tener en cuenta que cada operación lleva asociado su exceso y esto hay que restárselo al resultado final, para corregir la representación. Por ejemplo, 000111102 + 101101012 = 110100112 (-9710 + 5410 = 21110 ≠ -4310). El resultado, en aparente exceso 127 , 211 , al quitarle dicho exceso es 211 - 127 = 84 . 10 en cuenta que al sumar dos números 10 10con exceso 10 Hay10que tener 12710, debemos restar, dos veces el exceso. Luego 84 10 - 12710 = -4310, que es el resultado correcto. No hay empaquetación del número. Por esto nos referimos a que no hay que recordar que partes del número son signo y significando, sino que los n -bits, -bits, son el número
30
REPR ESENT CION EN PUNTO FLOT FLOT NTE Ej.: Número de Avogadro = + 6.023 x 10 23
(El NUMERO DE AVOGADRO AVOGADRO ES EL NUMERO DE MOLECULAS QU QUE E HAY EM UN MOL DE GAS. ES UNA CONSTANTE UTILIZADA EN FISICA Y QUIMICA PARA ESTABLECER UNA RELACION ENTRE LA MASA O EL VOLUMEN Y LA CANTIDAD DE MATERIA. SE DEFINE COMO LA CANTIDAD DE ATOMOS DE CARBONO 12 CONTENIDOS EN 12 GRAMOS DE ESTE ELEMENTO (Definición de MOL). EL VALOR RECOMENDADO ES N A = (6,0221415 + 0,000001) x 10 23 mol -1 El MOL es la unidad básica del SISTEMA INTERNACIONAL DE UNIDADES que mide la CANTIDA CANTIDAD D DE SUSTAN SUSTANCIA CIA de un elemento.)
Con coma fija es complicado representar números muy grandes o muy pequeños. Una forma de solucionarlo para números decimales es utilizando la notación científica (9.76 x 1014 o 9.76 x 10 -14 me ahorran el escribir 13 ceros). Se separan los dígitos utilizados para determinar la precisión de los que se necesitan para representar el rango.
31
Ubicación de la coma potencia + 23 6,023 signo Exponente Dos dígitos
Mantisa Cuatro digitos
En la división de dos números grandes puede perderse la parte fraccionaria del cociente. La misma técnica de correr la coma y poner una potencia de 10 puede hacerse con los números binarios. Permiten representar un amplio rango de números con poca cantidad de dígitos binario Otra forma de explicarlo es:
Una representación en coma flotante se compone de tres números (campos) que siguen el siguiente patrón:
r = m . b e r: valor real del número a representar m : mantisa o significando, dígitos significativos del número. El tamaño máximo
de este campo, usualmente fijo y limitado, determina la precisión de la representación. Este campo está usualmente normalizado, es decir, su parte
32
entera sólo consta de un dígito (que será la primera cifra significativa del número a representar). b : base del sistema de representación (10 en sistema decimal, 8 en sistema
octal, 2 en sistema binario, etc) e : exponente, orden de magnitud del significando. El mínimo y máximo valor
posible del exponente determinan el rango de valores representables. Como puede notarse, cabe añadir que cuando e vale cero el valor real coincide con el significando.
En ciertos casos se usa como, con un cuarto campo, s, que tiene el valor de 1 ó -1 según el signo del número (que se extrae del significando).
RANGO Y PRECISION EN LOS NUMEROS CON COMA FLOTANTE se denomina en esta forma al valor del punto fijo MANTISA se MANTISA El rango de la representación queda determinado básicamente por la cantidad y la BASE a que ese exponente afecta. de dígitos del EXPONENTE del EXPONENTE y BASE a La PRECISIÓN queda determinada por la cantidad de dígitos de la mantisa. La coma decimal no se almacena porque ocupa siempre s iempre la misma posición dentro de la mantisa. Como dijimos, si representamos un numero como +mxb
+e
donde: + : Signo
33
m : Parte SIGNIFICATIVA o MANTISA (también se escribe S: Significand) b : Base e : Exponente
Ejemplo: Numero con coma flotante de 32 bits 0.11010001 x 210100 :
0 10010011 101000100000….
El bit mas a la izquierda contiene el signo del numero (0:+, 1:-). El valor del exponente se almacena en los bits 1 a 8 en forma desplazada (“sesgada”) “sesgada”).. Un valor fijo llamado desplazamiento (o“sesgo”) se resta de este campo para conseguir el valor de exponente verdadero. Generalmente el desplazamiento tiene el valor: 2 k-k-11 – 1) donde k es el numero de bits bit s en el exponente binario Para k:8 queda ria ria 8- 1 – 1 = 2 7 – 1 = 128 – 1= 127 2 8-1
Ejemplo: En este caso hay un campo de 8 bits (0 a 255). Con un desplazamiento de 127 los valores del exponente serán de -127 a + 128 MANTISA: La normalizamos (llevamos al numero a la forma 0,x) es decir que cualquier numero quedara; + 0.1 bbb…b x 2+E donde cada b es un digito binario.
NORMALIZACION NORMALIZACI ON Y ESQUEMA DE BIT IMPLICITO
34
Uno de los problemas existentes es que el mismo número puede representarse de varias maneras.
3584.1 x 10 0 = 3.5841 x 10 3 = 0.35841 x 10 4 Para evitar esta circunstancia se emplean formatos normalizados.
La coma se desplaza a la derecha o a la izquierda y se ajusta el exponente en forma coherente con el desplazamiento de la coma hasta ubicarla a la izquierda del digito no nulo mas significativo.
En el caso anterior seria = 0.35841 x 10 4
Esto implica no poder representar el cero. El mismo se representa con una mantisa nula.
Si la condición de normalización implica que la mantisa siempre comienza con un uno, este se puede sobrentender y esconder.
Esto implica que el bit mas a la izquierda de la mantisa es siempre 1. Como es innecesario almacenarlo, ese bit esta siempre implícito. De esa forma el campo de 23 bits bit s almacena una mantisa de 24 bits.
Ej.:
0.11010 se almacena como 1010
Ej.: 358 REPRESE NTARLO EN BASE 16 CON DESPLAZAMIENTO DE 4 1ro pasarlo a base 16
35
entero
resto
358/16:
22
6
22/16:
1
6
1/6
1
358) 10 = 166)16 166) 16 = 166.0)16 x 1 60 = 0.166) 16 x 1 63
1 . Es + = 0 2 . Exponente: 3 3 . Representado en e xceso 4.
011 +3) 10 exceso 4
+100 +4) 10
Exponente en exceso 4
0
111
,
signo exponente
111
0001 0110 0110 1
6
6
mantisa La com a no se representa, esto impli implica ca que la com putadora almacena: 0111 0001 0110 0110
REPRESENTACION DE NUMEROS DE PUNTO FLOTANTE DENTRO DE REPRESENTACION LA COMPUTADORA
36
La ma ntisa se representara en forma de m agnitud y signo, con un bit para el signo y tres tres dígitos dígitos hexadecimales 12 bits) como tama ño de la la representación.
Exponente de 3 bits, expresado en exceso 4 con base 16
Forma normalizada con la coma a la izquierda de los 3 dígitos hexadecimales.
El signo se almacena en el 1er. Bit de la palabra El 1er. Bit de la mantisa original es siempre 1 y no necesita almacenarse en el campo de la mantisa.
•
•
Se suma 127 al exponente original para almacenarlo en el campo del
•
exponente.
La base es 2.
•
La siguiente figura indica el rango de números que pueden representarse con una palabra de 32 bits
ENTEROS REPRESENTABLES
NOTACION ENTERA EN COMPLEMENTO A DOS ENTEROS EN COMPLEMENTO A
DESBORDA Pueden representarse todosDESBOR los enteros desde NUMEROS -2 31 hasta 231 – 1 con un total MIENTO A NUMEROS NEGATIVOS
de 232 números diferentes. REPRESENTA DESBORDAMIEN
BLES
DAMIENTO A CERO NEGATIVO
CERO POSITIVO
POSITIVOS REPRESENTA BLES
DESBORDAMIEN
TO POSITIVO ConTOelNEGATIVO ejemplo de coma flotante son posibles los siguientes rangos:
Números negativos:
-( 1 – 2-24) x 2128 NUMEROS COMA MA FLOTANTE -0.5 x 2-127EN CO
37
El DESBORDAMIENTO u OVERFLOW ocurre cuando una operación aritmética arit mética da lugar a un número cuyo exponente es mayor a 128 Están excluidos
Números negativos menores que – (1 – 2-24) x 2128 DESBORDE NEGATIVO
•
Números negativos mayores que – 0.5 x 2-127 DESBORDE A CERO NEGATIVO
•
El cero
•
Números positivos menores que 0.5 x 2-127
•
DESBORDE A CERO POSITIVO POSITIVO
Números positivos mayores que (1 – 2-24) x 2128 DESBORDE POSITIVO
•
Un desbordamiento ocurre cuando una operación aritmética da lugar a un numero cuyo exponente es mayor que 128 (ej. 2 120 x 2100 = 2220).
38
Un desbordamiento a cero ocurre cuando una magnitud fraccionaria es demasiado pequeña (ej. 2-120 x 2-100 = 2-220). Los números con coma flotante no están espaciados es paciados por igual en la recta de números reales.
Hay m as valores en e l ori origen, gen, y e sto puede da r lugar a errores al multipli multiplicar car núm eros altos.
En el formato de punto fijo la coma decimal esta en una ubicación fija y hay una cantidad de dígitos delante y detrás de la misma. Esto puede implicar palabras de computadora muy largas. Una cifra de billones con una fracción también de millonésimas llevaría al menos 80 bits (40 a la derecha de la coma y 40 a la izquierda).
ERRORES EN LA REPRESENTACI REPRESENTACION ON DE PUNTO FLOTANTE
Tiene precisión finita, eso implica que se debe considerar el tamaño del error. Por error se con sidera llaa distancia entre dos núme ros representables
•
•
consecutivos
CARACTERIZACION DEL ERROR, EL RANGO Y LA PRECISION b: base S: cantidad de dígitos significativos (no bits) en la mantisa M: mayor exponente m: menor exponente
39
Si la base es diferente a 2 , la cantidad de dígitos es diferente a la cantidad de bits. Si la base es 2k, siendo k un entero se utilizaran k bits para representar cada digito
•
•
Base 16 : 2 4 : 4 b its x digito
Como el exponente es de 3 bits y se representa en exceso 4, esto le
•
asigna al exponente desde -22 hasta 22-1.
Si
b : 16 S:3 M:3 m: -4
CARACTERISTICAS A CONSIDERAR EN LA REPRESENTACION CON PUNTO FLOTANTE
Cual es la cantidad de números que permiten representar. Cuales son los números de mayor y menor magnitud (fuera del cero). Cuales son los tamaños de la mayor y menor diferencia entre números
•
•
•
consecutivos. La cantidad de números representados puede expresarse por: 2
M – m) + 1) 1)
x
x
b – 1) 1)
x
b s-s-11
+
1
A
B
C
D
E
Bit de
Cantidad de
1er digito de
dígitos
cero
Signo
exponentes
la mantisa
restantes de La mantisa
C – 1er digito digito de la mantisa
40
En un formato normalizado puede tomar cualquier valor excepto cero. Los digitos restantes pueden adoptar cualquiera de los b valores diferentes ( bs-1 en D ). Si se utiliza un bit implícito debe eliminarse la posición C y esto hace que
•
•
•
D sea reemplazado por bs.
La posición para el cero se considera en E .
•
Números extremos de la posición planteada Mínimo valor: numero con menor exponente y la menor mantisa normalizada no nula
bm x b-1 : bm-1
Máximo valor: mayor mantisa (todos 1) y el máximo exponente bM x ( 1 – b -s). Diferenca máxima y mínima: Menor diferencia: bm x b-s : b(m-s) Mayor diferencia:
bM x b-s : b(M-s)
Ej.:
Bit de signo Exponente de 2 bits en notación exceso 2. Mantisa normalizada binaria de 3 bits con el 1er. Uno no visible, no
•
•
•
implícito.
Cero : 00 0000
•
Minimo valor: exponente= -2 Mínima mantisa normalizada: (0.100)2 bm x b-1 : bm-1 : 2-2-1 : 1/8 Maximo valor: bM x (1 – b-5) : 21 x (1 – 2-3) : 7/4
41
Distancia mas chica Cuando el exponente tiene el menor valor y se produce un cambio en el bit menos significativo de la mantisa.
bm x b-s : bm-s : 2-2-3 : 1/32 Distancia maxima Con el máximo valor del exponente se altera el bit menos significativo de la mantisa.
bM x b-s : bM-s : 21-3 : ¼ Debido a la normalización, la cantidad de números validos es menor a la cantidad de combinaciones. : 2 x ((M – m) + 1) x (b – 1) x b 5-1 + 1 : 2 x ((1 – (-2) + 1) x (2 – 1) – 2 3-1 + 1 : 33
Los intervalos son pequeños para números pequeños y aumentan para
•
números grandes El error relativo es aproximadamente el mismo en todo el rango.
•
Ej.: Convertir 9.375 x 10-2 a formato de numeración científica utilizando el sistema binario de numeración. x, yy x 2 E
42
0.09375 x 2 :
0 .1875
0.1875 x 2:
0 .375
0.375 x 2:
0 .75
0.75 x 2:
1 .5
0.5 x 2:
1
(0.09375)10 : (0.00011)2 Conversión a representación normalizada de punto flotante -4 0.00011 : 0.00011 x 20 : 1.1 2 -4
43
44
IEEE 754 Es la utilizada habitualmente por todas las arquitecturas modernas. Es un Standard que se desarrollo para facilitar la portabilidad de los programas de un procesador a otro. Es el utilizado en casi todos los procesadores matemáticos actuales Formatos Dos formatos
Simple precisión Doble precisión A su vez, cada uno de estos admiten dos formatos ampliados (simple y doble) cuya forma exacta depende del procesador en que se utilice. Se los utiliza en
cálculos intermedios para disminuir el error. Simple precision 32 bits 8 bits
Signo (1 bit)
23 bits
Mantisa
Exponente
Doble precisión
64 bits 11 bits
Signo (1 bit)
Exponente
52 bits
Mantisa
45
Signo
0 positivo 1 negativo
•
•
Exponente de 8 bits implica implica exceso 127, exponente de 11 bits iimplica mplica exceso 1023 Las combinaciones 0000 0000 1111 1111 quedan para casos especiales Mantisa 23 bits pero con un bit implicito implicito 1 .fffffff .fffffff...f ...fffff El número se presen ta normalizado normalizado,, (de la forma 1.xxx donde se ignora el 1) a no ser que la estructura los soporte desnormalizados.
En la norma se pueden representar 5 tipos de números. Números no nulos De la forma antes mencionada. Admite una representación limpia del cero. Todos 0 en el exponente y 0 en la mantisa. El bit de signo puede ser 1 o 0 (2 representaciones de cero) Infinito Bit de signo 0 o 1 Exponente 1111 1111
46
Mantisa
0
Se utilizan para manejar situaciones de desborde o para representar un numero dividido por cero. Intervalo entre cero y el 1er. Numero que puede representarse Los números incluidos en este intervalo se resuelven con el “cero sucio” desnormalizado.
El bit de signo puede ser 0 o 1 El campo del exponente 0000 0000 (-126) para precisión simple y -1022 para doble precisión.
•
•
En este formato no hay bit implícito.
•
(b) utiliza el mínimo exponente en simple precisión (c) utiliza el exponente máximo en simple precisión (+127). (d) y (e) son dos representaciones del cero. (f) +∞
47
(h) +NaN: Not a number Resumen NUMERO EN PUNTO
e (EXPONENTE)
f (MANTISA)
FLOTANTE Normalizados
0……Exp. maximo
Cualquier combinación de 1´s y 0´s
Desnormalizados
00000…………….0
Cualquier combinación de 1´s y 0´s distinta de 00000…..0
Cero
00000……………..0
000000……………….0
Infinito
11111………….....1
000000……………….0
Not a Number
11111………….…1
Cualquier combinación de 1´s y 0´s distinta de 00000…….0
Extendido simple – Extendido doble No son visibles para el usuario, pero se usan internamente para disminuir los errores de redondeo. Les agregan bits al exponente y a la mantisa. Ej. El formato extendido doble tiene 80 bits (15 bits de exponente y 64 para la mantisa).
PARAMETROS DEL FORMATO IEEE 754 FORMATO PARAMETRO
SIMPLE
SIMPLE
DOBLE
DOBLE
AMPLIADO
SIMPLE
AMPLIADO
Longitud de la palabra (bits)
32
≥ 43
64
≥ 79
Longitud del exponente (bits)
8
≥ 11
11
≥ 15
Sesgo del exponente
127
Sin
1023
Sin
48
especificar
especificar
Exponente máximo
127
≥ 1023
1023
≥16383
Exponente minimo
-126
≤ -1022
-1022
≤ -16382
10-38,
Sin
Rango de números (base 10)
10+38
Longitud de mantisa (bits)
23
Numero de exponentes
254
Numero de fracciones o mantisas
223
Numero de valores
1.98x231
10-308
especificar
≥ 31 Sin especificar Sin especificar Sin
10+308 52 2046 252
1.98x263 especificar
Sin especificar
≥ 63 Sin especificar Sin especificar Sin especificar
Ejemplo Escribir 7 10 en precisión simple 710 = 1112 NORMALIZANDO 1.11 2 X 22 El signo es + por lo que el campo S = 0 Exponente con exceso 127 = 2 + 127 = 1000 00012
7 1 0 = 0 1000 0001 11000000000000000000000 Escribir -21) 10 en precisión simple 2110 = 101012 NORMALIZAMOS 1.01012 X 24
49
El signo es – por lo que S = 1 Exponente con exceso 127 = 4 + 127 = 131 = 1000 00112
-21)10 = 1 1000 0011 0101000000000 0101000000000000000000000 00000000000000 00 Escribir 0,310 en precisión simple Es un numero que al dividirlo por 2 no nos da exacto 0,310 = 0,010011001100110011…. 0,010011001100110011….2 = 1,00110011001100011….. x 2-2 Exponente -2 + 127 = 12510 = 0111 11012 Signo = + = 0
0 , 3 1 0 = 0 0111 1101 0011001100110011……..
RANGO DE VALORES Para un número de 32 bits (8 bits de exponente) +/- 2256 = 1,6 x 1077 PRECISION Con 23 bits de mantisa 2 -23 = 1,192 x 10-7
50
Eso equivale a un número entero con 7 decimales
CASO MISIL PATRIOT De a cuerdo al gobierno de EE.UU, la pérdida de precis precisión ión al convertir convertir un núm ero integr integrado ado de 24 bits en un num ero de punto flotante flotante de 2 4 bits fue fue el respo nsable p or la falla del misil Patriot. Patriot.
51
CODIGOS
LF NUMER ICOS
ASCII EBCDIC UNICODE
ASCII American Standard Code for Information Exchange Son 7 bits x caracter, lo que implica 128 caracteres validos 00 – 1F y 7F son caracteres de control
La tabla de valores tiene un ordenamiento especial
Para obtener el valor decimal de un digito se debe restar (30)16 a la representación ASCII del mismo.
•
5 es 35) 16 - 30)16 = 5 o lo que es lo mismo 35 – 30 = 5)16 16
Para convertir una letra mayúscula en minúscula se le suma (20)16 H es 4 8 ) 16 y eso implica 48 + 20 = 68 ) 16 = 68)16 = h
52
EBCDIC
El problema con el ASCII es la poca cantidad de caracteres que puede manejar, especialmente caracteres especiales. El EBCDIC (Extended Binary Coded Decimal Interchange Code) es
•
•
básicamente utilizado por IBM pero es compatible con el ASCII
53
UNICODE El ASCII y el EBCDIC manejan básicamente caracteres latinos, por lo que para poder manejar otros idiomas se creo c reo el UNICODE.
Es una norma en desarrollo que se modifica a medida que se incorporan
•
los símbolos correspondientes a caracteres nuevos. La versión 2.0 puede representar 38.855 caracteres diferentes.
•
Utiliza un conjunto de caracteres de 16 bits. Es en realidad un subconjunto del UCS-4 : Conjunto Universal de Caracteres ISO 10646 de 32 bits de palabra.
•
•
54
5
RITMETIC SUMA Y RESTA EN PUNTO FIJO El enfoque se orienta hacia las operaciones en complemento a dos por ser esta forma casi universal.
SUMA Y RESTA EN LA REPRESENTACION DE COMPLEMENTO A DOS a – b = a + - b) El correspondiente negativo de un número se puede obtener por medio de su su complemento, por lo que una resta se puede realizar como c omo la suma de su complemento. Lo que se debe hacer cuando se sumen números en representación de complemento es modificar la interpretación de los resultados de la suma. 0000 1010
(+10)10
+ 0001 0111 (+23)10 0010 0001 (+33)10 De igual forma se pueden sumar números de signos opuestos.
0000 0101 (+5)101 + 1111 1110 (-2)10 1 ) 0000 0011 (+3)10
arrastre a descartar
1
Recordar
2 → 0000 0010
Complemento 1 de 2 → 1111 1101 + Complemento 2 de 2
1 1111 1110
55
Cuando se suman dos números representados en complemento dos se debe producido por la suma en la posición mas significativa. descartar el arrastre arrastre producido Ídem cuando hay arrastre en la suma de dos números negativos. 1111 1111
(-1)10
+ 1111 1100 (-4)10 arrastre a descartar
1 ) 1111 1011 (-5)10
SE DESCARTA PORQUE EL SISTENA ES MODULAR
DESBORDE
Cuando se suman dos números de igual signo. Se producirá desborde si el resultado es demasiado grande con la cantidad de bits utilizados para representar los operandos. 0101 0000
(+80)10
+ 0011 0010 (+50)10 1000 0010
-126)10
Cuando se suman dos números de dif diferente erente signo signo no puede haber desborde.
REGLA
Si los números qu e se suman tienen el mismo signo y el resultado tiene signo opuesto, se ha producido desbo rde por lo que el resultado es incorrecto
Si los números que se suman son de signo opuesto, no hay posibilidades de desborde.
METODO ALTERNATIVO
56
Para detectar desborde en la suma hay que saber que se produce si y solo si el arrastre que se ingresa hacia el bit de signo difiere del bit de arrastre que sale de dicho bit.
DIAGRAMA DE BLOQUES DEL HARDWARE PARA LA SUMA Y RESTA El elemento central es un sumador binario, al que se le presentan los números a sumar y restar, res tar, y produce una suma y un indicador de des desbordamiento. bordamiento. El sumador binario trata los dos números como binarios sin signo. Para sumar, los números se presentan al sumador desde dos registros (A y B). El resultado es normalmente almacenado en uno de estos registros o en un tercero. La indicación de desbordamiento se almacena en un indicador (o biestable) de desbordamiento desbordamiento (OF: Overflow flag) de 1 bit (0 = desbordamiento, 1= desbordamiento). Para la resta, el substraendo (registro B) se pasa a través de un complementador que presenta su salida al sumador.
IMPLEMENTACION CIRCUITAL CIRCUITAL DE SUMAD ORES Y RESTADORES SUMADO RES Y RESTADORES EN SERIE RIPPLE RIPPLE CARRY ADDER) FIG. 3.2 – SALE DEL APEN DICE A. VER PAGINA 469 OF: Bit desborde FALTA LAde IMPLEMENTACION CIRCUITAL PAG. 65 SW: Conmutador (selecciona Suma o Resta)
57
SUMA Y RESTA EN REPRESENTACION DE COMPLEMENTO A UNO No es muy utilizado en la actualidad, pero si en las primeras computadoras El bit de arrastre que se genera a partir de la posición mas significativa no se descarta sino que se vuelve a sumar con la posición menos significativa (se denomina ARRASTRE CIRCULAR FINAL. 10011 (-12)10 + 01101 (+13)10 1 ) 00000 + 00001 00001 00001 (+1)10
Se suma el número porque en este caso hay dos representaciones para el cero (000 y 111) y el agregado del bit de arrastre a la columna de las unidades desplaza en 1 el resultado final para salvar esta situación. LA DISTANCIA ENTRE +0 Y -0 ES LA DISTANCIA ENTRE DOS ENTEROS
EL HECHO DE QUE EXISTAN DOS REPRESENTACIONES PARA EL CERO ES UNA DE LAS RAZONES PARA QUE EL SISTEMA NO SE UTILICE
58
PRODUCTO Y COCIENTE EN PUNTO FIJO MULTIPLICACION MULTIPLICACI ON DE NUMEROS SIN SIGNO Es similar a la realizada manualmente para los numeros decimales MULTIPLICANDO M
1101 (13)10
MULTIPLICADOR Q
x 1011 (11)10 1101 1101 0000 1111 PRODUCTO P
1 0000111
(143)10
Cada bit del multiplicador determina el desplazamiento a la izquierda Cuando se multiplican dos números signados de n bits bit s el resultado esta formado por: 2 (n-1) + 1 = 2n – 1 bits signo DIAGRAMA DE FLUJO PARA LA MULTIPLICACION DE BINARIOS SIN SIGNO
59
IMPLEMENTACION CIRCUITAL Ej. Unidad multiplicadora de 4 bits
suma
Lógica de control para suma y desplazamiento
Desplazamiento a la derecha
PASOS
A y C se limpian M y Q contienen el multiplicando y el multiplicador
•
•
El bit menos significativo de Q es 1 por lo que M se suma con A Los registros A y Q se desplazan a la derecha Los registros A y Q se vinculan como un par para contener el producto de 8 bits, el bit menos significativo de A se desplaza hacia la posición
•
•
•
mas significativa de Q y el bit menos significativo de Q se descarta.
C se desplaza hacia la posición mas significativa de A y se inserta un cero en C
•
60
El proceso continua durante tantos pasos como bits tenga el multiplicador.
•
4 bits – 4 pasos 1 2
3 4
PRIMERO SUMA Y DESPUES HACE EL SHIFT
DESPLAZA SIEMPRE A LA DERECHA>>>>>>
61
DIVISION SIN SIGNO RECORDAR 1–0=1 10 – 1 = 01 1–1=0 0–0=0 Y que 7/3 = 2 + R: R:1) 1) 0111 11
11 0010
01
RESTO
En la división binaria se debe intentar reiteradamente la resta del dividendo menos el divisor, usando la menor cantidad de bits posibles en el dividendo. 42:6 = 7
Ej.
Se intenta dividir el dividendo por el divisor, empezando por tomar en ambos el mismo número de cifras (101 entre 110 por ejemplo). Si no puede dividirse, se intenta la división div isión tomando un digito más (1010 entre 110).
•
Si la división es posible, entonces el divisor solo podrá estar contenido una vez en el dividendo, es decir deci r que la primera cifra del cociente c ociente es 1 . En este caso el resultado de multiplicar el divisor por 1 es el propio
•
•
divisor. Restamos las cifras del dividendo del divisor y bajamos la cifra siguiente.
El sistema continúa de igual forma que en el sistema decimal.
•
La división se maneja en forma similar a la que se ut utiliza iliza para el producto de los enteros binarios con la dificultad de ver si el div dividendo idendo cabe o no en el divisor.
62
En el e l algoritmo algoritmo de d e división, división, en lugar de desplazar des plazar el producto a la izquierda izquierda com o en e l producto, producto, se des plaza el cociente a la izquierda desplaza izquierda,, y se resta en lugar de sumar. sum ar. Cuando se dividen dos números sin signo de n bits, el resultado no puede tener más de n bits.
63
IMPLEMENTACION CIRCUITAL En la figura se muestra una unidad divisora para un número de 4 bits.
Logica de control para suma, resta y desplazamiento Desplazamiento a la izquierda
Se utilizan registros de 5 bits para A y M (en lugar de 4) porque se requiere un bit adicional para indicar el signo de los resultados
•
intermedios.
Si bien este método es para números sin signo, como se utilizan restas en el proceso, podrían existir números negativos. Para dividir dos números de 4 bits, se almacena el dividendo en el
•
•
registro Q y el divisor en el registro M, en tanto que el registro A y el bit mas significativo de M se cargan con 0.
El bit más significativo del registro A determina en cada paso si el divisor debe volver a sumarse al dividendo. reposición porque en los casos en que el Se habla de una división con reposición porque
•
•
resto es negativo, se debe restaurar el dividendo a su valor anterior.
64
Cuando el resultado no es negativo, el bit menos significativo de Q se lleva a 1 para indicar que el divisor cabe en el dividendo.
•
PROCESO DE DIVISION El registro A y el bit más significativo de M se llevan a cero. •
Los registros Q ( dividendo) y los bits menos significativos de M se cargan con el valor del dividendo y el divisor respectivamente.
•
Los registros A y Q se desplazan en conjunto a la izquierda, y se resta el divisor M de A.
•
Como el resultado es negativo, el divisor div isor se vuelve a sumar para reponer el dividendo y q0 se carga con 0. El proceso se repite, desplazando A y Q a la izquierda y restando M de A. Nuevamente se obtiene un resultado negativo, por lo que se vuelve a
•
•
•
reponer el dividendo y se coloca un 0 en q0.
El proceso se repite una vez v ez más para realizar una iteración final en la que nuevamente A y Q se desplazan a la izquierda, y M se resta res ta de A, lo que vuelve a dar un resultado negativo.
•
c arga un 0 en q0. Se repone el dividendo y se carga El cociente queda contenido en el registro Q y en el A se coloca el resto.
•
•
65
DIVIDENDO Q
RESTO
COCIENTE
66
PRODUCTO Y COCIENTE SIGNADOS Si se aplica el producto y cociente a números con signos, pueden surgir problemas. Ej.
(-1) x (+1) = (+15) en lugar de (-1)
Esto sucede porque el bit de signo s igno no se extendió hacia la izquierda del resultado Esto no es problema cuando el resultado es + dado que los bits de mayor peso adoptan el valor 0. Como técnica general, la solución consiste c onsiste en convertir ambos operándoos a su forma positiva, realizar la operación y finalmente convertir el resultado a su signo correcto 1111 -1 ) 10 x 0001 +1) 10 1111
1111 1111
-1)10
0001
+1) 10
x
1111 1111
0000
0000 000
0000
0000 00
0000
0000 00
00001111 +15) 10
1111 1111
-1)10
En la figura anterior se utiliza utiliz a otra aproximación en la que cada uno de los productos parciales se extiende a todo lo ancho de la palabra resultado, reteniéndose solo los bits menos significativos de dicho resultado. Si ambos operandos son negativos, se extienden ambos signos, nuevamente reteniéndose solo los 8 bits menos significativos del resultado.
67
RITMETIC
DE PUN TO FLOT FLOT NTE
Es similar a la de punto fijo, aunque hay que tener especial cuidado con las características propias de dicho tipo de representación. El algoritmo tiene 4 etapas básicas 1. Comprobar valores cero 2. Ajuste de mantisas 3. Sumar o restar las mantisas 4. Normalizar el resultado Los inconvenientes que se pueden presentar en estas operaciones son: Desbordam iento del exponente exponente:: un exponente positivo que excede el valor del exponente máximo posible. Desbordam iento a cero del ex exponente ponente:: exponente negativo menor que el mínimo valor posible, con lo cual podría ser considerado como 0. Desbordam iento a cero de la manti mantisa sa:: cuando en el proceso de alineación o ajuste de la mantisa se pierden dígitos por la parte derecha de la misma, lo cual implica algún tipo de redondeo. Desbordam iento de llaa man tisa tisa:: cuando la suma de dos mantisas del mismo signo produce un acarreo procedente del bit mas significativo. s ignificativo.
SUMA Y RESTA EN FORMATO DE PUNTO FLOTANTE Difieren de las de punto fijo en que no solo hay que considerar la magnitud de los operandos, sino también el que se le da a los exponentes. LOS EXPONENTES DEBEN SER IGUALES PARA PODER SUMAR O RESTAR. Se suman o restan las mantisas según corresponda y se completa la operación normalizando el resultado.
68
ATENCION: Los procesos de ajuste de la parte fraccionaria y el redondeo del resultado pueden llevar a una perdida de precisión. Ej.:
(0,101 x 23) + (0,111 (0,111 x 24)
Donde las mantisas se representan con tres dígitos representativos. 0,101 x 23 = 0,0101 x 2 4 (0,010 x 24) + ( 0,111 x 24) = 1,000 1,000 1 x 24 = 0,100 x 25 Tenemos dos perdidas de precisión 0,0001 x 24 y 0,0001 x 25 = 0,0011 x 25 La ventaja del formato de punto flotante que contiene un bit de signo seguido por un exponente de notación excedida seguido por la magnitud de la mantisa es que permite la realización de comparaciones entre dos números de punto flotante por mayor, menor o igual sin necesidad de desempaquetar los números.
69
PRODUCTO Y COCIENTE EN FORMATO DE PUNTO FLOTANTE Se resuelve en forma similar a la de la suma y la resta en punto flotante, excepto que tanto el signo como el exponente y la mantisa del resultado se pueden calcular por separado. Si los operandos tienen el mismo signo el resultado es (+ (+ ) . Distintos signos producen resultados (-) (-)..
PRODUCTO Ej. Considerese mantisa de 3 bits. ( + 0,101 x 22) x (- 0.110 x 2-3) Como los signos difieren, tendrá resultado res ultado negativo.
1. Resta de exponentes: 2. Multiplicación de mantisas 3. Normalizando
+2+(-3)=-1 0.01111 (0.1111 x 2-1) -0.111 x 2 -2
70
COCIENTE
(+ 0.110 X 25) / (+ 0.100 X 24) con mantisa de 3 bits Como tienen igual signo el resultado es + 1. Se restan los exponentes 5-4=1 2. Se dividen las mantisas. Si las tratamos como enteros no signados seria 110/100=1 con RESTO 10 3. Como no queremos un cociente y un resto, escalamos el dividendo dos posiciones a la izquierda 11000/100=110. 4. El resultado se escala dos posiciones a la derecha para mantener el factor de escala original (1.1) que luego de la normalización se convierte en (+ 0.110 x 22).
71
ESTÁNDAR DEL IEEE PARA LA ARITMETI ARITMETICA CA BINARIA CO CON N COMA FLOTANTE Se deberán tener en cuenta no solo el redondeo sino los casos específicos de
INFINITO
•
NaN (Not a Number) NUMEROS DESNORMALIZADOS
• •
INFINITO Las operaciones con infinito son tratadas como casos limites de la aritmetica, ya que
-∞ < (todo numero finito) > +∞ Cualquier número sumado o multiplicado por ∞ será ∞, y cualquier numero dividido por el mismo, ser 0 NaN Es una entidad simbólica codificada en formato de coma flotante. Si el mismo aparece como operando, significa que la operación no es valida. Si no permiten representar valores de variables no inicializadas o tratamientos aritméticos no contemplados en el estándar.
NUMEROS DESNORMALIZADOS Cuando el resultado del exponente de un numero es demasiado pequeño (un exponente negativo con magnitud muy grande) el resultado se desnormaliza desplazando a la derecha la parte fraccionaria e incrementando el exponente a cada desplazamiento hasta que dicho exponente este en un rango representable. El exponente será cero, y la mantisa no tiene bit implícito.
72
Resumen de representaciones NUMERO EN PUNTO
e (EXPONENTE)
f (MANTISA)
FLOTANTE Normalizados
0……Exp. maximo
Cualquier combinación de 1´s y 0´s
Desnormalizados
00000…………….0
Cualquier combinación de 1´s y 0´s distinta de 00000…..0
Cero
00000……………..0
000000……………….0
Infinito
11111………….....1
000000……………….0
Not a Number
11111………….…1
Cualquier combinación de 1´s y 0´s distinta de 00000…….0
73
ARITMETICA DE ALTO RENDIMIENTO La velocidad con que se realizan las operaciones es el cuello de botella en el rendimiento de una computadora
SUMA DE ALTO RENDIMIENTO El proceso de sumar en si es relativamente rápido (el circuito posee una lógica de solo dos niveles), pero la propagación del arrastre demora un tiempo largo en recorrer el circuito. El tiempo de propagación es proporcional a la cantidad de bits del operando. El aumento de la cantidad de dígitos significativos signif icativos en una suma se traduce en un mayor requerimiento de tiempo para realizar la suma. Un método para mejorar esta situación se conoce c onoce como SUMADOR CON ARRASTRE ANTICIPADO ( Carry lookahead aadder).
PRODUCTO DE ALTO RENDIMIENTO ALGORITMO DE BOOTH Trata a los números positivos y negativos de la misma forma. Se basa en que cuando en el multiplicador existen secuencias de ceros o unos, no se requieren sumas sino solo desplazamientos. Las sumas o las restas se llevan a cabo en los límites de las secuencias donde se detectan transiciones de 0 a 1 o de 1 a 0. EL ALGORITMO DE BOOTH REALIZA UNA RESTA CUANDO SE ENCUENTRA EL PRIMER 1 DEL BLOQUE (1-0) Y UNA SUMA CUANDO LO ENCUENTRA E EN N EL FINAL DE DEL L BLOQUE (0-1)
TIENE EN CUENTA LA POSICION DE LA RAFAGA DE UNOS, SUS POSICIONES DE CO MIENZO Y DE FINAL.
74
En la implementación circuital se analiza el multiplicador de derecha a izquierda.
La primera transición que se detecta es un cambio de 0 a 1, lo que requiere la resta del valor inicial (0) menos 21. En la transición siguiente, de 1 a 0, se suma 2 4, lo que da por resultado +14. (Se debe agregar un 0 agregado a la derecha del multiplicador con el objeto de definir la situación en el caso c aso de que aparezca un 1 como digito menos •
•
significativo del mismo.) Si el multiplicador se codifica codific a de acuerdo al algoritmo de BOOTH, el proceso de multiplicación puede llegar a requerir menos pasos. Ejemplo:
El multiplicador (14)10 contiene tres unos consecutivos, lo que implica, si se usara el procedimiento de multiplicar con sumas y restas la necesidad de tres operaciones de suma. El multiplicador codificado según BOOTH se obtiene analizando el multiplicador original de derecha a izquierda, colocando un -1 en la primera posición que se encuentre un 1, y un +1 en la posición que aparezca el siguiente 0. El multiplicador se convierte asi en
0 + 100 – 1 0.
Este multiplicador codificado solo contiene c ontiene dos posiciones no nulas, lo que significa que habrá que realizar una unida suma y una única resta, por lo que se logra una reducción en el tiempo para realizar el producto. Otra forma de realizar el algori algoritmo tmo de Booth para Booth para obtener el resultado del producto de dos números binarios con signo en notación complemento a dos. Supongamos el ejemplo de la multiplicación 6·2=12
75
Como se puede ver, partiendo de los números binarios de la multiplicación 6·2 (multiplicando y multiplicador) creamos tres nuevos números binarios del doble de tamaño (16 en el ejemplo): A, S y P. Partiendo del número P (producto) comenzamos a comparar los últimos 2 bits de la derecha, siguiendo s iguiendo los casos base del recuadro:
Se realizará esta comparación 8 veces v eces en este ejemplo (número de bits de los operandos) y al final de cada comparación, realizamos un desplazamiento de un bit hacia la derecha, manteniendo el último bit de la izquierda, y descartando el último bit del lado contrario. Paso a paso esta acción seria:
76
Finalmente obtenemos el número en binario resultante (12 en este ejemplo), descartando el bit extra que hemos añadido al principio del procedimiento y que se encuentra en el extremo a la derecha.
DIVISION DE ALTO RENDIMIENTO Utiliza la misma metodología de la división div isión de números enteros sin signo. En el caso de una división a/ b , y para que parezcan enteros, la idea es escalar a yy b , realizar el proceso de división y luego volver a escalar el cociente para que se corresponda con el resultado correcto de la división a por por b .
View more...
Comments