Sie sind auf Seite 1von 45

Instituto Tecnolgico Superior de Teziutln

ARQUITECTURAS MULTINCLEO Y MULTIHILOS


PRESENTADO POR:
DANIEL GARCA ARELLANO

NO. DE CONTROL:
14TE0003*

LICENCIATURA EN:
INGENIERA INFORMATICA
PROFESOR (A):
ING. YASSER MARN LOMBARD
Teziutln, Puebla; Enero 2016

Arquitecturas Multi-ncleo

Las arquitecturas multi-ncleo se referen a microprocesadores que combinan


dos o ms ncleos independientes en un solo paquete circuito integrado,
los cuales trabajan a la misma frecuencia. En general, los microprocesadores
multi-ncleos permiten que un dispositivo computacional exhiba una cierta
forma del paralelismo a nivel de hebras sin incluir mltiples microprocesadores
en paquetes fsicos separados.
En la figura 1 se ilustra de manera simplifcada la arquitectura de un procesador
multi- ncleo.

Cach L2 compartida

Cach L1

Cach L1

Cach L1

P1

P2

Pn

Figura 1. Arquitectura de un procesador multi-ncleo.

2.1 Taxonoma de computadoras paralelas

Existen diferentes taxonomas [5] para clasifcar las arquitecturas paralelas


existentes, una de las ms viejas y popular es la de Flynn.
2.1.1
La

Clasificacin de Flynn

clasifcacin

Flynn

se

basa

en

dos

aspectos:
1. Instruccin.
2. Datos.
Los datos son elementos que se manipulan de acuerdo a la instruccin.
Dependiendo del nmero de instrucciones a ejecutar y datos a manipular
simultneamente, Flynn hace la siguiente clasificacin. El ms simple de estos
es nuestra propia computadora secuencial, donde una instruccin solo manipula
un dato a la vez. Flynn llama a este tipo de sistema una

sola instruccin, un solo dato (SISD, del ingls Single Intruction Single Data). En
la figura 2
se ilustra el modelo SISD.

Dato

Procesa
Instruccin

Resultado

dor

Figura 2. Modelo SISD.

El sistema de una sola instruccin, mltiple dato (SIMD, del ingls Single
Instruction Multiple data) es un sistema en el que la misma instruccin manipula
diferentes datos en paralelo.
de

procesadores

Aqu

el

nmero

de

trabajando

simultneamente. En la figura 3 se ilustra el modelo


SIMD.

datos

es

el

nmero

Dato 1

Instruccin

Procesador 1

Resultado 1

Dato 2
Procesador 2

Resultado 2

Dato 3

Procesador 3

Resultado 3

Figura 3. Modelo SIMD.

Flynn tambin explica el sistema de mltiple instruccin, un solo dato (MISD, del
ingls Multiple Instruction Single Data), un modelo terico de una maquina que
realiza un nmero de operaciones diferentes con el mismo dato. En la figura 4 se
ilustra el modelo MISD.

Instruccin 1
Procesador 1

Resultado 1

Dato

Instruccin 2
Procesador 2

Resultado 2

Instruccin 3

Procesador 3

Resultado 3

Figura 4. Modelo MISD.

El modelo mltiple instruccin, mltiple dato (MIMD, del ingls Multiple


Instruction Multiple Data)
un

sistema

que

se refere a un sistema multiprocesador, que es

tiene mltiples procesadores y capaz de trabajar

independientemente y producir resultados para el sistema global. Cada


procesador es capaz de ejecutar una instruccin diferente con un dato

diferente. En la figura 5 se ilustra el modelo


MIMD.

Instruccin 1

Procesad
Dato 1

Resultado 1

or 1

Instruccin 2

Procesad
Dato 2

Resultado 2

or 2

Instruccin 3

Procesad
Dato 3

Resultado 3

or 3

Figura 5. Modelo MIMD.

2.1.2

Modelo de mquina de acceso aleatorio

paralelo
En el modelo de mquina de acceso aleatorio paralelo (PRAM, del ingles Parallel
Random Access Machine) [5], todos los procesadores estn conectados en
paralelo con la memoria global. Esta memoria es compartida con todos los
procesadores, como se muestra en la fgura 6. A esto se le conoce tambin
como modelo de memoria compartida. Todos los procesadores trabajan
sncronamente con un reloj comn. Cada procesador es capaz de acceder
(lectura/escritura) a la memoria. La comunicacin entre procesadores es a
travs de la memoria. Esto signifca que el dato de un procesador Pi es
comunicado a otro procesador Pj siguiendo los pasos siguientes:
1. El procesador Pi escribe el dato en la memoria global.
2. El procesador Pj lee el dato de la memoria global.

Memoria compartida

P1

P2

Pn

Figura 6. Modelo PRAM.

En el modelo PRAM existen 4 tipos diferentes de arquitecturas, dependiendo la


capacidad de que ms de un procesador pueda leer/escribir a una localidad
de memoria, como se aprecia en la fgura 7.
1. Lectura exclusiva/escritura exclusiva PRAM (EREW).
2. Lectura concurrente/escritura exclusiva PRAM (CREW).
3. Lectura exclusiva/escritura concurrente PRAM (ERCW).
4. Lectura concurrente/escritura concurrente PRAM (CRCW).

PRAM

EREW

CREW

ECR

ERCW

PCR

CRCW

ACR

Figura 7. Modelos de PRAM.

El modelo PRAM de lectura exclusiva/escritura exclusiva permite que en un


instante dado solo un procesador pueda leer/escribir a una localidad de
memoria. Por lo tanto, la lectura o escritura simultnea a una localidad de

memoria por ms de un procesador no es permitido. El modelo CREW-PRAM


permite una lectura concurrente a una localidad de memoria por ms de un
procesador, pero no permite una escritura concurrente. El modelo ERCW-PRAM
solo permite escritura concurrente. El modelo ms efciente es el CRCW-PRAM ya
que permite una lectura concurrente, lo mismo que una escritura concurrente a
una localidad de memoria. Cuando uno o ms procesadores intentan leer el
contenido de una localidad de memoria concurrentemente, se asume que todos
los procesadores tienen xito en su lectura. Sin embargo, cuando ms de un
procesador intenta escribir a la misma localidad de memoria concurrentemente,
se presenta un conflicto que se debe resolver apropiadamente. Tres mtodos
diferentes sugeridos para resolver el conflicto, son:
1. Resolucin de conflicto por igualdad (ECR).
2. Resolucin de conflicto por prioridad (PCR).
3. Resolucin de conflicto arbitrario (ACR).
En el caso de ECR, se asume que el procesador tiene una escritura satisfactoria,
solo si todos los procesadores intentaron escribir el mismo valor en la localidad
de memoria. En PCR se asume que cada procesador tiene un nivel de
prioridad. Cuando ms de un procesador

intenta escribir a la misma localidad de memoria simultneamente, el


procesador con mayor prioridad es el que escribe. En ACR se asume que
entre los procesadores que intentan escribir simultneamente, solo uno de
ellos logra escribir.
2.2

Microprocesador Intel core 2 quad

El 2 de noviembre de 2006 se lanz al mercado la serie de procesadores Intel


Core 2 Quad con cuatro ncleos [22], asegurando ser un 65% ms rpido que los
Core 2 Duo disponibles en ese entonces. En la figura 8 se ilustra la memoria
cach nivel 2 el microprocesador Intel Core 2 Quad.
Inicialmente [22], estos procesadores fueron producidos con el proceso de
manufactura de
65 nanmetros (ncleo Kentsfeld), con frecuencias que van desde los 2.4 GHz
hasta los 3
GHz y con un bus de la parte frontal (FSB, del ingls Front Side Bus) de entre
1066 y 1333
Mhz y una memoria cach L2 de 8 MB (2x4 MB). Posteriormente, se redujo el
proceso de fabricacin a 45 nanmetros, creando el ncleo Yorkfield que, al
igual que su antecesor, corresponde a 2 ncleos Wolfdale bajo el mismo
empaque. Sus frecuencias van desde los
2.53 Ghz hasta los 3.2 Ghz, su FSB va desde los 1333 hasta los 1600 Mhz y su
cach L2 es de 12 MB (2x6 MB).

El procesador Intel quad-core tiene dos ncleos Conroe en un solo encapsulado


donde cada ncleo Conroe es una unidad de doble ncleo, estos dos ncleos
Conroe se comunican entre
s a travs de bus del sistema.

Ncleo 4

Cach L2
Ncleo 3

Ncleo 2

Ncleo 1

Cach L2

Figura 8. Memoria cach L2 en Intel Core 2 Quad.

El microprocesador Core 2 Quad [23] est basado en la arquitectura de


procesadores Dual
Cores,

con

las

caractersticas

principales

siguientes:

Ejecucin dinmica.

Cach ms rpida.

Acceso rpido a memoria.

Ejecucin
entrega

dinmica

de

extendida.

Ejecucin

efciente

debido

la

ms instrucciones por ciclo de reloj. Cada ncleo puede realizar

hasta 4 instrucciones simultneamente.


Cach dinmica avanzada.
cada

ncleo

Asignacin dinmica de la cach

L2 para

de procesador basado en la carga de trabajo. Esto reduce

signifcativamente la latencia en el uso frecuente de los datos y mejora el


desempeo.

La

cach

L2

compartida

permite

que

cada

ncleo

utilice

dinmicamente hasta el 100 % de los 4 MB disponible. En la fgura 9 se


ilustra la cach dinmica de Intel.
Acceso rpido a memoria. Optimiza el ancho de banda en el uso de datos del
subsistema de memoria por la aceleracin en la ejecucin fuera de orden. El
dato puede ser movido de la memoria del sistema a la cach L2 rpidamente y
con ello avanzando en la ejecucin. Esto
mantiene lleno el pipeline, que mejora el rendimiento y desempeo en las
instrucciones.

L2 Compartida
Decrementa
el trfico

Dinmicamente
Bi-Direccional

L1 Cach

Ncleo 1

L1 Cach

Ncleo 2

Figura 9. Cach dinmica de Intel.

2.3

Microprocesador Intel Core i7

El microprocesador Intel core i7, considerado como el mejor microprocesador


del planeta para computadoras de escritorio es una arquitectura mejorada y
optimizada del core 2 quad, ya que en ste, los ncleos se comunican entre s
directamente. Adems tiene 3 niveles de memoria cach, en el nivel L1
cuenta con 32 KB de cach para datos y 32 KB para instrucciones, en el
nivel L2 cuenta con 256 KB de cach compartida para datos e
instrucciones, mientras que en el nivel L3 puede manejar hasta 8 MB tambin
compartida. Este microprocesador cuenta con 4 ncleos fsicos, que al
virtualizar sus actividades, los convierte en 8 ncleos lgicos, es decir el
sistema operativo identifca 8 unidades de procesamiento, esto permite al
programador desarrollar sistemas paralelos con 8 entidades paralelas. Su
interconexin es califcada como dinmica y compartida, y la tecnologa
multitarea simultnea (SMT, del ingls Simultaneously MultiThreading) es
una de sus nuevas cualidades [27].
En la fgura 10 se muestra la memoria cach nivel 3 del microprocesador Intel
Core i7. En aplicaciones multitarea es rpida, debido a que combina la
tecnologa turbo amplifcador de Intel (ITBT, del ingls Intel Turbo Boost
Technology) y la tecnologa hiper-hebra de Intel (IHTT, del ingls Intel HyperThreading Technology), que maximiza el desempeo dividiendo la carga de
trabajo.

Controlador de memoria integrada - 3


Canales DDR3

cl N

cl N

cl N

N
cl

Cach nivel 3 compartida

Figura 10. Memoria cach L3 en Intel Core


i7.

La arquitectura de 45 nm del Core i7 [27] proveniente del cdigo


Nehalem, est
conformada por 731 millones de transistores, 89 millones menos que la
arquitectura Penryn

que utilizaba 12 MB para cach combinado en el L2 a tan slo 8 MB combinado


para cach L3. Adems el Core i7 tiene una nueva particularidad: poseer Silicio
(Si) como elemento conductor, el elemento Hafnio (Hf) se ha convertido en la
nueva

capa

semiconductora,

pues

segn

las

investigaciones

de

Intel

Corporation, este material reduce el calor y por ende el consumo de energa.


Esta cantidad de unidades lgicas ahora son aprovechados en la cach y con
esto aumenta el paralelismo de las unidades de ejecucin en el chip. En la fgura
11 se
ilustra la interconexin interna del microprocesador Intel
Core i7.

Controlador

Controlador de Memoria
Controlador de Memoria

Memoria

Memoria

I/O

Procesador 1

Procesador 2

Procesador 3

M
em
ori
a

Procesador 4

M
em
ori
a

Controla
dor de
Memori
a

Controlador

Controla
dor de
Memori
a

I/O

Figura 11. Interconexin interna del microprocesador Core i7.

Una de sus novedades es que ahora la unidad de deteccin de bucles se ha


colocado detrs de las etapas de decodificacin de instrucciones. La capacidad
actual de almacenamiento llega a los 28 micro-operaciones.
Los investigadores de Intel lograron perfeccionar el modo de entrada para el
acceso de memoria cach a travs del nuevo esquema acceso no uniforme a
memoria (NUMA, del ingls Non-Uniform Memory Access) lo que en el Core
2 Duo era casi imposible de conseguir, movimientos como los saltos de reloj
de una manera ms sincronizada [27].

Caractersticas

del

procesador

Core i7
De acuerdo a [24] el procesador Core i7 presenta las siguientes
caractersticas:
Cuatro unidades de procesamiento. Provee cuatro unidades de ejecucin
independientes en un solo procesador. Los cuatro ncleos de procesamiento
dedicado ayuda a que el sistema operativo y aplicaciones se ejecuten de una
forma muy eficiente.
Tecnologa sper-tarea. Permite ejecutar dos tareas por ncleo fsico,
haciendo un total de
8 tareas para cmputo masivo. Con esta tecnologa se ejecuta mas aplicaciones
en paralelo, haciendo ms en menos tiempo.
Tecnologa

de

turbo

amplificacin.

Incrementa

dinmicamente

la

frecuencia

del procesador conforme es necesario, tomando ventaja del

calentamiento y potencia de procesador cuando opera por debajo de los lmites


especifcados. Consiguiendo un mejor desempeo automtico, cuando ms se
necesita.
Cach rpida. Se encuentra en el ltimo nivel de cach. Habilita efciente y
dinmicamente la asignacin

de memoria para los

cuatro

ncleos

del

procesador para manipulacin y almacenamiento eficiente de los datos.


Ruta

de interconexin

rpida.

Es un sistema de interconexin que

incrementa el ancho de banda y con baja latencia, logrando una velocidad alta
de transferencia de datos de 25.6
GB/s.

Controlador

de

interna

tres canales DDR3 de 1066 Mhz, ofreciendo un desempeo en

con

memoria

integrada.

Es un controlador de memoria

memoria de hasta 25.6 GB/s. Combinado con procesadores de algoritmos


eficientes de pre-bsqueda, este controlador de memoria disminuye la latencia y
aumenta el ancho de banda, entregando un desempeo asombroso en
aplicaciones donde se manipulan muchos datos.
HD avanzado. Incluye un conjunto de instrucciones SIMD (SSE, del ingls
Streaming SIMD Extensions 4), mejorando signifcativamente el ancho banda en
multimedia y aplicaciones de computo intensivo. Las instrucciones SSE de 128
bits son enviadas en una tasa de rendimiento especfco por ciclo de reloj,
permitiendo un nuevo nivel

de procesamiento efciente con aplicaciones SSE4

optimizado.
Sensor

digital

de

temperatura

(DTS,

del

ingls

Digital

Thermal

Sensor). Proporciona ms efciencia al procesador y la plataforma de control


trmico un sistema acstico, el DTS continuamente
cada

ncleo.

La

habilidad

de

monitorear

mide

la

temperatura

de

continuamente

y detectar la variacin de temperatura del procesador

permite activar el sistema de ventiladores, que giran de acuerdo a la necesidad


para mantener fresco el sistema. La incorporacin de esta tecnologa reduce la
emisin de ruido de la computadora personal (PC, del ingles Personal Computer).
Ejecucin dinmica. Mejora la velocidad y efciencia de ejecucin, entregando
ms instrucciones por ciclo de reloj. Cada ncleo puede ejecutar hasta
cuatro instrucciones simultneamente.
Acceso

rpido

memoria.

Mejora

el

desempeo

del

sistema,

optimizando el uso disponible del ancho de banda de datos del subsistema de


memoria y reduciendo efectivamente la latencia a acceso a memoria.

2.4
El

Microprocesador AMD Opteron de cuatro ncleos


Opteron

es

un

AMD

con

arquitectura

x86

[26]

de

la

lnea

de

procesadores para servidores, fu el primer procesador que se le implement el


conjunto de instrucciones de la arquitectura AMD64. Este procesador sali al
mercado el 22 de abril de 2003 con ncleo SledgeHarmmer, para competir en el
mercado de procesadores para servidores, particularmente en el mismo
segmento del procesador Intel Xeon. Los procesadores basados en la microarquitectura AMD K10 fueron anunciados el 10 de septiembre de 2007,
destacando el procesador de cuatro ncleos.
El procesador AMD Opteron tercera generacin con proceso de manufactura de
65 nm est diseado para un desempeo ptimo en aplicaciones muti-hebras.
Este diseo se caracteriza por tener cuatro ncleos en solo chip, que aumenta la
efciencia en los datos compartidos. Adems de una estructura de memoria
cach mejorada (64 KB de datos cach y 64 KB de cach L1 de instrucciones,
512 KB de L2 cach por cada ncleo y 2 MB de cach L3 por CPU) y un

controlador de memoria integrada. En la fgura 12 se ilustra los niveles de


memoria cach que tiene el microprocesador AMD Opteron de cuatro ncleos.

Ncleo 1

Ncleo

Ncleo

Controlador

Contro

Contro

Controla

de Cach

lador

lador

dor de

de

de

Cach

Cach

Cach

L1

L1

Ncleo 4

L1

L1

L2

L2

L2

L2

L3

Figura 12. Niveles de memoria cach en AMD Opteron de cuatro


ncleos.

Entre las tecnologas ms importantes del procesador AMD Opteron de cuatro


ncleos son:
El diseo nativo del quad-core tiene una arquitectura de cuatro ncleos
en un solo subtrato.
Indexacin

para

virtualizaciones

rpidas.

Mejora

el

desempeo

de

muchas aplicaciones virtualizadas, debido a que las mquinas virtuales


administran directamente la memoria.
Enlaces

con

tecnologas

de

super-transporte

(hasta

tres

por

procesador AMD Opteron). Son enlaces de alta velocidad que proveen un


ancho de banda de hasta 8.0
GB/s por enlace de cada conexin entre procesadores y subsistema de
entradas y salidas, que ayuda a mejorar la escabilidad y el rendimiento de
las aplicaciones.
Controlador de memoria integrada en el chip. Ofrece un alto ancho de
banda, baja latencia en el acceso a memoria para un desempeo
excelente de aplicaciones que hacen un uso intensivo de memoria, como
ambientes virtualizadas.
Tecnologa de ncleos dinmicos independientes. Permite variar la
frecuencia de cada ncleo para reducir el consumo de energa de los
ncleos menos utilizados.

Tiene implementado la tecnologa para reducir el consumo de energa

de hasta un
75% por ncleo en modo espera.
Arquitectura de conexin directa permite eliminar la parte tradicional
cuello de botella de la arquitectura x86: conexin directa con los buses
de supe-transporte I/O

(hasta 8 GB/s), comunicacin en tiempo real entre procesador; el


controlador de memoria integrada reduce la latencia

y efectos de

desempeo positivamente; conexin directa a la memoria DDR2.


Tecnologa avanzada de 65 nm que usa el SOI (Silicon On Insulator), una
pequea fuga de corriente hace que el desempeo por Watt favorezca y la
reduzca de la emisin de calor en una instruccin de 32-bit.

Mecanismo optimizado en la prediccin de rutas.

Ejecucin fuera de orden.

Dos tareas de control de 128 bit de instrucciones SSE (Streaming SIMD

Extensions)

2.5

Hasta 4 operaciones de doble precisin de punto flotante por ciclo.

Procesador grfico Nvidia Tesla

El procesador Nvidia Tesla es un procesador grfco de propsito general para


el mercado de alto desempeo en cmputo cientfco e ingeniera.
En el modelo de un procesador grfco [29] se usa un CPU y un GPU. La parte
secuencial de un programa se corre en el CPU y la parte de cmputo intensivo
se corre en el GPU. Desde una perspectiva de usuario, la aplicacin corre muy
rpido porque se est usando un GPU que aumenta el desempeo.
El GPU dispone de una arquitectura masivamente paralela llamada arquitectura
CUDA. sta arquitectura consiste en 100 ncleos de procesadores que operan
juntos en el tratamiento del grupo de datos de una aplicacin. En la fgura 13 se
presenta un diagrama simplifcado de la unidad de procesamiento grfco G80.

La serie 10 de GPU Tesla tiene implementado la segunda generacin de la


arquitectura CUDA, que est optimizado para aplicaciones cientfcas, como el
estndar IEEE de punto flotante en doble precisin, cach de datos locales en
forma de memoria compartida, distribuida en todo el GPU.
Los productos de NVIDIA tesla son masivamente multi-hebras, debido a que son
chip multi- ncleos. Este pueden tener hasta 120 procesadores escalares,
ejecutar ms 12,000 hebras concurrentemente y tener un desempeo por
encima de los 470 GFLOPS. Los GPU tienen una pequea memoria compartida
por bloque de 8 procesadores escalares.

Cada procesador de hebras tiene dos elementos de procesamientos, cada


elemento de procesamiento tiene 8 procesadores escalares que alcanza los 32
GFLOPS pico a 1.35 GHz, tiene 8,192 registros de 32 bits (32 KB), teniendo como
operaciones usuales los tipos float, int, bifurcacin, entre otros.

Figura 13. Diagrama simplifcado del procesador grfco G80.

2.5.1

Historia del cmputo GPU

El chip grfco solo realizaba funciones grfcas en pipelines. Aos despus, este
chip llego a ser gradualmente programable, por lo que Nvidia introduce el primer
GPU o unidad de procesamiento grfco. De 1999 al 2000, particularmente en
cmputo cientfco que realizaban los investigadores, tales como imgenes
mdicas y electromagnticas empezaron utilizando el GPU. Los investigadores
encontraron un excelente desempeo de operaciones de punto flotante en el
GPU. Esto dio lugar a un nuevo GPU llamado GPGPU GPU para cmputo de
propsito general.
El problema que tena el GPGPU, era que para programarlo se tena que utilizar
un lenguaje de

programacin

grfco,

como

OpenGL

Cg.

As

los

programadores

hacan

sus aplicaciones cientfcas en aplicaciones grfcas.

Esto limitaba a la accesibilidad al enorme desempeo del GPU para la ciencia.


Nvidia hizo realidad en traer el enorme potencial de su procesador grfco a la
comunidad cientfca, invirtiendo en la modifcacin del GPU para que ste sea
completamente programable y soporte lenguajes de alto nivel, como C y C++.

2.5.2 Arquitectura paralela CUDA y modelo de programacin


La arquitectura de hardware paralelo CUDA est acompaado por el modelo de
programacin paralela CUDA que provee un conjunto de abstracciones que
permiten expresar los datos en grano fno y grano grueso y paralelismo de
tareas. El programador puede elegir un lenguaje de programacin de alto nivel
para expresar el paralelismo, como C, C++, Fortran driver API como OpenGL y
cmputo DirectX-11.
El primer lenguaje que NVIDIA dio soporte, fue para el lenguaje C. Un entorno de
C para la herramienta de desarrollo de software CUDA permite programar el GPU
usando C con un mnimo de palabras claves o extensiones.
El modelo de programacin paralela CUDA gua al programador en la
particin

del problema en sub-problemas de grano grueso que se pueden

resolver independientemente en paralelo. El paralelismo en grano fno, los subproblemas pueden ser resueltos cooperativamente en paralelo.

2.5.3 NVIDIA Tesla C1060


El GPU NVIDIA Tesla C1060 [28] tiene la capacidad de cmputo equivalente a un
clster pequeo de computadoras. Esto se debe a que en su arquitectura
interna tiene implementado
240 ncleos de procesadores.
Con los 240 ncleos que el procesador Tesla C1060 tiene puede ejecutar
concurrentemente miles de hebras, obteniendo con ello una respuesta rpida y
precisa.
Este procesador grfco cierra la brecha entre la demanda de la aplicacin y el
desempeo entregado por el procesador de cmputo. Con la arquitectura

masivamente paralela del GPU, los cientfcos e ingenieros pueden conseguir un


salto cuntico en desempeo y continuar avanzando con sus investigaciones,
motivados por la rapidez con la que obtiene los resultados.
NVIDIA Tesla tiene un ambiente de programacin llamada CUDA C, que
simplifca la programacin de muchos ncleos y aumenta el desempeo por la
ausencia de carga de actividades de cmputo intensivo desde el CPU al GPU.
Esto permite a los desarrolladores a utilizar GPU de NVIDIA para resolver
problemas cada vez ms complejos donde se requiere un mayor poder de
cmputo, como dinmica molecular, anlisis fnanciero, dinmica de fluidos,
anlisis estructural y muchos otros.

2.5.3.1 Caractersticas del procesador Tesla C1060


Arquitectura multincleo con enorme capacidad de clculo en paralelo
(240 unidades de procesamiento). Permite resolver en la estacin de trabajo
problemas de clculo complejos que antes exigan el uso de un clster de
servidores.
4 GB de memoria de alta velocidad. Permiten almacenar grandes
volmenes de datos de forma local para cada procesador a fn de maximizar
las ventajas de los 102 GB/s de velocidad de transferencia de la memoria y
reducir el movimiento de datos por el sistema. Entorno de programacin en
C CUDA: fcil de aprender y ampliamente aceptado. Una forma sencilla de
aplicar el clculo en paralelo para aprovechar la arquitectura multincleo de la
GPU.
Posibilidad de utilizar varias GPU para obtener la capacidad de miles de
ncleos de procesamiento. Permite resolver problemas a gran escala
aumentando

el

nmero

de

GPU

para

obtener

miles

de

ncleos

de

procesamientos.
Unidades de clculo en coma flotante de precisin doble y simple
segn la norma IEEE
754. Proporciona el mximo rendimiento de clculo en coma flotante disponible
a travs de un nico chip, al tiempo que respeta los requisitos de precisin de
las aplicaciones. Transferencia asncrona. Acelera el rendimiento del sistema
porque las transferencias de datos pueden efectuarse a la vez que los clculos.
Interfaz de memoria de 512 bits entre la GPU y la memoria de la placa.
La interfaz de memoria GDDR3 de 512 bits proporciona un ancho de banda de
102 GB/s para garantizar la mxima velocidad en la transferencia de datos.

Memoria compartida. Los grupos de ncleos de procesamiento pueden


colaborar entre s utilizando memoria de baja latencia.
Transferencia de datos a alta velocidad mediante el bus PCI Express
Gen 2.0. Extraordinaria rapidez de comunicacin entre la CPU y la GPU.
Variedad de formatos. Las GPU Tesla estn disponibles en formatos para
estacin de trabajo o para sistemas de rack (1U), lo que permite su instalacin
en diferentes entornos.

2.6

Microprocesador CELL de banda ancha

La Arquitectura del microprocesador CELL fue desarrollada conjuntamente por


Sony Computer Entertainment, Toshiba e IBM, en una alianza conocida con el
nombre STI [19]. El diseo y primera implementacin de este microprocesador
se llevo a cabo en STI Design Center de Austin, Texas durante un periodo de 4
aos que comenz en marzo de 2001.
El procesador CELL de banda ancha tiene una arquitectura hbrida ya que
emplea una combinacin de la arquitectura de ncleo PowerPC de propsito
general y medianas prestaciones con elementos coprocesadores en cascadas,
los cuales aceleran notablemente el procesado de vectores y multimedia, entre
otras. En la figura 14 se ilustra la arquitectura del procesador CELL de banda
ancha.

Figura 14. Arquitectura del procesador Cell de banda ancha.

2.6.1 Componentes del procesador CELL


El microprocesador CELL [13], bsicamente est compuesta por un elemento
procesador potente (PPE, del ingls Power Processor Element), ocho elementos
de procesadores sinrgicos (SPE, del ingls Synergistic Processor Element).
Estos dos procesadores estn conectados entre s a travs de un bus interno de
alta velocidad, denominada bus de interconexin de elementos (EIB, del ingls
Element Interconnect Bus). Adems de incorporar un subsistema de memoria
XDR de RAMBUS.

Elemento

de

procesador

PowerPC

(PPE,

del

ingls

PowerPC

Processor Element)
El PPE es un procesador de 64 bit, con un ncleo PowerPC con arquitectura RISC
de dos hebras en hardware. Este procesador es el que controla y administra
los ocho elementos SPE. El PPE tambin es el que se encarga de interactuar
con el sistema operativo. De acuerdo con la IBM el procesador puede correr un
sistema operativo normal a lado de un sistema operativo de tiempo real y ambos
funcionando correctamente.
El PPE tiene dos niveles de memoria cach, la memoria cach nivel 1 (L1)
separada, 32 KB para instrucciones y 32 KB para datos. La memoria cach nivel
2 unifcada (L2) de 512 KB para instrucciones y datos, cada lnea de cach es
de 128 bits. Una unidad Altivec es incluida en dicho procesador para procesar
datos de coma flotante en doble precisin mediante pipeline. Cada PPU es
capaz de ejecutar dos operaciones de coma flotante en doble precisin por
cada ciclo de reloj, combinando escalarmente una instruccin de multiplicacin y
suma alcanzando los 6.4 GFLOPS a 3.2 GHz; 8 operaciones en precisin simple
por ciclo de reloj con una instruccin vector de suma y multiplicacin,
alcanzando los 25.6 GFLOPS a 3.2 GHz.

Elemento

procesador

sinrgico

(SPE,

del

ingls

Synergistic

Processor Element)
Cada SPE est compuesto por una unidad de procesamiento sinrgico (SPU, del
ingls Synergistic Processing Unit) y una controlador de flujo a memoria
(MFC, del ingls Memory Flow Controller). Un SPE es un procesador RISC con
organizacin SIMD de 128 bits para instrucciones de precisin simple y doble.

Con la generacin actual del procesador Cell, cada SPE contiene 256 KB de
SRAM embebido para instrucciones y datos, llamado almacenamiento local que
es visible para el PPE y puede ser direccionado directamente por software. Cada
SPE puede soportar hasta 4GB de memoria de almacenamiento local. La
memoria de almacenamiento local no opera convencionalmente como la cache
de un CPU porque no es transparente al software ni contiene una estructura de
hardware que haga una prediccin sobre el dato a cargar. El SPE contiene
registros de 128 bit con 128 entradas y
mide 14.5 mm

con tecnologa de fabricacin de 90 nm. Un SPE puede operar

16 enteros de
8 bits, 8 enteros de 16 bits, 4 enteros de 32 bits 8 nmeros de punto flotante
en precisin simple en un ciclo de reloj, como bien una operacin a memoria.

Bus

de

interconexin

de

elementos
El bus de interconexin de elementos (EIB, del ingls Element Interconnect Bus)
es un bus interno del procesador Cell que conecta varios elementos del sistema
en un chip: el procesador PPE, el controlador de memoria, los

ocho

coprocesadores y dos interfaces de entrada/salida siendo un total de 12


participantes en el PlayStation3. El bus de interconexin de elementos incluye
una unidad arbitraria que funciona como un conjunto de semforos.
El bus de interconexin de elementos

actualmente esta

implementado

como un anillo circular con cuatro canales unidireccional de 16 Bytes de ancho


que giran en sentido opuesto por par de canal. Cuando hay un trfco estndar,
cada canal puede transportar hasta tres transacciones concurrente. Como este
bus corre a la mitad de velocidad del reloj del sistema la efectividad del canal es
de 16 Bytes cada dos ciclos del sistema. A concurrencia mxima, con tres
transacciones activas sobre los cuatro anillos, el pico instantneo en el ancho de
banda del bus es 96 Bytes por reloj (12 transacciones concurrentes por 16 Bytes
de ancho entre dos ciclos del sistema por transferencia).
Cada elemento conectado al bus de interconexin de elemento tiene un puerto
de lectura de
16 Bytes y un puerto de escritura de 16 Bytes. El lmite de cada elemento
en la tasa de lectura y escritura es de 16 Bytes por ciclo del bus. Cada
procesador SPU contiene un administrador dedicado para el acceso directo a
memoria que es capaz de programar secuencias largas de transacciones a
varios puntos sin interferir con los clculos actuales del SPU; la cola del
administrador de acceso directo a memoria puede ser administrado localmente
o remotamente como sea mejor, esto nos provee una flexibilidad adicional al
modelo de control.

El flujo de datos sobre un canal del bus de interconexin de elementos es


gradual alrededor del anillo. Como son doce elementos conectados, el nmero
total de pasos alrededor del canal hacia el punto de origen son doce. Seis
pasos

para

distancias

largas

entre

dos elementos. Este bus no permite

transmitir datos que requieran ms de doce pasos; como los datos que requieren
tomar rutas cortas en otra direccin alrededor de anillo. El nmero de pasos que
implica el envo de paquetes tiene un impacto muy pequeo sobre la latencia de
transferencia: la velocidad del reloj de controlador de pasos es muy rpido
comparado con otras consideraciones. Sin embargo, la comunicacin en
distancias largas perjudica el desempeo total del bus debido a que reduce la
concurrencia disponible.

Asumiendo que el procesador Cell corre a 3,2 GHz. A esta frecuencia de reloj
cada canal transmite a un ritmo de 25,6 GB/s. Contemplando el EIB
aisladamente de los elementos que interconecta, alcanzar doce transacciones
simultneas con este ratio de transferencia arrojara un ancho de banda
terico de 207,2 GB/s. Basndose en esta perspectiva muchas de las
publicaciones de IBM describen el ancho de banda disponible en el EIB como
mayor de 300 GB/s. Este nmero refleja el pico instantneo de ancho de
banda del EIB escalado por la frecuencia del procesador.
En la prctica el ancho de banda efectivo del EIB [19] puede tambin estar
limitado por los participantes involucrados en el anillo. Mientras que cada uno de
los nueve ncleos de proceso puede mantener una velocidad de lectura y
escritura de 25,6 GB/s de manera simultnea, el adaptador de controladora de
memoria (MIC, del ingls Memory Interface Controller) est sujeto a un par de
canales de memoria XDR (del ingls Extreme Data Rate) que permiten un trfco
mximo de 25,6 GB/s para escrituras y lecturas combinadas; y las dos
controladoras de E/S, segn aparece en la documentacin, soportan una
velocidad mxima combinada de entrada de 25,6 GB/s y una velocidad mxima
combinada de salida de 35 GB/s.

Controladora

de

memoria

E/S
El procesador Cell contiene un macro XIO Rambus doble canal de nueva
generacin, que interconecta con memoria XDR Rambus. La controladora
adaptadora de memoria (MIC) est separada del macro XIO y ha sido diseada
por IBM. El enlace XIO-XDR corre a 3,2
GB/s en cada pin. Dos canales de 32 bits pueden proporcionar un mximo
terico de 25,6

GB/s.
El adaptador de sistema empleado en Cell, tambin un diseo Rambus, es
conocido como FlexIO. La interface FlexIO est organizada en 12 carriles, siendo
cada carril un canal de 8 bits punto a punto. Cinco caminos de 8 bits de ancho
punto a punto son carriles de entrada al Cell, mientras que los siete restantes
son de salida. Esto proporciona un ancho de banda mximo terico de 62,4GB/s
(36,5GB/s salida, 26GB/s entrada).
La interface FlexIO puede poseer una frecuencia de reloj independiente
(tpicamente, a 3.2
GHz). Cuatro canales de entrada

y cuatro de salida se encargan de

implementar la coherencia de memoria [19].

PROCESADORES MULTIHILO
3. Riesgos de control (control hazards ): debido a saltos durante la
ejecucion del ujo de instrucciones.
Ante estas situaciones, la tubera se detiene hasta que el riesgo sea
resuelto
(por ejemplo, que concluya la ejecucion de la instruccion que debe producir
el dato requerido). As, el rendimiento ideal de una instruccion por ciclo
comien- za a degradarse. En la practica, estas situaciones suelen ser muy
lo que resulta en una reducci on signicativa en el solapamiento (o paralelismo) a nivel de instrucciones. Por ejemplo, para un programa MIPS tpico,
la
frecuencia de instrucciones de salto condicional podra ser del 25 % [15].
Esto signica que, cada cuatro instrucciones ejecutadas, el procesador se
encuentra ante un hazard de control.
Para maximizar el aprovechamiento de los recursos del procesador se requiere un alto grado de paralelismo a nivel de instrucciones (ILP Instruction Level Parallelism ). Si, como ocurre en la practica, este paralelismo
es escaso, entonces deberan analizarse otras estrategias que le den la
oportuni- dad, al procesador, de ejecutar multiples instrucciones simult
aneamente. Una posibilidad, con gran auge en los ultimos tiempos, es el
aprovechamiento del paralelismo a nivel de hilo de ejecucion (ILP
Thread Level Parallelism ),

4.3.

Procesadores Multihilo

En adicion al problema del bajo nivel de ILP (lo que conlleva a un


uso
ineciente de los recursos), un procesador superescalar tambien se
caracteri- za por desperdiciar capacidad de computo, permaneciendo durante
algunos ciclos de reloj en estado ocioso (idle ). En ocasiones, la ejecucion
del ujo de instrucciones suele bloquearse debido a, entre otras cosas, malas
predicciones de los saltos, desaciertos
en la memoria cache de
instrucciones, operaciones de E/S, etc., lo que se traduce indefectiblemente
en un procesador ocioso, a la espera de una instruccion a ejecutar.
Resumiendo, un procesador puede sufrir de:

PROCESADORES MULTIHILO
Desperdicio Horizontal: debido al bajo nivel de ILP que impide,
para un ciclo de reloj, usar ecientemente los recursos (unidades funcionales) disponibles.
Desperdicio Vertical: debido al bloqueo o latencias en las instrucciones ejecutadas, con lo cual, el procesador debe permanecer ocioso.
Una solucion al uso ineciente de los recursos del procesador consiste
en
la utilizacion de multiples hilos (o ujos) de instrucciones, tecnica
conocida como ejecucion multihilo. En este trabajo, el concepto de hilo
(thread ) diere al utilizado en el ambito del software ; aqu se hara
referencia a ujos de instrucciones soportados a nivel de hardware, a
diferencia de los hilos creados por el sistema operativo o por el usuario.
Sin embargo, en muchos casos, un hilo a nivel de software, podra
corresponderse con un hilo a nivel de hardware. En este sentido, el modelo
de ejecucion multihilo puede clasicarse en [38]:
Multihilo explcito: cuando el procesador ejecuta hilos o procesos
del
usuario (e.g., del sistema operativo). Es decir, hay una correspondencia
directa entre los hilos de software y los hilos de hardware soportados
por el procesador.
Multihilo implcito: cuando el procesador tiene la capacidad de
generar, dinamicamente, hilos propios a partir de un unico ujo de instrucciones, mediante mecanismos de especulacion. Esto puede
lograrse, por ejemplo, explotando la independencia entre secuencias de
instruc- ciones, como podra ser cada iteracion de un bucle (en este
caso, cada hilo implcito correspondera a la ejecucion de una
iteracion, si las ite- raciones son independientes una de otra). En
general, la capacidad para generar hilos implcitos por parte del
procesador suele mejorarse con el soporte del compilador.
En este trabajo se hara referencia al primer esquema (multihilo expl
cito),
por ser el encontrado en
los procesadores modernos, aunque es importante

PROCESADORES MULTIHILO
destacar que la organizacion cache propuesta es independiente del origen
de
los hilos en ejecucion.
En los procesadores con multihilo explcito existen dos alternativas
para el manejo concurrente de la ejecucion. Por una parte, los hilos podr
an ser ejecutados en forma intercalada, mediante sucesivos cambios de
contexto (notar que, en un momento determinado, un unico hilo tiene
disponible la totalidad de los recursos del procesador). Dependiendo de la
granularidad con la que se intercalan los hilos, podramos estar en
presencia de alguna de las siguientes polticas:
FMT (Fine-grain Multithreading ): los ujos (hilos) se alternan en cada
instruccion ejecutada.
CMT (Coarse-grain Multithreading ): los ujos (hilos) se alternan
cuando el que estaba en ejecucion incurre en alguna penalidad, tal como
un desacierto en la memoria cache L2 [15].
La otra alternativa consiste en ejecutar los hilos disponibles en forma simultanea, diseno conocido como SMT (Simultaneous Multithreading ).
Esta tecnica, propuesta por Eggers y otros en [9], busca minimizar tanto el
des- perdicio horizontal como tambien el desperdicio vertical. Para evitar
que el procesador permanezca ocioso, las instrucciones a ejecutar se toman de
varios ujos simultaneamente, de manera tal que, ante el bloqueo de uno
de ellos, se pueda continuar con la ejecucion de alguno de los otros. En
realidad, la anterior ya es una caracterstica de la poltica FMT. La
diferencia esta en que un esquema SMT busca maximizar, para cada ciclo de
reloj, la utilizacion de los recursos del procesador. Si el ujo (proceso o
hilo) en ejecucion presenta un alto nivel de ILP, entonces ese paralelismo
permite explotar al maximo la utilizacion de las unidades funcionales para
un ciclo de reloj. Por otra parte, si varios ujos presentan cada uno un
bajo nivel de ILP, entonces pueden ser ejecutados simultaneamente, para
maximizar el aprovechamiento de los recursos. En la gura 4.2 puede
observarse como se utilizan los recursos en

funcion del tiempo para las arquitecturas Superescalar, FMT y SMT.


Claramente, el esquema SMT presenta un mejor aprovechamiento de las unidades
funcionales, al explotar tanto el paralelismo a nivel de instrucciones como el
paralelismo a nivel de hilo.
UNIDADES FUNCIONALES

TIEMPO

Superscalar

FMT

SMT

Hilo 1

Desperdicio
vertical

Hilo 2
Hilo 3

Desperdicio
horizontal

Figura 4.2: Uso de los recursos en arquitecturas Superescalar, FMT y SMT.

Como resultado, el esquema SMT permite ocultar las latencias de memoria


(debido a desaciertos en la cache de nivel 1), como tambien otras
latencias generadas por operaciones de E/S o de sincronizacion [22], ya que
en dichos casos, los recursos pueden ser aprovechados por otros hilos de
ejecucion. Sin embargo, el uso de esta tecnica genera nuevos desafos,
particularmente en el diseno de las unidades funcionales que se ven
involucradas y afectadas por la explotacion del paralelismo a nivel de hilo
(TLP Thread Level Para- llelism ). Es decir, debe replantearse la
concepcion de aquellos recursos que se comparten entre los hilos. La
memoria cache de nivel 1 es una de las componentes mas afectadas,
debido a que la existencia de multiples instruc- ciones pertenecientes a mu
ltiples hilos de ejecucion dentro del procesador genera una situacion de
competencia que se traduce en una alta interferencia

Das könnte Ihnen auch gefallen