Одновременная многопоточность

Одновременная многопоточность, аббревиатура SMT, - это метод повышения общей эффективности суперскалярных процессоров с аппаратной многопоточностью. SMT позволяет нескольким независимым потокам выполнения лучше использовать ресурсы, предоставляемые современными компьютерными архитектурами.

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

При проектировании процессоров есть два способа увеличить параллелизм на кристалле при меньших требованиях к ресурсам:

  1. Суперскалярный метод: пытается повысить параллелизм на уровне инструкций (ILP) путем одновременного выполнения нескольких инструкций (называется: одновременно); путем "одновременной" диспетчеризации инструкций (называется: диспетчеризация инструкций) на несколько избыточных блоков исполнения, встроенных в процессор.
  2. Метод многопоточности на уровне микросхемы (CMT): использование параллелизма на уровне потоков (TLP) для выполнения инструкций из нескольких потоков в пределах одной процессорной микросхемы одновременно.

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

  1. Многопоточность с чередованием (IMT) : многопоточность с чередованием нескольких инструкций из разных потоков, также называемая многопоточностью с временным чередованием (Temporal multithreading). В дальнейшем он может быть разделен на мелкозернистое многопоточное или крупнозернистое многопоточное в зависимости от частоты чередования. Тонкозернистые многопоточные задачи задают инструкции для различных потоков после каждого цикла, в то время как крупнозернистые многопоточные задачи переключаются на задание инструкций из другого потока только тогда, когда текущий выполняющийся поток вызывает некоторые длительные задержки (например, сбои в работе страницы и т.д.). Грубое многопоточное чтение более распространено для меньшего количества контекстных переключений между потоками. Для процессоров с одним конвейером на ядро многопоточность с чередованием - единственно возможный способ, так как он может выдавать до одной инструкции в цикле.
  2. Одновременная многопоточность (SMT): Выдача нескольких инструкций из нескольких потоков за один цикл. Для этого процессор должен быть суперскалярным.
  3. Многопроцессорная обработка на уровне чипа (CMP или многоядерный процессор): интегрирует два или более суперскалярных процессора в одну микросхему, каждый из которых выполняет потоки независимо друг от друга.
  4. Любая комбинация IMT/SMT/CMP

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

Примеры современных ЦПУ SMT

  1. Intel Pentium 4 стал первым современным настольным процессором, реализующим одновременную многопотоковую обработку, начиная с модели 3.06 ГГц, выпущенной в 2002 году, и с тех пор внедренной в ряд своих процессоров. Intel называет функциональность Hyper-Threading Technology (HTT) и предоставляет базовый двухпоточный SMT-движок. Intel утверждает, что скорость работы повысилась до 30% по сравнению с аналогичным не-SMT Pentium 4.
  2. Последние разработки архитектуры MIPS включают в себя систему SMT, известную как "MIPS MT".
  3. IBM POWER5, анонсированная в мае 2004 года, поставляется в виде двухъядерного DCM, или четырехъядерного, или восьмиъядерного MCM, с каждым ядром, включающим двухпоточный SMT-движок. Реализация IBM более сложна, чем предыдущая, потому что она может назначать различные приоритеты разным потокам, более мелкозернистая, а SMT-движок может включаться и выключаться динамически, чтобы лучше выполнять те рабочие нагрузки, при которых SMT-процессор не будет увеличивать производительность. Это вторая реализация IBM широко доступной аппаратной многопоточности.
  4. 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 используются многоядерные процессоры, которые объединяют два или более суперскалярных процессора в одном чипе, каждый из которых выполняет потоки независимо.

AlegsaOnline.com - 2020 / 2023 - License CC3