国产亚洲精品AA片在线观看,丰满熟妇HD,亚洲成色www成人网站妖精,丁香五月天婷婷五月天男人天堂

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 從Nand特性談其燒錄關鍵點

從Nand特性談其燒錄關鍵點

作者:周立功致遠電子 時間:2016-06-08 來源:電子產品世界 收藏

  為什么 Flash經常失敗?為什么成功了,一部分芯片貼板之后系統(tǒng)卻運行不起來?…,等等,問了那么多為什么,那我反問一個問題:你了解 Flash的特性及其關鍵點嗎?

本文引用地址:http://www.ljygm.com/article/201606/292408.htm

  

圖片10.jpg

 

  一、Nand flash的特性

  1、位翻轉

  在 NAND 閃存是通過對存儲單元(Cell)進行充電來完成數(shù)據(jù)存儲的,存儲單元的閾值電壓就對應著數(shù)據(jù)值。當讀取的時候,通過將它的閾值電壓與參考點對比來獲得其數(shù)據(jù)值。對SLC 而言,就只有兩種狀態(tài)和一個參考點。而對于2-Bits 的MLC 而言,它有4 種狀態(tài)和三個參考點。TLC就更多狀態(tài)和參考點。當讀出的數(shù)據(jù)值與編程時數(shù)據(jù)值對應的閾值電壓不相匹配時,表明數(shù)據(jù)發(fā)生了位翻轉,就帶來了可靠性問題。導致位翻轉的最常見原因是“編程干擾”導致的閾值電壓漂移。

  2、存儲結構

  Nand 閃存由多個Block組成,每一個Block又由多個Page組成,Page的大小一般為512+16Bytes 、2K+64Bytes以及4096+128Bytes,Page是讀取和編程的基本單位,而擦除的基本單位是Block。

  NAND Flash的頁,包含主區(qū)(Main Area)和備用區(qū)(Spare Area)兩個域,“主區(qū)”也常稱作數(shù)據(jù)區(qū),備用區(qū)是保留區(qū)域,一般用來標記壞塊(bad block)和存放ECC的值,當然有些文件系統(tǒng)使用備用區(qū)記錄擦除次數(shù)、文件組織數(shù)據(jù)等。

  

圖片11.jpg

 

  圖1.1 為頁大小為2048+64的閃存存儲結構

  3、壞塊及ECC

  位翻轉的發(fā)生是隨機的,且比特誤碼的數(shù)量會隨著擦寫次數(shù)的增加而增加。但是只要比特誤碼的數(shù)量在ECC 能夠糾正的范圍內,數(shù)據(jù)的完整性就始終有保障。在有些點,每頁的比特誤碼有可能很接近ECC 所能糾正的極限,NAND 的控制系統(tǒng)必須嚴防比特誤碼超過可糾錯的范圍,否則,就可能造成數(shù)據(jù)丟失或者系統(tǒng)無法正常工作。因此,這些塊必須要標記為壞塊。壞塊永遠不應該再用來存儲數(shù)據(jù)。由于壞塊的產生是不可避免的,NAND 制造商在對裸片測試時會選擇對某些塊進行壞塊標記,而不是放棄整個裸片,所以大多數(shù)NAND 在出廠時就已經存在標記為壞塊的塊。如果一個NAND 的塊被標記為壞塊,那么NAND 的容量就永久性的減小了。

  二、Nand系統(tǒng)裸片量產燒錄的關鍵點

  由于Nand flash芯片的特性,以其作為存儲介質時必須對這些特性進行恰當處理,這樣系統(tǒng)才能正常運行。系統(tǒng)設定各分區(qū)數(shù)據(jù)在Nand芯片的存儲布局,并且在存儲驅動層對Nand進行位糾錯、壞塊管理等處理,這些信息需要系統(tǒng)/驅動工程師明確。

  研發(fā)階段或小批量生產階段,常采用在板燒錄的方式,原理是將boot通過串口下載到內存跑起來,由boot從SD卡或網絡將內核鏡像、文件系統(tǒng)鏡像等數(shù)據(jù)燒錄到Nand flash芯片。

  為了提高生產效率或別的方面考慮,會使用燒錄器對Nand flash裸片進行量產燒錄,由于燒錄器廠家并不知道存儲驅動層對Nand各種特性的處理方式,所以不加正確配置就進行燒錄的話,往往出現(xiàn)以下情況:1. 燒錄失敗,經常是校驗通不過;2. 燒錄通過,但是部分芯片貼板之后系統(tǒng)運行不起來,或者運行起來某些模塊出現(xiàn)一些錯誤與異常。這些大多不是燒錄器本身的問題,而是裸片燒錄Nand系統(tǒng)時幾個重要的關鍵點沒有處理好,或者說沒有和目標系統(tǒng)相關處理一致。這些關鍵點包括:

  1) 壞塊處理策略

  2) 分區(qū)(Partition)

  3) 糾錯碼(Error Correction Codes,ECC)

  當然,影響燒錄的還有其他因素,比如備用區(qū)的使用情況、未用好快的格式化以及動態(tài)元數(shù)據(jù)等,但我們這里只討論上面幾個比較普遍的因素。

  1、壞塊處理策略

  壞塊一般是根據(jù)芯片的壞塊標記位置進行識別的,而壞塊處理策略定義了在遇到壞塊時算法應該如何處理。策略算法負責將本來應該寫到壞塊的內容寫到其它可選的好塊中。最常用的壞塊處理策略是跳過壞塊,其他典型的還有帶BBT的跳過壞塊及預留塊區(qū)等。

  跳過壞塊的處理策略是最基本最常用的壞塊替換策略。當燒錄中遇到壞塊時,算法簡單地跳過壞塊,而將數(shù)據(jù)寫入下一個好塊。它會造成物理數(shù)據(jù)和邏輯數(shù)據(jù)的位置偏移,這通常需要分區(qū)來解決這個問題。

  2、分區(qū)(Partition)

  采用類跳過壞塊的處理策略的Nand系統(tǒng),常常會把存儲區(qū)分成若干個不同的物理區(qū)域,這就是我們說的分區(qū),概念上很像電腦硬盤的分區(qū)。使用分區(qū)使得你有能力確保你的數(shù)據(jù)可以存到預先指定的物理塊區(qū)內,即便在這之前發(fā)現(xiàn)了一些壞塊。這對一些底層軟件組件比如啟動引導程序和某些必須很容易定位的文件系統(tǒng)驅動程序來說,是非常有幫助的。

  當使用跳過壞塊的替換策略時,壞塊會導致數(shù)據(jù)順移到下一個好塊。如果設置了分區(qū),就可以指導燒錄器確定數(shù)據(jù)的邊界,確保數(shù)據(jù)文件不會侵占鄰近的分區(qū)。

  圖2.2.1就是典型的嵌入式Linux系統(tǒng)的分區(qū)情況。

  

圖片12.jpg

 

  圖2.2.1 典型的嵌入式Linux系統(tǒng)分區(qū)情況

  3、糾錯碼(Error Correction Codes,ECC)

  針對不同工藝、容量的NAND存儲系統(tǒng)采用適當?shù)腅CC算法是應該的,要保證系統(tǒng)的可靠性,甚至是必須的。ECC糾錯碼一般存放在備用區(qū)中,對一整頁或將頁分成若干節(jié)的數(shù)據(jù)進行計算而得。數(shù)據(jù)燒錄之前需要準備好ECC(硬件ECC除外),如果是純數(shù)據(jù)則需要使用ECC算法來生成。Nand裸片量產中,知道ECC算法的糾錯能力(糾錯位數(shù))是很重要的,因為要保證生產效率,燒錄器如果采用ECC來進行校驗數(shù)據(jù)是不實際的,而通過簡單數(shù)據(jù)比對就可以知道數(shù)據(jù)的位翻轉個數(shù),如果翻轉個數(shù)范圍在ECC算法的糾錯范圍之內,則認為校驗應該是通過的。

  三、燒錄定制

  對于以上關鍵點或其它特殊部分,如果燒錄器軟件沒有支持的相應的方案,需要聯(lián)系原廠進行相關算法的定制,比如壞塊處理方案、ECC方案等。



關鍵詞: Nand 燒錄

評論


相關推薦

技術專區(qū)

關閉