VLIW ( engelsk meget lang instruktionsord - "very long machine instruction") er en processorarkitektur med flere computerenheder . Karakteriseret ved, at én processorinstruktion indeholder flere operationer, der skal udføres parallelt [1] [2] . Faktisk er dette mikroprogramstyring "synlig for programmøren", når maskinkoden kun er en let foldet mikrokode til direkte styring af udstyret.
Superscalar - processorer har også flere computermoduler, men opgaven med at fordele arbejde mellem dem løses i hardware. Dette komplicerer designet af processoren i høj grad og kan være fyldt med fejl. I VLIW-processorer løses distributionsproblemet på kompileringstidspunktet , og instruktionerne angiver eksplicit, hvilken computerenhed der skal udføre hvilken instruktion.
VLIW kan betragtes som en logisk fortsættelse af RISC -ideologien , der udvider den til arkitekturer med flere computermoduler. Ligesom RISC angiver instruktionerne eksplicit, hvad hvert processormodul skal gøre. På grund af dette kan længden af en instruktion være op til 128 eller endda 256 bit.
Overvej driften af en model VLIW-processor med to aritmetiske logiske enheder (ALU'er) . Antag, at vi skal tilføje fire tal i registrene R1, R2, R3 og R4. Så kan pseudokoden se sådan ud:
R5=R1+R2, R6=R3+R4; hver ALU tilføjer sit eget talpar R0=R5+R6, NOP; den første ALU finder summen, den anden er inaktivI teorien antages det, at VLIW-tilgangen i høj grad skal forenkle processorens mikroarkitektur og flytte opgaven med at distribuere computerenheder til compileren . Da der ikke er store og komplekse noder, forventes det, at dette vil reducere kompleksiteten af mikroarkitekturen og forbedre energieffektiviteten. Men i praksis opnås dette ikke altid. En konsekvens af lange instruktioner er behovet for at have mange arkitektoniske registre. det er påkrævet at gemme et stort antal mellemresultater af beregninger, og som et resultat viser kernerne sig at være komplekse, på trods af at de ønskede at komme væk fra dette.
Samtidig har koden for VLIW en lav tæthed. På grund af det store antal tomme instruktioner til inaktive enheder, kan programmer til VLIW-processorer være meget længere end tilsvarende programmer til traditionelle arkitekturer.
VLIW-arkitekturen ser ret eksotisk og usædvanlig ud for en programmør. På grund af komplekse interne kodeafhængigheder er det ret vanskeligt at programmere manuelt på maskinkodeniveauet for VLIW-arkitekturer. Du er nødt til at stole på compiler-optimeringer.
De første VLIW-processorer blev udviklet i slutningen af 1980'erne af Cydrome (1984-1988), MultiFlow (1984-1990) [3] , Culler . [fire]
I sin rene form har VLIW-arkitekturen TriMedia- processorer fra Philips og DSP C6000 -familien fra Texas Instruments .
Transmeta Crusoe - mikroprocessoren indeholder et binært kompatibilitetslag med x86 -arkitektur, der kompilerer instruktioner til processorens interne format ( code morphing ). Crusoe -kernen er en VLIW-processor. [5]
Intel Itanium - mikroprocessoren har et 64-bit eksplicit parallelt EPIC-processorinstruktionssæt , som er en variant af VLIW.
Elbrus-3 multiprocessor-computerkomplekset og Elbrus -seriens mikroprocessorer ( Elbrus 2000 , Elbrus S ) er VLIW-processorer. [6]
Nvidia har implementeret ARMv8-A-arkitekturen i sin egen kerne med Denver-mikroarkitekturen. Den bruger en kombination af en simpel hardware-ARM-kodedekoder og "Dynamic Code Optimization"-teknologi til at software-rekompilere ARM-kode til et internt instruktionssæt. Denver er en superskalær arkitektur med et bredt VLIW-instruktionsord og ingen in-order-kapacitet.
Processorer fremstillet af Tilera har også en VLIW-arkitektur. [7]
VLIW har også fået godt fodfæste på GPU -markedet , da AMD / ATI Radeon -videoprocessorer fra R600 til og med Nordøerne har en VLIW-arkitektur. [8] [9] Fra og med de sydlige øer (Q1 2012), bevægede AMD / ATI sig væk fra VLIW-tilgangen [10]
Qualcomms nuværende Qualcomm Snapdragon SoC'er designet til brug som CPU'er på telefoner og tablets indeholder Hexagon VLIW-arkitektur (QDSP6) co-processorer. Det kan køre lyd- og multimediebehandlingsalgoritmer såvel som en del af den digitale behandling af trådløse signaler. Hver cyklus kan sæt med 4 instruktioner startes til udførelse; hardware multithreading er understøttet (tidsmultipleksing, især i nogle versioner af arkitektur- revolverende typen ).
Elbrus 2000 og dens efterfølgende udviklinger er russiske mikroprocessorer med VLIW-arkitekturen, udviklet af MCST .
processorteknologier | Digitale|||||||||
---|---|---|---|---|---|---|---|---|---|
Arkitektur | |||||||||
Instruktionssæt arkitektur | |||||||||
maskinord | |||||||||
Parallelisme |
| ||||||||
Implementeringer | |||||||||
Komponenter | |||||||||
Strømstyring |