Multinúcleo y multiprocesadores en chip
Un multiprocesador en chip integra varios núcleos de procesador en un solo dado, compartiendo cachés y una interfaz de memoria, de modo que el paralelismo a nivel de hilos, en lugar de una mayor velocidad de reloj, impulsa el crecimiento del rendimiento.
Definition
Un procesador multinúcleo, o multiprocesador en chip, es un único circuito integrado que contiene múltiples núcleos de procesador independientes que comparten algunos recursos en el chip y un sistema de memoria, diseñado para ejecutar múltiples hilos o programas concurrentemente.
Scope
Este tema abarca la organización de los chips multinúcleo: el número de núcleos y la heterogeneidad, las jerarquías de caché compartidas y privadas, las interconexiones en el chip y cómo el rendimiento escala con los núcleos según la ley de Amdahl. Trata la estructura de hardware de los sistemas multinúcleo. Excluye los mecanismos de coherencia y consistencia compartidos con otros temas de memoria compartida (memoria compartida y coherencia, protocolos de coherencia de caché) y el motor de un solo núcleo (microarquitectura del procesador).
Core questions
- ¿Por qué los procesadores pasaron de núcleos únicos rápidos a múltiples núcleos?
- ¿Cómo se organizan los núcleos, las cachés y la interconexión en un chip?
- ¿Cómo limita la ley de Amdahl la aceleración al añadir núcleos?
- ¿Cuándo son preferibles los núcleos heterogéneos a los idénticos?
Key concepts
- multiprocesador en chip
- paralelismo a nivel de hilos
- cachés compartidas vs. privadas
- interconexión en chip
- recuento y escalado de núcleos
- núcleos heterogéneos (big.LITTLE)
- ley de Amdahl
- límites de potencia y térmicos
Key theories
- Ley de Amdahl para el escalado multinúcleo
- La fracción serial de una carga de trabajo limita la aceleración alcanzable al añadir núcleos; este límite explica por qué el simple aumento del número de núcleos produce rendimientos decrecientes y motiva la reducción de los cuellos de botella seriales y el uso de diseños heterogéneos.
Mechanisms
Un chip multinúcleo coloca múltiples núcleos en un solo dado, típicamente con cachés de primer nivel privadas, una caché de último nivel compartida y una red o anillo en el chip que los conecta a los controladores de memoria. Las cargas de trabajo obtienen rendimiento al ejecutar hilos en diferentes núcleos. Los diseños heterogéneos combinan núcleos grandes de alto rendimiento con núcleos pequeños y eficientes, programando el trabajo en el núcleo más apropiado para equilibrar la velocidad y la energía.
Clinical relevance
Multinúcleo es el diseño de procesador dominante hoy en día, desde teléfonos hasta servidores, porque la escalada de frecuencia se estancó bajo los límites de potencia. Su auge trasladó la carga del rendimiento al software paralelo: las aplicaciones deben ser multihilo para beneficiarse, haciendo de la concurrencia una preocupación de programación general y de la ley de Amdahl una restricción práctica en los sistemas reales.
History
Los multiprocesadores en chip de investigación, como el Hydra de Stanford en la década de 1990, anticiparon la era multinúcleo. El colapso de la escalada de frecuencia alrededor de 2004-2005 impulsó a las CPU convencionales a diseños de doble núcleo y luego de muchos núcleos. Las arquitecturas heterogéneas que combinan núcleos de rendimiento y eficiencia se hicieron comunes más tarde, especialmente en procesadores móviles y portátiles.
Debates
- Más núcleos versus núcleos más potentes
- Dada una potencia y un área fijas, los diseñadores debaten si añadir muchos núcleos más simples, menos núcleos potentes o una mezcla heterogénea; la mejor opción depende de cuán paralelas sean las cargas de trabajo objetivo, con la ley de Amdahl favoreciendo los núcleos potentes cuando las fracciones seriales son significativas.
Key figures
- Gene Amdahl
- John L. Hennessy
- David A. Patterson
- Kunle Olukotun
Related topics
Seminal works
- hennessy2019
- amdahl1967
Frequently asked questions
- ¿Por qué duplicar el número de núcleos no duplica el rendimiento?
- Según la ley de Amdahl, cualquier parte de un programa que deba ejecutarse en serie limita el beneficio de los núcleos añadidos. La comunicación, la sincronización y la contención por los recursos compartidos añaden una sobrecarga adicional, por lo que la aceleración real suele ser muy inferior a la escalada lineal ideal.
- ¿Qué son los núcleos heterogéneos (big.LITTLE)?
- Los diseños heterogéneos combinan núcleos grandes de alto rendimiento con núcleos más pequeños y energéticamente eficientes en el mismo chip. El sistema programa el trabajo exigente en los núcleos grandes y el trabajo ligero o en segundo plano en los núcleos pequeños, mejorando la eficiencia energética sin sacrificar el rendimiento máximo.