Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Варианты [ править ]

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

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

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

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

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

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

См. Также [ править ]

Ссылки [ править ]

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