Skrevs ursprungligen av Jont Olof
Egentligen har jag rätt bra koll på PPC970 och ingen koll alls på Itanium. Så frågan kanske mer skulle vara "Beskriv Itanium". Men det känns ändå intressant att jämföra de båda.
Om jag förstått saken rätt så är Itanium Intels försök att ge sig på en 64-bitarsprocessor. Alla här på forumet spyr så mycket galla över Itanium att jag undrar varför? Någonstans har jag hört att projektet varit rätt så misslyckat, men samtidigt nämns i en del trådar att Itanium skulle vara snabbare än PPC970.
Itanium är en rätt intressant processor. Lite bisarr, men intressant är nog det ord jag tycker passar in bäst. Dels är Itanium hittills datorhistoriens näst dyraste projekt någonsin, endast överträffad av IBM:s System/360 från tidigt 60-tal. Skillnaden är bara att System/360 var en jättesuccé medan Itanium hittills inte riktigt kunnat beskrivas i samma ordalag (och jag tvivlar starkt på att det nånsin kommer att hända). Dels skiljer sig tekniken i Itanium tillräckligt mycket från andra processorer för att SPECmarks som de Martin visar i stort sett saknar relevans.
I stället för att förlita sig på en BPU (Branch Prediction Unit) som dagens processorer gör, förlitar sig Itanium helt och hållet på kompilatorer. Det betyder alltså att maskinkoden som skapas vid kompilering ska innehålla all info om vad som ska stoppas in i pipelinen och när, samt vad som kan köras samtidigt och inte. Det gör att man för varje applikation egentligen kommer att behöva skräddarsy en egen kompilator, eftersom prestanda annars kan bli väldigt låga. SPECmarks blir mer en siffra på hur mycket processorn teoretiskt sett kan prestera, givet den hypotetiska situationen att man skapat den hundraprocentigt perfekta kompilatorn för sina algoritmer.
Ytterligare ett problem med Itanium-arkitekturen är att kompatibiliteten mellan olika processorgenerationer blir lidande. Som det är nu är det ju nästan självklart att man ska kunna köra ett program som kompilerats för en PIII på en P4 och få riktigt bra prestanda, eftersom det ändå är processorn själv som analyserar instruktionerna som ramlar in och avgör hur den ska ta hand om det hela. Skillnaderna i arkitektur blir därför inte något man normalt sett märker av. På Itanium-plattformen är det iofs möjligt att köra kod som kompilerats för en Itanium på en Itanium 2, men prestandaförlusten är väldigt stor. Man kommer alltså i princip att behöva byta (eller kompilera om) all programvara så fort man byter processorgeneration om man inte samtidigt vill ta ett prestandamässigt kliv modell större nedåt.
Sedan tillkommer ju, som Martin säger, priset. Själva Itanium-chippet är gigantiskt, vilket innebär mycket högre tillverkningskostnader. Om jag minns rätt så utgörs ungefär halva chippet av en stor cache, vilket tydligen var nödvändigt för att inte få alltför pinsamma prestanda. En liten sidoeffekt av det är dessutom att en Itanium 2 har en effektutveckling på 130 W, så den lär ju knappast dyka upp i nätta små notebooks om vi säger så.
Men: Trots att Itanium är rätt körd för "normala" arbetsstationer och servrar, och absolut inget att tänka på för persondatorer, har den ändå sina kvaliteter. För mer applikationsspecifika syften kan den ge riktigt bra prestanda faktiskt, iaf om man har en hel armada av duktiga datavetare och gott om tid och pengar att lägga på sin applikation. Bl.a. har Intel stolt visat upp en itaniumbaserad Nec-burk som sades vara världens snabbaste icke-klustrade databashanterare. Inte för att jag törs tänka på hur många klusternoder man får får samma pris som den datorn, och exakt hur mycket högre prestanda det skulle kunna ge, men som sagt - den var snabbast i världen utan klustring...