闪存
来自维基百科,自由的百科全书
来自维基百科,自由的百科全书
闪存[1][2](flash memory,台湾译快閃記憶體[3],中国大陆又称闪速存储器[4][2]、快闪存储器[5]),是一种像电可擦写只读存储器一样的存储器,允许對資料進行多次的刪除、加入或改写。這種記憶體廣泛用於記憶卡、隨身碟之中,因其可迅速改寫的特性非常適合手機、筆記本電腦、遊戲主機、掌機之間的檔案轉移,也曾經是數位相機、數位隨身聽和PDA的主要資料轉移方式。
![]() |
早期的快閃記憶體只要進行一次刪除就會連帶清除掉所有的資料,但目前已可以精確到對指定的資料進行單個刪除。與傳統的硬碟相比,快閃記憶體有更佳的動態抗震性,不會因為劇烈晃動而造成資料丟失;快閃記憶體在被做成記憶卡時非常堅固牢靠,可以浸在水中,也可抵抗高壓力和極端溫度;並且快閃記憶體屬於“非揮發性固態儲存”,非揮發性指的是在保存檔案時不需要消耗電力。基於以上這些優點,使得快閃記憶體非常適用於需要遊歷各種場所並需要隨時存檔的電子設備,因此在小型的可移動電子設備中大放異彩。快閃記憶體的出現迅速取代了造價高昂的普通EEPROM或需要保持供电才能保存数据的SRAM。
快閃記憶體在分類上屬於“EEPROM”的一種,但一般業界所講的EEPROM指的是那種“非快閃式”的普通EEPROM,並不是指它。快閃記憶體以“大區塊抹除”的方式改寫其體內的資料,因為這種大區塊的特性導致它的“写入速度”往往慢于“读取速度”,但也導致它的成本遠遠低於“以位元組為單位寫入”的普通EEPROM[6]。由於普通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还是主要使用的技术。
快閃記憶體的每個儲存單元與標準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”值:
由於漏极與CG間有一個大的、相反的極性電壓,藉由量子穿隧效應可以將電子拉出FG,所以能夠地用這個特性抹除NOR Flash單元(將其重設為“1”狀態)。現代的NOR Flash晶片被分為若干抹除片段(常稱為區扇(Blocks or sectors)),抹除操作只能以這些區塊為基礎進行;所有區塊內的記憶單元都會被一起抹除。不過一般而言,寫入NOR Flash單元的動作卻可以單一位元組的方式進行。
雖然抹寫都需要高電壓才能進行,不過實際上現今所有快閃記憶體晶片是藉由晶片內的电荷泵產生足夠的電壓,所以只需要一個單一的電壓供應即可。
NOR Flash可以製作成立體結構,但尚未量產。
与非门闪存(NAND閘快取記憶體)利用穿隧注入寫入,以及穿隧釋放(Tunnel release)抹除。NAND Flash在隨身碟、記憶卡與固態硬碟上都可看到。
将NAND闪存在垂直方向进行堆叠和互联,藉以提高單位面積的記憶體容量。[7]3D NAND会提高产品容量还有稳定性。
通过对闪存内最小的物理存储单元的电位划分不同的阶数,可以在一个存储单元内存储一至多个二进制位数。常见的一至四层存储单元为SLC、MLC、TLC和QLC。
傳統上,每個儲存單元內儲存1個資訊位元,稱為單層儲存單元(Single-Level Cell,SLC),使用這種儲存單元的快閃記憶體也稱為單層儲存單元快閃記憶體(SLC flash memory),或簡稱SLC快閃記憶體。SLC快閃記憶體的優點是傳輸速度更快,功率消耗更低和儲存單元的壽命更長。然而,由於每個儲存單元包含的資訊較少,其每百萬位元組需花費較高的成本來生產,大多數用在企業上,很少有消費型SLC儲存裝置拿來販賣,富士通生產的FSX系列是首款使用SLC晶片消費型固態硬碟,在2014販售。
多層儲存單元(Multi-Level Cell,MLC)可以在每個儲存單元內儲存2個以上的資訊位元,其“多階”指的是電荷充電有多個能階(即多個電壓值),如此便能儲存多個位元的值於每個儲存單元中。藉由每個儲存單元可儲存更多的位元,MLC快閃記憶體可降低生產成本,但比起SLC快閃記憶體,其傳輸速度較慢,功率消耗較高和儲存單元的壽命較低,因此MLC快閃記憶體技術會用在標準型的記憶卡,也用在最常見的消費型固態硬碟和隨身碟上。另外,如飛索半導體的MirrorBit®技術,也是屬於這一類技術。
三层储存单元(Triple-Level Cell, TLC),这种架构的原理与MLC类似,但可以在每个储存单元内储存3个資訊位元。TLC的写入速度比SLC和MLC慢,寿命也比SLC和MLC短(使用LDPC的話,約有1500次),大约1000次。現在,廠商已不使用TLC這個名字,而是稱其為3-bit MLC。[8]在使用3D技術取代微縮後,TLC(3D-TLC)成為市場主流。
四层储存单元(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機制修復時就會伴隨著可能的資料遺失。[9][10]
寫入干擾(編程干擾)是指當對頁(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讀取資料的方式與從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晶片。
東芝在1989年發表了NAND Flash架構,[11]這種記憶體的存取方式類似硬碟、記憶卡之類的區塊性儲存裝置,每個區塊由数個頁所構成。一般來說這些頁的大小為512[12]或2048或4096位元組。在各個頁之間彼此的連接區域會有幾個位元組(一般而言是資料大小的1/32),這些空間用於儲存錯誤修正碼的校驗和。以下是一些典型的區塊大小:
讀取與寫入動作可以以“頁”為單位偏移量進行,抹除動作只能以“區塊”為單位偏移量進行。NAND Flash還有一項限制就是區塊內的資料只能序列性的寫入。[來源請求] 操作次數(Number of Operations, NOPs)則代表“頁”可以被寫入的次數。目前MLC的NOPs是1;而SLC則是4。[來源請求] NAND Flash也需要由裝置驅動程式軟體或分離的控制器晶片來進行壞區管理,例如SD卡內部便包含實行壞區管理與耗損平衡的電路。當一個邏輯區被高階軟體存取時,邏輯區對應到實體區的工作則由驅動程式或控制器進行。
開放式NAND型快閃記憶體介面工作小組(Open NAND Flash Interface Working Group (ONFI))已為快閃記憶體晶片開發完成一份標準化低階存取介面規格書。這份規格允許並確認了來自不同供應商的快閃記憶體元件間的互通性。《開放式快閃記憶體介面規格書版本1.0》[15]於2006年12月28日釋出。規定著:
支援ONFI小組的主要快閃記憶體製造商包含有:海力士、英特爾、美光科技與恆憶,也有與快閃記憶體晶片結合元件的主要製造商。[16]
一群供應商,包含英特爾、戴爾與微軟成立非揮發性記憶體主控制器介面(Non-Volatile Memory Host Controller Interface (NVMHCI))工作小組。[17]此小組的目的是提供標準的非揮發性記憶體軟硬體程式設計介面,包含有連接到PCI Express匯流排的"快閃快取"(flash cache)元件。
NOR型與NAND型快閃記憶體最主要的兩個差異點如下:
以上兩點是相關的NAND型快閃記憶體研發所做出的設計抉擇。NAND型快閃記憶體發展的一個目標是為了減少所需的晶片面積來實現給定的快閃記憶體容量,從而降低每位元的成本,並推升晶片最大容量,如此就可與磁性儲存設備相互競爭,如硬碟。
NOR和NAND型快閃記憶體由記憶單元間的內部連接結構而得名。[18]NOR型快閃記憶體內部記憶單元以平行方式連接到位元線,允許個別讀取與程式化記憶單元。這種記憶單元的平行連接類似於CMOS NOR閘中的電晶體平行連接。NAND型快閃記憶體內部記憶單元以順序方式連接,類似於NAND閘。順序連接方式所占空間較平行連接方式為小,降低了NAND型快閃記憶體的成本。
NOR型快閃記憶體面世後,成為比現有的EPROM與EEPROM記憶體更經濟、更方便的複寫型唯讀記憶體。因此,隨機存取的讀取電路是需要的。然而,NOR型快閃記憶體當成唯讀記憶體使用時的讀取次數在預期上通常遠大於寫入次數,所以其內含的寫入電路是相當慢的,並且只提供區塊抹除功能。另一方面,使用快閃記憶體的應用,如取代硬碟,無需字元組層級的位址線,因為字元組層級的位址線只會增加無謂的複雜度與成本。
因為採用順序連接方式及去除字元組的接觸點,NAND型快閃記憶體記憶單元的大型閘格所占面積只有NOR型記憶單元的60%[19](假設採用相同的CMOS製程,如130nm、90nm或65nm)。NAND型記憶體的設計者理解到快閃記憶體的面積,在移除外部位址線及資料匯流排電路後,將可進一步縮小。取而代之的是,外部裝置可使用順序存取命令與資料暫存器與NAND型快閃記憶體溝通,由記憶體內部取得所需資料並將其輸出。選擇這種設計方式使得NAND型快閃記憶體無法隨機存取,但是NAND型快閃記憶體的主要目標是取代硬碟,而不是唯讀記憶體。
NOR型快閃記憶體SLC浮閘的寫入續航力通常大於或等於NAND型快閃記憶體,然而MLC NOR型與NAND型快閃記憶體有著相近的續航能力。
NAND型與NOR型快閃記憶體規格書所提供的寫入續航週期速率如下:
以上数据只是大概的标称数值,实际写入寿命与不同厂商的产品技术及定位有关。使用更细微化的制程,可以提高产品读写性能和容量,但同时在写入寿命方面可能会面临更大的挑战。使用如記憶損耗調節及写入放大的特定演算法及設計範例,可以用來調節儲存系統的續航率來符合特定的需求。[20]损耗平衡是闪存产品使用寿命的必要保证,在U盘和固態硬碟等产品中,均有相关支持。
因為快閃記憶體的獨特特性,最好使用一個額外的控制器來實行記憶耗損平衡與錯誤修正(目前绝大多数SSD的主控自带闪存寿命磨损均衡功能和管理ECC纠错区域)或是一個特別設計的快閃記憶體檔案系統,來將對媒體的寫入動作與NOR快閃記憶體區塊的長抹除時間的處理動作分開。快閃記憶體檔案系統的背景觀念如下:當快閃記憶體的儲存內容被更新時,主控將欲改變的資料寫入一個新的區塊,创建地址对应,然後找時間抹除舊有的标记删除的區塊(现在支持TRIM指令的SSD可以使用TRIM指令整理已经标记删除的块)。
特別的是,快閃記憶體檔案系統只使用於MTDs(memory technology devices),此設備具有內嵌式快閃記憶體,但沒有控制器。可攜式快閃記憶卡與隨身碟均有內建控制器來實行記憶耗損平衡與錯誤修正,所以使用特別的快閃記憶體檔案系統並不會增加任何的好處。
多数情况下,闪存与计算机间存在一个中间层(大多数为主控芯片),将闪存模拟成磁盘使用。对于上层软件和使用者来说,并不需要关心闪存的实际细节。
一般採用多顆快閃記憶體晶片組成陣列的方式來達到增高容量的目的[21],這種方式使用於消費性電子產品中,如多媒體撥放器或全球定位系統中。因為快閃記憶體属于積體電路,所以快閃記憶體晶片的容量通常遵循摩爾定律。闪存可以通过工艺的进化和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快閃記憶體晶片。[22]
2006年3月,三星電子宣布開發出容量為4GB的固態硬碟機,比膝上型電腦所使用的同樣容量硬碟還要來的小。2006年9月,三星電子宣布使用40奈米製程量產8GB快閃記憶體晶片。[23]
2008年1月,新帝公司宣布16GB的MicroSDHC與32GB的SDHC Plus記憶卡開始販售。[24][25]
2012年後的快閃記憶體儲存裝置有了較大的容量,如64、128及256GB。[26][27]一些更大容量的固態硬碟,根據容量大小,能被使用來當作整個電腦的備份硬碟。
仍有小容量的快閃記憶體晶片生產以供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)的改變,但如果欠缺合適的控制器,就可能引起速度的降級。[28]
不同种类、不同工艺、不同技术水平的NAND闪存在读写速率上存在差异,同时,闪存产品的读写性能也与读写方式有关。一般闪存的数据接口为8位或者16位,其中8位较为常见。如果产品支持多通道并行读写,那么就会有更高的速度。同时,若产品支持DDR、interleave技术,也可以提高速度。DDR是存储产品在時脈(clock)上升沿和下降沿都可以读写数据,从而提高性能。interleave是存储产品内不同bank或plane间交错读写,控制器在操作对象尚处于忙状态时,即可以转到另一方进行操作,从而提高速度。如果同类闪存中有异步模式和同步模式之分,其中同步模式的读写速度会更快。
序列介面快閃記憶體是一種使用序列式介面(通常使用序列周邊介面匯流排(SPI))來循序存取資料內容,小型且低功率的快閃記憶體。當其使用於嵌入式系統上時,序列式快閃記憶體比平行式快閃記憶體在印刷電路板上所需的連接線數要少得多;因為序列式介面可以一次同時傳送與接受資料的一個位元,這使得序列式快閃記憶體具有減少在印刷電路板上所占面積、耗電量及整體系統成本的優勢。
有好幾個理由說明了為何使用較少外部接腳的序列式元件,而不是使用平行式元件,可以大大的降低整體的成本:
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裡。[29]使用外部序列式快閃記憶體而不用晶片中內嵌快閃記憶體是因為晶片製程上的考慮而妥協的結果(適用於高速邏輯製程通常不適用於快閃記憶體,反之亦然)。如果有需要將一個大區塊的韌體程式碼讀入時,通常會事先將程式碼壓縮後再存入快閃記憶體中,就可以縮小快閃記憶體晶片上被使用的區域。典型的序列式介面快閃記憶體應用於韌體儲存上有:硬碟、乙太網路控制器、DSL數據機、無線網卡等等。对于UEFI而言,因为在UEFI启动过程的DXE阶段前UEFI对主記憶體的访问有限,所以UEFI固件通常保存在NOR Flash中。
近期另一個快閃記憶體的應用就是作為硬碟的替代品。因為快閃記憶體沒有硬碟機械因素的限制并且可以多单元并行存取,所以固態硬碟(SSD)在速度、噪音、耗電量與可靠度等因素的考量上是非常吸引人的。快閃記憶體元件正取得可攜式行動設備上第二儲存元件的地位。同時使用在高效能桌上型電腦及一些具有RAID和SAN架構的伺服器上作為硬碟的替代品。
但是以快閃記憶體為基礎的固態硬碟,也存在其他方面因素,使得它並不具有吸引力。例如快閃記憶體每千兆位元的成本依舊比硬碟高出許多。[30]另一個不具吸引的因素就是快閃記憶體有著有限的P/E循環次數,但是這個因素可以透過程序優化,目前似乎已在人為控制能力範圍內,加上容量的增大使得每單位讀寫次數減少,讓它的使用壽命可以達到傳統硬碟甚至更高的水準,因此以快閃記憶體為基礎的固態硬碟也施行了與現有硬碟相同的保固政策。[31]
對於關聯性資料庫或其他使用ACID的資料庫事務系統上,即使是使用目前最慢的快閃記憶體儲存媒體也可以比使用硬碟所組成的陣列,在速度的表現上有著顯著的提升。[32][33]
於2006年6月,三星發佈第一批配備快閃記憶體固態硬碟的個人電腦:Q1-SSD及Q30-SSD,均使用32GB的固態硬碟,並且初期只在南韓地區發售。[34]
在2008年,固態硬碟成為第一版MacBook Air的選用配備,並且從2010年起,固態硬碟成為所有Macbook Air膝上型電腦的標準配備。2011年後開始,由於固態硬碟成為Intel所倡議Ultrabook的一部份,超薄膝上型電腦以固態硬碟為標準配備的數量逐漸增加。因为固态硬盘的性能远高于机械硬盘,所以2011年以后固态硬盘在PC上逐步得到普及。
也有混合型技術,諸如混合型硬碟和ReadyBoost,嘗試將兩種技術的優點合併,使用快閃記憶體作為硬碟上常用且鮮少修改的檔案,如應用程式及作業系統的執行檔,的高速非揮發性快取;或者使用固态硬盘加快机械硬盘的读写速度。
截至2012年,有許多的嘗試想把快閃記憶體作為電腦的主記憶體,動態隨機存取記憶體(DRAM)。[35]在這個應用角色上,快閃記憶體的速度是比現有的DRAM慢,但是耗電量卻遠小於DRAM。但是闪存的寿命也是需要注意的问题。闪存的寿命通常是几千次P/E,而RAM的寿命几乎是无尽的P/E次数,闪存寿命耗尽有可能会导致数据丢失,系统崩溃。
2015年,英特尔及美光联合发布了xPoint新型存储介质,这种介质是一种相变存储材料(而非NAND或者Nor),当下主要用于英特尔的Optane固态硬盘中。
2008年,一份資料中表示快閃記憶體在製造與銷售上的工業產值約為US$91億。2006年,另一些資料將快閃記憶體市場規模預估為超過US$200億,這是根據整體半導體市場超過8%與全部半導體記憶體市場超過34%的成長。[36]
根據DRAMeXchange的研究報告,2007年全球Flash產業的市場規模為133億6千8百萬美元,2008年則是114億1千8百萬美元,整體營收降低了14.6%,主要的原因是受到產品平均單價下滑的影響。[37]
根據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百萬美元)。[38]
於2012年,預估快閃記憶體市場落在$268億。[39]然而根據2013年4月DRAMeXchange的調查數據顯示,2012年全年NAND型快閃記憶體品牌廠商總營收落在190億6千2百萬美元,較2011年衰退6.6%。[40]
由於NAND型快閃記憶體本身相對簡單的結構及對高容量的高需求關係,使它成為電子元件中,在技術規模上發展最積極的。只有少數幾家頂尖的製造商能夠在高度的競爭中,積極的開發出縮小設計規則或是製程技術里程點。 [10]雖然原始版本摩爾定律所預測尺寸縮小一半時程因子為每三年,但是在近期NAND型快閃記憶體的例子上這個因子卻是每兩年。
於2012年11月,三星宣布已經開始量產10nm的晶片,這暗示著最小幾何形狀介於10至19nm間。[41][42]
由於快閃記憶體的最小組成元件已被最小化到極致的關係,未來的快閃記憶體密度的增加,將依靠更高級別的MLC,或是多层堆疊與製程的改善來驅動。從縮小尺寸伴隨而來的耐久性降低與不正確位元錯誤率增加,這些都可以藉由改善錯誤修正機制來彌補。[43]即使有了這些進步,已有經濟規模的快閃記憶體在尺寸上也难以越來越小。闪存本身的读写速度有限,并且有写入次数限制。有些具有光明展望的新技術(諸如鐵電隨機存取記憶體(FeRAM)、磁阻式隨機存取記憶體(MRAM)、可編程金屬化單元(PMC)、电阻式存储器(ReRAM)、相變化記憶體(PCM)與其他)均在探索與研發中,希望能更大規模的取代快閃記憶體。[44]
随着NAND制程越来越小,缩短制程提高存储密度已经非常困难。最新的NAND技术被称为3D-NAND,这种材料改变了2D-NAND单层的设计,将32层、64层NAND进行堆叠,从而提高存储密度。当前美光、SK-海力士、东芝、西部数据、三星几大NAND厂商均已拥有自己的3D-NAND产品。第一代基于3D-NAND的固态硬盘也已经开始广泛应用于数据中心和消费级计算机。借助3D-NAND,固态硬盘容量得到了质的提升,在2017年中国国内一家厂商Memblaze发布的PBlaze5 PCIe SSD已经最高可以做到11TB可用容量[45]。