JavaScript is currently disabled.Please enable it for a better experience of Jumi. Med VLIW- teknik kan flera operationer utföras parallellt
Glöm begreppen cisc och risc. Tekniken för nästa generations processorer stavas VLIW, Very Long Instruction Word. Genom att finna parallellismen i programkoden redan vid kompileringen kan processorn låta olika beräkningsenheter utföra olika operationer samtidigt.

VLIW utläses Very Large Instruction Word, vilket kan tolkas som att instruktionerna är väldigt långa. Varje instruktion innehåller flera olika operationer som utförs samtidigt under en klockcykel på flera olika beräkningsenheter.

Dagens cisc- och risc-processorer arbetar ju i grunden seriellt - en instruktion i taget - även om rörledningar (pipelines) har medfört en viss grad av parallellism i och med att en instruktion kan påbörjas innan den förra är avslutad.

Dataflödesanalys stjäl kisel



Problemet med rörledningar, dynamisk exekvering och den tillhörande dataflödesanalysen som krävs är att detta stjäl kiselyta i processorn. I stället för att utföra operationerna måste processorn ägna sig åt att ta reda på hur och i vilken ordning den ska utföra operationerna.

Enligt Gösta Meiton, marknadsansvarig för Unix på Hewlett-Packard, är det idag inte helt ovanligt att två tredjedelar av kiselytan går åt till fördelningslogiken.

Med VLIW slänger man i princip ut all fördelningslogik. I stället får kompilatorn i uppgift att luska ut vilka operationer som går att utföra parallellt och därefter kompilera koden efter det. Man kan säga att mycket av komplexiteten flyttas från hårdvara till programvara.

- Kompilatorn hänger ihop med processorn mera intimt än tidigare, berättar Gösta Meiton.

VLIW är i sig inget nytt - tankarna har funnits i universitetsvärlden i ett tiotal år. Men det är först nu som företagen börjar ta fram processorer som bygger på VLIW.

Multimediaprocessor



Bland de företag som kommit längst med VLIW-baserade processorer finns Philips, som redan förra året bildade sin Trimedia-division för att utveckla tekniken (se Elektroniktidningen 2/95, sid 16). Philips vill kombinera beräkningskapaciteten från den digitala signalprocessorn (DSP) med programmerbarheten hos en vanlig processor.

Tanken vid utvecklingen av Trimediaprocessorn har varit att konstruera en multimediaprocessor. Och istället för att ha flera olika processorer för hantering av grafik, ljud, video och kommunikation, ska Trimedia klara av allt detta samtidigt. Först då blir multimediautrustning enkel och billig att konstruera, resonerar Philips.

Inbyggda multimediaoperationer



I oktober publicerades ett datablad på den första processorn i serien, kallad Trimedia 1, TM-1. En instruktion i TM-1 består av fem operationer, som utförs parallellt på fem av de 27 olika beräkningsenheter som finns i processorn.

Den stora vinsten med Trimedia är dock att det finns speciella operationer för många vanliga multimediaalgoritmer. Detta gör att processorn, vid klockfrekvensen 100 MHz, kan komma upp i toppvärden på 4 miljarder beräkningar per sekund.

Provexemplar av processorn ska finnas färdiga under andra kvartalet, och volymproduktion dras igång i slutet av 1996. Ett utvecklingspaket för programmering i C finns redan för ett begränsat antal kunder.

Kompatibelt hos intel och HP



Även Hewlett-Packard och Intel hoppas kunna eliminera behovet av extra processorer för mediatilllämpningar i ett gemensamt projekt kallat Tahoe. Tillsammans ska man bygga en processor som är kompatibel med både x86- arkitekturen och HPs PA-RISC-arkitektur. Till skillnad från Trimedia ska man alltså inte behöva kompilera om befintliga program för att få de att fungera.

Den nya processorn, som ibland går under beteckningen P7, är baserad på en modifierad VLIW-teknik för att klara bakåtkompatibiliteten.

Slipper kompilera om koden



Bland annat har man utvecklat en kompilator och en laddare som tar hänsyn till olika bussbredder hos processorn. När programkoden laddas ned i processorn kan laddaren ta hänsyn till vilken bussbredd som processorn använder, och vilka typer av funktioner som finns i den.

På så vis slipper man kompilera om koden för varje ny generation processorer och får också ett flexibelt, skalbart system. Skalbarheten gör tekniken lämplig för processorer i små, vardagliga utrustningar.

När man kör befintlig kod som inte är VLIW-kompilerad, till exempel ett 32- bitars Windowsprogram, kan resten av bussbredden utnyttjas för att göra annat. Därmed slipper man extra processorer för bildskärmshantering, kommunikation, video och så vidare.

Mikael Zackrisson

Processor med 27 beräkningsenheter



I Trimediaprocessorn TM-1 består varje instruktion av fem operationer som var och en motsvarar en 32-bitars risc-operation.

En 32-bitars processorkärna delar upp instruktionen och skickar ut operationerna till fem lämpliga beräkningsenheter, som utför operationerna parallellt. Vilken beräkningsenhet som ska utföra vilken operation är bestämt redan vid kompileringen.

TM-1 innehåller 27 olika beräkningsenheter, såsom aritmetiska enheter för heltal och flyttal och DSP-liknande enheter för parallella data. Som jämförelse kan nämnas att Suns senaste vidunder, Ultrasparcen, har sex beräkningsenheter.

I TM-1 finns också stödprocessorer för MPEG-kodning och bildbehandling samt ett PCI-gränssnitt. Det tillhörande utvecklingspaketet innehåller speciella algoritmer för bland annat MPEG 1 och 2, ljudsyntes, telefonkonferenser och modellering av två- och tredimensionella objekt.

Kompilatorn fördelar instruktionerna



I cisc- och risc-processorer undersöker instruktionsfördelaren ett fönster med instruktioner i en buffert. Fördelaren avgör vid varje tillfälle vilka instruktioner som ska skickas till beräkningsenheterna. Helst ska så många som möjligt skickas iväg samtidigt. Instruktionsfördelaren letar alltså efter parallellism i programkoden.

När det förekommer villkorliga hopp, grenar, i programflödet gissar instruktionsfördelaren på en gren, och börjar leta efter instruktioner längs den grenen som kan utföras i förväg av lediga beräkningsenheter. Svaren sparas i en sorteringsbuffert.

Om det sedan visar sig att man gissat fel så ignorerar processorn bara resultaten i sorteringsbufferten. Det är detta som kallas spekulativ exekvering.

I en VLIW-processor har kompilatorn redan letat reda på parallellismen i programkoden. Därmed slipper man instruktionsbufferten och kan förenkla instruktionsfördelaren avsevärt.

Detta har två fördelar. Dels kan kompilatorn undersöka ett större fönster av instruktioner än en instruktionsfördelare som arbetar i realtid.

Dels läser kompilatorn programmets källkod, där det ofta finns mycket inbyggd parallellism som direkt kan föras över till instruktionsnivån.

Kompilering av VLIW-kod kan göras i två steg. Först en vanlig kompilering för att kunna köra programmet och se vilka grenar som programmet väljer. Informationen om vägvalen utnyttjas sedan vid en omkompilering. Då optimeras programmet för den aktuella tillämpningen.

En stor uppsättning generella register kan användas för att efterlikna funktionen hos sorteringsbufferten. I registren sparas resultaten från de spekulativt utförda instruktionerna.
MER LÄSNING:
 
KOMMENTARER
Kommentarer via Disqus

Anne-Charlotte Lantz

Anne-Charlotte
Lantz

+46(0)734-171099 ac@etn.se
(sälj och marknads­föring)
Per Henricsson

Per
Henricsson
+46(0)734-171303 per@etn.se
(redaktion)

Jan Tångring

Jan
Tångring
+46(0)734-171309 jan@etn.se
(redaktion)