康 旺 張有光 金令旭 王名邦
(北京航空航天大學 電子信息工程學院,北京 100191)
因閃存(Flash memory)具有非易失性、高密度、高存儲速度、低功耗、防震等諸多優良特性而備受人們青睞,隨著移動通信的發展以及便攜式設備的普及,閃存的應用也越來越廣泛,成為當前市場上最主流的固態存儲器之一.閃存通常由若干閃存塊(block)組成,閃存塊由若干物理頁(page)組成,而物理頁又由若干基本的存儲胞元(cell)組成.閃存根據胞元內部結構的不同可分為“或非(NOR)”型和“與非(NAND)”型兩種,而根據胞元可存儲比特(bit)數目的不同又可以分為SLC(Single-Level Cell)型和MLC(Multi-Level Cell)型兩種,SLC型Flash的胞元狀態只有兩個,只能存儲一個比特信息,而MLC型胞元狀態有多個(4~256或者更多),可以存儲多個比特信息[1].本文只討論 MLC NAND Flash.
NAND Flash以頁為單位進行讀寫操作,且在重寫之前需對目標區域進行擦除,而以塊為單位進行擦除,且擦除次數是有限的(SLC為10萬次左右,MLC為1萬次左右),因此,提高Flash的生命周期是當前研究熱點之一,也是Flash大規模普及面臨最嚴重的挑戰之一.目前的研究方案有很多,涉及不同的層次,其中采用磨損均衡的方式以平衡各個塊的擦除次數主要是考慮設計一個良好的文件系統,該方案易于操作也比較有效,但是其會帶來額外的數據擦除[2];而采用存儲編碼(storage coding)通過對存儲的數據進行編碼,以控制存儲狀態轉移,從而提高存儲單元的重寫次數,減小塊的擦除次數,如 floating codes[3],buffer codes[4], multidimensional Flash codes[5], rank modulation[6]等,其同樣會帶來系統設計上的難度,目前難以應用于實際系統;另外……