multiprocessingEl uso, en un mismo sistema, de varias CPU que comparten recursos entre sí es lo que denominamos multiprocesamiento. Existen muchos tipos de sistemas de multiprocesamiento, y cambian en función de diversos aspectos.

En primer lugar, es importante tener en cuenta el emplazamiento en el que se ubican las CPU (es decir, si están en el mismo die, en el mismo chip o en la misma placa). En segundo lugar, el sistema de multiprocesamiento puede variar dependiendo de si todas las CPU ejecutan el mismo software o no. Esta es la diferencia entre un sistema de multiprocesamiento simétrico y uno asimétrico.

También es importante tener en cuenta qué recursos comparten (¿se trata solo de la memoria principal, de una parte de ella, o también comparten periféricos de entrada o salida?). El sistema de multiprocesamiento también puede tener variar en función de si las CPU son idénticas (sistema multinúcleo homogéneo) o diferentes (sistema multinúcleo heterogéneo).

Los sistemas de multiprocesamiento

El multiprocesamiento no es algo nuevo. Hace muchos años, los PC asignaban tareas específicas a procesadores concretos (como las unidades de procesamiento gráfico, o GPU). En los sistemas embebidos, también era habitual contar con más de un procesador (por lo general diferentes) y que cada uno se encargase de la función para la que estaba mejor adaptado.

En la imagen que encontramos más abajo, podemos ver un sistema multiprocesador heterogéneo embebido de finales de los 90 con un MPC68360 y un Z80180 compartiendo memoria en la misma placa.

microprocessors

 

También era frecuente integrar distintas CPU en un mismo chip. De hecho, el MPC68360 que se muestra en la imagen contaba con una CPU general y otra dedicada a las labores de comunicación. Ambas estaban en el mismo chip y compartían una RAM interna.

Sin embargo, a medida que aumentó el nivel de integración y la frecuencia de reloj, empezaron a aparecer problemas. Como solución, y con el fin de aumentar la potencia de procesamiento, los fabricantes empezaron a montar CPU o núcleos idénticos en el mismo chip. Estos sistemas de multiprocesamiento homogéneos llevan años dominando el mercado y podemos aprovechar esa potencia de dos maneras.

Multiprocesamiento simétrico

En este tipo de multiprocesamiento, un sistema operativo usa todas las CPU a la vez y ejecuta diversas tareas al mismo tiempo. Para optimizar este sistema, se desarrollaron nuevos bloques de hardware y software por debajo del SO.

Estos sistemas son comunes en dispositivos generales, como ordenadores personales, móviles, tablets, etc. Sin embargo, es en los servidores donde se saca el máximo partido a esta opción y donde podemos encontrar procesadores con hasta 32 núcleos.

Multiprocesamiento asimétrico

Esta otra opción suele emplearse en sistemas embebidos. En estos casos, hay más de un sistema operativo y cada uno usa sus propias CPU (por ejemplo, un router con un software de enrutamiento propietario en una CPU y con un SO general en la otra). Esta opción permite contar, en un solo equipo, con un router profesional y un servidor que ofrece servicios avanzados.

ARM big.LITTLE: arquitectura multinúcleo heterogénea

Los dispositivos portátiles (como los móviles) cada vez necesitan más potencia de procesamiento, pero sus baterías no están creciendo al mismo ritmo. Una posible solución al problema es integrar, en el mismo chip, CPU potentes y de alto consumo con algunas más lentas en las que se ahorre energía. Al alternar entre ambos modelos, podemos mantener la capacidad de procesamiento y ahorrar batería cuando los procesos a realizar no sean tan exigentes.

La solución ARM big.LITTLE es un ejemplo de esta arquitectura multinúcleo heterogénea.

En Teldat, siempre le hemos sacado el máximo partido a los sistemas de multiprocesamiento, desde los primeros routers de los años 90 (con sistemas como el que se muestra en la imagen) hasta los sistemas multinúcleo homogéneos más modernos, con multiprocesamiento asimétrico (como los del Atlas-i60). Además, seguiremos adaptando el concepto de multiprocesamiento en los nuevos desarrollos que lancemos en el futuro.


Sobre el autor

Gonzalo Jimenez
Gonzalo Jimenez
Ingeniero de Telecomunicaciones en el departamento de I+D. Es el responsable del departamento de BIOS.

Comparte este post


Nuestras Soluciones Relevantes