Intel HyperThreading: qué es y cómo funciona esta tecnología para procesadores
A estas alturas, estamos convencidos que todos habéis escuchado hablar de la tecnología del HyperThreading que desarrolló Intel hace bastantes años y que tan amplio uso tiene en la mayoría de procesadores de la marca. En este tutorial os enseñaremos con algo más de detalle cómo es esta tecnología y cómo mejora el rendimiento del procesador.
La tecnología de HyperThreading, o Hyper-Threading lleva acompañándonos ya muchos años y se ha hecho, este término, sinónimo de los procesadores de Intel, que son las que la emplean. AMD ha comenzado a emplear una variación propia, denominada Simultaneous MultiThreading (o SMT), en sus procesadores con núcleo Zen con bastantes buenos resultados. Pero, cuales son los orígenes de esta tecnología.
El HyperThreading de Intel es una tecnología que está basada en el concepto de Simultaneous MultiThreading desarrollado por Sun Microsystems hace ya bastantes años (la patente es del año 1994).
Su primera iteración salió al mercado, primero con los procesadores Xeon para servidores de esta marca y, luego, con la versión del núcleo Northwood C de los Pentium 4 en el año 2002, para luego empezar a emplearse en los procesadores Atom, Core i3, Core i5 y Core i7 a medida que pasaban los años, dándoles un boost de rendimiento bastante importante, siempre y cuando el sistema operativo y las cargas de trabajo fueran compatibles con ella, claro.
Cómo funciona el HyperThreading
La tecnología del HyperThreading se basa en duplicar las unidades lógicas de cada núcleo del procesador, de manera que cada una de ellas pueda acceder a operaciones diferentes en la cola de instrucciones, pero manteniendo un único cuerpo de proceso. Un ejemplo sencillo sería estar sentado en una mesa y disponer de dos brazos para coger cosas que tengáis encima de ella.
Con vuestros dos brazos podréis acceder a ellas mucho más rápido que si solo dispusierais de un solo brazo, eso es lógico. Si en vez de estar vosotros solos en la mesa cogiendo cosas, fuerais varios amigos en la mesa, la analogía sería más del estilo a lo que sería un procesador con varios núcleos.
Continuando con la analogía, dado que con esta tecnología se comparte el cuerpo de proceso, sería como si estuvierais cogiendo cosas para limpiarlas y meterlas en una caja. Dado que solo tu puedes realizar la acción (tu serías el cuerpo de proceso del procesador), este es el factor limitante de la tecnología. Aun así, siempre es mucho mejor tener dos brazos para realizar la tarea que uno solo.
Uno de los inconvenientes de esta tecnología es que su efectividad depende en gran medida de si el sistema operativo es capaz de soportarla (es decir, que es capaz de tratar los hilos de proceso no como si fueran múltiples procesadores completos si no como múltiples unidades lógicas) y, especialmente, si las aplicaciones son más o menos paralelizables en las instrucciones que necesitan para funcionar.
Si una aplicación solo puede procesar una instrucción a la vez, por mucho procesador con HyperThreading que tengas en tu equipo, no vas a notar ninguna diferencia que con un procesador que no disponga de él. Si, por el contrario, la aplicación es muy paralelizable (la mayoría de aplicaciones de diseño y edición, por ejemplo, lo suelen ser), entonces sí es bastante probable que veas un incremento en el rendimiento del sistema al emplearla. Y, mucho cuidado, también de la temperatura de funcionamiento.