Nand Flash 基礎
1. 根據物理結構上的區別,Nand Flash主要分為:
SLC(Single Level Cell): 單層式存儲
MLC(Multi Level Cell): 多層式存儲
TLC(Triple Level Cell): 三層式存儲
註:SLC在存儲格上只存一位數據(2個狀態),MLC存放兩位數據(4個狀態),TLC存放三位數據(8個狀態)。
2. Nand Flash 地址結構
註:
①Row Address即頁地址,Column Address即頁內偏移
②正常頁內容讀取用Column Address(A0-A10),共11位,最大索引地址為2^11 = 2048
③OOB區域索引用Column Address(A0- A12),共12位,可以索引2048後面的地址
3. Nand Flash 信號引腳
①CLE(Command Latch Enable): 命令鎖存允許
②ALE(Address Latch Enable): 地址鎖存允許
③CE: 片選
④RE: 讀允許
⑤WE: 寫允許
⑥WP: 在寫或者擦期間,提供寫保護
⑦R/B: 讀/忙
註:
現代一些SOC都自帶Nand Flash控制器,軟件工程師只需配置一些控制寄存器,然後按照順序填寫命令寄存器、地址寄存器,操作數據寄存器讀寫數據。
4. Nand Flash 命令集
5. ECC校驗
① ECC的全稱是Error Checking and Correction,是一種用於Nand的差錯檢測和修正算法
② 校驗碼生成算法:ECC校驗每次對256字節的數據進行操作,包含列校驗和行校驗
列校驗:
註:CP0~CP5為6個Bit位,表示Column Parity(列極性)
行校驗:
註:RP0~RP15為16個Bit,表示Row Parity(行極性)
綜上,對256字節的數據共生成了6個Bit的列校驗結果,16個Bit的行校驗結果,共22個Bit
Nand Flash 基礎