As consumers clamor for smaller, sleeker and cheaper products, the pressure for embedded designers to find space and cost effective flash memory is higher than ever. Thankfully, serial flash memory devices provide the solution.
Serial flash is a small, low-power NOR flash memory that uses SPI (Serial Peripheral Interface) bus, sometimes called “four wire” serial bus, for sequential data access. When used in an embedded system as code or parameter data storage, serial flash requires fewer connections on the PCB (printed circuit board) than parallel interface flash memories since it serializes the data on fewer I/O pins and transfers data one bit per clock. This allows reduction in board space, power consumption, and overall system cost — key reasons why serial flash memories have gained popularity in the embedded system design community.
One great advantage of working with serial devices is you can use different densities in the same industry-standard footprint. SPI devices can be as small as 2 mm x 3 mm (See left for actual size).
Some of the more popular package types include 8- and 16-pin plastic small outline (SO8 or SO16), 8-pin dual flat package (aka, WSON or MLP8), ceramic Dual In-Line (DIP) and 24-ball Ball Grid Array (BGA). To minimize board modifications as density requirements grow, a designer can layout a PCB to accommodate different package types such as SO8 to SO16 as shown in figure 1.
Serial flash memory devices also vary in densities and power usage. Serial flash memory ranges from 512 Kilobits to 256 Megabits to meet the needs of most embedded systems. Software can do 256-Byte, 4-KByte, 32-KByte or 64-KByte erases on the memory device which gives the embedded application flexibility for usage models that range from frequent parameter data updates to simple firmware storage. The most common operating voltage for serial flash devices is 3.0 volts nominal, but 1.8 and 2.5 volts have started to gain traction in low-power embedded applications.
Comparison of Serial Flash vs. Other Non-Volatile Memories
†Transfer rates with serial flash improve when operating with dual or quad I/O
Generally, when thinking about serial flash, one might assume data is being sent slowly and sequentially on one data line at a time. While this is true for the original serial flash devices, SPI has progressed significantly since then. Today, clock speeds operate up to 108Mhz and data transfers can be done in 2 data lines (Dual I/O) or as much as 4 data lines (QUAD I/O), by multiplexing some pins in the legacy serial flash and re-using them as additional I/O pins. This, in effect, increases the read transfer rate exponentially as the number of bytes per fetch increases, making it faster than asynchronous parallel flash devices in this case.
Another key performance consideration when designing with serial flash relates to a code execution method called eXecute In Place or XIP. With XIP, code is executed directly from the flash device, thereby eliminating the need for RAM (Random Access Memory) in the design. Serial flash devices enable XIP mode by allowing an application to reduce random access time by saving instruction clock cycles. In XIP mode, the serial flash device needs only addresses to output the data. The serial flash memory can enter and exit from the XIP mode with dedicated instructions or by programming a non-volatile register that set this mode as default.
To boost programming performance especially in high-volume manufacturing, there are several methods that can be implemented. Some serial flash devices in SO16 package also have the capability of doing x8 mode factory programming, using 8 of its pins as inputs. Some serial flash devices also have the capability to increase programming performance when a high voltage is applied to VPP pin. Depending on the preference of the manufacturer, implementing a combination of these options can improve programming time significantly compared to normal serial single I/O programming mode.
There are a number of specific security features offered in serial flash including:
• One-Time Programming (OTP): Permanently protects blocks from modification allowing read-only access for applications that require a fixed code image
Due to its diverse attributes, serial flash memory has found its way into several embedded applications from printers to graphic cards; gaming consoles to PC BIOS; DVD/Blu ray writers and players to answering machines; as well as video recorders, routers, bluetooth devices, and WiFi modules. Applications that require speed can use serial flash with QUAD I/O or XIP Mode. Applications not requiring high performance can take advantage of the simplicity of a single I/O implementation. New applications using serial flash memory include WiMAX devices, set-top-boxes, low-end cellular phones and netbooks.
As the ever-changing electronics industry continues to march toward “smaller, faster and cheaper” designs, this no longer has to sound like a cliché – it’s a reality today with serial flash memory and it may be the best choice for your next embedded design.