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