[Web pekare och referenser till krönikan] --- [Läsarnas åsikter] --- [Tillbaks till krönikor]

Peter S. Magnusson

VLIW är Intels vapen mot Risc-utmaningen

Datateknik, 25 Augusti 1994

För exakt ett år sedan skrev jag en krönika som till stor del handlade om ordkriget mellan PowerPC och Intels x86 processorer. När nu Intel har avtäckt nästa generations processor - allmänt kallad P6 - så kan det vara dags att åter besöka detta ständigt aktuella slagfält.

I samma krönika sammanställde jag prestandasiffror för Intels x86 processorer (286, 386, 486, Pentium) för perioden 1988-94, och kom fram till en genomsnittlig prestandaförbättring på 60 procent per år.

I januari i år publicerade MicroDesign Resources (MDR) en betydligt mer omfattande studie. För Intels x86-processorer förbättrades prestanda med cirka 40 procent per år under perioden 1979-89. Och därefter med 50 procent per år, allt räknat i prestandamåttet SPECint92. MDR har till viss del rensat för kompilatorförbättringar, som bidrar med ytterligare cirka 5-10 procent.

De processorer som konkurrerar med Intel är alla byggda med Risc-teknik. Sedan Riscprocessorerna introducerades 1986, har den bästa Risc-processorn hela tiden varit ungefär dubbelt så snabb som Intels bästa x86-processor (Numera Digitals Alpha, dessförinnan Hewlett-Packards bästa processor). Man kan beskriva det som att Risc-processorerna har legat cirka två år före Intel och att de utökar försprånget med cirka två veckor varje år. Notera att såväl PowerPC som Mips och Sparc ligger ungefär lika med x86.

Med Pentium-processorn i 100 MHz-version leder Intel prestandaligan bland x86-kompatibla. Närmast kommer NexGens Nx586, men den tillverkas hittills i liten skala, 4 000 stycken förra året. De mycket omtalade Intel-knäckar processorerna, som AMDs K5 och Cyrix M1, kommer att finnas ungefär samtidigt som nya P6 och ligger därmed en generation efter.

Med P6 kommer Intel att hänga med i prestandajakten i ytterligare två á tre år. Man kan undra hur Intel, trots många tvivlare, lyckats skruva upp den gamla x86-arkitekturen i över 200 SPECint92. För att förstå detta måste vi titta lite närmare på P6:ans arkitektur. Intel har i princip haft två problem med att öka prestanda för sina x86-processorer.

För det första är det svårt att få upp klockfrekvensen då x86-instruktioner är komplicerade. Lösningen heter pipelining (varje instruktion delas upp i flera delar). Men den begränsas av att processorn vid varje hoppinstruktion måste gissa var nästa instruktion ligger. En felgissning och pipeliningen blir en belastning. De komplexa intruktionerna ställer till problem en gång till genom att pipeliningen blir svårare med komplexa instruktioner, som exempelvis vid adressberäkningar med fyra indata.

För det andra är det svårt att parallellisera själva exekvering. Att göra det kallas superskaläritet, och innebär att processorn kan påbörja mer än en instruktion per cykel. x86-arkitekturen orsakar två problem här: dels gör dess variabla instruktionslängd det svårt att se var den "andra" instruktionen börjar, dels innebär komplexa instruktioner att det är svårt att urskilja konflikter.

I P6-processorn används därför en relativt ny konstruktionsprincip som kallas frikopplad superskalär, decoupled superscalar design. Den innebär i princip att avkodning, exekvering, och avslutning av instruktioner är frikopplade från varandra.

Tänk er ett överbelastat postkontor. Kunder kommer in, fyller i blanketter, och bestämmer sig vilken kö de skall stå i. Det är avkodning. När de sedan kommit längst fram i sin kö, får de hjälp av kassörskan. Detta är exekvering. Sedan går kunden sakta mot utgången, samtidigt som han/hon fyller i sin anteckningsbok om vad som betalats och så vidare. Detta är avslutning. Ungefär så går det till i P6-processorn. Med frikopplad superskaläritet får P6 cirka fyrtio procent mer gjort per klockcykel jämfört med Pentium.

Litet mer i detalj går det till så här: Först översätts x86-instruktioner till mikro-instruktioner - "uops". Upp till tre instruktioner per cykel kan översättas. Dessa fördelas sedan till sex (nästan) oberoende enheter, var och en med sin specialitet. Varje instruktion exekveras så fort dess indata och en lämplig exekveringsenhet är tillgängliga. Upp till 64 instruktioner kan vara igång samtidigt.

För att dessutom höja klockfrekvensen har P6 en djup pipeline (tolv steg) och en tätt kopplad andranivå-cache på 256 kbyte. Den djupa pipelinen innebär att ett felaktigt gissat hopp kan kosta 15 cykler eller mer. För att förbättra gissningarna har P6 därför en stor tabell som samlar statistik om upp till 512 tidigare hopp.

Trots sin avancerade konstruktion är nyheterna få i P6:an: idéerna har funnits i exempelvis PowerPC, eller beskrivits av konkurrenter som AMD och Cyrix. Det intressanta är att frikopplad superskaläritet jämnar spelfältet mellan Risc och x86 - komplicerade instruktioner blir ett mindre handikapp.

Nästa generation Intel-processorer, kallade P7, utvecklas sannolikt ihop med Hewlett-Packard. Enligt rykten satsar man på VLIW-teknik (very long instruction word). Varje instruktion består då av flera mindre instruktioner avsedda för olika funktionsenheter på processorn. Skillnaden mellan VLIW- och superskalär teknik är att det i VLIW är kompilatorn i stället för processorn som schemalägger i vilken ordning instruktionerna ska utföras (sk statiskt schemaläggning). VLIW kräver därmed mindre logik för att undvika konflikter och kan därför eventuellt klockas snabbare. Statisk schemaläggning begränsas dock av att inte kunna urskilja all instruktionsparallellism, så P7 lär nog bli en hybrid.

Ett klassiskt problem med VLIW är kompatibilitet. En superskalär processor kan uppgraderas genom att öka antalet funktionsenheter. En VLIW-processor begränsas av att antalet enheter är fixerat i instruktionsformatet. En lösning på detta är att arbeta med ett portabelt format som översätts vid exekvering (av programvara eller maskinvara). Här skulle man kunna använda x86 instruktioner som det portabla formatet. Några funktionsenheter kan dessutom specialiseras för Intel-aktiga saker.

Anledningen till att Intel väljer att samarbeta med HP är att vinna tid. HP har sedan länge haft ambitioner inom området, och två av guruerna inom VLIW, Josh Fisher och Bob Rau, jobbar nu för HP. Dessutom är HP framgångsrikt inom servrar och arbetsstationer som hittills varit svaga Intel-marknader.

P6 understryker tudelningen av databranschen: I ena lägret finns IBM, Motorola, och Apple, i andra lägret HP och Intel (och IBM). Ingetdera av lägren har någon signifikant prestandafördel. Intel/HP sidan har dock en tydlig fördel i pris/prestanda för den färdiga datorn. Denna situation gällde för ett år sedan, och som det ser ut idag kommer den att gälla ett antal år till.

Peter S. Magnusson

Tillbaka...


[Web pekare och referenser till krönikan] --- [Läsarnas åsikter] --- [Tillbaks till krönikor]