Tema 08: Arquitectura y programación de los multiprocesadores

23
07/11/2008 Prof. Alberto E. Cohaila Barrios 1 Tema 08: Arquitectura y programación de los multiprocesadores MAESTRÍA EN INGENIERIA DE SISTEMAS E INFORMÁTICA ADMINISTRACIÓN DE TECNOLOGÍAS DE INFORMACIÓN E S P G E S P G [email protected], [email protected], [email protected] Prof: Alberto E. Cohaila Barrios

description

UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN. E S P G. MAESTRÍA EN INGENIERIA DE SISTEMAS E INFORMÁTICA ADMINISTRACIÓN DE TECNOLOGÍAS DE INFORMACIÓN. Tema 08: Arquitectura y programación de los multiprocesadores. Prof: Alberto E. Cohaila Barrios. - PowerPoint PPT Presentation

Transcript of Tema 08: Arquitectura y programación de los multiprocesadores

Page 1: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 1

Tema 08: Arquitectura y programación de los multiprocesadores

MAESTRÍA EN INGENIERIA DE SISTEMAS E INFORMÁTICA ADMINISTRACIÓN DE TECNOLOGÍAS DE INFORMACIÓN

E S P GE S P G

[email protected], [email protected], [email protected]

Prof: Alberto E. Cohaila Barrios

Page 2: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 207/11/2008 Prof. Alberto E. Cohaila Barrios 2

Procesadores Multinucleo

• La tecnología actual de fabricación de procesadores esta llegando a sus límites.

• Cada vez la miniaturización de los componentes del procesador es más difícil (el límite de construcción del uP del silicio ronda los 15-20nm, donde el silicio empieza a ceder por falta de consistencia, ya se ha llegado a los 65nm), el problema de la generación de calor a aumentado, produciendo que sea más difícil aumentar la frecuencia principal del procesador.

• Todos estos problemas dificultan el aumento de rendimiento de los procesadores.

Page 3: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 307/11/2008 Prof. Alberto E. Cohaila Barrios 3

Procesadores Multinucleo

• Los procesadores actuales no sobrepasan los 3.8 GHz (obtenido por el Pentium 4 Prescott), necesitan grandes disipadores y ventiladores porque generan mucho calor.

• No se podía continuar fabricando procesadores de la misma manera, se estaba llegando a un "estancamiento"; era necesario tomar otro camino, utilizar otra variable que hiciera que el rendimiento del procesador aumentará.

• Entonces, basándose en el procesamiento en paralelo, se empezaron a construir los procesadores multi-núcleo.

• El primer procesador multinúcleo en el mercado fue el IBM Power 4 en el año 2000.

Page 4: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 407/11/2008 Prof. Alberto E. Cohaila Barrios 4

¿Cómo trabajan?

• Los procesadores multi-núcleo es un procesador que contiene dentro del chip a varios núcleos o "cerebros".

• La mayoría de los procesadores son mono-núcleo, o sea tienen un solo cerebro.

• Mientras un procesador mono-núcleo tiene un solo cerebro para ejecutar procesos, un procesador multi-núcleo puede repartir los procesos entre sus varios cerebros para su posterior ejecución.

Page 5: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 507/11/2008 Prof. Alberto E. Cohaila Barrios 5

¿Cómo trabajan?

• Las aplicaciones que sacan mejor provecho de estos procesadores multinúcleo son aquellas que pueden generar muchos hilos de ejecución (thread) como las aplicaciones de audio/video, cálculo científico, juegos, tratamiento de gráficos en 3D, etc.

• Estos procesadores pueden ejecutar varias de estas aplicaciones al mismo tiempo (concurrencia).

• Solo cuando uno ejecute una sola aplicación que no sea paralelo (no se pueda descomponer en hilos) es cuando no se aprovecha el potencial de procesamiento que tienen estos procesadores.

Page 6: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 607/11/2008 Prof. Alberto E. Cohaila Barrios 6

Procesamiento en Paralelo

• Los procesadores multinúcleo se basaron en los sistemas distribuidos, la computación paralela, y las tecnologías como el Hyperthreading; que mostraban como dividir el trabajo entre varias unidades de ejecución.

• El procesamiento en paralelo es la división de una aplicación en varias partes para que sean ejecutadas a la vez por diferentes unidades de ejecución.

• El procesamiento en paralelo se utiliza en Computación Paralela y la Computación Distribuida.

Page 7: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 707/11/2008 Prof. Alberto E. Cohaila Barrios 7

HyperThreading

• Esta tecnología fue creada por Intel, para los procesadores Pentium 4 más avanzados. El Hyperthreading hace que el procesador funcione como si fuera dos procesadores. Esto fue hecho para que tenga la posibilidad de trabajar de forma multihilo (multithread) real, es decir pueda ejecutar muchos hilos simultáneamente.

• Un procesador con la tecnología Hyperthreading tiene un 5% más de transistores que el mismo procesador sin esa tecnología.

Page 8: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 807/11/2008 Prof. Alberto E. Cohaila Barrios 8

• Los dos procesadores lógicos, que posee el procesador hyperthreading, tienen su propio estado de la arquitectura: registros de control, registros de datos, registros de depuración, etc. y el APIC (controlador avanzado de interrupción programable).

• Los dos procesadores lógicos comparten la memoria caché, la interfaz del bus del sistema, etc.

Page 9: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 907/11/2008 Prof. Alberto E. Cohaila Barrios 9

Page 10: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 1007/11/2008 Prof. Alberto E. Cohaila Barrios 10

Arquitectura del procesador AMD Athlon

•Note que se ha quitado el controlador de memoria al Chipset y se lo ha introducido directamente al procesador, eso hace que se comunique con la memoria directamente a 12.8 Giga bytes/ segundo, con esto se logra más ancho de banda.•Un bus de datos HyperTransport comunica al resto del sistema, este bus es bidireccional que tiene una velocidad de 8 Giga bites/segundo por cada canal.•Son 16 Giga bytes por segundo, más 12.8 son 28.8 de ancho de banda para comunicarse con el resto del sistema.•No se necesitan tanta frecuencia de trabajo del procesador porque todo se distribuye al sistema con una velocidad enorme.

Page 11: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 1107/11/2008 Prof. Alberto E. Cohaila Barrios 11

Core Duo

• Procesador de doble núcleo (core).• Cada núcleo es un procesador lógico.• Acceden a la cache un nucleo a la vez.• Los procesadores Core Duo es una versión para los

portátiles, implementa 2MB de caché de memoria compartida para ambos núcleos.

• Fabricados con la tecnología nanometrica de 65nm.• Su velocidad esta dentro de 1.20 hasta 2.33Ghz.• Bus del sistema (FSB) va desde 533Mhz hasta

667Mhz.• Trabajan hasta 32 bits• Consumo de energía es desde 9.0w hasta 31w y de

mejor rendimiento/energía.

Intel Core Duo

2 y 4 núcleos

Page 12: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 1207/11/2008 Prof. Alberto E. Cohaila Barrios 12

Core 2 Duo

• Procesador de cuatro núcleos.• Cada núcleo es un procesador lógico en arquitectura

paralela.• Cada nucleo accede al cache al mismo tiempo.• Fabricados con la tecnología nanometrica de 65nm.• Su velocidad esta dentro de 1.20 hasta 2.93Ghz (x

2).• Aparecen a comienzos del 2006.• AMD (Avanz micro Dispositive) posee procesadores

Phenom de 3 y 4 núcleos.• Debido a la complejidad de fabricación de núcleos a

mas de 3 Ghz, la tendencia es insertar mayor cantidad de núcleos en un procesador.

Intel Core Duo

2 y 4 núcleos

Page 13: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 1307/11/2008 Prof. Alberto E. Cohaila Barrios 13

Ejemplos de Multiprocesamiento

• Robot móvil que emplea multiprocesamiento para ejecutar múltiples tareas en paralelo a tiempo real.

• Los 4 procesadores se comunican entre si mediante Cluster de datos

Page 14: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 14

Demostración

• Video de Robotmovil 1

07/11/2008 Prof. Alberto E. Cohaila Barrios 14

Page 15: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 15

Demostración

• Video de Robotmovil 2

Page 16: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 1607/11/2008 Prof. Alberto E. Cohaila Barrios 16

Sistema multiprocesador jerarquico

Page 17: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 1707/11/2008 Prof. Alberto E. Cohaila Barrios 17

Revisión de Lenguajes de alto nivel y de bajo nivel

Programas y/o rutinas• Los computadores ejecutan programas.• Programa: secuencia de operaciones conducentes a resolver un

problema• determinado.• Características de los programas

– Están compuestos por secuencias de instrucciones o sentencias.– Se escriben utilizando una notación formal conveniente.– Pueden ser escritos por personas (programadores), o bien pueden ser

generados automáticamente mediante una herramienta adecuada.• Un programa en ejecución se encuentra cargado en memoria

principal.• Lenguaje de programación: una notación formal para describir

algoritmos o funciones que serán ejecutadas por un computador.

Page 18: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 1807/11/2008 Prof. Alberto E. Cohaila Barrios 18

Tipos de lenguajes de programación

• Lenguajes de alto nivel: cercanos a la forma de pensar del programador.

• Lenguajes de bajo nivel: cercanos a la arquitectura de la máquina.

• Lenguaje máquina: el único que la circuitería de la máquina es capaz de interpretar.– Sus instrucciones se encuentran codificadas en binario.

• Lenguajes simbólicos: no son directamente interpretables por la circuitería de la máquina.– Se codifican mediante símbolos alfanuméricos, de puntuación,

paréntesis, separadores, etc.

Page 19: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 1907/11/2008 Prof. Alberto E. Cohaila Barrios 19

Alto NivelAlto Nivel Bajo NivelBajo Nivel MáquinaMáquina

Tipos de Lenguajes de ProgramaciónTipos de Lenguajes de Programación

• Cercanos a la Cercanos a la forma de pensar forma de pensar del programador.del programador.

• Cercanos a la Cercanos a la arquitectura de la arquitectura de la máquina.máquina.

• El único que la El único que la circuitería de la circuitería de la máquina es capaz máquina es capaz de interpretar.de interpretar.• Sus instrucciones Sus instrucciones se encuentran se encuentran codificadas en codificadas en binario.binario.

• No son No son directamente directamente interpretables por interpretables por la circuitería de la la circuitería de la máquina.máquina.• Se codifican Se codifican mediante símbolos mediante símbolos alfanuméricos, de alfanuméricos, de puntuación, puntuación, paréntesis, paréntesis, separadores, etc.separadores, etc.

SimbólicoSimbólico

Page 20: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 2007/11/2008 Prof. Alberto E. Cohaila Barrios 20

Page 21: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 2107/11/2008 Prof. Alberto E. Cohaila Barrios 21

Secuencia en bloques de la compilación y linkeo del código máquina

Page 22: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 2207/11/2008 Prof. Alberto E. Cohaila Barrios 22

Jerarquía de traducción

Page 23: Tema 08:  Arquitectura y programación de los multiprocesadores

07/11/2008 Prof. Alberto E. Cohaila Barrios 23

Fin