新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 淺析Nand Flash編程應用難點

        淺析Nand Flash編程應用難點

        作者: 時間:2018-07-25 來源:網絡 收藏

        Nand Flash存儲器是flash存儲器的一種,為固態大容量內存的實現提供了廉價有效的解決方案。NAND存儲器具有容量較大,改寫速度快等優點,適用于大量數據的存儲,如嵌入式產品中包括數碼相機、記憶卡、體積小巧的U盤等。

        本文引用地址:http://www.104case.com/article/201807/383768.htm

        1989年,東芝公司發表了Nand Flash結構,強調降低每比特的成本,更高的性能,并且像磁盤一樣可以通過接口輕松升級。經過十幾年的發展,NAND應用越來越廣泛,但是大多數工程師卻仍然不知道關于NAND應用的一些:分區、ECC糾錯、壞塊管理等。只有真正了解NAND特性的工程師,才能在應用上得心應手,不會被Nand Flash所絆倒。

        一、分區

        定義分區的實質是定義數據會如何寫入NAND Flash,不同內容的數據寫到對應的地址中。一般用戶會有多個區,比如boot、kernel、fs、user等分區。

        分區的描述:分區的地址范圍(起始塊、結束塊),鏡像文件大小(Image Size)。

        分區的數據存儲:鏡像文件是從分區的起始塊開始存放,如果分區中有壞塊,將使用壞塊處理策略替換壞塊,直到鏡像文件結束,如果分區中不夠好塊存放鏡像文件,則燒錄失敗。

        如下圖是跳過壞塊的鏡像文件分區燒寫示意圖:

        二、ECC(錯誤更正)算法

        ECC 存在于NAND 每頁的備用區(Spare Area)中,它允許外部系統發現主區的數據是否有誤。在大多數情況下,ECC 算法可以糾正誤碼,在使用中也可能會出現壞塊,所以ECC是非常有必要的。

        不同的用戶會可能會使用不同的ECC算法,一般來說ECC算法由處理器供應商提供,如果器軟件中無這個ECC算法,則需要用戶提供ECC算法源代碼。

        如果用戶不使用調入文件,而是使用讀母片的方式燒錄,并且無動態數據,則可以不考慮ECC算法,因為母片中的備用區已計算好ECC,直接將母片的備用區拷貝至其他芯片即可。

        三、壞塊管理

        壞塊處理策略定義了在遇到壞塊時算法應該如何處理,基本的壞塊處理策略有:跳過壞塊、替換表(預留塊區Reserve BlockArea,RBA)等等,下面分別對幾種壞塊處理方案進行說明。

        1) 硬拷貝

        硬拷貝其實就是遇到壞塊什么都不處理,不管好塊還是壞塊直接燒寫按順序燒寫數據,即使校驗數據不一致也不報錯,這是最簡單、直接的處理方法,但是只能適用于數據不需管理的方案;

        2) 跳過壞塊

        跳過壞塊就是燒錄數據時,遇到壞塊即跳過此壞塊,將數據順延燒到下一個好塊,這樣可以保證所有的數據都能燒寫到NAND存儲空間中,但是并不知道數據究竟燒到了哪一位;

        3) 替換表

        此方法是將NAND存儲空間中預留出一些塊作為保留塊,當遇到壞塊時,在預留的保留塊中選一個塊來替換壞塊,將原來寫到壞塊的數據寫到替換塊中;

        4) BBT(Bad block table)

        此方法核心是跳過壞塊,但是跳過后需要在NAND閃存指定位置寫入一個壞塊表(Bad block table),下圖是BBT的結構圖。

        NAND應用需要注意的點大致整理如上,實際使用中會有靈活的應用方案,需要熟知NAND特性、器原理的工程師才能設計出合適的方案加以運用。P800Flash極速器融合了ZLG致遠電子三代Flash編程器的特點,全面支持eMMC、NOR、NAND Flash的燒錄,可提供完善的編程解決方案。



        關鍵詞: NandFlash 編程 難點

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 泸西县| 定日县| 宁南县| 克东县| 建德市| 横山县| 泌阳县| 平顺县| 祁门县| 隆子县| 岳普湖县| 新余市| 武宣县| 阳原县| 北辰区| 抚顺县| 鸡西市| 黑山县| 棋牌| 长白| 大理市| 洪雅县| 五莲县| 内乡县| 平遥县| 沧源| 延安市| 竹溪县| 金华市| 大名县| 和平县| 浦江县| 堆龙德庆县| 南岸区| 鲜城| 安阳县| 呼图壁县| 那曲县| 白沙| 通河县| 平南县|