《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > Nand Flash編程應(yīng)用難點(diǎn)淺析

Nand Flash編程應(yīng)用難點(diǎn)淺析

2017-10-11
來(lái)源:ZLG致遠(yuǎn)電子

  Nand Flash存儲(chǔ)器是flash存儲(chǔ)器的一種,為固態(tài)大容量?jī)?nèi)存的實(shí)現(xiàn)提供了廉價(jià)有效的解決方案。NAND存儲(chǔ)器具有容量較大,改寫速度快等優(yōu)點(diǎn),適用于大量數(shù)據(jù)的存儲(chǔ),如嵌入式產(chǎn)品中包括數(shù)碼相機(jī)、記憶卡、體積小巧的U盤等。

  1989年,東芝公司發(fā)表了Nand Flash結(jié)構(gòu),強(qiáng)調(diào)降低每比特的成本,更高的性能,并且像磁盤一樣可以通過接口輕松升級(jí)。經(jīng)過十幾年的發(fā)展,NAND應(yīng)用越來(lái)越廣泛,但是大多數(shù)工程師卻仍然不知道關(guān)于NAND應(yīng)用的一些難點(diǎn):分區(qū)、ECC糾錯(cuò)、壞塊管理等。只有真正了解NAND特性的工程師,才能在應(yīng)用上得心應(yīng)手,不會(huì)被Nand Flash所絆倒。

  一、分區(qū)

  定義分區(qū)的實(shí)質(zhì)是定義數(shù)據(jù)會(huì)如何寫入NAND Flash,不同內(nèi)容的數(shù)據(jù)寫到對(duì)應(yīng)的地址中。一般用戶會(huì)有多個(gè)區(qū),比如boot、kernel、fs、user等分區(qū)。

  分區(qū)的描述:分區(qū)的地址范圍(起始?jí)K、結(jié)束塊),鏡像文件大小(Image Size)。

  分區(qū)的數(shù)據(jù)存儲(chǔ):鏡像文件是從分區(qū)的起始?jí)K開始存放,如果分區(qū)中有壞塊,將使用壞塊處理策略替換壞塊,直到鏡像文件結(jié)束,如果分區(qū)中不夠好塊存放鏡像文件,則燒錄失敗。

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

1.png

  二、ECC(錯(cuò)誤更正)算法

  ECC 存在于NAND 每頁(yè)的備用區(qū)(Spare Area)中,它允許外部系統(tǒng)發(fā)現(xiàn)主區(qū)的數(shù)據(jù)是否有誤。在大多數(shù)情況下,ECC 算法可以糾正誤碼,NandFlash在使用中也可能會(huì)出現(xiàn)壞塊,所以ECC是非常有必要的。

  不同的用戶會(huì)可能會(huì)使用不同的ECC算法,一般來(lái)說ECC算法由處理器供應(yīng)商提供,如果編程器軟件中無(wú)這個(gè)ECC算法,則需要用戶提供ECC算法源代碼。

  如果用戶不使用調(diào)入文件,而是使用讀母片的方式燒錄,并且無(wú)動(dòng)態(tài)數(shù)據(jù),則可以不考慮ECC算法,因?yàn)槟钙械膫溆脜^(qū)已計(jì)算好ECC,直接將母片的備用區(qū)拷貝至其他芯片即可。

  三、壞塊管理

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

  1)硬拷貝

  硬拷貝其實(shí)就是遇到壞塊什么都不處理,不管好塊還是壞塊直接燒寫按順序燒寫數(shù)據(jù),即使校驗(yàn)數(shù)據(jù)不一致也不報(bào)錯(cuò),這是最簡(jiǎn)單、直接的處理方法,但是只能適用于數(shù)據(jù)不需管理的方案;

2.jpg

  2)跳過壞塊

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

3.jpg

  3)替換表

  此方法是將NAND存儲(chǔ)空間中預(yù)留出一些塊作為保留塊,當(dāng)遇到壞塊時(shí),在預(yù)留的保留塊中選一個(gè)塊來(lái)替換壞塊,將原來(lái)寫到壞塊的數(shù)據(jù)寫到替換塊中;

4.png

  4)BBT(Bad block table)

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

5.png

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


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。