De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda
Diagrama de un procesador genérico de doble núcleo con cachés de nivel 1 de CPU local y un caché de nivel 2 en el troquel compartido
Un procesador Intel Core 2 Duo E6750 de doble núcleo

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

Un procesador de múltiples núcleos implementa el multiprocesamiento en un solo paquete físico. Los diseñadores pueden acoplar núcleos en un dispositivo de múltiples núcleos de forma ajustada o suelta. Por ejemplo, los núcleos pueden o no compartir cachés , y pueden implementar el paso de mensajes o métodos de comunicación entre núcleos de 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 homogéneos de varios núcleos incluyen únicamente núcleos idénticos; Los sistemas heterogéneos de varios núcleos tienen núcleos que no son idénticos (por ejemplo, grandes.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 múltiples núcleos pueden implementar arquitecturas como VLIW , superescalar , vectorial o multiproceso .

Los procesadores de múltiples núcleos se utilizan ampliamente en muchos dominios de aplicaciones, incluidos los de uso general , integrados , de red , procesamiento de señales digitales (DSP) y 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. [4]

La mejora en el rendimiento obtenida por el uso de un procesador de múltiples núcleos 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 está descrito por la ley de Amdahl . En el mejor de los casos, los problemas denominados 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 como para caber en la memoria caché de cada núcleo, evitando el uso de una memoria del sistema principal mucho más lenta . La mayoría de las aplicaciones, sin embargo, no se aceleran tanto a menos que los programadores inviertan una cantidad prohibitiva de esfuerzo en volver a factorizar todo el problema. [5][ dudoso ]

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 la arquitectura de red. La adaptabilidad dentro de los 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 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 sistema en un chip (SoC). Los términos se usan generalmente solo para referirse a microprocesadores de múltiples núcleos que se fabrican en la misma matriz de circuito integrado ; Las matrices de microprocesador separadas en el mismo paquete generalmente se denominan con otro nombre, como módulo de varios chips . Este artículo utiliza los términos "multi-core" y "dual-core" para CPU fabricadas en el mismo circuito integrado, a menos que se indique lo contrario.

En contraste con los sistemas de múltiples núcleos, el término multi-CPU 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 de muchos núcleos y masivamente de múltiples núcleos se utilizan a veces para describir arquitecturas de múltiples núcleos con un número especialmente alto de núcleos (decenas a miles [7] ). [8]

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

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 de las principales preocupaciones de diseño. Estas limitaciones físicas pueden causar importantes problemas de sincronización de datos y disipación de calor. 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 ineficaces para otras que contienen código difícil de predecir. Muchas aplicaciones se adaptan mejor al paralelismo a nivel de subprocesos(TLP) y varias CPU independientes se utilizan comúnmente 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 llevó al desarrollo de CPU de múltiples núcleos.

Incentivos comerciales [ editar ]

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 (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 frecuencias de reloj también aumentaron en órdenes de magnitud en las décadas de finales del siglo XX, de varios megahercios en la década de 1980 a varios gigahercios a principios de la década de 2000.

A medida que disminuía la velocidad de las mejoras en la velocidad del reloj, se ha buscado un mayor uso de la computación paralela en forma de procesadores de múltiples núcleos 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 su soporte con software son bien conocidos.

Adicionalmente:

  • El uso de un diseño de núcleo de procesamiento probado sin cambios en la arquitectura 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 de varios núcleos proviene de las ganancias muy disminuidas en el rendimiento del procesador al aumentar la frecuencia de operación . Esto se debe a tres factores principales: [11]
    1. El muro de la memoria ; la brecha cada vez mayor entre las velocidades del procesador y la memoria. Esto, en efecto, empuja a que los tamaños de caché sean más grandes 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 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 en aumento exponencial (y por lo tanto también generar calor en aumento exponencial) con cada aumento factorial de la frecuencia de operación. Este aumento se puede mitigar " reduciendo " el procesador mediante el uso de trazas más pequeñas para la misma lógica. La pared de energía plantea problemas de fabricación, diseño del sistema y despliegue que no se han justificado frente a la disminución de las ganancias en el rendimiento debido a la pared de memoria y la pared ILP . [ cita requerida ]

Para continuar ofreciendo mejoras de rendimiento regulares para procesadores de uso general, fabricantes como Intel y AMD han optado por 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 de múltiples núcleos, 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 dado permite que los circuitos de coherencia de la memoria caché operen a una frecuencia 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 dado mejora significativamente el rendimiento de las operaciones de búsqueda de caché (alternativa: búsqueda 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 que se envíen más datos en un período de tiempo determinado, ya que las señales individuales pueden ser más cortas y no es necesario repetirlas con tanta frecuencia.

Suponiendo que la matriz pueda caber físicamente en el paquete, los diseños de CPU de varios núcleos 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 disminución de energía requerida para impulsar señales externas al chip. Además, los núcleos comparten algunos circuitos, como la caché L2 y la interfaz del bus frontal (FSB). En términos de tecnologías que compiten para el área de troquel de silicio disponible, el diseño de múltiples núcleos 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 diseñar un nuevo diseño de núcleo más amplio. Además, agregar más caché sufre de rendimientos decrecientes.

Los chips de varios núcleos también permiten un mayor rendimiento con menor 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 de múltiples núcleos es generalmente más eficiente en energía, 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 de varios núcleos 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 de varios núcleos para aumentar el rendimiento de las aplicaciones depende del uso de varios subprocesos dentro de las aplicaciones.

La integración de un chip de varios núcleos 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 al crear sus diseños de cuatro núcleos combinando dos de doble núcleo en un solo troquel con un caché unificado, por lo que se pueden usar dos troqueles de doble núcleo que funcionen, en lugar de producir cuatro núcleos en un un solo dado y que requieren 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 de la 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. Por último, la potencia de procesamiento en bruto no es la única limitación del rendimiento del sistema.Dos núcleos de procesamiento que comparten el mismo bus del sistema y el mismo ancho de banda de 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 estar limitado por el ancho de banda de la memoria, entonces pasar al doble núcleo podría proporcionar 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 emabargo,La ley de Amdahl hace que esta afirmación sea dudosa. [13] Sería posible que una aplicación que usara 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, a medida que los procesadores con cientos o incluso miles de núcleos se vuelven teóricamente posibles. [14] Además, los chips de múltiples núcleos mezclados con núcleos simultáneos de múltiples subprocesos , memoria en chip y núcleos "heterogéneos" (o asimétricos) de propósito especial prometen mayores ganancias de rendimiento y eficiencia, [15] especialmente en el procesamiento de multimedia, reconocimiento y aplicaciones de redes. Por ejemplo, un núcleo big.LITTLE incluye un núcleo de alto rendimiento (llamado 'grande') y un núcleo de baja potencia (llamado 'LITTLE'). También existe una tendencia hacia la mejora de la eficiencia energética al centrarse en el rendimiento por vatio con grano fino avanzado o grano ultrafino.administración de energía 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 , enfatizando las diferencias cualitativas.

Arquitectura [ editar ]

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

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 frente al dispositivo. [16] 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. [17] [18]

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

Chuck Moore sugirió que las [...] computadoras deberían ser como teléfonos celulares, usando 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 senior de Renesas , estuvo de acuerdo en general. Sugirió que el uso de muchos núcleos especiales en el teléfono celular trabajando en conjunto es un buen modelo para futuros diseños de múltiples núcleos.

[...] Anant Agarwal , fundador y director ejecutivo de la startup Tilera , adoptó 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 simple el modelo de software.

Efectos de software [ editar ]

Una versión desactualizada de una aplicación antivirus puede crear un nuevo hilo para un proceso de análisis, mientras que su hilo GUI espera los comandos del usuario (por ejemplo, cancelar el análisis). En tales casos, una arquitectura de múltiples núcleos 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 múltiples núcleos. La programación de código verdaderamente multiproceso a menudo requiere una compleja coordinación de subprocesos y puede introducir fácilmente errores sutiles y difíciles de encontrar debido al entretejido del procesamiento de datos compartidos entre subprocesos (consulte 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 de consumidor debido a la relativa rareza de la demanda a nivel de consumidor para el uso máximo de hardware de 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 vídeo 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 de múltiples núcleos, derivado de los graves problemas térmicos y de consumo de energía planteados por cualquier aumento significativo adicional en las velocidades de reloj del procesador, es probable que se reduzca el grado en que el software puede ser multiproceso para aprovechar estos nuevos chips. la mayor limitación para el rendimiento de las computadoras 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 había sido uno de los primeros que necesitaba 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 reemplazarán [20] a los procesadores de red tradicionales que se basaban en microcódigo o picocódigo propietario .

Las técnicas de programación paralela pueden beneficiarse de múltiples núcleos directamente. Algunos modelos de programación paralela existentes , como Cilk Plus , OpenMP , OpenHMPP , FastFlow , Skandium, MPI y Erlang, se pueden utilizar en plataformas de varios núcleos. 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 de múltiples núcleos 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 son compatibles con la funcionalidad de varios núcleos. 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 AMDestán escritos en estos idiomas nativos y aprovechan el procesamiento de múltiples núcleos. Equilibrar la carga de trabajo de la aplicación en los 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 en función del contexto. [21]

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

Fraccionamiento
La etapa de partición de un diseño está destinada a exponer oportunidades para la ejecución paralela. Por lo tanto, la atención se centra en definir una gran cantidad de pequeñas tareas para producir 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 normalmente requerirá datos asociados con otra tarea. Luego, los datos deben transferirse entre tareas para permitir que se lleve a cabo 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 alguna clase de computadora paralela. En particular, los desarrolladores consideran si es útil combinar, o aglomerar, tareas identificadas por la fase de partición, para proporcionar un número menor de tareas, cada una de mayor tamaño. También determinan si vale la pena replicar datos y cálculos.
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 proporcionan programación automática de tareas.

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

Licencias [ editar ]

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

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

Aplicaciones integradas [ editar ]

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 tecnología de procesadores distinta a la de las PC "convencionales". Los mismos impulsos tecnológicos hacia el multinúcleo también se aplican aquí. De hecho, en muchos casos, la aplicación es un ajuste "natural" para las tecnologías de múltiples núcleos, si la tarea se puede dividir fácilmente entre los diferentes procesadores.

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

Procesadores de red [ editar ]

A partir de 2010 , los procesadores de red de múltiples núcleos se han convertido en la corriente principal, con empresas como Freescale Semiconductor , Cavium Networks , Wintegra y Broadcom, todos 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 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.[24]

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 trescientos procesadores en un solo dado, enfocados en aplicaciones de comunicación.

Sistemas heterogéneos [ editar ]

En la computación heterogénea , donde un sistema usa más de un tipo de procesador o núcleos, las soluciones de múltiples núcleos 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 doble núcleo. Se están utilizando soluciones de software como OpenAMP para ayudar con la comunicación entre procesadores.

Los dispositivos móviles pueden utilizar la 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 chip, aunque solo se ha producido comercialmente una versión de 16 núcleos.
  • Aeroflex Gaisler LEON3 , un SPARC de múltiples núcleos que también existe en una versión tolerante a fallas .
  • Ageia PhysX , una unidad de procesamiento de física de múltiples núcleos .
  • Ambric Am2045, una matriz de procesadores masivamente paralelos (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 , de doble, triple y cuádruple núcleo.
    • Procesadores de escritorio de la serie FX , de cuatro, seis y ocho núcleos.
    • Opteron , procesadores de estación de trabajo / servidor de uno, dos, cuatro, 6, 8, 12 y 16 núcleos.
    • Procesadores Phenom , dual, triple y quad-core.
    • Phenom II , procesadores de escritorio de doble, triple, cuádruple y 6 núcleos.
    • Procesadores de nivel de entrada Sempron , de uno, dos y cuatro núcleos. [25]
    • Turion , procesadores para portátiles de uno y dos núcleos.
    • Procesadores Ryzen , dual, quad, 6, 8, 12, 16, 24, 32 y 64 núcleos de escritorio, móviles y de plataforma integrada.
    • Procesadores integrados y servidor epyc , quad , 8, 12, 16, 24, 32 y 64 núcleos.
    • GPU / GPGPU multinúcleo Radeon y FireStream (10 núcleos, 16 procesadores de flujo superescalar de 5 números de ancho por núcleo).
  • Analog Devices Blackfin BF561, un procesador simétrico de doble núcleo
  • 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; BCM 2836 ARM SoC de cuatro núcleos (diseñado para Raspberry Pi 2)
  • Cadence Design Systems Tensilica Xtensa LX6, disponible en una configuración de doble núcleo en Espressif Sistemas 's ESP32
  • ClearSpeed
    • CSX700, procesador de 192 núcleos, lanzado en 2008 (punto flotante de 32/64 bits; ALU entero).
  • 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.
    • PowerPC 970 MP, un procesador PowerPC de doble núcleo, utilizado en el Apple Power Mac G5 .
    • Xenon , un microprocesador PowerPC de triple núcleo, compatible con SMT , utilizado 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.
  • Infineon
    • AURIX
    • Danube, un procesador de puerta de enlace doméstica de doble núcleo, basado en MIPS .
  • Intel
    • Procesadores Atom , de uno, dos núcleos, cuatro núcleos, 8, 12 y 16 núcleos para netbooks , nettops , aplicaciones integradas y dispositivos de Internet móvil (MID). [26]
    • Atom SoC (sistema en un chip) , procesadores de un solo núcleo, de doble núcleo y de cuatro núcleos para teléfonos inteligentes y tabletas. [27]
    • Celeron , el primer procesador de doble núcleo (y, más tarde, de cuatro núcleos) para el mercado económico / básico. [28] [29]
    • Core Duo , un procesador de doble núcleo. [30]
    • Core 2 Duo , un procesador de doble núcleo. [31]
    • Core 2 Quad , 2 troqueles de doble núcleo empaquetados en un módulo de varios chips. [32]
    • Core i3 , Core i5 , Core i7 y Core i9 , una familia de procesadores de doble, cuádruple, 6, 8, 10, 12, 14, 16 y 18 núcleos, y el sucesor del Core 2 Duo y Core 2 Quad . [33]
    • Procesadores Itanium , de uno, dos núcleos, cuatro núcleos y 8 núcleos. [34]
    • Procesadores Pentium , single, dual-core y quad-core para el mercado de nivel de entrada. [35]
    • 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. [36]
    • Xeon dual-, quad-, 6-, 8-, 10-, 12-, 14-, 15-, 16-, 18-, 20-, 22-, 24-, 26-, 28-, 32-, 48 - y procesadores de 56 núcleos. [37] [38] [39] [40] [41] [42]
    • Procesadores Xeon Phi de 57, 60, 61, 64, 68 y 72 núcleos. [43] [44]
  • IntellaSys
    • SEAforth 40C18, un procesador de 40 núcleos. [45]
    • 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, red en chip (NoC), FPU compatible con IEEE 754 de 32/64 bits)
  • Microsistemas NetLogic
    • XLP, un procesador MIPS64 de cuatro subprocesos y 32 núcleos .
    • XLR, un procesador MIPS64 de cuatro núcleos y ocho núcleos.
    • XLS, un procesador MIPS64 de cuatro núcleos y ocho núcleos.
  • Nvidia
    • GPU GeForce 9 multinúcleo (8 núcleos, 16 procesadores de flujo escalar por núcleo).
    • GPU GeForce 200 multinúcleo (10 núcleos, 24 procesadores de flujo escalar por núcleo).
    • GPGPU Tesla multi-core (10 núcleos, 24 procesadores de flujo escalar por núcleo).
    • 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.
  • picoChip PC200 series 200–300 núcleos por dispositivo para DSP e inalámbrico.
  • Serie HAL de pluralidad de 16-256 núcleos estrechamente acoplados, 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 "SiCortex node" tiene seis núcleos MIPS64 en un solo chip.
  • Sony / IBM / Toshiba 's Cell procesador, un procesador de nueve núcleo con un propósito general PowerPC núcleo y ocho especializada SPUs (Unidad de Procesamiento sinérgica) optimizado para operaciones de vectores utilizados en el Sony PlayStation 3 .
  • Microsistemas solares
    • 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 subprocesos.
    • UltraSPARC T2 , un procesador de ocho núcleos y 64 subprocesos simultáneos.
    • UltraSPARC T3 , un procesador de dieciséis núcleos y 128 subprocesos simultáneos.
    • SPARC T4 , un procesador de ocho núcleos y 64 subprocesos simultáneos.
    • SPARC T5 , un procesador de dieciséis núcleos y 128 subprocesos simultáneos.
  • Sunway
    • Sunway SW26010 , un procesador de 260 núcleos utilizado en Sunway TaihuLight .
  • Instrumentos Texas
    • TMS320C80 MVP , un procesador de video multimedia de cinco núcleos.
    • TMS320TMS320C66, DSP de 2,4,8 núcleos.
  • Tilera
    • TILE64 , un procesador de 32 bits de 64 núcleos.
    • TILE-Gx , un procesador de 64 bits de 72 núcleos.
  • XMOS de cuatro núcleos de silicio definido por software XS1-G4.

Gratis [ editar ]

  • OpenSPARC

Académico [ editar ]

  • MIT , procesador RAW de 16 núcleos
  • Universidad de California, Davis , Matriz asincrónica de procesadores simples (AsAP)
    • 36 núcleos 610 MHz lo antes posible
    • 167 núcleos 1,2 GHz AsAP2
  • Universidad de Washington , procesador Wavescalar
  • Universidad de Texas, Austin , procesador TRIPS
  • Universidad de Linköping , Suecia, procesador ePUMA
  • UC Davis , Kilocore , un procesador de 1,78 GHz de 1000 núcleos en un proceso IBM de 32 nm [46]

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 tales evaluaciones. Los puntos de referencia existentes incluyen SPLASH-2, PARSEC y COSMIC para sistemas heterogéneos. [47]

Ver también [ editar ]

  • Blindaje de CPU
  • CUDA
  • GPGPU
  • Hyper-threading
  • Manycore
  • Asociación multinúcleo
  • Multitarea
  • OpenCL (Open Computing Language): un marco para la ejecución heterogénea
  • Máquina paralela de acceso aleatorio
  • Espacio de direcciones global particionado (PGAS)
  • Condición de carrera
  • Hilo

Notas [ editar ]

  1. ^ Los procesadores de señales digitales(DSP) han utilizado arquitecturas de varios núcleos durante mucho más tiempo que los procesadores de propósito general de gama alta. Un ejemplo típico de implementación específica de DSP sería una combinación de unaCPURISCy unaMPU deDSP. 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 enteléfonos móviles. En otras aplicaciones, un número creciente de empresas ha desarrollado DSP multinúcleo con un gran número de procesadores.
  2. ^ Dos tipos desistemas operativospueden utilizar un multiprocesador de CPU dual: multiprocesamiento particionado ymultiprocesamiento simétrico(SMP). En una arquitectura particionada, cada CPU arranca en segmentos separados de memoria física y funciona de forma independiente; en un sistema operativo SMP, los procesadores funcionan en un espacio compartido, ejecutando subprocesos dentro del sistema operativo de forma independiente.

Referencias [ editar ]

  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. ^ a b Smith, Ryan. "NVIDIA anuncia la serie GeForce RTX 30: amperios 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é dificulta la programación paralela?" . 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 la programación de arquitecturas heterogéneas multinúcleo". Cartas de procesamiento paralelo . 21 (2): 173-193. doi : 10.1142 / S0129626411000151 .
  7. ^ Schor, David (noviembre de 2017). "El PEZY-SC2 de 2.048 núcleos establece un récord Green500" . WikiChip.
  8. 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.
  9. ^ Shrout, Ryan (2 de diciembre de 2009). "Intel muestra el procesador x86 de 48 núcleos como computadora en la nube de un solo chip" . Archivado desde el original el 5 de enero de 2016 . Consultado el 17 de mayo de 2015 .
  10. ^ "Intel presenta chip de silicio de computación en la nube de 48 núcleos" . 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. "Futuro de la arquitectura informática". Berkeley EECS Annual Research Symposium (BEARS), Facultad de Ingeniería, UC Berkeley, EE. UU. 2006.
  12. ^ Suleman, Aater (19 de mayo de 2011). "Preguntas y respuestas: ¿Los multinúcleos ahorran energía? En realidad, no" . Archivado desde el original el 16 de diciembre de 2012 . Consultado el 6 de marzo de 2013 .
  13. ^ Ni, junio. "Habilitación de la tecnología de computación multinúcleo para imágenes médicas" (PDF) . Archivado desde el original (PDF) el 5 de julio de 2010 . Consultado el 17 de febrero de 2013 .
  14. ^ Clark, Jack. "Intel: Por qué es factible un chip de 1.000 núcleos" . ZDNet . Archivado desde el original el 6 de agosto de 2015 . Consultado el 6 de agosto de 2015 .
  15. ^ Mittal, Sparsh (febrero de 2016). "Un estudio de técnicas para la arquitectura y la gestión de procesadores multinúcleo asimétricos" . Encuestas de computación ACM . 48 (3): 1–38. doi : 10.1145 / 2856125 . S2CID 14090975 . Archivado desde el original el 18 de junio de 2017. 
  16. ^ Kudikala, Chakri (27 de agosto de 2016). "Estos 5 mitos sobre los teléfonos Octa-Core son realmente ciertos" . Giz Bot .
  17. ^ "MediaTeck lanza plataforma móvil MT6592 True Octa-core" . MediaTek. 20 de noviembre de 2013.
  18. ^ "Qué es un procesador Octa-core" . Samsung. Los teléfonos inteligentes Galaxy funcionan con procesadores Octa-core (2.3GHz Quad + 1.6GHz Quad) o Quad-core (2.15GHz + 1.6GHz Dual)
  19. ^ Merritt, Rick (6 de febrero de 2008). "Los diseñadores de CPU debaten sobre el futuro de múltiples núcleos" . EE Times . Archivado desde el original el 14 de noviembre de 2012 . Consultado el 6 de marzo de 2013 .
  20. ^ "Foro de procesamiento de paquetes multinúcleo" . Archivado desde el original el 21 de diciembre de 2009.
  21. ^ 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 . 
  22. ^ Bright, Peter (4 de diciembre de 2015). "Windows Server 2016 se mueve a licencias 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 .
  23. ^ Compare: "La concesión de licencias de productos de tecnología 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 .
  24. ^ "Software 6WINDGATE: Software de optimización de red - Software SDN - Software de plano de control | 6WIND" .
  25. ^ "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 .
  26. ^ "Especificaciones de producto del procesador Intel® Atom ™ serie C" . ark.intel.com . Consultado el 4 de mayo de 2019 .
  27. ^ "Especificaciones de producto de la serie Z del procesador Intel® Atom ™" . ark.intel.com . Consultado el 4 de mayo de 2019 .
  28. ^ "Procesadores Celeron de doble núcleo Intel Preps" . 11 de octubre de 2007. Archivado desde el original el 4 de noviembre de 2007 . Consultado el 12 de noviembre de 2007 .
  29. ^ "Especificaciones de producto de la serie J del procesador Intel® Celeron®" . ark.intel.com . Consultado el 4 de mayo de 2019 .
  30. ^ "Productos anteriormente Yonah" . ark.intel.com . Consultado el 4 de mayo de 2019 .
  31. ^ "Productos anteriormente Conroe" . ark.intel.com . Consultado el 4 de mayo de 2019 .
  32. ^ "Productos anteriormente Kentsfield" . ark.intel.com . Consultado el 4 de mayo de 2019 .
  33. ^ "Especificaciones de producto de procesadores Intel® Core ™ serie X" . ark.intel.com . Consultado el 4 de mayo de 2019 .
  34. ^ "Especificaciones del producto del procesador Intel® Itanium®" . ark.intel.com . Consultado el 4 de mayo de 2019 .
  35. ^ "Especificaciones de producto del procesador Intel® Pentium® serie D" . ark.intel.com . Consultado el 4 de mayo de 2019 .
  36. ^ Zazaian, Mike (26 de septiembre de 2006). "Intel: 80 núcleos en 2011" . Archivado desde el original el 9 de noviembre de 2006 . Consultado el 28 de septiembre de 2006 .
  37. ^ 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.
  38. ^ "Familia de procesadores Intel Xeon E7 v3" . Intel . Archivado desde el original el 7 de julio de 2015.
  39. ^ "Familia de procesadores Intel Xeon E7 v2" . Intel. Archivado desde el original el 7 de julio de 2015.
  40. ^ "Familia de procesadores Intel Xeon E3 v2" . Intel. Archivado desde el original el 7 de julio de 2015.
  41. ^ "Intel muestra CPU Xeon Platinum con hasta 56 núcleos y 112 subprocesos" . TechSpot . Consultado el 4 de mayo de 2019 .
  42. ^ PDF, Descargar. "Resumen de procesadores escalables Intel® Xeon® de segunda generación" . Intel . Consultado el 4 de mayo de 2019 .
  43. ^ "Especificaciones de producto de la familia de productos Intel® Xeon Phi ™ x100" . ark.intel.com . Consultado el 4 de mayo de 2019 .
  44. ^ "Especificaciones de producto de la familia de procesadores Intel® Xeon Phi ™ 72x5" . ark.intel.com . Consultado el 4 de mayo de 2019 .
  45. ^ Cole, Bernard (24 de septiembre de 2008). "Se dio a conocer el procesador de 40 núcleos con herramientas IDE basadas en Forth" .
  46. ^ Chacos, Brad (20 de junio de 2016). "Conozca 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.
  47. ^ "COSMIC Heterogeneous Multiprocessor Benchmark Suite" . Archivado desde el original el 3 de julio de 2015.

Lectura adicional [ editar ]

  • Khondker S. Hasan, Nicolas G. Grounds, John K. Antonio (julio de 2011). Predicción de la disponibilidad de CPU de un procesador multinúcleo que ejecuta subprocesos Java concurrentes . XVII Congreso Internacional sobre Técnicas y Aplicaciones de Procesamiento En Paralelo y Distribuido (PDPTA-11). Las Vegas, Nevada, Estados Unidos. págs. 551–557.Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
  • 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, FL, Estados Unidos. doi : 10.13140 / RG.2.1.3051.9207 .Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )

Enlaces externos [ editar ]

  • "¿Qué es un núcleo de procesador?" -Hacer uso de
  • "Embedded se mueve a multinúcleo" - Embedded Computing Design
  • "El multinúcleo es una mala noticia para las supercomputadoras" - IEEE Spectrum
  • Soluciones de arquitectura para el futuro de Manycore , publicado el 19 de febrero de 2010 (más de un enlace muerto en la diapositiva)