
Posted:
Jun 17, 2003 @ 3:31am
by damian
Why won't it run at all on StrongARM? It's all about optimzation, not taking advantage of extra X-Scale-specific instructions of which, IIRC, there are a grand total of two.

Posted:
Jun 17, 2003 @ 6:44pm
by Digby
Wrong. Go read the Intel XScale Microarchitecture for the PXA255 Processor User Manual.

Posted:
Jun 17, 2003 @ 8:24pm
by James S
Care to ellaborate Digby? I flipped through it, found nothing to refute the claim that XScale optimizations make a program incompatible with the ARM v4 instruction set. And seeing as how HPQ is releasing the H1945 with PPC2003 and an ARMv4 processor it makes it even more curious.

Posted:
Jun 18, 2003 @ 11:21am
by refractor
Proviso: for some of this I'm going on what other people have said, or from memory - read it with a pinch of salt.
I did a bit of digging into this. The H19xxs have Samsung S3C2410 cores, which are ARM920T implementations. That means that do indeed have implement the ARMv4T architecture, and not the ARMv5. The ARM4->ARM5 change was really only the extra DSP instructions (including CLZ which is a useful more instruction than the others in "normal" processing). Note the ARMv4T, not just a vanilla ARM4 like StrongARM. I would imagine that MS wouldn't worry about using the Thumb instructions in their code to keep it "compatible". Vendors may use it in their code, obviously.
XScale "optimisations" could certainly make something not run at all on the StrongARM (hell, if one was optimising for space and threw some Thumb code in there...). As for the other instructions, I can't remember - I think the PLD turns into a NOP on the StrongARM, but the CLZ causes an undefined instruction exception (which can be handled and dealt with)... not got time to go look at any other stuff that was added.
For the vendors it doesn't make marketting sense to continually "let" people upgrade to the "new" OS. Why let somebody upgrade their old manky iPAQ 3630 (like mine) to PPC2003 or whatever when they want to make more money selling you a brand new device.
For one, I'm glad that some manufacturers are moving away from the XScale (and to the ARM9s). To me, XScale is "special" (and not in a good way) - their "odd" instruction timings meant that to get 100% out of the processor then code had/(would have) to be written/optimised for it specifically - optimised StrongARM code sometimes won't run well on the XScale. In theory (I haven't looked at this in any detail yet), optimised StrongARM code will run nicely on the Samsungs/other ARM9s (if there are any). Also, lots of people were burnt when the PXA250 wasn't exactly up to hype (pre-C0 variants reportedly had serious cache problems and other "issues").
Cheers,
Ref.
<i style="text-decoration: line-through;">P.s. anybody got a link to a Samsung ARM processor datasheet - I can't seem to find one?</i>
Edit: They're <a href="http://www.samsung.com/Products/Semiconductor/SystemLSI/MobileSolutions/MobileASSP/MobileComputing/S3C2410X/S3C2410X.htm">here</a>.