VLIW

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Процессор Itanium 2 в корпусе PAC — один из представителей VLIW-архитектур
Процессор «Эльбрус-4С»

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

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

VLIW можно считать логическим продолжением идеологии RISC, расширяющей её на архитектуры с несколькими вычислительными модулями.[источник не указан 1440 дней] Так же как в 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 инструкций; поддерживается аппаратная многопоточность (временное мультиплексирование, в частности, в некоторых версиях архитектуры — револьверного типа).

Примечания

[править | править код]
  1. Современные высокопроизводительные компьютеры Архивная копия от 29 ноября 2014 на Wayback Machine В. Шнитман, информационно-аналитические материалы Центра Информационных Технологий, 1996 год. Глава 7, раздел «Архитектура машин с длинным командным словом»
  2. An Introduction To Very-Long Instruction Word (VLIW) Computer Architecture Архивировано 29 ноября 2014 года. // Philips Semiconductor
  3. AMiner — Open Science Platform>
  4. VLIW: старая архитектура нового поколения Архивная копия от 30 декабря 2009 на Wayback Machine // IXBT
  5. Transmeta Crusoe. Первый взгляд. Дата обращения: 23 марта 2012. Архивировано 22 марта 2012 года.
  6. http://ixbtlabs.com/articles2/vliw/ Архивная копия от 26 апреля 2011 на Wayback Machine «Elbrus-3, … it was a decent stage in the development of the VLIW.»
  7. 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»
  8. Лев Дымченко. Вычисления на GPU. Особенности архитектуры AMD/ATI Radeon. ixbt.com. Дата обращения: 12 февраля 2011. Архивировано 16 марта 2012 года.
  9. Дмитрий Владимирович. Обзор видеокарты AMD Radeon HD 6870. overclockers.ru. Дата обращения: 12 февраля 2011. Архивировано 29 января 2012 года.
  10. AMD раскрыла подробности архитектуры Next Generation Core – основы видеокарт Radeon HD 7900. http://www.ixbt.com/.+Дата обращения: 13 сентября 2017. Архивировано из оригинала 5 февраля 2012 года.