Procesador multinúcleo

Microprocesador con más de una unidad de procesamiento
Diagrama de un procesador de doble núcleo genérico con cachés de nivel 1 locales de CPU y un caché de nivel 2 compartido en la matriz
Un procesador de doble núcleo Intel Core 2 Duo E6750
Un procesador de doble núcleo AMD Athlon X2 6400+

Un procesador multinúcleo ( MCP ) es un microprocesador en un solo circuito integrado (CI) con dos o más unidades centrales de procesamiento (CPU) separadas, llamadas núcleos para enfatizar su multiplicidad (por ejemplo, núcleo dual o núcleo cuádruple ). Cada núcleo lee y ejecuta instrucciones de programa , [1] específicamente instrucciones de CPU ordinarias (como agregar, mover datos y bifurcar). Sin embargo, el MCP puede ejecutar instrucciones en núcleos separados al mismo tiempo, lo que aumenta la velocidad general para programas que admiten subprocesos múltiples u otras técnicas de computación paralela . [2] Los fabricantes generalmente integran los núcleos en una sola matriz de CI , conocida como multiprocesador de chip (CMP), o en múltiples matrices en un solo paquete de chip . A partir de 2024, los microprocesadores utilizados en casi todas las computadoras personales nuevas son multinúcleo.

Un procesador multinúcleo implementa el multiprocesamiento en un único paquete físico. Los diseñadores pueden acoplar núcleos en un dispositivo multinúcleo de forma estrecha o flexible. Por ejemplo, los núcleos pueden o no compartir cachés y pueden implementar métodos de comunicación entre núcleos mediante paso de mensajes o memoria compartida . Las topologías de red comunes que se utilizan para interconectar núcleos incluyen bus , anillo , malla bidimensional y barra transversal . Los sistemas multinúcleo homogéneos incluyen solo núcleos idénticos; los sistemas multinúcleo heterogéneos tienen núcleos que no son idénticos (por ejemplo, big.LITTLE tiene núcleos heterogéneos que comparten el mismo conjunto de instrucciones , mientras que las unidades de procesamiento acelerado 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 sistemas multinúcleo pueden implementar arquitecturas como VLIW , superscalar , vector o multithreading .

Los procesadores multinúcleo se utilizan ampliamente en muchos dominios de aplicación, incluidos los de propósito general , los integrados , las redes , el procesamiento de señales digitales (DSP) y los gráficos (GPU). El número de núcleos llega incluso a docenas, y en el caso de chips especializados, más de 10 000 [3], y en supercomputadoras (es decir, clústeres de chips), el número puede superar los 10 millones (y en un caso, hasta 20 millones de elementos de procesamiento en total, además de los procesadores host). [4]

La mejora del rendimiento que se obtiene con el uso de un procesador multinúcleo depende en gran medida de los algoritmos de software utilizados y de 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 varios núcleos; este efecto se describe mediante la ley de Amdahl . En el mejor de los casos, los llamados problemas vergonzosamente paralelos pueden generar factores de aceleración cercanos al número de núcleos, o incluso más si el problema se divide lo suficiente para que quepa en la memoria caché de cada núcleo, evitando el uso de la memoria principal del sistema, que es mucho más lenta. Sin embargo, la mayoría de las aplicaciones no se aceleran tanto a menos que los programadores inviertan esfuerzo en refactorizarlas . [5]

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

En el mercado de consumo, los procesadores de doble núcleo (es decir, microprocesadores con dos unidades) comenzaron a ser comunes en las computadoras personales a fines de la década de 2000. [7] Los procesadores de cuatro núcleos también se adoptaron en esa época para sistemas de gama alta antes de convertirse en estándar. A fines de la década de 2010, los procesadores hexa-core (seis núcleos) comenzaron a ingresar al mercado general [8] y desde principios de la década de 2020 han superado a los procesadores de cuatro núcleos en muchos espacios. [9]

Terminología

Los términos multinúcleo y doble núcleo se refieren más comúnmente a algún tipo de unidad central de procesamiento (CPU), pero a veces también se aplican a procesadores de señales digitales (DSP) y sistemas en un chip (SoC). Los términos se utilizan generalmente solo para referirse a microprocesadores multinúcleo que se fabrican en la misma matriz de circuito integrado ; las matrices de microprocesadores separadas en el mismo encapsulado generalmente se denominan con otro nombre, como módulo multichip . Este artículo utiliza los términos "multinúcleo" y "doble núcleo" para CPU fabricadas en el mismo circuito integrado, a menos que se indique lo contrario.

A diferencia de los sistemas multinúcleo, el término multiCPU se refiere a múltiples unidades de procesamiento físicamente separadas (que a menudo contienen circuitos especiales para facilitar la comunicación entre sí).

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

Algunos sistemas utilizan muchos núcleos de microprocesadores blandos colocados en un único FPGA . Cada "núcleo" puede considerarse un " núcleo de propiedad intelectual de semiconductores " así como un núcleo de CPU. [ cita requerida ]

Desarrollo

A medida que 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 preocupación importante en el diseño. Estas limitaciones físicas pueden causar problemas significativos de disipación de calor y sincronización de datos. Se utilizan otros métodos para mejorar el rendimiento de la CPU. Algunos métodos de paralelismo a nivel de instrucción (ILP), como la segmentació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 subproceso (TLP), y se utilizan comúnmente 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 de múltiples núcleos.

Incentivos comerciales

Varios motivos comerciales impulsan el desarrollo de arquitecturas multinúcleo. Durante décadas, fue posible mejorar el rendimiento de una CPU reduciendo el área del circuito integrado (CI), lo que redujo el costo por dispositivo en el CI. Alternativamente, para la misma área del circuito, se podían usar más transistores en el diseño, lo que aumentaba la funcionalidad, especialmente para arquitecturas de computación con conjuntos de instrucciones complejos (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 a varios gigahercios a principios de la década de 2000.

A medida que se redujo el ritmo de mejora de la velocidad de reloj, se ha buscado un mayor uso de la computación paralela en forma de procesadores multinúcleo para mejorar el rendimiento general del procesamiento. Se utilizaron múltiples 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 . [12] [13]

Factores técnicos

Dado que los fabricantes de computadoras han implementado desde hace mucho tiempo diseños de multiprocesamiento simétrico (SMP) utilizando CPU discretas, los problemas relacionados con la implementación de una arquitectura de procesador multinúcleo y su soporte con software son bien conocidos.

Además:

  • El uso de un diseño de núcleo de procesamiento probado sin cambios arquitectónicos reduce significativamente el riesgo de diseño.
  • En el caso de los procesadores de uso general, gran parte de la motivación para los procesadores multinúcleo proviene de las grandes disminuciones en el rendimiento del procesador que se obtienen al aumentar la frecuencia de funcionamiento . Esto se debe a tres factores principales: [14]
    1. El muro de la memoria : la brecha cada vez mayor entre la velocidad del procesador y la de la memoria. Esto, en efecto, obliga a que los tamaños de caché sean mayores para ocultar 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 ILP : la creciente dificultad de encontrar suficiente paralelismo en un único flujo de instrucciones para mantener ocupado a un procesador de un solo núcleo de alto rendimiento.
    3. El muro de potencia : la tendencia a consumir una potencia cada vez mayor (y, por lo tanto, a generar también calor exponencialmente mayor) con cada aumento factorial de la frecuencia de funcionamiento. Este aumento se puede mitigar " reduciendo " el tamaño del 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 del sistema e implementación que no se han justificado frente a las menores ganancias en rendimiento debido al muro de memoria y al muro ILP . [ cita requerida ]

Para seguir ofreciendo mejoras regulares de rendimiento para procesadores de uso general, fabricantes como Intel y AMD han recurrido a diseños multinúcleo, sacrificando menores costos de fabricación a cambio de un mayor rendimiento en algunas aplicaciones y sistemas. Se están desarrollando arquitecturas multinúcleo, pero también alternativas. Una opción 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 chip permite que el circuito de coherencia de caché funcione a una velocidad de reloj mucho mayor que la 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 espionaje de caché (alternativa: espionaje 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 cortas y no necesitan repetirse con tanta frecuencia.

Suponiendo que el chip puede encajar físicamente en el encapsulado, los diseños de CPU multinúcleo requieren mucho menos espacio en la placa de circuito impreso (PCB) que los diseños SMP multichip . Además, un procesador de doble núcleo utiliza un poco menos de energía que dos procesadores de un solo núcleo acoplados, principalmente debido a la menor energía necesaria para impulsar señales externas al chip. Además, los núcleos comparten algunos circuitos, como la caché L2 y la interfaz con el bus frontal (FSB). En términos de tecnologías que compiten por el área disponible del chip de silicio, el diseño multinúcleo puede hacer uso de diseños probados de bibliotecas de núcleos de CPU y producir un producto con un 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é sufre de rendimientos decrecientes.

Los chips multinúcleo también permiten un mayor rendimiento con un menor consumo de energía. Esto puede ser un factor importante en los dispositivos móviles que funcionan con baterías. Dado que cada núcleo de una CPU multinúcleo suele ser más eficiente energéticamente, el chip resulta más eficiente que si tuviera un único 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 que supone escribir código en paralelo. [15]

Desventajas

Para maximizar el uso de los recursos informáticos que ofrecen los procesadores multinúcleo es necesario realizar ajustes tanto en la compatibilidad con el sistema operativo (OS) 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 múltiples subprocesos dentro de las aplicaciones.

La integración de un chip multinúcleo puede reducir el rendimiento de producción de chips. También son más difíciles de gestionar térmicamente que los diseños de núcleo único de menor densidad. Intel ha contrarrestado parcialmente este primer problema creando sus diseños de cuatro núcleos combinando dos núcleos duales en un solo chip con una memoria caché unificada, por lo que se pueden utilizar dos chips de núcleo dual cualesquiera en funcionamiento, en lugar de producir cuatro núcleos en un solo chip y requerir 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 CPU única pueden hacer un mejor uso del área de superficie de silicio que los núcleos de multiprocesamiento, 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 limitación en el rendimiento del sistema. Dos núcleos de procesamiento que comparten el mismo bus de sistema y ancho de banda de memoria limitan la ventaja de rendimiento en el mundo real.

Hardware

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. [16] Además, los chips multinúcleo combinados con multihilo simultáneo , 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, un núcleo big.LITTLE incluye un núcleo de alto rendimiento (llamado "big") y un núcleo de bajo consumo (llamado "LITTLE"). También existe una tendencia hacia la mejora de la eficiencia energética centrándose en el rendimiento por vatio con una gestión avanzada de la energía de grano fino o ultrafino y un 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 utilizan un diseño de núcleo que se repite de forma consistente ("homogéneo"), mientras que otras utilizan una mezcla de diferentes núcleos, cada uno optimizado para una función diferente, " heterogénea ".

La forma en que se implementan e integran múltiples núcleos afecta significativamente tanto las habilidades de programación del desarrollador como las expectativas del consumidor sobre las aplicaciones y la interactividad en comparación con el dispositivo. [17] Un dispositivo publicitado como octa-core solo tendrá núcleos independientes si se publicita 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. [18] [19]

El artículo "Los diseñadores de CPU debaten el futuro de los núcleos múltiples" de Rick Merritt, EE Times 2008, [20] incluye estos comentarios:

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

[...] Atsushi Hasegawa, ingeniero jefe de Renesas , estuvo de acuerdo en general. Sugirió que el uso de muchos núcleos especializados que funcionan en conjunto en el teléfono celular es un buen modelo para futuros diseños de múltiples núcleos.

[...] Anant Agarwal , fundador y director ejecutivo de la empresa emergente Tilera , adoptó la opinión contraria. Dijo que los chips multinúcleo deben ser conjuntos homogéneos de núcleos de uso general para mantener la simplicidad del modelo de software.

Efectos de software

Una versión desactualizada de una aplicación antivirus puede crear un nuevo hilo para un proceso de escaneo, mientras que su hilo 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 hilo único hace todo el trabajo pesado y la incapacidad de equilibrar el trabajo de manera uniforme entre múltiples núcleos. La programación de código verdaderamente multihilo a menudo requiere una coordinación compleja de hilos y puede introducir fácilmente errores sutiles y difíciles de encontrar debido al entrelazamiento del procesamiento en datos compartidos entre hilos (ver seguridad de hilos ). En consecuencia, dicho código es mucho más difícil de depurar que el código de un solo hilo cuando se rompe. Se ha percibido una falta de motivación para escribir aplicaciones con hilos a nivel de consumidor debido a la relativa rareza de la demanda a nivel de consumidor de un 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 utiliza para ayudar a crear el siguiente resultado del algoritmo de decodificación de entropía.

Dado el creciente énfasis 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 significativo en las velocidades de reloj de los procesadores, es probable que la medida en que el software pueda ser multiproceso para aprovechar estos nuevos chips sea la mayor limitación para el rendimiento de las computadoras en el futuro. Si los desarrolladores no pueden diseñar software que aproveche al máximo los recursos que proporcionan los múltiples núcleos, entonces llegarán a un límite de rendimiento insuperable.

El mercado de las telecomunicaciones ha sido uno de los primeros en necesitar un nuevo diseño de procesamiento de paquetes en rutas de datos paralelas, debido a que se produjo 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 [21] a los procesadores de red tradicionales que se basaban en microcódigo propietario o picocódigo .

Las técnicas de programación paralela pueden beneficiarse directamente de múltiples núcleos. Algunos modelos de programación paralela existentes , como Cilk Plus , OpenMP , OpenHMPP , FastFlow , Skandium, MPI y Erlang , se pueden utilizar en plataformas de múltiples núcleos. Intel presentó 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 X10 de IBM .

El procesamiento multinúcleo también ha afectado la capacidad del desarrollo de software computacional moderno. Los desarrolladores que programan en lenguajes más nuevos pueden encontrar que sus lenguajes modernos no admiten 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 [ cita requerida ] que los lenguajes más nuevos como C# . MKL de Intel y ACML de AMD están escritos en estos lenguajes 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 abordar 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 utilizando estas abstracciones y un compilador inteligente elige la mejor implementación según el contexto. [22]

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

Particionado
La etapa de partición de un diseño tiene como objetivo exponer oportunidades para la ejecución en paralelo. Por lo tanto, el enfoque se centra en definir una gran cantidad de tareas pequeñas para obtener lo que se denomina una descomposición detallada de un problema.
Comunicación
Las tareas generadas por una partición están diseñadas para ejecutarse simultáneamente, pero, en general, no pueden ejecutarse de forma independiente. El cálculo que se realizará en una tarea generalmente requerirá datos asociados con otra tarea. Luego, los datos deben transferirse entre tareas para permitir que se realice 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 el objetivo de obtener un algoritmo que se ejecute de manera eficiente en alguna clase de computadora paralela. En particular, los desarrolladores consideran si es útil combinar o agrupar las tareas identificadas en la fase de partición, de modo de proporcionar un número menor de tareas, cada una de mayor tamaño. También determinan si vale la pena replicar los datos y los cálculos.
Cartografía
En la cuarta y última etapa del diseño de algoritmos paralelos, los desarrolladores especifican dónde se debe ejecutar cada tarea. Este problema de mapeo no se presenta en los monoprocesadores ni en los ordenadores con memoria compartida que proporcionan una programación automática de tareas.

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

Licencias

Los proveedores pueden conceder licencias para algunos programas informáticos "por procesador", lo que puede generar ambigüedad, ya que un "procesador" puede estar formado por un solo núcleo o por una combinación de núcleos.

  • Inicialmente, para algunos de sus programas empresariales, Microsoft siguió utilizando un sistema de licencias por socket . Sin embargo, para algunos programas como BizTalk Server 2013 , SQL Server 2014 y Windows Server 2016 , Microsoft ha pasado a utilizar licencias por núcleo. [23]
  • Oracle Corporation considera una CPU AMD X2 o Intel de doble núcleo como un solo procesador [ cita requerida ] pero utiliza otras métricas para otros tipos, especialmente para procesadores con más de dos núcleos. [24]

Aplicaciones integradas

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

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

Además, el software integrado suele desarrollarse 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

A partir de 2010 , los procesadores de red[actualizar] multinúcleo se han convertido en algo común, y empresas como Freescale Semiconductor , Cavium Networks , Wintegra y Broadcom fabrican 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 de sistema, a pesar de las limitaciones de rendimiento inherentes a un sistema operativo de multiprocesamiento simétrico (SMP). Empresas como 6WIND proporcionan software de procesamiento de paquetes portátil diseñado para que el plano de datos de red se ejecute en un entorno de ruta rápida fuera del sistema operativo del dispositivo de red. [25]

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). Entre las novedades se 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 motor SIMD y Picochip con 300 procesadores en una sola matriz, centrados 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úcleo, 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. Se están utilizando soluciones de software como OpenAMP para facilitar la comunicación entre procesadores.

Los dispositivos móviles pueden utilizar la arquitectura ARM big.LITTLE .

Ejemplos de hardware

Comercial

Gratis

Académico

Puntos de referencia

La investigación y el desarrollo de procesadores multinúcleo a menudo comparan muchas opciones y se desarrollan pruebas comparativas para facilitar dichas evaluaciones. Las pruebas comparativas existentes incluyen SPLASH-2, PARSEC y COSMIC para sistemas heterogéneos. [49]

Véase también

Notas

  1. ^ Los procesadores de señales digitales (DSP) han utilizado arquitecturas multinúcleo durante mucho más tiempo que los procesadores de propósito general de alta gama. Un ejemplo típico de una implementación específica de DSP sería una combinación de unaCPU RISC y una MPU DSP . Esto permite el diseño de productos que requieren un procesador de propósito general para interfaces de usuario y un DSP para procesamiento de datos en tiempo real; este tipo de diseño es común en teléfonos móviles . En otras aplicaciones, un número cada vez mayor de empresas han desarrollado DSP multinúcleo con una gran cantidad de procesadores.
  2. ^ Hay dos tipos de sistemas operativos que pueden utilizar un multiprocesador de dos CPU: el multiprocesamiento particionado y el multiprocesamiento simétrico (SMP). En una arquitectura particionada, cada CPU arranca en segmentos separados de memoria física y funciona de forma independiente; en un SO SMP, los procesadores funcionan en un espacio compartido y ejecutan subprocesos dentro del SO de forma independiente.

Referencias

  1. ^ Rouse, Margaret (27 de marzo de 2007). «Definición: procesador multinúcleo». TechTarget. Archivado desde el original el 5 de agosto de 2010. Consultado el 6 de marzo de 2013 .
  2. ^ Schauer, Bryan. "Procesadores multinúcleo: una necesidad" (PDF) . Archivado desde el original (PDF) el 25 de noviembre de 2011.
  3. ^ ab Smith, Ryan. "NVIDIA anuncia la serie GeForce RTX 30: Ampere para juegos, comenzando con RTX 3080 y RTX 3090". www.anandtech.com . Consultado el 15 de septiembre de 2020 .
  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). "¿Qué hace que la programación paralela sea difícil?". FutureChips. Archivado desde el original el 29 de mayo de 2011. Consultado el 6 de marzo de 2013 .
  6. ^ Duran, A (2011). "Ompss: una propuesta para programar arquitecturas multinúcleo heterogéneas". Parallel Processing Letters . 21 (2): 173–193. doi :10.1142/S0129626411000151.
  7. ^ "Definición de núcleo dual". PCMAG . Consultado el 27 de octubre de 2023 .
  8. ^ "Intel llevará sus procesadores de seis núcleos al mercado general en 2018 con la familia Coffee Lake". ZDNET . Consultado el 27 de octubre de 2023 .
  9. ^ Alan Dexter (5 de abril de 2022). «Las CPU de seis núcleos son ahora más populares que los chips de cuatro núcleos en Steam». PC Gamer . Consultado el 22 de mayo de 2024 .
  10. ^ Schor, David (noviembre de 2017). "El PEZY-SC2 de 2048 núcleos establece un récord Green500". WikiChip.
  11. ^ Vajda, András (10 de junio de 2011). Programación de chips de muchos núcleos. Saltador. pag. 3.ISBN 978-1-4419-9739-5.
  12. ^ Shrout, Ryan (2 de diciembre de 2009). «Intel muestra un procesador x86 de 48 núcleos como un ordenador en la nube de un solo chip». Archivado desde el original el 5 de enero de 2016. Consultado el 17 de mayo de 2015 .
  13. ^ "Intel presenta un chip de silicio de 48 núcleos para computación en la nube". BBC. 3 de diciembre de 2009. Archivado desde el original el 6 de diciembre de 2012. Consultado el 6 de marzo de 2013 .
  14. ^ Patterson, David A. "El futuro de la arquitectura informática". Simposio anual de investigación de la Universidad de California en Berkeley (BEARS), Facultad de Ingeniería, UC Berkeley, EE. UU., 2006.
  15. ^ Suleman, Aater (19 de mayo de 2011). "Preguntas y respuestas: ¿Los núcleos múltiples ahorran energía? En realidad, no". Archivado desde el original el 16 de diciembre de 2012. Consultado el 6 de marzo de 2013 .
  16. ^ Clark, Jack. «Intel: Por qué es factible un chip de 1000 núcleos». ZDNet . Archivado desde el original el 6 de agosto de 2015. Consultado el 6 de agosto de 2015 .
  17. ^ Kudikala, Chakri (27 de agosto de 2016). "Estos 5 mitos sobre los teléfonos Octa-Core son realmente ciertos". Giz Bot .
  18. ^ "MediaTek lanza la plataforma móvil MT6592 True Octa-Core" (Comunicado de prensa). MediaTek. 20 de noviembre de 2013. Archivado desde el original el 29 de octubre de 2020.
  19. ^ "¿Qué es un procesador Octa-core?". Samsung. Archivado del original el 17 de enero de 2022. Los teléfonos inteligentes Galaxy funcionan con procesadores Octa-core (2.3GHz Quad + 1.6GHz Quad) o Quad-core (2.15GHz + 1.6GHz Dual)
  20. ^ Merritt, Rick (6 de febrero de 2008). «Los diseñadores de CPU debaten el futuro de los procesadores multinúcleo». EE Times . Consultado el 21 de octubre de 2023 .
  21. ^ "Foro de procesamiento de paquetes multinúcleo". Archivado desde el original el 21 de diciembre de 2009.
  22. ^ John Darlinton; Moustafa Ghanem; Yike Guo; Hing Wing To (1996). "Organización guiada de recursos en computación paralela heterogénea". Revista de computación de alto rendimiento . 4 (1): 13–23. CiteSeerX 10.1.1.37.4309 . 
  23. ^ Bright, Peter (4 de diciembre de 2015). «Windows Server 2016 avanza hacia el licenciamiento por núcleo, no por socket». Ars Technica . Condé Nast . Archivado desde el original el 4 de diciembre de 2015 . Consultado el 5 de diciembre de 2015 .
  24. ^ Comparar: "El otorgamiento de licencias de productos tecnológicos de Oracle". OMT-CO Operations Management Technology Consulting GmbH. Archivado desde el original el 21 de marzo de 2014. Consultado el 4 de marzo de 2014 .
  25. ^ "Software 6WINDGATE: Software de optimización de red – Software SDN – Software de plano de control | 6WIND".
  26. ^ "APU Sempron™ 3850 con Radeon™ R3 Series | AMD". AMD . Archivado desde el original el 4 de mayo de 2019 . Consultado el 5 de mayo de 2019 .
  27. ^ "Especificaciones del producto del procesador Intel® Atom™ serie C". ark.intel.com . Consultado el 4 de mayo de 2019 .
  28. ^ "Especificaciones del producto del procesador Intel® Atom™ serie Z". ark.intel.com . Consultado el 4 de mayo de 2019 .
  29. ^ "Intel prepara procesadores Celeron de doble núcleo". 11 de octubre de 2007. Archivado desde el original el 4 de noviembre de 2007. Consultado el 12 de noviembre de 2007 .
  30. ^ "Especificaciones del producto del procesador Intel® Celeron® serie J". ark.intel.com . Consultado el 4 de mayo de 2019 .
  31. ^ "Productos anteriormente conocidos como Yonah". ark.intel.com . Consultado el 4 de mayo de 2019 .
  32. ^ "Productos anteriormente Conroe". ark.intel.com . Consultado el 4 de mayo de 2019 .
  33. ^ "Productos anteriormente Kentsfield". ark.intel.com . Consultado el 4 de mayo de 2019 .
  34. ^ "Especificaciones de producto de los procesadores Intel® Core™ serie X". ark.intel.com . Consultado el 4 de mayo de 2019 .
  35. ^ "Especificaciones del producto del procesador Intel® Itanium®". ark.intel.com . Consultado el 4 de mayo de 2019 .
  36. ^ "Especificaciones del producto del procesador Intel® Pentium® serie D". ark.intel.com . Consultado el 4 de mayo de 2019 .
  37. ^ Zazaian, Mike (26 de septiembre de 2006). «Intel: 80 núcleos para 2011». Archivado desde el original el 9 de noviembre de 2006. Consultado el 28 de septiembre de 2006 .
  38. ^ Kowaliski, Cyril (18 de febrero de 2014). «Intel lanza el procesador Xeon E7 v2 de 15 núcleos». Archivado desde el original el 11 de octubre de 2014.
  39. ^ "Familia de procesadores Intel Xeon E7 v3". Intel . Archivado desde el original el 7 de julio de 2015.
  40. ^ "Familia de procesadores Intel Xeon E7 v2". Intel. Archivado desde el original el 7 de julio de 2015.
  41. ^ "Familia de procesadores Intel Xeon E3 v2". Intel. Archivado desde el original el 7 de julio de 2015.
  42. ^ "Intel muestra una CPU Xeon Platinum con hasta 56 núcleos y 112 subprocesos". TechSpot . 2 de abril de 2019 . Consultado el 4 de mayo de 2019 .
  43. ^ PDF, Descargar. "Resumen de los procesadores escalables Intel® Xeon® de segunda generación". Intel . Consultado el 4 de mayo de 2019 .
  44. ^ "Especificaciones de la familia de productos Intel® Xeon Phi™ x100". ark.intel.com . Consultado el 4 de mayo de 2019 .
  45. ^ "Especificaciones de producto de la familia de procesadores Intel® Xeon Phi™ 72x5". ark.intel.com . Consultado el 4 de mayo de 2019 .
  46. ^ Cole, Bernard (24 de septiembre de 2008). "Se presenta un procesador de 40 núcleos con herramientas IDE basadas en Forth".
  47. ^ Hammond, Lance; et al. (1999). The Stanford Hydra CMP (PDF) . Hot Chips . Consultado el 27 de junio de 2023 .
  48. ^ Chacos, Brad (20 de junio de 2016). «Conoce a KiloCore, un procesador de 1000 núcleos tan eficiente que podría funcionar con una batería AA». PC World . Archivado desde el original el 23 de junio de 2016.
  49. ^ "COSMIC: Suite de evaluación comparativa estadística de multiprocesadores".

Lectura adicional

  • Khondker S. Hasan; Nicolas G. Grounds; John K. Antonio (julio de 2011). Predicción de la disponibilidad de la CPU de un procesador multinúcleo que ejecuta subprocesos Java simultáneos . 17.ª Conferencia internacional sobre técnicas y aplicaciones de procesamiento paralelo y distribuido (PDPTA-11). Las Vegas, Nevada, EE. UU., págs. 551–557. hdl :10657.1/2440.
  • Khondker S. Hasan; John Antonio; Sridhar Radhakrishnan (febrero de 2014). Un nuevo modelo compuesto de CPU/memoria para predecir la eficiencia del procesamiento multinúcleo . Taller de la 20.ª Conferencia internacional IEEE sobre arquitectura de computadoras de alto rendimiento (HPCA-14). Orlando, Florida, EE. UU. doi :10.13140/RG.2.1.3051.9207.
  • "¿Qué es un núcleo de procesador?"—MakeUseOf
  • "Los sistemas integrados avanzan hacia los múltiples núcleos" — Diseño de computación integrada
  • "Los núcleos múltiples son una mala noticia para las supercomputadoras" — IEEE Spectrum
  • Soluciones arquitectónicas para el futuro de Manycore, publicado el 19 de febrero de 2010 (más de un enlace roto en la diapositiva)
Retrieved from "https://en.wikipedia.org/w/index.php?title=Multi-core_processor&oldid=1244581957"