闪存

歷史

快閃記憶體（無論是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位元以上的資料。

NAND Flash

NAND閘快取記憶體利用穿隧注入（Tunnel injection）寫入，以及穿隧釋放（Tunnel release）抹除。NAND Flash在今天的隨身碟與多數記憶卡上都可看到。

3D NAND Flash

將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。

區塊抹除

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

低階存取

快閃記憶體晶片的低階介面通常與透過支援外界的定址匯流排行隨機存取的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晶片。

快閃記憶體檔案系統

因為快閃記憶體的獨特特性，最好使用一個額外的控制器來實行記憶耗損平衡與錯誤修正或是一個特別設計的快閃記憶體檔案系統，來將對媒體的寫入動作與NOR快閃記憶體區塊的長抹除時間的處理動作分開。快閃記憶體檔案系統的背景觀念如下：當快閃記憶體的儲存內容被更新時，檔案系統將欲改變的資料寫入一個新的區塊，重新映射檔案指標，然後找時間抹除舊有的區塊。
特別的是，快閃記憶體檔案系統只使用於MTDs（memory technology devices），此裝置具有內嵌式快閃記憶體，但沒有控制器。可攜式快閃記憶卡與隨身碟均有內建控制器來實行記憶耗損平衡與錯誤修正，所以使用特別的快閃記憶體檔案系統並不會增加任何的好處。
多數情況下，快閃記憶體與電腦間存在一個中間層，以將快閃記憶體類比成磁碟使用。對於上層軟體和使用者來說，並不需要關心快閃記憶體的實際細節。

容量

一般採用多顆快閃記憶體晶片組成陣列的方式來達到增高容量的目的，這種方式使用於消費性電子產品中，如多媒體撥放器或全球定位系統中。因為快閃記憶體屬於積體電路，所以快閃記憶體晶片的容量通常遵循摩爾定律。快閃記憶體可以通過工藝的進化和3D IC多層堆疊的方式獲得更高的容量。而在市售的快閃記憶體封裝產品中，可以通過包含多個快閃記憶體晶體（稱為多管芯）來獲得更高的容量。控制器可以通過不同的CE訊號，選擇不同的管芯進行操作。
消費性快閃記憶體儲存裝置一般使用2的次方數（2、4、8等等）來標示可使用的容量大小，而最終以百萬位元組（MB）或十億位元組（GB）來表示，例如：512MB，8GB。然而如欲取代傳統硬碟（HDD）的固態硬碟（SSD）裝置則是使用10的整數倍數來表示容量大小，如1,000,000位元組與1,000,000,000位元組，這是因為傳統硬碟標示容量大小即是使用10進制詞頭。因此，固態硬碟上標示"64GB"，則表示實際上至少有64×1,000³位元組（64GB），通常更大一些。大部分使用者則會感到容量稍少於他們的檔案，這是因為檔案系統資料使用了一些空間。同時，一些作業系統容量標記的不標準也造成了此問題（混淆MB和MiB）。
快閃記憶體晶片內部的容量大小是以2進位倍數計算，但並非所有實際容量空間均能被驅動器介面所使用。快閃記憶體晶片實際的容量會大於標示容量，或者說，可用容量會小於晶片容量，這是為了存放寫入的分配（記憶損耗平衡）資訊、備用資料、檔案系統資訊、錯誤修正碼、及裝置內部韌體程式運算所需要的其他中繼資料。
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型快閃記憶卡的讀取速度遠大於寫入速度。
當晶片磨損，抹除與程式的操作速度會降到相當慢，需要更多的重試次數與壞區重映射。傳遞多個小型檔案時，若是每個檔案長度均小於快閃記憶體晶片所定義的區塊大小時，就可能導致很低的傳輸速率。存取的遲滯也會影響效能，但還是比硬碟的遲滯影響小。
有些時候速度以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間交錯讀寫，控制器在運算物件尚處於忙狀態時，即可以轉到另一方進行操作，從而提高速度。如果同類快閃記憶體中有非同步模式和同步模式之分，其中同步模式的讀寫速度會更快。

韌體儲存

隨著現下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。

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

目前還不清楚快閃記憶體作為長時間檔案儲存媒體的有效檔案儲存時間究竟有多長？在檔案資料不常被存取的條件下，最適合的儲存溫度與濕度是多少？需不需要作預防性的覆寫保護？等等相關的儲存技術均有待進一步的研究發展。

工業產值

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固態硬碟中。