Microsoft Windows CE 3.0  

Block Device Drivers for Flash Memory Devices

This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

The first version of Windows CE was used solely on platforms with battery-backed RAM storage with a simple file system to manage the storage. However, Windows CE versions 2.10 and later are often used on embedded systems that require persistent storage and cannot depend on battery-backed RAM storage. As a solution Windows CE can use flash memory, which is the industry standard for nonvolatile storage in embedded applications.

The two leading types of flash memory architecture are ATA flash and linear flash memory. Both conform to the industry standard PC Card form factor, and they can be used interchangeably in existing PC Card sockets. However, there are significant differences between the two architectures that affect their performance on Windows CE.

ATA cards emulate the behavior of an ATA-style hard drive by means of linear flash memory components and a special microcontroller chip, which performs hardware emulation of an ATA-style hard disk. An ATA card appears as an ordinary hard drive to an operating system. ATA-style hard disks are block devices, and thus ATA cards require block device drivers in order to work with Windows CE. Windows CE provides a sample block device driver called ATADISK that works with block devices that conform to the industry standard Advanced Technology Attachment (ATA) specificiation. Most ATA flask disks will work with the ATADISK driver.

Linear flash memory takes its name from the fact that, unlike ATA-style flash, the individual storage locations form a contiguous range of memory addresses, each of which can be accessed directly. Thus, linear flash memory can be read directly as though it were RAM or ROM. Moreover, Windows CE uses a software driver layer to emulate a disk drive on linear flash memory devices; this eliminates the need for special controller hardware. Linear flash memory devices that operate in this block-oriented fashion use the driver layer to translate data to and from a block format that Windows CE can understand.

This driver layer is called the flash translation layer (FTL). The FTL software component implemented on Windows CE is provided by the TrueFFS driver from M-Systems, Inc. The TrueFFS driver exposes standard Windows CE stream interface functions to the operating system. Currently, the TrueFFS driver in Windows CE supports linear flash memory in several form factors: minicards, industry standard PC Cards, and built-in DiskOnChip devices. Linear Flash devices that are resident on system boards, also known as Resident Flash Arrays, are not currently supported as block devices by the TrueFFS driver.

 Last updated on Tuesday, July 13, 2004

© 2004 Microsoft Corporation. All rights reserved.