De Pentium-M zal volgens mij niet zo enorm profiteren van de verhoging van de bandbreedte van het geheugen. Dat komt doordat die, net als de Athlon64, een (relatief) korte pipeline heeft. Deze korte pipeline betekent dat de Pentium-M meer werk per kloktik kan verwerken dan de Pentium4. Hoe komt dat nu?
x86-processoren zijn zgn
CISC-processoren. Deze worden voornamelijk gekenmerkt door de brede waaier aan instructies die ze kunnen uitvoeren. Omdat het veel te duur (en te moeilijk) zou zijn om voor ieder van die instructies aparte circuits te voorzien en dat bovendien veel van die instructies om gelijkaardige circuits vragen, wordt er in CISC-processoren gebruik gemaakt van een generiek geheel van circuits: de pipeline.
Een pipeline is het geheel van circuits die gebruikt worden voor het uitvoeren van instructies op data. In een eenvoudige cpu komt 1 instructie in de pipeline binnen en wordt die binnen 1 kloktik afgewerkt.
Nu komt het probleem van de kloksnelheid. Do goed als alle moderne processoren werken synchroon. Dat betekent dat ze een centrale klok delen en dat ieder component binnen 1 kloktik zijn werk moet kunnen doen. De pipeline van de processor is zeer generiek en complex. De tijd die nodig is om een instructie uit te voeren is afhankelijk van de uit te voeren instructie. Daarom is de maximale kloksnelheid waartegen de processor kan lopen gelijk aan die kloksnelheid waarbij de traagste instructie nog net kan uitgevoerd worden binnen 1 kloktik (vergelijk het met een ketting: ook die is maar zo sterk als de sterkte van de zwakste schakel).
Als het verhaal hierbij zou ophouden dan zou de snelste processor momenteel ongeveer op 220 MHz draaien. Hoe krijgen fabrikanten de kloksnelheid dan hoger?
Eenvoudigweg door het werk van de pipeline in stukjes te delen. Ieder stukje werk (we noemen dit een "pipeline stage") dat dan nog overblijft moet nog steeds binnen 1 kloktik uitgevoerd kunnen worden. De maximale kloksnelheid van je processor is nu afhankelijk van de traagste stage van de pipeline.
Allemaal mooi, maar waarom kan een kortere pipeline meer werk verrichten dan een langere pipeline?
Het antwoord zou vrij duidelijk moeten zijn: de Pentium4 heeft nu 31 stages in de pipeline. Dat betekent dat er 31 kloktikken voorbij gaan vooraleer een instructie volledig afgehandeld wordt door de processor. De Athlon64 heeft "slechts" 12 stages... Om eenzelfde instructie uit te voeren heeft de Athlon64 dus 19 kloktikken minder nodig dan de Pentium4.
Right... Beweer ik nu dat de Pentium4 meer dan dubbel zo hoog geklokt moet worden om dezelfde performance te halen als een Athlon64?
Neen... Want het is zo dat er niet zomaar 1 instructie op ieder moment door de pipeline gejaagd wordt. Wanneer de eerste instructie op de tweede stage is aanbeland, kan de volgende instructie de pipeline reeds binnentreden op stage 1... De uitvoering van instructies binnen een processor is dus een continu proces: op ieder kloktik komt er ook een afgewerkte instructie uit de pipeline; en bij de Pentium4 kunnen er dus veel meer afgewerkte instructies per seconde uit de pipeline komen dan bij de Athlon64.
Nu snap je er allicht niets meer van, want nu lijkt een langere pipeline alleen maar voordelen te hebben?!
Wel neen: de bovenstaande redenering klopt enkel wanneer de processor op iedere kloktik aan een nieuwe instructie kan beginnen. Dat betekent dat je de honger naar data en instructies van de processor moet kunnen stillen: er moeten dus steeds nieuwe instructies en data aangevoerd worden. Dat betekent dat een processor met een langere pipeline meer bandbreedtehongerig is dan een processor met aan kortere pipeline.
En hier zijn we dus aanbeland bij de Dothan. De Dothan kan je in dit verhaal vrij goed vergelijken met de Athlon64; beiden hebben een vergelijkbaar aantal stages (12 bij de Athlon64 en tussen 12 en 14 bij de Dothan). Dit betekent dat het makkelijker is om de honger te stillen van de Dothan dan van de Pentium4. Het betekent ook dat de geheugenbandbreedte van de processor van minder belang is en dat het minder snel een bottleneck zal vormen. Het verdubbelen van de geheugenbandbreedte zal zich, in het geval van de Dothan dus ook niet meteen vertalen in een lineair hogere performance van het geheel.
Eenzelfde verhaal kan je doen voor HyperThreading: hoewel de Pentium4 daar in veel gevallen echt van kan profiteren (omdat het toelaat meer instructies in de processor te proppen), zal de Dothan daar veel minder van profiteren en is de kans zelfs groot dat het (in nog meer gevallen dan bij de P4) zelfs performance-verlies met zich mee zal brengen.
[edit]De Dothan zou tussen de 12 en de 14 stages hebben; niet 8.[/edit]