Content deleted Content added
Guy Harris (talk | contribs) →Flash Translation Layer (FTL) and Mapping: Sentence case in section heading. Copyedit a bit. |
m grammar nits |
||
(41 intermediate revisions by 27 users not shown) | |||
Line 1:
{{Short description|Integrated circuit that interfaces flash memory to a host like a PC}}
A '''flash memory controller''' (or '''flash controller''') manages data stored on [[flash memory]] and communicates with a [[computer]] or [[electronic device]]. Flash memory controllers can be designed for operating in low [[duty-cycle]] environments like [[Secure Digital|SD cards]], [[CompactFlash]] cards, or other similar [[Data storage device|media]] for use in [[digital camera]]s, [[Personal digital assistant|PDA]]s, [[mobile phone]]s, etc. [[USB flash drive]]s use flash memory controllers designed to communicate with [[personal computer]]s through the [[USB port]] at a low duty-cycle. Flash controllers can also be designed for higher duty-cycle environments like [[solid-state drive]]s (SSD) used as data storage for [[laptop]] computer systems clear up to [[mission-critical]] enterprise [[storage array]]s.<ref name="kingston">{{cite web|title=Flash Memory Guide|url=http://media.kingston.com/pdfs/FlashMemGuide.pdf|publisher=kingston.com|accessdate=7 March 2013}}</ref>▼
[[File:Lexar USB stick 8 GB - Silicon Motion SM3253L-0309.jpg|thumb|Lexar USB stick 8 GB - Silicon Motion SM3253L - USB 2.0 single-channel flash controller.]]
▲A '''flash memory controller''' (or '''flash controller''') manages data stored on [[flash memory]] (usually [[NAND flash]]) and communicates with a [[computer]] or [[electronic device]]. Flash memory controllers can be designed for operating in low [[duty-cycle]] environments like [[
==Initial setup==
Line 7 ⟶ 9:
{{Main|Flash memory#Principles of operation}}
When the system or device needs to read data from or write data to the flash memory, it will communicate with the flash memory controller. Simpler devices like SD cards and USB flash drives typically have a small number of flash memory die connected simultaneously. Operations are limited to the speed of the individual flash memory die. In contrast, a high-performance solid-state drive will have
==Wear-leveling and block picking==
{{Main|Wear leveling}}
Flash memory can withstand a limited number of program-erase cycles. If a particular flash memory block were programmed and erased repeatedly without writing to any other blocks, the one block would wear out before all the other blocks thereby prematurely ending the life of the storage device. For this reason flash controllers use a technique called [[wear leveling]] to distribute writes as evenly as possible across all the flash blocks in the SSD. In a perfect scenario this would enable every block to be written to its maximum life so they all fail at the same time.<ref name="Li-Pin Chang">{{cite
==Flash
{{main|Flash file system}}
Usually,
As the FTL metadata takes up its own flash space, it needs protection in case of power loss. In addition, it is possible for the mapping table to wear out before other parts of the flash memory has, prematurely ending the life of a storage device. This is usually avoided in enterprise devices by allocating an oversized space for spares, although more durable forms of storage like [[Magnetoresistive RAM|MRAM]] has been proposed for FTL too.{{Citation needed|date=May 2023}}
The FTL may have three types: page mapping, block mapping, and hybrid mapping. Page mapping can have higher performance, but it has bigger FTL metadata size and higher cost, and is usually used on [[solid state drive]]s. Block mapping can have smaller metadata size and lower cost, but it has lower performance, and is usually used on [[USB flash drive]]s. On page mapping FTL implementations, the ratio of FTL metadata size and storage capacity is usually 1:1000, for example, a 1TB flash storage device may have 1GB of FTL metadata.
==Garbage collection==
{{Main|Garbage collection (SSD)}}
Once every block of a solid-state storage device has been written one time, the flash controller will need to return to some of the initial blocks which no longer have current data (also called stale blocks). The data in these blocks were replaced with newly written blocks and now they are waiting to be erased so that new data can be written into them. This is a process called ''[[Garbage collection (computer science)|garbage collection]]'' (GC). All SSDs, CF Cards, and other flash storage devices will include some level of garbage collection. The speed at which a flash controller will do this can vary.<ref name="OCZ_WA">{{cite web |url=http://www.oczenterprise.com/whitepapers/ssds-write-amplification-trim-and-gc.pdf |title=SSDs - Write Amplification, TRIM and GC
==References==
{{Reflist}}
{{
{{Solid-state drive|state=collapsed}}
[[Category:Computer memory]]
[[Category:Solid-state computer storage]]
[[Category:Application-specific integrated circuits]]
|