VLIW
![](http://webcf.waybackmachine.org/web/20220609160241im_/https://upload.wikimedia.org/wikipedia/commons/thumb/f/f9/KL_Intel_Itanium2.jpg/200px-KL_Intel_Itanium2.jpg)
![](http://webcf.waybackmachine.org/web/20220609160241im_/https://upload.wikimedia.org/wikipedia/commons/thumb/5/55/Processor_Elbrus-4S.svg/200px-Processor_Elbrus-4S.svg.png)
VLIW (англ. very long instruction word — «очень длинная машинная команда») — архитектура процессоров с несколькими вычислительными устройствами. Характеризуется тем, что одна инструкция процессора содержит несколько операций, которые должны выполняться параллельно[1][2]. Фактически это «видимое программисту» микропрограммное управление, когда машинный код представляет собой лишь немного свёрнутый микрокод для непосредственного управления аппаратурой.
В суперскалярных процессорах также есть несколько вычислительных модулей, но задача распределения работы между ними решается аппаратно. Это сильно усложняет устройство процессора, и может быть чревато ошибками. В процессорах VLIW задача распределения решается во время компиляции и в инструкциях явно указано, какое вычислительное устройство какую команду должно выполнять.
VLIW можно считать логическим продолжением идеологии RISC, расширяющей её на архитектуры с несколькими вычислительными модулями.[источник не указан 103 дня] Так же, как в 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)[3], Culler.[4]
В чистом виде архитектуру VLIW имеют процессоры TriMedia фирмы Philips и семейство DSP C6000 фирмы Texas Instruments.
Микропроцессор Transmeta Crusoe содержит слой двоичной совместимости с архитектурой x86, который компилирует инструкции во внутренний формат процессора (code morphing). Ядро Crusoe является VLIW-процессором.[5]
Микропроцессор Intel Itanium имеет 64-битную систему команд EPIC-процессора с явным параллелизмом, которая является одним из вариантов VLIW.
Многопроцессорный вычислительный комплекс «Эльбрус-3» и микропроцессоры серии «Эльбрус» («Эльбрус 2000», «Эльбрус S») являются VLIW-процессорами.[6]
Nvidia реализовала архитектуру ARMv8-A в собственном ядре с микроархитектурой Denver. В нём используется комбинация простого аппаратного декодера ARM-кода и технологии «Dynamic Code Optimization» программной рекомпиляции ARM-кода во внутреннюю систему команд. Denver представляет собой суперскалярную архитектуру с широким командным словом VLIW без возможностей по внеочередному исполнению команд (in-order).
Процессоры, выпускаемые фирмой Tilera, также имеют VLIW-архитектуру.[7]
VLIW также получила хорошее распространение на рынке GPU, так, видеопроцессоры AMD/ATI Radeon начиная с R600 и до Northern Islands включительно имеют VLIW-архитектуру.[8][9] Начиная с Southern Islands (первый квартал 2012) компания AMD/ATI отошла от подхода VLIW[10]
Современные системы на кристалле Qualcomm Snapdragon фирмы Qualcomm, предназначенные для использования в качестве центрального процессора телефонов и планшетов, содержат сопроцессоры с VLIW-архитектурой Hexagon (QDSP6). На нём могут выполняться алгоритмы обработки звука и мультимедиа, а также часть цифровой обработки беспроводных сигналов. Ежетактно могут запускаться на исполнение наборы из 4 инструкций; поддерживается аппаратная многопоточность (временное мультиплексирование, в частности, в некоторых версиях архитектуры — револьверного типа).
См. также[править | править код]
Примечания[править | править код]
- ↑ Современные высокопроизводительные компьютеры Архивная копия от 29 ноября 2014 на Wayback Machine В. Шнитман, информационно-аналитические материалы Центра Информационных Технологий, 1996 год. Глава 7, раздел «Архитектура машин с длинным командным словом»
- ↑ An Introduction To Very-Long Instruction Word (VLIW) Computer Architecture Архивировано 29 ноября 2014 года. // Philips Semiconductor
- ↑ AMiner — Open Science Platform>
- ↑ VLIW: старая архитектура нового поколения Архивная копия от 30 декабря 2009 на Wayback Machine // IXBT
- ↑ Transmeta Crusoe. Первый взгляд . Дата обращения: 23 марта 2012. Архивировано 22 марта 2012 года.
- ↑ http://ixbtlabs.com/articles2/vliw/ Архивная копия от 26 апреля 2011 на Wayback Machine «Elbrus-3, … it was a decent stage in the development of the VLIW.»
- ↑ http://arstechnica.com/business/news/2010/06/tilera-launches-512-core-server-for-the-cloud.ars Архивная копия от 10 июля 2011 на Wayback Machine «Tilera’s cores implement a very simple VLIW design»
- ↑ Лев Дымченко. Вычисления на GPU. Особенности архитектуры AMD/ATI Radeon . ixbt.com. Дата обращения: 12 февраля 2011. Архивировано 16 марта 2012 года.
- ↑ Дмитрий Владимирович. Обзор видеокарты AMD Radeon HD 6870 . overclockers.ru. Дата обращения: 12 февраля 2011. Архивировано 29 января 2012 года.
- ↑ AMD раскрыла подробности архитектуры Next Generation Core – основы видеокарт Radeon HD 7900 (недоступная ссылка). http://www.ixbt.com/.+Дата обращения: 13 сентября 2017. Архивировано 5 февраля 2012 года.