ARQUITECTURA DE COMPUTADORES
Curso 0: Arquitectura de Computadores
Carlos Garre
[email protected]
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
1
Índice
ARQUITECTURA DE COMPUTADORES
Representación de la Información
Introducción a la Arquitectura de Computadores
Modelo Von Neumann
Jerarquía de Memoria
El Procesador
Dispositivos de Entrada/Salida
Arquitecturas Avanzadas
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
2
Representación de la Información
ARQUITECTURA DE COMPUTADORES
Codificación:
El ordenador codifica toda clase de información
utilizando únicamente dos valores:
0: ausencia de corriente eléctrica.
1: corriente eléctrica.
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
3
Representación de Números
ARQUITECTURA DE COMPUTADORES
Es común que trabajemos directamente con información
numérica: contabilidad, calificaciones del máster, etc…
Pero además, el ordenador muchas veces trabaja
implícitamente con números:
Cuando jugamos a un juego de ordenador, éste debe calcular
constantemente las coordenadas espaciales de todos los elementos
de nuestro escenario 3D, y esas coordenadas se representan como
vectores de números reales.
Cuando escribimos un texto en Word, éste debe llevar un recuento
del número de páginas, de la numeración de los capítulos, etc.
Cuando navegamos por Internet, el ordenador debe controlar las
direcciones IP y los puertos TCP y controlar muchos otros números
que permiten la conexión entre dos máquinas (números de secuencia,
sumas de comprobación, etc).
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
4
Representación de Números
ARQUITECTURA DE COMPUTADORES
La forma de representar (codificar) los números es diferente
según el dominio que queramos representar:
Números naturales:
Binario natural.
BCD.
Números enteros:
Signo y Magnitud.
Representación en complementos (Ca1 y Ca2).
Representaciones en exceso.
Números reales:
Coma fija.
Coma flotante (estándar IEEE-754).
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
5
Contando en binario…
ARQUITECTURA DE COMPUTADORES
¿Hasta cuánto podemos contar con los dedos de las manos?
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
6
Contando en binario…
ARQUITECTURA DE COMPUTADORES
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
7
Conversión de binario a decimal
ARQUITECTURA DE COMPUTADORES
Base decimal:
345)10 = 3*102 + 4*101 + 5*100
Base B:
X)B = CNCN-1… C2C1C0 = C0*B0 + C1*B1 + C2*B2 + … + CN-1*BN-1 +
CN*BN
Base binaria (B=2):
10111001101)2 = 1*20 + 0*21 + 1*22 + 1*23 + 0*24 + 0*25 +
1*26 + 1*27 + 1*28 + 0*29 + 1*210 = 1 + 4 + 8 + 64 + 128 + 256 +
1024 = 1485)10
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
8
Definiciones y conceptos clave
ARQUITECTURA DE COMPUTADORES
Bit: una cifra en sistema binario. Puede ser 0 o 1.
Byte: secuencia de 8 bits.
¿Cuál es el mayor número que podemos representar con un
byte?
11111111)2 = 255)10
En general, con una secuencia de N bits podemos representar
números desde 0 hasta 2N-1 (2N valores diferentes)
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
9
Conversión de decimal a binario
ARQUITECTURA DE COMPUTADORES
Método de las divisiones sucesivas:
1.
2.
3.
Dividimos el número por la base (2), y obtenemos como resultado un
cociente y un resto de la división. Anotamos el resto.
Cogemos el cociente de la anterior división, y lo dividimos por la base
(2). Anotamos el resto.
Continuamos el proceso hasta que el cociente es 1. Cuando llegamos a
este punto, empezamos a escribir los bits del número convertido
siguiendo este orden de izquierda (bit más significativo) a derecha (bit
menos significativo):
•
•
•
•
1ª cifra: último cociente (siempre será 1).
2ª cifra: último resto
3ª cifra: penúltimo resto
Y así sucesivamente hasta ubicar el último bit (más a la derecha),
que será el primer resto que anotamos.
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
10
Conversión de decimal a binario
ARQUITECTURA DE COMPUTADORES
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
11
Representación de Números Enteros
ARQUITECTURA DE COMPUTADORES
¿Cómo representar el signo (+/-) de un número si sólo
podemos usar ceros y unos?
¡Nos inventamos un convenio!
0 = +
1 = -
Representación en Signo y Magnitud: por convenio, el primer
bit es el signo, y el resto de bits codifican un número natural.
11101 Signo: 1 (-), Magnitud: 1101 (13).
11101)SyM = -13)10
¡Concepto clave! Separación en dos campos: signo y magnitud.
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
12
Representación de Números Reales
ARQUITECTURA DE COMPUTADORES
¿Cómo representamos la coma de un número real?
Separando en dos campos: parte entera y parte fraccionaria.
Ejemplo: 4 bits para parte entera y 4 para parte fraccionaria:
11011101 = 1101’1101 = 13’13
Problema: no podemos representar números mayores que 15, mientras
que en binario natural con 8 bits podríamos hasta 255.
Solución: ¿dar más bits a la parte entera?
11011101 = 110111’01 = 55’25
Nuevo problema: ¡ahora sólo podemos tener x’0, x’25, x’5, o x’75!
Conclusión:
Más bits en la parte entera = números más grandes
Más bits en la parte fraccionaria = números más precisos
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
13
Representación de Números Reales
ARQUITECTURA DE COMPUTADORES
Entonces, ¿cuál es el mejor compromiso?
Un sistema que te permita mover la coma de izquierda a
derecha según convenga para cada número:
Coma fija vs coma flotante.
Notación científica: forma habitual de representar números
muy grandes y/o números con parte fraccionaria:
Un trillón = 1000000000000000000 = 1018
Dos milmillonésimas = 0’000000002 = 2*10-9
Cualquier número se puede representar en notación científica
de diferentes formas:
14567 = 14567’0*100 = 14’567*103 = …
Un trillón = 0’1*1020 = …
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
14
Representación de Números Reales
ARQUITECTURA DE COMPUTADORES
En general:
Donde:
X = M*10E
X: número a representar.
M: mantisa (número real).
E: exponente (número entero).
En realidad, podemos usar cualquier otra base:
X = M*BE
Ejemplo:
14567’0*100 = 14567’0*20 = 1’4567*104 ~ 1’778199*213
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
15
Representación de Números Reales
ARQUITECTURA DE COMPUTADORES
Representación habitual de números reales en el ordenador:
Formato estándar de coma flotante (IEEE-754) donde se
establece cómo representar la base, la mantisa y el
exponente:
Base fija = 2 (no hay que representarla).
Exponente = 8 bits.
Mantisa = 24 bits (incluyendo signo).
Pero si la mantisa es a su vez un número real, ¿cómo lo
representamos? mantisa normalizada.
11101 = 11101*20 = 1110’1*21 = … = 1’1101*24
Todo número se puede representar siempre con una mantisa
cuya parte entera es 1 (forma normalizada) sólo
necesitamos representar la parte fraccionaria.
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
16
Sobre la coma flotante…
ARQUITECTURA DE COMPUTADORES
El estándar permite definir además valores especiales para
representar ±∞, e incluso valores imposibles (0/0, etc) NaN.
El estándar define representaciones con mayor número de
bits: precisión doble (64 bits), extendida (80 bits)…
¡¡¡Importantes consideraciones al usar coma flotante!!!
Hay muchos números que no se pueden representar de
forma exacta (ejemplo: 0’7).
La precisión es muchísimo mayor entre 0 y 1.
Los números grandes no tienen precisión.
“¡Las comparaciones son odiosas!”
if (x == 0.5)
if (abs(x – 0’5) < error)
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
17
Representación de texto
ARQUITECTURA DE COMPUTADORES
Byte (B) = una “letra”
KiloByte (KB) = 1024 bytes = una página
MegaByte (MB) = 1024 KBs = un libro
GigaByte (GB) = 1024 MBs = una librería
TeraByte (TB) = 1024 GBs = una gran biblioteca
PetaByte (PB) = 1024 TBs = todos los libros de un país
ExaByte (EB) = 1024 PBs = todos los libros del mundo
ZettaByte (ZB) = 1024 EBs = …
YottaByte (YB) = 1024 ZBs = ¿todos los libros de la galaxia?
Estándares de representación de texto: ASCII, Unicode…
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
18
Representación de imagen
ARQUITECTURA DE COMPUTADORES
Mapas de bits:
Discretización mediante una cuadrícula de píxeles.
Resolución: número de columnas x número de filas.
Habitual en fotografía: JPG, BMP, GIF, ...
Representación vectorial:
Formar imagen a base de primitivas: rectas, círculos, ...
Facilitan edición, zoom, etc, y reducen tamaño, pero
imposible describir imágenes fotorealistas.
Fuentes de letras, CorelDraw, ...
Codificación de color:
Paletas de colores predefinidos.
Colores aditivos (RGB, ...).
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
19
Representación de sonido
ARQUITECTURA DE COMPUTADORES
Discretización de las variaciones de presión
del aire:
Eje X = tiempo.
Eje Y = amplitud (presión del aire).
Calidad CD:
Frecuencia de muestreo 44100Hz
(44100 muestras/segundo).
16 bits por muestra (65536 posibles valores de amplitud).
2 canales: stereo.
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
20
Representación de video
ARQUITECTURA DE COMPUTADORES
Ejercicio de cálculo de espacio (película en DVD):
Resolución imagen: 720x480 píxeles.
Color verdadero: 3 bytes por píxel.
30 imágenes por segundo (fps).
Duración de la película: 1h30’
Sonido en calidad 96KHz y 24 bits, con 6 canales (5.1) y 4
idiomas.
Cálculo espacio imagen: 720x480x3x30x90x60 ~ 156’4 GBs
Cálculo espacio sonido: 96000x3x6x4x90x60 ~ 34’7 GBs
Total ~ 191 GBs!!! (DVD = 4’7GBs)
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
INFORMÁTICA
21
Representación de video
ARQUITECTURA DE COMPUTADORES
Formatos de representación de vídeo: AVI, MPG, MOV,
Comentarios de: Curso 0: Arquitectura de Computadores (0)
No hay comentarios