Solid-state disk drives are all the rage, with
two flavors for embedded solutions: hard-disk
form-factor devices and USB devices.There’s
also a complement of flash cards, from Compact
Flash to Sony’s Memory Stick, but they tend to be single
devices. They often require specialized interfaces, and their
capacity usually is limited due to physical constraints.
Yet a third form factor may offer an opportunity, especially
in embedded environments via another standard interface: PCI
Express (PCIe). These cards come in a range of form factors,
from ExpressCard to PCIe cards for desktops and servers.
Right now, the PCI Express route is available only for
small-capacity solutions, like Intel’s Turbo Memory (see the
figure). It’s designed to operate with Microsoft’s Windows
Vista as a caching buffer. Using a feature called
“pinning,” users can lock applications into flash for
faster performance. Likewise, hard-disk caching can
be performed using the module.
Intel’s solution incorporates its own Flash
Cache Logic chip to handle wear leveling, a
feature found in all flash hard drives. It also
puts flash closer to the processor since there
is just a pair of PCI Express interfaces in
between. USB, SATA, and IDE drives
must add a pair of the respective interfaces
in between. External USB hard drives use a
third set of interfaces.
These additional interfaces add up to
more complexity plus more hardware and
software overhead. The power issue is there,
but the controllers are such a small fraction
of the overall system that they usually aren’t worth mentioning.
On the other hand, PCI Express power management could, in
theory, provide better software control.
Likewise, journaling file systems could be tuned to match
wear leveling requirements instead of placing this onus on
hardware. This is unlikely to happen unless flash storage moves
into the PCI Express realm in a big way. Still, it is an interesting
thought exercise.
OUT WITH THE OLD
One reason why hard-drive replacement will remain the big
target for flash drives is the massive established infrastructure
and its momentum. Hard drives will continue to lead flash
drives in capacity for the foreseeable future, and most systems
will use SATA or SAS interfaces.
This is fine for systems with larger processors from the likes
of Intel, AMD, Via, and Sun where the typical south bridge
chip has SATA interfaces or systems that employ SATA or
SAS RAID controllers. But what about embedded applications?
This is where things get more interesting.
At the low end, USB will likely be the interface of choice.
Most microcontroller controller families have USB host interfaces
as options. Few have SATA interfaces. USB flash modules
for internal use are now common, making them very
desirable since the maximum capacity of these modules is
rarely an issue. Higher-end microcontrollers have PCI Express
interfaces, which are likely to replace those with wider but
slower PCI interfaces. This is where PCI Express-based flash
will be of interest.
But wait, you say. Can’t you design a system where flash
chips are simply placed off a microcontroller’s parallel
bus? Yes, but there’s a catch or two.
Raw flash chips require management.
This isn’t too difficult, but it is an additional
feature that the operating system
or flash runtime library must support.
A more critical aspect is the amount of
storage and the types of chips that will be used.
Using a standard board or module interface like
Mini-PCI Express lets designers choose the storage
capacity after installation. It also provides the ability
to upgrade a system without changing the underlying
design. This is the same advantage designers
have when using a hard-drive interface or USB
but with the PCI Express interface and speed
advantage.
WHAT'S IN IT FOR YOU?
Right now, flash comes at a major premium, and hard-disk
capacities greatly exceed what flash can deliver. It will be a
couple of years before flash drives replace hard drives on a
regular basis. But the rising capacities of both mean flash can
meet the needs for many applications that do not push the
capacity envelope.
Flash is simpler to work with, and it has other advantages
such as faster random access and read speeds than hard drives.
Write speeds are usually slower for large amounts of data,
although data that will fit into an on-drive cache will effectively
offset any differences for smaller amounts of data.
Still, flash memory offers a number of opportunities to
embedded developers right now. This is especially true where
large capacity, as hard drives have the advantage, is not an issue.
The big question will be where the interfacing occurs. So, where
are you using flash? I’d like to hear about your preferences.
Intel • www.intel.com