Saltar al contenido
Electrónica Online

Procesador multinúcleo

procesador multinucleo

¿Qué es un procesador multinúcleo?

Un procesador multinúcleo es un circuito integrado que tiene acoplados dos o más núcleos de procesador para mejorar el rendimiento y reducir el consumo de energía. Estos procesadores también permiten un procesamiento simultáneo más eficiente de múltiples tareas, como ocurre con el procesamiento paralelo y el multihilo. Una configuración de doble núcleo es similar a tener varios procesadores independientes instalados en una computadora. Sin embargo, como los dos procesadores están conectados al mismo socket, la conexión entre ellos es más rápida.

El uso de procesadores o microprocesadores multinúcleo es una forma de aumentar el rendimiento de los procesadores sin sobrepasar las limitaciones prácticas del diseño y la fabricación de semiconductores. El uso de multinúcleos también garantiza un funcionamiento seguro en aspectos como la generación de calor.

¿Cómo funcionan los procesadores multinúcleo?

El corazón de todo procesador es un motor de ejecución, también conocido como núcleo. El núcleo está diseñado para procesar instrucciones y datos según la dirección de los programas de software en la memoria del ordenador. A lo largo de los años, los diseñadores descubrieron que cada nuevo diseño de procesador tenía sus límites. Se desarrollaron numerosas tecnologías para acelerar el rendimiento, entre ellas las siguientes:

  • Velocidad de reloj. Uno de los métodos consistía en acelerar el reloj del procesador. El reloj es el «tamborileo» utilizado para sincronizar el procesamiento de instrucciones y datos a través del motor de procesamiento. Las velocidades de reloj se han acelerado de varios megahercios a varios gigahercios (GHz) en la actualidad. Sin embargo, los transistores consumen energía con cada tic de reloj. Como resultado, las velocidades de reloj casi han alcanzado sus límites dadas las técnicas actuales de fabricación de semiconductores y gestión del calor.
  • Hyper-threading. Otro enfoque consiste en manejar múltiples subprocesos de instrucciones. Intel lo denomina hyper-threading. Con hyper-threading, los núcleos del procesador se diseñan para gestionar dos subprocesos de instrucciones independientes al mismo tiempo. Cuando el firmware y el sistema operativo (SO) del ordenador las activan y admiten correctamente, las técnicas de hyper-threading permiten que un núcleo físico funcione como dos núcleos lógicos. Aun así, el procesador sólo posee un único núcleo físico. La abstracción lógica del procesador físico añade poco rendimiento real al procesador, aparte de ayudar a racionalizar el comportamiento de múltiples aplicaciones simultáneas que se ejecutan en el ordenador.
  • Más chips. El siguiente paso fue añadir chips -o matrices- al paquete del procesador, que es el dispositivo físico que se conecta a la placa base. Un procesador de doble núcleo incluye dos núcleos independientes. Un procesador de cuatro núcleos incluye cuatro núcleos independientes. Los procesadores multinúcleo actuales pueden incluir fácilmente 12, 24 o incluso más núcleos. El enfoque multinúcleo es casi idéntico al uso de placas base multiprocesador, que tienen dos o cuatro sockets de procesador independientes. El efecto es el mismo. El enorme rendimiento actual de los procesadores implica el uso de productos que combinan rápidas velocidades de reloj y múltiples núcleos con hyper-threaded.

Sin embargo, los chips multinúcleo plantean varios problemas. En primer lugar, la adición de más núcleos de procesador no mejora automáticamente el rendimiento del ordenador. El sistema operativo y las aplicaciones deben dirigir las instrucciones del programa de software para que reconozca y utilice los múltiples núcleos. Esto debe hacerse en paralelo, utilizando varios subprocesos para los distintos núcleos del procesador. Algunas aplicaciones de software pueden necesitar ser refactorizadas para soportar y utilizar plataformas de procesadores multinúcleo. De lo contrario, solo se utiliza el primer núcleo de procesador predeterminado y los núcleos adicionales no se utilizan o permanecen inactivos.

En segundo lugar, el beneficio de rendimiento de los núcleos adicionales no es un múltiplo directo. Es decir, añadir un segundo núcleo no duplica el rendimiento del procesador, o un procesador de cuatro núcleos no multiplica por cuatro el rendimiento del procesador. Esto ocurre debido a los elementos compartidos del procesador, como el acceso a la memoria interna o cachés, los buses externos y la memoria del sistema informático.

El beneficio de tener varios núcleos puede ser sustancial, pero existen límites prácticos. Aun así, la aceleración suele ser mejor que la de un sistema multiprocesador tradicional porque el acoplamiento entre los núcleos en el mismo paquete es más estrecho y hay distancias más cortas y menos componentes entre los núcleos.

Considere la analogía de los coches en una carretera. Cada coche puede ser un procesador, pero cada uno debe compartir las carreteras comunes y las limitaciones del tráfico. Más coches pueden transportar más personas y mercancías en un tiempo determinado, pero más coches también causan atascos y otros problemas.

¿Para qué sirven los procesadores multinúcleo?

Los procesadores multinúcleo funcionan en cualquier plataforma informática moderna. Prácticamente todas las PCs y laptops actuales incorporan algún modelo de procesador multinúcleo. Sin embargo, la verdadera potencia y ventajas de estos procesadores dependen de las aplicaciones de software diseñadas para enfatizar el paralelismo. Un enfoque paralelo divide el trabajo de la aplicación en numerosos hilos de procesamiento y, a continuación, distribuye y gestiona esos hilos en dos o más núcleos del procesador.

Existen varios casos de uso importantes para los procesadores multinúcleo, entre los que se incluyen los cinco siguientes:

  1. Virtualización. Una plataforma de virtualización, como VMware, está diseñada para abstraer el entorno de software del hardware subyacente. La virtualización es capaz de abstraer los núcleos físicos del procesador en procesadores virtuales o unidades centrales de procesamiento (vCPU) que luego se asignan a máquinas virtuales (VM). Cada VM se convierte en un servidor virtual capaz de ejecutar su propio SO y aplicación. Es posible asignar más de una vCPU a cada VM, lo que permite que cada VM y su aplicación ejecuten software de procesamiento paralelo si así se desea.
  2. Bases de datos. Una base de datos es una plataforma de software compleja que a menudo necesita ejecutar muchas tareas simultáneas, como consultas. Como resultado, las bases de datos dependen en gran medida de procesadores multinúcleo para distribuir y gestionar estos numerosos hilos de tareas. El uso de múltiples procesadores en las bases de datos suele ir acompañado de una capacidad de memoria extremadamente alta que puede alcanzar 1 terabyte o más en el servidor físico.
  3. Analítica y HPC. La analítica de big data, como el aprendizaje automático, y la computación de alto rendimiento (HPC) requieren dividir las tareas grandes y complejas en partes más pequeñas y manejables. Cada parte del esfuerzo computacional puede entonces resolverse distribuyendo cada parte del problema a un procesador diferente. Este enfoque permite que cada procesador trabaje en paralelo para resolver el problema global de forma mucho más rápida y eficiente que con un único procesador.
  4. Nube. Es casi seguro que las organizaciones que construyen una nube adoptarán procesadores multinúcleo para soportar toda la virtualización necesaria para dar cabida a las demandas altamente escalables y altamente transaccionales de las plataformas de software de nube como OpenStack. Un conjunto de servidores con procesadores multinúcleo puede permitir a la nube crear y escalar más instancias de máquinas virtuales bajo demanda.
  5. Visualización. Las aplicaciones gráficas, como juegos y motores de renderizado de datos, tienen los mismos requisitos de paralelismo que otras aplicaciones HPC. El renderizado visual es una tarea matemática intensiva, y las aplicaciones de visualización pueden hacer un uso extensivo de múltiples procesadores para distribuir los cálculos requeridos. Muchas aplicaciones gráficas utilizan unidades de procesamiento gráfico (GPU) en lugar de CPUs. Las GPUs están diseñadas para optimizar las tareas relacionadas con los gráficos. Los paquetes de GPU suelen contener varios núcleos de GPU, similares en principio a los procesadores multinúcleo.

Ventajas e inconvenientes de los procesadores multinúcleo

La tecnología de procesadores multinúcleo está madura y bien definida. Sin embargo, esta tecnología tiene sus pros y sus contras, que deben tenerse en cuenta a la hora de comprar e instalar nuevos servidores.

Ventajas de los multinúcleos

Mejor rendimiento de las aplicaciones. La principal ventaja de los procesadores multinúcleo es su mayor capacidad potencial de procesamiento. Cada núcleo de procesador es un procesador independiente que pueden utilizar los sistemas operativos y las aplicaciones. En un servidor virtualizado, cada máquina virtual puede utilizar uno o varios núcleos de procesador virtualizados, lo que permite que muchas máquinas virtuales coexistan y funcionen simultáneamente en un servidor físico. Del mismo modo, una aplicación diseñada para altos niveles de paralelismo puede utilizar cualquier número de núcleos para proporcionar un alto rendimiento de la aplicación que sería imposible con sistemas de un solo chip.

Mejor rendimiento del hardware. Al colocar dos o más núcleos de procesador en el mismo dispositivo, puede utilizar componentes compartidos -como buses internos comunes y cachés de procesador- de forma más eficiente. También se beneficia de un rendimiento superior en comparación con los sistemas multiprocesador que tienen paquetes de procesadores separados en la misma placa base.

Desventajas de los multinúcleos

Depende del software. La aplicación utiliza los procesadores, no al revés. Los sistemas operativos y las aplicaciones siempre utilizarán por defecto el primer núcleo del procesador, denominado núcleo 0. Todos los núcleos adicionales del paquete del procesador permanecerán sin utilizar o inactivos hasta que las aplicaciones de software estén habilitadas para utilizarlos. Estas aplicaciones incluyen aplicaciones de bases de datos y herramientas de procesamiento de big data como Hadoop. Una empresa debe considerar para qué se utilizará un servidor y las aplicaciones que planea utilizar antes de hacer una inversión en un sistema multinúcleo para asegurarse de que el sistema ofrece su potencial informático óptimo.

Los aumentos de rendimiento son limitados. Los múltiples procesadores de un paquete de procesadores deben compartir buses de sistema y cachés de procesador comunes. Cuantos más núcleos de procesador compartan un paquete, más recursos e interfaces de procesador comunes deberán compartirse. El resultado es un rendimiento decreciente a medida que se añaden núcleos. En la mayoría de las situaciones, la ventaja de disponer de varios núcleos supera con creces la pérdida de rendimiento que supone compartirlos, pero es un factor a tener en cuenta a la hora de probar el rendimiento de las aplicaciones.

Restricciones de potencia, calor y reloj. Es posible que un ordenador no pueda manejar un procesador con muchos núcleos con la misma intensidad que un procesador con menos núcleos o un procesador mononúcleo. Un núcleo de procesador moderno puede contener más de 500 millones de transistores. Cada transistor genera calor cuando conmuta, y este calor aumenta a medida que aumenta la velocidad del reloj. Toda esa generación de calor debe disiparse de forma segura desde el núcleo a través del encapsulado del procesador. Cuando hay más núcleos funcionando, este calor puede multiplicarse y superar rápidamente la capacidad de refrigeración del encapsulado del procesador. Por ello, algunos procesadores multinúcleo pueden reducir la velocidad de reloj (por ejemplo, de 3.5 GHz a 3.0 GHz) para controlar el calor. Esto reduce el rendimiento de todos los núcleos del procesador. Los procesadores multinúcleo de gama alta requieren sistemas de refrigeración complejos y una instalación y supervisión cuidadosas para garantizar la fiabilidad del sistema a largo plazo.

Arquitectura de los procesadores multinúcleo

A efectos de esta definición, todo procesador multinúcleo consta de dos o más núcleos junto con una serie de cachés.

  • Los núcleos son los componentes centrales de los procesadores multinúcleo. Los núcleos contienen todos los registros y circuitos -a veces cientos de millones de transistores individuales- necesarios para realizar las tareas estrechamente sincronizadas de ingesta de datos e instrucciones, procesamiento de ese contenido y salida de decisiones o resultados lógicos.
  • Los circuitos de soporte del procesador incluyen una serie de circuitos de control y gestión de entrada/salida, como relojes, coherencia de la caché, control térmico y de alimentación y acceso al bus externo.
  • Las cachés son áreas relativamente pequeñas de memoria muy rápida. Una caché retiene instrucciones o datos que se utilizan con frecuencia, poniendo ese contenido a disposición del núcleo sin necesidad de acceder a la memoria del sistema. Un procesador comprueba primero la caché. Si el contenido requerido está presente, el núcleo toma ese contenido de la caché, aumentando los beneficios de rendimiento. Si el contenido está ausente, el núcleo accederá a la memoria del sistema para obtener el contenido necesario. La caché de nivel 1, o L1, es la más pequeña y rápida de todas y es exclusiva de cada núcleo. Una caché de Nivel 2, o L2, es un espacio de almacenamiento más grande compartido entre los núcleos. Algunas arquitecturas de procesadores multinúcleo pueden dedicar tanto cachés L1 como L2.

Procesadores multinúcleo homogéneos vs heterogéneos

Los núcleos de un procesador multinúcleo pueden ser homogéneos o heterogéneos. Los principales procesadores multinúcleo de Intel y AMD para arquitecturas X86 son homogéneos y ofrecen núcleos idénticos. En consecuencia, la mayoría de los debates sobre procesadores multinúcleo se refieren a procesadores homogéneos.

Sin embargo, dedicar un dispositivo complejo a hacer un trabajo sencillo o a obtener la mayor eficiencia suele ser un despilfarro. Existe un mercado de procesadores multinúcleo heterogéneos que utilizan procesadores con distintos núcleos para diferentes propósitos. Los núcleos heterogéneos suelen encontrarse en procesadores embebidos o Arm que pueden mezclar núcleos de microprocesador y microcontrolador en el mismo encapsulado.

Los procesadores multinúcleo heterogéneos tienen tres objetivos generales:

  1. Rendimiento optimizado. Aunque los procesadores multinúcleo homogéneos suelen estar pensados para ofrecer capacidades de procesamiento universales, muchos procesadores no están pensados para estos casos de uso genérico del sistema. En su lugar, se diseñan y comercializan para su uso en sistemas embebidos (dedicados o específicos de una tarea) que pueden beneficiarse de las ventajas exclusivas de los distintos procesadores. Por ejemplo, un procesador destinado a un dispositivo de procesamiento de señales puede utilizar un procesador Arm que contenga un procesador de propósito general Cortex-A con un núcleo Cortex-M para tareas específicas de procesamiento de señales.
  2. Potencia optimizada. Los núcleos de procesador más sencillos reducen el número de transistores y la demanda de energía. De este modo, el paquete del procesador y el sistema en su conjunto se enfrían y consumen menos.
  3. Seguridad optimizada. Los trabajos o procesos pueden dividirse entre distintos tipos de núcleos, lo que permite a los diseñadores crear deliberadamente altos niveles de aislamiento que controlan estrictamente el acceso entre los distintos núcleos del procesador. Este mayor control y aislamiento ofrecen mayor estabilidad y seguridad al sistema en su conjunto, aunque a costa de la flexibilidad general.

Ejemplos de procesadores multinúcleo

La mayoría de los procesadores modernos diseñados y comercializados para la informática x86 de propósito general incluyen varios núcleos de procesamiento. Algunos ejemplos de los últimos procesadores multinúcleo Intel de 12ª generación son los siguientes:

  • La familia Intel Core i9 12900 proporciona 8 núcleos y 24 hilos.
  • La familia Intel Core i7 12700 proporciona 8 núcleos y 20 hilos.
  • Los mejores procesadores Intel Core i5 12600K ofrecen 6 núcleos y 16 hilos.

Algunos ejemplos de los últimos procesadores multinúcleo AMD Zen son:

  • La familia AMD Zen 3 proporciona de 4 a 16 núcleos.
  • La familia AMD Zen 2 ofrece hasta 64 núcleos.
  • La familia AMD Zen+ ofrece de 4 a 32 núcleos.

¿Te ha resultado útil esta información?

No
¡Gracias por tus comentarios!

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *