Chris De Herrera's Windows CE Website

Discuss.Pocket PC FAQ Forum

Add Pocket PC FAQ to your Favorites
RSS    RSS Feeds
Wiki    Lost?
Custom Search
Subscribe    Print
Table of Contents
Mobile Format

[an error occurred while processing this directive]

Pocket PC Magazine Best Site

Website Awards
Website Updates

By Chris De Herrera 
Copyright 1998-2007
 All Rights Reserved
A member of the Talksites Family of Websites

Windows and Windows CE are trademarks of Microsoft
and are used
under license from owner.
CEWindows.NET is not
associated with Microsoft 

All Trademarks are owned
by their respective companies.

Are Pocket PCs Starving?
By Chris De Herrera , Copyright 2002
 version 1.01 Revised 5/2/2002

[an error occurred while processing this directive]

What do Pocket PCs Eat?

Pocket PCs, like all computers process (ie: eat) code and data.  Both code and data is stored in RAM.  So the speed of ram (bus speed) plays an important role in the overall performance of systems, including Pocket PCs. In order to better understand how Pocket PCs use ram an explanation of what kind of CPU the Pocket PC uses.

What kind of CPU does the Pocket PC Use?

Pocket PCs use a different type of CPU than your regular PC.  The Pocket PC 2002 uses the StrongARM or XScale CPU from Intel.  These CPUs are called RISC (Reduced Instruction Set Computer) processors since the execute one instruction per CPU cycle. A cycle per second is 1 Hertz or Hz.   Your PC uses a CISC (Complex Instruction Set Computer) processor.  CISC processors require multiple CPU cycles to execute a specific instruction.  So a RISC processor like the StrongARM processor can execute, in theory, up to 206 million instructions per second if it is operating at 206 MHz.    

Instruction Size Affects Performance

The StrongARM and XScale processors execute 32 bit instructions, just like your desktop PC does.  There is one large difference between CISC and RISC processor instruction sizes.  The CISC processor allows for the use of variable length instructions.  So the CPU has to calculate the size of the data to read in after it has read the instruction.  The RISC processor works differently.  In the RISC processor, each 32 bit instruction also has 32 data along with it.  So the processor is always able to calculate how much data to read, and of course this is more efficient.

Bus Width and Speed Affects Performance

The bus width in combination with the bus speed has a dramatic effect on the performance of computers. The bus width defines how many bits or bytes of data that can be read from and written to the ram of the computer into the processor.  The bus speed defines how fast the data can be read from the ram to into the processor.  So think of the bus width as the number of lanes on a highway and the bus speed as the speed limit.  Right now the StrongARM and XScale CPUs use a 100 MHz bus speed.  Also the designs of the Pocket PC that are currently available use a 16 bit bus.   This means that the maximum bus speed is 200 megabytes per second.

Putting it All Together

So now we know that for each instruction we need to access ram.  We need to read in 8 bytes of data before executing the instruction.  Given that our maximum bus speed is 200 megabytes per second, we can only execute 25 million instructions.  Well there's one little thing we did not discuss and that is a special ram called cache which is stored on the CPU and executes at the same speed as the CPU.  The cache in the StrongARM CPU is 16k for code and 8k for data.  The cache in the XScale CPU is 32k for code and 32k for data.  So if the code and data that is being executed fits into the cache, the system is able to operate at the full clock speed of the CPU.  If it does not fit then it will not execute at full speed.  The actual performance of the system will vary dramatically between these 2 limits of 25 million instructions and 206 million instructions per second depending on whether or not the program and data fit into the cache. 

How does this affect Me?

So depending upon what programs you run you will see radically different performance. For example using Excel to calculate a spreadsheet should allow the processor to operate at a higher speed than watching a video.  This is because Excel uses the same calculations for numbers compared to receiving unique data required to display video  Also keep in mind that the initial time any program is loaded, it will execute at the slower speed since this is the fastest that the program and data can be loaded into the processor.  Of course power saving features like sleep mode will also reduce the overall performance of the system in favor of battery life.  So when you are using your Pocket PC, you may notice huge differences in performance depending on what you are doing even if no other applications are loaded.  So I expect that the XScale CPUs will bring better battery life and in some cases better performance however you won't always be able to see the difference.

Could Performance Be Improved?

Yes!  Right now the PC marketplace uses much faster ram than the Pocket PCs do.  The 100 MHz ram bus speed has been eclipsed by the 133 MHz ram bus speed that the Pentium III used.  The Pentium 4 uses DDR and Rambus ram which operate at 200 MHz through 800 MHz.  So if Intel had chosen to use 133 MHz ram instead, the ram access would be 1/3 faster (25 vs 33 million instructions per second).  Now you might think that 133 MHz ram is more expensive, well it's not!  It's the same price as 100 MHz ram. I would not be surprised if some OEMs use 133 MHz rated chips at 100 MHz since the 100 MHz chips have been disappearing from the market.  Of course if Intel wanted to it could have used faster ram, like the latest PCs do.  Of course this would have increased the price of Pocket PCs since the newer ram is faster and more expensive.

[an error occurred while processing this directive]

Return to Chris De Herrera's Windows CE Website