快閃記憶體

快閃記憶體（flash memory）是一種像唯讀記憶體一樣的存儲器，允許對資料進行多次的刪除、加入或改寫。這種記憶體廣泛用於記憶卡、隨身碟之中，因其可迅速改寫的特性非常適合手機、筆記型電腦、遊戲主機、掌機之間的檔案轉移，也曾經是數位相機、數位隨身聽和PDA的主要資料轉移方式。

早期的快閃記憶體只要進行一次刪除就會連帶清除掉所有的資料，但目前已可以精確到對指定的資料進行單個刪除。與傳統的硬碟相比，快閃記憶體有更佳的動態抗震性，不會因為劇烈晃動而造成資料丟失；快閃記憶體在被做成記憶卡時非常堅固牢靠，可以浸在水中，也可抵抗高壓力和極端溫度；並且快閃記憶體屬於「非揮發性固態儲存」，非揮發性指的是在保存檔案時不需要消耗電力。基於以上這些優點，使得快閃記憶體非常適用於需要遊歷各種場所並需要隨時存檔的電子設備，因此在小型的可移動電子設備中大放異彩。快閃記憶體的出現迅速取代了造價高昂的普通EEPROM。

快閃記憶體在分類上屬於「EEPROM」的一種，但一般業界所講的EEPROM指的是那種「非快閃式」的普通EEPROM，並不是指它。快閃記憶體以「大區塊抹除」的方式改寫其體內的資料，因為這種大區塊的特性導致它的「寫入速度」往往慢於「讀取速度」，但也導致它的成本遠遠低於「以位元組為單位寫入」的普通EEPROM。由於普通EEPROM需要一個一個位元的刪除已有資料，這讓其傳輸速度極其緩慢，相較之下快閃記體直接使用「大區塊抹除」則會快得多，在會多次用到高畫質畫面、高品質音樂的情況下尤為明顯。

快閃記憶體又分為NOR與NAND兩型，快閃記憶體最常見的封裝方式是TSOP48和BGA，在邏輯接口上的標準則由於廠商陣營而區分為兩種： ONFI 和Toggle。手機上的快閃記憶體常常以eMMC、UFS和NVME（特用於蘋果設備中的快閃記憶體）的方式存在。

## 歷史

快閃記憶體（無論是NOR型或NAND型）是舛岡富士雄博士1980年申請了一個叫做simultaneously erasable EEPROM的專利。然而，東芝公司的論資排輩卻讓這項劃時代的發明石沉大海，直到4年之後。「我終於被提拔了，可以不要批准就去工廠，讓工人們幫忙做出樣品了」，富士雄說。據東芝表示快閃記憶體之所以命名為「Flash」是由舛岡博士的同事有泉正二建議，因為這種記憶體的抹除流程讓他想起了相機的閃光燈。舛岡博士在1984年的加州舊金山IEEE國際電子元件會議（International Electron Devices Meeting, IEDM）上發表了這項發明。Intel看到了這項發明的巨大潛力，並於1988年推出第一款商業性的NOR Flash晶片。

NOR Flash需要很長的時間進行抹寫，但是它提供完整的定址與資料匯流排，並允許隨機存取記憶體上的任何區域，這使的它非常適合取代老式的ROM晶片。當時ROM晶片主要用來儲存幾乎不需更新的程式碼，例如電腦的BIOS或機上盒（Set-top Box）的韌體。NOR Flash可以承受一萬到一百萬次抹寫循環，它同時也是早期的可移除式快閃儲存媒體的基礎。CompactFlash本來便是以NOR Flash為基礎的，雖然它之後跳槽到成本較低的NAND Flash。

舛岡富士雄沒有停止追求，在1986年發明了NAND Flash，大大降低了製造成本。由於他的貢獻，東芝獎勵了他一筆幾百美金的獎金和一個位置很高卻悠閒的職位。做為一個工程師，他忍受不了這種待遇，不得不辭職進入大學繼續科研。東芝在1989年的國際固態電路會議（ISSCC）上發表了NAND Flash。NAND Flash具有較快的抹寫時間，而且每個儲存單元的面積也較小，這讓NAND Flash相較於NOR Flash具有較高的儲存密度與較低的每位元成本。同時它的可抹除次數也高出NOR Flash十倍。然而NAND Flash的I/O介面並沒有隨機存取外部位址匯流排，它必須以區塊性的方式進行讀取，NAND Flash典型的區塊大小是數百至數千位元。

因為多數微處理器與微控制器要求位元組等級的隨機存取，所以NAND Flash不適合取代那些用以裝載程式的ROM。從這樣的角度看來，NAND Flash比較像光碟、硬碟這類的次級儲存裝置。NAND Flash非常適合用於記憶卡之類的大量儲存裝置。第一款建立在NAND Flash基礎上的可移除式儲存媒體是SmartMedia，此後許多儲存媒體也跟著採用NAND Flash，包括MultiMediaCard、Secure Digital、Memory Stick與xD卡。

在很長一段時間，東芝公司甚至不承認NOR flash是舛岡富士雄發明的，宣稱是Intel發明的。直到IEEE在1997年頒給舛岡富士雄特殊貢獻獎後才改口。舛岡富士雄覺得自己的貢獻被東芝公司抹殺了，於2006年起訴了東芝公司，並索要10億日元的補償，最後和東芝公司達成和解，得到8700萬日元（合758,000美元）。

## 運作原理

快閃記憶體將資料儲存在由浮柵金屬氧化物半導體場效應電晶體組成的記憶單元陣列內，在單層儲存單元（Single-level cell, SLC）裝置中，每個單元只儲存1位元的資訊。而多層儲存單元（Multi-level cell, MLC）裝置則利用多種電荷值的控制讓每個單元可以儲存1位元以上的資料，這樣提升了容量，降低價格，但是減少了壽命，性能下降，存儲穩定性下降。目前已經量產TLC（Trinary-Level Cell）還有QLC產品，目前TLC還是主要使用的技術。

### NOR Flash

快閃記憶體的每個儲存單元與標準MOSFET類似，不同的是快閃記憶體的電晶體有兩個而並非一個閘極。在頂部的是控制閘（Control Gate, CG），如同其他MOS電晶體。但是它下方則是一個以氧化物層與週遭絕緣的浮閘（Floating Gate, FG）。這個FG放在CG與MOSFET通道之間。由於這個FG在電氣上是受絕緣層獨立的，所以進入的電子會被困在裡面。在一般的條件下電荷經過多年都不會逸散。當FG抓到電荷時，它部分屏蔽掉來自CG的電場，並改變這個單元的閾值電壓（VT）。在讀出期間。利用向CG的電壓，MOSFET通道會變的導電或保持絕緣。這視乎該單元的VT而定（而該單元的VT受到FG上的電荷控制）。這股電流流過MOSFET通道，並以二進位碼的方式讀出、再現儲存的資料。在每單元儲存1位元以上的資料的MLC裝置中，為了能夠更精確的測定FG中的電荷位準，則是以感應電流的量（而非單純的有或無）達成的。

邏輯上，單層NOR Flash單元在預設狀態代表二進位碼中的「1」值，因為在以特定的電壓值控制閘極時，電流會流經通道。經由以下流程，NOR Flash單元可以被設定為二進位碼中的「0」值：

- 1.對CG施加高電壓（通常大於5V）。
- 2.現在通道打開，所以電子可以從源極流入汲極（想像它是NMOS電晶體）。
- 3.源-汲電流夠高了，足以導致某些高能電子越過絕緣層，並進入絕緣層上的FG，這種過程稱為熱電子注入。

由於汲極與CG間有一個大的、相反的極性電壓，藉由量子穿隧效應可以將電子拉出FG，所以能夠地用這個特性抹除NOR Flash單元（將其重設為「1」狀態）。現代的NOR Flash晶片被分為若干抹除片段（常稱為區扇（Blocks or sectors）)，抹除操作只能以這些區塊為基礎進行；所有區塊內的記憶單元都會被一起抹除。不過一般而言，寫入NOR Flash單元的動作卻可以單一位元組的方式進行。

雖然抹寫都需要高電壓才能進行，不過實際上現今所有快閃記憶體晶片是藉由晶片內的電荷幫浦產生足夠的電壓，所以只需要一個單一的電壓供應即可。

NOR Flash可以製作成立體結構，但尚未量產。

### NAND Flash

與非門快閃記憶體（NAND閘快取記憶體）利用寫入，以及穿隧釋放（Tunnel release）抹除。NAND Flash在隨身碟、記憶卡與固態硬碟上都可看到。

### 3D NAND Flash

將NAND快閃記憶體在垂直方向進行堆疊和互聯，藉以提高單位面積的記憶體容量。3D NAND會提高產品容量還有穩定性。

## 存儲單元電位階數劃分

通過對快閃記憶體內最小的物理存儲單元的電位劃分不同的階數，可以在一個存儲單元記憶體儲一至多個二進位位數。常見的一至四層存儲單元為SLC、MLC、TLC和QLC。

### SLC

傳統上，每個儲存單元內儲存1個資訊位元，稱為單層儲存單元（Single-Level Cell, SLC），使用這種儲存單元的快閃記憶體也稱為單層儲存單元快閃記憶體（SLC flash memory），或簡稱SLC快閃記憶體。SLC快閃記憶體的優點是傳輸速度更快，功率消耗更低和儲存單元的壽命更長。然而，由於每個儲存單元包含的資訊較少，其每百萬位元組需花費較高的成本來生產，大多數用在企業上，很少有消費型SLC儲存裝置拿來販賣，富士通生產的FSX系列是首款使用SLC晶片消費型固態硬碟，在2014販售。

### MLC

多層儲存單元（Multi-Level Cell, MLC）可以在每個儲存單元內儲存2個以上的資訊位元，其「多階」指的是電荷充電有多個能階（即多個電壓值），如此便能儲存多個位元的值於每個儲存單元中。藉由每個儲存單元可儲存更多的位元，MLC快閃記憶體可降低生產成本，但比起SLC快閃記憶體，其傳輸速度較慢，功率消耗較高和儲存單元的壽命較低，因此MLC快閃記憶體技術會用在標準型的記憶卡，也用在最常見的消費型固態硬碟和隨身碟上。另外，如飛索半導體的MirrorBit®技術，也是屬於這一類技術。

### TLC

三層儲存單元（Triple-Level Cell, TLC），這種架構的原理與MLC類似，但可以在每個儲存單元內儲存3個資訊位元。TLC的寫入速度比SLC和MLC慢，壽命也比SLC和MLC短（使用LDPC的話，約有1500次），大約1000次。在使用3D技術取代微縮後，TLC(3D-TLC)成為市場主流。

### QLC

四層儲存單元（Quad-Level Cell, QLC），每個儲存單元有4個bits的格式，壽命為四者之中最短，大約只有500次。

在假設低電位表示二進位的0，高電位表示二進位的1時，SLC、MLC、TLC和QLC的電位及二進位值對比表。

在表中可以清楚的看到SLC、MLC、TLC和QLC技術分別將單個存儲單元劃分為2/4/8/16階，拿來存儲1/2/3/4個二進位位數。

SLC快閃記憶體｜MLC快閃記憶體｜TLC快閃記憶體｜QLC快閃記憶體

電位情況｜二進位值｜電位情況｜二進位值｜電位情況｜二進位值｜電位情況｜二進位值

低電位｜0｜最低電位｜00｜最低電位｜000｜最低電位｜0000

次低電位｜0001

次低電位｜001｜第三低電位｜0010

第四低電位｜0011

次低電位｜01｜第三低電位｜010｜第五低電位｜0100

第六低電位｜0101

第四低電位｜011｜第七低電位｜0110

第八低電位｜0111

高電位｜1｜次高電位｜10｜第五低電位｜100｜第九低電位｜1000

第十低電位｜1001

第六低電位｜101｜第十一低電位｜1010

第十二低電位｜1011

最高電位｜11｜次高電位｜110｜第十三低電位｜1100

第十四低電位｜1101

最高電位｜111｜次高電位｜1110

最高電位｜1111

表內數據為假設低電位表示二進位的0，高電位表示二進位的1時的情況。

## 不足之處

### 區塊抹除

快閃記憶體的一種限制在於即使它可以單一位元組的方式讀或寫入，但是抹除一定是一整個區塊。一般來說都是設定某一區中的所有位元為「1」，剛開始區塊內的所有部分都可以寫入，然而當有任何一個位元被設為「0」時，就只能藉由清除整個區塊來回復「1」的狀態。換句話說快閃記憶體（特別是NOR Flash）能提供隨機讀取與寫入操作，卻無法提供任意的隨機覆寫。不過其上的區塊可以寫入與既存的「0」值一樣長的訊息（新值的0位元是舊值的0位元的超集）。例如：有一小區塊的值已抹除為1111，然後寫入1110的訊息。接下來這個區塊還可以依序寫入1010、0010，最後則是0000。可是實際上少有演演算法可以從這種連續寫入相容性得到好處，一般來說還是整塊抹除再重寫。儘管快閃記憶體的資料結構不能完全以一般的方式做更新，但這允許它以「標記為不可用」的方式刪除訊息。這種技巧在每單元儲存大於1位元資料的MLC裝置中必須稍微做點修改。

### 記憶耗損

另一項快閃記憶體的限制是它有抹寫循環的次數限制（大多商業性SLC快閃記憶體保證「0」區有十萬次的抹寫能力，但因為製造精度問題其他區塊不保證，有可能還會出現完全無法使用的出廠壞塊）。這個結果部分地被某些韌體或檔案系統為了在相異區塊間分散寫入操作而進行的計算寫入次數與動態重映射所抵銷；這種技巧稱為耗損平衡（wear leveling）。另一種處理方法稱為壞區管理（Bad Block Management, BBM）。這種方法是在寫入時做驗證並進行動態重測，如果有驗證失敗的區塊就加以剔除。對多數行動裝置而言，這些磨損管理技術可以延長其內部快閃記憶體的壽命（甚至超出這些裝置的使用年限）。此外，遺失部分資料在這些裝置上或許是可接受的。至於會進行大量資料讀寫循環的高可靠性資料儲存應用則不建議使用快閃記憶體。不過這種限制不適用於路由器與瘦客戶端（Thin clients）等唯讀式應用，這些裝置往往在使用年限內也只會寫入一次或少數幾次而已。

### 讀取干擾

所使用的快閃記憶體讀取方式隨著時間的推移會導致在同一區塊中相近的記憶單元內容改變（變成寫入動作）。這即是所謂的讀取干擾。會導致讀取干擾現象的讀取次數門檻介於區塊被抹除間，通常為100,000次。假如連續從一個記憶單元讀取，此記憶單元將不會受損，而受損卻是接下來被讀取的周圍記憶單元。為避免讀取干擾問題，快閃記憶體控制器通常會計算從上次抹除動作後的區塊讀取動作總次數。當計數值超過所設定的目標值門檻時，受影響的區塊會被複製到一個新的區塊，然後將原區塊抹除後釋放到區塊回收區中。原區塊在抹除動作後就會像新的一樣。若是快閃記憶體控制器沒有即時介入時，讀取干擾錯誤就會發生，如果錯誤太多而無法被ECC機制修復時就會伴隨著可能的資料遺失。

### 寫入（編程）干擾

寫入干擾（編程干擾）是指當對頁（page）進行寫入時，由於閾值電壓接近的關係，相鄰的位（bit）也被升高，從而造成相鄰的位出錯。快閃記憶體電荷非常不穩定，相鄰存儲電荷的懸浮門間會相互干擾，造成相鄰懸浮門間的bit錯誤，MLC由於存在4組接近的電壓，與SLC相比更容易受到干擾。現在的主控固件已經支持使用異或的方式儘可能的將數據打亂到儘量每個bit之間是互相反轉的方式來儘可能減少這種情況對數據存儲穩定性的干擾

## 低階存取

快閃記憶體晶片的低階介面通常與透過支援外界的定址匯流排行隨機存取的DRAM、ROM、EEPROM等記憶體不同。NOR Flash本身為讀取操作（支援隨機存取）提供外部定址匯流排；至於解鎖、抹除與寫入則須以區塊-區塊（Block-by-block）的方式進行，典型的區塊大小為64、128或256位元組。NAND Flash所有的動作都必須以區塊性基礎（Block-wise fashion）執行，包含讀、寫、解鎖與抹除。

### NOR Flash

從NOR Flash讀取資料的方式與從RAM讀取資料相近，只要提供資料的位址，資料匯流排就可以正確的匯出資料。基於以上原因，多數微處理器可以將NOR Flash當作原地執行（Execute in place, XIP）記憶體使用，這意味著儲存在NOR Flash上的程式不需複製到RAM就可以直接執行。

由於NOR Flash沒有原生壞區管理，所以一旦儲存區塊發生毀損，軟體或驅動程式必須接手這個問題，否則可能會導致裝置發生異常。在解鎖、抹除或寫入NOR Flash區塊時，特殊的指令會先寫入已繪測的記憶區的第一頁（Page）。接著快閃記憶晶片會提供可用的指令清單給實體驅動程式，而這些指令是由通用快閃記憶體介面（Common Flash memory Interface, CFI）所界定的。與用於隨機存取的ROM不同，NOR Flash也可以用在儲存裝置上；不過與NAND Flash相比，NOR Flash的寫入速度一般來說會慢很多。NOR Flash最常見用途之一就是BIOS ROM晶片。

### NAND Flash

東芝在1989年發表了NAND Flash架構，這種記憶體的存取方式類似硬碟、記憶卡之類的區塊性儲存裝置，每個區塊由數個頁所構成。一般來說這些頁的大小為512或2048或4096位元組。在各個頁之間彼此的連接區域會有幾個位元組（一般而言是資料大小的1/32），這些空間用於儲存錯誤修正碼的校驗和。以下是一些典型的區塊大小：

- 每32個512+ 16位元組的頁為1個大小是16KB的區塊
- 每64個2048+ 64位元組的頁為1個大小是128KB的區塊
- 每64個4096+128位元組的頁為1個大小是256KB的區塊
- 每128個4096+128位元組的頁為1個大小是512KB的區塊

讀取與寫入動作可以以「頁」為單位偏移量進行，抹除動作只能以「區塊」為單位偏移量進行。NAND Flash還有一項限制就是區塊內的資料只能序列性的寫入。

操作次數（Number of Operations, NOPs）則代表「頁」可以被寫入的次數。目前MLC的NOPs是1；而SLC則是4。

NAND Flash也需要由裝置驅動程式軟體或分離的控制器晶片來進行壞區管理，例如SD卡內部便包含實行壞區管理與耗損平衡的電路。當一個邏輯區被高階軟體存取時，邏輯區對應到實體區的工作則由驅動程式或控制器進行。

### 標準化

開放式NAND型快閃記憶體介面工作小組（Open NAND Flash Interface Working Group (ONFI))已為快閃記憶體晶片開發完成一份標準化低階存取介面規格書。這份規格允許並確認了來自不同供應商的快閃記憶體元件間的互通性。《開放式快閃記憶體介面規格書版本1.0》於2006年12月28日釋出。規定著：

- 下列快閃記憶體積體電路封裝型式的標準實體介面(接腳排列)：TSOP-48、WSOP-48、LGA-52與BGA-63。
- 一組讀取、寫入、與抹除快閃記憶體晶片的標準命令集
- 一種自我辨識的機制(相較於SDRAM記憶體模組的序列式存在偵測特性）

支援ONFI小組的主要快閃記憶體製造商包含有：海力士、英特爾、美光科技與恆憶，也有與快閃記憶體晶片結合元件的主要製造商。

一群供應商，包含英特爾、戴爾與微軟成立非揮發性記憶體主控制器介面(Non-Volatile Memory Host Controller Interface (NVMHCI))工作小組。此小組的目的是提供標準的非揮發性記憶體軟硬體程式設計介面，包含有連接到PCI Express匯流排的"快閃快取"（flash cache）元件。

## NOR型與NAND型快閃記憶體的差異

NOR型與NAND型快閃記憶體最主要的兩個差異點如下：

- 連接個別記憶單元的方法不同
- 讀取寫入記憶體的介面不同（NOR型快閃記憶體允許隨機存取，而NAND型快閃記憶體只能允許頁存取）

以上兩點是相關的NAND型快閃記憶體研發所做出的設計抉擇。NAND型快閃記憶體發展的一個目標是為了減少所需的晶片面積來實現給定的快閃記憶體容量，從而降低每位元的成本，並推升晶片最大容量，如此就可與磁性儲存設備相互競爭，如硬碟。

NOR和NAND型快閃記憶體由記憶單元間的內部連接結構而得名。NOR型快閃記憶體內部記憶單元以平行方式連接到位元線，允許個別讀取與程式化記憶單元。這種記憶單元的平行連接類似於CMOS NOR閘中的電晶體平行連接。NAND型快閃記憶體內部記憶單元以順序方式連接，類似於NAND閘。順序連接方式所占空間較平行連接方式為小，降低了NAND型快閃記憶體的成本。

NOR型快閃記憶體面世後，成為比現有的EPROM與EEPROM記憶體更經濟、更方便的複寫型唯讀記憶體。因此，隨機存取的讀取電路是需要的。然而，NOR型快閃記憶體當成唯讀記憶體使用時的讀取次數在預期上通常遠大於寫入次數，所以其內含的寫入電路是相當慢的，並且只提供區塊抹除功能。另一方面，使用快閃記憶體的應用，如取代硬碟，無需字元組層級的位址線，因為字元組層級的位址線只會增加無謂的複雜度與成本。

因為採用順序連接方式及去除字元組的接觸點，NAND型快閃記憶體記憶單元的大型閘格所占面積只有NOR型記憶單元的60%（假設採用相同的CMOS製程，如130nm、90nm或65nm）。NAND型記憶體的設計者理解到快閃記憶體的面積，在移除外部位址線及資料匯流排電路後，將可進一步縮小。取而代之的是，外部裝置可使用順序存取命令與資料暫存器與NAND型快閃記憶體溝通，由記憶體內部取得所需資料並將其輸出。選擇這種設計方式使得NAND型快閃記憶體無法隨機存取，但是NAND型快閃記憶體的主要目標是取代硬碟，而不是唯讀記憶體。

### 寫入續航力

NOR型快閃記憶體SLC浮閘的寫入續航力通常大於或等於NAND型快閃記憶體，然而MLC NOR型與NAND型快閃記憶體有著相近的續航能力。

NAND型與NOR型快閃記憶體規格書所提供的寫入續航週期速率如下：

- SLC NAND型快閃記憶體的續航率通常落在10萬次（Samsung OneNAND KFW4G16Q2M）
- MLC NAND型快閃記憶體對於早期中型容量應用的續航力通常落在5千至1萬次（Samsung K9G8G08U0M），對於後期大型容量應用的續航率則落在1千至3千次。
- TLC NAND型快閃記憶體的續航率通常落在1千次或更多（Samsung 840）；以多層結構取代微縮及採用LDPC校正、都延長了續航率。
- QLC NAND型快閃記憶體的續航率可以達到5百至1千次。
- SLC浮柵NOR型快閃記憶體通常有著10萬至百萬次的寫入續航率（Numonyx M58BW 100k; Spansion S29CD016J 1,000k）
- MLC浮柵NOR型快閃記憶體通常有著10萬的寫入續航率（Numonyx J3 flash）

以上數據只是大概的標稱數值，實際寫入壽命與不同廠商的產品技術及定位有關。使用更細微化的製程，可以提高產品讀寫性能和容量，但同時在寫入壽命方面可能會面臨更大的挑戰。使用如記憶損耗調節及寫入放大的特定演演算法及設計範例，可以用來調節儲存系統的續航率來符合特定的需求。損耗平衡是快閃記憶體產品使用壽命的必要保證，在U盤和固態硬碟等產品中，均有相關支持。

## 快閃記憶體檔案系統

因為快閃記憶體的獨特特性，最好使用一個額外的控制器來實行記憶耗損平衡與錯誤修正（目前絕大多數SSD的主控自帶快閃記憶體壽命磨損均衡功能和管理ECC糾錯區域）或是一個特別設計的快閃記憶體檔案系統，來將對媒體的寫入動作與NOR快閃記憶體區塊的長抹除時間的處理動作分開。快閃記憶體檔案系統的背景觀念如下：當快閃記憶體的儲存內容被更新時，主控將欲改變的資料寫入一個新的區塊，創建地址對應，然後找時間抹除舊有的標記刪除的區塊（現在支持TRIM指令的SSD可以使用TRIM指令整理已經標記刪除的塊）。

特別的是，快閃記憶體檔案系統只使用於MTDs（memory technology devices），此設備具有內嵌式快閃記憶體，但沒有控制器。可攜式快閃記憶卡與隨身碟均有內建控制器來實行記憶耗損平衡與錯誤修正，所以使用特別的快閃記憶體檔案系統並不會增加任何的好處。

多數情況下，快閃記憶體與電腦間存在一個中間層（大多數為主控晶片），將快閃記憶體模擬成磁碟使用。對於上層軟體和使用者來說，並不需要關心快閃記憶體的實際細節。

## 容量

一般採用多顆快閃記憶體晶片組成陣列的方式來達到增高容量的目的，這種方式使用於消費性電子產品中，如多媒體撥放器或全球定位系統中。因為快閃記憶體屬於積體電路，所以快閃記憶體晶片的容量通常遵循摩爾定律。快閃記憶體可以通過工藝的進化和3D IC多層堆疊的方式獲得更高的容量。但是快閃記憶體工藝到16nm以下時會出現嚴重漏電，導致內部短路或者寫入時干擾其它塊，所以目前的快閃記憶體工藝大部分是16nm到24nm之間以防止過高的漏電。而在市售的快閃記憶體封裝產品中，可以通過包含多個快閃記憶體晶體（稱為多管芯）來獲得更高的容量。控制器可以通過不同的CE信號，選擇不同的管芯進行操作。

消費性快閃記憶體儲存裝置一般使用2的整數次冪（2、4、8等等）來標示可使用的容量大小，而最終以百萬位元組（MB）或十億位元組（GB）來表示，例如：512MB，8GB。然而如欲取代傳統硬碟（HDD）的固態硬碟（SSD）裝置則是使用10的整數倍數來表示容量大小，如1,000,000位元組與1,000,000,000位元組，這是因為傳統硬碟標示容量大小即是使用10進制詞頭。因此，固態硬碟上標示"64GB"，則表示實際上至少有64×1,0003位元組（64GB），通常更大一些。大部分使用者則會感到容量稍少於他們的檔案，這是因為主控的固件資訊和壞塊使用了一些空間。同時，一些作業系統容量標記的標記與生產商的標記方式不同也造成了此問題（混淆MB和MiB）。

快閃記憶體晶片內部的容量大小是以2進位倍數計算，但並非所有實際容量空間均能被驅動器介面所使用。快閃記憶體晶片實際的容量會大於出廠可用容量，或者說，可用容量會小於晶片容量，這是為了存放寫入的快閃記憶體壽命磨損均衡表（FTL）（記憶損耗平衡）、出廠預留空間、分區表、錯誤修正碼、及裝置內部韌體程式運算所需要的其他中繼資料。

2005年，東芝與新帝公司使用多層儲存單元（multi-level cell，MLC）技術開發出可儲存1GB資料量的NAND型快閃記憶體晶片，MLC擁有在最小記憶單元中儲存兩個位元資料的能力。2005年9月，三星電子宣布開發出世界上第一顆2GB快閃記憶體晶片。

2006年3月，三星電子宣布開發出容量為4GB的固態硬碟機，比膝上型電腦所使用的同樣容量硬碟還要來的小。2006年9月，三星電子宣布使用40奈米製程量產8GB快閃記憶體晶片。

2008年1月，新帝公司宣布16GB的MicroSDHC與32GB的SDHC Plus記憶卡開始販售。

2012年後的快閃記憶體儲存裝置有了較大的容量，如64、128及256GB。一些更大容量的固態硬碟，根據容量大小，能被使用來當作整個電腦的備份硬碟。

仍有小容量的快閃記憶體晶片生產以供BIOS-ROM與嵌入式應用使用，容量大小約為1MB或以下。

## 傳輸速率

NAND型快閃記憶卡的讀取速度遠大於寫入速度。

當晶片磨損，抹除與程式的操作速度會降到相當慢，主控需要需要更大電壓進行操作和更長的時間保證數據完整和創建ECC數據。傳遞多個小型檔案時，若是每個檔案長度均小於快閃記憶體晶片所定義的區塊大小時，因為每次擦寫一整個塊，導致寫入時需要將已有數據移至空閒的區域，每次讀寫都需要操作多次，就可能導致很低的傳輸速率。存取的遲滯也會影響效能，但還是比硬碟的遲滯影響小。但是在現有的分區的文件系統中，已經開始默認以快閃記憶體和Advanced format扇區配機械硬碟相同的4096位元組為一個扇區對齊快閃記憶體塊和機械硬碟的物理扇區進行扇區讀寫解決這個問題，每次當寫入數據小於一個扇區時，會將不足一個扇區的數據寫入後的扇區空閒空間置空，並且下次寫入一個文件的時候只能單獨再使用一個扇區以防止二次讀寫同一個塊挪動數據導致的寫入緩慢。

有些時候速度以MB/s（每秒百萬位元組）表示，或是以舊式單速光碟機速度的倍數表示，如60×、100×或150×。在這裡，1×等於150KB/s。舉例來說，100×的記憶卡的傳輸速率為150kB/s×100 = 15,000kB/s。

快閃記憶體控制器的品質也是影響效能的因素之一。即使快閃記憶體只有在製造時做縮小晶粒（die-shrink）的改變，但如果欠缺合適的控制器，就可能引起速度的降級。

不同種類、不同工藝、不同技術水平的NAND快閃記憶體在讀寫速率上存在差異，同時，快閃記憶體產品的讀寫性能也與讀寫方式有關。一般快閃記憶體的數據接口為8位或者16位，其中8位較為常見。如果產品支持多通道並行讀寫，那麼就會有更高的速度。同時，若產品支持DDR、interleave技術，也可以提高速度。DDR是存儲產品在時脈(clock)上升沿和下降沿都可以讀寫數據，從而提高性能。interleave是存儲產品內不同bank或plane間交錯讀寫，控制器在操作對象尚處於忙狀態時，即可以轉到另一方進行操作，從而提高速度。如果同類快閃記憶體中有異步模式和同步模式之分，其中同步模式的讀寫速度會更快。

## 應用

### 序列介面快閃記憶體

序列介面快閃記憶體是一種使用序列式介面（通常使用序列周邊介面匯流排（SPI））來循序存取資料內容，小型且低功率的快閃記憶體。當其使用於嵌入式系統上時，序列式快閃記憶體比平行式快閃記憶體在印刷電路板上所需的連接線數要少得多；因為序列式介面可以一次同時傳送與接受資料的一個位元，這使得序列式快閃記憶體具有減少在印刷電路板上所占面積、耗電量及整體系統成本的優勢。

有好幾個理由說明了為何使用較少外部接腳的序列式元件，而不是使用平行式元件，可以大大的降低整體的成本：

- 許多特殊應用積體電路是受接墊所限制的〈Pad-limited〉，意思是晶粒的大小是由引線鍵合接墊的數量所決定，而不是由元件邏輯閘數及功能複雜度所決定。減少鍵合接墊數自然允許更精簡的積體電路在更小的晶粒上；這也增加了晶圓上所能製造出的晶粒數量，同時也降低了單位晶粒的成本。
- 減少了外在接腳的數目，同時降低了IC組裝及IC封裝的成本。序列式介面元件比平行式介面元件所使用的封裝型式來的小且簡單。
- 封裝型式小及較低的外在接腳數目，所以占據的PCB面積也小。
- 較少的外在接腳數目，也簡化了PCB上繞線的複雜度。

SPI快閃記憶體的型式主要有兩種：一種是小頁特性且內含一個或多個內部SRAM的頁緩衝區，能夠讓整個頁的資料都讀入緩衝區、修改部分資料、而後再寫回快閃記憶體中（例如Atmel的DataFlash：AT45，Micron Technology頁抹除NOR型快閃記憶體）。另一種則有較大的區段。一般來說，SPI快閃記憶體的最小區段大小是4kB，最大可達64kB。因為此類SPI快閃記憶體缺乏內部SRAM緩衝區，修改資料時必須將完整的資料頁讀出，再修改資料後，寫回快閃記憶體中，使得管理速度變慢。SPI快閃記憶體比平行式介面快閃記憶體便宜，因此應用於具有程式代碼映射（Code-Shadowing）功能的系統上，是一個不錯的選擇。

而這兩種型式的快閃記憶體不容易做到簡單的直接置換，因為沒有相同的外部接腳且命令集也互不相容。

#### 韌體儲存

隨著現下CPU的速度越來越快，平行式介面快閃記憶體元件的速度通常遠小於與其連接的電腦系統記憶體匯流排速度。相較之下，目前的SRAM存取的時間通常小於10ns，而DDR2 SDRAM存取時間一般則小於20ns。因為這個因素，一般合理的使用方式是將要存放於映射記憶體裡的程式碼預先存放於快閃記憶體中，並在CPU執行程式碼前將快閃記憶體中的程式碼複製到映射記憶體中，如此一來，CPU就可以用最高速度來取用程式碼。設備上的韌體也可以預先存放於序列式介面快閃記憶體中，在設備開機後，將其複製到SDRAM或SRAM裡。使用外部序列式快閃記憶體而不用晶片中內嵌快閃記憶體是因為晶片製程上的考慮而妥協的結果（適用於高速邏輯製程通常不適用於快閃記憶體，反之亦然）。如果有需要將一個大區塊的韌體程式碼讀入時，通常會事先將程式碼壓縮後再存入快閃記憶體中，就可以縮小快閃記憶體晶片上被使用的區域。典型的序列式介面快閃記憶體應用於韌體儲存上有：硬碟、乙太網路控制器、DSL數據機、無線網卡等等。對於UEFI而言，因為在UEFI啟動過程的DXE階段前UEFI對主記憶體的訪問有限，所以UEFI固件通常保存在NOR Flash中。

### 快閃記憶體作為硬碟的替代品

近期另一個快閃記憶體的應用就是作為硬碟的替代品。因為快閃記憶體沒有硬碟機械因素的限制並且可以多單元並行存取，所以固態硬碟（SSD）在速度、噪音、耗電量與可靠度等因素的考量上是非常吸引人的。快閃記憶體元件正取得可攜式行動設備上第二儲存元件的地位。同時使用在高效能桌上型電腦及一些具有RAID和SAN架構的伺服器上作為硬碟的替代品。

但是以快閃記憶體為基礎的固態硬碟，也存在其他方面因素，使得它並不具有吸引力。例如快閃記憶體每千兆位元的成本依舊比硬碟高出許多。另一個不具吸引的因素就是快閃記憶體有著有限的P/E循環次數，但是這個因素可以透過程序優化，目前似乎已在人為控制能力範圍內，加上容量的增大使得每單位讀寫次數減少，讓它的使用壽命可以達到傳統硬碟甚至更高的水準，因此以快閃記憶體為基礎的固態硬碟也施行了與現有硬碟相同的保固政策。

對於關聯性資料庫或其他使用ACID的資料庫事務系統上，即使是使用目前最慢的快閃記憶體儲存媒體也可以比使用硬碟所組成的陣列，在速度的表現上有著顯著的提升。

於2006年6月，三星發佈第一批配備快閃記憶體固態硬碟的個人電腦：Q1-SSD及Q30-SSD，均使用32GB的固態硬碟，並且初期只在南韓地區發售。

在2008年，固態硬碟成為第一版MacBook Air的選用配備，並且從2010年起，固態硬碟成為所有Macbook Air膝上型電腦的標準配備。2011年後開始，由於固態硬碟成為Intel所倡議Ultrabook的一部份，超薄膝上型電腦以固態硬碟為標準配備的數量逐漸增加。因為固態硬碟的性能遠高於機械硬碟，所以2011年以後固態硬碟在PC上逐步得到普及。

也有混合型技術，諸如混合型硬碟和ReadyBoost，嘗試將兩種技術的優點合併，使用快閃記憶體作為硬碟上常用且鮮少修改的檔案，如應用程式及作業系統的執行檔，的高速非揮發性快取；或者使用固態硬碟加快機械硬碟的讀寫速度。

### 快閃記憶體作為隨機存取記憶體

截至2012年，有許多的嘗試想把快閃記憶體作為電腦的主記憶體，動態隨機存取記憶體（DRAM）。在這個應用角色上，快閃記憶體的速度是比現有的DRAM慢，但是耗電量卻遠小於DRAM。但是快閃記憶體的壽命也是需要注意的問題。快閃記憶體的壽命通常是幾千次P/E，而RAM的壽命幾乎是無盡的P/E次數，快閃記憶體壽命耗盡有可能會導致數據丟失，系統崩潰。

### 新型存儲介質

2015年，英特爾及美光聯合發布了xPoint新型存儲介質，這種介質是一種相變存儲材料（而非NAND或者Nor），當下主要用於英特爾的Optane固態硬碟中。

## 工業產值

2008年，一份資料中表示快閃記憶體在製造與銷售上的工業產值約為US$91億。2006年，另一些資料將快閃記憶體市場規模預估為超過US$200億，這是根據整體半導體市場超過8%與全部半導體記憶體市場超過34%的成長。

根據DRAMeXchange的研究報告，2007年全球Flash產業的市場規模為133億6千8百萬美元，2008年則是114億1千8百萬美元，整體營收降低了14.6％，主要的原因是受到產品平均單價下滑的影響。

根據DRAMeXchange於2009年2月所發佈的2008年全年NAND型快閃記憶體品牌廠商營收排名資料，第一為南韓廠商三星（Samsung）市佔率高達40.4%（46億1千4百萬美元），其次是日本廠商東芝（Toshiba）的28.1%（32億5百萬美元），第三是南韓廠商Hynix的15.1%（17億2千7百萬美元），第4為美國廠商美光（Micron）7.9％（8億9千7百萬美元），第5為美國廠商英特爾（Intel）5.8％（6億6千萬美元），第6是歐洲廠商恆憶（Numonyx，STMicro）2.6%（營收為2億9千5百萬美元）。

於2012年，預估快閃記憶體市場落在$268億。然而根據2013年4月DRAMeXchange的調查數據顯示，2012年全年NAND型快閃記憶體品牌廠商總營收落在190億6千2百萬美元，較2011年衰退6.6%。

## 現今技術發展

由於NAND型快閃記憶體本身相對簡單的結構及對高容量的高需求關係，使它成為電子元件中，在技術規模上發展最積極的。只有少數幾家頂尖的製造商能夠在高度的競爭中，積極的開發出縮小設計規則或是製程技術里程點。

雖然原始版本摩爾定律所預測尺寸縮小一半時程因子為每三年，但是在近期NAND型快閃記憶體的例子上這個因子卻是每兩年。

於2012年11月，三星宣布已經開始量產10nm的晶片，這暗示著最小幾何形狀介於10至19nm間。

由於快閃記憶體的最小組成元件已被最小化到極致的關係，未來的快閃記憶體密度的增加，將依靠更高級別的MLC，或是多層堆疊與製程的改善來驅動。從縮小尺寸伴隨而來的耐久性降低與不正確位元錯誤率增加，這些都可以藉由改善錯誤修正機制來彌補。即使有了這些進步，已有經濟規模的快閃記憶體在尺寸上也難以越來越小。快閃記憶體本身的讀寫速度有限，並且有寫入次數限制。有些具有光明展望的新技術（諸如鐵電隨機存取記憶體（FeRAM）、磁阻式隨機存取記憶體（MRAM）、可編程金屬化單元（PMC）、電阻式存儲器（ReRAM）、相變化記憶體（PCM）與其他)均在探索與研發中，希望能更大規模的取代快閃記憶體。

隨著NAND製程越來越小，縮短製程提高存儲密度已經非常困難。最新的NAND技術被稱為3D-NAND，這種材料改變了2D-NAND單層的設計，將32層、64層NAND進行堆疊，從而提高存儲密度。當前美光、SK-海力士、東芝、威騰電子、三星幾大NAND廠商均已擁有自己的3D-NAND產品。第一代基於3D-NAND的固態硬碟也已經開始廣泛應用於數據中心和消費級電腦。藉助3D-NAND，固態硬碟容量得到了質的提升，在2017年中國國內一家廠商Memblaze發布的PBlaze5 PCIe SSD已經最高可以做到11TB可用容量。

## 外部連結

- 給Linux系統的快閃文件系統
- 介紹YAFFS，首個NAND快閃記憶體專用文件系統
- YAFFS - Yet Another Flash Filing System, is a filing system optimised for NAND Flash chips (GPL)
- Memory Technology Device (MTD) Subsystem for Linux
- 快閃記憶體如何工作
- HDD Repair Tool
- Linux記憶體技術裝置──NAND
- STMicroelectronics官網
- 開放式NAND型快閃記憶體介面
- Cypress半導體
- How to Custom USB Flash Drive
- China USB Flash Drive