Author_JeffBader-webAs 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.

Here are some specifics on why serial flash devices are gaining in popularity:

1. Reduction in IC cost - Many ASICs are bond pad-limited, meaning that the size of the die is constrained by the number of bond pads. Eliminating bond pads allows smaller, compact integrated circuit silicon, thereby increasing the number of die that may be fabricated on a wafer and reducing cost per die. Reducing the number of external pins also reduces assembly and packaging costs both for the ASIC and the flash memory, as compared with parallel memory devices.

2. Reduction in PCB real estate - Smaller and lower pin-count packages occupy smaller space on the PCB layout.

3. Design simplicity - Lower pin-count devices simplify PCB trace routing, contributing to faster time-to-market and easier testability.

4. Scalability – the ability to increase memory density without changing board layout.
Great Things Come In Small Packages

SMH-0910-opening-art-webOne 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
Performance Considerations

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.

SMH-0910-Figure2-webAnother 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.

Security Considerations
From counterfeiting to malicious code intrusion to efficiency in manufacturing and support processes, data and code protection can be critical in a product for many reasons. As an example, designers of set top boxes must be flexible in their designs to enable features that allow a service provider to install software updates on the system in the future. To ensure the additional software updates do not inadvertently corrupt the code in the system, the designer can lock the boot code in the flash device. This way the added software cannot inadvertently attempt to overwrite the original code.

SMH-0910-Figure3-webThere 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
• Flexible block locking: Software method of preventing writes or erases of blocks on the memory device
• Unique ID: Unique serial number stored in each device which can be used to prevent device cloning
• Hardware Write Protection: Prevents writes or erases of blocks by applying a certain voltage on a pin
Well Suited for a Wide Range of Applications

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.