Московский государственный университет путей сообщения
Опубликован: 22.12.2006 | Доступ: свободный | Студентов: 2211 / 463 | Оценка: 4.07 / 4.02 | Длительность: 16:07:00
ISBN: 978-5-9556-0071-0
Специальности: Разработчик аппаратуры
Лекция 3:

Распараллеливание в ВС на уровне исполнительных устройств

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >

Адресный способ распараллеливания

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

Пусть в буфере команд АЛУ, или в "окне просмотра", формируется поток трехадресных команд, как рассматривалось выше:

\{ \theta _{j}A_{j1}A_{j2}A_{j2}\}.

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

Пусть \alpha _{j} — логическая переменная (признак), соответствующая возможности назначения j -й команды для выполнения. Тогда в процессе назначения команд на ИУ j -я команда может быть назначена для выполнения в соответствии со значением истинности следующих предикатов:

\begin{gathered}
\alpha_1=1\\
\alpha_j=(A_{j1}\ne A_{13})\wedge(A_{j2}\ne A_{13})\wedge(A_{j1}\ne
A_{23})\wedge\\
\wedge (A_{j2}\ne A_{23})\wedge\ldots\wedge (A_{j1}\ne A_{j-1,3})
\wedge (A_{j2}\ne A_{j-1,3})\wedge \\
\wedge (A_{j3}\ne A_{11}) \wedge (A_{j3}\ne
A_{12})\wedge \ldots\wedge (A_{j3}\ne A_{j-1,1})\wedge\\
\wedge (A_{j3}\ne A_{j-1,2})
\wedge (A_{j3}\ne A_{j-1,3})\\
j=2,\ldots,m.
\end{gathered}

При наличии незанятых ИУ необходимой специализации или при наличии свободных регистров в буферах этих ИУ, команды с признаком \alpha _{j}=1 назначаются для выполнения. Так, в АЛУ процессора МВК "Эльбрус-2" каждое специализированное конвейерное ИУ имеет небольшой буфер, в которые записываются назначенные команды.

Назначенные команды снабжаются признаком назначения \beta _{j} и не исключаются из "окна просмотра" до сигнала ИУ о завершении выполнения. Это необходимо для исключения преждевременного начала выполнения других команд, использующих результат данной.

Легко видеть, что в каждой из одновременно выполняющихся команд, на разных ИУ, в данном случае используются адреса СОЗУ, которых нет ни в одной из других команд. Т.е. одновременно работающие ИУ используют непересекающиеся множества адресов. Это исключает конфликты обращения к регистрам СОЗУ, ускоряет работу. В таком случае говорят, что ИУ полностью сегментированы. Хотя в общем случае работы на общих вычислительных ресурсах (решающих полях) это необязательно.

Пример. Пусть "окно просмотра" вместило в себя весь фрагмент ранее рассмотренной программы. АЛУ содержит необходимые устройства сложения, умножения и деления, а также два одновременно работающих канала обращения к ОП. Последовательное преобразование содержимого "окна просмотра" показано на рис. 3.9.

Распределение работ между исполнительными устройствами

Рис. 3.9. Распределение работ между исполнительными устройствами

Данный способ распределения команд, потребовавший промежуточного перевода безадресных команд в трехадресные, эффективен в случае многофункционального АЛУ. Универсальные исполнительные устройства, образующие АЛУ, — решающие поля, могут потребовать разработки других способов распределения работ.

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >
Вадим Козлов
Вадим Козлов
Россия, Москва
Тимофей Маханько
Тимофей Маханько
Россия