Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
Son tecnologas que permiten mejorar el rendimiento de las CPUs.
Ambos diseos soportan multiprogramacin (multitasking) va programas paralelos corriendo
aplicaciones concurrentemente.
Primero fueron diseados los CPUs multihilos que utilizan un contexto a nivel de hardware
alternando entre hilos, para reducir el tiempo de los recursos.
Poco despus se disearon CPUs que integraban ms de un ncleo en un nico chip. Hoy en da
tenemos procesadores de hasta 8 ncleos.
Espectro de diseo
Tanto los CPUs multihilos, como los multincleo, explotan concurrencia ejecutando mltiples
hilos, aunque sus objetivos de diseo son distintos.
Los CPUs multihilos soportan hilos ejecutados concurrentemente, pero lo hacen a nivel de
instruccin, apuntando a una mejor utilizacin de la CPU, planteando instrucciones desde mltiples
hilos.
Los CPUs multincleo alcanzan la concurrencia de hilos a un nivel ms alto concentrndose
menos en la utilizacin por ncleo y apuntando a la escalabilidad va replicacin de ncleos.
Ncleos Multihilos
Los ncleos multihilo ejecutan de manera concurrente mltiples hilos de procesamiento, de uno
o varios programas. Cada hilo sobre el chip necesita su nica componente de estado como instruction
pointer y registros de control. El nmero de hilos sobre el chip determina el nmero de replicaciones
necesarias de componentes de estado y el mximo grado de concurrencia soportado por hardware y
saturacin por unidades de ejecucin. Mas hilos tambin mejoran las posibilidades de esconder
latencias de memoria de acceso (memory acces latency) o stall por malas predicciones de rama. El
crecimiento del costo es aproximadamente lineal hasta al menos 8 hilos, pero es claramente superlineal
de ah en adelante.
El nmero de hilos sobre el chip por ncleo tpicamente soportado por un procesador comercial
tiene un rango desde 2 en Intel Xeon hasta 8 en Suns UltraSPARC T2.
La mayora de los cpus emplean el ltimo enfoque llamado Simultaneous Multithreading
(SMT) y que Intel lo llama Hyperthreading Technology (HTT). El SMT ejecuta instrucciones de varios
hilos distintos en un mismo ciclo de reloj, usando un nico procesador.
CPUs Multinucleo
Los ncleos Multihilos tienen una limitada escalabilidad, atado por el punto de saturacin de
las unidades de ejecucin y el costo de hilos adicionales. En cambio los CPUs multincleos prometen
mas potencia por escalabilidad. Los primeros chips multicore fueron construidos como una simple
unin de diseos de CPUs de un solo ncleo ya existentes. Estos chips retuvieron mucha de la
arquitectura de su precedente, replicando solo el control y unidades de ejecucin y compartiendo las
unidades faltando por chip: cache, controlador de memoria, unidades de procesamiento secundarias
como unidades de punto flotante (FPUS, componentes de enfriamiento y pines de salida del micro.
Sin embargo, tienen una desventaja en relacin con el intercambio de contencin de los
recursos compartidos.
Las tendencias de desarrollo indican un movimiento hacia la replicacion adicional sobre los
componentes de chips, como los controladores de memoria y cache, que pueden ser privadas o
compartidas.
Hay una opcin ms flexible: el diseo hibrido. Diferentes nmeros de bancos de cache que
pueden ser COMPARTIDOS o PRIVADOS, dependiendo de las necesidades de los hilos corriendo en
el momento en el sistema. Este diseo soporta hilos que comparten informacin y que no.
Ruido Elctrico.
Defectos menores permanentes en el silicio (Fallas en componentes
individuales) que se expanden provocando la falla del chip entero.
Soluciones:
Particionamiento de unidades replicadas y separables.
Mltiples interconexiones dentro del chip.
Controladores de memoria.
Mltiples bancos de cache.
Esto lleva a soportar diferentes grados de aislacin contra comparticin y separacin de
componentes que funcionan de los que no funcionan.
Estas soluciones incrementan mucho la tolerancia a fallos.
Interconexiones
Otro rasgo importante que impacta en el performance de los chips multincleos es la
comunicacin entre los diferentes componentes sobre el chip: ncleos, cache, y -si estn integradoscontroladores de memoria y controladores de red. Los primeros diseos usaban un bus como en los
sistemas tradiciones de mltiples CPU. La tendencia ahora cambio a una Crossbar u otros mecanismos
avanzados para reducir latencias y contencin. Por ejemplo, los CPUS de AMD emplean una Crossbar,
y el TileraTILE64 implementa Non-blocking multilink mesh.
La interconexin se puede volver cara. Una Crossbar de 8x8 sobre el chip puede consumir tanta
rea como cinco ncleos y tanta energa como dos ncleos.
En caches privados en el chip, el intercambio de datos entre hilos corriendo en diferentes
ncleos necesit usar la conexin fuera del chip. Caches compartidos sobre el chip naturalmente
soportan intercambio de informacin entre hilos corriendo en diferentes ncleos. As, introduciendo un
nivel de cache compartido en el chip (comnmente L2, o en las tendencias mas recientes L3) ayudaron
a reducir trafico fuera del chip.
A medida que el procesamiento de datos aumenta con mas hilos paralelos, demanda adems un
incremento en la comunicacin fuera del chip para: acceso a memoria, entrada/salido o comunicacin
CPU-a-CPU. Para direccionar estos requerimientos, la comunicacin fuera del chip esta tendiendo de
basada-en-bus a basada-en-paquetes, interconexiones punto-a-punto. AMD implemento este
concepto por primera vez como HyperTransport, seguido por las interconexiones de Intel's QuickPath.
Diseos especializados
Algunos procesadores multinucleos estn hechos para cargas de trabajo muy especficas. La
serie Blue Vega de aplicacin de cmputo usa chips multinucleos con hasta 48 ncleos, cada uno
incluyendo unidades especiales de ejecucin diseadas para incrementar el desempeo de operaciones
Java. El Tilera TILE64 para procesamiento de informacin usa 64 ncleos simples de bajo consumo,
su capacidad de dataflow lo hace una buena eleccin para sistemas embebidos.
Los GPUS (graphic processing units) representan el ejemplo extremo de diseo multinucleo
especializado. Los GPUS modernos tienen 10 o mas ncleos, cada uno optimizado para procesamiento
de data SIMD (Single Instruction-Multiple Data), hecho va cientos o miles de hilos simplificados por
ncleo. Esto los hace tiles para complicados procesos numricos como rendering de video, estudios
de gentica, modelado cientfico o criptografa.
Complejidad de ncleos vs. Numero de ncleos
Optimizacin
Tradicional
Incrementar velocidad de
Ejecucin serie de un nico hilo
Conclusiones:
Mayor nmero de ncleos simples es preferible mientras la parte secuencial de la
aplicacin sea pequea, sino son ms beneficiosos los ncleos ms complejos.
Debido a la demanda de espacio en el chip para interconexiones entre gran numero de
ncleos y a la escalabilidad limitada de aplicaciones puede resultar ms beneficioso
utilizar ncleos ms complejos.
Las aplicaciones que pueden explotar mucho del pico terico de desempeo (intensivas
en punto flotante, alto paralelismo de instrucciones en aplicaciones numricas) pueden
tener mejores resultados si se usan ncleos ms complejos.
Una mejora para el desempeo por hilo seria colocar ms recursos del chip dinmicamente,
como ejecucin especulativa.
Esto beneficia aplicaciones con mucha dependencia de datos y errores de cache.
Una implementacin ya aplicada en algunos CPUs multihilos coloca recursos particionados a
un hilo si se corre en modo nica Tarea.
La investigacin indica que los procesadores que poseen muchos ncleos simples y unos pocos
ncleos de alto rendimiento pueden proveer el mayor poder de procesamiento para un dado espacio de
chip y presupuesto energtico. Pero esto tiene como desventaja que dichos procesadores no se obtienen
comercialmente, y adems, son difciles de disear y programar.
Costo y consumo de energa
La performance no domina ms los objetivos de diseo: Los costos de fabricacin de chips y la
tolerancia a falla, consumo de energa y disipacin de calor se volvieron consideraciones crticas.
A medida que los ncleos se simplifican, el consumo de energa disminuye linealmente, lo cual
es una gran ventaja en CPUS multincleos. Una mejor eficiencia de energa y una generacin de calor
reducida permiten integraciones de ms ncleos en un nico CPU, con el cambio (tradeoff) que el
presupuesto de energa para las interconexiones incrementa con el nmero de ncleos. El uso de
energa afecta la eleccin entre diseos multincleos y diseos de un ncleo Multihilo. Los primeros
son eficientes con respecto a la energa, pero diseos hbridos con mltiples ncleos SMT logran casi
el mismo performance por watt como diseos puro CMP (Chip-level MultiProcessing).
A pesar de que el CPU consume el 25 a 45% de la energa que consume un servidor, los costos
proyectados de electricidad para un trmino de cuatros aos se acercan al precio del sistema entero.
En el caso de maquinas de alto-performance de computo, construyendo soluciones de
enfriamiento personalizadas puede costar tanto como la computadora misma. Adems, la reduccin de
consumo de energa permite mayor densidad de racks en habitaciones de servidores.
Los cpus actuales en el mercado, ofrecen diferentes opciones de acuerdo a su diseo y uso del
espacio del chip.
Consideraciones de diseo NO solo incluyen el nmero de ncleos e hilos sino tambin la
complejidad de los ncleos, interconexiones, tamaos de cache y el grado en que los componentes se
comparten.
Ya que las decisiones de diseo incluyen cambios (algo por algo, no puedo mejorar algo sin
descuidar otra cosa) son necesarios diseos que se concentren en la relacin funcional entre las partes
y el todo, llevados por las aplicaciones de destino y criterios adicionales de optimizacin como la
consumicin de energa, la disipacin de calor, tolerancia a falla y costo
NOTA: Se llama throughput al volumen de informacin que fluye a travs de un sistema.