Временная многопоточность - Temporal multithreading

Временная многопоточность одна из двух основных форм многопоточность который может быть реализован на аппаратном обеспечении компьютерного процессора, другой одновременная многопоточность. Отличительная разница между двумя формами - максимальное количество одновременных потоки который может выполняться в любом заданном трубопровод этап в данном цикл. При временной многопоточности число равно единице, в то время как при одновременной многопоточности число больше единицы. Некоторые авторы используют термин сверхпоточность синонимично.[1]

Вариации

Существует множество возможных вариантов временной многопоточности, но большинство из них можно разделить на две подформы:

Крупнозернистый
Основной конвейер процессора одновременно содержит только один поток. Процессор должен эффективно выполнять быстрое переключатель контекста перед выполнением другого потока. Это быстрое переключение контекста иногда называют переключатель потока. При переключении могут быть или не быть дополнительные штрафные циклы.
Существует множество возможных вариаций крупномасштабной временной многопоточности, в основном касающихся алгоритма, который определяет, когда происходит переключение потоков. Этот алгоритм может быть основан на одном или нескольких из множества различных факторов, включая количество циклов, промахи в кеше, и справедливость.
Мелкозернистый (или с чередованием)

Основной конвейер процессора может содержать несколько потоков, при этом переключение контекста эффективно происходит между этапами конвейера (например, в баррель процессор ). Эта форма многопоточности может быть более дорогой, чем крупнозернистые формы, поскольку ресурсы выполнения, охватывающие несколько этапов конвейера, могут иметь дело с несколькими потоками. Снижению стоимости также способствует тот факт, что этот дизайн не может быть оптимизирован вокруг концепции «фонового» потока - любой из параллельных потоков, реализуемых оборудованием, может потребовать своего государственный быть прочитанным или написанным в любом цикле.[2]

Сравнение с одновременной многопоточностью

В любой форме временная многопоточность во многом похожа на одновременную многопоточность. Как и в одновременном процессе, аппаратное обеспечение должен хранить полный набор состояний для каждого реализованного параллельного потока. Аппаратное обеспечение также должно сохранять иллюзию того, что данный поток имеет ресурсы процессора. Алгоритмы справедливости должны быть включены в оба типа многопоточных ситуаций, чтобы предотвратить доминирование одного потока над временем процессора и / или ресурсами.

Временная многопоточность имеет преимущество перед одновременной многопоточностью в том, что она снижает тепловыделение процессора; однако он позволяет одновременно выполнять только один поток.

Смотрите также

Рекомендации

  1. ^ Суперпоточность с многопоточным процессором
  2. ^ Зильбершатц, Абрахам (2012). Понятия операционной системы. Wiley, 9-е издание. п. 283. ISBN  978-1118063330.