Flash memory: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Replaced content with 'ITS STUPID WHY WOULD YOU WANT TO LEARN ABOUT IT'
Tag: blanking
m Reverted edits by 74.134.178.80 (talk) to last revision by Glrx (HG)
Line 1: Line 1:
{{For|the neuropsychological concept related to human memory|Flashbulb memory}}
ITS STUPID WHY WOULD YOU WANT TO LEARN ABOUT IT
{{Use dmy dates|date=May 2012}}
[[Image:USB flash drive.JPG|thumb|right|A [[USB flash drive]]. The chip on the left is the flash memory. The [[flash memory controller|controller]] is on the right.]]
{{Refimprove|date=April 2008}}
{{Memory types}}
'''Flash memory''' is an electronic (i.e. no moving parts) [[non-volatile memory|non-volatile]] [[computer storage]] device that can be electrically erased and reprogrammed.

Flash memory was developed from [[EEPROM]] (electrically erasable programmable read-only memory). There are two main types of flash memory, which are named after the [[NAND gate|NAND]] and [[NOR gate|NOR]] logic gates. The internal characteristics of the individual flash memory cells exhibit characteristics similar to those of the corresponding gates.

Whereas EEPROMs had to be completely erased before being rewritten, NAND type flash memory may be written and read in blocks (or pages) which are generally much smaller than the entire device. The NOR type allows a single [[machine word]] (byte) to be written or read independently.

The NAND type is primarily used in [[main memory]] [[memory card]]s, [[USB flash drive]]s, [[solid-state drive]]s, and similar products, for general storage and transfer of data. The NOR type, which allows true random access and therefore direct code execution, is used as a replacement for the older [[EPROM]] and as an alternative to certain kinds of [[read only memory|ROM]] applications. However, NOR flash memory may emulate ROM primarily at the [[machine code]] level; many digital designs need ROM (or [[programmable logic array|PLA]]) structures for other uses, often at significantly higher speeds than (economical) flash memory may achieve. NAND or NOR flash memory is also often used to store configuration data in numerous digital products, a task previously made possible by EEPROMs or battery-powered [[static RAM]].

Example applications of both types of flash memory include personal computers, [[Personal digital assistant|PDA]]s, digital audio players, [[digital camera]]s, mobile phones, synthesizers, video games, [[scientific instrument]]ation, [[industrial robotics]], [[medical electronics]], and so on. In addition to being non-volatile, flash memory offers fast read [[access time]]s, as fast as [[dynamic RAM]], although not as fast as [[static RAM]] or ROM. Its mechanical shock resistance helps explain its popularity over [[hard disk]]s in portable devices; as does its high durability, being able to withstand high pressure, temperature, immersion in water, etc.<ref>{{cite news| url=http://news.bbc.co.uk/1/hi/england/8510314.stm |work=BBC News | title=Owners of QM2 seabed camera found | date=11 February 2010}}</ref>

Although flash memory is technically a type of EEPROM, the term "EEPROM" is generally used to refer specifically to non-flash EEPROM which is erasable in small blocks, typically bytes. Because erase cycles are slow, the large block sizes used in flash memory erasing give it a significant speed advantage over old-style EEPROM when writing large amounts of data. Flash memory now costs far less than byte-programmable EEPROM and has become the dominant memory type wherever a significant amount of non-volatile, [[Solid state (electronics)|solid state]] storage is needed.

==History==
Flash memory (both [[#NOR memories|NOR]] and [[#NAND memories|NAND]] types) was invented by Dr. [[Fujio Masuoka]] while working for [[Toshiba]] circa 1980.<ref>{{cite web|last=Fulford|first= Benjamin|title=Unsung hero|work=Forbes|date=24 June 2002|accessdate=18 March 2008|url= http://www.forbes.com/global/2002/0624/030.html}}</ref><ref>{{patent|US|4531203|Fujio Masuoka}}</ref> According to Toshiba, the name "flash" was suggested by Dr. Masuoka's colleague, Mr. Shōji Ariizumi, because the erasure process of the memory contents reminded him of the [[flash (photography)|flash of a camera]].{{cn|date=January 2013}} Dr. Masuoka and colleagues presented the invention at the ''[[Institute of Electrical and Electronics Engineers|IEEE]] 1984 International Electron Devices Meeting'' (IEDM) held in San Francisco.<ref>{{cite web |url=http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=1487443 |title=New ultra high density EPROM and flash EEPROM with NAND structure cell |last1=Masuoka |first1=F. |last2=Momodomi |first2=M. |last3=Iwata |first3=Y. |last4=Shirota |first4=R. |year=1987 |work=Electron Devices Meeting, 1987 International |publisher=[[IEEE]] |accessdate=4 January 2013}}</ref>

[[Intel Corporation]] saw the massive potential of the invention and introduced the first commercial NOR type flash chip in 1988.<ref>{{cite web|url=http://www2.electronicproducts.com/NAND_vs_NOR_flash_technology-article-FEBMSY1-FEB2002.aspx|title=NAND vs. NOR flash technology: The designer should weigh the options when using flash memory|last=Tal|first=Arie|month=February|year= 2002|accessdate=31 July 2010}}</ref> NOR-based flash has long erase and write times, but provides full address and data buses, allowing [[random access]] to any memory location. This makes it a suitable replacement for older [[read-only memory]] (ROM) chips, which are used to store program code that rarely needs to be updated, such as a computer's [[BIOS]] or the [[firmware]] of [[set-top box]]es. Its endurance may be from as little as 100 erase cycles for an on-chip flash memory,<ref name='rej09b0138_h8s2357.pdf'>{{cite web | url = http://www.renesas.com/req/product_document_lineup_child.do?REGION_KEY=1&LAYER_KEY=98&PDF_URL=http://documentation.renesas.com/doc/products/mpumcu/rej09b0138_h8s2357.pdf&TKUPDATE=true&APNOTE=true | title = H8S/2357 Group, H8S/2357F-ZTATTM, H8S/2398F-ZTATTM Hardware Manual, Section 19.6.1 | accessdate =23 January 2012 | date = October 2004 | format = PDF | publisher = Renesas | quote = The flash memory can be reprogrammed up to 100 times.}}</ref> to a more typical 10,000 or 100,000 erase cycles, up to 1,000,000 erase cycles.<ref>{{cite web | url = http://www.spansion.com/Support/Application%20Notes/AMD%20DL160%20and%20DL320%20Series%20Flash-%20New%20Densities,%20New%20Features.pdf | title = AMD DL160 and DL320 Series Flash: New Densities, New Features | accessdate =23 January 2012 | date = 2003-17 | format = PDF | publisher = AMD | quote = The devices offer single-power-supply operation (2.7 V to 3.6 V), sector architecture, Embedded Algorithms, high performance, and a 1,000,000 program/erase cycle endurance guarantee.}}</ref> NOR-based flash was the basis of early flash-based removable media; [[CompactFlash]] was originally based on it, though later cards moved to less expensive NAND flash.

{{Refimprove section|date=July 2010}}
It has reduced erase and write times, and requires less chip area per cell, thus allowing greater storage density and lower cost per bit than NOR flash; it also has up to ten times the endurance of NOR flash. However, the I/O interface of NAND flash does not provide a random-access external address bus. Rather, data must be read on a block-wise basis, with typical block sizes of hundreds to thousands of bits. This makes NAND flash unsuitable as a drop-in replacement for program ROM, since most microprocessors and microcontrollers required byte-level random access. In this regard, NAND flash is similar to other secondary [[data storage device]]s, such as hard disks and [[optical media]], and is thus very suitable for use in mass-storage devices, such as [[memory card]]s. The first NAND-based removable media format was [[SmartMedia]] in 1995, and many others have followed, including [[MultiMediaCard]], [[Secure Digital]], [[Memory Stick]] and [[xD-Picture Card]]. A new generation of memory card formats, including [[RS-MMC]], [[miniSD]] and [[microSD]], and [[Intelligent Stick]], feature extremely small form factors. For example, the microSD card has an area of just over 1.5&nbsp;cm<sup>2</sup>, with a thickness of less than 1&nbsp;mm. microSD capacities range from 64&nbsp;MB to 64&nbsp;GB, as of May 2011.<ref name="64gb-support">{{cite web|url=http://www.engadget.com/2011/05/26/kingmax-flaunts-worlds-first-64gb-microsd-card/ |title=Kingmax flaunts world's first 64GB microSD card |date=26 May 2011 |last1=Buckley |first1=Sean |publisher=[[engadget]] |accessdate=4 January 2013}}</ref>

[[Image:Flash cell structure.svg|thumb|right|A flash memory cell.]]

==Principles of operation==
Flash memory stores information in an array of memory cells made from [[floating-gate transistor]]s. In traditional [[single-level cell]] (SLC) devices, each cell stores only one bit of information. Some newer flash memory, known as [[multi-level cell]] (MLC) devices, including [[triple-level cell]] (TLC) devices, can store more than one bit per cell by choosing between multiple levels of electrical charge to apply to the floating gates of its cells.

The floating gate may be conductive (typically [[polycrystalline silicon|polysilicon]] in most kinds of flash memory) or non-conductive (as in [[SONOS]] flash memory).<ref>
[http://www.cypress.com/?rID=2750 "PSoC Designer(TM) Device Selection Guide – AN2209"]: "... The [[PSoC]] ... utilizes a unique Flash process: [[SONOS]]"
</ref>

===Floating-gate transistor===
In flash memory, each memory cell resembles a standard [[MOSFET]], except the transistor has two gates instead of one. On top is the control gate (CG), as in other MOS transistors, but below this there is a floating gate (FG) insulated all around by an oxide layer. The FG is interposed between the CG and the MOSFET channel. Because the FG is electrically isolated by its insulating layer, any electrons placed on it are trapped there and, under normal conditions, will not discharge for many years. When the FG holds a charge, it [[electric field screening|screens]] (partially cancels) the [[electric field]] from the CG, which modifies the [[threshold voltage]] (V<sub>T</sub>) of the cell (more voltage has to be applied to the CG to make the channel conduct). For read-out, a voltage intermediate between the possible threshold voltages is applied to the CG, and the MOSFET channel's conductivity tested (if it's conducting or insulating), which is influenced by the FG. The current flow through the MOSFET channel is sensed and forms a [[binary code]], reproducing the stored data. In a multi-level cell device, which stores more than one [[bit]] per cell, the amount of current flow is sensed (rather than simply its presence or absence), in order to determine more precisely the level of charge on the FG.

[[Image:NOR flash layout.svg|thumb|right| NOR flash memory wiring and structure on silicon]]

===NOR flash===
In [[NOR gate]] flash, each cell has one end connected directly to ground, and the other end connected directly to a bit line.
This arrangement is called "NOR flash" because it acts like a NOR gate: when one of the word lines (connected to the cell's CG) is brought high, the corresponding storage transistor acts to pull the output bit line low. NOR Flash continues to be the technology of choice for embedded applications requiring a discrete non-volatile memory device. The low read latencies characteristic of NOR devices allow for both direct code execution and data storage in a single memory product.<ref>{{cite web|last=Zitlaw|first=Cliff|title=The Future of NOR Flash Memory|url=http://www.eetimes.com/design/memory-design/4215634|work=Memory Designline|publisher=UBM Media|accessdate=3 May 2011}}</ref>

[[Image:Flash-Programming.svg|thumb|left|Programming a NOR memory cell (setting it to logical 1), via hot-electron injection.]]
[[Image:Flash erase.svg|thumb|right|Erasing a NOR memory cell (setting it to logical 0), via quantum tunneling.]]

====Programming====
A single-level NOR flash cell in its default state is logically equivalent to a binary "0" value, because current will flow through the channel under application of an appropriate voltage to the control gate, so that the bitline voltage is pulled down. A NOR flash cell can be programmed, or set to a binary "1" value, by the following procedure:
*an elevated on-voltage (typically >5 V) is applied to the CG
*the channel is now turned on, so electrons can flow from the source to the drain (assuming an NMOS transistor)
*the source-drain current is sufficiently high to cause some high energy electrons to jump through the insulating layer onto the FG, via a process called [[hot carrier injection|hot-electron injection]]

====Erasing====
To erase a NOR flash cell (resetting it to the "0" state), a large voltage ''of the opposite polarity'' is applied between the CG and source terminal, pulling the electrons off the FG through [[quantum tunneling]]. Modern NOR flash memory chips are divided into erase segments (often called blocks or sectors). The erase operation can only be performed on a block-wise basis; all the cells in an erase segment must be erased together. Programming of NOR cells, however, can generally be performed one byte or word at a time.

====Internal charge pumps====
Despite the need for high programming and erasing voltages, virtually all flash chips today require only a single supply voltage, and produce the high voltages via on-chip [[charge pump]]s.

{{clear}}
[[Image:Nand flash structure.svg|thumb|right|NAND flash memory wiring and structure on silicon]]

===NAND flash===
NAND flash also uses [[Floating Gate MOSFET|floating-gate transistor]]s, but they are connected in a way that resembles a [[NAND gate]]: several transistors are connected in series, and only if all word lines are pulled high (above the transistors' V<sub>T</sub>) is the bit line pulled low. These groups are then connected via some additional transistors to a NOR-style bit line array in the same way that single transistors are linked in NOR flash.

Compared to NOR flash, replacing single transistors with serial-linked groups adds an extra level of addressing. Whereas NOR flash might address memory by page then word, NAND flash might address it by page, word and bit. Bit-level addressing suits bit-serial applications (such as hard disk emulation), which access only 1 bit at a time. Execute-In-Place applications, on the other hand, require every bit in a word to be accessed simultaneously. This requires word-level addressing. In any case, both bit and word addressing modes are possible with either NOR or NAND flash.

To read, first the desired group is selected (in the same way that a single transistor is selected from a NOR array). Next, most of the word lines are pulled up above the V<sub>T</sub> of a programmed bit, while one of them is pulled up to just over the V<sub>T</sub> of an erased bit. The series group will conduct (and pull the bit line low) if the selected bit has not been programmed.

Despite the additional transistors, the reduction in ground wires and bit lines allows a denser layout and greater storage capacity per chip. (The ground wires and bit lines are actually much wider than the lines in the diagrams.) In addition, NAND flash is typically permitted to contain a certain number of faults (NOR flash, as is used for a [[BIOS]] ROM, is expected to be fault-free). Manufacturers try to maximize the amount of usable storage by shrinking the size of the transistor below the size where they can be made reliably, to the size where further reductions would increase the number of faults faster than it would increase the total storage available.

==== Writing and erasing ====
NAND flash uses [[tunnel injection]] for writing and [[tunnel release]] for erasing. NAND flash memory forms the core of the removable [[Universal Serial Bus|USB]] storage devices known as [[USB flash drive]]s, as well as most [[memory card]] formats and [[solid-state drive]]s available today.

==Limitations==

===Block erasure===
One limitation of flash memory is that although it can be read or programmed a byte or a word at a time in a random access fashion, it can only be erased a "block" at a time. This generally sets all bits in the block to 1. Starting with a freshly erased block, any location within that block can be programmed. However, once a bit has been set to 0, only by erasing the entire block can it be changed back to 1. In other words, flash memory (specifically NOR flash) offers random-access read and programming operations, but does not offer arbitrary random-access rewrite or erase operations. A location can, however, be rewritten as long as the new value's 0 bits are a superset of the over-written values. For example, a [[nibble]] value may be erased to 1111, then written e.g. as 1110. Successive writes to that nibble can change it to 1010, then 0010, and finally 0000. Essentially, erasure sets all bits to 1, and programming can only clear bits to 0. File systems designed for flash devices can make use of this capability, for example to represent sector metadata.

Although data structures in flash memory cannot be updated in completely general ways, this allows members to be "removed" by marking them as invalid. This technique may need to be modified for [[multi-level cell]] devices, where one memory cell holds more than one bit.

Common flash devices such as [[USB flash drive]]s and memory cards provide only a block-level interface, or flash translation layer (FTL), which writes to a different cell each time to wear-level the device. This prevents incremental writing within a block, however it does not help the device from being prematurely worn out by poorly designed systems. For example, nearly all consumer devices ship formatted with the [[File Allocation Table|MS-FAT]] file system, which pre-dates flash memory, having been designed for DOS and disk media.

===Memory wear===
Another limitation is that flash memory has a finite number of program-erase cycles (typically written as P/E&nbsp;cycles). Most commercially available flash products are guaranteed to withstand around 100,000 P/E&nbsp;cycles, before the wear begins to deteriorate the integrity of the storage.<ref>{{cite journal|url= http://www.snia.org/sites/default/files/SSSI_NAND_Reliability_White_Paper_0.pdf|format= PDF|title=NAND Flash Solid State Storage for the Enterprise, An In-depth Look at Reliability|date= April 2009|accessdate=6 December 2011|author=Jonathan Thatcher, Fusion-io; Tom Coughlin, Coughlin Associates; Jim Handy, Objective-Analysis; Neal Ekker, Texas Memory Systems|publisher=Solid State Storage Initiative (SSSI) of the Storage Network Industry Association (SNIA)}}</ref> [[Micron Technology]] and [[Sun Microsystems]] announced an SLC NAND flash memory chip rated for 1,000,000 P/E&nbsp;cycles on 17 December 2008.<ref>{{cite press release|url=http://investors.micron.com/releasedetail.cfm?ReleaseID=440650|title=Micron Collaborates with Sun Microsystems to Extend Lifespan of Flash-Based Storage, Achieves One Million Write Cycles|date=17 December 2008| publisher=Micron Technology, Inc.}}</ref>

The guaranteed cycle count may apply only to block zero (as is the case with [[Thin small-outline package|TSOP]] NAND devices), or to all blocks (as in NOR). This effect is partially offset in some chip firmware or file system drivers by counting the writes and dynamically remapping blocks in order to spread write operations between sectors; this technique is called [[wear leveling]]. Another approach is to perform write verification and remapping to spare sectors in case of write failure, a technique called [[Bad sector|bad block]] management (BBM). For portable consumer devices, these wearout management techniques typically extend the life of the flash memory beyond the life of the device itself, and some data loss may be acceptable in these applications. For high reliability data storage, however, it is not advisable to use flash memory that would have to go through a large number of programming cycles. This limitation is meaningless for 'read-only' applications such as [[thin clients]] and [[Router (computing)|routers]], which are programmed only once or at most a few times during their lifetimes.

Recently, Taiwanese engineers from Macronix revealed their intention to announce at the 2012 IEEE International Electron Devices Meeting that it has figured out how to improve NAND flash storage read/write cycles from 10,000 to 100 million cycles using a “self-healing” process that uses a flash chip with “onboard heaters that could anneal small groups of memory cells.”<ref name="yahoo1">[http://news.yahoo.com/flash-memory-breakthrough-could-lead-even-more-reliable-124049340.html/ "Flash memory breakthrough could lead to even more reliable data storage."]</ref>

The built-in thermal annealing replaces the usual erase cycle with a local high temperature process that not only erases the stored charge, but also repairs the electron induced stress in the chip, giving write cycles of at least 100 million.<ref>[http://www.theregister.co.uk/2012/12/03/macronix_thermal_annealing_extends_life_of_flash_memory/ "Flash memory made immortal by fiery heat."]</ref>

The result is a chip that can be erased and rewritten on over and over, even when it should theoretically break down. As promising as Macronix’s breakthrough could be for the mobile industry, however, there are no plans for a commercial product to be released any time in the near future.<ref name="yahoo1"/>

===Read disturb===
The method used to read NAND flash memory can cause nearby cells to change over time if the surrounding cells of the block are not rewritten. This is generally in the hundreds of thousands of reads without a rewrite of those cells. The error does not appear when reading the original cell, but shows up when finally reading one of the surrounding cells. If the flash controller does not track the total number of reads across the whole storage device and rewrite the surrounding data periodically as a precaution, a '''read disturb''' error will likely occur, with data loss as a result.<ref>{{cite web |url=http://download.micron.com/pdf/technotes/nand/tn2917.pdf |title=TN-29-17 NAND Flash Design and Use Considerations Introduction |publisher=Micron |date=April 2010 |accessdate=29 July 2011}}</ref><ref name=NEA>{{cite web | url=http://techon.nikkeibp.co.jp/NEA/solutions/0808002.pdf |title=TECHNOLOGY FOR MANAGING NAND FLASH |last=Kawamatus |first=Tatsuya|publisher=Hagiwara sys-com co., LTD |accessdate=1 August 2011}}</ref>

==Low-level access==
The low-level interface to flash memory chips differs from those of other memory types such as [[dynamic random access memory|DRAM]], [[Read-only memory|ROM]], and [[EEPROM]], which support bit-alterability (both zero to one and one to zero) and [[random access]] via externally accessible [[address bus]]es.

NOR memory has an external address bus for reading and programming. For NOR memory, reading and programming are random-access, and unlocking and erasing are block-wise. For NAND memory, reading and programming are page-wise, and unlocking and erasing are block-wise.

===NOR memories===
Reading from NOR flash is similar to reading from random-access memory, provided the address and data bus are mapped correctly. Because of this, most microprocessors can use NOR flash memory as [[execute in place]] (XIP) memory, meaning that programs stored in NOR flash can be executed directly from the NOR flash without needing to be copied into RAM first. NOR flash may be programmed in a random-access manner similar to reading. Programming changes bits from a logical one to a zero. Bits that are already zero are left unchanged. Erasure must happen a block at a time, and resets all the bits in the erased block back to one. Typical block sizes are 64, 128, or 256&nbsp;KB.

Bad block management is a relatively new feature in NOR chips. In older NOR devices not supporting bad block management, the software or [[device driver]] controlling the memory chip must correct for blocks that wear out, or the device will cease to work reliably.

The specific commands used to lock, unlock, program, or erase NOR memories differ for each manufacturer. To avoid needing unique driver software for every device made, special [[Common Flash Memory Interface]] (CFI) commands allow the device to identify itself and its critical operating parameters.

Besides using NOR memory as random-access ROM, you can use it as a storage device, by taking advantage of random-access programming. Some devices offer read-while-write functionality so that code continues to execute even while a program or erase operation is occurring in the background. For sequential data writes, NOR flash chips typically have slow write speeds, compared with NAND flash.

===NAND memories===<!-- This section is linked from [[Centrino]] -->
NAND flash architecture was introduced by Toshiba in 1989.<ref>http://www.tgc.com/dsstar/02/0917/104762.html</ref> These memories are accessed much like [[block size (data storage and transmission)|block devices]], such as hard disks or memory cards. Each block consists of a number of pages. The pages are typically 512<ref name="ieee_cf">
{{Cite news|last=Kim|first=Jesung|last2=Kim|first2=John Min|last3=Noh|first3=Sam H.|last4=Min| first4=Sang Lyul|last5=Cho|first5=Yookun|publication-date=2002-05|title=A Space-Efficient Flash Translation Layer for CompactFlash Systems|periodical=Proceedings of the IEEE|volume=48|issue=2| pages=366–375|url=http://ieeexplore.ieee.org/iel5/30/21778/01010143.pdf?tp=&isnumber=&arnumber=1010143|accessdate=15 August 2008}}</ref> or 2,048 or 4,096 bytes in size. Associated with each page are a few bytes (typically 1/32 of the data size) that can be used for storage of an [[error correcting code]] (ECC) [[checksum]].

Typical block sizes include:
*32 pages of 512+16 bytes each for a block size of 16&nbsp;KB
*64 pages of 2,048+64 bytes each for a block size of 128&nbsp;KB<ref>[http://download.micron.com/pdf/technotes/nand/tn2907.pdf TN-29-07: Small-Block vs. Large-Block NAND flash Devices] Explains 512+16 and 2048+64-byte blocks</ref>
*64 pages of 4,096+128 bytes each for a block size of 256&nbsp;KB<ref>[http://www.nxp.com/documents/application_note/AN10860.pdf AN10860 LPC313x NAND flash data and bad block management] Explains 4096+128-byte blocks.</ref>
*128 pages of 4,096+128 bytes each for a block size of 512&nbsp;KB.

While reading and programming is performed on a page basis, erasure can only be performed on a block basis.<ref name="L Smith">{{cite web |url=https://www.snia.org/sites/default/education/tutorials/2009/spring/solid/JonathanThatcher_NandFlash_SSS_PerformanceV10-nc.pdf |title=NAND Flash Solid State Storage Performance and Capability – an In-depth Look |last=Thatcher |first=Jonathan |date=18 August 2009 |publisher=SNIA |accessdate=2012-08-28}}</ref> Number of Operations (NOPs) is the number of times the pages can be programmed. So far, this number for MLC flash is always one, whereas for SLC flash, it is four.{{Citation needed|date=August 2008}}

NAND devices also require bad block management by the device driver software, or by a separate [[flash memory controller|controller]] chip. SD cards, for example, include controller circuitry to perform bad block management and [[wear leveling]]. When a logical block is accessed by high-level software, it is mapped to a physical block by the device driver or controller. A number of blocks on the flash chip may be set aside for storing mapping tables to deal with bad blocks, or the system may simply check each block at power-up to create a bad block map in RAM. The overall memory capacity gradually shrinks as more blocks are marked as bad.

NAND relies on ECC to compensate for bits that may spontaneously fail during normal device operation. A typical ECC will correct a one-bit error in each 2048 bits (256 bytes) using 22 bits of ECC code, or a one-bit error in each 4096 bits (512 bytes) using 24 bits of ECC code.<ref name="samsung_ecc">{{cite web|url=http://www.elnec.com/sw/samsung_ecc_algorithm_for_256b.pdf| format=PDF|title=Samsung ECC algorithm|accessdate=15 August 2008|publisher=Samsung|date=2008-06}}</ref> If the ECC cannot correct the error during read, it may still detect the error. When doing erase or program operations, the device can detect blocks that fail to program or erase and mark them bad. The data is then written to a different, good block, and the bad block map is updated.

Most NAND devices are shipped from the factory with some bad blocks. These are typically marked according to a specified bad block marking strategy. By allowing some bad blocks, the manufacturers achieve far higher yields than would be possible if all blocks had to be verified good. This significantly reduces NAND flash costs and only slightly decreases the storage capacity of the parts.

When executing software from NAND memories, [[virtual memory]] strategies are often used: memory contents must first be [[paging|paged]] or copied into memory-mapped RAM and executed there (leading to the common combination of NAND + RAM). A [[memory management unit]] (MMU) in the system is helpful, but this can also be accomplished with [[overlay (programming)|overlays]]. For this reason, some systems will use a combination of NOR and NAND memories, where a smaller NOR memory is used as software ROM and a larger NAND memory is partitioned with a file system for use as a non-volatile data storage area.

NAND sacrifices the random-access and execute-in-place advantages of NOR. NAND is best suited to systems requiring high capacity data storage. It offers higher densities, larger capacities, and lower cost. It has faster erases, sequential writes, and sequential reads.

===Standardization===
A group called the [[Open NAND Flash Interface Working Group]] (ONFI) has developed a standardized low-level interface for NAND flash chips. This allows interoperability between conforming NAND devices from different vendors. The ONFI specification version 1.0<ref>{{cite web|url=http://onfi.org/wp-content/uploads/2009/02/onfi_1_0_gold.pdf |format=PDF|title=Open NAND Flash Interface Specification |publisher=Open NAND Flash Interface|date=28 December 2006|accessdate=31 July 2010}}</ref> was released on 28 December 2006. It specifies:
*a standard physical interface ([[pinout]]) for NAND flash in [[Thin small-outline package|TSOP]]-48, WSOP-48, [[Land grid array|LGA]]-52, and [[Ball grid array|BGA]]-63 [[IC package|packages]]
*a standard command set for reading, writing, and erasing NAND flash chips
*a mechanism for self-identification (comparable to the [[serial presence detect]]ion feature of SDRAM memory modules)

The ONFI group is supported by major NAND flash manufacturers, including [[Hynix]], [[Intel]], [[Micron Technology]], and [[Numonyx]], as well as by major manufacturers of devices incorporating NAND flash chips.<ref>A list of ONFi members is available at http://onfi.org/membership/.</ref>

A group of vendors, including [[Intel]], [[Dell]], and [[Microsoft]], formed a [[NVM Express|Non-Volatile Memory Host Controller Interface]] (NVMHCI) Working Group.<ref>{{cite web|url=http://www.intel.com/pressroom/archive/releases/20070530corp.htm|title=Dell, Intel And Microsoft Join Forces To Increase Adoption Of NAND-Based Flash Memory In PC Platforms|publisher=Intel|date=30 May 2007|location=REDMOND, Wash |accessdate=30 November 2008}} {{Dead link|date=September 2010|bot=H3llBot}}</ref> The goal of the group is to provide standard software and hardware programming interfaces for nonvolatile memory subsystems, including the "flash cache" device connected to the [[PCI Express]] bus.

==Distinction between NOR and NAND flash==
NOR and NAND flash differ in two important ways:
*the connections of the individual memory cells are different
*the interface provided for reading and writing the memory is different (NOR allows random-access for reading, NAND allows only page access)
These two are linked by the design choices made in the development of NAND flash. A goal of NAND flash development was to reduce the chip area required to implement a given capacity of flash memory, and thereby to reduce cost per bit and increase maximum chip capacity so that flash memory could compete with magnetic storage devices like hard disks.{{Citation needed|date=October 2009}}

NOR and NAND flash get their names from the structure of the interconnections between memory cells.<ref name="toshibaguide">See pages 5–7 of Toshiba's "NAND Applications Design Guide" under [[#External links|External links]].</ref> In NOR flash, cells are connected in parallel to the bit lines, allowing cells to be read and programmed individually. The parallel connection of cells resembles the parallel connection of transistors in a CMOS NOR gate. In NAND flash, cells are connected in series, resembling a NAND gate. The series connections consume less space than parallel ones, reducing the cost of NAND flash. It does not, by itself, prevent NAND cells from being read and programmed individually.

When NOR flash was developed, it was envisioned as a more economical and conveniently rewritable ROM than contemporary [[EPROM]] and [[EEPROM]] memories. Thus random-access reading circuitry was necessary. However, it was expected that NOR flash ROM would be read much more often than written, so the write circuitry included was fairly slow and could only erase in a block-wise fashion. On the other hand, applications that use flash as a replacement for disk drives do not require word-level write address, which would only add to the complexity and cost unnecessarily.{{Citation needed|date=October 2009}}

Because of the series connection and removal of wordline contacts, a large grid of NAND flash memory cells will occupy perhaps only 60% of the area of equivalent NOR cells<ref name="flash_overview">{{Cite news|last=Pavan|first=Paolo|last2=Bez|first2=Roberto|last3=Olivo| first3=Piero|last4=Zononi|first4=Enrico|publication-date=1997-08|title=Flash Memory Cells – An Overview|periodical=Proceedings of the IEEE|volume=85|issue=8|pages=1248–1271|url= http://ieeexplore.ieee.org/iel3/5/13533/00622505.pdf?tp=&isnumber=&arnumber=622505|accessdate=15 August 2008|doi=10.1109/5.622505|year=1997}}</ref> (assuming the same [[CMOS]] process resolution, for example, 130&nbsp;[[nanometer|nm]], 90&nbsp;nm, or 65&nbsp;nm). NAND flash's designers realized that the area of a NAND chip, and thus the cost, could be further reduced by removing the external address and data bus circuitry. Instead, external devices could communicate with NAND flash via sequential-accessed command and data registers, which would internally retrieve and output the necessary data. This design choice made random-access of NAND flash memory impossible, but the goal of NAND flash was to replace hard disks, not to replace ROMs.

===Write endurance===
The write endurance of SLC floating-gate NOR flash is typically equal to or greater than that of NAND flash, while MLC NOR and NAND flash have similar endurance capabilities. Example Endurance cycle ratings listed in datasheets for NAND and NOR flash are provided.
*SLC NAND flash is typically rated at about 100k cycles (Samsung OneNAND KFW4G16Q2M)
*MLC NAND flash used to be rated at about 5k – 10k cycles (Samsung K9G8G08U0M) but is now typically 1k – 3k cycles
*TLC NAND flash is typically rated at about 1k cycles (Samsung 840)
*SLC floating-gate NOR flash has typical endurance rating of 100k to 1M cycles (Numonyx M58BW 100k; [[Spansion]] S29CD016J 1,000k)
*MLC floating-gate NOR flash has typical endurance rating of 100k cycles (Numonyx J3 flash)

However, by applying certain algorithms and design paradigms such as [[wear leveling]] and [[Write amplification#Over-provisioning|memory over-provisioning]], the endurance of a storage system can be tuned to serve specific requirements.<ref>{{cite web |url=http://www.wdc.com/WDProducts/SSD/whitepapers/en/NAND_Evolution_0812.pdf |title=NAND Evolution and its Effects on Solid State Drive Useable Life |publisher=Western Digital |year=2009 |accessdate=22 April 2012}}</ref>

==Flash file systems==
{{Unreferenced section|date=January 2010}}
{{Main|Flash file system}}

Because of the particular characteristics of flash memory, it is best used with either a controller to perform wear leveling and error correction or specifically designed flash file systems, which spread writes over the media and deal with the long erase times of NOR flash blocks{{Citation needed|date=January 2010}}. The basic concept behind flash file systems is the following: when the flash store is to be updated, the file system will write a new copy of the changed data to a fresh block, remap the file pointers, then erase the old block later when it has time.

In practice, flash file systems are only used for [[memory technology device]]s (MTDs), which are embedded flash memories that do not have a controller. Removable flash [[memory card]]s and [[USB flash drive]]s have built-in controllers to perform wear leveling and error correction so use of a specific flash file system does not add any benefit.{{Citation needed|date=January 2010}}

==Capacity==
Multiple chips are often arrayed to achieve higher capacities<ref>{{cite news|url=http://www.dailycircuitry.com/2012/04/as-follow-up-to-our-flash-vs-dram.html|title=Flash vs DRAM follow-up: chip stacking|publisher=The Daily Circuit|date= 22 April 2012|accessdate=22 April 2012}}</ref> for use in consumer electronic devices such as multimedia players or [[GPS]]s. The capacity of flash chips generally follows [[Moore's Law]] because they are manufactured with many of the same [[integrated circuits]] techniques and equipment.

Consumer flash storage devices typically are advertised with usable sizes expressed as a small integral power of two (2, 4, 8, etc.) and a designation of megabytes or gigabytes (e.g., 512&nbsp;MB, 8&nbsp;GB). "MB" and "GB" here (and on the device packaging) are using "decimal prefixes," meaning 1,000,000 bytes and 1,000,000,000 bytes, respectively. This includes [[solid-state drive|SSD]]s marketed as hard drive replacements, in accordance with traditional [[hard drive]]s, which also use [[SI prefix|decimal prefixes]]. Thus, an SSD marked as "64&nbsp;[[Gigabyte|GB]]" is actually at least 64&nbsp;×&nbsp;1,000<sup>3</sup> bytes (64&nbsp;GB), or often a bit more. Most users will have slightly less capacity than this available for their files, due to the space taken by file system metadata.

The flash memory chips inside them are sized in strict binary multiples, but the actual total capacity of the chips is not usable at the drive interface.
It is considerably larger than the advertised capacity in order to allow for distribution of writes ([[wear leveling]]), for sparing, for [[error correction codes]], and for other [[metadata]] needed by the device's internal firmware.

In 2005, Toshiba and [[SanDisk]] developed a NAND flash chip capable of storing 1&nbsp;GB of data using [[multi-level cell]] (MLC) technology, capable of storing two bits of data per cell. In September 2005, [[Samsung Electronics]] announced that it had developed the world’s first 2&nbsp;GB chip.<ref>{{cite news|first=Anton|last=Shilov|url=http://www.xbitlabs.com/news/memory/display/20050912212649.html|title=Samsung Unveils 2GB Flash Memory Chip|publisher=X-bit labs|date= 12 September 2005|accessdate=30 November 2008}}</ref>

In March 2006, Samsung announced flash hard drives with a capacity of 4&nbsp;GB, essentially the same order of magnitude as smaller laptop hard drives, and in September 2006, Samsung announced an 8&nbsp;GB chip produced using a 40 nm manufacturing process.<ref>{{cite news|first=Wolfgang|last= Gruener|url=http://www.tgdaily.com/content/view/28504/135/|title=Samsung announces 40 nm Flash, predicts 20 nm devices|publisher=TG Daily|date=11 September 2006|accessdate=30 November 2008}}</ref>
In January 2008, Sandisk announced availability of their 16&nbsp;GB MicroSDHC and 32&nbsp;GB SDHC Plus cards.<ref>[http://www.sandisk.com/Corporate/PressRoom/PressReleases/PressRelease.aspx?ID=4079 12 GB MicroSDHC]</ref><ref>[http://www.sandisk.com/Corporate/PressRoom/PressReleases/PressRelease.aspx?ID=4091 32 GB SDHC Plus]</ref>

More recent flash drives (as of 2012) have much greater capacities, holding 64, 128, and 256&nbsp;GB.<ref>http://www.pcworld.com/businesscenter/article/225370/look_out_for_the_256gb_thumb_drive_and_the_128gb_tablet.html; http://techcrunch.com/2009/07/20/kingston-outs-the-first-256gb-flash-drive/ 20 July 2009, Kingston DataTraveler 300 is 256&nbsp;GB.</ref> Some of the larger drives, due to their size, can be used for full computer backups.

There are still flash-chips manufactured with capacities under or around 1&nbsp;MB, e.g., for BIOS-ROMs and embedded applications.

==Transfer rates==
NAND flash memory cards are much faster at reading than writing so it is the maximum read speed that is commonly advertised.

As a chip wears out, its erase/program operations slow down considerably,{{Citation needed|reason=That's a very serious assertion. How much slowdown exactly, if any. Aren't you confusing between chip slowdown vs. slowdown caused flash file system fragmentation.|date=May 2010}} requiring more retries and bad block remapping. Transferring multiple small files, each smaller than the chip-specific block size, could lead to a much lower rate. Access latency also influences performance, but less so than with their hard drive counterpart.

The speed is sometimes quoted in MB/s (megabytes per second), or as a multiple of that of a legacy single speed CD-ROM, such as 60×, 100× or 150×. Here 1× is equivalent to 150&nbsp;kB/s. For example, a 100× memory card gives 150&nbsp;kB/s × 100 = 15,000&nbsp;kB/s = 14.65&nbsp;MB/s.

Performance also depends on the quality of memory controllers. Even when the only change to manufacturing is die-shrink, the absence of an appropriate controller can result in degraded speeds.<ref>[http://www.dailytech.com/article.aspx?newsid=16407 Samsung Confirms 32nm Flash Problems, Working on New SSD Controller]</ref>

==Applications==

===Serial flash===
Serial flash is a small, low-power flash memory that uses a serial interface, typically [[Serial Peripheral Interface Bus]] (SPI), for sequential data access. When incorporated into an [[embedded system]], serial flash requires fewer wires on the [[printed circuit board|PCB]] than parallel flash memories, since it transmits and receives data one bit at a time. This may permit a reduction in board space, power consumption, and total system cost.

There are several reasons why a serial device, with fewer external pins than a parallel device, can significantly reduce overall cost:
*Many [[application-specific integrated circuit|ASICs]] are pad-limited, meaning that the size of the [[die (integrated circuit)|die]] is constrained by the number of [[wire bond]] pads, rather than the complexity and number of gates used for the device logic. Eliminating bond pads thus permits a more compact integrated circuit, on a smaller die; this increases the number of dies that may be fabricated on a [[wafer (electronics)|wafer]], and thus reduces the cost per die.
*Reducing the number of external pins also reduces assembly and [[IC package|packaging]] costs. A serial device may be packaged in a smaller and simpler package than a parallel device.
*Smaller and lower pin-count packages occupy less PCB area.
*Lower pin-count devices simplify PCB [[routing (EDA)|routing]].

There are two major SPI flash types. The first type is characterized by small pages and one or more internal SRAM page buffers allowing a complete page to be read to the buffer, partially modified, and then written back (for example, the Atmel [[AT45]] ''DataFlash'' or the [[Micron Technology]] Page Erase NOR Flash). The second type has larger sectors. The smallest sectors typically found in an SPI flash are 4&nbsp;kB, but they can be as large as 64&nbsp;kB. Since the SPI flash lacks an internal SRAM buffer, the complete page must be read out and modified before being written back, making it slow to manage. ''SPI flash'' is cheaper than ''DataFlash'' and is therefore a good choice when the application is code shadowing.

The two types are not easily exchangeable, since they do not have the same pinout, and the command sets are incompatible.

====Firmware storage====
With the increasing speed of modern CPUs, parallel flash devices are often much slower than the memory bus of the computer they are connected to. Conversely, modern [[Static RAM|SRAM]] offers access times below 10&nbsp;[[nanosecond|ns]], while [[DDR2 SDRAM|DDR2]] [[SDRAM]] offers access times below 20&nbsp;ns. Because of this, it is often desirable to [[shadow RAM|shadow]] code stored in flash into RAM; that is, the code is copied from flash into RAM before execution, so that the CPU may access it at full speed. Device [[firmware]] may be stored in a serial flash device, and then copied into SDRAM or SRAM when the device is powered-up.<ref>Many serial flash devices implement a ''bulk read'' mode and incorporate an internal address counter, so that it is trivial to configure them to transfer their entire contents to RAM on power-up. When clocked at 50 MHz, for example, a serial flash could transfer a 64 [[Mbit]] firmware image in less than two seconds.</ref> Using an external serial flash device rather than on-chip flash removes the need for significant process compromise (a process that is good for high-speed logic is generally not good for flash and vice-versa). Once it is decided to read the firmware in as one big block it is common to add compression to allow a smaller flash chip to be used. Typical applications for serial flash include storing firmware for [[hard drive]]s, [[Ethernet]] controllers, [[DSL modem]]s, [[wireless card|wireless network devices]], etc.

===Flash memory as a replacement for hard drives===
{{Main|Solid-state drive}}

One more recent application for flash memory is as a replacement for [[hard disk]]s. Flash memory does not have the mechanical limitations and latencies of hard drives, so a [[solid-state drive]] (SSD) is attractive when considering speed, noise, power consumption, and reliability. Flash drives are gaining traction as mobile device secondary storage devices; they are also used as substitutes for hard drives in high-performance desktop computers and some servers with [[RAID]] and [[Storage area network|SAN]] architectures.

There remain some aspects of flash-based SSDs that make them unattractive. The cost per gigabyte of flash memory remains significantly higher than that of hard disks.<ref>{{cite web|url= http://elitepcbuilding.com/ssd-vs-hdd |title=SSD vs. HDD |author=Lyth0s |publisher=elitepcbuilding.com |date=17 March 2011|accessdate=11 July 2011}}</ref> Also flash memory has a finite number of P/E&nbsp;cycles, but this seems to be currently under control since warranties on flash-based SSDs are approaching those of current hard drives.<ref>{{cite web|url= http://www.storagesearch.com/bitmicro-art1.html|title=Flash Solid State Disks – Inferior Technology or Closet Superstar?|publisher=STORAGEsearch|accessdate=30 November 2008}}</ref>

In June 2006, [[Samsung Electronics]] released the first flash-memory based PCs, the Q1-SSD and Q30-SSD, both of which used 32&nbsp;GB SSDs, and were at least initially available only in [[South Korea]].<ref>{{cite web|url=http://www.samsung.com/he/presscenter/pressrelease/pressrelease_20060524_0000257996.asp|title=Samsung Electronics Launches the World’s First PCs with NAND Flash-based Solid State Disk|work=Press Release|publisher=Samsung|date=24 May 2006| accessdate=30 November 2008}}</ref>

A solid-state drive was offered as an option with the first [[Macbook Air]] introduced in 2008, and from 2010 onwards, all Macbook Air laptops shipped with an SSD. Starting in late 2011, as part of [[Intel]]'s [[Ultrabook]] initiative, an increasing number of ultra thin laptops are being shipped with SSDs standard.

There are also hybrid techniques such as [[hybrid drive]] and [[ReadyBoost]] that attempt to combine the advantages of both technologies, using flash as a high-speed non-volatile [[cache (computing)|cache]] for files on the disk that are often referenced, but rarely modified, such as application and operating system [[executable]] files.

=== Flash memory as RAM ===
As of 2012, there are attempts to use flash memory as the main computer memory, [[Dynamic random-access memory|DRAM]].<ref>[http://www.tomshardware.com/news/fusio-io-flash-ssdalloc-memory-ram,16352.html Douglas Perry (2012)] Princeton: Replacing RAM with Flash Can Save Massive Power.</ref> In this role, it is slower than conventional DRAM, but uses up to ten times less power and is also significantly cheaper. The source shows photo of the device that looks like PCI-Express card, supported by specialized driver.

==Industry==
One source states that, in 2008, the flash memory industry includes about US$9.1 billion in production and sales. Other sources put the flash memory market at a size of more than US$20 billion in 2006, accounting for more than eight percent of the overall semiconductor market and more than 34 percent of the total semiconductor memory market.<ref>{{cite journal|last=Yinug|first=Christopher Falan|year=2007| month=July|title=The Rise of the Flash Memory Market: Its Impact on Firm Behavior and Global Semiconductor Trade Patterns|journal=Journal of International Commerce and Economics|url= http://www.usitc.gov/journal/Final_falan_article1.pdf|format=PDF|accessdate=19 April 2008 |archiveurl = http://web.archive.org/web/20080529180622/http://www.usitc.gov/journal/Final_falan_article1.pdf <!-- Bot retrieved archive --> |archivedate = 29 May 2008}}</ref>

==Flash scalability==
[[Image:NAND scaling timeline.png|right|thumb|350px|The aggressive trend of the shrinking process design rule or technology node in NAND flash memory technology effectively accelerates Moore's Law.]]

Due to its relatively simple structure and high demand for higher capacity, NAND flash memory is the most aggressively scaled technology among electronic devices. The heavy competition among the top few manufacturers only adds to the aggressiveness in shrinking the design rule or process technology node.<ref name=NEA/> While the expected shrink timeline is a factor of two every three years per original version of [[Moore's law]], this has recently been accelerated in the case of NAND flash to a factor of two every two years. In November 2012, Samsung announced that it had started production of 10 nm scale chips, which implies a minimum geometry of between 10 and 19 nm.<ref>Humphries, Matthew (15 November 2012).[http://www.geek.com/articles/chips/samsung-starts-producing-10nm-nand-memory-chips-20121115/ "Samsung starts producing 10nm NAND memory chips"] Geek.com.Retrieved 18 November 2012.</ref><ref>Clarke, Peter (20 November 2012). [http://www.eetimes.com/design/memory-design/4401791/Samsung-takes-NAND-memory-below-20-nm "Samsung takes NAND memory below 20-nm"] eetimes.com. Retrieved 21 December 2012.</ref>

As the feature size of flash memory cells reaches the minimum limit, further flash density increases will be driven by greater levels of MLC, possibly 3-D stacking of transistors, and improvements to the manufacturing process. The decrease in endurance and increase in uncorrectable bit error rates that accompany feature size shrinking can be compensated by improved error correction mechanisms.<ref>{{cite news|first=Anand|last=Lal Shimpi|url=http://www.anandtech.com/show/4043/micron-announces-clearnand-25nm-with-ecc|title=Micron's ClearNAND: 25nm + ECC, Combats Increasing Error Rates|publisher=Anandtech|date= 2 December 2010|accessdate=2 December 2010}}</ref> Even with these advances, it may be impossible to economically scale flash to smaller and smaller dimensions. Many promising new technologies (such as [[Ferroelectric RAM|FeRAM]], [[Magnetoresistive Random Access Memory|MRAM]], [[Programmable metallization cell|PMC]], [[Phase-change memory|PCM]], and others) are under investigation and development as possible more scalable replacements for flash.<ref name="future">{{Cite book|last=Kim|first=Kinam|last2=Koh|first2=Gwan-Hyeob|publication-date=2004-05|title=Future Memory Technology including Emerging New Memories|publisher=Proceedings of the 24th International Conference on Microelectronics|place=Serbia and Montenegro|date=16 May 2004|pages=377–384|url= http://ieeexplore.ieee.org/iel5/9193/29143/01314646.pdf?tp=&isnumber=&arnumber=1314646|accessdate=15 August 2008}}</ref>

==See also==
*[[List of flash file systems]]
*[[Secure USB drive]]
*[[Open NAND Flash Interface Working Group]]
*[[Write amplification]]

==References==
{{Reflist|30em}}

==External links==
*[http://www.photonics.com/Content/ReadArticle.aspx?ArticleID=22453 New Pulse Measurement System For Semiconductor Device Characterization]
*[http://news.thomasnet.com/fullstory/547012 Semiconductor Characterization System has diverse functions]
*[http://139.138.48.19/pdf/NAND/Toshiba/NandDesignGuide.pdf.pdf NAND Flash Applications Design Guide by Toshiba, April 2003 v. 1.0]
*[http://www.eetimes.com/design/memory-design/4211387/Understanding-and-selecting-higher-performance-NAND-architectures?Ecosystem=memory-design Understanding and selecting higher performance NAND architectures]
*[http://blip.tv/linuxconfau/how-flash-storage-works-4738604 How flash storage works presentation by David Woodhouse from Intel]
{{Solid-state Drive}}

{{DEFAULTSORT:Flash Memory}}
[[Category:Computer memory]]
[[Category:Non-volatile memory]]
[[Category:Solid-state computer storage media]]

[[ar:ذاكرة وميضية]]
[[bg:Флаш-памет]]
[[bs:Flash memorija]]
[[ca:Memòria flaix]]
[[cs:Flash paměť]]
[[da:Flash-lager]]
[[de:Flash-Speicher]]
[[et:Välkmälu]]
[[es:Memoria flash]]
[[eo:Fulmomemoro]]
[[fa:حافظه فلش]]
[[fr:Mémoire flash]]
[[ko:플래시 메모리]]
[[hi:फ्लैश मेमोरी]]
[[hr:Flash memorija]]
[[id:Memori kilat]]
[[ia:Memoria flash]]
[[it:Memoria flash]]
[[he:זיכרון הבזק]]
[[kk:Flash жады]]
[[la:Memoria fulgurea]]
[[lv:Zibatmiņa]]
[[lt:Atmintukas]]
[[hu:Flashmemória]]
[[ms:Ingatan kilat]]
[[nl:Flashgeheugen]]
[[ja:フラッシュメモリ]]
[[no:Flashminne]]
[[mhr:Flash-шарныш]]
[[pl:Pamięć flash]]
[[pt:Memória flash]]
[[ro:Memorie flash]]
[[ru:Флеш-память]]
[[sq:Kujtesa rrufe]]
[[simple:Flash memory]]
[[sk:Flash pamäť]]
[[sl:Bliskovni pomnilnik]]
[[sr:Флеш меморија]]
[[fi:Flash-muisti]]
[[sv:Flashminne]]
[[ta:திடீர் நினைவகம்]]
[[th:หน่วยความจำแฟลช]]
[[tr:Flaş bellek]]
[[uk:Флеш-пам'ять]]
[[ur:لمعی حافظہ]]
[[vi:Bộ nhớ flash]]
[[zh:闪存]]

Revision as of 01:25, 31 January 2013

A USB flash drive. The chip on the left is the flash memory. The controller is on the right.

Flash memory is an electronic (i.e. no moving parts) non-volatile computer storage device that can be electrically erased and reprogrammed.

Flash memory was developed from EEPROM (electrically erasable programmable read-only memory). There are two main types of flash memory, which are named after the NAND and NOR logic gates. The internal characteristics of the individual flash memory cells exhibit characteristics similar to those of the corresponding gates.

Whereas EEPROMs had to be completely erased before being rewritten, NAND type flash memory may be written and read in blocks (or pages) which are generally much smaller than the entire device. The NOR type allows a single machine word (byte) to be written or read independently.

The NAND type is primarily used in main memory memory cards, USB flash drives, solid-state drives, and similar products, for general storage and transfer of data. The NOR type, which allows true random access and therefore direct code execution, is used as a replacement for the older EPROM and as an alternative to certain kinds of ROM applications. However, NOR flash memory may emulate ROM primarily at the machine code level; many digital designs need ROM (or PLA) structures for other uses, often at significantly higher speeds than (economical) flash memory may achieve. NAND or NOR flash memory is also often used to store configuration data in numerous digital products, a task previously made possible by EEPROMs or battery-powered static RAM.

Example applications of both types of flash memory include personal computers, PDAs, digital audio players, digital cameras, mobile phones, synthesizers, video games, scientific instrumentation, industrial robotics, medical electronics, and so on. In addition to being non-volatile, flash memory offers fast read access times, as fast as dynamic RAM, although not as fast as static RAM or ROM. Its mechanical shock resistance helps explain its popularity over hard disks in portable devices; as does its high durability, being able to withstand high pressure, temperature, immersion in water, etc.[1]

Although flash memory is technically a type of EEPROM, the term "EEPROM" is generally used to refer specifically to non-flash EEPROM which is erasable in small blocks, typically bytes. Because erase cycles are slow, the large block sizes used in flash memory erasing give it a significant speed advantage over old-style EEPROM when writing large amounts of data. Flash memory now costs far less than byte-programmable EEPROM and has become the dominant memory type wherever a significant amount of non-volatile, solid state storage is needed.

History

Flash memory (both NOR and NAND types) was invented by Dr. Fujio Masuoka while working for Toshiba circa 1980.[2][3] According to Toshiba, the name "flash" was suggested by Dr. Masuoka's colleague, Mr. Shōji Ariizumi, because the erasure process of the memory contents reminded him of the flash of a camera.[citation needed] Dr. Masuoka and colleagues presented the invention at the IEEE 1984 International Electron Devices Meeting (IEDM) held in San Francisco.[4]

Intel Corporation saw the massive potential of the invention and introduced the first commercial NOR type flash chip in 1988.[5] NOR-based flash has long erase and write times, but provides full address and data buses, allowing random access to any memory location. This makes it a suitable replacement for older read-only memory (ROM) chips, which are used to store program code that rarely needs to be updated, such as a computer's BIOS or the firmware of set-top boxes. Its endurance may be from as little as 100 erase cycles for an on-chip flash memory,[6] to a more typical 10,000 or 100,000 erase cycles, up to 1,000,000 erase cycles.[7] NOR-based flash was the basis of early flash-based removable media; CompactFlash was originally based on it, though later cards moved to less expensive NAND flash.

It has reduced erase and write times, and requires less chip area per cell, thus allowing greater storage density and lower cost per bit than NOR flash; it also has up to ten times the endurance of NOR flash. However, the I/O interface of NAND flash does not provide a random-access external address bus. Rather, data must be read on a block-wise basis, with typical block sizes of hundreds to thousands of bits. This makes NAND flash unsuitable as a drop-in replacement for program ROM, since most microprocessors and microcontrollers required byte-level random access. In this regard, NAND flash is similar to other secondary data storage devices, such as hard disks and optical media, and is thus very suitable for use in mass-storage devices, such as memory cards. The first NAND-based removable media format was SmartMedia in 1995, and many others have followed, including MultiMediaCard, Secure Digital, Memory Stick and xD-Picture Card. A new generation of memory card formats, including RS-MMC, miniSD and microSD, and Intelligent Stick, feature extremely small form factors. For example, the microSD card has an area of just over 1.5 cm2, with a thickness of less than 1 mm. microSD capacities range from 64 MB to 64 GB, as of May 2011.[8]

A flash memory cell.

Principles of operation

Flash memory stores information in an array of memory cells made from floating-gate transistors. In traditional single-level cell (SLC) devices, each cell stores only one bit of information. Some newer flash memory, known as multi-level cell (MLC) devices, including triple-level cell (TLC) devices, can store more than one bit per cell by choosing between multiple levels of electrical charge to apply to the floating gates of its cells.

The floating gate may be conductive (typically polysilicon in most kinds of flash memory) or non-conductive (as in SONOS flash memory).[9]

Floating-gate transistor

In flash memory, each memory cell resembles a standard MOSFET, except the transistor has two gates instead of one. On top is the control gate (CG), as in other MOS transistors, but below this there is a floating gate (FG) insulated all around by an oxide layer. The FG is interposed between the CG and the MOSFET channel. Because the FG is electrically isolated by its insulating layer, any electrons placed on it are trapped there and, under normal conditions, will not discharge for many years. When the FG holds a charge, it screens (partially cancels) the electric field from the CG, which modifies the threshold voltage (VT) of the cell (more voltage has to be applied to the CG to make the channel conduct). For read-out, a voltage intermediate between the possible threshold voltages is applied to the CG, and the MOSFET channel's conductivity tested (if it's conducting or insulating), which is influenced by the FG. The current flow through the MOSFET channel is sensed and forms a binary code, reproducing the stored data. In a multi-level cell device, which stores more than one bit per cell, the amount of current flow is sensed (rather than simply its presence or absence), in order to determine more precisely the level of charge on the FG.

NOR flash memory wiring and structure on silicon

NOR flash

In NOR gate flash, each cell has one end connected directly to ground, and the other end connected directly to a bit line. This arrangement is called "NOR flash" because it acts like a NOR gate: when one of the word lines (connected to the cell's CG) is brought high, the corresponding storage transistor acts to pull the output bit line low. NOR Flash continues to be the technology of choice for embedded applications requiring a discrete non-volatile memory device. The low read latencies characteristic of NOR devices allow for both direct code execution and data storage in a single memory product.[10]

Programming a NOR memory cell (setting it to logical 1), via hot-electron injection.
Erasing a NOR memory cell (setting it to logical 0), via quantum tunneling.

Programming

A single-level NOR flash cell in its default state is logically equivalent to a binary "0" value, because current will flow through the channel under application of an appropriate voltage to the control gate, so that the bitline voltage is pulled down. A NOR flash cell can be programmed, or set to a binary "1" value, by the following procedure:

  • an elevated on-voltage (typically >5 V) is applied to the CG
  • the channel is now turned on, so electrons can flow from the source to the drain (assuming an NMOS transistor)
  • the source-drain current is sufficiently high to cause some high energy electrons to jump through the insulating layer onto the FG, via a process called hot-electron injection

Erasing

To erase a NOR flash cell (resetting it to the "0" state), a large voltage of the opposite polarity is applied between the CG and source terminal, pulling the electrons off the FG through quantum tunneling. Modern NOR flash memory chips are divided into erase segments (often called blocks or sectors). The erase operation can only be performed on a block-wise basis; all the cells in an erase segment must be erased together. Programming of NOR cells, however, can generally be performed one byte or word at a time.

Internal charge pumps

Despite the need for high programming and erasing voltages, virtually all flash chips today require only a single supply voltage, and produce the high voltages via on-chip charge pumps.

NAND flash memory wiring and structure on silicon

NAND flash

NAND flash also uses floating-gate transistors, but they are connected in a way that resembles a NAND gate: several transistors are connected in series, and only if all word lines are pulled high (above the transistors' VT) is the bit line pulled low. These groups are then connected via some additional transistors to a NOR-style bit line array in the same way that single transistors are linked in NOR flash.

Compared to NOR flash, replacing single transistors with serial-linked groups adds an extra level of addressing. Whereas NOR flash might address memory by page then word, NAND flash might address it by page, word and bit. Bit-level addressing suits bit-serial applications (such as hard disk emulation), which access only 1 bit at a time. Execute-In-Place applications, on the other hand, require every bit in a word to be accessed simultaneously. This requires word-level addressing. In any case, both bit and word addressing modes are possible with either NOR or NAND flash.

To read, first the desired group is selected (in the same way that a single transistor is selected from a NOR array). Next, most of the word lines are pulled up above the VT of a programmed bit, while one of them is pulled up to just over the VT of an erased bit. The series group will conduct (and pull the bit line low) if the selected bit has not been programmed.

Despite the additional transistors, the reduction in ground wires and bit lines allows a denser layout and greater storage capacity per chip. (The ground wires and bit lines are actually much wider than the lines in the diagrams.) In addition, NAND flash is typically permitted to contain a certain number of faults (NOR flash, as is used for a BIOS ROM, is expected to be fault-free). Manufacturers try to maximize the amount of usable storage by shrinking the size of the transistor below the size where they can be made reliably, to the size where further reductions would increase the number of faults faster than it would increase the total storage available.

Writing and erasing

NAND flash uses tunnel injection for writing and tunnel release for erasing. NAND flash memory forms the core of the removable USB storage devices known as USB flash drives, as well as most memory card formats and solid-state drives available today.

Limitations

Block erasure

One limitation of flash memory is that although it can be read or programmed a byte or a word at a time in a random access fashion, it can only be erased a "block" at a time. This generally sets all bits in the block to 1. Starting with a freshly erased block, any location within that block can be programmed. However, once a bit has been set to 0, only by erasing the entire block can it be changed back to 1. In other words, flash memory (specifically NOR flash) offers random-access read and programming operations, but does not offer arbitrary random-access rewrite or erase operations. A location can, however, be rewritten as long as the new value's 0 bits are a superset of the over-written values. For example, a nibble value may be erased to 1111, then written e.g. as 1110. Successive writes to that nibble can change it to 1010, then 0010, and finally 0000. Essentially, erasure sets all bits to 1, and programming can only clear bits to 0. File systems designed for flash devices can make use of this capability, for example to represent sector metadata.

Although data structures in flash memory cannot be updated in completely general ways, this allows members to be "removed" by marking them as invalid. This technique may need to be modified for multi-level cell devices, where one memory cell holds more than one bit.

Common flash devices such as USB flash drives and memory cards provide only a block-level interface, or flash translation layer (FTL), which writes to a different cell each time to wear-level the device. This prevents incremental writing within a block, however it does not help the device from being prematurely worn out by poorly designed systems. For example, nearly all consumer devices ship formatted with the MS-FAT file system, which pre-dates flash memory, having been designed for DOS and disk media.

Memory wear

Another limitation is that flash memory has a finite number of program-erase cycles (typically written as P/E cycles). Most commercially available flash products are guaranteed to withstand around 100,000 P/E cycles, before the wear begins to deteriorate the integrity of the storage.[11] Micron Technology and Sun Microsystems announced an SLC NAND flash memory chip rated for 1,000,000 P/E cycles on 17 December 2008.[12]

The guaranteed cycle count may apply only to block zero (as is the case with TSOP NAND devices), or to all blocks (as in NOR). This effect is partially offset in some chip firmware or file system drivers by counting the writes and dynamically remapping blocks in order to spread write operations between sectors; this technique is called wear leveling. Another approach is to perform write verification and remapping to spare sectors in case of write failure, a technique called bad block management (BBM). For portable consumer devices, these wearout management techniques typically extend the life of the flash memory beyond the life of the device itself, and some data loss may be acceptable in these applications. For high reliability data storage, however, it is not advisable to use flash memory that would have to go through a large number of programming cycles. This limitation is meaningless for 'read-only' applications such as thin clients and routers, which are programmed only once or at most a few times during their lifetimes.

Recently, Taiwanese engineers from Macronix revealed their intention to announce at the 2012 IEEE International Electron Devices Meeting that it has figured out how to improve NAND flash storage read/write cycles from 10,000 to 100 million cycles using a “self-healing” process that uses a flash chip with “onboard heaters that could anneal small groups of memory cells.”[13]

The built-in thermal annealing replaces the usual erase cycle with a local high temperature process that not only erases the stored charge, but also repairs the electron induced stress in the chip, giving write cycles of at least 100 million.[14]

The result is a chip that can be erased and rewritten on over and over, even when it should theoretically break down. As promising as Macronix’s breakthrough could be for the mobile industry, however, there are no plans for a commercial product to be released any time in the near future.[13]

Read disturb

The method used to read NAND flash memory can cause nearby cells to change over time if the surrounding cells of the block are not rewritten. This is generally in the hundreds of thousands of reads without a rewrite of those cells. The error does not appear when reading the original cell, but shows up when finally reading one of the surrounding cells. If the flash controller does not track the total number of reads across the whole storage device and rewrite the surrounding data periodically as a precaution, a read disturb error will likely occur, with data loss as a result.[15][16]

Low-level access

The low-level interface to flash memory chips differs from those of other memory types such as DRAM, ROM, and EEPROM, which support bit-alterability (both zero to one and one to zero) and random access via externally accessible address buses.

NOR memory has an external address bus for reading and programming. For NOR memory, reading and programming are random-access, and unlocking and erasing are block-wise. For NAND memory, reading and programming are page-wise, and unlocking and erasing are block-wise.

NOR memories

Reading from NOR flash is similar to reading from random-access memory, provided the address and data bus are mapped correctly. Because of this, most microprocessors can use NOR flash memory as execute in place (XIP) memory, meaning that programs stored in NOR flash can be executed directly from the NOR flash without needing to be copied into RAM first. NOR flash may be programmed in a random-access manner similar to reading. Programming changes bits from a logical one to a zero. Bits that are already zero are left unchanged. Erasure must happen a block at a time, and resets all the bits in the erased block back to one. Typical block sizes are 64, 128, or 256 KB.

Bad block management is a relatively new feature in NOR chips. In older NOR devices not supporting bad block management, the software or device driver controlling the memory chip must correct for blocks that wear out, or the device will cease to work reliably.

The specific commands used to lock, unlock, program, or erase NOR memories differ for each manufacturer. To avoid needing unique driver software for every device made, special Common Flash Memory Interface (CFI) commands allow the device to identify itself and its critical operating parameters.

Besides using NOR memory as random-access ROM, you can use it as a storage device, by taking advantage of random-access programming. Some devices offer read-while-write functionality so that code continues to execute even while a program or erase operation is occurring in the background. For sequential data writes, NOR flash chips typically have slow write speeds, compared with NAND flash.

NAND memories

NAND flash architecture was introduced by Toshiba in 1989.[17] These memories are accessed much like block devices, such as hard disks or memory cards. Each block consists of a number of pages. The pages are typically 512[18] or 2,048 or 4,096 bytes in size. Associated with each page are a few bytes (typically 1/32 of the data size) that can be used for storage of an error correcting code (ECC) checksum.

Typical block sizes include:

  • 32 pages of 512+16 bytes each for a block size of 16 KB
  • 64 pages of 2,048+64 bytes each for a block size of 128 KB[19]
  • 64 pages of 4,096+128 bytes each for a block size of 256 KB[20]
  • 128 pages of 4,096+128 bytes each for a block size of 512 KB.

While reading and programming is performed on a page basis, erasure can only be performed on a block basis.[21] Number of Operations (NOPs) is the number of times the pages can be programmed. So far, this number for MLC flash is always one, whereas for SLC flash, it is four.[citation needed]

NAND devices also require bad block management by the device driver software, or by a separate controller chip. SD cards, for example, include controller circuitry to perform bad block management and wear leveling. When a logical block is accessed by high-level software, it is mapped to a physical block by the device driver or controller. A number of blocks on the flash chip may be set aside for storing mapping tables to deal with bad blocks, or the system may simply check each block at power-up to create a bad block map in RAM. The overall memory capacity gradually shrinks as more blocks are marked as bad.

NAND relies on ECC to compensate for bits that may spontaneously fail during normal device operation. A typical ECC will correct a one-bit error in each 2048 bits (256 bytes) using 22 bits of ECC code, or a one-bit error in each 4096 bits (512 bytes) using 24 bits of ECC code.[22] If the ECC cannot correct the error during read, it may still detect the error. When doing erase or program operations, the device can detect blocks that fail to program or erase and mark them bad. The data is then written to a different, good block, and the bad block map is updated.

Most NAND devices are shipped from the factory with some bad blocks. These are typically marked according to a specified bad block marking strategy. By allowing some bad blocks, the manufacturers achieve far higher yields than would be possible if all blocks had to be verified good. This significantly reduces NAND flash costs and only slightly decreases the storage capacity of the parts.

When executing software from NAND memories, virtual memory strategies are often used: memory contents must first be paged or copied into memory-mapped RAM and executed there (leading to the common combination of NAND + RAM). A memory management unit (MMU) in the system is helpful, but this can also be accomplished with overlays. For this reason, some systems will use a combination of NOR and NAND memories, where a smaller NOR memory is used as software ROM and a larger NAND memory is partitioned with a file system for use as a non-volatile data storage area.

NAND sacrifices the random-access and execute-in-place advantages of NOR. NAND is best suited to systems requiring high capacity data storage. It offers higher densities, larger capacities, and lower cost. It has faster erases, sequential writes, and sequential reads.

Standardization

A group called the Open NAND Flash Interface Working Group (ONFI) has developed a standardized low-level interface for NAND flash chips. This allows interoperability between conforming NAND devices from different vendors. The ONFI specification version 1.0[23] was released on 28 December 2006. It specifies:

  • a standard physical interface (pinout) for NAND flash in TSOP-48, WSOP-48, LGA-52, and BGA-63 packages
  • a standard command set for reading, writing, and erasing NAND flash chips
  • a mechanism for self-identification (comparable to the serial presence detection feature of SDRAM memory modules)

The ONFI group is supported by major NAND flash manufacturers, including Hynix, Intel, Micron Technology, and Numonyx, as well as by major manufacturers of devices incorporating NAND flash chips.[24]

A group of vendors, including Intel, Dell, and Microsoft, formed a Non-Volatile Memory Host Controller Interface (NVMHCI) Working Group.[25] The goal of the group is to provide standard software and hardware programming interfaces for nonvolatile memory subsystems, including the "flash cache" device connected to the PCI Express bus.

Distinction between NOR and NAND flash

NOR and NAND flash differ in two important ways:

  • the connections of the individual memory cells are different
  • the interface provided for reading and writing the memory is different (NOR allows random-access for reading, NAND allows only page access)

These two are linked by the design choices made in the development of NAND flash. A goal of NAND flash development was to reduce the chip area required to implement a given capacity of flash memory, and thereby to reduce cost per bit and increase maximum chip capacity so that flash memory could compete with magnetic storage devices like hard disks.[citation needed]

NOR and NAND flash get their names from the structure of the interconnections between memory cells.[26] In NOR flash, cells are connected in parallel to the bit lines, allowing cells to be read and programmed individually. The parallel connection of cells resembles the parallel connection of transistors in a CMOS NOR gate. In NAND flash, cells are connected in series, resembling a NAND gate. The series connections consume less space than parallel ones, reducing the cost of NAND flash. It does not, by itself, prevent NAND cells from being read and programmed individually.

When NOR flash was developed, it was envisioned as a more economical and conveniently rewritable ROM than contemporary EPROM and EEPROM memories. Thus random-access reading circuitry was necessary. However, it was expected that NOR flash ROM would be read much more often than written, so the write circuitry included was fairly slow and could only erase in a block-wise fashion. On the other hand, applications that use flash as a replacement for disk drives do not require word-level write address, which would only add to the complexity and cost unnecessarily.[citation needed]

Because of the series connection and removal of wordline contacts, a large grid of NAND flash memory cells will occupy perhaps only 60% of the area of equivalent NOR cells[27] (assuming the same CMOS process resolution, for example, 130 nm, 90 nm, or 65 nm). NAND flash's designers realized that the area of a NAND chip, and thus the cost, could be further reduced by removing the external address and data bus circuitry. Instead, external devices could communicate with NAND flash via sequential-accessed command and data registers, which would internally retrieve and output the necessary data. This design choice made random-access of NAND flash memory impossible, but the goal of NAND flash was to replace hard disks, not to replace ROMs.

Write endurance

The write endurance of SLC floating-gate NOR flash is typically equal to or greater than that of NAND flash, while MLC NOR and NAND flash have similar endurance capabilities. Example Endurance cycle ratings listed in datasheets for NAND and NOR flash are provided.

  • SLC NAND flash is typically rated at about 100k cycles (Samsung OneNAND KFW4G16Q2M)
  • MLC NAND flash used to be rated at about 5k – 10k cycles (Samsung K9G8G08U0M) but is now typically 1k – 3k cycles
  • TLC NAND flash is typically rated at about 1k cycles (Samsung 840)
  • SLC floating-gate NOR flash has typical endurance rating of 100k to 1M cycles (Numonyx M58BW 100k; Spansion S29CD016J 1,000k)
  • MLC floating-gate NOR flash has typical endurance rating of 100k cycles (Numonyx J3 flash)

However, by applying certain algorithms and design paradigms such as wear leveling and memory over-provisioning, the endurance of a storage system can be tuned to serve specific requirements.[28]

Flash file systems

Because of the particular characteristics of flash memory, it is best used with either a controller to perform wear leveling and error correction or specifically designed flash file systems, which spread writes over the media and deal with the long erase times of NOR flash blocks[citation needed]. The basic concept behind flash file systems is the following: when the flash store is to be updated, the file system will write a new copy of the changed data to a fresh block, remap the file pointers, then erase the old block later when it has time.

In practice, flash file systems are only used for memory technology devices (MTDs), which are embedded flash memories that do not have a controller. Removable flash memory cards and USB flash drives have built-in controllers to perform wear leveling and error correction so use of a specific flash file system does not add any benefit.[citation needed]

Capacity

Multiple chips are often arrayed to achieve higher capacities[29] for use in consumer electronic devices such as multimedia players or GPSs. The capacity of flash chips generally follows Moore's Law because they are manufactured with many of the same integrated circuits techniques and equipment.

Consumer flash storage devices typically are advertised with usable sizes expressed as a small integral power of two (2, 4, 8, etc.) and a designation of megabytes or gigabytes (e.g., 512 MB, 8 GB). "MB" and "GB" here (and on the device packaging) are using "decimal prefixes," meaning 1,000,000 bytes and 1,000,000,000 bytes, respectively. This includes SSDs marketed as hard drive replacements, in accordance with traditional hard drives, which also use decimal prefixes. Thus, an SSD marked as "64 GB" is actually at least 64 × 1,0003 bytes (64 GB), or often a bit more. Most users will have slightly less capacity than this available for their files, due to the space taken by file system metadata.

The flash memory chips inside them are sized in strict binary multiples, but the actual total capacity of the chips is not usable at the drive interface. It is considerably larger than the advertised capacity in order to allow for distribution of writes (wear leveling), for sparing, for error correction codes, and for other metadata needed by the device's internal firmware.

In 2005, Toshiba and SanDisk developed a NAND flash chip capable of storing 1 GB of data using multi-level cell (MLC) technology, capable of storing two bits of data per cell. In September 2005, Samsung Electronics announced that it had developed the world’s first 2 GB chip.[30]

In March 2006, Samsung announced flash hard drives with a capacity of 4 GB, essentially the same order of magnitude as smaller laptop hard drives, and in September 2006, Samsung announced an 8 GB chip produced using a 40 nm manufacturing process.[31] In January 2008, Sandisk announced availability of their 16 GB MicroSDHC and 32 GB SDHC Plus cards.[32][33]

More recent flash drives (as of 2012) have much greater capacities, holding 64, 128, and 256 GB.[34] Some of the larger drives, due to their size, can be used for full computer backups.

There are still flash-chips manufactured with capacities under or around 1 MB, e.g., for BIOS-ROMs and embedded applications.

Transfer rates

NAND flash memory cards are much faster at reading than writing so it is the maximum read speed that is commonly advertised.

As a chip wears out, its erase/program operations slow down considerably,[citation needed] requiring more retries and bad block remapping. Transferring multiple small files, each smaller than the chip-specific block size, could lead to a much lower rate. Access latency also influences performance, but less so than with their hard drive counterpart.

The speed is sometimes quoted in MB/s (megabytes per second), or as a multiple of that of a legacy single speed CD-ROM, such as 60×, 100× or 150×. Here 1× is equivalent to 150 kB/s. For example, a 100× memory card gives 150 kB/s × 100 = 15,000 kB/s = 14.65 MB/s.

Performance also depends on the quality of memory controllers. Even when the only change to manufacturing is die-shrink, the absence of an appropriate controller can result in degraded speeds.[35]

Applications

Serial flash

Serial flash is a small, low-power flash memory that uses a serial interface, typically Serial Peripheral Interface Bus (SPI), for sequential data access. When incorporated into an embedded system, serial flash requires fewer wires on the PCB than parallel flash memories, since it transmits and receives data one bit at a time. This may permit a reduction in board space, power consumption, and total system cost.

There are several reasons why a serial device, with fewer external pins than a parallel device, can significantly reduce overall cost:

  • Many ASICs are pad-limited, meaning that the size of the die is constrained by the number of wire bond pads, rather than the complexity and number of gates used for the device logic. Eliminating bond pads thus permits a more compact integrated circuit, on a smaller die; this increases the number of dies that may be fabricated on a wafer, and thus reduces the cost per die.
  • Reducing the number of external pins also reduces assembly and packaging costs. A serial device may be packaged in a smaller and simpler package than a parallel device.
  • Smaller and lower pin-count packages occupy less PCB area.
  • Lower pin-count devices simplify PCB routing.

There are two major SPI flash types. The first type is characterized by small pages and one or more internal SRAM page buffers allowing a complete page to be read to the buffer, partially modified, and then written back (for example, the Atmel AT45 DataFlash or the Micron Technology Page Erase NOR Flash). The second type has larger sectors. The smallest sectors typically found in an SPI flash are 4 kB, but they can be as large as 64 kB. Since the SPI flash lacks an internal SRAM buffer, the complete page must be read out and modified before being written back, making it slow to manage. SPI flash is cheaper than DataFlash and is therefore a good choice when the application is code shadowing.

The two types are not easily exchangeable, since they do not have the same pinout, and the command sets are incompatible.

Firmware storage

With the increasing speed of modern CPUs, parallel flash devices are often much slower than the memory bus of the computer they are connected to. Conversely, modern SRAM offers access times below 10 ns, while DDR2 SDRAM offers access times below 20 ns. Because of this, it is often desirable to shadow code stored in flash into RAM; that is, the code is copied from flash into RAM before execution, so that the CPU may access it at full speed. Device firmware may be stored in a serial flash device, and then copied into SDRAM or SRAM when the device is powered-up.[36] Using an external serial flash device rather than on-chip flash removes the need for significant process compromise (a process that is good for high-speed logic is generally not good for flash and vice-versa). Once it is decided to read the firmware in as one big block it is common to add compression to allow a smaller flash chip to be used. Typical applications for serial flash include storing firmware for hard drives, Ethernet controllers, DSL modems, wireless network devices, etc.

Flash memory as a replacement for hard drives

One more recent application for flash memory is as a replacement for hard disks. Flash memory does not have the mechanical limitations and latencies of hard drives, so a solid-state drive (SSD) is attractive when considering speed, noise, power consumption, and reliability. Flash drives are gaining traction as mobile device secondary storage devices; they are also used as substitutes for hard drives in high-performance desktop computers and some servers with RAID and SAN architectures.

There remain some aspects of flash-based SSDs that make them unattractive. The cost per gigabyte of flash memory remains significantly higher than that of hard disks.[37] Also flash memory has a finite number of P/E cycles, but this seems to be currently under control since warranties on flash-based SSDs are approaching those of current hard drives.[38]

In June 2006, Samsung Electronics released the first flash-memory based PCs, the Q1-SSD and Q30-SSD, both of which used 32 GB SSDs, and were at least initially available only in South Korea.[39]

A solid-state drive was offered as an option with the first Macbook Air introduced in 2008, and from 2010 onwards, all Macbook Air laptops shipped with an SSD. Starting in late 2011, as part of Intel's Ultrabook initiative, an increasing number of ultra thin laptops are being shipped with SSDs standard.

There are also hybrid techniques such as hybrid drive and ReadyBoost that attempt to combine the advantages of both technologies, using flash as a high-speed non-volatile cache for files on the disk that are often referenced, but rarely modified, such as application and operating system executable files.

Flash memory as RAM

As of 2012, there are attempts to use flash memory as the main computer memory, DRAM.[40] In this role, it is slower than conventional DRAM, but uses up to ten times less power and is also significantly cheaper. The source shows photo of the device that looks like PCI-Express card, supported by specialized driver.

Industry

One source states that, in 2008, the flash memory industry includes about US$9.1 billion in production and sales. Other sources put the flash memory market at a size of more than US$20 billion in 2006, accounting for more than eight percent of the overall semiconductor market and more than 34 percent of the total semiconductor memory market.[41]

Flash scalability

The aggressive trend of the shrinking process design rule or technology node in NAND flash memory technology effectively accelerates Moore's Law.

Due to its relatively simple structure and high demand for higher capacity, NAND flash memory is the most aggressively scaled technology among electronic devices. The heavy competition among the top few manufacturers only adds to the aggressiveness in shrinking the design rule or process technology node.[16] While the expected shrink timeline is a factor of two every three years per original version of Moore's law, this has recently been accelerated in the case of NAND flash to a factor of two every two years. In November 2012, Samsung announced that it had started production of 10 nm scale chips, which implies a minimum geometry of between 10 and 19 nm.[42][43]

As the feature size of flash memory cells reaches the minimum limit, further flash density increases will be driven by greater levels of MLC, possibly 3-D stacking of transistors, and improvements to the manufacturing process. The decrease in endurance and increase in uncorrectable bit error rates that accompany feature size shrinking can be compensated by improved error correction mechanisms.[44] Even with these advances, it may be impossible to economically scale flash to smaller and smaller dimensions. Many promising new technologies (such as FeRAM, MRAM, PMC, PCM, and others) are under investigation and development as possible more scalable replacements for flash.[45]

See also

References

  1. ^ "Owners of QM2 seabed camera found". BBC News. 11 February 2010.
  2. ^ Fulford, Benjamin (24 June 2002). "Unsung hero". Forbes. Retrieved 18 March 2008.
  3. ^ US 4531203  Fujio Masuoka
  4. ^ Masuoka, F.; Momodomi, M.; Iwata, Y.; Shirota, R. (1987). "New ultra high density EPROM and flash EEPROM with NAND structure cell". Electron Devices Meeting, 1987 International. IEEE. Retrieved 4 January 2013.
  5. ^ Tal, Arie (2002). "NAND vs. NOR flash technology: The designer should weigh the options when using flash memory". Retrieved 31 July 2010. {{cite web}}: Unknown parameter |month= ignored (help)
  6. ^ "H8S/2357 Group, H8S/2357F-ZTATTM, H8S/2398F-ZTATTM Hardware Manual, Section 19.6.1" (PDF). Renesas. October 2004. Retrieved 23 January 2012. The flash memory can be reprogrammed up to 100 times.
  7. ^ "AMD DL160 and DL320 Series Flash: New Densities, New Features" (PDF). AMD. 2003–17. Retrieved 23 January 2012. The devices offer single-power-supply operation (2.7 V to 3.6 V), sector architecture, Embedded Algorithms, high performance, and a 1,000,000 program/erase cycle endurance guarantee.{{cite web}}: CS1 maint: date format (link)
  8. ^ Buckley, Sean (26 May 2011). "Kingmax flaunts world's first 64GB microSD card". engadget. Retrieved 4 January 2013.
  9. ^ "PSoC Designer(TM) Device Selection Guide – AN2209": "... The PSoC ... utilizes a unique Flash process: SONOS"
  10. ^ Zitlaw, Cliff. "The Future of NOR Flash Memory". Memory Designline. UBM Media. Retrieved 3 May 2011.
  11. ^ Jonathan Thatcher, Fusion-io; Tom Coughlin, Coughlin Associates; Jim Handy, Objective-Analysis; Neal Ekker, Texas Memory Systems (April 2009). "NAND Flash Solid State Storage for the Enterprise, An In-depth Look at Reliability" (PDF). Solid State Storage Initiative (SSSI) of the Storage Network Industry Association (SNIA). Retrieved 6 December 2011. {{cite journal}}: Cite journal requires |journal= (help)CS1 maint: multiple names: authors list (link)
  12. ^ "Micron Collaborates with Sun Microsystems to Extend Lifespan of Flash-Based Storage, Achieves One Million Write Cycles" (Press release). Micron Technology, Inc. 17 December 2008.
  13. ^ a b "Flash memory breakthrough could lead to even more reliable data storage."
  14. ^ "Flash memory made immortal by fiery heat."
  15. ^ "TN-29-17 NAND Flash Design and Use Considerations Introduction" (PDF). Micron. April 2010. Retrieved 29 July 2011.
  16. ^ a b Kawamatus, Tatsuya. "TECHNOLOGY FOR MANAGING NAND FLASH" (PDF). Hagiwara sys-com co., LTD. Retrieved 1 August 2011.
  17. ^ http://www.tgc.com/dsstar/02/0917/104762.html
  18. ^ Kim, Jesung; Kim, John Min; Noh, Sam H.; Min, Sang Lyul; Cho, Yookun (2002-05). "A Space-Efficient Flash Translation Layer for CompactFlash Systems" (PDF). Proceedings of the IEEE. Vol. 48, no. 2. pp. 366–375. Retrieved 15 August 2008. {{cite news}}: Check date values in: |publication-date= (help)
  19. ^ TN-29-07: Small-Block vs. Large-Block NAND flash Devices Explains 512+16 and 2048+64-byte blocks
  20. ^ AN10860 LPC313x NAND flash data and bad block management Explains 4096+128-byte blocks.
  21. ^ Thatcher, Jonathan (18 August 2009). "NAND Flash Solid State Storage Performance and Capability – an In-depth Look" (PDF). SNIA. Retrieved 28 August 2012.
  22. ^ "Samsung ECC algorithm" (PDF). Samsung. 2008-06. Retrieved 15 August 2008. {{cite web}}: Check date values in: |date= (help)
  23. ^ "Open NAND Flash Interface Specification" (PDF). Open NAND Flash Interface. 28 December 2006. Retrieved 31 July 2010.
  24. ^ A list of ONFi members is available at http://onfi.org/membership/.
  25. ^ "Dell, Intel And Microsoft Join Forces To Increase Adoption Of NAND-Based Flash Memory In PC Platforms". REDMOND, Wash: Intel. 30 May 2007. Retrieved 30 November 2008. [dead link]
  26. ^ See pages 5–7 of Toshiba's "NAND Applications Design Guide" under External links.
  27. ^ Pavan, Paolo; Bez, Roberto; Olivo, Piero; Zononi, Enrico (1997). "Flash Memory Cells – An Overview" (PDF). Proceedings of the IEEE. Vol. 85, no. 8 (published 1997-08). pp. 1248–1271. doi:10.1109/5.622505. Retrieved 15 August 2008. {{cite news}}: Check date values in: |publication-date= (help)
  28. ^ "NAND Evolution and its Effects on Solid State Drive Useable Life" (PDF). Western Digital. 2009. Retrieved 22 April 2012.
  29. ^ "Flash vs DRAM follow-up: chip stacking". The Daily Circuit. 22 April 2012. Retrieved 22 April 2012.
  30. ^ Shilov, Anton (12 September 2005). "Samsung Unveils 2GB Flash Memory Chip". X-bit labs. Retrieved 30 November 2008.
  31. ^ Gruener, Wolfgang (11 September 2006). "Samsung announces 40 nm Flash, predicts 20 nm devices". TG Daily. Retrieved 30 November 2008.
  32. ^ 12 GB MicroSDHC
  33. ^ 32 GB SDHC Plus
  34. ^ http://www.pcworld.com/businesscenter/article/225370/look_out_for_the_256gb_thumb_drive_and_the_128gb_tablet.html; http://techcrunch.com/2009/07/20/kingston-outs-the-first-256gb-flash-drive/ 20 July 2009, Kingston DataTraveler 300 is 256 GB.
  35. ^ Samsung Confirms 32nm Flash Problems, Working on New SSD Controller
  36. ^ Many serial flash devices implement a bulk read mode and incorporate an internal address counter, so that it is trivial to configure them to transfer their entire contents to RAM on power-up. When clocked at 50 MHz, for example, a serial flash could transfer a 64 Mbit firmware image in less than two seconds.
  37. ^ Lyth0s (17 March 2011). "SSD vs. HDD". elitepcbuilding.com. Retrieved 11 July 2011.{{cite web}}: CS1 maint: numeric names: authors list (link)
  38. ^ "Flash Solid State Disks – Inferior Technology or Closet Superstar?". STORAGEsearch. Retrieved 30 November 2008.
  39. ^ "Samsung Electronics Launches the World's First PCs with NAND Flash-based Solid State Disk". Press Release. Samsung. 24 May 2006. Retrieved 30 November 2008.
  40. ^ Douglas Perry (2012) Princeton: Replacing RAM with Flash Can Save Massive Power.
  41. ^ Yinug, Christopher Falan (2007). "The Rise of the Flash Memory Market: Its Impact on Firm Behavior and Global Semiconductor Trade Patterns" (PDF). Journal of International Commerce and Economics. Archived from the original (PDF) on 29 May 2008. Retrieved 19 April 2008. {{cite journal}}: Unknown parameter |month= ignored (help)
  42. ^ Humphries, Matthew (15 November 2012)."Samsung starts producing 10nm NAND memory chips" Geek.com.Retrieved 18 November 2012.
  43. ^ Clarke, Peter (20 November 2012). "Samsung takes NAND memory below 20-nm" eetimes.com. Retrieved 21 December 2012.
  44. ^ Lal Shimpi, Anand (2 December 2010). "Micron's ClearNAND: 25nm + ECC, Combats Increasing Error Rates". Anandtech. Retrieved 2 December 2010.
  45. ^ Kim, Kinam; Koh, Gwan-Hyeob (16 May 2004). Future Memory Technology including Emerging New Memories (PDF). Serbia and Montenegro: Proceedings of the 24th International Conference on Microelectronics (published 2004-05). pp. 377–384. Retrieved 15 August 2008. {{cite book}}: Check date values in: |publication-date= (help)

External links