Chris De Herrera's Windows CE Website

About
Discuss.Pocket PC FAQ Forum

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

[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
Corporation
and are used
under license from owner.
CEWindows.NET is not
associated with Microsoft 
Corporation.

All Trademarks are owned
by their respective companies.

Performance Recommendations
By Chris De Herrera, Copyright 2001, 2002
Revised 5/20/2002

[an error occurred while processing this directive]

Design Limitations...

Currently there are multiple design limitations in the current Pocket PC 2002 and Windows CE in general that limit the performance of these systems. I'm sure that Microsoft thinks of these items as features but I see them slowing the Pocket PC down.

CPU Management

The Pocket PC 2002 continues to allow multitasking of applications as did the prior generations of Pocket PC and Handheld PCs. With Windows CE 3.0, Microsoft greatly reduced the latency to switch between tasks to under 50 milliseconds. While this sounds like a small amount of time, it represents a significant overhead when the system automatically runs up to 8 applications at once.  Right now the developers do not have the ability to setup their application to run exclusively. Without this capability the Pocket PC and Handheld PCs will continue to slow down when multiple applications are run at the same time.

Math Coprocessor

Windows CE supports RISC processor and Microsoft has chosen the StrongARM and XScale microprocessors that do not include math coprocessors for the Pocket PC. Without the support of a math coprocessor, all floating point calculations require many more instruction cycles.  Users will see this in multiple applications, including Pocket Excel.  Pocket Excel calculates much slower than the PC does due to this design decision.  The only advantage for not including a math coprocessor is the simpler design of the hardware and reduced cost.

Memory Access

The Pocket PC uses 16 bit access to memory and peripherals. Since the Pocket PC uses the StrongARM or XScale CPU, it is limited to accessing the memory at 100 and 103 MHz respectively.  So if the OEMs made a 32 bit or 64 bit bus to access memory, the Pocket PC would execute more instructions than it does today.

Data Storage

Since the first day Windows CE was announced, it supported real time data compression of the Object Store. The Object Store is the internal ram storage of databases and files inside the Pocket PC and Handheld PC. Right now the application developer or the user do not have the ability to turn off the compression of this data to increase the speed of the system.  I believe that Microsoft will no longer need to perform compression of data with 64 MB or larger systems like it did when the first Handheld PC was introduced.

TCP/IP Communications

The TCP/IP stack in Windows CE is single threaded.  This means that you can not receive data and send data at the same time.  Further the overhead of going through both the send and receive queues slows down high speed TCP/IP communications.   Windows CE like all modern operating systems supports multiple threads per application. I recommend that Microsoft separate the TCP/IP send and receive threads to minimize the overhead.  This will really make a difference in 802.11b, and normal and full duplex 10baseT and 100baseT networking.

Video Displays

Currently Microsoft provides very limited capabilities to access the video display of the Pocket PC and Pocket PC 2002 with the introduction of GAPI. I believe Microsoft and the OEMs need to do more to increase the features and capabilities of the Pocket PCs to make them superior gaming systems. The specifications for the video controllers should include 2D acceleration in hardware.  Further Microsoft needs to add a sprite engine to the Pocket PC to make high speed graphic designs easier for developers.  Further adding the DirectX suite (DirectPlay, DirectSound, DirectDraw etc.) would provide standard APIs to make synchronizing video and game applications easier.

Audio

Currently the Pocket PCs only support half duplex (meaning you canot talk at the same time as you are listening).  I believe Microsoft needs to support full duplex in order to allow developers to offer voice over IP, and video conferencing.

Peripheral Support

Currently Microsoft only supports Secure Digital, CompactFlash, PC Card and USB peripherals.  I believe that Microsoft needs to support Cardbus PC Cards in order to get the highest speed with 100baseT networks.  Further, the support for Firewire (1394) and USB 2.0 will add support for high speed peripherals like video capturing.

Conclusion

Overall if Microsoft made some changes to the design of Windows CE or the Pocket PC, these systems would be even faster than they are today. I hope Microsoft will focus on overall system performance in the future as well as supporting higher clock speeds for CPUs. 


[an error occurred while processing this directive]

Return to Chris De Herrera's Windows CE Website