Временная многопоточность
Эта статья нуждается в дополнительных цитатах для проверки . ( март 2016 г. ) |
Временная многопоточность — это одна из двух основных форм многопоточности , которая может быть реализована на аппаратном обеспечении компьютерного процессора, другая — одновременная многопоточность . Отличительная разница между этими двумя формами заключается в максимальном количестве параллельных потоков , которые могут выполняться на любом этапе конвейера в данном цикле . При временной многопоточности это число равно единице, а при одновременной многопоточности — больше единицы. Некоторые авторы используют термин «суперпоточность» как синоним. [1]
Вариации [ править ]
Существует множество возможных вариантов временной многопоточности, но большинство из них можно разделить на две подформы:
- Крупнозернистый
- Конвейер основного процессора одновременно содержит только один поток. Процессор должен эффективно выполнить быстрое переключение контекста перед выполнением другого потока. Это быстрое переключение контекста иногда называют переключением потока . При переключении могут быть или не быть дополнительные штрафные циклы.
- Существует множество возможных вариантов грубой временной многопоточности, в основном касающихся алгоритма, который определяет, когда происходит переключение потоков. Этот алгоритм может быть основан на одном или нескольких из множества различных факторов, включая количество циклов, промахи в кэше и справедливость .
- Мелкозернистый (или чередующийся)
- Конвейер основного процессора может содержать несколько потоков, при этом переключения контекста эффективно происходят между этапами конвейера (например, в процессоре ствола ). Эта форма многопоточности может оказаться более дорогостоящей, чем более грубые формы, поскольку ресурсам выполнения, охватывающим несколько этапов конвейера, может потребоваться работа с несколькими потоками. На стоимость также влияет тот факт, что эту конструкцию нельзя оптимизировать с учетом концепции «фонового» потока — любой из параллельных потоков, реализованных аппаратно, может потребовать своего состояния в любом цикле. чтения или записи [2]
Сравнение с одновременной многопоточностью [ править ]
В любой из своих форм временная многопоточность во многом похожа на одновременную многопоточность. Как и в случае одновременного процесса, аппаратное обеспечение должно хранить полный набор состояний для каждого реализуемого параллельного потока. Аппаратное обеспечение также должно сохранять иллюзию того, что данный поток располагает ресурсами процессора только для себя. Алгоритмы справедливости должны быть включены в оба типа ситуаций многопоточности, чтобы предотвратить доминирование одного потока над процессорным временем и/или ресурсами.
Временная многопоточность имеет преимущество перед одновременной многопоточностью, поскольку она приводит к снижению тепловыделения процессора; однако он позволяет одновременно выполнять только один поток.
См. также [ править ]
Ссылки [ править ]
- ^ Суперпоточность с многопоточным процессором
- ^ Зильбершац, Авраам (2012). Концепции операционной системы . Вили, 9-е издание. п. 283. ИСБН 978-1118063330 .