logo search
Методичка

6.9 Направления развития архитектуры процессоров с параллелизмом уровня команд

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

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

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

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

Вероятнее всего, что пределом распараллеливания при суперскалярной обработке является запуск одновременно на исполнение в каждом такте 7- 8 команд.

Альтернатива суперскалярной обработке – длинное командное слово (VLIW). Достоинства VLIW заключаются в следующем. Во-первых, компилятор может более эффективно исследовать зависимости между командами и выбирать параллельно исполняемые команды, чем это делает аппаратура суперскалярного процессора, ограниченная размером окна исполнения.

Во-вторых, VLIW-процессор имеет более простое устройство управления и потенциально может иметь более высокую тактовую частоту.

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

Суперскалярные микропроцессоры и процессоры с длинным командным словом являются современными продуктами микроэлектроники, и их производительность постоянно растет, но при использовании этих процессоров необходимо тщательно исследовать архитектурные приемы получения высокой производительности и проверять адекватность этих приемов проблемной области, для решения задач которой создается вычислительная система.

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

В настоящее время работы в данном направлении находятся на стадии теоретического исследования и имитационного моделирования. Однако уже появился первый мультитредовый микропроцессор фирмы Intel. Процессоры, в полной мере использующие все преимущества, предоставляемые мультитредовой архитектурой, разрабатываются фирмами IBM и SUN.

Другим возможным подходом служит переход к мультипроцессорному исполнению на однокристальных вычислительных системах. В этом случае речь идет о распараллеливающих компиляторах с языков высокого уровня.

Вопросы для самопроверки

  1. Какова структура VLIW-команды?

  2. Перечислите зависимости по данным между командами?

  3. Каковы достоинства и недостатки VLIW-команды?

  4. На каких принципах основано предсказание условных переходов?

  5. Какие существуют способы переименования регистров?