Многопоточность для VLIW-процессоров

На 8-й ежегодной международной конференции по высокоскоростным вычислениям (Eighth International Conference on High Performance Computing), состявшейся в Гидербаде, Индия была предложена аппаратно-программная реализация многопоточности на существующих процессорах, сделанных по архитектуре VLIW (very long instruction word). Причем используются при этом стандартные VLIW-архитектуры, компиляторы и аппаратное обеспечение.

Исследователи из университета Северной Каролины представили свой метод организации многопоточных вычислений, который был назван ими Weld (дословно "сварка"). Вкратце, идея состоит в следующем: Weld позволяет вставлять специальные инструкции ветвления (branch) и "схождения" (fork) в одну и ту же программу. При этом, компилятор создает несколько потоков, как нециклические области в контрольной карте. Во время выполнения программы, потоки как бы "склеиваются" для того, чтобы заполнить специально созданные пробелы в программе. Это осуществляется специальным аппаратным модулем, который назвали welder, или "сварщик". Соответственно, для каждого потока создается свой регистр - счетчик команд и модуль выборки команд из памяти.

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

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

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

Разработчики Weld заявили, что их подход позволяет достигнуть 27% ускорения по сравнению с обычной однопоточной VLIW архитектурой. Источник: EE Times

28 января 2002 в 00:47

Автор:

Все новости за сегодня

Календарь

январь
Пн
Вт
Ср
Чт
Пт
Сб
Вс