VLIW
Ця стаття не містить посилань на джерела. (грудень 2019) |
VLIW (англ. very long instruction word — «Дуже довга машинна команда») — архітектура процесорів з декількома обчислювальними пристроями. Характеризується тим, що одна інструкція процесора містить кілька операцій, які повинні виконуватися паралельно. Фактично це «видиме програмісту» мікропрограмне управління, коли машинний код являє собою лише трохи згорнутий мікрокод для безпосереднього управління апаратурою.
У суперскалярних процесорах також є кілька обчислювальних модулів, але завдання розподілу між ними роботи вирішується апаратно. Це сильно ускладнює пристрій процесора, і може спричиняти помилки. У процесорах VLIW задача розподілу вирішується під час компіляції і в інструкціях явно вказано, який обчислювальний пристрій має виконувати яку команду.
VLIW можна вважати логічним продовженням ідеології RISC, що розширює її на архітектури з декількома обчислювальними модулями. Так само, як у RISC, в інструкції явно вказується, що саме повинен робити кожен модуль процесора. Через це довжина інструкції може досягати 128 або навіть 256 біт.
Переваги та недоліки
Підхід VLIW сильно спрощує архітектуру процесора, перекладаючи завдання розподілу обчислювальних пристроїв на компілятор. Оскільки відсутні великі і складні вузли, сильно знижується енергоспоживання.
У той же час, код для VLIW має невисоку щільність. Через велику кількість порожніх інструкцій для незадіяних пристроїв програми для VLIW-процесорів можуть бути набагато довші, ніж аналогічні програми для традиційних архітектур.
Архітектура VLIW виглядає досить екзотичною і незвичною для програміста. Через складні внутрішні залежності коду, програмування на рівні машинних кодів для VLIW-архітектури людиною вручну є досить складним. Доводиться покладатися на оптимізацію компілятора.
Реалізації
Одні з перших VLIW-процесори з'явилися наприкінці 1980-х і були розроблені компанією Cydrome (до цього часу такі технології широко використовуваались на рівні мікрокоманд процесора).
У чистому вигляді архітектуру VLIW мають процесори TriMedia фірми Philips і сімейство DSP C6000 фірми Texas Instruments.
Мікропроцесор Transmeta Crusoe містить шар двійкової сумісності з архітектурою x86, який компілює інструкції у внутрішній формат процесора (code morphing). Ядро Crusoe є VLIW-процесором.
Мікропроцесор Intel Itanium має 64-бітну систему команд EPIC-процесора з явним паралелізмом, яка є одним з варіантів VLIW.
Багатопроцесорний обчислювальний комплекс «Ельбрус-3» і мікропроцесори серії «Ельбрус» («Ельбрус 2000», «Ельбрус S») є VLIW-процесорами.
Процесори, що випускаються фірмою Tilera, також мають VLIW-архітектуру.
VLIW також отримала гарне поширення на ринку GPU, так, відеопроцесори AMD / ATI Radeon починаючи з R600 і до сучасних мають VLIW архітектуру. В останньому поколінні (Southern Islands) компанія AMD / ATI відійшла від підходу VLIW.
VLIW-архітектура також використовується для обробки зображень в системі Expeed цифрових дзеркальних камер компанії Nikon.
Див. також