Направления развития суперскалярной архитектуры

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

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

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

 
  Направления развития суперскалярной архитектуры - student2.ru

Структура суперскалярного микропроцессора

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

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

Альтернатива суперскалярной обработке - длинное командное слово (VLIW). Использование этого метода предполагает задание в командном слове совокупности параллельно выполняемых команд. Подготовкой та­ких программ занимается компилятор.

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

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

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

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

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

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

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

Наши рекомендации