闪存

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

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

快閃記憶體在分類上屬於「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 會提高產品容量還有穩定性，長江儲存 3D NAND 的 Xtacking 技術，可以有效降低在有不同製程需求的晶圓之間的干擾，增加執行效率，降低製造難度和設計難度，提升 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 次。現在，廠商已不使用 TLC 這個名字，而是稱其為 3-bit MLC。在使用 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 個位元數。

## 不足之處

### 區塊抹除

快閃記憶體的一種限制在於即使它可以單一位元組的方式讀或寫入，但是抹除一定是一整個區塊。一般來說都是設定某一區中的所有位元為「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）

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

## 快閃記憶體檔案系統

因為快閃記憶體的獨特特性，最好使用一個額外的控制器來實行記憶耗損平衡與錯誤修正（目前絕大多數 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 組裝及封裝的成本。序列式介面元件比平行式介面元件所使用的封裝型式來的小且簡單。
* 封裝型式小及較低的外在接腳數目，所以占據的 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 所倡議超極致筆電的一部份，超薄筆記型電腦以固態硬碟為標準配備的數量逐漸增加。因為固態硬碟的效能遠高於機械硬碟，所以 2011 年以後固態硬碟在 PC 上逐步得到普及。

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

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

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

### 快閃記憶體作為長時間檔案儲存媒體

目前大部分廠家都會標明保修期和資料儲存時常，目前大部分的 3D TLC 快閃記憶體為基礎的 SSD 已經可以達到 10 年穩定儲存資料。但是某些晶片穩定性極差，儘管是原廠的原裝正式版快閃記憶體，但是有可能會很快就有資料錯誤（海力士 16nm 製程產品 cell 漏電問題）

## 工業產值

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 可用容量。

### 新型儲存媒介

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

## 參見

* 快閃記憶體檔案系統列表
* USB 加密記憶體
* 開放式 NAND 型快閃記憶體介面工作小組
* 寫入放大
* 快閃記憶體轉換層
* 快閃碟
* 飛索半導體
* SD 卡
* 閃存控制器

## 參考文獻

## 外部連結

* 給 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 （英文）