Content deleted Content added
m Task 18 (cosmetic): eval 6 templates: del empty params (3×); hyphenate params (2×); |
m grammar nits |
||
(30 intermediate revisions by 19 users not shown) | |||
Line 1:
{{Short description|Integrated circuit that interfaces flash memory to a host like a PC}}
[[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 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 translation layer (FTL) and mapping==
{{main|Flash file system}}
Usually, flash memory controllers also include the "flash translation layer" (FTL), a layer below the file system that maps host side or file system logical block addresses (LBAs) to the physical address of the flash memory (logical-to-physical mapping). The LBAs refer to sector numbers and to a mapping unit of 512 bytes. All LBAs that represent the logical size visible to and managed by the file system are mapped to a physical ___location (block ID, page ID and sector ID) of the Flash. As part of the [[wear leveling]] and other flash management algorithms (bad block management, read disturb management, safe flash handling etc.), the physical ___location of an LBA might dynamically change frequently. The mapping units of an FTL can differ so that LBAs are mapped block-, page- or even sub-page-based. Depending on the usage pattern, a finer mapping granularity can significantly reduce the flash wear out and maximize the endurance of a flash based storage media.<ref>{{cite web|url=http://drona.csa.iisc.ernet.in/~gopi/west10/goodson.pdf|title=Design Tradeoffs in a Flash Translation Layer|first1=Garth|last1=Goodson|first2=Rahul|last2=Iyer|archive-url=https://web.archive.org/web/20150623162937/http://drona.csa.iisc.ernet.in/~gopi/west10/goodson.pdf|archive-date=June 23, 2015}}</ref><ref>{{cite web|url=http://flashdba.com/2014/09/17/understanding-flash-the-flash-translation-layer/|title=Understanding Flash: The Flash Translation Layer|date=September 17, 2014}}</ref><ref>{{cite web|url=http://files.iccmedia.com/magazines/basfeb15/basfeb15-p25.pdf|title=New flash management architecture enables MLC for industrial storage|first=Susan|last=Heidrich|date=February 2015|access-date=2015-06-23|archive-date=2015-06-23|archive-url=https://web.archive.org/web/20150623164236/http://files.iccmedia.com/magazines/basfeb15/basfeb15-p25.pdf|url-status=dead}}</ref> The deduplication function to eliminate redundant data and duplicate writes is also added in FTL.<ref>{{Cite conference |first1=Feng|last1=Chen|first2=Tian|last2=Luo|first3=Xiaodong|last3=Zhang | title=CAFTL: a content-aware flash translation layer enhancing the lifespan of flash memory based solid state drives |conference= FAST' 11 | page=6|year=2011|url=https://dl.acm.org/doi/10.5555/1960475.1960481}}</ref>
As the FTL metadata takes up its own flash space, it
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 |publisher=OCZ Technology |access-date=2010-05-31 |archive-url=https://web.archive.org/web/20120526033947/http://www.oczenterprise.com/whitepapers/ssds-write-amplification-trim-and-gc.pdf |archive-date=2012-05-26
==References==
{{Reflist}}
{{
{{Solid-state drive|state=collapsed}}
[[Category:Computer memory]]
[[Category:Solid-state computer storage]]
[[Category:Application-specific integrated circuits]]
|