Одновременная многопоточность
Одновременная многопоточность, аббревиатура SMT, - это метод повышения общей эффективности суперскалярных процессоров с аппаратной многопоточностью. SMT позволяет нескольким независимым потокам выполнения лучше использовать ресурсы, предоставляемые современными компьютерными архитектурами.
Многопоточность схожа по концепции с многозадачностью, но реализована на уровне потоков исполнения в современных суперскалярных процессорах.
При проектировании процессоров есть два способа увеличить параллелизм на кристалле при меньших требованиях к ресурсам:
- Суперскалярный метод: пытается повысить параллелизм на уровне инструкций (ILP) путем одновременного выполнения нескольких инструкций (называется: одновременно); путем "одновременной" диспетчеризации инструкций (называется: диспетчеризация инструкций) на несколько избыточных блоков исполнения, встроенных в процессор.
- Метод многопоточности на уровне микросхемы (CMT): использование параллелизма на уровне потоков (TLP) для выполнения инструкций из нескольких потоков в пределах одной процессорной микросхемы одновременно.
Существует множество способов поддержки более чем одной нити внутри микросхемы, а именно:
- Многопоточность с чередованием (IMT) : многопоточность с чередованием нескольких инструкций из разных потоков, также называемая многопоточностью с временным чередованием (Temporal multithreading). В дальнейшем он может быть разделен на мелкозернистое многопоточное или крупнозернистое многопоточное в зависимости от частоты чередования. Тонкозернистые многопоточные задачи задают инструкции для различных потоков после каждого цикла, в то время как крупнозернистые многопоточные задачи переключаются на задание инструкций из другого потока только тогда, когда текущий выполняющийся поток вызывает некоторые длительные задержки (например, сбои в работе страницы и т.д.). Грубое многопоточное чтение более распространено для меньшего количества контекстных переключений между потоками. Для процессоров с одним конвейером на ядро многопоточность с чередованием - единственно возможный способ, так как он может выдавать до одной инструкции в цикле.
- Одновременная многопоточность (SMT): Выдача нескольких инструкций из нескольких потоков за один цикл. Для этого процессор должен быть суперскалярным.
- Многопроцессорная обработка на уровне чипа (CMP или многоядерный процессор): интегрирует два или более суперскалярных процессора в одну микросхему, каждый из которых выполняет потоки независимо друг от друга.
- Любая комбинация IMT/SMT/CMP
Ключевым фактором, отличающим их, является рассмотрение того, сколько команд может выдать процессор за один цикл и сколько потоков, из которых приходят инструкции.
Примеры современных ЦПУ SMT
- Intel Pentium 4 стал первым современным настольным процессором, реализующим одновременную многопотоковую обработку, начиная с модели 3.06 ГГц, выпущенной в 2002 году, и с тех пор внедренной в ряд своих процессоров. Intel называет функциональность Hyper-Threading Technology (HTT) и предоставляет базовый двухпоточный SMT-движок. Intel утверждает, что скорость работы повысилась до 30% по сравнению с аналогичным не-SMT Pentium 4.
- Последние разработки архитектуры MIPS включают в себя систему SMT, известную как "MIPS MT".
- IBM POWER5, анонсированная в мае 2004 года, поставляется в виде двухъядерного DCM, или четырехъядерного, или восьмиъядерного MCM, с каждым ядром, включающим двухпоточный SMT-движок. Реализация IBM более сложна, чем предыдущая, потому что она может назначать различные приоритеты разным потокам, более мелкозернистая, а SMT-движок может включаться и выключаться динамически, чтобы лучше выполнять те рабочие нагрузки, при которых SMT-процессор не будет увеличивать производительность. Это вторая реализация IBM широко доступной аппаратной многопоточности.
- Intel Atom, выпущенный в 2008 году, является первым продуктом Intel с поддержкой SMT (продается как Hyper-threading) без поддержки переупорядочивания инструкций, спекулятивного выполнения или переименования регистра.
Связанные страницы
- Нитка (компьютерная наука)
- Параллельные вычисления
- Параллелизм на уровне инструкций
- Многоядерные процессоры
Вопросы и ответы
В: Что такое одновременная многопоточность?
О: Одновременная многопоточность (SMT) - это техника для повышения общей эффективности суперскалярных процессоров с аппаратной многопоточностью. Она позволяет использовать несколько независимых потоков выполнения для лучшего использования ресурсов, предоставляемых современными компьютерными архитектурами.
В: Чем SMT отличается от многозадачности?
О: Многопоточность схожа по концепции с многозадачностью, но в современных суперскалярных процессорах она реализуется на уровне потоков выполнения, тогда как многозадачность реализуется на уровне процессов.
В: Каковы два способа увеличения параллелизма на кристалле?
О: Два способа увеличения параллелизма на кристалле - это суперскалярная техника и многопоточность на уровне кристалла (CMT).
В: Каковы некоторые различные типы многопоточности на уровне кристалла?
О: Различные типы многопоточности на уровне кристалла включают чередующуюся многопоточность (IMT), мелкозернистую многопоточность, крупнозернистую многопоточность и одновременную многопоточность (SMT).
В: Как Вы можете отличить IMT/SMT/CMP?
О: Ключевым фактором для различения IMT/SMT/CMP является то, сколько инструкций процессор может выдать за один цикл и сколько потоков, из которых поступают инструкции.
В: Какой тип процессора должен использоваться для SMT?
О: Для SMT должен использоваться суперскалярный процессор.
В: Какой тип процессора используется в Chip Level MultiProcessing?
О: В Chip Level MultiProcessing используются многоядерные процессоры, которые объединяют два или более суперскалярных процессора в одном чипе, каждый из которых выполняет потоки независимо.