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

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

Вариации

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

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

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

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

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

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

Ссылки

  1. ^ Суперпоточность с многопоточным процессором
  2. ^ Зильбершатц, Абрахам (2012). Концепции операционных систем . Wiley, 9-е издание. стр. 283. ISBN 978-1118063330.
Получено с "https://en.wikipedia.org/w/index.php?title=Временная_многопоточность&oldid=1134170990"