Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
007.docx
Скачиваний:
105
Добавлен:
13.03.2016
Размер:
7.55 Mб
Скачать

10.5. Відмінності командної чарунки в vliw-процесорі від командної чарунки процесора з послідовною обробкою даних.

VLIW (англ. very long instruction word — «очень длинная машинная команда») — архитектура процессоров с несколькими вычислительными устройствами. Характеризуется тем, что одна инструкция процессора содержит несколько операций, которые должны выполняться параллельно. Фактически это «видимое программисту» микропрограммное управление, когда машинный код представляет собой лишь немного свёрнутый микрокод для непосредственного управления аппаратурой.

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

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

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

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

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

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

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

ПРИМЕРЫ VLIW- ПРОЦЕССОРОВ

  • компьютер АР-120В фирмы Floating Point Systems;

  • компьютеры семейств Multiflow и Cydra (Hewlett-Packard& Intel).

В процессоре АР-120В с помощью 64-разрядной команды одновременно управляются три операционных блока: умножитель с плавающей точкой, сумматор с плавающей точкой и универсальное АЛУ, а в машинах QA-1 и QA-2 посредством полей 160- и 256- разрядной команды соответственно управляются четыре универсальных операционных блока с одинаковой структурой. Машина с увеличенной до 512 бит длиной слова команды (машина ELI-512) обеспечивает одновременное выполнение до 20…30 операций.