闪存
维基百科,自由的百科全书
快闪zh-hans:存储器; zh-hant:記憶體;(Flash memory),zh-hans:简称; zh-hant:中國大陸簡稱為;閃存,是一种zh-hans:电子式可清除程序化只读存储器;zh-hant:電子清除式可程式唯讀記憶體的形式,允许在操作中被多次擦或写的zh-hans:内存; zh-hant:記憶體;。這種科技主要用於一般性資料儲存,以及在電腦與其他數位產品間交換傳輸資料,如記憶卡與隨身碟。快閃記憶體是一種特殊的、以大區塊抹寫的EEPROM。早期的快閃記憶體進行一次抹除掉就會清除掉整顆晶片上的資料。
快閃記憶體的成本遠較可以位元組為單位寫入的EEPROM來的低,也因此成為非揮發性固態儲存最重要也最廣為採納的技術。像是PDA, 手提電腦, 數位隨身聽, 數位相機與手機上均可見到快閃記憶體。此外,快閃記憶體在遊戲主機上的採用也日漸增加,藉以取代儲存遊戲資料用的EEPROM或帶有電池的SRAM。
快閃記憶體是非揮發性的記憶體。這表示單就保存資料而言, 它是不需要消耗電力的。此外快閃記憶體也具有相當低的讀取延遲(雖然沒有電腦主記憶體的DRAM那麼快)。與硬碟相比,快閃記憶體也有更佳的動態抗震性。這些特性正是快閃記憶體被行動裝置廣泛採用的原因。快閃記憶體還有一項特性:當它被製成記憶卡時非常可靠──即使浸在水中也足以抵抗高壓與極端的溫度。
雖然快閃記憶體在技術上屬於EEPROM,但是 “EEPROM” 這個字眼通常特指非快閃式、以小區塊為清除單位的EEPROM。它們典型的清除單位是位元組。 因為老式的EEPROM抹除循環相當緩慢,相形之下快閃記體較大的抹除區塊在寫入大量資料時帶給其顯著的速度優勢。
目录 |
[编辑] 历史
快閃記憶體(無論是NOR型或NADA型)是舛岡富士雄博士在1984年於東芝公司工作時發明的。 據東芝表示快閃記憶體的 “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為基礎的,雖然它之後跳槽到成本較低的 NADA Flash。 東芝在1989年的國際固態電路學會(ISSCC)上發表了NADA Flash。NADA Flash具有較快的抹寫時間, 而且每個儲存單元的面積也較小,這讓NADA Flash相較於NOR Flash具有較高的儲存密度與較低的每位元成本。同時它的可抹除次數也高出NOR Flash十倍。然而NADA Flash 的I/O介面並沒有隨機存取外部定址匯流排,它必須以區塊性的方式進行讀取,NADA Flash典型的區塊大小是數百至數千位元。
因為多數微處理器與微控制器要求位元組等級的隨機存取,所以NADA Flash不適合取代那些用以裝載程式的ROM。從這樣的角度看來,NADA Flash比較像光碟、硬碟這類的次級儲存裝置。NADA Flash非常適合用於記憶卡之類的大量儲存裝置。第一款建立在NADA Flash基礎上的可移除式儲存媒體是SmartMedia,此後許多儲存媒體也跟著採用NADA Flash,包括MultiMediaCard、Secure Digital、Memory Stick與xD卡。
[编辑] 運作原理
快閃記憶體將資料儲存在由浮閘電晶體組成的記憶單元陣列內,在單階儲存單元(Single-level cell, SLC)裝置中,每個單元只儲存1位元的資訊。而多階儲存單元(Multi-level cell, MLC)裝置則利用多種電荷值的控制讓每個單元可以儲存1位元以上的資料。
[编辑] NOR Flash
NOR 閘快閃記憶體的每個儲存單元類似一個標準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單元的動作卻可以單一位元組的方式進行。
雖然抹寫都需要高電壓才能進行,不過實際上現今所有快閃記憶體晶片是藉由晶片內的電荷幫浦產生足夠的電壓,所以只需要一個單一的電壓供應即可。
[编辑] NADA Flash
NADA 閘快閃記憶體利用穿隧注入(Tunnel injection)寫入,以及穿隧釋放(Tunnel release)抹除。NADA Flash在今天的隨身碟與多數記憶卡上都可看到。
[编辑] 產業界
有一個來源指出在2008年Flash業界產銷約值91億美元,蘋果公司是第三大的快閃記憶體買家, 大約消耗總產量的13%。其他來源則認為快閃記憶體市場在2006年時的規模超過20億美元,佔據全部半導體市場的8%;在記憶體半導體中則有34%的比重。
[编辑] 限制
[编辑] 區塊抹除
快閃記憶體的一種限制在於即使它可以單一位元組的方式讀或寫入,但是抹除一定是一整個區塊。一般來說都是設定某一區中的所有位元為“1”,剛開始區塊內的所有部份都可以寫入,然而當有任何一個位元被設為“0”時,就只能藉由清除整個區塊來回復“1”的狀態。換句話說快閃記憶體(特別是NOR Flash)能提供隨機讀取與寫入操作,卻無法提供任意的隨機覆寫。不過其上的區塊可以寫入與既存的“0”值一樣長的訊息(新值的0位元是舊值的0位元的超集合)。例如:有一小區塊的值已抹除為1111,然後寫入1110的訊息。接下來這個區塊還可以依序寫入1010、0010,最後則是0000。可是實做上少有演算法可以從這種連續寫入相容性得到好處,一般來說還是整塊抹除再重寫。 儘管快閃記憶體的資料結構不能完全以一般的方式做更新,但這允許它以“標記為不可用”的方式刪除訊息。這種技巧在每單元儲存大於1位元資料的MLC裝置中必須稍微做點修改。
[编辑] 記憶保存
另一項快閃記憶體的限制是它有抹寫循環的次數限制(大多商業性SLC快閃記憶體保證“0”區有十萬次的抹寫能力,但其他區塊不保證)。這個結果部分地被某些韌體或檔案系統為了在相異區塊間安排寫入操作而進行的計算寫入次數與動態重測所抵銷;這種技巧稱為耗損平衡。另一種處理方法稱為壞區管理(Bad Block Management, BBM)。這種方法是在寫入時做驗證並進行動態重測,如果有驗證失敗的區塊就加以剔除。 對多數行動裝置而言,這些磨損管理技術可以延長其內部快閃記憶體的壽命(甚至超出這些裝置的使用年限)。此外,遺失部分資料在這些裝置上或許是可接受的。至於會進行大量資料讀寫循環的高可靠性資料儲存應用則不建議使用快閃記憶體。不過這種限制不適用於路由器與瘦客戶端(Thin clients)等唯讀式應用,這些裝置往往在使用年限內也只會寫入一次或少數幾次而已。
[编辑] 低階存取
快閃記憶體晶片的低階介面通常與透過支援外界的定址匯流排行隨機存取的DRAM、ROM、EEPROM等記憶體不同。 NOR Flash本身為讀取操作(支援隨機存取)提供外部定址匯流排;至於解鎖、抹除與寫入則須以區塊-區塊(Block-by-block)的方式進行,典型的區塊大小為64、128或256位元組。NADA 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也可以用在儲存裝置上;不過與NADA Flash相比,NOR Flash的寫入速度一般來說會慢很多。
[编辑] NADA Flash
東芝在1989年發表了NADA Flash架構,這種記憶體的存取方式類似硬碟之類的區塊性儲存裝置,每個區塊構成幾個頁。一般來說這些頁的尺寸為512、2048或4096位元組。各個頁之間彼此會有幾個位元組的關聯性(一般而言是12~16位元組),這些空間用於儲存偵錯與糾錯的校驗和。以下是一些典型的區塊大小與其內部包含的關連性尺寸:
- 每32個512位元組的頁包含1個16kB的關連性區塊
- 每64個2048位元組的頁包含1個128kB的關連性區塊
- 每64個4096位元組的頁包含1個256kB的關連性區塊
- 每128個4096位元組的頁包含1個512kB的關連性區塊
當寫入建立在這種“頁”的基礎上時,抹除便只能以區塊性的方法進行。NADA Flash還有一項限制就是區塊內的資料只能序列性的寫入。操作次數(Number of Operations, NOPs)則代表區扇可以被寫入的次數。目前MLC的NOPs是1;而SLC則是4。 NADA Flash也要求裝置驅動程式、軟體或分離的控制晶片進行壞區管理,例如SD卡內部便包含壞區管理與耗損平衡的電路。當一個邏輯區被高階軟體存取時,實際繪測的工作由驅動程式或控制器進行