非易失性存儲器(英語:non-volatile memory,縮寫為NVM)是指當電流關(guān)掉后,所存儲的數(shù)據(jù)不會消失的電腦存儲器。非易失性存儲器中,依存儲器內(nèi)的數(shù)據(jù)是否能在使用電腦時隨時改寫為標準,可分為二大類產(chǎn)品,即ROM和Flash memory。
類型
非易失性存儲器主要有以下類型:
??ROM(Read-only memory,只讀內(nèi)存)
??PROM(Programmable read-only memory,可編程只讀內(nèi)存)
??EAROM(Electrically alterable read only memory,電可改寫只讀內(nèi)存)
??EPROM(Erasable programmable read only memory,可擦可編程只讀內(nèi)存)
??EEPROM(Electrically erasable programmable read only memory,電可擦可編程只讀內(nèi)存)
??Flash memory(閃存)
只讀存儲器
只讀存儲器( Read- Only Memory, ROM)是一種半導體存儲器,其特性是一旦存儲數(shù)據(jù)就無法再將之改變或刪除,且內(nèi)容不會因為電源關(guān)閉而消失。在電子或電腦系統(tǒng)中,通常用以存儲不需經(jīng)常變更的程序或數(shù)據(jù),例如早期的家用電腦如Apple II的監(jiān)督程序、BASIC語言解釋器、與硬件點陣字體,個人電腦IBM PC/XT/AT的BIOS(基本輸入輸出系統(tǒng))與IBM PC/XT的BASIC解釋器,與其他各種微電腦系統(tǒng)中的固件(Firmware),均存儲在ROM內(nèi)。
PROM
主條目:PROM
可編程只讀存儲器(Programmable ROM,PROM)其內(nèi)部有行列式的絲,可依用戶(廠商)的需要,利用電流將其燒斷,以寫入所需的數(shù)據(jù)及程序,镕絲一經(jīng)燒斷便無法再恢復,亦即數(shù)據(jù)無法再更改。
EPROM
主條目:EPROM
可抹除可編程只讀存儲器(Erasable Programmable Read Only Memory,EPROM)可利用高電壓將數(shù)據(jù)編程寫入,但抹除時需將線路曝光于紫外線下一段時間,數(shù)據(jù)始可被清空,再供重復使用。因此,在封裝外殼上會預留一個石英玻璃所制的透明窗以便進行紫外線曝光。寫入程序后通常會用貼紙遮蓋透明窗,以防日久不慎曝光過量影響數(shù)據(jù)。
OTPROM
一次編程只讀存儲器(One Time Programmable Read Only Memory,OTPROM)內(nèi)部所用的芯片與寫入原理同EPROM,但是為了節(jié)省成本,封裝上不設置透明窗,因此編程寫入之后就不能再抹除改寫。
EEPROM
主條目:EEPROM
電子抹除式可復寫只讀存儲器(Electrically Erasable Programmable Read Only Memory,EEPROM)之運作原理類似EPROM,但是抹除的方式是使用高電場來完成,因此不需要透明窗。
閃存
快閃存儲器(英語: flash memory),是一種電子式可清除程序化只讀存儲器的形式,允許在操作中被多次擦或?qū)懙拇鎯ζ鳌_@種科技主要用于一般性數(shù)據(jù)存儲,以及在電腦與其他數(shù)字產(chǎn)品間交換傳輸數(shù)據(jù),如儲存卡與U盤。閃存是一種特殊的、以宏塊抹寫的EEPROM。早期的閃存進行一次抹除,就會清除掉整顆芯片上的數(shù)據(jù)。
閃存的成本遠較可以字節(jié)為單位寫入的EEPROM來的低,也因此成為非易失性固態(tài)存儲最重要也最廣為采納的技術(shù)。像是PDA、筆記本電腦、數(shù)字隨身聽、數(shù)碼相機與手機上均可見到閃存。此外,閃存在游戲主機上的采用也日漸增加,借以取代存儲游戲數(shù)據(jù)用的EEPROM或帶有電池的sram。
閃存是非易失性的內(nèi)存。這表示單就保存數(shù)據(jù)而言,它是不需要消耗電力的。與硬盤相比,閃存也有更佳的動態(tài)抗震性。這些特性正是閃存被移動設備廣泛采用的原因。閃存還有一項特性:當它被制成儲存卡時非常可靠──即使浸在水中也足以抵抗高壓與極端的溫度。閃存的寫入速度往往明顯慢于讀取速度。
雖然閃存在技術(shù)上屬于EEPROM,但是“EEPROM”這個字眼通常特指非快閃式、以小區(qū)塊為清除單位的EEPROM。它們典型的清除單位是字節(jié)。因為老式的EEPROM抹除循環(huán)相當緩慢,相形之下快閃記體較大的抹除區(qū)塊在寫入大量數(shù)據(jù)時帶給其顯著的速度優(yōu)勢。閃存最常見的封裝方式是TSOP48和BGA,在邏輯接口上的標準則由于廠商陣營而區(qū)分為兩種:ONFI和Toggle。手機上的閃存常常以eMMC的方式存在。
閃存的限制
區(qū)塊抹除
閃存的一種限制在于即使它可以單一字節(jié)的方式讀或?qū)懭耄悄ǔ欢ㄊ且徽麄€區(qū)塊。一般來說都是設置某一區(qū)中的所有比特為“1”,剛開始區(qū)塊內(nèi)的所有部分都可以寫入,然而當有任何一個比特被設為“0”時,就只能借由清除整個區(qū)塊來恢復“1”的狀態(tài)。換句話說閃存(特別是NOR Flash)能提供隨機讀取與寫入操作,卻無法提供任意的隨機改寫。不過其上的區(qū)塊可以寫入與既存的“0”值一樣長的消息(新值的0比特是舊值的0比特的超集)。例如:有一小區(qū)塊的值已抹除為1111,然后寫入1110的消息。接下來這個區(qū)塊還可以依序?qū)懭?010、0010,最后則是0000。可是實際上少有算法可以從這種連續(xù)寫入兼容性得到好處,一般來說還是整塊抹除再重寫。盡管閃存的數(shù)據(jù)結(jié)構(gòu)不能完全以一般的方式做更新,但這允許它以“標記為不可用”的方式刪除消息。這種技巧在每單元存儲大于1比特數(shù)據(jù)的MLC設備中必須稍微做點修改。
記憶耗損
另一項閃存的限制是它有抹寫循環(huán)的次數(shù)限制(大多商業(yè)性SLC閃存保證“0”區(qū)有十萬次的抹寫能力,但其他區(qū)塊不保證)。這個結(jié)果部分地被某些固件或文件系統(tǒng)為了在相異區(qū)塊間分散寫入操作而進行的計算寫入次數(shù)與動態(tài)重對映所抵銷;這種技巧稱為耗損平衡(wear leveling)。另一種處理方法稱為壞區(qū)管理(Bad Block Management,BBM)。這種方法是在寫入時做驗證并進行動態(tài)重測,如果有驗證失敗的區(qū)塊就加以剔除。對多數(shù)移動設備而言,這些磨損管理技術(shù)可以延長其內(nèi)部閃存的壽命(甚至超出這些設備的使用年限)。此外,丟失部分數(shù)據(jù)在這些設備上或許是可接受的。至于會進行大量數(shù)據(jù)讀寫循環(huán)的高可靠性數(shù)據(jù)存儲應用則不建議使用閃存。不過這種限制不適用于路由器與瘦客戶端(Thin clients)等只讀式應用,這些設備往往在使用年限內(nèi)也只會寫入一次或少數(shù)幾次而已。
讀取干擾
所使用的閃存讀取方式隨著時間的推移會導致在同一區(qū)塊中相近的記憶單元內(nèi)容改變(變成寫入動作)。這即是所謂的讀取干擾。會導致讀取干擾現(xiàn)象的讀取次數(shù)門檻介于區(qū)塊被抹除間,通常為100,000次。假如連續(xù)從一個記憶單元讀取,此記憶單元將不會受損,而受損卻是接下來被讀取的周圍記憶單元。為避免讀取干擾問題,閃存控制器通常會計算從上次抹除動作后的區(qū)塊讀取動作總次數(shù)。當計數(shù)值超過所設置的目標值門檻時,受影響的區(qū)塊會被復制到一個新的區(qū)塊,然后將原區(qū)塊抹除后釋放到區(qū)塊回收區(qū)中。原區(qū)塊在抹除動作后就會像新的一樣。若是閃存控制器沒有即時介入時,讀取干擾錯誤就會發(fā)生,如果錯誤太多而無法被ECC機制修復時就會伴隨著可能的數(shù)據(jù)丟失。
寫入(編程)干擾
寫入干擾(編程干擾)是指當對頁(page)進行寫入時,由于閾值電壓接近的關(guān)系,相鄰的位(bit)也被升高,從而造成相鄰的位出錯。閃存電荷非常不穩(wěn)定,相鄰存儲電荷的懸浮門間會相互干擾,造成相鄰懸浮門間的bit錯誤,MLC由于存在4組接近的電壓,與SLC相比更容易受到干擾。
參考資料 >