I2C SPI USB CAN eSPI Cable Testing View All Videos Quick Start Guides Software Downloads App Notes White Papers User Manuals Knowledge Base Sales Support About Us
Products Blog Sales Support Contact Account Search
What is Flash Memory? Introduction, Types, Examples, and Applications
Jessica Hopkins

Introduction to Flash Memory

PCB with memory chips

Flash memory is widely used to store data and code used in embedded systems. It is a non-volatile storage medium, meaning that it can retain data without a power supply. Flash memory can be electrically erased and reprogrammed and it erases data in units called blocks and rewrites data at the byte level. Flash memory is often used in systems that frequently rewrite data, such as USB flash devices or SD cards.

Flash memory is a variation of EEPROM, or electrically erasable programmable read-only memory. EEPROM and Flash memory have many differences, with one being their reading, writing, and erasure procedures of stored data. For instance, EEPROM can read, write, and erase data at the byte level while Flash memory can also read and write at the byte level, but can only erase data at the block level.

Because erasing is a relatively slow operation and must be done before writing, performing the erase in a large block makes large write operations faster.

Flash memory devices are often I2C- or SPI-protocol based to facilitate communication between two devices or chips in an embedded system. Depending on the application of the memory device, there are certain advantages and disadvantages of using one over the other.

Types of Flash Memory

There are two types of Flash memory most commonly acknowledged: NAND and NOR Flash. NOR Flash was the first of the two to be introduced in 1988 by Intel, while NAND Flash was later introduced by Toshiba in 1989. Their main differences can be identified in their architecture.

NOR and NAND are named for the way the floating gates of the memory cells that hold data are interconnected in configurations that resemble a NOR or a NAND logic gate.

NOR Flash

NOR Flash is optimized for random access capabilities where it is able to access data in any order and doesn’t require following a sequence of storage locations. In terms of its architecture, each of NOR Flash’s memory cells are connected in parallel where one end of the memory cell is connected to the source line and the other end is connected to the bit line. This allows the system to access individual memory cells.

NAND Flash

Conversely, NAND Flash is optimized for high-density data storage and gives up the ability for random access capabilities. NAND Flash cells are connected, usually eight memory transistors at time, in a series to the bit line called a string. Here, the source of one cell is connected to the drain of the next one. This series connection reduces the number of ground wires and bit lines.

In summary, NAND-based Flash memory is ideal for high capacity data storage, while NOR-based Flash memory is best suited for code storage and execution, generally in small capacities.

Examples and Applications of Flash Memory

Flash Memory Examples

Common examples of Flash memory include:

  • Multi-Media Card (MMC) - a Flash-based memory card standard used for solid-state storage in smartphones, digital cameras, music players, video camcorders, and personal computers. These cards store digital information such as text, pictures, audio, and video.
  • Solid-State Drive (SSD) - a Flash-based memory used in devices such as computers or video game consoles as a storage device that replaces hard disk drives (HDD) due to its speed and reliability.
  • BIOS chip – basic input/output system - is a small memory chip located on a computer’s motherboard that stores instructions so the computer can perform basic functions such as booting and keyboard control.
  • USB Flash drive - a data storage device that includes Flash memory with an integrated USB interface. This device plugs into a PC, camera, or phone to save or transfer digital data.

Silver USB 4GB Flash Drive

Flash Memory Applications

Flash memory is widely used for storage and data transfer in consumer devices, industrial applications, and enterprise systems.

In terms of consumer devices, Flash memory is often used in portable devices such as cell phones, digital cameras, tablets, and printers for fast and easy information storage. Flash memory is ideal for such electronics because it allows for mobility and miniaturization of the devices. With Flash memory, these devices can store data such as text, pictures, audio, and video files, and perform certain functions without the need for a traditional hard drive. Additionally, since Flash memory is non-volatile, these devices can store data without power, making it more efficient for consumers.

Flash memory is also often used in industrial computing applications, including scientific instrumentation, industrial robotics, space exploration, and medical electronics. Industrial systems often use Single-Level Cell (SLC) NAND Flash due to its reliability and endurance and its lessened susceptibility to power fluctuations. Incorporating such industrial-grade Flash storage is vital in these critical use cases as it minimizes risk of failures.

In enterprise applications, Flash storage refers to the use of solid-stage drives (SSDs) comprised of Flash memory for the mass storage of data or files. Enterprise computing platforms such as data centers benefit from SSDs as they offer high data throughput and low transaction latency. With the growth of hybrid and all-flash arrays, SSD storage serves intensive workloads with very high I/O performance.

How Total Phase Supports Flash Memory and EEPROM Devices

Total Phase offers multiple host adapter tools that support reading, writing, erasing, and verifying I2C- and SPI-based Flash memory and EEPROM devices. Depending on the speed and application, embedded system engineers can select from the Aardvark I2C/SPI Host Adapter, Cheetah SPI Host Adapter, or the Promira Serial Platform to program and interface with such memory devices.

The Aardvark I2C/SPI Host Adapter is a general-purpose host adapter capable of signaling up to 8 MHz as an SPI master and up to 4 MHz as an SPI slave. It also can emulate an I2C master or slave device up to 800 kHz.

The Cheetah SPI Host Adapter is designed to support high-speed programming applications, allowing users to signal up to 40 MHz as a master SPI device. It is able to support up to 3 slave selects and features a pipelined architecture that enables command queuing for maximum throughput.

The Promira Serial Platform is an advanced host adapter tool that is capable of signaling up to 80 MHz as an SPI master and 20 MHz as an SPI slave, and up to 3.4 MHz as an I2C host or slave device. It offers multiple other features for advanced programming which include supporting up to 8 slave selects along with support for Dual and Quad I/O.

The Flash Center Software is a software package that allows engineers to quickly erase, program, and verify I2C- and SPI-based EEPROM and Flash memory chips that are interfaced through Total Phase's Aardvark I2C/SPI Host Adapter, Cheetah SPI Host Adapter, and Promira Serial Platform.

Flash Center Software

Unlike other programmers which can take minutes to program a memory device, the Flash Center Software can program the same device in seconds. The Flash Center Software natively supports a wide range of commonly used I2C- and SPI-based Flash memory and EEPROM devices, but it also allows users to easily add new parts if not already supported.

See how to easily program an SPI Flash memory device using the Promira Serial Platform: