Архитектура очень длинного командного слова (VLIW)
Ограничения суперскалярного процессора очевидны, поскольку сложность планирования инструкций становится сложной. Внутренний параллелизм в потоке команд, сложность, стоимость и проблема с инструкциями ветвления решаются с помощью более высокой архитектуры набора команд, называемой очень длинным словом команд (VLIW) или VLIW Machines .
VLIW использует параллелизм на уровне инструкций, то есть в нем есть программы для управления параллельным выполнением инструкций. В других архитектурах производительность процессора повышается с помощью любого из следующих методов: конвейерная обработка (разбиение инструкции на части), суперскалярный процессор (независимое выполнение инструкций в разных частях процессора), выполнение вне очереди. (выполняйте заказы иначе, чем программа), но каждый из этих методов значительно усложняет оборудование. Архитектура VLIW решает это в зависимости от компилятора. Программы решают параллельный поток инструкций и разрешают конфликты. Это увеличивает сложность компилятора, но значительно снижает сложность оборудования.
Функции :
- Процессоры в этой архитектуре имеют несколько функциональных блоков, извлекаемых из кэша инструкций, которые имеют очень длинное слово инструкции.
- Несколько независимых операций сгруппированы в одной инструкции VLIW. Они инициализируются в одном такте.
- Каждой операции назначается независимая функциональная единица.
- Все функциональные блоки имеют общий регистровый файл.
- Командные слова обычно имеют длину 64-1024 бита в зависимости от количества исполнительных блоков и длины кода, необходимого для управления каждым блоком.
- Планирование инструкций и параллельная отправка слова выполняется компилятором статически.
- Компилятор проверяет зависимости перед планированием параллельного выполнения инструкций.
Блок-схема архитектуры VLIW
Пространственно-временная диаграмма процессора VLIW, где 4 инструкции выполняются параллельно в одном командном слове
Преимущества :
- Снижает сложность оборудования.
- Снижает энергопотребление за счет уменьшения сложности оборудования.
- Поскольку компилятор заботится о проверке зависимостей данных, декодировании и проблемах с инструкциями, это становится намного проще.
- Увеличивает потенциальную тактовую частоту.
- Функциональные блоки позиционируются компилятором в соответствии с карманом инструкций.
Недостатки:
- Требуются сложные компиляторы, которые сложно спроектировать.
- Увеличен размер программного кода.
- Большая пропускная способность памяти и пропускная способность регистрового файла.
- Незапланированные события, например промах в кеш-памяти, могут привести к остановке работы всего процессора.
- В случае незаполненных кодов операций в VLIW происходит потеря пространства памяти и пропускной способности инструкций.