Download 1 - Cime

Document related concepts

Código binario wikipedia , lookup

Representación de números con signo wikipedia , lookup

Decimal codificado en binario wikipedia , lookup

Bit wikipedia , lookup

Sistema binario wikipedia , lookup

Transcript
Arquitectura de Computadores
Representación de la Información
Luis Ríos Sepúlveda
(basado en los apuntes de mis colegas Prof. Mauricio Solar, Prof.
Javier Cañas R. y Prof. Xavier Bonnaire)
Universidad Técnica Federico Santa María (UTFSM), Chile
Universidad Técnica Federico Santa María
Temario
1
2
3
4
5
Introducción
Sistemas Numéricos
Conversión entre Bases Numéricas
Introducción a la Aritmética Computacional
Códigos
Universidad Técnica Federico Santa María
1 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ó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ón
Espacio Mental
Espacio del Lenguaje
Espacio Tipográfico
¡Tres!
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 Digital

El manejo de la información se divide en:



Procesamiento de la Información:



procesamiento analógico
procesamiento digital
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
Universidad Técnica Federico Santa María
Información Analógica y Digital

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
Universidad Técnica Federico Santa María
Información Analógica

Función g(t) continua en términos matemáticos:


Es una señal analógica
Cada nivel aporta información
g(t)
t
Universidad Técnica Federico Santa María
Información Digital

Función g(t) discreta:


Es una señal digital
Sólo los niveles discretos aportan información
Nivel 4
4 niveles
Nivel 3
Nivel 2
Nivel 1
t
Universidad Técnica Federico Santa María
Observaciones




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

¿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 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
Universidad Técnica Federico Santa María
El Sistema Decimal
En general:




{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:
Universidad Técnica Federico Santa María
El 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

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 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 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 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; //
//
const int j = 0xA9;//
//
el prefijo 0 indica
que el valor es octal
el prefijo 0x indica
que el valor es hexa
Universidad Técnica Federico Santa María
3 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

Para simplificar la conversión, es mejor hacer
la división en forma tabular.

Por ejemplo: Convertir 1910 a binario
19| 2
9| 1
4| 1
2| 0
1| 0
0| 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| 6
7| 3
0| 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:
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
0| 1
47810 = 1DE16
Universidad Técnica Federico Santa María
Conversión Binario-Hexadecimal-Octal

Propiedad de bases numéricas:




1
0
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
A
0
1
1
0
D
1
0
1
1
6
0
1
0
1
B
1
Universidad Técnica Federico Santa María
Conversión Binario-Hexadecimal-Octal

Ejemplo, convertir a Octal
1
0
1



1
0
1
2
1
0
6
1
0
1
5
1
0
5
1
0
1
1
3
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
MAC: Media Access Control.
equivale a un número de 48b
Universidad Técnica Federico Santa María
Conversión Binario-Hexadecimal-Octal

Ejemplo, convertir a 713,58 a binario:
1
1
1
7
0
0
1
1
0
1
3
1 , 1
,
0
5
1
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
Universidad Técnica Federico Santa María
Registros
Usaremos la siguiente notación para representar
registros:

1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
Registro de 16 bits

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
10 Bytes
 1 KB = 1024 Bytes = 2
20 Bytes
 1 MB = 1024 Kbytes = 2
30 Bytes
 1 GB = 1024 Mbytes = 2
 1 TB
1
Universidad Técnica Federico Santa María
...Registros

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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Valor máximo= 6553510

La mayoría de los computadores actuales son de 32b
o 64b, el entero más grande es 232 o 264.
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
1
0
1
1
1
Número positivo
1
1
1
0
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
Universidad Técnica Federico Santa María
...Signo y Magnitud


En general, si el ancho del registro es n, el
rango representable es:
Si el ancho del registro
es 5 bits (representación
circular):
-1
-0
+0
1
-2
..
-..
-15
15
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:
-1
-0
+0
1
-2
..
-..
-15
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:
0
1
0
0
0
0
0
25
0
0
0
0
1
1
3
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
0
0
C-1 de 3 es -3
+
1
1
1
1
0
1
Número -3 en C-2
Universidad Técnica Federico Santa María
Complemento Dos

Ejemplo si el ancho de los registros es 5 bits:
-2
-1
0
1
-3
..
-..
-15
-16
15
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
0
1
0
+
1
(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
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
1
Carry de
salida
1
+
Carry de
salida
1
1
0
No hay carry de entrada y
se genera carry de salida
Carry de
entrada
1
1
+
0
0
Hay carry de entrada y se
genera carry de salida
Universidad Técnica Federico Santa María
...Sumas de Registros

Ejemplo: 8+ (-3) en registros de ancho 5b
+

0
1
0
0
0
+8
1
1
1
0
1
-3 en C-2
0
0
1
0
1
Resultado en C-2
del resultado se elimina el acarreo.
Universidad Técnica Federico Santa María
Sumas de Registros: Overflow

Ejemplo: 8+ 9 en registros de ancho 5b
+
Se genera carry 0
0
1
0
0
0
+8
0
1
0
0
1
+9
1
0
0
0
1
¡Cambió el signo!
Se genera carry 1 que entra a la
última etapa (signo)
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.
Universidad Técnica Federico Santa María
Sumas en Complemento Uno

Procesadores


Algoritmos de detección de errores:


No hay procesadores modernos que usen C-1
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

Ejemplo: 8+ (-3) en registros de ancho 5b
+
+
0
1
0
0
0
+8
1
1
1
0
0
-3 en C-1
0
0
1
0
0
0
0
1
0
1
End Around Carry
1
Resultado en C-1
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
11000010111011010100000000000000
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
1101
@
5
B
Dominio
11001
110101
1001
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
Decimal
7
8
4
5
1
2
9
6
3
BCD
Decimal
BCD
0
0000
5
0101
1
0001
6
0110
2
0010
7
0111
3
0011
8
1000
4
0100
9
1001
0
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
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
Universidad Técnica Federico Santa María
Código Gray de 3 bits
i
0
G(i)
0
0
0
G(i)
0
1
0
0
1
1
2
0
1
1
3
3
0
1
0
2
Se define el inverso G-1(i)=j
ssi G(j)=i
4
1
1
0
6
Ejemplo:
G-1(6) = 4
5
1
1
1
7
6
1
0
1
5
7
1
0
0
4
Universidad Técnica Federico Santa María
Otros Códigos

Código Exceso de 3


Código Johnson


Es un BCD no ponderado, cada combinación se obtiene sumando
el valor 3 a cada combinación binaria BCD natural.
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
Arquitectura de Computadores
Representación de la Información
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