El multihilo temporal es una de las dos formas principales de multihilo que se pueden implementar en el hardware de un procesador informático; la otra es el multihilo simultáneo . La diferencia fundamental entre ambas formas radica en el número máximo de hilos concurrentes que pueden ejecutarse en cualquier etapa de la tubería en un ciclo determinado . En el multihilo temporal, este número es uno, mientras que en el multihilo simultáneo es mayor que uno. Algunos autores utilizan el término superhilo como sinónimo. [ 1 ]
Variaciones
Existen muchas variaciones posibles de multihilo temporal, pero la mayoría se pueden clasificar en dos subformas:
- De grano grueso
- La tubería principal del procesador contiene solo un hilo a la vez. El procesador debe realizar un cambio de contexto rápido antes de ejecutar un hilo diferente. Este cambio de contexto rápido se conoce a veces como cambio de hilo . Puede haber o no ciclos de penalización adicionales durante el cambio.
- Existen muchas variantes posibles de multihilo temporal de grano grueso, principalmente en lo que respecta al algoritmo que determina cuándo se produce el cambio de hilo. Este algoritmo puede basarse en uno o más factores diferentes, como el número de ciclos, los fallos de caché y la equidad .
- De grano fino (o intercalado)
- La tubería del procesador principal puede contener múltiples hilos, con cambios de contexto que ocurren efectivamente entre etapas de la tubería (por ejemplo, en el procesador de barril ). Esta forma de multihilo puede ser más costosa que las formas de grano grueso porque los recursos de ejecución que abarcan múltiples etapas de la tubería pueden tener que lidiar con múltiples hilos. Otro factor que contribuye al costo es el hecho de que este diseño no se puede optimizar en torno al concepto de un hilo "en segundo plano" : cualquiera de los hilos concurrentes implementados por el hardware podría requerir que su estado se lea o se escriba en cualquier ciclo. [ 2 ]
Comparación con el multihilo simultáneo
En cualquiera de sus formas, la multihilo temporal es similar en muchos aspectos a la multihilo simultánea. Al igual que en el proceso simultáneo, el hardware debe almacenar un conjunto completo de estados por cada hilo concurrente implementado. El hardware también debe mantener la ilusión de que un hilo determinado dispone de los recursos del procesador exclusivamente para sí mismo. Es necesario incluir algoritmos de equidad en ambos tipos de multihilo para evitar que un hilo domine el tiempo o los recursos del procesador.
La multihilo temporal tiene una ventaja sobre la multihilo simultánea, ya que genera menos calor en el procesador; sin embargo, solo permite que se ejecute un hilo a la vez.
Véase también
Referencias
- ↑ Stokes, Jon (3 de octubre de 2002). "Introducción a Multithreading, Superthreading e Hyperthreading" . Ars Technica . Superthreading con un procesador multihilo.
- ↑ Silberschatz, Abraham (2012). Conceptos de sistemas operativos . Wiley, 9.ª edición. pág. 283. ISBN 978-1118063330.
- La taxonomía de Flynn
- Hilos (informática)
- unidad central de procesamiento
- Arquitectura de computadoras