Procesador multinúcleo

De Wikipedia, la enciclopedia libre
(Redirigido desde «Multinúcleo»)
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 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.[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 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,[3]​ 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).[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]

Terminología[editar]

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[7]​).[8]

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[editar]

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[editar]

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.[9][10]

Factores técnicos[editar]

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:[11]
    1. 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.
    2. 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.
    3. 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[editar]

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.[12]

Desventajas[editar]

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.[13]​ 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[editar]

Tendencias[editar]

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.[14]​ 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[editar]

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.[15]​ 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.[16][17]

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

Chuck Moore [. ..] sugirió que las computadoras deberían ser como teléfonos celulares, utilizando una variedad de núcleos especiales para ejecutar software modular programado por una interfaz de programación de aplicaciones de alto nivel.

[...] 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.

[...] Anant Agarwal, fundador y director ejecutivo de la startup Tilera, tomó el punto de vista opuesto. Dijo que los chips de múltiples núcleos deben ser colecciones homogéneas de núcleos de propósito general para mantener el modelo de software simple.

Efectos de software[editar]

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[19]​ 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.[20]

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[editar]

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.

Aplicaciones integradas[editar]

Un sistema integrado en una tarjeta enchufable con procesador, memoria, fuente de alimentación e interfaces externas

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[editar]

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.[23]

Procesamiento de señales digitales[editar]

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[editar]

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[editar]

Comercial[editar]

  • 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.[24]
    • 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
  • 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).[25]
    • 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.[26]
    • 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.[27][28]
    • Core Duo, un procesador de doble núcleo.[29]
    • Core 2 Duo, un procesador de doble núcleo.[30]
    • Core 2 Quad, 2 troqueles de doble núcleo empaquetados en un módulo multichip.[31]
    • 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.[32]
    • Procesadores Itanium, de un solo núcleo, de dos núcleos, de cuatro núcleos y de ocho núcleos.[33]
    • Procesadores Pentium, de uno, dos y cuatro núcleos para el mercado básico.[34]
    • 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.[35]
    • 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.[36][37][38][39][40][41]
    • Procesadores Xeon Phi de 57, 60, 61, 64, 68 y 72 núcleos.[42][43]
  • IntellaSys
    • SEAforth 40C18, un procesador de 40 núcleos.[44]
    • 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;[3]​ 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
  • 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[editar]

Académico[editar]

Puntos de referencia[editar]

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.[46]

Véase también[editar]

Referencias[editar]

  1. Rouse, Margaret (27 de marzo de 2007). «Definition: multi-core processor». TechTarget. Archivado desde el original el 5 de agosto de 2010. Consultado el 6 de marzo de 2013. 
  2. Schauer, Bryan. «Multicore Processors – A Necessity». Archivado desde el original el 25 de noviembre de 2011. 
  3. a b Smith, Ryan. «NVIDIA Announces the GeForce RTX 30 Series: Ampere For Gaming, Starting With RTX 3080 & RTX 3090». www.anandtech.com. Consultado el 4 de febrero de 2023. 
  4. «Sunway TaihuLight - Sunway MPP, Sunway SW26010 260C 1.45GHz, Sunway | TOP500». www.top500.org. Consultado el 15 de septiembre de 2020. 
  5. Suleman, Aater (20 de mayo de 2011). «What makes parallel programming hard?». FutureChips. Archivado desde el original el 29 de mayo de 2011. Consultado el 6 de marzo de 2013. 
  6. Duran, A (2011). «Ompss: a proposal for programming heterogeneous multi-core architectures». Parallel Processing Letters 21 (2): 173-193. doi:10.1142/S0129626411000151. 
  7. Schor, David (noviembre de 2017). «The 2,048-core PEZY-SC2 sets a Green500 record». WikiChip. 
  8. Vajda, András (10 de junio de 2011). Programming Many-Core Chips. Springer. p. 3. ISBN 978-1-4419-9739-5. 
  9. Shrout, Ryan (2 de diciembre de 2009). «Intel Shows 48-core x86 Processor as Single-chip Cloud Computer». Archivado desde el original el 5 de enero de 2016. Consultado el 17 de mayo de 2015. 
  10. «Intel unveils 48-core cloud computing silicon chip». BBC. 3 de diciembre de 2009. Archivado desde el original el 6 de diciembre de 2012. Consultado el 6 de marzo de 2013. 
  11. Patterson, David A. "Future of computer architecture." Berkeley EECS Annual Research Symposium (BEARS), College of Engineering, UC Berkeley, US. 2006.
  12. Suleman, Aater (19 de mayo de 2011). «Q & A: Do multicores save energy? Not really.». Archivado desde el original el 16 de diciembre de 2012. Consultado el 6 de marzo de 2013. 
  13. Ni, Jun. «Enabling Technology of Multi-core Computing for Medical Imaging». Archivado desde el original el 5 de julio de 2010. Consultado el 17 de febrero de 2013. 
  14. Clark, Jack. «Intel: Why a 1,000-core chip is feasible». ZDNet. Archivado desde el original el 6 de agosto de 2015. Consultado el 6 de agosto de 2015. 
  15. Kudikala, Chakri (Aug 27, 2016). «These 5 Myths About the Octa-Core Phones Are Actually True». Giz Bot. 
  16. «MediaTeck Launches MT6592 True Octa-core Mobile Platform». MediaTek. 20 de noviembre de 2013. 
  17. «What is an Octa-core processor». Samsung. «Galaxy smartphones run on either Octa-core (2.3GHz Quad + 1.6GHz Quad) or Quad-core (2.15GHz + 1.6GHz Dual) processors ». 
  18. Merritt, Rick (6 de febrero de 2008). «CPU designers debate multi-core future». EE Times. Archivado desde el original el 14 de noviembre de 2012. Consultado el 6 de marzo de 2013. 
  19. «Multicore Packet Processing Forum». Archivado desde el original el 21 de diciembre de 2009. 
  20. John Darlinton; Moustafa Ghanem; Yike Guo; Hing Wing To (1996). «Guided Resource Organisation in Heterogeneous Parallel Computing». Journal of High Performance Computing 4 (1): 13-23. 
  21. Bright, Peter (4 de diciembre de 2015). «Windows Server 2016 moving to per core, not per socket, licensing». Ars Technica. Condé Nast. Archivado desde el original el 4 de diciembre de 2015. Consultado el 5 de diciembre de 2015. 
  22. Compare: «The Licensing Of Oracle Technology Products». OMT-CO Operations Management Technology Consulting GmbH. Archivado desde el original el 21 de marzo de 2014. Consultado el 4 de marzo de 2014. 
  23. «Virtual Service Router | vPE | vSecGW | vCSR | vCGNAT». 6WIND (en inglés estadounidense). Consultado el 4 de febrero de 2023. 
  24. «Sempron™ 3850 APU with Radeon™ R3 Series | AMD». AMD. Archivado desde el original el 4 de mayo de 2019. Consultado el 5 de mayo de 2019. 
  25. «Intel® Atom™ Processor C Series Product Specifications». ark.intel.com (en inglés). Consultado el 4 de mayo de 2019. 
  26. «Intel® Atom™ Processor Z Series Product Specifications». ark.intel.com (en inglés). Consultado el 4 de mayo de 2019. 
  27. «Intel Preps Dual-Core Celeron Processors». 11 de octubre de 2007. Archivado desde el original el 4 de noviembre de 2007. Consultado el 12 de noviembre de 2007. 
  28. «Intel® Celeron® Processor J Series Product Specifications». ark.intel.com (en inglés). Consultado el 4 de mayo de 2019. 
  29. «Products formerly Yonah». ark.intel.com. Consultado el 4 de mayo de 2019. 
  30. «Products formerly Conroe». ark.intel.com. Consultado el 4 de mayo de 2019. 
  31. «Products formerly Kentsfield». ark.intel.com. Consultado el 4 de mayo de 2019. 
  32. «Intel® Core™ X-series Processors Product Specifications». ark.intel.com (en inglés). Consultado el 4 de mayo de 2019. 
  33. «Intel® Itanium® Processor Product Specifications». ark.intel.com (en inglés). Consultado el 4 de mayo de 2019. 
  34. «Intel® Pentium® Processor D Series Product Specifications». ark.intel.com (en inglés). Consultado el 4 de mayo de 2019. 
  35. Zazaian, Mike (26 de septiembre de 2006). «Intel: 80 Cores by 2011». Archivado desde el original el 9 de noviembre de 2006. Consultado el 28 de septiembre de 2006. 
  36. Kowaliski, Cyril (18 de febrero de 2014). «Intel releases 15-core Xeon E7 v2 processor». Archivado desde el original el 11 de octubre de 2014. 
  37. «Intel Xeon Processor E7 v3 Family». Intel. Archivado desde el original el 7 de julio de 2015. 
  38. «Intel Xeon Processor E7 v2 Family». Intel. Archivado desde el original el 7 de julio de 2015. 
  39. «Intel Xeon Processor E3 v2 Family». Intel. Archivado desde el original el 7 de julio de 2015. 
  40. «Intel shows off Xeon Platinum CPU with up to 56 cores and 112 threads». TechSpot (en inglés estadounidense). Consultado el 4 de mayo de 2019. 
  41. PDF, Download. «2nd Gen Intel® Xeon® Scalable Processors Brief». Intel (en inglés). Consultado el 4 de mayo de 2019. 
  42. «Intel® Xeon Phi™ x100 Product Family Product Specifications». ark.intel.com (en inglés). Consultado el 4 de mayo de 2019. 
  43. «Intel® Xeon Phi™ 72x5 Processor Family Product Specifications». ark.intel.com (en inglés). Consultado el 4 de mayo de 2019. 
  44. Cole, Bernard (24 de septiembre de 2008). «40-core processor with Forth-based IDE tools unveiled». 
  45. Chacos, Brad (20 de junio de 2016). «Meet KiloCore, a 1,000-core processor so efficient it could run on a AA battery». PC World. Archivado desde el original el 23 de junio de 2016. 
  46. «COSMIC Heterogeneous Multiprocessor Benchmark Suite». Archivado desde el original el 3 de julio de 2015. 

Otras lecturas[editar]

  • . 17th International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA-11). julio de 2011. pp. 551-557. 
  • . The 20th IEEE International Conference on High Performance Computer Architecture (HPCA-14) workshop. febrero de 2014. doi:10.13140/RG.2.1.3051.9207. 

Enlaces externos[editar]