VLIW (anglicky very long instruction word) je procesorová architektura, která umožňuje instrukční paralelismus (vykonávání několik nezávislých instrukcí souběžně) aniž by CPU musela vyhodnocovat časovou návaznost jednotlivých operací a možné kolize. Paralelismu je dosaženo sloučením vzájemně nezávislých operací v jeden celek (instrukční paket). Mezi zástupce této architektury patří například procesory řady TMS320C6, SHARC, Elbrus, Itanium a některé grafické procesory (GPU).

Typické rysy architektury VLIW editovat

  • Jednotlivé operace (instrukce) jsou seskupeny do instrukčního paketu o stejné délce (až stovky bitů).
  • Jednotlivé operace v paketu se vykonávají souběžně a jsou vzájemně nezávislé.
  • Procesor nevyhodnocuje vzájemnou závislost operací v instrukčním paketu.
  • Seskupování operací určuje překladač.
  • Není zaručena zpětná kompatibilita.
  • Větší množství registrů.
  • Větší množství pipeline.
  • Architektura load/store.

Architektury a instrukční paralelismus editovat

Snaha o zvýšení výpočetního výkonu procesorů postupně vedla k paralelnímu zpracování instrukcí, tedy k superskalárním mikroprocesorům i architektuře VLIW. Na rozdíl od procesorů architektury VLIW mají procesory s architekturou CISC instrukce s různou délkou instrukčního slova (různý počet bitů). To při paralelním zpracování instrukcí klade velké nároky na dekódování instrukčního toku. Mnohem jednodušší je dekódování instrukcí s pevnou délkou instrukčního slova. Tuto vlastnost mají například procesory s architekturou RISC. Ovšem samotná fixní délka instrukcí ještě neřeší rozdělování instrukcí do výpočetních jednotek a vzájemnou návaznost instrukcí, kdy libovolná instrukce potřebuje pro své řádné vykonání výsledek jiné paralelně zpracovávané instrukce. V takovém případě musí procesor vykonávání dané instrukce pozdržet až do doby, kdy jsou pro ni připravená data. Moderní procesory architektury CISC a RISC mohou toto řešit pomocí provádění instrukcí mimo pořadí (out of order) a pomocí přejmenovávání registrů (register renaming). To ovšem vyžaduje speciální a často i složité obvody v procesoru, což má vliv i na spotřebu energie. Vhodné uspořádání instrukcí může ovlivnit už překladač, ale i tak musí tyto procesory hlídat vzájemnou návaznost instrukcí.

Problém párování instrukcí při paralelním zpracování řeší procesory architektury VLIW. Každá paralelně vykonávaná operace má přidělené své bitové pole v instrukčním paketu, který má stejnou délku. Struktura instrukčního paketu zároveň přiřazuje k dané operaci konkrétní výpočetní jednotku. Celý paket tak může sdružovat zároveň operace pro aritmeticko-logickou jednotku (ALU), operace pro matematický koprocesor (FPU), operace s pamětí a operaci skoku. Tato vlastnost umožňuje zjednodušit instrukční dekodér a tedy uspořit místo na čipu i snížit energetické nároky.

Některé procesory mohou mít každé bitové pole pro operaci doplněné o bit, který určuje zda následující operace bude vykonána až v dalším hodinovém taktu. Tuto vlastnost mají například procesory rodiny TMS320C6.[1]

Procesory architektury VLIW se často uplatňují v úlohách zpracování signálů (digitální signálové procesory, DSP) nebo jako grafické procesory (GPU).

Kompilace programového kódu editovat

Výpočetní výkon procesorů architektury VLIW je velmi závislý na optimalizaci programového kódu. Velmi záleží na tom, jak dobře dokáže překladač poskládat jednotlivé operace do instrukčního paketu. Překladač (kompilátor) sice může některá pole obsadit prázdnou instrukcí (NOP), což se ale projeví ve sníženém využití plného výpočetního potenciálu. Překladač dále musí zaručit posloupnost instrukcí, dodržet počet taktů pro vykonání jednotlivých operací, přiřadit správnou výpočetní jednotku a zamezit kolizím mezi operacemi. Samotný proces překladu programu může tedy ovlivnit i komerční úspěšnost daného procesoru.

Zpětná kompatibilita editovat

Neustálý vývoj výrobních technologií a vnitřních struktur procesorů způsobuje změny v časování některých instrukcí, změny ve výpočetních jednotkách i v počtu univerzálních registrů. U architektury VLIW pak v takovém případě program zkompilovaný pro předchozí typ procesoru není možné ve většině případů spustit na novějším typu procesoru.[zdroj?] Příkladem mohou být grafické akcelerátory firmy AMD s architekturou VLIW5 a jejich novější čipy s architekturou VLIW4. Softwarová kompatibilita je zde řešena příslušným ovladačem pro daný typ grafické karty. Tento problém se ale nemusí příliš týkat vestavěných systémů (embedded system), které mají většinou stejný program po celou dobu své životnosti.

Reference editovat

Související články editovat

Externí odkazy editovat