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
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 mismotroquel 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]
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ónsuperescalar, 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.[9][10]
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:[11]
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.[12]
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.[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
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.[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
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
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
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.
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.[22]
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.[23]
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.
ARMMPCore 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)
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]
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 SonyPlayStation 3 .
UC Davis, Kilocore, un procesador de 1000 núcleos a 1,78 GHz en un proceso IBM de 32 nm.[45]
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.[46]
↑Patterson, David A. "Future of computer architecture." Berkeley EECS Annual Research Symposium (BEARS), College of Engineering, UC Berkeley, US. 2006.
↑«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».
↑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.