El subproceso múltiple temporal es una de las dos formas principales de subprocesamiento múltiple que se puede implementar en el hardware del procesador de computadora, siendo el otro subproceso múltiple simultáneo . La diferencia distintiva entre las dos formas es el número máximo de subprocesos simultáneos que se pueden ejecutar en cualquier etapa de canalización determinada en un ciclo determinado . En el multiproceso temporal el número es uno, mientras que en el multiproceso simultáneo el número es mayor que uno. Algunos autores utilizan el término superprocesamiento como sinónimo. [1]
Variaciones
Hay muchas variaciones posibles de multiproceso temporal, pero la mayoría se puede clasificar en dos subformas:
- De grano grueso
- La canalización del procesador principal contiene solo un subproceso a la vez. El procesador debe realizar efectivamente un cambio de contexto rápido antes de ejecutar un subproceso diferente. Este cambio de contexto rápido a veces se denomina cambio de hilo . Puede haber o no ciclos de penalización adicionales al cambiar.
- Hay muchas variaciones posibles de subprocesos múltiples temporales de grano grueso, principalmente en relación con el algoritmo que determina cuándo se produce la conmutación de subprocesos. Este algoritmo puede basarse en uno o más de muchos factores diferentes, incluidos los recuentos de ciclos, los fallos de caché y la equidad .
- De grano fino (o intercalado)
La tubería del procesador principal puede contener múltiples subprocesos, con cambios de contexto que ocurren efectivamente entre las etapas de la tubería (por ejemplo, en el procesador de barril ). Esta forma de subprocesos múltiples puede ser más costosa que las formas generales porque los recursos de ejecución que abarcan varias etapas de tubería pueden tener que lidiar con varios subprocesos. También contribuye al costo el hecho de que este diseño no se puede optimizar en torno al concepto de un subproceso "en segundo plano": cualquiera de los subprocesos simultáneos implementados por el hardware puede requerir que su estado sea leído o escrito en cualquier ciclo. [2]
Comparación con subprocesos múltiples simultáneos
En cualquiera de sus formas, el subproceso múltiple temporal es similar en muchos aspectos al subproceso múltiple simultáneo. Al igual que en el proceso simultáneo, el hardware debe almacenar un conjunto completo de estados por subproceso concurrente implementado. El hardware también debe preservar la ilusión de que un subproceso determinado tiene los recursos del procesador para sí mismo. Los algoritmos de equidad deben incluirse en ambos tipos de situaciones de subprocesos múltiples para evitar que un subproceso domine el tiempo y / o los recursos del procesador.
El subproceso múltiple temporal tiene una ventaja sobre el subproceso múltiple simultáneo en el sentido de que provoca una menor salida de calor del procesador; sin embargo, solo permite que se ejecute un subproceso a la vez.
Ver también
Referencias
- ^ Superthreading con un procesador multiproceso
- ^ Silberschatz, Abraham (2012). Conceptos del sistema operativo . Wiley, novena edición. pag. 283. ISBN 978-1118063330.