Download - 1 Introducción Representación de la Información · Las Bases Octal y Hexadecimal Las bases octal y hexadecimal tienen gran importancia en Arquitecturas de Computadores: Permiten

Transcript

1

Dr. Mauricio Solar, [email protected]

(basado en los apuntes de mis colegas Prof. Javier Cañas R. y

Prof. Xavier Bonnaire)

Universidad Técnica Federico Santa María (UTFSM), Chile

Arquitectura de Computadores

Representación de la InformaciónRepresentación de la Información

Universidad Técnica Federico Santa María

Temario

1 Introducción

2 Sistemas Numéricos

3 Conversión entre Bases Numéricas

4 Introducción a la Aritmética Computacional

5 Códigos

Universidad Técnica Federico Santa María

1 Introducción1 Introducción

� “Sociedad de la información”

� “Información es poder” (TI, TIC, …)

� “Informática”:� (Del fr. informatique).

� 1. f. Conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de ordenadores.

� ¿Qué es información?, ¿Cómo se representa?� La respuesta no es simple. Más aún, se ha ido modificando

con el tiempo.

Universidad Técnica Federico Santa María

Representación de la InformaciónRepresentación de la Información

� Según Maturana y Varela:� No existe “información” en términos absolutos.

� Existen convencionalismos que representan fragmentos de la realidad y que al estar dentro de contextos culturales adquieren sentido.

� ¿Qué significa entonces “Procesar información”?� En los distintos espacios, depende de las abstracciones que se hagan

Universidad Técnica Federico Santa María

Representación de la InformaciónRepresentación de la Información

¡Tres!

Espacio MentalEspacio del Lenguaje Espacio Tipográfico

3

Espacio Material

Computador

1 1

Bits: La unidad de información es el bit

BIT: acrónimo de Binary digit

Universidad Técnica Federico Santa María

Información Analógica y DigitalInformación Analógica y Digital

� El manejo de la información se divide en:� procesamiento analógico

� procesamiento digital

� Procesamiento de la Información:� Procesador analógico procesa información analógica

� Procesador digital procesa información digital

� ¿Qué significa esto?� La representación de ambas informaciones se

realiza utilizando señales

2

Universidad Técnica Federico Santa María

� Señal analógica:� Una señal se expresa como una función del tiempo

� Cada nivel de la función g(t) aporta información

� Ejemplos:� Señal de audio (instrumento, radio, etc…)

� Señal de video (TV, cámara, etc …)

� Señal Digital:� También es una función del tiempo

� La función es discreta con varios niveles

� Ejemplos:� Compact Disc-CD, Digital Versatile Disc-DVD, TV digital, etc

Información Analógica y DigitalInformación Analógica y Digital

Universidad Técnica Federico Santa María

Información AnalógicaInformación Analógica

g(t)

t

� Función g(t) continua en términos matemáticos:� Es una señal analógica

� Cada nivel aporta información

Universidad Técnica Federico Santa María

Información DigitalInformación Digital

t

� Función g(t) discreta:� Es una señal digital

� Sólo los niveles discretos aportan información

4 nivelesNivel 4

Nivel 3

Nivel 2

Nivel 1

Universidad Técnica Federico Santa María

ObservacionesObservaciones

� En último término, todo es analógico porque físicamente todo es continuo (excepto a nivel atómico).

� Digital se refiere a la forma de procesar, donde se enfatiza lo discreto.

� Es posible digitalizar una señal analógica

� Es posible transformar una analógica en digital (ej. CD DDD)

Universidad Técnica Federico Santa María

...Observaciones...Observaciones

� ¿Por qué conviene digitalizar?� Evitar el error acumulativo de los sistemas

analógicos

� Se evita la deriva, es decir, errores introducidos por variaciones térmicas de transistores

� Se logra reducir los costos (VLSI, DSP)

� Almacenamiento mas eficiente

Universidad Técnica Federico Santa María

2 Sistemas Numéricos posicionales2 Sistemas Numéricos posicionales

� El sistema numérico comúnmente usado es el sistema decimal:� Es llamado posicional porque el valor de un dígito

depende de la posición en la cual se encuentra.

� Corresponde a un polinomio en base 10

3

Universidad Técnica Federico Santa María

El Sistema DecimalEl Sistema Decimal

� {d1, d2, … , dm} son los dígitos

� Los dígitos constituyen los únicos símbolos representables

� Si la base es b, existen b dígitos representables

� Para la base decimal, estos dígitos son: 0, 1, 2, ...9

Otra notación puede ser:

En general:

Universidad Técnica Federico Santa María

El Sistema DecimalEl Sistema Decimal

� Ejemplo, el número 6903 se puede expresar por el polinomio:

d1 d2 d3 d4

Universidad Técnica Federico Santa María

...El Sistema Decimal...El Sistema Decimal

� La notación anterior se puede extender a números con punto o coma decimal. Ejemplo:

En general:

Universidad Técnica Federico Santa María

Números BinariosNúmeros Binarios

� Si la base b=2:� El sistema numérico se denomina sistema binario

� El conjunto de dígitos representables es {0,1}:� Este conjunto se denomina bits.

Por ejemplo:

� Para eliminar problemas de interpretación, la base se indica con un subíndice. Ejemplo: 1910

� Generalizando para números con punto decimal:

Universidad Técnica Federico Santa María

Otras Bases Numéricas InteresantesOtras Bases Numéricas Interesantes

� Si la base b=8:� El sistema numérico se denomina sistema octal

� El conjunto de dígitos es {0, 1, 2, ..., 7}

Por ejemplo:

� Si la base b=16,� el sistema numérico se denomina Hexadecimal

� El conjunto de dígitos es {0,1, 2,…9, A, B, C, D, E, F}

Por ejemplo:

Universidad Técnica Federico Santa María

Las Bases Octal y HexadecimalLas Bases Octal y Hexadecimal

� Las bases octal y hexadecimal tienen gran importancia en Arquitecturas de Computadores:� Permiten representar información binaria en forma

compacta

� En el lenguaje C se puede representar constantes octales y hexadecimales:

const int I = 056; // el prefijo 0 indica

// que el valor es octal

const int j = 0xA9;// el prefijo 0x indica

// que el valor es hexa

4

Universidad Técnica Federico Santa María

3 Conversión entre Bases Numéricas3 Conversión entre Bases Numéricas

� Conversión Decimal → Binario� Parte Entera: Se divide sucesivamente los

cuocientes por 2 y se registran los restos de la división.

� Por ejemplo: Convertir 1910 a binario

19:2 = 9:2 = 4:2 = 2:2 = 1:2 = 0

1// 1// 0// 0// 1// � Restos

El número binario es 100112

Universidad Técnica Federico Santa María

...Conversión entre Bases Numéricas...Conversión entre Bases Numéricas

� Para simplificar la conversión, es mejor hacer la división en forma tabular.� Por ejemplo: Convertir 1910 a binario

19| 2

9| 14| 12| 01| 00| 1

1910=100112

Universidad Técnica Federico Santa María

...Conversión entre Bases Numéricas

� Parte fraccionaria:� Se multiplica sucesivamente la parte fraccionaria

por 2.

� La parte entera corresponde al número binario

� Por ejemplo: Convertir 0.75310 a binario

0.753*2 = 1.506 la parte entera es 1 y se remueve

0.506*2 = 1.012 la parte entera es 1 y se remueve

0.012*2 = 0.024 la parte entera es 0

0.024*2 = 0.048 la parte entera es 0

El número se puede aproximar a 0.11002

Universidad Técnica Federico Santa María

...Conversión entre Bases Numéricas

� La forma tabular es también en este caso más fácil para convertir números fraccionarios� Por ejemplo: Convertir 0.7510 a binario

0.75|2

1.50|2

1.00|2

0.00|2

El número se puede aproximar a 0.1102

Universidad Técnica Federico Santa María

...Conversión entre Bases Numéricas

� Generalizando la conversión entre cualquier base:� La división de números enteros

� La multiplicación de números fraccionarios

� La aritmética debe corresponder a la base original� Ejemplo: convertir 47810 a base octal (usar aritmética decimal).

478| 8

59| 67| 30| 7

El resultado es 7368

Universidad Técnica Federico Santa María

...Conversión entre Bases Numéricas

� En el ejemplo anterior, el número 7368 se puede convertir en decimal evaluando el polinomio correspondiente:

5

Universidad Técnica Federico Santa María

...Conversión entre Bases Numéricas

� Otro ejemplo:� Convertir 47810 a base Hexadecimal

478| 16

29| 14

1| 13 47810 = 1DE16

0| 1

Universidad Técnica Federico Santa María

Conversión Binario-Hexadecimal-Octal

� Propiedad de bases numéricas:� Las bases que son potencias de 2

permiten una conversión rápida

� Por ejemplo: b = 8 = 23, y b = 16 = 24

� Si b=2n , basta separar en grupos de n bits y convertir sólo el grupo.

� Ejemplo, convertir a hexadecimal

1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1

DA 6 B

Universidad Técnica Federico Santa María

Conversión Binario-Hexadecimal-Octal

� Ejemplo, convertir a Octal1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1

52 5 361

� Esta propiedad justifica el amplio uso de números octales y hexadecimales como forma de compactar la representación de números binarios.

� Usaremos esta representación en los lenguajes de máquina y para expresar códigos.

� Ejemplo: dirección MAC adaptador de red:

00:60:08:DC:31:CC equivale a un número de 48b

MAC: Media Access Control.

Universidad Técnica Federico Santa María

Conversión Binario-Hexadecimal-Octal

� Ejemplo, convertir a 713,58 a binario:

1 1 1 0 0 1 0 1 1 , 1 0 1

1 3 , 57

Universidad Técnica Federico Santa María

Para la casa:

� Desarrollar un programa en C/C++ para convertir entre cualquier par de bases numéricas

Universidad Técnica Federico Santa María

4 Introducción a la Aritmética Computacional

� Los computadores actuales son binarios.

� Información que maneja un computador:� Es almacenada en dispositivos de hardware llamados Registros

� Se denomina ancho de registro al número de bits que puede almacenar.

� Los procesadores de tecnología actual tienen registros de ancho 32, 64 y 128 bits

� El número de registros de un procesador es variable de un procesador a otro:

� Tecnología CISC (Complex Instruction Set Computer): pocos registros

� Tecnología RISC (Reduced Instruction Set Computer): mas registros

6

Universidad Técnica Federico Santa María

Registros

� Byte: grupo de 8 bits (octeto).� Como notación se usa b para bits y B para Byte

� El registro anterior tiene 16b o 2B

� 1 KB = 1024 Bytes = 210 Bytes

� 1 MB = 1024 Kbytes = 220 Bytes

� 1 GB = 1024 Mbytes = 230 Bytes

� 1 TB

1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1

Registro de 16 bits

� Usaremos la siguiente notación para representar registros:

Universidad Técnica Federico Santa María

...Registros

� La mayoría de los computadores actuales son de 32b o 64b, el entero más grande es 232 o 264.

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Valor máximo= 6553510

� Tamaño de Registros� La máxima información que puede manejar un computador está

limitada por el tamaño de los registros.

� Ejemplo: registro de 16b, el mayor entero representable es

Universidad Técnica Federico Santa María

Representación de números negativos

� Los computadores tienen una aritmética que se denomina de precisión finita debido a la limitación de los registros de hardware:

� ¿Cómo representar números negativos?

� ¿Cómo representar números que tienen punto decimal?

Universidad Técnica Federico Santa María

...Representación de números negativos

� ¿números negativos? ¿Cómo representar el signo?

� Por convención se utiliza el bit más significativo para representar el signo.

� Los números positivos tienen un cero

� Los negativos un uno en el bit más significativo.

0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1

Número positivo

1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1

Número negativo

Universidad Técnica Federico Santa María

...Representación de números negativos

� Tres formas de representar números negativos:� Signo y Magnitud (S-M)

� Complemento uno (C-1)

� Complemento dos (C-2)

� Números positivos se representan igual en las tres formas.

� Todos los computadores modernos utilizan Complemento Dos (C-2)

Universidad Técnica Federico Santa María

Signo y Magnitud

� Magnitud del número:� Corresponde al valor absoluto

� Si consideramos un registro de 5b

� Si Magnitud es cero (0): existe +0 y -0

7

Universidad Técnica Federico Santa María

...Signo y Magnitud

� En general, si el ancho del registro es n, el rango representable es:

-0 +01

15

..

-1

-2

-..

-15

� Si el ancho del registro es 5 bits (representación circular):

Universidad Técnica Federico Santa María

Complemento Uno

� El Complemento 1 de un número:� Se obtiene complementando cada bit.

� Ejemplo para representar el -3 en un registro de 5b

0 0 0 1 1 Primero se considera +3

1 1 1 0 0 Luego se complementa cada bit

Universidad Técnica Federico Santa María

Complemento Uno

� Al igual que en S-M:� En general, si el ancho del registro es n, el rango

representable es:

� Existen dos ceros: +0 y -0

� La representación circular con un registro de 5 bits:

-0 +01

15

..

-1

-2

-..

-15

Universidad Técnica Federico Santa María

Complemento Dos

� El Complemento 2 de un número N en un registro de ancho n� Se obtiene calculando 2n-N

� Ejemplo para representar el -3 en un registro de 5b:

1 0 0 0 0 0

0 0 0 0 1 1

25

3

0 1 1 1 0 1 Número en C-2

Universidad Técnica Federico Santa María

Complemento Dos

� Otra forma (más fácil) de obtener el C-2:� Calcular el C-1 y sumar uno.� Ejemplo para representar el -3 en un registro de 5b

0 0 0 1 1 3

1

1 1 1 0 1 Número -3 en C-2

1 1 1 0 0 C-1 de 3 es -3

+

Universidad Técnica Federico Santa María

Complemento Dos

� Ejemplo si el ancho de los registros es 5 bits:

-1 01

15

..

-2

-3

-..

-15-16

8

Universidad Técnica Federico Santa María

...Complemento Dos

� Se puede observar que:� Sólo hay una representación para el cero.� Hay asimetría en la representación:

� el valor absoluto del máximo número negativo, es mayor que el

máximo positivo

� En general si el ancho de los registros es n, el rango representable está dado por:

Universidad Técnica Federico Santa María

Sumas de Registros

� Sumas en C-2:

� Es el caso más frecuente en los procesadores actuales� Para sumar en C-2 se suman los números en forma binaria.� Precaución al sumar números con el mismo signo ya que

podría ocurrir rebalse (overflow).

� El resultado no cabe en los bits disponibles en el registro

� Para detectar el overflow (rebalse), se usa un bit especial llamado CARRY (acarreo)

Universidad Técnica Federico Santa María

Sumas binarias

La Tabla de Suma de dos bit es:

x y Acarreo x+y

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 0

Universidad Técnica Federico Santa María

Sumas binarias

Sumar los números binarios 100100 (36)10 y 10110 (22)10

acarreo 0 0 1 0 0

1 0 0 1 0 0

+ 1 0 1 1 0

1 1 1 0 1 0 (58)10

Universidad Técnica Federico Santa María

Resta binaria

� Se realiza la resta de los últimos dos bits de idénticas posiciones, siendo uno el minuendo y el otro el sustraendo.

� Si el sustraendo excede al minuendo, se sustrae una unidad del bit de la izquierda en el minuendo (préstamo).

� Si el bit de la izquierda es 0, se busca en los sucesivos teniendo en cuenta que su valor se multiplica por dos en cada desplzamiento a la derecha.

Universidad Técnica Federico Santa María

Resta binaria

La Tabla de Resta de dos bit es:

x y préstamo x-y

0 0 0 0

0 1 1 1

1 0 0 1

1 1 0 0

9

Universidad Técnica Federico Santa María

Resta binaria

Restar los números binarios 101100 (44)10 y 001110 (14)10

préstamo 1 1 1 1 0

1 0 1 1 0 0 minuendo

- 0 0 1 1 1 0 sustraendo

0 1 1 1 1 0 (30)10

Universidad Técnica Federico Santa María

Resta binaria

Si minuendo 10001 (17)10 y sustraendo 01011 (11)10

préstamo 1 1 1 0

1 0 0 0 1 minuendo

- 0 1 0 1 1 sustraendo

0 0 1 1 0 (6)10

Universidad Técnica Federico Santa María

Sumas binarias

11

0

No hay carry de entrada y se genera carry de salida

1+

Carry desalida

11

0

Hay carry de entrada y se genera carry de salida

0+

Carry desalida

1

Carry deentrada

Universidad Técnica Federico Santa María

...Sumas de Registros

� Ejemplo: 8+ (-3) en registros de ancho 5b

� del resultado se elimina el acarreo.

0 1 0 0 0 +8

0 0 1 0 1 Resultado en C-2

1 1 1 0 1 -3 en C-2+

Universidad Técnica Federico Santa María

Sumas de Registros: Overflow

� Ejemplo: 8+ 9 en registros de ancho 5b

0 1 0 0 0 +8

1 0 0 0 1 ¡Cambió el signo!

0 1 0 0 1 +9+

Se genera carry 1 que entra a la última etapa (signo)

Se genera carry 0

Universidad Técnica Federico Santa María

Sumas de Registros: Overflow

� Detección de overflow en C-2:� Observar el carry que entra al bit de signo y el carry que se

genera en el bit de signo.� Ocurre overflow cuando ambos carry son diferentes.

� Unidades Aritmética:� Los procesadores tienen lógica que permite detectar

automáticamente esta situación.� Se genera una excepción de overflow.

10

Universidad Técnica Federico Santa María

Sumas en Complemento Uno

� Procesadores� No hay procesadores modernos que usen C-1

� Algoritmos de detección de errores:� Se usa C-1 en algoritmos de detección y corrección de errores

en transmisión de datos (Checksum IP).

� Ejemplo: 8+ (-3) en registros de ancho 5b

Universidad Técnica Federico Santa María

Sumas en Complemento Uno

0 1 0 0 0 +8

0 0 1 0 0

Resultado en C-1

1 1 1 0 0 -3 en C-1+

1 End Around Carry

+

0 0 1 0 1

� Ejemplo: 8+ (-3) en registros de ancho 5b

Universidad Técnica Federico Santa María

Representación en Punto Flotante

� Basada en notación científica:

Universidad Técnica Federico Santa María

Representación en Punto Flotante

� Precisión simple (32 bits) IEEE 754:

� :

� Cuyo rango representable por cada campo es:� e: Exponente (8b con sesgo de 128): -128 … +127� m: Mantisa (23 bits normalizados): valores oscilan entre 1.00…

y 1.11, es decir entre 1 y 2-2-23 (2 ulp)

Universidad Técnica Federico Santa María

Representación en Punto Flotante

� Punto Flotante de 32 bits (precisión simple):

Universidad Técnica Federico Santa María

Representación en Punto Flotante

� Un ejemplo de precisión simple: -118,625� Número negativo: signo es "1”� Número sin signo en binario: 1110110,101� Estandarizar: 1110110,101=1,110110101·26

� Mantisa se completa con ceros hasta obtener los 23 bits:11011010100000000000000.

� Exponente es 6: en binario desplazado es 6 + 127 = 133� Exponente en binario: 10000101

1 1 0 0 0 0 1 0 1 1 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0

11

Universidad Técnica Federico Santa María

5 Códigos

� Código:� Relación entre dos conjuntos de símbolos.

� Dominio es un conjunto arbitrario:� letras,

� símbolos gráficos,

� números.

� Co-dominio es un conjunto de strings de bits.

� Un pilar fundamental de los Sistemas de Computación.

� Teoría de Códigos: � Disciplina que estudia sus propiedades.

Universidad Técnica Federico Santa María

...Códigos

a

@5

B

1101

11001

1001

110101

Dominio Codominio

Universidad Técnica Federico Santa María

El Código BCD (Binary Coded Decimal)

� ¿Cómo representar el número 199510?� Una solución es convertirlo a binario

� 199510 = 111110010112

� La Dificultad de este método:� La conversión

� Se dificulta la entrada de datos

� Desaprovecha códigos inutilizados

Universidad Técnica Federico Santa María

...El Código BCD

� Código BCD permite una conversión fácil entre números decimales y binarios.� Es útil en teclados numéricos

77 88 99

44 55 66

11 22 33

00

Decimal BCD

0 0000

1 0001

2 0010

3 0011

4 0100

Decimal BCD

5 0101

6 0110

7 0111

8 1000

9 1001

Ejemplo: 219= 0010 0001 1001

Universidad Técnica Federico Santa María

El Código Gray

� El Código Gray tiene interesantes propiedades que se utilizarán en el próximo capítulo (Boole).

� El Código Gray se define de la siguiente manera:� Código Gray de un bit = {0,1}

� Dado un Código Gray de d-bits, se puede construir un Código Gray de (d+1)-bits haciendo:

� una lista del Código Gray con prefijo 0,

� seguido de una lista del Código Gray en orden inverso con prefijo 1

� Llamado código reflejo de mínima distancia (números sucesivos cambian en un solo bit)

Universidad Técnica Federico Santa María

Construcción de un Código Gray

0

1

0

1

1

0

0

0

1

1

0

1

1

0

0

0

1

1

01

11

10

00

0

0

0

0

1

1

1

1

12

Universidad Técnica Federico Santa María

Código Gray de 3 bits

0

1

1

0

0

0

1

1

01

11

10

00

0

0

0

0

1

1

1

1

0

1

2

3

4

5

6

7

G(i)i

Se define el inverso G-1(i)=j ssi G(j)=i

Ejemplo:

G-1(6) = 4

0

1

3

2

6

7

5

4

G(i)

Universidad Técnica Federico Santa María

Otros Códigos

� Código Exceso de 3� Es un BCD no ponderado, cada combinación se obtiene sumando

el valor 3 a cada combinación binaria BCD natural.

� Código Johnson� Código cíclico no ponderado en que sus palabras difieren en un

bit. En general. Un código Johnson de n bits puede codificar sólo 2n símbolos fuente.

� Códigos detectores de error� Paridad: agregan un bit de paridad par o impar

� Hamming: detector-corrector de errores simples y detector de errores dobles. Agrega un bit de paridad par en las posiciones que son potencia de 2.

Universidad Técnica Federico Santa María

Otros Códigos

� ¿Qué códigos usar para representar otros símbolos?� El código más utilizado es el llamado ASCII (American

Standard Code for Information Interchange)

� El códigos EBCDIC utilizado en algunos terminales IBM

� UNICODE versión 5.2.0 es el último estándar de la industria

Dr. Mauricio Solar, [email protected]

(basado en los apuntes de mis colegas Prof. Javier Cañas R. y

Prof. Xavier Bonnaire)

Universidad Técnica Federico Santa María (UTFSM), Chile

Arquitectura de Computadores

Representación de la InformaciónRepresentación de la Información