VLIW ( — «очень длинная машинная команда») — архитектура процессоров с несколькими вычислительными устройствами. Характеризуется тем, что одна инструкция процессора содержит несколько операций, которые должны выполняться параллельноСовременные высокопроизводительные компьютеры В. Шнитман, информационно-аналитические материалы Центра Информационных Технологий, 1996 год. Глава 7, раздел «Архитектура машин с длинным командным словом»An Introduction To Very-Long Instruction Word (VLIW) Computer Architecture // Philips Semiconductor. Фактически это «видимое программисту» микропрограммное управление, когда машинный код представляет собой лишь немного свёрнутый микрокод для непосредственного управления аппаратурой.
В суперскалярных процессорах также есть несколько вычислительных модулей, но задача распределения работы между ними решается аппаратно. Это сильно усложняет устройство процессора, и может быть чревато ошибками. В процессорах VLIW задача распределения решается во время компиляции и в инструкциях явно указано, какое вычислительное устройство какую команду должно выполнять.
VLIW можно считать логическим продолжением идеологии RISC, расширяющей её на архитектуры с несколькими вычислительными модулями. Так же как в RISC, в инструкции явно указывается, что именно должен делать каждый модуль процессора. Из-за этого длина инструкции может достигать 128 или даже 256 бит.
Пример Рассмотрим работу модельного VLIW-процессора с двумя арифметическо-логическими устройствами (АЛУ). Пусть нам надо сложить четыре числа, находящиеся в регистрах R1, R2, R3 и R4. Тогда псевдокод может выглядеть так: R5=R1+R2, R6=R3+R4 ; каждое АЛУ складывает свою пару чисел R0=R5+R6, NOP ; первое АЛУ находит сумму, второе простаивает
Преимущества и недостатки В теории предполагается, что подход VLIW должен сильно упростить микроархитектуру процессора и повысить энергоэффективность, поскольку отсутствуют большие и сложные узлы благодаря перекладыванию задачи планирования исполнения на компилятор. Однако, на практике это достигается не всегда. Следствием длинных инструкций является необходимость иметь много архитектурных регистров, т.к. требуется хранить большое количество промежуточных результатов вычислений и в итоге ядра получаются сложными, при том что от этого хотели уйти.
В то же время код для VLIW обладает невысокой плотностью. Из-за большого количества пустых инструкций для простаивающих устройств программы для VLIW-процессоров могут быть гораздо длиннее, чем аналогичные программы для традиционных архитектур.
Архитектура VLIW выглядит довольно экзотической и непривычной для программиста. Из-за сложных внутренних зависимостей кода программирование вручную, на уровне машинных кодов для VLIW-архитектур, является достаточно сложным. Приходится полагаться на оптимизацию компилятора.
Реализации Первые VLIW-процессоры были разработаны в конце 1980-х компаниями Cydrome (1984−1988), MultiFlow (1984—1990)AMiner — Open Science Platform>, Culler.VLIW: старая архитектура нового поколения // IXBT
В чистом виде архитектуру VLIW имеют процессоры TriMedia фирмы Philips и семейство DSP C6000 фирмы Texas Instruments.
Микропроцессор Transmeta Crusoe содержит слой двоичной совместимости с архитектурой x86, который компилирует инструкции во внутренний формат процессора (code morphing). Ядро Crusoe является VLIW-процессором.
Микропроцессор Intel Itanium имеет 64-битную систему команд EPIC-процессора с явным параллелизмом, которая является одним из вариантов VLIW.
Многопроцессорный вычислительный комплекс «Эльбрус-3» и микропроцессоры серии «Эльбрус» («Эльбрус 2000», «Эльбрус S»), разработанные компанией МЦСТ, являются VLIW-процессорами.http://ixbtlabs.com/articles2/vliw/ «Elbrus-3, … it was a decent stage in the development of the VLIW.»
Nvidia реализовала архитектуру ARMv8-A в собственном ядре с микроархитектурой Denver. В нём используется комбинация простого аппаратного декодера ARM-кода и технологии «Dynamic Code Optimization» программной рекомпиляции ARM-кода во внутреннюю систему команд. Denver представляет собой суперскалярную архитектуру с широким командным словом VLIW без возможностей по внеочередному исполнению команд (in-order).
Процессоры, выпускаемые фирмой Tilera, также имеют VLIW-архитектуру.http://arstechnica.com/business/news/2010/06/tilera-launches-512-core-server-for-the-cloud.ars «Tilera’s cores implement a very simple VLIW design»
VLIW также получила хорошее распространение на рынке GPU, так, видеопроцессоры AMD/ATI Radeon начиная с R600 и до Northern Islands включительно имеют VLIW-архитектуру. Начиная с Southern Islands (первый квартал 2012) компания AMD/ATI отошла от подхода VLIW
Современные системы на кристалле Qualcomm Snapdragon фирмы Qualcomm, предназначенные для использования в качестве центрального процессора телефонов и планшетов, содержат сопроцессоры с VLIW-архитектурой Hexagon (QDSP6). На нём могут выполняться алгоритмы обработки звука и мультимедиа, а также часть цифровой обработки беспроводных сигналов. Ежетактно могут запускаться на исполнение наборы из 4 инструкций; поддерживается аппаратная многопоточность (временное мультиплексирование, в частности, в некоторых версиях архитектуры — револьверного типа).
См. также RISC Transmeta
Примечания
Ссылки iXBT: VLIW: старая архитектура нового поколения Я — русский! Обзор архитектуры отечественного процессора «Эльбрус-4С»
Категория:Технологии процессоров Категория:Обработка команд