How to adjust the Storage Memory and Program Memory Partitioning on the Handheld PC

CESD-S-0121

Applies To:

  • Windows CE 1.0, 1.01
  • Windows CE 2.0, SP1
  • Handheld PC Professional, SP1
  • Handheld PC 2000
  • Windows CE .net 4.0, 4.1, 4.2

Overview:

Older generation Windows CE based devices rely exclusively upon internal Random Access Memory (RAM) for both system processes and personal data storage. Under Windows CE, the devices total available internal memory is considered partitionable, that is it can be divided into user definable sections. This article discusses how to adjust the internal memory partitioning and why a user may wish to make the changes to begin with, with each performing a distinct function.


More Info:

Before Windows Mobile 5.0 established solid-state flash memory as a de facto part of the Windows CE storage system make-up, all consumer Windows CE devices primarily relied upon partitioned, volatile memory for both the storage of private data and for operating system processes and functions.

As Windows CE uses the same physical memory for both sets of data manipulation, a distinction is made between the operating system processing memory and the private data store. These are formally called:

  • Storage Memory
  • Program Memory

Storage Memory

Storage Memory can be considered by the user to be the equivalent to Windows CE of a hard disk, floppy drive, zip disk or rewritable CD. Although technically the analogy is inaccurate, the principle common attributes to the user of these mediums are that information can be read from it, written to it, filed and manipulate all at the discretion of the user.

Under Windows CE, when you browse the device using My Handheld PC or My Computer, it is the Storage Memory that you are viewing. Files can be created and manipulated just as they can be on any Windows PC. The My Handheld PC interface was designed to provide a familiar look to Windows users, so that no obvious distinction is needed between Storage Memory and a Hard Disk, Floppy Drive or indeed a Storage Card.

Program Memory

Program Memory undertakes an identical role to that most users would traditionally ascribe to RAM. This region is not something that you can physically interact with unless you are a developer, however every program you run, every task or action that you perform on the Handheld PC makes use of it with the aim of producing the desired information on the screen.

Striking the Balance

While there are some exceptions, most Handheld PC devices cannot have their internal memory (RAM) expanded. Of those that can, no H/PC device can have its RAM expanded while retaining the information stored in it. consequently, the amount of RAM that your device has currently, whether it is 2MB for a Windows CE 1.0 device or 128MB for a Windows CE .net device is the only memory figure that you have to work with.

Windows CE Memory - Storage Memory vs. Program MemoryUnder Windows CE, a balance must be struck between how much of this memory is used for your own personal information in what is often called the file system, and what is used silently by the operating system. Each of the two regions is completely isolated from the other. Once memory is assigned for use as part of the Program Memory, it cannot be used to store - for example - Pocket Word documents and vice versa.

By default, most devices will ship with this allocation set at a roughly equal figure, with 50% of the total RAM set to Storage Memory and 50% set to Program memory. For most users this figure will be acceptable, particularly on newer devices. For users of older devices, with sparse amounts of RAM, it may become necessary to adjust this figure more frequently in order to to get the device to perform as required.

 

As a general rule, choosing how to partition the main memory should be considered along these lines:

  • Storage Memory:
    The More storage memory available to the device, the more personal information you will be able to store without resorting to external storage cards. Storage memory is equally important for the installation and use of patches and drivers as well as actual applications, which must be stored within the "filing system" of the device. While it is possible to store parts or indeed all of an application on a storage card, it is not possible to do so with drivers and patches. Storage Memory is also used by Pocket Internet Explorer's browser cache and for all of the system databases used by Pocket Outlook.
  • Program Memory:
    The more Program Memory available to the device, in general the faster it will perform and the more responsive it will be, particularly when performing large calculations or undertaking several tasks simultaneously (multitasking). The program memory area is used exclusively by Windows CE to perform tasks. Every application that is running on the device, including device drivers requires a dedicated portion of main memory in order to function. If there is insufficient memory, either something must be removed from memory to make room for new information, or you will be prevented from performing a task or starting a program.

Limitations, Issues & Tips

There are a number of things to be aware of when adjusting the memory settings on your device.

  1. Windows CE 2.10, 2.11 and Handheld PC Professional are limited to no more than 16384 KB of Storage Memory, irrespective of how much physical RAM is in the system. Additionally, attempting to increase the storage RAM beyond this limit has been know to cause instability and in a minority of cases data loss on some devices
  2. Setting either the Program Memory or Storage Memory too low can lead to device instability and loss of functionality. Setting either memory allocation critically low or to a value which leaves 0 available space will cause permanent data loss. Your device will crash and you will be forced to hard reset in order to regain functionality
  3. If possible the memory allocation should be set at a value of at least double the amount of the nominal in-use Program Memory. For example if you are currently using 2MB of program memory on an 8MB device, the minimum value for the program memory total should be 4MB
  4. The Pocket Internet Explorer / Internet Explorer CE Cache % figure, is calculated based upon n% of the available Storage Memory accessible to the browser when the session was started

How-to Guide:

To manually set the partitioning on the Handheld PC's internal memory:

Please Note: This information applies to internal RAM only. These settings have no impact upon internal FlashRAM storage areas and storage devices such as CF cards.
  1. Tap Start
  2. Select Settings and finally Control Panel
  3. Run the System Applet
  4. Open the Memory Tab if it has not automatically been displayed

The slider on this screen displays an overview of the current status of your devices memory.
Areas represented by white blocks provide a cumulative glance at the amount of each type of memory. The information is not a fragmentation display - showing you were in memory information is stored.

Information and space on the left hand side of the slider pointer is allocated to Storage Memory, Information and space to the right to Program Memory.

Memory Slider Screen Shot

  1. Drag the slider to the right to increase the amount of Storage Memory and reduce the amount of Program Memory. Drag the slider to the left to increase the amount of Program Memory and reduce the amount of Storage Memory. The numeric information will be updated as you adjust the sliders position. This value reflects the memory allocated to each memory type in KB. Changes are not applied as you move the slider
  2. To accept and commit your changes to the device, tap OK. To abandon them, tap the X on the top right of the window to close the session without saving changes