Title: Sample Title Slide
1UNIVERSIDAD 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
acohailab_at_unjbg.edu.pe, acohailab_at_hotmail.com,
acohailab_at_speedy.com.pe
2Procesadores 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.
2
07/11/2008
Prof. Alberto E. Cohaila Barrios
3Procesadores 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.
3
07/11/2008
Prof. Alberto E. Cohaila Barrios
4Có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.
4
07/11/2008
Prof. Alberto E. Cohaila Barrios
5Có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.
5
07/11/2008
Prof. Alberto E. Cohaila Barrios
6Procesamiento 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.
6
07/11/2008
Prof. Alberto E. Cohaila Barrios
7HyperThreading
- 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.
7
07/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.
8
07/11/2008
Prof. Alberto E. Cohaila Barrios
99
07/11/2008
Prof. Alberto E. Cohaila Barrios
10Arquitectura 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.
10
07/11/2008
Prof. Alberto E. Cohaila Barrios
11Core 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.
11
07/11/2008
Prof. Alberto E. Cohaila Barrios
12Core 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.
12
07/11/2008
Prof. Alberto E. Cohaila Barrios
13Ejemplos 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
13
07/11/2008
Prof. Alberto E. Cohaila Barrios
14Demostración
14
07/11/2008
Prof. Alberto E. Cohaila Barrios
15Demostración
16Sistema multiprocesador jerarquico
16
07/11/2008
Prof. Alberto E. Cohaila Barrios
17Revisió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.
17
07/11/2008
Prof. Alberto E. Cohaila Barrios
18Tipos 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.
18
07/11/2008
Prof. Alberto E. Cohaila Barrios
19Tipos de Lenguajes de Programación
Bajo Nivel
Simbólico
Máquina
Alto Nivel
- Cercanos a la forma de pensar del programador.
- Cercanos a la arquitectura de la máquina.
- El único que la circuitería de la máquina es
capaz de interpretar. - Sus instrucciones se encuentran codificadas en
binario.
- 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.
19
07/11/2008
Prof. Alberto E. Cohaila Barrios
2020
07/11/2008
Prof. Alberto E. Cohaila Barrios
21Secuencia en bloques de la compilación y linkeo
del código máquina
21
07/11/2008
Prof. Alberto E. Cohaila Barrios
22Jerarquía de traducción
22
07/11/2008
Prof. Alberto E. Cohaila Barrios
23