VLIW ( anglické slovo velmi dlouhé instrukce - „velmi dlouhá strojová instrukce“) je architektura procesoru s několika výpočetními zařízeními . Vyznačuje se tím, že jedna instrukce procesoru obsahuje několik operací, které je nutné provádět paralelně [1] [2] . Ve skutečnosti se jedná o mikroprogramové řízení „viditelné pro programátora“, kdy strojový kód je pouze mírně složený mikrokód pro přímé ovládání zařízení.
Superskalární procesory mají také několik výpočetních modulů, ale úloha distribuce práce mezi nimi je řešena hardwarově. To značně komplikuje konstrukci procesoru a může být plné chyb. V procesorech VLIW je problém distribuce vyřešen v době kompilace a instrukce explicitně specifikují, které výpočetní zařízení má provést kterou instrukci.
VLIW lze považovat za logické pokračování ideologie RISC , která ji rozšiřuje na architektury s více výpočetními moduly. Stejně jako u RISC instrukce výslovně uvádějí, co by měl každý modul procesoru dělat. Z tohoto důvodu může být délka instrukce až 128 nebo dokonce 256 bitů.
Zvažte provoz modelového procesoru VLIW se dvěma aritmetickými logickými jednotkami (ALU) . Předpokládejme, že potřebujeme sečíst čtyři čísla v registrech R1, R2, R3 a R4. Potom může pseudokód vypadat takto:
R5=R1+R2, R6=R3+R4; každá ALU přidá svůj vlastní pár čísel R°=R5+R6, NOP; první ALU najde součet, druhé je nečinnéTeoreticky se předpokládá, že přístup VLIW by měl výrazně zjednodušit mikroarchitekturu procesoru a přesunout úlohu distribuce výpočetních zařízení na kompilátor . Protože neexistují žádné velké a složité uzly, očekává se, že to sníží složitost mikroarchitektury a zlepší energetickou účinnost. V praxi toho však není vždy dosaženo. Důsledkem dlouhých instrukcí je potřeba mít mnoho architektonických registrů. je nutné ukládat velké množství mezivýsledků výpočtů a v důsledku toho se jádra ukazují jako složitá, přestože se od toho chtěla dostat.
Zároveň má kód pro VLIW nízkou hustotu. Vzhledem k velkému počtu prázdných instrukcí pro nečinná zařízení mohou být programy pro procesory VLIW mnohem delší než podobné programy pro tradiční architektury.
Architektura VLIW vypadá poněkud exoticky a pro programátora nezvykle. Kvůli složitým vnitřním závislostem na kódu je ruční programování na úrovni strojového kódu pro architektury VLIW poměrně obtížné. Musíte se spolehnout na optimalizace kompilátoru.
První procesory VLIW vyvinuli koncem 80. let Cydrome ( 1984-1988), MultiFlow (1984-1990) [3] , Culler . [čtyři]
Ve své čisté podobě má architektura VLIW procesory TriMedia od společnosti Philips a rodinu DSP C6000 od společnosti Texas Instruments .
Mikroprocesor Transmeta Crusoe obsahuje vrstvu binární kompatibility architektury x86 , která kompiluje instrukce do vnitřního formátu procesoru ( morphing kódu ). Jádrem Crusoe je procesor VLIW. [5]
Mikroprocesor Intel Itanium má 64bitovou explicitně paralelní instrukční sadu procesoru EPIC , což je varianta VLIW.
Víceprocesorový počítačový komplex Elbrus-3 a mikroprocesory řady Elbrus ( Elbrus 2000 , Elbrus S ) jsou procesory VLIW. [6]
Nvidia implementovala architekturu ARMv8-A do vlastního jádra s mikroarchitekturou Denver. Využívá kombinaci jednoduchého hardwarového dekodéru kódu ARM a technologie „Dynamic Code Optimization“ k softwarové rekompilaci kódu ARM do interní instrukční sady. Denver je superskalární architektura se širokým instrukčním slovem VLIW a bez možnosti uspořádání.
Procesory vyráběné Tilerou mají také architekturu VLIW. [7]
VLIW se také dobře prosadil na trhu GPU , protože grafické procesory AMD / ATI Radeon od R600 až po Severní ostrovy včetně mají architekturu VLIW. [8] [9] Počínaje Jižními ostrovy (Q1 2012) AMD / ATI ustoupily od přístupu VLIW [10]
Současné SoC Qualcomm Snapdragon společnosti Qualcomm navržené pro použití jako CPU telefonů a tabletů obsahují koprocesory architektury Hexagon VLIW (QDSP6). Může spouštět algoritmy zpracování zvuku a multimédií, stejně jako část digitálního zpracování bezdrátových signálů. Každý cyklus lze spustit k provedení sady 4 instrukcí; je podporováno hardwarové multithreading (zejména časové multiplexování u některých verzí architektury - revolvingový typ ).
Elbrus 2000 a jeho další vývoj jsou ruské mikroprocesory s architekturou VLIW, vyvinuté společností MCST .
procesorů | Technologie digitálních|||||||||
---|---|---|---|---|---|---|---|---|---|
Architektura | |||||||||
Architektura instrukční sady | |||||||||
strojové slovo | |||||||||
Rovnoběžnost |
| ||||||||
Implementace | |||||||||
Komponenty | |||||||||
Řízení spotřeby |