Beruflich Dokumente
Kultur Dokumente
NO. DE CONTROL:
14TE0003*
LICENCIATURA EN:
INGENIERA INFORMATICA
PROFESOR (A):
ING. YASSER MARN LOMBARD
Teziutln, Puebla; Enero 2016
Arquitecturas Multi-ncleo
Cach L2 compartida
Cach L1
Cach L1
Cach L1
P1
P2
Pn
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
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
datos
es
el
nmero
Dato 1
Instruccin
Procesador 1
Resultado 1
Dato 2
Procesador 2
Resultado 2
Dato 3
Procesador 3
Resultado 3
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
sistema
que
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
2.1.2
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
PRAM
EREW
CREW
ECR
ERCW
PCR
CRCW
ACR
Ncleo 4
Cach L2
Ncleo 3
Ncleo 2
Ncleo 1
Cach L2
con
las
caractersticas
principales
siguientes:
Ejecucin dinmica.
Cach ms rpida.
Ejecucin
entrega
dinmica
de
extendida.
Ejecucin
efciente
debido
la
ncleo
L2 para
La
cach
L2
compartida
permite
que
cada
ncleo
utilice
L2 Compartida
Decrementa
el trfico
Dinmicamente
Bi-Direccional
L1 Cach
Ncleo 1
L1 Cach
Ncleo 2
2.3
cl N
cl N
cl N
N
cl
capa
semiconductora,
pues
segn
las
investigaciones
de
Intel
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
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
cuatro
ncleos
del
de interconexin
rpida.
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
con
memoria
integrada.
Es un controlador de memoria
optimizado.
Sensor
digital
de
temperatura
(DTS,
del
ingls
Digital
Thermal
ncleo.
La
habilidad
de
monitorear
mide
la
temperatura
de
continuamente
rpido
memoria.
Mejora
el
desempeo
del
sistema,
2.4
El
es
un
AMD
con
arquitectura
x86
[26]
de
la
lnea
de
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
para
virtualizaciones
rpidas.
Mejora
el
desempeo
de
con
tecnologas
de
super-transporte
(hasta
tres
por
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
y efectos de
Extensions)
2.5
2.5.1
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
resolver independientemente en paralelo. El paralelismo en grano fno, los subproblemas pueden ser resueltos cooperativamente en paralelo.
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.
2.6
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
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
actualmente esta
implementado
para
distancias
largas
entre
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
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
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
TIEMPO
Superscalar
FMT
SMT
Hilo 1
Desperdicio
vertical
Hilo 2
Hilo 3
Desperdicio
horizontal