stringtranslate.com

Multiprocesamiento temporal

El multithreading temporal es una de las dos formas principales de multithreading que se pueden implementar en el hardware del procesador de una computadora, siendo la otra el multithreading 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 la cadena de procesamiento en un ciclo determinado . En el multithreading temporal el número es uno, mientras que en el multithreading simultáneo el número es mayor que uno. Algunos autores usan el término super-threading como sinónimo. [1]

Variaciones

Existen muchas variaciones posibles del multiprocesamiento temporal, pero la mayoría se pueden clasificar en dos subformas:

De grano grueso
La tubería del procesador principal contiene solo un subproceso a la vez. El procesador debe realizar de manera efectiva un cambio de contexto rápido antes de ejecutar un subproceso diferente. Este cambio de contexto rápido a veces se denomina cambio de subproceso . Puede haber o no ciclos de penalización adicionales al realizar el cambio.
Existen muchas variaciones posibles del multithreading temporal de grano grueso, principalmente relacionadas con el algoritmo que determina cuándo se produce el cambio de subproceso. Este algoritmo puede basarse en uno o más de muchos factores diferentes, incluidos los recuentos de ciclos, los errores de caché y la imparcialidad .
De grano fino (o intercalado)
La tubería del procesador principal puede contener múltiples subprocesos, y los cambios de contexto se producen efectivamente entre las etapas de la tubería (por ejemplo, en el procesador de barril ). Esta forma de subprocesamiento múltiple puede ser más costosa que las formas de granularidad gruesa porque los recursos de ejecución que abarcan múltiples etapas de la tubería pueden tener que lidiar con múltiples subprocesos. También contribuye al costo el hecho de que este diseño no se puede optimizar en torno al concepto de un subproceso "de fondo"; cualquiera de los subprocesos simultáneos implementados por el hardware puede requerir que su estado se lea o escriba en cualquier ciclo. [2]

Comparación con subprocesos múltiples simultáneos

En cualquiera de sus formas, el multihilo temporal es similar en muchos aspectos al multihilo simultáneo. 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 preservar la ilusión de que un hilo determinado tiene los recursos del procesador para sí mismo. Deben incluirse algoritmos de equidad en ambos tipos de situaciones de multihilo para evitar que un hilo domine el tiempo y/o los recursos del procesador.

El multiprocesamiento temporal tiene una ventaja sobre el multiprocesamiento simultáneo, ya que genera un menor calor en el procesador; sin embargo, permite que solo se ejecute un subproceso a la vez.

Véase también

Referencias

  1. ^ Superthreading con un procesador multiproceso
  2. ^ Silberschatz, Abraham (2012). Conceptos de sistemas operativos . Wiley, 9.ª edición. pág. 283. ISBN 978-1118063330.