Här kommer en snabb, liten och förenklad förklaring av hur Itanium-arkitekturen blev till och fungerar för de som är intresserade. Jag är på inget vis speciellt väl insatt i Itanium-världen men så här tror iaf jag att det ligger till i stora drag.
Nån gång kring tidigt 90-tal började HP och Intel klura på en ny processor att ersätta PA-RISC med och samtidigt konkurera med Alpha, en av de främsta (den bästa?) RISC-processorn som användes vid den tiden för servrar/arbetsstationer och vetenskapliga beräkningsmonster.
Redan vid den tiden fanns det vissa tydliga trender i processor-utvecklingen. Man noterade framförallt att den hårdvara som faktiskt användes för att utföra beräkningar, tex multiplikatorer, adderar, register och liknande tog allt mindre del av transistorbudgeten och kontroll och flödeslogik tog allt mer och blev dessutom mer komplex och svårare att designa och debugga för varje generation.
Detta beror på att dessa procesorer var av typen Superskalära med Out of Order-exekvering (vilket även dagens Intel och AMD x86 processorer är). Superskalär innebär att processorn kan exekvera mer än en instruktion per cykel om de inte är beroende av varandra och Out of Order innebär att processorn analyserar instruktioner och kan ordna om dem för att utnytja sin hårdvara maximalt i alla cykler. Tex om vi låtsas att en processor kan göra en multiplikation och en addition per cykel och ett program ser ut som följer:
1) A = B+C
2) D = E/F
3) G = H*I
Då kan en OoO maskin ordna om och exekvera instruktion 1 och 3 parallellt och därefter instruktion 2 eftersom instruktion 3 inte beror av instruktion 2 eller 1. Att luska ut vilka instruktioner som kan flyttas och vilka som inte kan det kan bli ganska snårigt coh komplicerat om man börjar ta hänsyn till hoppvilkor och liknande. När man sen lägger till exekveringsenheter, tex en extra adderare, så måste man bygga ännu mer avancerad logik för att se till att man kan ordna om kod för att utnyttja den extra adderaren maximalt, annars har man ju bara slösat bort en massa transistorer på en adderare som bara används då det kommer ett gäng additioner direkt efter varandra. Inte bra.
Intels ingengörer ville i så mycket som möjligt slippa den komplexa kontroll och flödeslogiken så man bestämde sig därför att satsa på en lite annorlunda typ av arkitektur kallad VLIW (Very Long Instruction Word, tror det är 128-bitar hos Itanium) vilket innebär att varje programminstruktion är ett paket innehållande fler än en operation som alla kan beräknas parallellt (i Itaniums fall tror jag det är tre "operationer" per instruktion). Detta flyttar problemet med att hitta parallella operationer från hårdvaran in i mjukvara och det blir kompilatorns (eller programmerarens) jobba att försöka hitta så många parallella instruktioner som möjligt.
Man kallade den nya arkitekturen för IA-64 och bestämde sig också för att man i hårdvara skulle stödja x86-instruktionsuppsättningen, ett beslut som av många anses som lite dumt då IA-64 pga sin inriktning har väldigt lite med det instruktionsformatet att göra och att kundkretsen inte var särskillt intreserad av att köra gamla x86 program. Har för mig att de funderar på att ta bort stora delar av hårdvarustödet för x86 och istället förlita sig på mjukvaruemulering istället. Det kanske de redan gjort.
Den första Itanium processorn som tillverkades innehöll dock en hel mängd brister och var dessutom försenad vilket gjorde att den fick ett minst sagt svalt mottagande. Ett annat problem var att utvecklingen av kompilatorer som skulle ta tillvara prestandan hos IA-64 inte hade kommit så långt vilket gjorde att mycket av prestandan gick förlorad där.
När Itanium2 introducerades hade mycket av problemen i hårdvaran rättats till och kompilator-tekniken var mer mogen vilket gjorde att prestandan ökade avsevärt och processorn visade sig vara väldigt kompetent inom många områden och SGI och HP byggde några riktigt fina system.
Nu har altså nästa uppdatring av Itanium kommit i form av Montecito (om än rätt försenad och minus en del skojiga features som den var tänkt att ha) och den kommer ge betydande prestanda ökningar och den verkar vara ganska efterlängtad i sin målmarknad (altså inte dina lokala Quake-kidz).
Så himla mycket svammel... jaja... jordgubbar är också gott...