Download Tema 08-2 - Alberto Enrique Cohaila Barrios

Document related concepts
no text concepts found
Transcript
ESPG
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
[email protected], [email protected], [email protected]
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
2
07/11/2008
Alberto E. Cohaila Barrios
rendimiento de losProf.
procesadores.
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.
07/11/2008
Prof. Alberto E. Cohaila Barrios
3
¿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.
07/11/2008
Prof. Alberto E. Cohaila Barrios
4
¿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.
07/11/2008
Prof. Alberto E. Cohaila Barrios
5
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.
07/11/2008
Prof. Alberto E. Cohaila Barrios
6
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.
07/11/2008
Prof. Alberto E. Cohaila Barrios
7
• 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.
07/11/2008
Prof. Alberto E. Cohaila Barrios
8
07/11/2008
Prof. Alberto E. Cohaila Barrios
9
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.
07/11/2008
Prof. Alberto E. Cohaila Barrios
10
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.
07/11/2008
Prof. Alberto E. Cohaila Barrios
Intel Core Duo
2 y 4 núcleos
11
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.
07/11/2008
Prof. Alberto E. Cohaila Barrios
Intel Core Duo
2 y 4 núcleos
12
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
07/11/2008
Prof. Alberto E. Cohaila Barrios
13
Demostración
• Video de Robotmovil 1
07/11/2008
Prof. Alberto E. Cohaila Barrios
14
Demostración
• Video de Robotmovil 2
07/11/2008
Prof. Alberto E. Cohaila Barrios
15
Sistema multiprocesador jerarquico
07/11/2008
Prof. Alberto E. Cohaila Barrios
16
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.
07/11/2008
Prof. Alberto E. Cohaila Barrios
17
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.
07/11/2008
Prof. Alberto E. Cohaila Barrios
18
Tipos de Lenguajes de Programación
Alto Nivel
Bajo Nivel
• Cercanos a la
forma de pensar
del programador.
• Cercanos a la
arquitectura de la
máquina.
07/11/2008
Máquina
•El único que la
circuitería de la
máquina es capaz
de interpretar.
•Sus instrucciones
se encuentran
codificadas en
binario.
Prof. Alberto E. Cohaila Barrios
Simbólico
• No son
directamente
interpretables por
la circuitería de la
máquina.
•Se codifican
mediante símbolos
alfanuméricos, de
puntuación,
paréntesis,
19
separadores, etc.
07/11/2008
Prof. Alberto E. Cohaila Barrios
20
Secuencia en bloques de la compilación y
linkeo del código máquina
07/11/2008
Prof. Alberto E. Cohaila Barrios
21
Jerarquía de traducción
07/11/2008
Prof. Alberto E. Cohaila Barrios
22
Fin
07/11/2008
Prof. Alberto E. Cohaila Barrios
23