Слайд 2. VLIW расшифровывается как Very Long Instruction World – очень длинное командное слово. Суть такого подхода в том, что одна инструкция является длинной командой, состоящей из нескольких простых команд, которые могут исполнятся параллельно. VLIW является одной из разновидностью ILP – процессоров с параллелизмом на уровне команд. К этой же категории принадлежат и суперскалярные процессоры, которые тоже могут исполнять несколько команд за такт. Слайд 3. Разница между суперскалярами и VLIW процессорами состоит в способе распределения исполнительных устройств. Суперскалярные процессоры, по сути, исполняют последовательную программу, в которой ничего не сказано о параллелизме: какие инструкции можно выполнять параллельно, а какие – нет. Вся работа по загрузке исполнительных устройств ложится на ядро процессора. Программа для VLIW-процессоров, напротив, содержит в себе явные указания, какие блоки команд нужно исполнять одновременно, на каких исполнительных устройствах. В этой архитектуре всю работу за процессор делает компилятор – он выделяет блоки независимых инструкций, которые можно исполнять параллельно, и выдает их в виде одного длинного командного слова. За счет сложности компилятора можно значительно упростить сам процессор, поскольку больше не нужно реализовывать функции по распределению ресурсов непосредственно на кристалле. Слайд 4. У VLIW архитектуры у нее есть следующие преимущества перед суперскалярами: Во первых, за счет выноса работы по распределению ресурсов в компилятор можно сделать саму аппаратную часть процессора проще, больше места на кристалле останется на собственно исполнительные блоки, регистры, кэшпамять. Во-вторых, компилятор может провести более тщательный анализ программы, и лучше распределить ресурсы, чем сам процессор во время исполнения, ха счет этого можно загрузить одновременно больше исполнительных устройств, чем на суперскалярах. Но поскольку компилятор работает до исполнения кода, то ему доступна только статическая информация и программе, т.е. он не знает, как реально будет работать программа, какие переходы будут срабатывать чаще других. Это является довольно сильным недостатком VLIW-архитектуры. Слайд 5. На слайде показаны основные различия между суперскалярными и VLIW – процессорами. В суперскалярных процессорах не нужен сложный компилятор, потому что работу по планированию потока команд реализована аппаратно на процессоре. Поскольку работа по распределению ресурсов является достаточно сложной, то суперскалярные процессоры не могут планировать одновременно много команд в одно время, загрузка исполнительных устройств низкая. У VLIW наоборот – одновременно загружено много исполнительных устройств. Суперскалярам нужен длинный и сложный конвейер и планировщик, за счет этого места на кристалле под исполнительные устройства остается меньше, чем у VLIW. Слайд 6 Конвейер у VLIW процессоров проще, чем у суперскаляров. В нем нет таких этапов, как переименование регистров, переупорядочивание и распараллеливание. Все это выполняется компилятором. Слайд 7. VLIW – довольно старая архитектура, так первые процессоры появились еще в 70-х. В настоящее время самым распространенным VLIW – процессором является intel itanium, который впервые появился в 2001 году, последняя версия вышла в 2010 году, и продолжает поддерживаться. Среди интересных вариантов можно отметить процессоры фирмы transmeta, в которых было реализована динамическая трансляция x86 кода в длинные слова. Были и советско-российские разработки, например, Эльбрус начиная с 3-й версии. Слайд 8. Далее немного подробнее о двух примерах VLIW – архитектуры – intel itanium и transmeta. Разработка итаниумов началась в 2001 году, тогда это был одноядерный 800 mg процессор. Последняя версия, вышедшая в 2010 году, обладает характеристиками, представленными на слайде. Слайд 9. Структура команд выглядит следующим образом: Одиночная команда имеет фиксированный формат – код операции, регистры, с которыми производится операция. Такие одиночные команды объединяются в связки по 3 команды + шаблон исполнения команд. Такая связка по сути является сверхдлинным командным словом. В шаблоне исполнения команд явным образом отмечается какие типы команд используются в связке, чтобы процессор мог эффективно распределить команды на исполнительные устройства. Несколько связок также могут исполняться параллельно, для этого в шаблоне есть бит, показывающий, может ли данная связка исполнятся одновременно со следующей. В задачу компилятора входит составить связки так, чтобы загрузить как можно больше исполнительных устройств. При этом компилятор должен хорошо знать архитектуру конкретного процессора, для которого он генерирует код, потому что в разных процессорах разное число исполнительных устройств и разное число связок, выполняемых за такт. Слайд 10. Много софта, в том числе, коммерческого, написано под x86 и распространяется в бинарном виде, т.е. желательно, чтобы процессоры умели исполнять x86 код. Itanium имел режим совместимости с x86, но производительность его при этом была весьма низкой. Transmeta попыталась решить этот вопрос при помощи технологии Code Morphing, когда x86 инструкции преобразовываются в VLIW – код. Этот принцип чем-то похож на современные cisc – процессоры, только там сложные cisc – инструкции транслируются в набор простых rics, а здесь x86 транслируется во VLIW-представление. Code morphing действует по принципу hot spot компиляции в java – сначала x86 код исполняется последовательно команда за командой, затем если ядро процессора замечает, что какой-то блок исполняется чаще других, то он транслирует его в VLIW-представление, оптимизирует и помещает в специальный кэш. С помощью этой технологии производительность x86 кода на transmete сравнимо с исполнением на ч86 процессоре аналогичной частоты. Недостаток transmet-ы, который, по видимому, привел к его коммерческому провалу, состоит в том, что при динамической компиляции нагрузка на оперативную память сильно возрастает, и для невычислительых приложений, которые интенсивно образаютсф к оперативной памяти, производительность сильно падает. Возможно, что если трансмета будет использовать новые технологии памяти, то их процессоры ждет коммерческие признание.