VLIW (англ. very long instruction word — «очень длинная машинная команда») — архитектура процессоров с несколькими вычислительными устройствами.
Характеризуется тем, что одна инструкция процессора содержит несколько операций, которые должны выполняться параллельно. Фактически это «видимое программисту» микропрограммное управление, когда машинный код представляет собой лишь немного свёрнутый микрокод для непосредственного управления аппаратурой.
В суперскалярных процессорах также есть несколько вычислительных модулей, но задача распределения работы между ними решается аппаратно. Это сильно усложняет устройство процессора, и может быть чревато ошибками. В процессорах VLIW задача распределения решается во время компиляции и в инструкциях явно указано, какое вычислительное устройство какую команду должно выполнять.
VLIW можно считать логическим продолжением идеологии RISC, расширяющей её на архитектуры с несколькими вычислительными модулями.[источник не указан 812 дней] Так же, как в 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), Culler.
В чистом виде архитектуру VLIW имеют процессоры TriMedia фирмы Philips и семейство DSP C6000 фирмы Texas Instruments.
Микропроцессор Transmeta Crusoe содержит слой двоичной совместимости с архитектурой x86, который компилирует инструкции во внутренний формат процессора (code morphing). Ядро Crusoe является VLIW-процессором.
Микропроцессор Intel Itanium имеет 64-битную систему команд EPIC-процессора с явным параллелизмом, которая является одним из вариантов VLIW.
Многопроцессорный вычислительный комплекс «Эльбрус-3» и микропроцессоры серии «Эльбрус» («Эльбрус 2000», «Эльбрус S») являются VLIW-процессорами.
Nvidia реализовала архитектуру ARMv8-A в собственном ядре с микроархитектурой Denver. В нём используется комбинация простого аппаратного декодера ARM-кода и технологии «Dynamic Code Optimization» программной рекомпиляции ARM-кода во внутреннюю систему команд. Denver представляет собой суперскалярную архитектуру с широким командным словом VLIW без возможностей по внеочередному исполнению команд (in-order).
Процессоры, выпускаемые фирмой Tilera, также имеют VLIW-архитектуру.
VLIW также получила хорошее распространение на рынке GPU, так, видеопроцессоры AMD/ATI Radeon начиная с R600 и до Northern Islands включительно имеют VLIW-архитектуру. Начиная с Southern Islands (первый квартал 2012) компания AMD/ATI отошла от подхода VLIW
Современные системы на кристалле Qualcomm Snapdragon фирмы Qualcomm, предназначенные для использования в качестве центрального процессора телефонов и планшетов, содержат сопроцессоры с VLIW-архитектурой Hexagon (QDSP6). На нём могут выполняться алгоритмы обработки звука и мультимедиа, а также часть цифровой обработки беспроводных сигналов. Ежетактно могут запускаться на исполнение наборы из 4 инструкций; поддерживается аппаратная многопоточность (временное мультиплексирование, в частности, в некоторых версиях архитектуры — револьверного типа).
Эльбрус 2000 и его последующие развития — российские микропроцессоры с архитектурой VLIW, разработанный компанией МЦСТ.
This article uses material from the Wikipedia Русский article VLIW, which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0"); additional terms may apply (view authors). Если не указано иное, содержание доступно по лицензии CC BY-SA 4.0. Images, videos and audio are available under their respective licenses.
®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki Русский (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.