Flash memory is becoming common. Who has not seen a USB keyfob-size device offering 32, 128 or even more megabytes of flash memory? There are also the solid state drives (SSDs) which are flash versions of rotating disk drives, except that they don't rotate. Instead they offer similar capacities to low-end and mid-range drives but with phenomenally faster access speeds and vastly greater tolerances for physical shocks and temperature ranges.

This is why the military is endeared with the devices and why industrial applications in oil refineries and chemical plants are common. Traditional HDDs just aren't built to work in such harsh environments.

The cost per GB of flash memory is greater than that for computer RAM. Partly that's due to the enormously larger demand for RAM. It's also due to the increased complexity of flash memory.

Solid State disks cost about thirty times more per GB than a Shark or Symmetrix array. But that represents a near halving of SSD price per GB over the last few years. (Reference an Iluminata report available here and click on the SSD link.)

Non-volatile memory
The memory inside flash devices is not the well-known RAM. USB keyfobs use flash memory which does not lose its contents when the power is turned off. This is characteristic of all computer RAM. Turn off the power and its contents have gone for ever, unless saved to disk or tape.

NAND memory will often be used and is supplied by, for example, Toshiba and Samsung. NAND refers to a logic operation - not and - and the memory circuitry uses NAND gates.

(In logic, a discipline of philosophy, something might be true if both A and B are true. That could be written a AND b. When used in an electronic circuit the output of an AND gate is 1 if both the two inputs are 1; otherwise it's 0. A NAND gate is the inversion of this. Both inputs must have logic 1 signals applied to them in order for the output to be a logic 0.)

NAND technology suffers from reliability issues such as random bit-flipping and bad blocks. This is not a problem when NAND merely stores MP3 files - a little more noise is not a problem - but is a major concern when NAND is also used to store boot code, the OS, applications, and all user information. This can be solved by integrating a thin controller within the NAND flash die. The controller performs on-the-fly error detection with each read from/write to the flash.

Such additional components add to flash memory system cost.

Looking like a disk
Much as HDDs have controllers which understand about disk tracks and sectors and bad blocks and so forth, so too do flash devices. SSDs have controllers which feed data into and out of the device. They are simple indeed at the keyfob level. But with SSDs as with HDDs, true controllers are needed. The M-Systems 2.5 inch SSD units have a Motorola CPU inside them. Previous versions used an IBM PowerPC, a full 32-bit CPU. These are serious processors.

For the flash device to look like a disk to a PC or server into which it can be connected, it needs an embedded system. There will probably be an operating system (OS) with full block device (hard drive) functionality so that the flash disk appears to the OS and file system as a standard disk drive. At the same time, it transparently provides full flash media management.

In the M-Systems architecture it is layered software. The most basic block is the Memory Technology Driver (MTD) Layer. It provides the basic read/write/erase interface and is controlled by the Flash Management Layer.

The Block Device Emulation and Flash Management layer contains algorithms that comprise the "brains" of a file system. This block is sometimes referred to as the Translation Layer. It is responsible for translating the sector tables used by the file system into physical flash block tables. While translating the addresses, it transparently handles the wear-levelling process, bad-block mapping and other flash-related issues, such as folding.

The uppermost layer is the Block Device API or Driver Layer, which provides block device services to the OS file system. This code is customised and optimised for each supported OS.

Texas Memory Systems backs up its RamSan 320 SSDs with hard drives. The controller complexity is once again ratcheted up and the unit cost reflects the cost of flash memory, power supplies, hard drives, controller components and software.

These are complex embedded computer systems and far, far removed from 256MB SIMMs. The cost per GB is not comparable at all and shouldn't be expected to be.