nand flash控制器通常提供損耗均衡,糾錯碼(ecc)和壞塊管理功能。
其實現方式可以用軟體,硬體或兩者的組合來實現。
通常,nand flash控制器位於主機和nand快閃儲存器裝置之間,並控制對裝置的訪問。
正是因為如此,為了簡化nand flash控制器設計,emmc基於此而來,將nand flash控制器和儲存器設計在一起,簡化控制器額外的程式操作,提高資料速率。
一、壞塊管理
隨著nand flash使用,nand快閃儲存器陣列的組成塊的儲存器單元可能磨損。所有flash技術都是如此,強大的系統需要將塊故障考慮在內並使其適當調整。
1、壞塊初始化
大多數nand快閃儲存器裝置,如大容量儲存器的各種型別,出廠時都在儲存器陣列中包含一些初始壞塊;這些塊通常被製造商標記為壞,表明它們不應在任何系統中使用。
nand快閃儲存器器件資料表提供壞塊標記的位置。工廠測試在最壞情況下執行,那些未通過此測試的塊被標記為壞塊。如果在系統中使用出廠標記的壞塊,則它可能看起來正常執行,但可能導致其他好塊失敗或產生其他系統錯誤。
如果客戶擦除了出廠標記的壞塊,則標記也會被刪除。為避免丟失此資訊,最好在發出任何program或erase命令之前對壞塊執行初始讀取並建立壞塊表。
在建立原始壞塊表之後,必須對其進行維護和新增,因為附加塊隨著使用而變壞。
2、塊退化和跟蹤
由於nand快閃儲存器裝置中的好模組會降級和磨損,因此不僅要跟蹤初始的壞塊-工廠標記的壞塊,還要跟蹤在正常操作裝置**現錯誤的塊。
塊失敗的型別:當nand快閃儲存器裝置執行期間發生故障時,它們被歸類為永久或臨時故障。
通過適當的nand flash設計實踐可以最大限度地減少臨時故障。如果發生這些故障,則可以恢復儲存器陣列的故障位置;不需要將塊新增到壞塊表中。
要從此類錯誤中恢復,請擦除發生錯誤的塊,並將資料重新程式設計到該塊。
臨時錯誤以多種形式發生:程式干擾:
當在program操作期間改變不打算程式設計的乙個或多個位時,發生程式設計干擾錯誤。
向頁面增加部分頁面程式的數量可能會加劇此錯誤。程式干擾錯誤可能會顯示在正在程式設計的頁面上或同一塊內的其他頁面上。
閱讀打擾:
在read操作期間改變乙個或多個位時發生讀取干擾錯誤。
在正在讀取的塊內發生讀取干擾錯誤,但是在正在讀取的頁面之外的頁面上發生讀取干擾錯誤。在包含這些頁面的塊的erase命令之前,在各個頁面上執行大量(數十萬或數百萬)read操作會加劇此錯誤。
過程式設計:
當塊內位線上的儲存單元閾值柵極電壓變得太高時,可能發生過程式設計。
這可以防止正確讀取儲存器單元並且可能導致給定塊內的後續頁面的程式設計不正確。
資料丟失:
在延長的儲存期間,一些儲存器單元可能通過改變充電增益或電荷損失而丟失資料。高erase / program迴圈計數可以通過在儲存單元的柵極氧化物中誘導陷阱電荷來加劇資料丟失,從而有效地磨損柵極氧化物。
二、磨損均衡
因為nand快閃儲存器單元最終會磨損,強大的nand flash操作應包括耗損均衡策略。
磨損均衡用於在每次程式設計檔案時將邏輯儲存器位址轉換為不同的物理儲存器位址。該操作由連線到nand快閃儲存器裝置的控制器監視和實現。磨損均衡擴充套件nand快閃儲存器單元在整個儲存器陣列範圍內的使用,均衡使用所有記憶體單元,並有助於延長裝置的使用壽命。
損耗均衡演算法確保對每個塊的所有可用寫週期進行相等的使用。
簡單理解就是不能每次存資料在乙個block裡面的,因為半導體器件都會有損耗,所以存資料時可以每次換著block儲存,就是「雨露均沾」的意思,不能老薅乙個羊身上的羊毛。
三、error correction code-ecc
在nand快閃儲存器裝置操作期間或長時間不活動期間可能會發生位錯誤,強制使用ecc。
「錯誤」指的是位反轉,一般是浮柵極的電子飄移導致電壓偏移,使得從1變為0;或者讀取或者寫入錯誤。ecc的特徵通常在於每528位元組資料扇區檢查的**可以校正的位數。(資料扇區通常為528位元組,但在某些裝置中可能會有所不同)
例如,如果控制器具有1位ecc,則能夠糾正每個資料扇區中的乙個1位錯誤。
當數字資料儲存在非易失性儲存器中時,擁有一種可以檢測並糾正一定數量錯誤的機制至關重要。糾錯碼(ecc)以這樣的方式對資料進行編碼,使得解碼器可以識別和糾正資料中的錯誤。
通常,通過向它們新增多個冗餘位來編碼資料串。當重建原始資料時,解碼器檢查編碼的訊息以檢查任何錯誤。
tn-29-63:error correction code (ecc) in slc nand introduction
tn-29-61: wear leveling in nand flash memory introduction
2019-07-22良人當歸即好
ARM學習之Nand FLash控制器
今天學習了nand flash的一些內容。在此做下回憶和總結 1.什麼是nand flash?答 nand flash是一種非易失性的儲存性介質,一般用於儲存嵌入式系統執行所必需的作業系統 應用程式 使用者資料等,地位和pc上的硬碟類似。一般來說,它的介面引腳不像sdram那樣多 sdram有20多...
控制器的功能
程式計數器 用於存放下一條指令 指令暫存器 用於儲存當前指令的 指令解碼器 對操作碼字段進行解碼 微操作訊號發生器 根據指令 狀態暫存器的內容控制整個控制訊號 時序系統 用於得到時鐘訊號 mar儲存訪問單元的位址 mdr存放需要向主存寫入的資訊,從主存中讀出資訊 使用者可程式設計 pc,psw,ac...
S5PV210的NandFlash控制器部分
s5pv210的nandflash控制器部分 1.如圖是s5pv210的nandflash的控制框圖 s5pv210的nand控制器的主要暫存器 nfconf nfcont nfcmmd nfaddr nfdata nfmeccd0 nfmeccd1 nfseccd nfstat 2.nand晶元本...