Телематика'2004

XI Всероссийская
научно-методическая
конференция


 

 

МОДЕЛЬ ВЫЧИСЛЕНИЙ STILP

И.В.Кульков, О.С.Кулькова, В.С.Князьков

Пензенский государственный университет, Пенза

Тел.: (8412) 40-64-42, e-mail: kiv_guard@sura.ru

Долгое время рост производительности микропроцессоров достигался исключительно экстенсивным способом: за счет увеличения тактовой частоты процессора и количества транзисторов на кристалле. Однако по оценкам ведущих мировых производителей, в скором времени будет достигнут максимум возможной производительности микропроцессоров при использовании современного технологического процесса [6], что определяет задачу радикального изменения технологического процесса производства микропроцессоров, и разработки новых, более эффективных архитектур [2].
Современные микропроцессорные архитектуры далеки от совершенства и оставляют широкие возможности для улучшения за счет новых моделей вычислений. Основной парадигмой развития микропроцессорных архитектур является параллелизм. В последнее время особо широкое распространение приобрели архитектуры процессоров, обеспечивающие параллелизм на уровне инструкций (ILP – Instruction Level Parallelism) или параллелизм на уровне потоков исполнения (TLP – Thread Level Parallelism).
Модель вычислений ILP основана на параллельном исполнении отдельных процессорных операций. Эта модель позволяет существенно увеличить производительность вычислений при исполнении программ, насыщенных большим количеством разнообразных операций, равномерно распределенных по коду программы. Типичными представителями этой модели являются архитектуры микропроцессоров со сверхдлинным командным словом (VLIW – Very Long Instruction Word), процессоров с архитектурой явного параллелизма команд и суперскалярная архитектура, постепенно сдающая свои позиции под натиском VLIW [4].
Модель TLP предполагает, что для каждого из исполняемых потоков организуется отдельный контекст исполнения на уровне микропроцессора. Таким образом, задержки в исполнении одного из потоков сглаживаются за счет переключения микропроцессора на исполнение другого потока. Разновидностью данного подхода является архитектура одновременной многопоточности (SMT – Simultaneous MultiThreading). В соответствии с этой архитектурой один физический процессор представляется как несколько функционально законченных логических процессоров [5].
Однако, несмотря на стройность каждой из упомянутых моделей, соответствующие им архитектуры отличаются «непредсказуемостью поведения». Например, в зависимости от вида рабочей нагрузки наблюдается значительное падение производительности микропроцессоров, реализованных на основе архитектур VLIW и SMT. Так как архитектура VLIW нацелена на увеличение производительности одной задачи и основывается на явном программировании параллелизма, показатель числа команд, исполняемых за такт (IPC – Instructions Per Cycle), всецело зависит от возможности эффективного распараллеливания задачи. Таким образом, задача, состоящая в выполнении операций одного типа, сводит прирост эффективности VLIW-процессора к нулю [3].
При использовании архитектуры SMT можно наблюдать вырождение многопоточного исполнения к исполнению одного потока, захватившего все ресурсы процессора. С этого момента производительность процессора полностью зависит от полезности нагрузки потока. Для преодоления подобных трудностей в реализации процессоров архитектуры SMT (например, процессоры фирмы Intel, поддерживающие HyperThreading) вводятся специальные команды. Из-за этого данный подход теряет изначально присущую ему гибкость [1].
В данной работе предлагается модель вычислений, позволяющая в большинстве случаев преодолеть основные недостатки вышеприведенных архитектур. Предлагаемая модель одновременного параллелизма потоков и параллелизма команд (STILP – Simultaneous Thread and Instruction Level Parallelism) базируется на совместном использовании принципов ILP и TLP. Основная парадигма STILP заключается в инкапсуляции параллелизма потоков внутри параллелизма команд. Как и в ILP, в каждый момент времени одновременно исполняется несколько процессорных инструкций, но при этом эти инструкции могут принадлежать различным потокам. Таким образом, модель STILP позволяет избежать провалов производительности при исполнении плохо параллелизируемых задач и сводит вероятность захвата ресурсов процессора одним потоком к минимуму.
Архитектуры, реализующие модель вычислений STILP, должны характеризоваться следующими особенностями:
– Исполняемый код формируется специальным распараллеливающим компилятором и представляет собой, в простейшем случае, последовательность блоков независимых, способных к одновременному исполнению, инструкций. В отличие от VLIW не предполагается жесткого формата командного слова, а формируются блоки переменной длины.
– Исполнение потоков происходит поблочно.
– Непосредственно исполняемые внутренние команды имеют ячеистую фиксированную структуру, зависящую от номенклатуры и загрузки исполнительных устройств процессора.
– Формирование исполняемых команд выполняется специальным механизмом – генератором внутреннего кода (ICG – Internal Code Generator).
– ICG формирует исполняемую команду на основе блоков независимых команд исполняемых потоков. ICG стремится максимально эффективно заполнить слоги непосредственно исполняемой команды.
– Исполнительная часть процессора представляется набором функциональных блоков, каждому из которых в непосредственно исполняемой внутренней команде соответствует специальный слог операции.
В зависимости от целей возможна разработка соответствующих данной модели архитектур, предполагающих как полностью аппаратную, так и программно-аппаратную реализации. Предполагается, что подобные реализации будут обладать следующими основными преимуществами модели STILP:
– одновременная параллельность исполнения потоков и параллельность исполнения команд;
– минимальность простоя исполнительных блоков исполнительной части микропроцессора;
– скрытость особенностей конкретной реализации архитектуры от разработчиков программного обеспечения;
– простота масштабируемости исполнительной части (изменение набора функциональных блоков), за счет независимости исполняемого кода от структуры исполнительного механизма;
– простота структуры исполнительного механизма, за счет фиксированного формата внутренней исполняемой команды.
При разработке архитектур, соответствующих модели STILP, необходимо решить вопросы, связанные с построением эффективного распараллеливающего компилятора, механизма выборки блоков независимых инструкций потоков и генератора внутреннего кода.

Литература
1. Баулин А. Как вьются нити. //«Мир ПК», №2, 2002.
2. Кузин А. Технологические планы Intel. http://www.3dnews.ru/cpu/intel-tech2003.
3. Кузьминский М. Многонитевая архитектура микропроцессоров. // «Открытые системы», №1, 2002.
4. Лень М. Вайцман И. VLIW старая архитектура нового поколения. http://www.ixbt.com/cpu/vliw.shtml.
5. Немнюгин С.А., Стесик О.Л. Параллельное программирование. – СПб.: БХВ-Петербург, 2002.
6. Ященко А. Производство CPU. Планы на 2003-2007-й год. http://www.3dnews.ru/cpu/cpu-roadmap/index03.htm.


 



Санкт-Петербург, 7-10 июня 2004 г.
XI Всероссийская научно-методическая конференция "Телематика'2004"