Na de introductie van de eerste PDA's met de nieuwe XScale processor van Intel bleek al snel dat de performance van deze apparaten enorm tegenviel. Ondanks de bijna twee maal zo hoge kloksnelheid ten opzichte van de oude getrouwe StrongARM processor, was er nauwelijks voordeel in prestaties te merken. In enkele gevallen wist de StrongARM zelfs betere resultaten dan de XScale neer te zetten. Al snel kwam een geruchtenstroom op gang met allerlei verschillende verklaringen voor het tegenvallen van de prestaties. Het meest gehoorde gerucht was dat Microsoft het PocketPC 2002 platform zou moeten optimaliseren voor de nieuwe processor om volledig gebruik te kunnen maken van de mogelijkheden en de kracht ervan. Andy Sjostrom van PocketPC Thoughts wilde meer weten over de oorzaak en vroeg Sven Myhre, CEO van mobiele-softwareontwikkelaar Amazing Games, om een technische verklaring van dit fenomeen.
Sven Myhre legt uit dat de XScale processor op 400MHz theoretisch een heel stuk sneller is dan de StrongARM op 206MHz, maar ze zijn beiden sterk afhankelijk van de data die ze aangeleverd krijgen. De processoren verwerken de gegevens meestal in blokjes van 32-bits. Omdat de bus slechts 16-bit is, is een bus van twee maal de kloksnelheid van de processor nodig om de processor niet te hoeven laten wachten op data. Wanneer de bus met nog eens 25% verhoogd zou worden, is er genoeg bandbreedte om gegevens snel genoeg tussen de processor en het geheugen te transporteren. Dat betekent dat een XScale processor een bus van 1000MHz nodig zou hebben om de volledige kracht te kunnen benutten. De StrongARM zou met een 515MHz bus kunnen volstaan.
Dit is echter bij lange na niet het geval bij huidige PDA's. De StrongARM PocketPC's hebben een 103MHz bus. De XScale varianten zelfs een bus die op slechts 100MHz draait. Hier zit dus de grote bottleneck. Dit verklaart ook het feit dat in sommige gevallen 400MHz, 300MHz en 200MHz XScale processoren hetzelfde presteren. De kracht van de XScale wordt bij lange na niet benut en het maakt dan ook weinig uit wanneer de processor een stuk langzamer is; het wachten blijft op de gegevens die toegestroomd worden. Het verklaart ook direct waarom een StrongARM soms beter presteert dan een XScale: de bus is 3% sneller.
Sven Myhre legt in een praktisch voorbeeld uit hoe dit effect heeft op de programmeur, hoe ontwikkelaars rekening moeten houden met de verschillende architecturen en voor welke dilemma's ontwikkelaars komen te staan door deze wijziging in architectuur:
The main problem with slow XScales has nothing to do with XScale (which are based upon ARM v5) 'emulating' StrongARM code (which is ARM v4) no more than you would say a Pentium 4 'emulates' a Pentium 3 when running Windows XP.
And it is NOT a question of simply 'optimizing'Windows CE for XScale. Of course it might give you a few percentages faster code - but it's not worth the trouble going through the entire Windows CE source code and check where we could reorganise structures or access patterns to make better use of the 32 Kb data cache on the XScale. We would probably end up with a highly unstable version of Windows CE were no one new the entire implications of all the changes they made.
Unless we get a faster and/or wider memory bus, we can increase the internal speed on the CPU to the speed of light (and it would probably be blazingly fast in calculating prime numbers or something) - but our real world applications would not really see the difference. As goes for purchase decisions - it is very much up to what you want your Pocket PC to do.