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