the Speed of XScale
The first XScale CPU based Pocket PCs are now starting to ship with the introduction of the Toshiba e740. Users have reported no difference in performance between the XScale based Pocket PCs and StrongARM Pocket PCs. I predicted this in my article, "Are Pocket PC's Starving?" http://www.pocketpcfaq.com/faqs/pocketpcstaving.htm If you really want to see the XScale fly I recommend that Microsoft, Intel and the Hardware Manufacturer make the following changes:
The following should be done by Microsoft:
1. Support Thumb (16 bit instruction set). This will reduce the code size about about 30% and this increases the speed since the extra 16 bits of code are not needed to be read each time. This requires a whole rewrite of the OS and all the applications.
2. Support ARM5 instruction set. There are some optimizations included in the new instructions. This requires a whole review of the OS and all applications and rewriting as needed to improve performance. Applications such as Windows Media Player can take advantage of the new instructions to improve performance.
3. Decide whether or not to support additional instructions that CPU manufactures add to their chips. If you don't support these instructions, then tell us so we know why you don't.
The following should be done by the Hardware Manufacturer:
1. Support a 32 or 64 bit memory bus. The 64 bit bus is going to make the chip perform much faster since the cpu does not have to waste time reading 32 bit code and 32 bit data before performing the instruction.
2. Use a video chip like the Imageon 100 from ATI or the MediaQ chip. If you use a video chip, then provide end users with applications optimized for it - even if they are 3rd party. Examples of these applications include an MPEG 4 video player or a picture viewer. Without these apps the user will not see the whole benefit of using a video chip. To see what the ATI Imageon Chip can do see http://www.pocketpcfaq.com/reviews/ati-imageon.htm
The following should be done by Intel:
1. Increase the depth of the 7 level pipelining to support full speed execution using a 16 bit memory bus for both read and write. This would require at least 9 levels of pipelining to do this. The first 4 cycles of the pipeline would be to just read the instruction and data!
2. Increase the internal cache. The cache runs at the CPU's clock speed and it is 64 bits so the load time is faster.
3. Add support for Cardbus for high speed peripherals. Right now the XScale only supports SD, SDIO, CompactFlash and PC Card slots. Without Cardbus, we will never get to use the full speed of a 100 megabit Ethernet or other high speed connections like 802.11a which require Cardbus.
Overall, I do not blame Microsoft for these issues. I do believe that the "HYPE" of 400 mHz is very misleading due to these issues. It's really something that Intel should be explaining to the consumer - just like they do with their x86 processors.
BTW, you can get all the details on the XScale CPU at Intel's website - http://developer.intel.com/design/pca/prodbref/298620.htm I recommend reading the whitepaper to start with.
Also, I recommend reading the Intel® PXA250 and PXA210 Applications Processors Specification Update http://developer.intel.com/design/pca/applicationsprocessors/specupdt/27853401.pdf to get the details on the bugs that are still in the processor.
Update - 9/21/03
Since I wrote this article, Intel has released a new version of the XScale CPU called the PXA255 which uses a 200 MHz memory bus and a 400 MHz clock speed. This chip has proven to be much faster than the PXA250 which I described above even though it was pin compatible with the PXA255. Most Pocket PC OEMS have switched to shipping the PXA255 with their latest Windows Mobile 2003 devices.