Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 6.doc
Скачиваний:
93
Добавлен:
25.03.2015
Размер:
1 Мб
Скачать
☆

2.1. Технологии многопоточности

Основныенаправления развитияархитектурысовременныхмикропроцессоров определяются стремлением к увеличению их производительности. Последнюю можноповышать,например,наращивая тактовуючастоту и (или)увеличиваячислокоманд, выполняемых за один такт.

Одно из решений данной проблемы связано с реализациейконцепции "параллелизма на уровне тредов (потоков)" - TLP (Thread Level Parallelism). Если программные коды не в состоянии загрузить работой все или даже большинствофункциональныхустройств, томожно разрешитьпроцессору выполнять болеечем однузадачу (тред,илипоток),чтобы дополнительныепотокизагрузилипростаивающие устройства. Здесьнетрудно усмотретьаналогию смногозадачной операционнойсистемой:чтобыпроцессорнепростаивал,когдазадача оказывается всостоянии ожидания(например, завершения ввода-вывода), операционная системапереключает процессор на выполнение другой задачи. Более того, некоторыемеханизмы диспетчеризации в операционной системе (например, квантование) имеютаналоги в многопотоковой архитектуре (MTA - MultiThreading Architecture). Очевидно,архитектура,поддерживающаяпараллелизмнауровнепотоков (TLP), должна гарантировать, что треды не будут использовать одновременно одни и те же ресурсы, длячего требуютсядополнительныеаппаратныесредства (например,дублирование регистровых файлов). Однако оказалось, что можно реализовать МТА на базесовременныхсуперскалярныхпроцессоров, иэто требует лишь относительнонебольшихаппаратных доработок,что резкоповышаетпривлекательность МТА в глазах проектировщиков.

При использовании базового типапараллелизманауровнепотоков (TLP) вмикропроцессоре необходимо иметь не менее двух аппаратных расширений для потоков. Это регистры общегоназначения,счетчик команд,словосостоянияпроцесса и т. п.

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

Архитектура содновременным выполнением тредов-SMT(Simultaneous Multi- Threading) допускаетодновременное выполнение нескольких потоков. В этом случае накаждомновом тактена выполнение вкакое-либоисполнительноеустройствоможетнаправлятьсякоманда любогопотока. Посравнению с суперскалярными процессорами,поддерживающими внеочередноеспекулятивное выполнениекоманд ииспользующими механизм переименования регистров, для SMT необходимы, вчастности,следующие аппаратные средства:

 несколькосчетчиковкоманд (по одномунапоток) с возможностью выбора любогоиз нихна каждом такте;

 средства,ассоциирующиекоманды спотоком,которому онипринадлежат (необходимы, вчастности, для работымеханизмовпредсказанияпереходов ипереименования регистров);

 несколькостековадресов возврата (по одномунапоток) дляпредсказанияадресоввозврата из подпрограмм;

 специальная дополнительная память в процессоре (в расчете на каждыйпоток) дляпроцедурыудаленияизбуфера выполненных вне очередикоманд.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]