VLIW


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

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

VLIW можно считать логическим продолжением идеологии RISC, расширяющей её на архитектуры с несколькими вычислительными модулями.[источник не указан 781 день] Так же, как в RISC, в инструкции явно указывается, что именно должен делать каждый модуль процессора. Из-за этого длина инструкции может достигать 128 или даже 256 бит.

Рассмотрим работу модельного VLIW-процессора с двумя арифметическо-логическими устройствами (АЛУ). Пусть нам надо сложить четыре числа, находящиеся в регистрах R1, R2, R3 и R4. Тогда псевдокод может выглядеть так:

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

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