Procesador multinúcleo


Un procesador multinúcleo es un procesador de computadora en un solo circuito integrado con dos o más unidades de procesamiento separadas , llamadas núcleos, cada una de las cuales lee y ejecuta instrucciones de programa . [1] Las instrucciones son instrucciones ordinarias de CPU (como agregar, mover datos y bifurcar), pero el procesador único puede ejecutar instrucciones en núcleos separados al mismo tiempo, lo que aumenta la velocidad general de los programas que admiten subprocesos múltiples u otras técnicas de computación paralela . [2] Los fabricantes suelen integrar los núcleos en un solo troquel de circuito integrado(conocido como chip multiprocesador o CMP) o en varios troqueles en un solo paquete de chip . Los microprocesadores que se utilizan actualmente en casi todas las computadoras personales son multinúcleo.

Un procesador multinúcleo implementa el multiprocesamiento en un solo paquete físico. Los diseñadores pueden acoplar núcleos en un dispositivo multinúcleo de forma ajustada o suelta. Por ejemplo, los núcleos pueden o no compartir cachés , y pueden implementar métodos de comunicación entre núcleos de memoria compartida o paso de mensajes . Las topologías de red comunes utilizadas para interconectar núcleos incluyen bus , anillo , malla bidimensional y barra transversal . Los sistemas homogéneos de múltiples núcleos incluyen solo núcleos idénticos; Los sistemas multinúcleo heterogéneos tienen núcleos que no son idénticos (por ejemplo, big.LITTLEtienen núcleos heterogéneos que comparten el mismo conjunto de instrucciones , mientras que las unidades de procesamiento acelerado de AMD tienen núcleos que no comparten el mismo conjunto de instrucciones). Al igual que con los sistemas de un solo procesador, los núcleos en los sistemas de varios núcleos pueden implementar arquitecturas como VLIW , superescalar , vectorial o multiproceso .

Los procesadores multinúcleo se utilizan ampliamente en muchos dominios de aplicaciones, incluidos los de uso general , integrados , de red , de procesamiento de señales digitales (DSP) y de gráficos (GPU). El número de núcleos sube incluso a docenas, y para chips especializados de más de 10 000, [3] y en supercomputadoras (es decir, grupos de chips) el número puede superar los 10 millones (y en un caso hasta 20 millones de elementos de procesamiento en total además del host ). procesadores). [4]

La mejora en el rendimiento obtenida por el uso de un procesador multinúcleo depende en gran medida de los algoritmos de software utilizados y su implementación. En particular, las posibles ganancias están limitadas por la fracción del software que puede ejecutarse en paralelo simultáneamente en múltiples núcleos; este efecto es descrito por la ley de Amdahl . En el mejor de los casos, los llamados problemas vergonzosamente paralelos pueden generar factores de aceleración cercanos a la cantidad de núcleos, o incluso más si el problema se divide lo suficiente como para caber dentro de los cachés de cada núcleo, evitando el uso de una memoria del sistema principal mucho más lenta. . Sin embargo, la mayoría de las aplicaciones no se aceleran tanto a menos que los programadores inviertan esfuerzo en la refactorización . [5]

La paralelización del software es un importante tema de investigación en curso. La cointegración de aplicaciones multiprocesador proporciona flexibilidad en el diseño de arquitectura de red. La adaptabilidad dentro de modelos paralelos es una característica adicional de los sistemas que utilizan estos protocolos. [6]

Los términos multi-core y dual-core comúnmente se refieren a algún tipo de unidad central de procesamiento (CPU), pero a veces también se aplican a los procesadores de señales digitales (DSP) y al sistema en un chip (SoC). Los términos generalmente se usan solo para referirse a microprocesadores de múltiples núcleos que se fabrican en el mismo troquel de circuito integrado ; los troqueles de microprocesador separados en el mismo paquete generalmente se denominan con otro nombre, como módulo de chips múltiples . Este artículo utiliza los términos "multinúcleo" y "doble núcleo" para las CPU fabricadas en el mismo circuito integrado, a menos que se indique lo contrario.


Diagrama de un procesador de doble núcleo genérico con cachés de nivel 1 local de CPU y un caché de nivel 2 en matriz compartido
Un procesador Intel Core 2 Duo E6750 de doble núcleo
Un procesador AMD Athlon X2 6400+ de doble núcleo
Un sistema integrado en una tarjeta enchufable con procesador, memoria, fuente de alimentación e interfaces externas