Title: Organizacin del Computador 1
1Organización del Computador 1
- Representación binaria de Números Reales
- Sistemas de Representación
2Tipos de datos Números reales
- El rango de los números reales es desde -8 hasta
8. - Los registros de un procesador tienen resolución
finita. - Por lo tanto solo un sub set del rango es
representable. - No solo en magnitud sino en resolución
3Representación binaria de Números Reales
- En general podemos formalizar la representación
de un número real expresado en los siguientes
formatos - Punto Fijo
- Con Signo
- Con Notación Complemento a 2
- Punto Flotante
4Representación Punto Fijo con Signo
- Se representan mediante una expresión del tipo
- (anan-1 a0 . a-1a-2 a-m)2 (-1)s(an2n
a020 a-12-1 a-22-2 a-m 2-m) - donde
- s es 0 si el número es positivo y 1 si es
negativo - ai ? enteros y 0 ai 1, para todo i -m, -1,
0, 1, n - Distancia entre dos números consecutivos es 2-m.
- Deja de ser un rango continuo de números para
transformarse en un rango discreto
5Representación Punto Fijo con Notación
Complemento a 2
- El problema consiste en representar los números
negativos - Empleamos para resolverlo el mismo criterio que
en el complemento a 2 de enteros. - Para representar el número N en punto fijo con
notación complemento a 2 se hace 2n - N
6Truncamiento y Redondeo
- La cantidad de dígitos disponible no alcanza para
representar el número - Problema Representar un número de n dígitos
decimales en un sistema con m dígitos decimales,
siendo m lt n - Truncamiento descarta los dígitos fraccionarios
de orden mayor a m. El error es de 1 bit. - Redondeo descarta los dígitos fraccionarios de
orden mayor a m pero se suma 1 al menos
significativo en caso que el bit inmediato
descartado valga 1. Equivale a truncar y sumarle
0,5.2-m . El error es de ½ bit.
7Truncamiento y Redondeo para Notación en
complemento a 2
- Cuando se desea hallar el complemento de un
número w, primero se deberá - Calcular la aproximación a w por truncamiento o
redondeo. - Calcular el complemento del número aproximado
hallado en el paso 1 - Ver casos para wgt0, w0, wlt0 según se trate de
truncamiento o redondeo.
8Números reales Representación
- Para el caso de los números reales se trabaja en
notación científica. - n f.10e
- -725,832 -7.25832 . 102 -725,832 x 100
- 3.14 0.314 x 101 3,14 x 100
- 0.000001 0,1 x 10-5 1,0 x 10-6
- 1941 0.1941 x 104 1,941 x 103
- Para unificar la representación se recurre a la
notación científica normalizada, en donde - 0 ,1 f lt 1
- e es un entero con signo
9Números reales Representación
- En el sistema binario la expresión de un número
en notación científica normalizada es - n f.2e
- en donde
- 0 ,5 f lt 1
- e es un entero con signo
10Representación en Punto Flotante
- Se representan con los pares de valores (m, e),
denotando - (m, e) mpe
- m llamado mantisa, y que representa un número
fraccionario - e, llamado exponente, al cual se debe elevar la
base numérica de representación para obtener el
valor real - Mantisa y exponente pueden representarse
- con signo
- sin signo
- con notación complemento
- con notación exceso m.
- Para que las representaciones sean únicas, la
mantisa deberá estar normalizada.
11Punto Flotante Normalizado
12Conversión de un número al formatopunto flotante
normalizado
- Dado un número w que pertenece a los reales,
planteamos el método para obtener su
representación de punto flotante normalizado en
base 2. Se notará con e al exponente y con f a
la fracción. - Determinar el exponente. Para ello hallar el
valor de e que satisface - 2e-1 w lt 2e.
- Determinar la fracción y hallar su representación
en base 2. Por definición, - f w / 2e.
- Armar la representación del número según la
convención que se haya acordado. Por lo general,
se establece que el primer dígito de la
representación representa al signo de la
fracción, los k dígitos siguientes al exponente
en alguna notación (con complemento o exceso m) y
los l dígitos siguientes a la fracción.
13Representación de la Información
- Bit (Binary Digit) Un bit es un dígito binario.
Como tal, puede tener 2 valores posibles, 1 y 0.
Como los circuitos de una computadora pueden
asumir 2 estados, los bits se utilizan para
representar el estado de los circuitos. Y siendo
uno de estos circuitos la unidad mínima de
almacenamiento que posee una computadora, el bit
será la mínima unidad de representación. - Byte En términos generales, un byte es un
conjunto de bits. En el presente, se entiende
como byte al conjunto de 8 bits. - Palabra Una palabra es el conjunto de bits que
pueden ser accedidos por la CPU en un
requerimiento de lectura/escritura.
14Tipo de Datos que se representan con unos y ceros
- Números enteros positivos y negativos, y
fracciones. - Letras Todas las letras del alfabeto
(mayúsculas y minúsculas), símbolos de
puntuación, símbolos matemáticos, etc. - Caracteres de control caracteres para limpiar la
pantalla, saltar una línea, etc. - Instrucciones de programa.
- Direcciones de memoria.
15Representación de números en binario
- Representar el número decimal 40 en formato
binario ocupando dos bytes. - 40 equivale a 00000000 00101000 (en
hexadecimal 00 28) tanto en notación complemento
como sin signo. - Representar el número decimal -40 en binario. En
este caso únicamente se puede utilizar notación
complemento - -40 equivale a 11111111 11011000 (en
hexadecimal FF D8)
Complemento a 2 00001010
11111101 1 00000111 se descarta el
acarreo
Decimal 10 (-3) 7
16Punto Flotante Formato IEEE 574
- IEEE (Institute of Electrical and Electronics
Engineers, Inc.) - El Standard IEEE 754 para punto flotante binario
es el mas ampliamente utilizado. En este Standard
se especifican los formatos para 32 bits, 64
bits, y 80-bits.
17IEEE 574 Rangos
18Problemas que surgen del trabajo connúmeros de
Punto Flotante
- Overflow, underflow y números no inicializados.
- El estándar IEEE574 trata con estos problemas de
manera explícita, y define además de los números
normalizados, otros cuatro tipos de números, que
se muestran a continuación. - Números finitos de-normalizados
- Números finitos normalizados
- Ceros signados
- Infinitos signados
- NaNs (Not a Number)
- Números Indefinidos
19Problemas que surgen del trabajo connúmeros de
Punto Flotante
20Ceros signados
- Una operación puede dar 0 o -0 en función del
bit de signo. - En ambos casos el valor es el mismo. El signo de
un resultado cero depende de la operación en sí y
del modo de redondeo utilizado. - Los ceros signados ayudan a interpretar el
intervalo aritmético en el que se ubicaría el
resultado si la precisión aritmética fuese mayor.
- Indican la dirección desde la cual ocurrió el
redondeo a cero, o el signo de un infinito que
fue invertido.
21Números finitos normalizados
- El rango de éstos números se compone de todos los
valores finitos distintos de cero codificables en
formato de números reales entre 0 e ?. - En el formato de punto flotante simple precisión
estos números se componen de todos aquellos cuyos
exponentes desplazados van de 1 a 254, (no
desplazados van de -126 a 127). - Cuando se aproximan a cero, estos números no
pueden seguir expresándose en este formato, ya
que el rango del exponente no puede compensar el
desplazamiento a izquierda del punto decimal. - Cuando se llega a un exponente cero en un número
normalizado, se pasa al rango de-normalizado.
22Números finitos de-normalizados
- En general las operaciones entre números
normalizados arrojan como resultado otro número
normalizado. - Si hay underflow se pasa a trabajar en formato
de-normalizado. - Ej
Bits de pérdida de precisión
23Infinitos signados
- ? y -?, representan los máximos números reales
positivo y negativo representables en formato de
unto flotante - La mantisa siempre es 1.000....00, y el máximo
exponente desplazado representable (p. Ej. 255
para precisión simple)
24NaNs
- Not a Number.
- No son parte del rango de números reales.
- QNaN Quiet NaN tiene el bit mas significativo
fraccional en 1. Pueden propagarse por
posteriores operaciones sin generar una
excepción. - SNaN Signaled NAN. Tiene en cero el bit
fraccional mas significativo. Resulta de una
operación inválida de punto flotante.
25Tipos de datos Números reales
1. El bit entero está implícito y no se almacena
para formatos single-precision y
double-precision. 2. La fracción para
codificación de SNaN debe ser distinta de cero,
con el bit mas significativo en 0.
26ASCII
- American Standard Code for Information
Interchange - Hay 95 caracteres ASCII imprimibles, numerados
del 32 al 126. - Es un código de caracteres basado en el alfabeto
latino tal como se usa en inglés moderno y en
otras lenguas occidentales. - Fue creado en 1963 por el Comité Estadounidense
de Estándares (ASA, conocido desde 1969 como el
Instituto Estadounidense de Estándares
Nacionales, o ANSI) como una refundición o
evolución de los conjuntos de códigos utilizados
entonces en telegrafía. - En 1967, se incluyeron las minúsculas, y se
redefinieron algunos códigos de control para
formar el código conocido como US-ASCII.
27ASCII
- El código ASCII utiliza 7 bits para representar
los caracteres, aunque inicialmente empleaba un
bit adicional (bit de paridad) para detectar
errores en la transmisión. - A menudo se llama incorrectamente ASCII a otros
códigos de caracteres de 8 bits, como el estándar
ISO-8859-1 que es una extensión que utiliza 8
bits para proporcionar caracteres adicionales
usados en idiomas distintos al inglés. - En la actualidad define códigos para 33
caracteres no imprimibles, de los cuales la
mayoría son caracteres de control obsoletos que
tienen efecto sobre como se procesa el texto, más
otros 95 caracteres imprimibles que les siguen en
la numeración (empezando por el carácter
espacio). - Casi todos los sistemas informáticos actuales
utilizan el código ASCII o una extensión
compatible para representar textos y para el
control de dispositivos que manejan texto.
28ISO 8859-1
29Unicode
- Estándar industrial cuyo objetivo es proporcionar
el medio por el cual un texto en cualquier forma
e idioma pueda ser codificado para el uso
informático. - El establecimiento de Unicode ha involucrado un
ambicioso proyecto para reemplazar los esquemas
de codificación de caracteres existentes, muchos
de los cuales están muy limitados en tamaño y son
incompatibles con entornos multilingües. - Implementado en un número considerable de
tecnologías recientes, que incluyen XML, Java y
Sistemas Operativos modernos.
30UTF-8
- UTF-8 (8-bit Unicode Transformation Format) es
una norma de transmisión de longitud variable
para caracteres codificados utilizando Unicode. - Usa grupos de bytes para representar el estándar
de Unicode para los alfabetos de muchos de los
lenguajes del mundo. - Especialmente útil para la transmisión sobre
sistemas de correo de 8 bits. - Usa 1 a 4 bytes por carácter, en función del
símbolo Unicode. P.Ej. se necesita un solo byte
en UTF-8 para codificar los 128 caracteres
US_ASCII en el rango U0000 a U007F Unicode. - No es afectado al utilizar compresión de datos.
- El IETF requiere que todos los protocolos de
Internet indiquen qué codificación utilizan para
los textos y que UTF-8 esté entre las mismas.
31UTF-8 Ventajas
- Puede codificar cualquier carácter.
- Ahorra espacio respecto de UTF-16 o UTF-32 que
utilizan muchos caracteres ASCII de 7 bits. - Una secuencia de bytes para un carácter jamás
será parte de una secuencia más larga de otro
carácter como lo hacían viejas codificaciones. - El primer byte de una secuencia multi-byte es
suficiente para determinar la longitud de una
secuencia multi-byte. Esto hace muy simple
extraer una subcadena de una cadena dada sin
elaborar un análisis exhaustivo.
32UTF-8 Ventajas
- Está diseñado para que los bytes codificados
nunca tomen alguno de los valores de los
caracteres especiales de ASCII, previniendo
problemas de compatibilidad con librerías y
sistemas operativos legacy como la ANSI C. - Las cadenas en UTF-8 pueden ser ordenadas usando
rutinas de ordenamiento estándar orientadas a
byte. - UTF-8 es el valor predeterminado para el formato
XML.
33UTF-8 desventajas
- Es de longitud variable eso significa que
diferentes caracteres toman secuencias de
diferentes longitudes para codificar. La agudeza
de esto podría ser disminuida, sin embargo,
creando una interfaz abstracta para trabajar con
cadenas UTF-8 y haciéndolo transparente al
usuario. - Un analizador de UTF-8 mal escrito podría aceptar
un número de diferentes representaciones
pseudo-UTF-8 y convertirlas en la misma salida
Unicode. - Los caracteres ideográficos usan 3 bytes en
UTF-8, pero sólo 2 en UTF-16. Así, los textos
chinos/japoneses/coreanos usarán más espacio
cuando sean representados en UTF-8.
34UTF-16
- E un código de caracteres que proporciona una
forma de representar caracteres Unicode e ISO/IEC
10646 como una serie de palabras de 16 bits y 24
bits susceptibles de ser almacenados o
transmitidos a través de redes de datos. - UTF-16 se halla oficialmente definido en el Anexo
Q de la norma ISO/IEC 10646-1. También está
descrita en el estándar unicode (versión 3.0 u
superior), al igual que en la RFC 2781 de la IETF - UTF-16 representa un carácter que ha sido
asignado dentro del conjunto de los 65536 puntos
del código unicode o ISO/IEC 10646 como un valor
de código único equivalente al punto de código
del carácter por ejemplo, 0 para 0, FFFD
hexadecimal para FFFD.