Anonim

Cuando las computadoras personales se inventaron por primera vez, su unidad central de procesamiento (CPU) era independiente y solo tenía un núcleo de procesador. El procesador en sí era el núcleo; La idea de tener un procesador de múltiples núcleos era aún desconocida. Hoy en día, no es raro ver computadoras, teléfonos y otros dispositivos con múltiples núcleos; de hecho, casi todas las computadoras disponibles comercialmente de cualquier tipo tienen múltiples núcleos. Estos núcleos residen en la misma, única, CPU o unidad central de procesamiento.

Tener múltiples núcleos es una gran ventaja. Con un solo núcleo, una computadora solo puede trabajar en una tarea a la vez, teniendo que completar una tarea antes de pasar a otra. Sin embargo, con más núcleos, una computadora puede trabajar en múltiples tareas a la vez, lo cual es especialmente útil para aquellos que realizan muchas tareas múltiples.

Antes de sumergirnos exactamente en cómo funcionan los procesadores multi-core, es importante hablar un poco sobre la historia de fondo de la tecnología de procesamiento, después de lo cual discutiremos qué hacen los procesadores multi-core.

Algo de historia

Antes de que se construyeran procesadores con múltiples núcleos, personas y compañías como Intel y AMD intentaron construir computadoras con múltiples CPU. Lo que esto significaba era que se necesitaba una placa base con más de un zócalo de CPU. Esto no solo fue más costoso, debido al hardware físico necesario para otro zócalo de la CPU, sino que también aumentó la latencia debido a la mayor comunicación que se necesitaba para tener lugar entre los dos procesadores. Una placa base tenía que dividir los datos entre dos ubicaciones completamente separadas en una computadora en lugar de simplemente enviarlos al procesador. La distancia física de hecho significa que un proceso es más lento. Poner estos procesos en un chip con múltiples núcleos no solo significa que hay menos distancia para viajar, sino que también significa que diferentes núcleos pueden compartir recursos para realizar tareas particularmente pesadas. Por ejemplo, los chips Pentium II y Pentium III de Intel se implementaron en versiones con dos procesadores en una placa base.

Después de un tiempo, los procesadores tenían que ser más potentes, por lo que los fabricantes de computadoras idearon el concepto de hiperprocesamiento. El concepto en sí proviene de Intel, y fue concebido por primera vez en 2002 en los procesadores de servidores Xeon de la compañía, y más tarde en sus procesadores de escritorio Pentium 4. Hyper-threading todavía se usa hoy en día en procesadores, e incluso es la principal diferencia entre los chips i5 de Intel y sus chips i7. Básicamente aprovecha el hecho de que a menudo hay recursos no utilizados en un procesador, específicamente cuando las tareas no requieren mucha potencia de procesamiento, lo que podría utilizarse para otros programas. Un procesador que utiliza hyper-threading básicamente se presenta a un sistema operativo como si tuviera dos núcleos. Por supuesto, en realidad no tiene dos núcleos, sin embargo, para dos programas que usan la mitad de la potencia de procesamiento disponible o menos, también puede haber dos núcleos debido al hecho de que juntos pueden aprovechar toda la potencia que el El procesador tiene que ofrecer. Sin embargo, Hyper-threading será un poco más lento que un procesador con dos núcleos cuando no hay suficiente potencia de procesamiento para compartir entre los dos programas que usan el núcleo.

Puede encontrar un video perspicaz que ofrece una explicación breve y más detallada del hiperproceso aquí.

Multiprocesadores

Después de mucha experimentación, finalmente se pudieron construir CPU con múltiples núcleos. Lo que esto significaba era que un único procesador tenía básicamente más de una unidad de procesamiento. Por ejemplo, un procesador de doble núcleo tiene dos unidades de procesamiento, un cuatro núcleos tiene cuatro, y así sucesivamente.

Entonces, ¿por qué las empresas desarrollaron procesadores con múltiples núcleos? Bueno, la necesidad de procesadores más rápidos se hacía cada vez más evidente, sin embargo, los desarrollos en los procesadores de un solo núcleo se estaban ralentizando. Desde la década de 1980 hasta la década de 2000, los ingenieros pudieron aumentar la velocidad de procesamiento de varios megahercios a varios gigahercios. Empresas como Intel y AMD hicieron esto al reducir el tamaño de los transistores, lo que permitió más transistores en la misma cantidad de espacio, mejorando así el rendimiento.

Debido al hecho de que la velocidad del reloj del procesador está muy vinculada a la cantidad de transistores que pueden caber en un chip, cuando la tecnología de reducción del transistor comenzó a disminuir, el desarrollo en velocidades de procesador aumentadas también comenzó a disminuir. Si bien esto no es cuando las empresas conocían por primera vez los procesadores multinúcleo, es cuando comenzaron a experimentar con procesadores multinúcleo con fines comerciales. Si bien los procesadores multinúcleo se desarrollaron por primera vez a mediados de la década de 1980, fueron diseñados para grandes corporaciones y no se revisaron realmente hasta que la tecnología de un solo núcleo comenzó a disminuir. El primer procesador multinúcleo fue desarrollado por Rockwell International, y era una versión del chip 6501 con dos procesadores 6502 en un chip (más detalles están disponibles aquí en esta entrada de Wikipedia).

¿Qué hace un procesador multinúcleo?

Bueno, en realidad todo es bastante sencillo. Tener múltiples núcleos permite hacer múltiples cosas a la vez. Por ejemplo, si está trabajando en correos electrónicos, tiene un navegador de Internet abierto, está trabajando en una hoja de cálculo de Excel y está escuchando música en iTunes, entonces un procesador de cuatro núcleos puede funcionar en todas estas cosas a la vez. O, si un usuario tiene una tarea que debe completarse de inmediato, se puede dividir en tareas más pequeñas y fáciles de procesar.

El uso de múltiples núcleos tampoco se limita solo a múltiples programas. Por ejemplo, Google Chrome procesa cada página nueva con un proceso diferente, lo que significa que puede aprovechar múltiples núcleos a la vez. Sin embargo, algunos programas son lo que se llama un solo subproceso, lo que significa que no se escribieron para poder usar múltiples núcleos y, como tales, no pueden hacerlo. Hyper-threading nuevamente entra en juego aquí, permitiendo que Chrome envíe múltiples páginas a dos "núcleos lógicos" en un núcleo real.

Ir de la mano con procesadores multi-core y hyper-threading es un concepto llamado multihilo. El subprocesamiento múltiple es esencialmente la capacidad de un sistema operativo de aprovechar múltiples núcleos al dividir el código en su forma más básica, o subprocesos, y alimentarlo a diferentes núcleos simultáneamente. Esto es, por supuesto, importante en los procesadores múltiples y en los procesadores de múltiples núcleos. El subprocesamiento múltiple es un poco más complejo de lo que parece, ya que requiere que los sistemas operativos ordenen el código correctamente de manera que el programa pueda continuar ejecutándose de manera eficiente.

Los sistemas operativos en sí mismos hacen cosas similares con sus propios procesos, no solo se limitan a las aplicaciones. Los procesos del sistema operativo son cosas que el sistema operativo siempre está haciendo en segundo plano, sin que el usuario lo sepa necesariamente. Debido al hecho de que estos procesos siempre están sucediendo, tener hiper-subprocesos y / o múltiples núcleos puede ser muy útil, ya que libera al procesador para poder trabajar en otras cosas como lo que está sucediendo en las aplicaciones.

¿Cómo funcionan los procesadores multinúcleo?

Primero, la placa base y el sistema operativo necesitan reconocer el procesador y que hay múltiples núcleos. Las computadoras más antiguas solo tenían un núcleo, por lo que un sistema operativo más antiguo podría no funcionar demasiado bien si un usuario intentara instalarlo en una computadora más nueva con múltiples núcleos. Windows 95, por ejemplo, no admite hiperhilo o múltiples núcleos. Todos los sistemas operativos recientes admiten procesadores multinúcleo, como Windows 7, 8, el recientemente lanzado 10 y OS X 10.10 de Apple.

En pocas palabras, el sistema operativo le dice a la placa base que se debe realizar un proceso. La placa base le dice al procesador. En un procesador multinúcleo, el sistema operativo puede indicarle al procesador que haga varias cosas a la vez. Esencialmente, a través de la dirección del sistema operativo, los datos se mueven desde el disco duro o la RAM, a través de la placa base, al procesador.

Procesador multinúcleo

Dentro de un procesador, hay múltiples niveles de memoria caché que contienen datos para la próxima operación u operaciones del procesador. Estos niveles de memoria caché aseguran que el procesador no tenga que mirar muy lejos para encontrar su próximo proceso, ahorrando mucho tiempo. El primer nivel de memoria caché es el caché L1. Si el procesador no puede encontrar los datos que necesita para su próximo proceso en la caché L1, busca la caché L2. El caché L2 es más grande en la memoria, pero es más lento que el caché L1.

Procesador de un solo núcleo

Si un procesador no puede encontrar lo que está buscando en el caché L2, continúa en la línea hacia L3, y si un procesador lo tiene, L4. Después de eso, se verá en la memoria principal o en la RAM de una computadora.

También hay diferentes formas en que diferentes procesadores manejan las memorias caché diferentes. Por ejemplo, algunos duplican los datos en el caché L1 en el caché L2, que es básicamente una forma de garantizar que el procesador pueda encontrar lo que está buscando. Esto, por supuesto, ocupa más memoria en el caché L2.

Los diferentes niveles de caché también entran en juego en procesadores multi-core. Por lo general, cada núcleo tendrá su propio caché L1, pero compartirán el caché L2. Esto es diferente de si hubiera varios procesadores, porque cada procesador tiene su propio caché L1, L2 y cualquier otro nivel. Con múltiples procesadores de un solo núcleo, el intercambio de caché simplemente no es posible. Una de las principales ventajas de tener un caché compartido es la capacidad de usar un caché al máximo, debido al hecho de que si un núcleo no está usando el caché, el otro puede.

En un procesador multinúcleo, al buscar datos, un núcleo puede mirar a través de su propia caché L1 única, y luego se ramificará a la caché L2 compartida, la RAM y, finalmente, el disco duro.

Es probable que sigamos viendo el desarrollo de más núcleos. Las velocidades del reloj del procesador seguramente continuarán mejorando, aunque a velocidades más lentas que antes. Si bien ahora no es raro ver procesadores de ocho núcleos en cosas como teléfonos inteligentes, muy pronto podríamos ver procesadores con docenas de núcleos.

¿A dónde crees que se dirige la tecnología de procesamiento multinúcleo? Háganos saber en los comentarios a continuación, o iniciando un nuevo hilo en nuestro foro de la comunidad.

Todo sobre procesadores multinúcleo: qué son, cómo funcionan y de dónde provienen