Block Device Drivers for Flash Memory Devices
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
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.