是一種電可擦除可編程只讀存儲器(Electrically Erasable ProgrammableRead Only Memory,EEPROM),具有非易失、讀寫速度快、抗震、低功耗、體積小等特性,目前己廣泛應(yīng)用于嵌入式系統(tǒng)、航空航天、消費電子等領(lǐng)域。
閃存通過電荷存儲信息,每個存儲單元可以存儲一個或多個比特的數(shù)據(jù)。在寫入數(shù)據(jù)時,閃存通過向存儲單元施加高電壓來改變其電荷狀態(tài),從而記錄數(shù)據(jù)。讀取數(shù)據(jù)時,閃存則通過檢測存儲單元的電荷狀態(tài)來確定數(shù)據(jù)值。在特定的電壓作用下,電子被注入或移出浮置柵極,從而實現(xiàn)數(shù)據(jù)的寫入和擦除。
閃存存儲器主要分為NOR型和型兩種,NOR型閃存有獨立的地址線和數(shù)據(jù)線,它支持按位進行訪問,具有高可靠性且隨機讀取速度較快,但NOR閃存的擦除和寫操作速度較慢、容量小、價格昂貴,主要用于存儲程序代碼并在內(nèi)存中直接運行。NOR閃存在手機上得到了廣泛的應(yīng)用。NAND閃存相對于NOR型閃存擁有更大的容量,適合進行數(shù)據(jù)存儲。
此外,它類似于傳統(tǒng)的機械硬盤,對于小數(shù)據(jù)塊的操作較慢,對于大數(shù)據(jù)塊操作較快。NAND閃存根據(jù)其芯片單元所能存儲的比特位數(shù)又可分為單級晶胞(SLC)和多級晶胞(MLC)兩類。MLC技術(shù)具有顯著的存儲密度優(yōu)越性,相對于SLC每個單元僅能存儲1位比特,MLC可以存儲多位比特,但MLC在速度和可靠性方面還有一定的提升空間。
一個NAND型閃存芯片通常由若干個塊組成,每個塊又由若干頁組成。例如,容量為1GB的三星K9WAG08U1AQ)閃存芯片包含8192個塊,每個塊由64個頁組成,每一個頁由數(shù)據(jù)區(qū)和備用區(qū)組成,2KB的數(shù)據(jù)區(qū)用于存儲用戶數(shù)據(jù),64B的備用區(qū)用來存儲校驗、邏輯頁地址等信息。閃存具備讀、寫和擦除3種操作,頁是閃存的基本讀寫單位,重寫數(shù)據(jù)前必須進行擦除,擦除操作以塊為單位,執(zhí)行時間和能耗遠高于讀寫操作。在頁被擦除前,SLC型閃存可以對同一個數(shù)據(jù)頁進行多次寫操作,最小寫單元為512個字節(jié)。閃存芯片的讀寫方式與磁盤截然不同,二者的I/O操作性能對比如下:
類型 | 時間/s | ||
讀(2KB) | 寫(2KB) | 擦除(128KB) | |
磁盤 | 12.7ms | 13.7ms | N/A |
NAND型閃存 | 80μs | 200μs | 1.5ms |
總的來說,閃存不同于磁盤的特性包括以下幾點:
(1)無機械延遲,作為一種純電子設(shè)備,閃存沒有機器延遲,隨機訪問和順序訪問的開銷相當,具有很高的隨機讀性能;
(2)讀寫不對稱,閃存對不同類型訪問操作表現(xiàn)的性能差別很大,一般來說,讀速度很快,寫入數(shù)據(jù)時,因為需要通過加壓的方式對存儲單元進行電子填充,所以速度較慢;
(3)異位更新。與磁盤的原位更新不同,對閃存數(shù)據(jù)進行重寫需要先執(zhí)行擦除操作,即便是只更新數(shù)據(jù)塊中的一條數(shù)據(jù)也需要將整個塊擦除,頻繁的擦除操作會使系統(tǒng)性能顯著降低。因此,閃存設(shè)備在更新數(shù)據(jù)時并不會直接在原位進行更新,而是先將原數(shù)據(jù)置為無效,然后把修改后的數(shù)據(jù)寫到一個新的空閑頁;
(4)擦除次數(shù)有限,閃存芯片的塊擦除次數(shù)是有限制的,通常SLC閃存支持10萬次擦除操作,MLC閃存數(shù)據(jù)存儲密度高,可擦除次數(shù)在1萬次左右,超過一定擦除次數(shù)的閃存單元將不再可用;
(5)低能耗。與磁盤相比,閃存的能耗更低,每GB讀數(shù)據(jù)能耗只有磁盤的2%,寫操作能耗不足磁盤的30%。
閃存的出現(xiàn)為建設(shè)綠色數(shù)據(jù)中心以及低能耗數(shù)據(jù)管理系統(tǒng)提供了有力支持,閃存有比磁盤更加復雜的硬件特性,傳統(tǒng)的磁盤數(shù)據(jù)庫技術(shù)在閃存上并不適用,設(shè)計適用于閃存的結(jié)構(gòu)、算法和應(yīng)用是閃存數(shù)據(jù)管理必須要解決的一個重要問題。