of 45 /45
ARQUITECTURA DE COMPUTADORES ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA Curso 0: Arquitectura de Computadores Carlos Garre [email protected] 1

Curso 0: Arquitectura de Computadores - juegueahora.com · ARQUITECTURA DE COMPUTADORES ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORM ÁTICA Curso 0: Arquitectura de Computadores

Embed Size (px)

Text of Curso 0: Arquitectura de Computadores - juegueahora.com · ARQUITECTURA DE COMPUTADORES ESCUELA...

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Curso 0: Arquitectura de Computadores

Carlos Garre

[email protected]

1

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

ndice

Representacin de la Informacin

Introduccin a la Arquitectura de Computadores

Modelo Von Neumann

Jerarqua de Memoria

El Procesador

Dispositivos de Entrada/Salida

Arquitecturas Avanzadas

2

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Representacin de la Informacin

Codificacin:

El ordenador codifica toda clase de informacin utilizando nicamente dos valores:

0: ausencia de corriente elctrica.

1: corriente elctrica.

3

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Representacin de Nmeros

Es comn que trabajemos directamente con informacin numrica: contabilidad, calificaciones del mster, etc

Pero adems, el ordenador muchas veces trabaja implcitamente con nmeros: Cuando jugamos a un juego de ordenador, ste debe calcular

constantemente las coordenadas espaciales de todos los elementosde nuestro escenario 3D, y esas coordenadas se representan como vectores de nmeros reales.

Cuando escribimos un texto en Word, ste debe llevar un recuento del nmero de pginas, de la numeracin de los captulos, etc.

Cuando navegamos por Internet, el ordenador debe controlar las direcciones IP y los puertos TCP y controlar muchos otros nmeros que permiten la conexin entre dos mquinas (nmeros de secuencia, sumas de comprobacin, etc).

4

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Representacin de Nmeros

La forma de representar (codificar) los nmeros es diferente segn el dominio que queramos representar: Nmeros naturales:

Binario natural.

BCD.

Nmeros enteros:

Signo y Magnitud.

Representacin en complementos (Ca1 y Ca2).

Representaciones en exceso.

Nmeros reales:

Coma fija.

Coma flotante (estndar IEEE-754).

5

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Contando en binario

Hasta cunto podemos contar con los dedos de las manos?

6

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Contando en binario

7

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Conversin de binario a decimal

Base decimal:

345)10 = 3*102 + 4*101 + 5*100

Base B:

X)B = CNCN-1 C2C1C0 = C0*B0 + C1*B

1 + C2*B2 + + CN-1*B

N-1 + CN*B

N

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

8

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Definiciones y conceptos clave

Bit: una cifra en sistema binario. Puede ser 0 o 1.

Byte: secuencia de 8 bits.

Cul es el mayor nmero que podemos representar con un byte?

11111111)2 = 255)10

En general, con una secuencia de N bits podemos representar nmeros desde 0 hasta 2N-1 (2N valores diferentes)

9

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Conversin de decimal a binario

Mtodo de las divisiones sucesivas:1. Dividimos el nmero por la base (2), y obtenemos como resultado un

cociente y un resto de la divisin. Anotamos el resto.

2. Cogemos el cociente de la anterior divisin, y lo dividimos por la base (2). Anotamos el resto.

3. Continuamos el proceso hasta que el cociente es 1. Cuando llegamos a este punto, empezamos a escribir los bits del nmero convertido siguiendo este orden de izquierda (bit ms significativo) a derecha (bitmenos significativo):

1 cifra: ltimo cociente (siempre ser 1).

2 cifra: ltimo resto

3 cifra: penltimo resto

Y as sucesivamente hasta ubicar el ltimo bit (ms a la derecha), que ser el primer resto que anotamos.

10

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Conversin de decimal a binario

11

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Representacin de Nmeros Enteros

Cmo representar el signo (+/-) de un nmero si slo podemos usar ceros y unos?

Nos inventamos un convenio!

0 = +

1 = -

Representacin en Signo y Magnitud: por convenio, el primer bit es el signo, y el resto de bits codifican un nmero natural.

11101 Signo: 1 (-), Magnitud: 1101 (13).

11101)SyM = -13)10

Concepto clave! Separacin en dos campos: signo y magnitud.

12

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Representacin de Nmeros Reales

Cmo representamos la coma de un nmero real?

Separando en dos campos: parte entera y parte fraccionaria.

Ejemplo: 4 bits para parte entera y 4 para parte fraccionaria:

11011101 = 11011101 = 1313Problema: no podemos representar nmeros mayores que 15, mientras que en binario natural con 8 bits podramos hasta 255.

Solucin: dar ms bits a la parte entera?

11011101 = 11011101 = 5525

Nuevo problema: ahora slo podemos tener x0, x25, x5, o x75!

Conclusin:

Ms bits en la parte entera = nmeros ms grandes

Ms bits en la parte fraccionaria = nmeros ms precisos

13

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Representacin de Nmeros Reales

Entonces, cul es el mejor compromiso?

Un sistema que te permita mover la coma de izquierda a derecha segn convenga para cada nmero:

Coma fija vs coma flotante.

Notacin cientfica: forma habitual de representar nmeros muy grandes y/o nmeros con parte fraccionaria:

Un trilln = 1000000000000000000 = 1018

Dos milmillonsimas = 0000000002 = 2*10-9

Cualquier nmero se puede representar en notacin cientfica de diferentes formas:

14567 = 145670*100 = 14567*103 =

Un trilln = 01*1020 =

14

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Representacin de Nmeros Reales

En general:

X = M*10E

Donde: X: nmero a representar.

M: mantisa (nmero real).

E: exponente (nmero entero).

En realidad, podemos usar cualquier otra base:

X = M*BE

Ejemplo:

145670*100 = 145670*20 = 14567*104 ~ 1778199*213

15

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Representacin de Nmeros Reales

Representacin habitual de nmeros reales en el ordenador:

Formato estndar de coma flotante (IEEE-754) donde se establece cmo 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 nmero real, cmo lo representamos? mantisa normalizada.

11101 = 11101*20 = 11101*21 = = 11101*24

Todo nmero se puede representar siempre con una mantisa cuya parte entera es 1 (forma normalizada) slo necesitamos representar la parte fraccionaria.

16

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Sobre la coma flotante

El estndar permite definir adems valores especiales para representar , e incluso valores imposibles (0/0, etc) NaN.

El estndar define representaciones con mayor nmero de bits: precisin doble (64 bits), extendida (80 bits)

Importantes consideraciones al usar coma flotante!!!

Hay muchos nmeros que no se pueden representar de forma exacta (ejemplo: 07).

La precisin es muchsimo mayor entre 0 y 1.

Los nmeros grandes no tienen precisin.

Las comparaciones son odiosas!

if (x == 0.5)

if (abs(x 05) < error)

17

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Representacin de texto

Byte (B) = una letra

KiloByte (KB) = 1024 bytes = una pgina

MegaByte (MB) = 1024 KBs = un libro

GigaByte (GB) = 1024 MBs = una librera

TeraByte (TB) = 1024 GBs = una gran biblioteca

PetaByte (PB) = 1024 TBs = todos los libros de un pas

ExaByte (EB) = 1024 PBs = todos los libros del mundo

ZettaByte (ZB) = 1024 EBs =

YottaByte (YB) = 1024 ZBs = todos los libros de la galaxia?

Estndares de representacin de texto: ASCII, Unicode

18

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Representacin de imagen

Mapas de bits:

Discretizacin mediante una cuadrcula de pxeles.

Resolucin: nmero de columnas x nmero de filas.

Habitual en fotografa: JPG, BMP, GIF, ...

Representacin vectorial:

Formar imagen a base de primitivas: rectas, crculos, ...

Facilitan edicin, zoom, etc, y reducen tamao, pero imposible describir imgenes fotorealistas.

Fuentes de letras, CorelDraw, ...

Codificacin de color:

Paletas de colores predefinidos.

Colores aditivos (RGB, ...).

19

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Representacin de sonido

Discretizacin de las variaciones de presin

del aire:

Eje X = tiempo.

Eje Y = amplitud (presin del aire).

Calidad CD:

Frecuencia de muestreo 44100Hz

(44100 muestras/segundo).

16 bits por muestra (65536 posibles valores de amplitud).

2 canales: stereo.

20

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Representacin de video

Ejercicio de clculo de espacio (pelcula en DVD):

Resolucin imagen: 720x480 pxeles.

Color verdadero: 3 bytes por pxel.

30 imgenes por segundo (fps).

Duracin de la pelcula: 1h30

Sonido en calidad 96KHz y 24 bits, con 6 canales (5.1) y 4 idiomas.

Clculo espacio imagen: 720x480x3x30x90x60 ~ 1564 GBs

Clculo espacio sonido: 96000x3x6x4x90x60 ~ 347 GBs

Total ~ 191 GBs!!! (DVD = 47GBs)

21

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Representacin de video

Formatos de representacin de vdeo: AVI, MPG, MOV, ... La mayora son slo contenedores con informacin sobre:

Cmo se codifica la imagen (cdec de vdeo).

Cmo se codifica el sonido (cdec de audio).

Cdecs de vdeo: Compresin con prdida.

Keyframes + variaciones entre frames.

Se instalan en el Sistema Operativo.

DivX, xVid, QuickTime, WMV, ...

Cdecs de audio: Compresin con prdida.

Divisin en bandas de frecuencia modelo psicoacstico

MP3, Ogg, AAC, WMA...

22

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

ndice

Representacin de la Informacin

Introduccin a la Arquitectura de Computadores

Modelo Von Neumann

Jerarqua de Memoria

El Procesador

Dispositivos de Entrada/Salida

Arquitecturas Avanzadas

23

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Arquitectura de Computadores

Profesores del mster: la mayora del Departamento de Arquitectura y Tecnologa de Computadores.

Arquitectura: estudia la forma en que se deben disponer una serie de elementos bsicos (columnas, muros, ...) para el diseo de un edificio de unas determinadas caractersticas.

Arquitectura de computadores: estudia la forma en que se deben disponer una serie de elementos bsicos (que iremos viendo...) para el diseo de un computador de unas determinadas caractersticas.

Tecnologa de computadores: estudia el diseo de esos componentes bsicos (los arquitectos no se dedican a fabricar ladrillos...).

24

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Arquitectura de Computadores

25

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

ndice

Representacin de la Informacin

Introduccin a la Arquitectura de Computadores

Modelo Von Neumann

Jerarqua de Memoria

El Procesador

Dispositivos de Entrada/Salida

Arquitecturas Avanzadas

26

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Modelo Von Neumann

27

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Modelo Von Neumann

28

Memoria Principal: En ella se almacenan los datos e instrucciones necesarios para ejecutar los programas. Memoria principal = Datos + Instrucciones. Cada posicin de memoria tiene asociada una direccin.

Arquitectura Von Neumann: Una nica memoria.

Arquitectura Harvard: Dos memorias separadas: Datos, Instrucciones

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Modelo Von Neumann

29

Unidad Central de Proceso (CPU) En ella se ejecutan las instrucciones que se leen de la memoria. En el caso de un computador, normalmente se trata de un Microprocesador.

Microprocesador: Unidad central de proceso implementada sobre un circuito integrado formado por millones de transistores.

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Modelo Von Neumann

30

Unidad de Entrada/Salida: Permite la comunicacin entre el microprocesador y los perifricos. Perifricos de entrada: ratn, teclado, Perifricos de salida: monitor, impresora, Perifricos de entrada/salida: tarjeta de red, tarjeta de sonido,

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Modelo Von Neumann

31

Dispositivos de Memoria Secundaria: Son perifricos de entrada/salida. Permiten almacenar cantidades masivas de datos. Almacenan los datos que no se estn utilizando en ese momento. Diferentes niveles en funcin de su capacidad/velocidad. Ejemplos: disco duro, DVD, CD, pendrive, tarjeta SD,

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Modelo Von Neumann

32

Bus de Sistema: Mecanismo de comunicacin entre los componentes del computador.

Bus de Datos Circulan los datos que se transfieren entre dos componentes.

Bus de Direcciones Localiza la ubicacin de los datos dentro de una memoria o un perifrico.

Bus de Control Transmite las seales de control para coordinar las comunicaciones.

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

ndice

Representacin de la Informacin

Introduccin a la Arquitectura de Computadores

Modelo Von Neumann

Jerarqua de Memoria

El Procesador

Dispositivos de Entrada/Salida

Arquitecturas Avanzadas

33

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Jerarqua de Memoria

Ejecutar un programa es como leer un libro:

Tenemos una biblioteca llena de libros, de

la que escogeremos el que queremos leer.

El libro contiene toda la informacin con la que vamos a trabajar. Es imposible realizar la tarea de leer el libro sin tener el libro en la mano.

Para un programador slo existen dos tipos de memoria:

Memoria principal: contiene los datos con los que estamos trabajando en este momento (libro). En programacin: variables.

Memoria secundaria: contiene todos los posibles datos con los que podramos querer trabajar en algn momento (biblioteca). En programacin: ficheros en el disco duro.

34

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Jerarqua de Memoria

Aunque el programador pueda abstraerse normalmente de esto, en realidad no slo hay dos memorias. Fsicamente hay toda una serie de memorias dispuestas de forma jerrquica que facilitan el acceso a la informacin de forma eficiente.

El procesador es como un trabajador que realiza tareas sobre su mesa de trabajo. Imaginemos que es un carpintero

35

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Jerarqua de Memoria

El carpintero slo tiene una o dos piezas de madera en su mesa.

Cuando termina de trabajar con esas piezas, va a la tienda a comprar ms madera.

Si la tienda tiene las piezas en stock, el carpintero slo ha perdido un par de horas.

Si la tienda no tiene stock, hay que esperar a que las traiga el distribuidor.

o Si el distribuidor tiene las piezas, perdemos uno o dos das.

o Si no tiene las piezas, hay que fabricarlas y podemos perder varios das.

Cmo evitar estos retrasos? Teniendo todas las piezas de la fbrica en la mesa!! evidentemente, es imposible

36

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Jerarqua de Memoria

La jerarqua de memoria habitual en los computadores se puede resumir en 4 niveles:

37

VelocidadPrecio/bit Capacidad

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Registros

Se encuentran fsicamente dentro del procesador.

Contienen los datos con los que el procesador est operando en un momento dado (A = B + C).

Habitualmente son muy pocos (entre 1 y 32).

Son las piezas de la mesa de trabajo.

El programador normalmente no es consciente de que existen los registros. Son gestionados automticamente por el

compilador.

38

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Memoria Principal

Se encuentra fsicamente cerca del procesador, pero es un mdulo hardware diferente.

Contienen todos los datos del programa que el procesador est ejecutando: instrucciones + datos.

Es una memoria de acceso aleatorio (RAM): el tiempo de acceso a un dato es independiente de su ubicacin.

Los datos se encuentran en direcciones numeradas.

El tamao habitual en la actualidad es de unos pocos GBs.

Las variables que maneja el programador se almacenan en memoria principal.

39

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Memoria Cach

Problema: el acceso a la memoria principal es lento.

Solucin: tener un stock de piezas haciendo una previsin de las que podremos necesitar.

La memoria cach es una memoria inteligente que predice qu datos puede necesitar el procesador en breve. Los datos que predice los va trayendo desde memoria principal sin que el procesador se entere y, cuando el procesador necesita ese dato, lo puede obtener de la cach a gran velocidad.

La cach se gestiona automticamente a nivel de hardware.

40

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Memoria Cach

La cach funciona en base a dos principios:

Localidad temporal: cuando se accede a un dato es muy probable que ese dato se vuelva a utilizar en breve la cach mantiene los datos solicitados por la CPU en stock durante un tiempo.

Localidad espacial: cuando se accede a un dato es muy probable que en breve se vaya a acceder a datos consecutivos cuando la CPU solicita un dato que se encuentra en la direccin N, la cach traer de memoria principal adems las direcciones N+1, N+2 Las instrucciones de un programa se almacenan secuencialmente.

Es muy habitual trabajar con datos almacenados en vectores (arrays), que se almacenan secuencialmente.

41

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Memoria Cach

El diseo de una cach implica tomar varias decisiones: Organizacin: cmo se ubican los datos en la cach en relacin a su

localizacin en memoria.

Polticas de extraccin y escritura: qu datos de memoria copiar a la cach y en qu momento. tratamiento de los fallos.

Poltica de reemplazo: qu dato borrar de la cach cuando no queda espacio libre.

Etc

En la actualidad, se utilizan varios niveles de cach(habitualmente 3) siguiendo el mismo principio jerrquico.

Tamaos habituales en la actualidad (ejemplo i7 quad): Cach L1: 4 x 2 x 32 KBs

Cach L2: 4 x 256 KBs

Cach L3: 8 MBs

42

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Memoria Secundaria

Es el almacn masivo en el que se encuentran todos los posibles programas y datos con los que potencialmente podremos trabajar en algn momento.

Cuando ejecutamos un nuevo programa, hay que moverlo desde memoria secundaria hacia memoria principal.

Tambin se puede dividir en varios niveles, aunque bsicamente tenemos los dispositivos internos (discos duros) y los externos reemplazables (CD, DVD, SD, PenDrive).

Tamaos actuales: disco duro (1 TB), CD (700 MBs), DVD (47GBs), PenDrive (16 GBs)

El acceso a memoria secundaria puede ser gestionado automticamente por el sistema operativo, o bien bajo

demanda por el usuario/programador.

43

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Jerarqua de Memoria

Con todo lo que hemos visto, tenemos una jerarqua de memoria ms completa:

44

VelocidadPrecio/bit Capacidad

ARQUITECTURA DE COMPUTADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Curso 0: Arquitectura de Computadores

Carlos Garre

[email protected]

45