Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Альтернативы
Недавние
Show all languages
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

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

Из Википедии — свободной энциклопедии

Временна́я многопоточность (англ. Temporal multithreading) — одна из двух главных форм многопоточности, которая может быть реализована в процессорах аппаратно. Второй формой является одновременная многопоточность. Различие между этими двумя формами состоит в максимальном количестве потоков, которые исполняются на каждой стадии вычислительного конвейера в определенный тактовый цикл процессора. При временной многопоточности в каждый данный момент исполняется только один поток, а при одновременной многопоточности — несколько. Некоторые специалисты используют термин super-threading в качестве синонима временной многопоточности.[1]

На обычном процессоре управление потоками осуществляется операционной системой. Поток исполняется до тех пор, пока не произойдет аппаратное прерывание, системный вызов или пока не истечёт отведённое для него операционной системой время. После этого процессор переключается на код операционной системы, который сохраняет состояние потока (его контекст) и переключается на состояние следующего в очереди потока, которому тоже выделяется время на исполнение. При такой многопоточности достаточно большое количество тактов процессора тратится на код операционной системы, переключающий контексты. Если поддержку потоков реализовать аппаратно, то процессор сам сможет переключаться между потоками, а в идеальном случае — выполнять несколько потоков одновременно за каждый такт.

Варианты

Временная многопоточность делится на две главные под-формы:

Крупнозернистая (Coarse-grained multithreading (CGMT), Blocked multithreading)

В конвейере процессора исполняется только один поток некоторый продолжительный промежуток времени. В момент, когда этому потоку требуются например данные из памяти, а данные отсутствуют в кэше, процессор сохраняет состояние потока и переключается автоматически на другой поток, пока тому тоже не понадобится что-то из памяти. Другой причиной переключения на другой поток может являться заданное ограничение на количество тактов процессора. Таким образом конвейер процессора не простаивает и почти всегда занят исполнением кода того или иного потока.
Крупнозернистая многопоточность: каждый поток выполняется за один или несколько тактов и, если возможно, на нескольких конвейерах
Крупнозернистая многопоточность: каждый поток выполняется за один или несколько тактов и, если возможно, на нескольких конвейерах

Тонкозернистая (Fine-grained multithreading (FGMT), Interleaved multithreading )

Процессор переключается между потоками программы при каждом такте. Тонкозернистая многопоточность гарантирует исполнение всех потоков, приписанных к процессору. Выполнение каждого конкретного потока замедляется, но общая пропускная способность процессора — увеличивается. Многопоточные процессоры, реализующие тонко-зернистую многопоточность, хорошо справляются с программами, где присутствует множество потоков, например сервера баз данных, веб-сервера, сервера приложений, обрабатывающие множество одинаковых запросов от множества клиентов. Такие процессоры ещё называются barrel processors (исполнение потоков в процессоре чередуется каждый цикл как клёпки бочки по кругу).
Тонкозернистая многопоточность, каждый поток исполняется один такт и, если возможно, на нескольких конвейерах
Тонкозернистая многопоточность, каждый поток исполняется один такт и, если возможно, на нескольких конвейерах

Реализации

Процессоры с крупно-зернистой многопоточностью: в 1998 году компания IBM выпустила RS64-II (Northstar) — первый микропроцессор на рынке, в котором аппаратно поддерживалась многопоточность. Процессор поддерживал попеременное выполнение 2 потоков. Из недавних: двух-ядерный процессор Montecito (2006 г.) компании Intel с ядрами на основе Itanium 2, где каждое ядро исполняет два потока крупно-зернисто; Fujitsu SPARC64 VI (2007 г.).

Примерами процессоров, в которых была реализована тонкозернистая многопоточность, могут быть процессор Denelcor HEP (1982 г.) — 8 потоков. В процессоре Cray/Tera MTA (1988 г.) могло выполняться поочередно 128 потоков. Из недавних: Sun UltraSPARC T1 (2005 г., 4 потока на ядро) и T2 (2008 г.), Oracle SPARC T3 (2010 г., 8 потоков), SPARC M7 (2015 г., 8 потоков).

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

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

На скалярном процессоре тонкозернистая многопоточность неотличима от одновременной. Для реализации одновременной многопоточности процессору требуется суперскалярный конвейер, и чем больше потоков одновременно планируется исполнять, тем выше должна быть суперскалярность конвейера, что повышает сложность процессорной логики.

Примечания

Литература

  • (1999) Processor Architecture - From Dataflow to Superscalar and Beyond (ISBN 3540647988(англ.) - Глава 5: Future Processors to use Fine-Grain Parallelism и Глава 6: Future Processors to use Coarse-Grain Parallelism
  • Kunle Olukotun. Chip Multiprocessor Architecture - Techniques to Improve Throughput and Latency. — Morgan and Claypool Publishers, 2007. — 154 p. — ISBN 159829122X. (англ.)
  • Mario Nemirovsky, Dean M. Tullsen. Multithreading Architecture. — Morgan and Claypool Publishers, 2013. — 1608458555 p. — ISBN 1608458555. (англ.)

Ссылки

Эта страница в последний раз была отредактирована 7 октября 2019 в 17:58.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).