Procesador multinúcleo
# Procesador multinúcleo

Un procesador multinúcleo es un microprocesador 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. 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. Los fabricantes suelen integrar los núcleos en un solo chip de circuito integrado (conocido como chip multiprocesador o CMP) o en varios chips 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.LITTLE tienen 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 recuento de núcleos llega incluso a docenas, y para chips especializados de más de 10 000, y en supercomputadoras (es decir, grupos de chips) el recuento puede superar los 10 millones (y en un caso hasta 20 millones de elementos de procesamiento en total además del host). procesadores).

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.

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.

## Terminología

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.

En contraste con los sistemas multinúcleo, el término multi-CPU se refiere a múltiples unidades de procesamiento separadas físicamente (que a menudo contienen circuitos especiales para facilitar la comunicación entre ellas).

Los términos muchos núcleos y multinúcleo masivo se utilizan a veces para describir arquitecturas de varios núcleos con una cantidad especialmente alta de núcleos (de decenas a miles).

Algunos sistemas usan muchos núcleos de microprocesadores suaves colocados en un solo FPGA. Cada "núcleo" puede considerarse un "núcleo de propiedad intelectual de semiconductores", así como un núcleo de CPU.

## Desarrollo

Si bien la tecnología de fabricación mejora, reduciendo el tamaño de las puertas individuales, los límites físicos de la microelectrónica basada en semiconductores se han convertido en una importante preocupación de diseño. Estas limitaciones físicas pueden causar problemas significativos de disipación de calor y sincronización de datos. Se utilizan varios otros métodos para mejorar el rendimiento de la CPU. Algunos métodos de paralelismo a nivel de instrucción (ILP), como la canalización superescalar, son adecuados para muchas aplicaciones, pero son ineficientes para otras que contienen código difícil de predecir. Muchas aplicaciones se adaptan mejor a los métodos de paralelismo a nivel de subprocesos (TLP), y comúnmente se utilizan varias CPU independientes para aumentar el TLP general de un sistema. Una combinación de mayor espacio disponible (debido a procesos de fabricación refinados) y la demanda de mayor TLP condujo al desarrollo de CPU multinúcleo.

### Incentivos comerciales

Varios motivos comerciales impulsan el desarrollo de arquitecturas multinúcleo. Durante décadas, fue posible mejorar el rendimiento de una CPU al reducir el área del circuito integrado (IC), lo que redujo el costo por dispositivo en el IC. Alternativamente, para la misma área de circuito, se podrían usar más transistores en el diseño, lo que aumentó la funcionalidad, especialmente para arquitecturas de computación de conjuntos de instrucciones complejas (CISC). Las velocidades de reloj también aumentaron en órdenes de magnitud en las décadas de finales del siglo XX, desde varios megahercios en la década de 1980 hasta varios gigahercios a principios de la década de 2000.

A medida que se ralentizaba el ritmo de las mejoras en la velocidad del reloj, se buscaba un mayor uso de la computación paralela en forma de procesadores multinúcleo para mejorar el rendimiento general del procesamiento. Se utilizaron varios núcleos en el mismo chip de CPU, lo que podría conducir a mejores ventas de chips de CPU con dos o más núcleos. Por ejemplo, Intel ha producido un procesador de 48 núcleos para la investigación en computación en la nube; cada núcleo tiene una arquitectura x86.

### Factores técnicos

Dado que los fabricantes de computadoras han implementado durante mucho tiempo diseños de multiprocesamiento simétrico (SMP) utilizando CPU discretas, los problemas relacionados con la implementación de la arquitectura de procesador de múltiples núcleos y el soporte con software son bien conocidos.

Además:

* El uso de un diseño de núcleo de procesamiento comprobado sin cambios en la arquitectura reduce significativamente el riesgo de diseño.
* Para los procesadores de propósito general, gran parte de la motivación para los procesadores multinúcleo proviene de la gran disminución de las ganancias en el rendimiento del procesador al aumentar la frecuencia operativa. Esto se debe a tres factores principales:
   * El muro de la memoria; la creciente brecha entre las velocidades del procesador y la memoria. Esto, en efecto, empuja a que los tamaños de caché sean mayores para enmascarar la latencia de la memoria. Esto ayuda solo en la medida en que el ancho de banda de la memoria no sea el cuello de botella en el rendimiento.
   * El muro de la ILP; la creciente dificultad de encontrar suficiente paralelismo en un solo flujo de instrucciones para mantener ocupado un procesador de un solo núcleo de alto rendimiento.
   * El muro de poder; la tendencia de consumir energía que aumenta exponencialmente (y, por lo tanto, también genera calor que aumenta exponencialmente) con cada aumento factorial de la frecuencia de funcionamiento. Este aumento se puede mitigar "reduciendo" el procesador mediante el uso de trazas más pequeñas para la misma lógica. El muro de potencia plantea problemas de fabricación, diseño de sistemas e implementación que no se han justificado frente a las ganancias disminuidas en el rendimiento debido al muro de memoria y al muro de ILP .

Con el fin de continuar brindando mejoras de rendimiento regulares para los procesadores de uso general, los fabricantes como Intel y AMD han recurrido a diseños de múltiples núcleos, sacrificando menores costos de fabricación por un mayor rendimiento en algunas aplicaciones y sistemas. Se están desarrollando arquitecturas multinúcleo, pero también las alternativas. Un competidor especialmente fuerte para los mercados establecidos es la mayor integración de funciones periféricas en el chip.

### Ventajas

La proximidad de múltiples núcleos de CPU en el mismo troquel permite que el circuito de coherencia de caché funcione a una velocidad de reloj mucho más alta de lo que es posible si las señales tienen que viajar fuera del chip. La combinación de CPU equivalentes en un solo chip mejora significativamente el rendimiento de las operaciones de indagación de caché (alternativa: indagación de bus). En pocas palabras, esto significa que las señales entre diferentes CPU viajan distancias más cortas y, por lo tanto, esas señales se degradan menos. Estas señales de mayor calidad permiten enviar más datos en un período de tiempo determinado, ya que las señales individuales pueden ser más breves y no es necesario repetirlas con tanta frecuencia.

Suponiendo que la matriz pueda encajar físicamente en el paquete, los diseños de CPU multinúcleo requieren mucho menos espacio en la placa de circuito impreso (PCB) que los diseños SMP de varios chips. Además, un procesador de doble núcleo usa un poco menos de energía que dos procesadores de un solo núcleo acoplados, principalmente debido a la menor energía requerida para impulsar señales externas al chip. Además, los núcleos comparten algunos circuitos, como la memoria caché L2 y la interfaz con el bus frontal (FSB). En términos de tecnologías competidoras para el área de matriz de silicio disponible, el diseño multinúcleo puede hacer uso de diseños probados de bibliotecas de núcleos de CPU y producir un producto con menor riesgo de error de diseño que idear un nuevo diseño de núcleo más ancho. Además, agregar más caché adolece de rendimientos decrecientes.

Los chips multinúcleo también permiten un mayor rendimiento con menos energía. Esto puede ser un factor importante en los dispositivos móviles que funcionan con baterías. Dado que cada núcleo en una CPU multinúcleo generalmente es más eficiente energéticamente, el chip se vuelve más eficiente que tener un solo núcleo monolítico grande. Esto permite un mayor rendimiento con menos energía. Sin embargo, un desafío en esto es la sobrecarga adicional de escribir código paralelo.

### Desventajas

Maximizar el uso de los recursos informáticos proporcionados por los procesadores multinúcleo requiere ajustes tanto en el soporte del sistema operativo (SO) como en el software de aplicación existente. Además, la capacidad de los procesadores multinúcleo para aumentar el rendimiento de las aplicaciones depende del uso de varios subprocesos dentro de las aplicaciones.

La integración de un chip multinúcleo puede reducir los rendimientos de producción de chips. También son más difíciles de administrar térmicamente que los diseños de un solo núcleo de menor densidad. Intel ha contrarrestado parcialmente este primer problema mediante la creación de sus diseños de cuatro núcleos mediante la combinación de dos de doble núcleo en una sola matriz con un caché unificado, por lo tanto, se pueden usar dos matrices de doble núcleo que funcionen, en lugar de producir cuatro núcleos en una sola matriz. un solo troquel y requiere que los cuatro funcionen para producir una CPU de cuatro núcleos. Desde un punto de vista arquitectónico, en última instancia, los diseños de una sola CPU pueden hacer un mejor uso del área de superficie de silicio que los núcleos de procesamiento múltiple, por lo que un compromiso de desarrollo con esta arquitectura puede conllevar el riesgo de obsolescencia. Finalmente, la potencia de procesamiento bruta no es la única restricción en el rendimiento del sistema. Dos núcleos de procesamiento que comparten el mismo bus del sistema y el ancho de banda de la memoria limitan la ventaja de rendimiento en el mundo real. En un informe de 2009, el Dr. Jun Ni mostró que si un solo núcleo está cerca de tener un ancho de banda de memoria limitado, pasar a dos núcleos podría brindar una mejora del 30% al 70%; si el ancho de banda de la memoria no es un problema, se puede esperar una mejora del 90%; sin embargo, la ley de Amdahl hace que esta afirmación sea dudosa. Sería posible que una aplicación que usa dos CPU terminara ejecutándose más rápido en una de un solo núcleo si la comunicación entre las CPU fuera el factor limitante, lo que contaría como una mejora de más del 100%.

## Hardware

### Tendencias

La tendencia en el desarrollo de procesadores ha sido hacia un número cada vez mayor de núcleos, ya que los procesadores con cientos o incluso miles de núcleos se vuelven teóricamente posibles. Además, los chips multinúcleo combinados con subprocesos múltiples simultáneos, memoria en chip y núcleos "heterogéneos" (o asimétricos) de propósito especial prometen mayores ganancias de rendimiento y eficiencia, especialmente en el procesamiento de aplicaciones multimedia, de reconocimiento y de redes. Por ejemplo, el núcleo big.LITTLE incluye un núcleo de alto rendimiento (llamado 'big') y un núcleo de bajo consumo (llamado 'LITTLE'). También hay una tendencia hacia la mejora de la eficiencia energética centrándose en el rendimiento por vatio con gestión avanzada de energía de grano fino o ultrafino y escalado dinámico de voltaje y frecuencia (es decir, computadoras portátiles y reproductores multimedia portátiles).

Los chips diseñados desde el principio para una gran cantidad de núcleos (en lugar de haber evolucionado a partir de diseños de un solo núcleo) a veces se denominan diseños de muchos núcleos, lo que enfatiza las diferencias cualitativas.

### Arquitectura

La composición y el equilibrio de los núcleos en la arquitectura multinúcleo muestran una gran variedad. Algunas arquitecturas usan un diseño de núcleo repetido consistentemente ("homogéneo"), mientras que otras usan una combinación de diferentes núcleos, cada uno optimizado para una función diferente y "heterogénea".

La forma en que se implementan e integran varios núcleos afecta significativamente tanto las habilidades de programación del desarrollador como las expectativas del consumidor sobre las aplicaciones y la interactividad frente al dispositivo. Un dispositivo anunciado como octa-core solo tendrá núcleos independientes si se anuncia como True Octa-core, o un estilo similar, en lugar de ser simplemente dos conjuntos de cuatro núcleos, cada uno con velocidades de reloj fijas.

El artículo "Los diseñadores de CPU debaten el futuro multinúcleo" de Rick Merritt, EE Times 2008, incluye estos comentarios:

   [...] Atsushi Hasegawa, un ingeniero jefe sénior en Renesas, generalmente estuvo de acuerdo. Sugirió que el uso del teléfono celular de muchos núcleos especiales trabajando en concierto es un buen modelo para futuros diseños de múltiples núcleos.

## Efectos de software

Una versión desactualizada de una aplicación antivirus puede crear un nuevo subproceso para un proceso de escaneo, mientras que su subproceso GUI espera comandos del usuario (por ejemplo, cancelar el escaneo). En tales casos, una arquitectura multinúcleo es de poco beneficio para la aplicación en sí debido a que el único subproceso hace todo el trabajo pesado y la incapacidad de equilibrar el trabajo de manera uniforme en varios núcleos. La programación de código verdaderamente multiproceso a menudo requiere una coordinación compleja de los subprocesos y puede introducir fácilmente errores sutiles y difíciles de encontrar debido al entretejido del procesamiento de datos compartidos entre subprocesos (ver seguridad de subprocesos). En consecuencia, dicho código es mucho más difícil de depurar que el código de un solo subproceso cuando se rompe. Se ha percibido una falta de motivación para escribir aplicaciones con subprocesos a nivel del consumidor debido a la relativa rareza de la demanda a nivel del consumidor para el uso máximo del hardware de la computadora. Además, las tareas en serie, como la decodificación de los algoritmos de codificación de entropía utilizados en los códecs de video, son imposibles de paralelizar porque cada resultado generado se usa para ayudar a crear el siguiente resultado del algoritmo de decodificación de entropía.

Dado el énfasis cada vez mayor en el diseño de chips multinúcleo, derivado de los graves problemas térmicos y de consumo de energía que plantea cualquier aumento adicional significativo en las velocidades de reloj del procesador, es probable que la medida en que el software pueda ser multiproceso para aprovechar estos nuevos chips sea la mayor limitación individual en el rendimiento de la computadora en el futuro. Si los desarrolladores no pueden diseñar software para aprovechar al máximo los recursos proporcionados por múltiples núcleos, finalmente alcanzarán un techo de rendimiento insuperable.

El mercado de las telecomunicaciones fue uno de los primeros que necesitó un nuevo diseño de procesamiento de paquetes de ruta de datos en paralelo porque hubo una adopción muy rápida de estos procesadores de múltiples núcleos para la ruta de datos y el plano de control. Estas MPU van a reemplazar a los procesadores de red tradicionales que se basaban en microcódigo o picocódigo propietario.

Las técnicas de programación en paralelo pueden beneficiarse directamente de varios núcleos. Algunos modelos de programación paralela existentes, como Cilk Plus, OpenMP, OpenHMPP, FastFlow, Skandium, MPI y Erlang, se pueden usar en plataformas multinúcleo. Intel introdujo una nueva abstracción para el paralelismo de C++ llamada TBB. Otros esfuerzos de investigación incluyen Codeplay Sieve System, Cray's Chapel, Sun's Fortress y IBM's X10.

El procesamiento multinúcleo también ha afectado la capacidad de desarrollo de software computacional moderno. Los desarrolladores que programan en lenguajes más nuevos pueden descubrir que sus lenguajes modernos no son compatibles con la funcionalidad multinúcleo. Esto requiere el uso de bibliotecas numéricas para acceder al código escrito en lenguajes como C y Fortran, que realizan cálculos matemáticos más rápido que los lenguajes más nuevos como C#. MKL de Intel y ACML de AMD están escritos en estos idiomas nativos y aprovechan el procesamiento multinúcleo. Equilibrar la carga de trabajo de la aplicación entre procesadores puede ser problemático, especialmente si tienen diferentes características de rendimiento. Existen diferentes modelos conceptuales para tratar el problema, por ejemplo, utilizando un lenguaje de coordinación y bloques de construcción de programas (bibliotecas de programación o funciones de orden superior). Cada bloque puede tener una implementación nativa diferente para cada tipo de procesador. Los usuarios simplemente programan usando estas abstracciones y un compilador inteligente elige la mejor implementación según el contexto.

La gestión de la concurrencia adquiere un papel central en el desarrollo de aplicaciones paralelas. Los pasos básicos en el diseño de aplicaciones paralelas son:

### Fraccionamiento

    La etapa de partición de un diseño pretende exponer oportunidades para la ejecución paralela. Por lo tanto, la atención se centra en definir un gran número de tareas pequeñas para producir lo que se denomina una descomposición detallada de un problema.

### Comunicación

    Las tareas generadas por una partición están destinadas a ejecutarse simultáneamente pero, en general, no pueden ejecutarse de forma independiente. El cálculo a realizar en una tarea normalmente requerirá datos asociados con otra tarea. Luego, los datos deben transferirse entre tareas para permitir que continúe el cálculo. Este flujo de información se especifica en la fase de comunicación de un diseño.

### Aglomeración

    En la tercera etapa, el desarrollo pasa de lo abstracto a lo concreto. Los desarrolladores revisan las decisiones tomadas en las fases de partición y comunicación con miras a obtener un algoritmo que se ejecutará de manera eficiente en algún tipo de computadora paralela. En particular, los desarrolladores consideran si es útil combinar o aglomerar las tareas identificadas por la fase de particionamiento, para proporcionar un número menor de tareas, cada una de mayor tamaño. También determinan si vale la pena replicar los datos y el cálculo.

### Cartografía

    En la cuarta y última etapa del diseño de algoritmos paralelos, los desarrolladores especifican dónde se ejecutará cada tarea. Este problema de mapeo no surge en monoprocesadores o en computadoras de memoria compartida que brindan programación automática de tareas.

Por otro lado, del lado del servidor, los procesadores multinúcleo son ideales porque permiten que muchos usuarios se conecten a un sitio simultáneamente y tienen hilos de ejecución independientes. Esto permite que los servidores web y los servidores de aplicaciones tengan un rendimiento mucho mejor.

### Licencia

Los proveedores pueden licenciar algún software "por procesador". Esto puede generar ambigüedad, porque un "procesador" puede consistir en un solo núcleo o en una combinación de núcleos.

* Inicialmente, para parte de su software empresarial, Microsoft siguió utilizando un sistema de licencias por socket. Sin embargo, para algunos software como BizTalk Server 2013, SQL Server 2014 y Windows Server 2016, Microsoft ha cambiado a licencias por núcleo.
* Oracle Corporation cuenta una CPU AMD X2 o Intel de doble núcleo como un solo procesador pero usa otras métricas para otros tipos, especialmente para procesadores con más de dos núcleos.

## Aplicaciones integradas

La computación integrada opera en un área de tecnología de procesador distinta de la de las PC "convencionales". Los mismos impulsos tecnológicos hacia multinúcleo también se aplican aquí. De hecho, en muchos casos, la aplicación se adapta "naturalmente" a las tecnologías multinúcleo, si la tarea se puede dividir fácilmente entre los diferentes procesadores.

Además, el software incorporado generalmente se desarrolla para una versión de hardware específica, lo que hace que los problemas de portabilidad del software, código heredado o soporte para desarrolladores independientes sean menos críticos que en el caso de la informática empresarial o de PC. Como resultado, es más fácil para los desarrolladores adoptar nuevas tecnologías y, como resultado, hay una mayor variedad de arquitecturas y proveedores de procesamiento multinúcleo.

## Procesadores de red

En 2010, los procesadores de red multinúcleo se han convertido en la corriente principal, con empresas como Freescale, Cavium Networks, Wintegra y Broadcom, todas fabricando productos con ocho procesadores. Para el desarrollador de sistemas, un desafío clave es cómo explotar todos los núcleos de estos dispositivos para lograr el máximo rendimiento de red a nivel del sistema, a pesar de las limitaciones de rendimiento inherentes a un sistema operativo de multiprocesamiento simétrico (SMP). Empresas como 6WIND ofrecen software portátil de procesamiento de paquetes diseñado para que el plano de datos de la red se ejecute en un entorno de ruta rápida fuera del sistema operativo del dispositivo de red.

## Procesamiento de señales digitales

En el procesamiento de señales digitales se aplica la misma tendencia: Texas Instruments tiene el TMS320C6488 de tres núcleos y el TMS320C5441 de cuatro núcleos, Freescale el MSC8144 de cuatro núcleos y el MSC8156 de seis núcleos (y ambos han declarado que están trabajando en sucesores de ocho núcleos). Las entradas más recientes incluyen la familia Storm-1 de Stream Processors, Inc con 40 y 80 ALU de propósito general por chip, todas programables en C como un motor SIMD y Picochip con 300 procesadores en un solo troquel, enfocado en aplicaciones de comunicación.

## Sistemas heterogéneos

En la computación heterogénea, donde un sistema utiliza más de un tipo de procesador o núcleos, las soluciones multinúcleo son cada vez más comunes: Xilinx Zynq UltraScale+ MPSoC tiene un ARM Cortex-A53 de cuatro núcleos y un ARM Cortex-R5 de dos núcleos. Las soluciones de software como OpenAMP se utilizan para ayudar con la comunicación entre procesadores.

Los dispositivos móviles pueden usar arquitectura ARM big.LITTLE.

## Ejemplos de hardware

### Comercial

* Adapteva Epiphany, una arquitectura de procesador de muchos núcleos que permite hasta 4096 procesadores en el chip, aunque solo se ha producido comercialmente una versión de 16 núcleos.
* Aeroflex Gaisler LEON3, un SPARC multinúcleo que también existe en una versión tolerante a fallas.
* Ageia PhysX, una unidad de procesamiento de física multinúcleo.
* Ambric Am2045, una matriz de procesador masivamente paralelo (MPPA) de 336 núcleos
* AMD
   * Unidades de procesador acelerado (APU) de la serie A, de dos, tres y cuatro núcleos.
   * Procesadores de escritorio Athlon 64 FX y Athlon 64 X2 de uno y dos núcleos.
   * Procesadores de escritorio Athlon II, dual, triple y quad-core.
   * Procesadores de escritorio de la serie FX, de cuatro, 6 y 8 núcleos.
   * Procesadores Opteron de servidor/estación de trabajo de uno, dos, cuatro, 6, 8, 12 y 16 núcleos.
   * Procesadores Phenom, de dos, tres y cuatro núcleos.
   * Phenom II, procesadores de escritorio de doble, triple, cuádruple y 6 núcleos.
   * Procesadores básicos Sempron de uno, dos y cuatro núcleos.
   * Procesadores para portátiles Turion, de uno y dos núcleos.
   * Ryzen, procesadores de plataforma integrados, móviles y de escritorio de dos, cuatro, 6, 8, 12, 16, 24, 32 y 64 núcleos.
   * Epyc, servidor de cuatro, 8, 12, 16, 24, 32 y 64 núcleos y procesadores integrados.
   * Radeon y FireStream GPU/GPGPU.
* Analog Devices Blackfin BF561, un procesador de doble núcleo simétrico
* ARM MPCore es un contenedor multinúcleo totalmente sintetizable para núcleos de procesador ARM11 MPCore y ARM Cortex-A9 MPCore, diseñado para aplicaciones integradas y de entretenimiento de alto rendimiento.
* ASOCS ModemX, hasta 128 núcleos, aplicaciones inalámbricas.
* Azul Systems
   * Vega 1, un procesador de 24 núcleos, lanzado en 2005.
   * Vega 2, un procesador de 48 núcleos, lanzado en 2006.
   * Vega 3, un procesador de 54 núcleos, lanzado en 2008.
* Broadcom SiByte SB1250, SB1255, SB1455; SoC ARM de cuatro núcleos BCM 2836 (diseñado para Raspberry Pi 2)
* Cadence Design Systems Tensilica Xtensa LX6, disponible en una configuración de doble núcleo en ESP32 de Espressif Systems
* ClearSpeed
   * CSX700, procesador de 192 núcleos, lanzado en 2008 (coma flotante de 32/64 bits; Integer ALU).
* Cradle Technologies CT3400 y CT3600, ambos DSP multinúcleo.
* Cavium Networks Octeon, una MPU MIPS de 32 núcleos.
* Procesador Coherent Logix hx3100, un procesador DSP/GPP de 100 núcleos.
* Procesadores de la serie Freescale Semiconductor QorIQ, hasta 8 núcleos, Power ISA MPU .
* Hewlett-Packard PA-8800 y PA-8900, procesadores PA-RISC de doble núcleo.
* IBM
   * POWER4, un procesador PowerPC de doble núcleo, lanzado en 2001.
   * POWER5, un procesador PowerPC de doble núcleo, lanzado en 2004.
   * POWER6, un procesador PowerPC de doble núcleo, lanzado en 2007.
   * POWER7, un procesador PowerPC de 4,6,8 núcleos, lanzado en 2010.
   * POWER8, un procesador PowerPC de 12 núcleos, lanzado en 2013.
   * POWER9, un procesador PowerPC de 12 o 24 núcleos, lanzado en 2017.
   * Power10, un procesador PowerPC de 15 o 30 núcleos, lanzado en 2021.
   * PowerPC 970 MP, un procesador PowerPC de doble núcleo, utilizado en Apple Power Mac G5 .
   * Xenon, un microprocesador PowerPC de tres núcleos con capacidad SMT que se utiliza en la consola de juegos Microsoft Xbox 360.
   * z10, un procesador z/Architecture de cuatro núcleos, lanzado en 2008.
   * z196, un procesador z/Architecture de cuatro núcleos, lanzado en 2010.
   * zEC12, un procesador z/Architecture de seis núcleos, lanzado en 2012.
   * z13, un procesador z/Architecture de ocho núcleos, lanzado en 2015.
   * z14, un procesador z/Architecture de diez núcleos, lanzado en 2017.
   * z15, un procesador z/Architecture de doce núcleos, lanzado en 2019.
   * Telum, un procesador z/Architecture de ocho núcleos, lanzado en 2021.
* Infineon
   * AURIX
   * Danube, un procesador de puerta de enlace doméstico de doble núcleo basado en MIPS.
* Intel
   * Procesadores Atom, de un solo núcleo, de dos núcleos, de cuatro núcleos, de 8, 12 y 16 núcleos para netbooks, nettops, aplicaciones integradas y dispositivos móviles de Internet (MID).
   * Atom SoC (sistema en un chip), procesadores de un solo núcleo, dos núcleos y cuatro núcleos para teléfonos inteligentes y tabletas.
   * Celeron, el primer procesador de doble núcleo (y, más tarde, de cuatro núcleos) para el mercado económico/de nivel de entrada.
   * Core Duo, un procesador de doble núcleo.
   * Core 2 Duo, un procesador de doble núcleo.
   * Core 2 Quad, 2 troqueles de doble núcleo empaquetados en un módulo multichip.
   * Core i3, Core i5, Core i7 y Core i9, una familia de procesadores de dos, cuatro, 6, 8, 10, 12, 14, 16 y 18 núcleos, y el sucesor del Core 2 Duo y Core 2 Quad.
   * Procesadores Itanium, de un solo núcleo, de dos núcleos, de cuatro núcleos y de ocho núcleos.
   * Procesadores Pentium, de uno, dos y cuatro núcleos para el mercado básico.
   * Chip de investigación Teraflops (Polaris), un prototipo de procesador de 80 núcleos a 3,16 GHz, que la empresa declaró originalmente que se lanzaría en 2011.
   * Xeon doble, cuádruple, 6, 8, 10, 12, 14, 15, 16, 18, 20, 22, 24, 26, 28, 32, 48 -, y procesadores de 56 núcleos.
   * Procesadores Xeon Phi de 57, 60, 61, 64, 68 y 72 núcleos.
* IntellaSys
   * SEAforth 40C18, un procesador de 40 núcleos.
   * SEAforth24, un procesador de 24 núcleos diseñado por Charles H. Moore .
* Kalray
   * MPPA-256, procesador de 256 núcleos, lanzado en 2012 (256 núcleos VLIW utilizables, Network-on-Chip (NoC), FPU compatible con IEEE 754 de 32/64 bits)
* Microsistemas NetLogic
   * XLP, un procesador MIPS64 de cuatro hilos y 32 núcleos.
   * XLR, un procesador MIPS64 de cuatro hilos y ocho núcleos.
   * XLS, un procesador MIPS64 de cuatro hilos y ocho núcleos.
* Nvidia
   * RTX 3090 (10496 núcleos CUDA, núcleos GPGPU; más otros núcleos más especializados).
* Parallax Propeller P8X32, un microcontrolador de ocho núcleos.
* serie picoChip PC200 200–300 núcleos por dispositivo para DSP e inalámbrico.
* Serie HAL de pluralidad estrechamente acoplada de 16 a 256 núcleos, memoria compartida L1, procesador sincronizado por hardware.
* Rapport Kilocore KC256, un microcontrolador de 257 núcleos con un núcleo PowerPC y 256 "elementos de procesamiento" de 8 bits.
* SiCortex El "nodo SiCortex" tiene seis núcleos MIPS64 en un solo chip.
* <a href="https://en.wikipedia.org/wiki/SiFive" rel="mw:ExtLink" title="SiFive" class="cx-link" data-linkid="513">SiFive</a>
   * U74 incluye 4 núcleos
* Procesador Cell de Sony / IBM / Toshiba, un procesador de nueve núcleos con un núcleo PowerPC de uso general y ocho SPU (Unidad de procesamiento sinérgico) especializadas optimizadas para operaciones vectoriales utilizadas en Sony PlayStation 3 .
* microsistemas de sol
   * MAJC 5200, procesador VLIW de dos núcleos.
   * UltraSPARC IV y UltraSPARC IV+, procesadores de doble núcleo.
   * UltraSPARC T1, un procesador de ocho núcleos y 32 hilos.
   * UltraSPARC T2, un procesador de ocho núcleos y 64 subprocesos simultáneos.
   * UltraSPARC T3, un procesador de dieciséis núcleos y 128 subprocesos simultáneos.
   * SPARC T4, un procesador de ocho núcleos y 64 subprocesos simultáneos.
   * SPARC T5, un procesador de dieciséis núcleos y 128 subprocesos simultáneos.
* Sunway
   * Sunway SW26010, un procesador de 260 núcleos utilizado en Sunway TaihuLight .
* Instrumentos Texas
   * TMS320C80 MVP, un procesador de video multimedia de cinco núcleos.
   * TMS320TMS320C66, DSP de 2,4,8 núcleos.
* Tilera
   * TILE64, un procesador de 32 bits de 64 núcleos.
   * TILE-Gx, un procesador de 72 núcleos y 64 bits.
* XMOS Software Defined Silicon quad-core XS1-G4.

### Libre

* OpenSPARC

### Académico

* MIT, procesador RAW de 16 núcleos
* Universidad de California, Davis, matriz asíncrona de procesadores simples (AsAP)
   * 36 núcleos 610MHz lo antes posible
   * 167 núcleos 1.2GHz como AP2
* Universidad de Washington, procesador Wavescalar
* Universidad de Texas, Austin, procesador TRIPS
* Universidad de Linköping, Suecia, procesador ePUMA
* UC Davis, Kilocore, un procesador de 1000 núcleos a 1,78 GHz en un proceso IBM de 32 nm.

## Puntos de referencia

La investigación y el desarrollo de procesadores multinúcleo a menudo comparan muchas opciones, y se desarrollan puntos de referencia para ayudar en dichas evaluaciones. Los puntos de referencia existentes incluyen SPLASH-2, PARSEC y COSMIC para sistemas heterogéneos.

