domingo, 17 de febrero de 2019

1.3 Arquitectura Multinúcleo

Un procesador multinúcleo (o multi-core) es un componente informático único con dos o más unidades de procesamiento independientes llamadas núcleos, que leen y ejecutan las instrucciones del programa.

Las instrucciones son instrucciones ordinarias de la CPU (como agregar, mover datos y bifurcar) pero el procesador único puede ejecutar múltiples instrucciones en núcleos separados al mismo tiempo, lo que aumenta la velocidad general de los programas susceptibles de computación en paralelo.

Los fabricantes generalmente integran los núcleos en un único circuito integrado (conocido como chip multiprocesador) o en matrices múltiples en un solo paquete de chips. Los microprocesadores actualmente utilizados en casi todas las computadoras personales son multinúcleo.

Un procesador multinúcleo implementa multiprocesamiento en un solo paquete físico. Los diseñadores pueden acoplar los núcleos en un dispositivo multinúcleo estrecha o libremente. Por ejemplo, los núcleos pueden o no compartir memorias caché, y pueden implementar métodos de comunicación entre núcleos de paso de mensajes o memoria compartida.

Las topologías de red comunes para interconectar núcleos incluyen bus, anillo, malla bidimensional y barra transversal.

Los sistemas homogéneos multinúcleo incluyen solo núcleos idénticos; los sistemas heterogéneos multinúcleo tienen núcleos que no son idénticos (por ejemplo, big.LITTLE tienen núcleos heterogéneos que comparten el mismo conjunto de instrucciones, mientras que las Unidades de procesamiento acelerado de AMD tienen núcleos que ni siquiera 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 tales como VLIW, superescalar, vector o multihilo.

Los procesadores multinúcleo se usan ampliamente en muchos dominios de aplicaciones, incluidos los de uso general, integrados, de red, procesamiento de señales digitales (DSP) y gráficos (GPU).

La mejora en el rendimiento obtenido por el uso de un procesador multinúcleo depende en gran medida de los algoritmos de software utilizados y su implementación. En particular, las ganancias posibles están limitadas por la fracción del software que se puede ejecutar en paralelo simultáneamente en múltiples núcleos; este efecto es descrito por la ley de Amdahl.

La mayoría de las aplicaciones no se aceleran tanto a menos que los programadores inviertan una cantidad prohibitiva de esfuerzo en volver más eficiente sus programas. La paralelización del software es un importante tema de investigación en curso.


No hay comentarios:

Publicar un comentario