4. Hyper-Threading

Cómo funcionan los hilos o threads de un procesador (CPU)

 

 

pc cpu

 

Antes elegir un procesador era tan fácil como ver a qué velocidad iba para saber qué tan potente y capaz era. Sin embargo, ahora con el avance de la tecnología, los CPU de computadoras de escritorio y dispositivos móviles integran velocidades de relojnúcleos e hilos. Ya vimos fundamentalmente qué es un núcleo y cómo trabaja, pero ahora toca ver cómo los threads funcionan en estos componentes.

CPU

 

Un hilo dentro de un procesador es la forma en que cada uno de los núcleos del CPU recibirá y procesará la información. Cada núcleo puede solamente realizar una tarea a la vez y en a pesar de que un procesador, por poner un ejemplo, de ocho núcleos tenga 16 hilos, este comportamiento sigue siendo el mismo. Los threads no alteran el comportamiento de la máquina, pues hasta el momento siguen sin construirse de otra manera.

Sin embargo, los hilos juegan un papel fundamental en la forma en que esta misma información es procesada. Esta tecnología está implementada en todos los CPU de sobremesa actuales. En Intel lleva el nombre de Hyper-Threading, y en AMD el de Simultaneous MultiThreading (SMT), que no es otra cosa que la implementación de un hilo virtual extra sobre cada uno de los hilos que alimentan a sus núcleos individuales dentro de estos componentes.

Ahora, la forma en que se comportan estos es sencillamente alimentando de instrucciones al CPU de manera cíclica en cada una de sus vueltas de reloj. Cada procesador tendrá que ir resolviendo las instrucciones que son recibidas a través de estos canales y, finalmente, serán resueltas bajo la prioridad que se le asigna mediante programación.

 

Puedes entender los hilos como la forma en que comes. En un procesador sin multithreading, es como si comieras con una sola mano. No puedes comer más de una sola cosa al mismo tiempo porque no tienes más de una boca; pero si involucras tu otra mano, entonces podrás comer más rápido debido a que estás en posibilidad de repartir el trabajo de abastecimiento con dos manos en vez de una. Las velocidades de reloj, así como el número de cores en los CPU modernos, son suficientes para procesar instrucciones muy velozmente, por ello muchas veces los hilos pueden ser una restricción al performance que pueden entregar a pesar de tener velocidades de reloj altísimas.

Los hilos virtuales son ayudas de software que permiten que los hilos puedan mover información de manera mucho más eficiente hacia cada uno de los núcleos, donde serán administradas de manera cíclica y escalonada, pero con una velocidad mucho más óptima según sus capacidades de frecuencia le permitan. Es por eso que, en el caso de Intel, su trabajo en single core es mucho más relevante que en multi core, porque su trabajo de alimentación, respecto a la unidad central, está más limitado que el de AMD, que se ha concentrado en aprovechar su densidad de transistores (actualmente en 7nm) para también facilitar la cantidad de instrucciones que puede enviar a través de sus hilos, sin tener que elevar tanto la velocidad de su reloj ni su consumo de voltaje, como en la nueva serie Ryzen 5000.

 

 

El añadir más núcleos a un CPU es la forma más sencilla de resolver siempre la brecha de rendimiento, pero esto también implica costos mucho más altos. Evidentemente, también de ahí nace la necesidad de separar los CPU por gamas, en las que los más caros, como el Ryzen 9 y el Core i9, son los que más núcleos tienen, y los más baratos, como el Core i3 y el Ryzen 3, los que menos.

Sin embargo, la brecha puede cerrarse un poco con la añadidura de los threads virtuales. Así, aunque no cuenten con un número mayor de núcleos, serán capaces de acercarse un poco al rendimiento en tareas que no sean tan demandantes, que serán generalmente las que realice un usuario promedio. También permiten a los desarrolladores hacer que su software sea capaz de reproducirse en más sistemas a pesar de concentrar una carga más pesada en trabajo multi núcleo.