Flash memory has improved its speed of operation and its sophistication. Flash memory chips are even designed for specific applications. For example, Flash memory chips designed to be used to hold a PC’s BIOS usually have a small data block which can be erased in one operation while leaving the reset of the BIOS code unchanged. Flash memory chips also have small read-only areas, the Common Flash Interface or CFI, that allow applications to discover how the Flash memory is organised.
The most important problem for Flash memory designers to overcome is capacity. It turns out to be quite difficult to achieve a higher storage capacity by simply shrinking the size of the basic storage cell.
In this respect there is a fundamental difference between Flash memory and other types of chip. Generally speaking, as designs shrink to accommodate more transistors, chips tend to speed up and become more efficient.
Flash memory, on the other hand, tends to need higher voltages and works slower the smaller you make it. Clearly a new idea is needed to increase the capacity of Flash memory. One of the best is to use each cell to store more than one bit using the so called Multi-Level Cell (MLC) technology. Surprisingly, this can be achieved without much modification of the basic design.
Instead of using an all-or-none approach to storing data in the cell, different number of electrons are transferred to the floating gate to interfere with the control gate to varying extents.
For example, a two-bit MLC would use four levels of charge on the floating gate to code 00, 01, 10 and 11. Of course, reading the state of the gate is now slightly more complicated because four output voltage levels have to be accurately sensed and writing the gate is more complicated because the time used to allow electrons to tunnel to the floating gate has to be accurately controlled.
The extra complexity is well worth it because an MLC device can turn a chip with 16 million transistors on it into a 32Mbit memory. Similarly an eight-level MLC can store three bits per transistor and treble the storage.
Flash Memory Cards
Although Flash memory seems to be everywhere few users encounter it in its raw form. Instead Flash memory chips are packaged into more robust and easy-to-use forms and it is as one of these that we mostly meet Flash memory.
The most commonly used Flash cards are:
The simplest of all Flash memory devices and commonly found in digital cameras. Originally known as SSFDC (Solid State Floppy Disk Card) this contains just a Flash memory chip with no additional electronics. This makes it difficult to improve the format without changing the devices that use it.
CompactFlash emulates an ATA disk drive and is common in digital cameras. A simple PC adapter allows the card to be read just like a hard disk.
MMC is specifically designed for phones, MP3 players and digital cameras. It uses a simple 7-pin serial interface. It is also produced in a range of form factors, using the same interface. The RS-MMC, or Reduced Size MMC and MMCmicro are very common in mobile phones - often just called MMC mobile and micro.
An SD card is about the same size as an MMC but its much more sophisticated. It implements an encrypted filing system that makes it suitable for use for distributing music using digital rights management. Two smaller form factors are also common the SD mini and SD micro - all SD cards use the same interface. There are also HD versions (SDHD) of all three form factors which use the same interface but work faster and have a larger capacity. Older SD readers cannot use SDHD cards.
xD is the smallest of the standard Flash memory packages and is intended to be used as digital film. It features high-speed block data transfer, which is ideal for photography but it only achieved support from Fuji and Olympus. It has the same interface as SmartMedia and is essentially just a repackaging.
Flash memory will no doubt be replaced by something different and better in the near future but it probably hasn't seen its best days just yet. Its falling price has allowed it to be used to provide GBytes of hard disk replacement storage. Such devices can significantly increase the speed of a machine and are ideal for mobile use. Flash is going to be with us for a while yet.
This xkcd cartoon provides an ideal excuse to explain Kolmogorov complexity. It is an interesting topic and one that gets right to the heart of programming of how programming relates to ideas like inf [ ... ]