小知識大作用:U盤的晶片,爲什麼會有壞塊?

壞塊的種類:

第一種是出廠時就有的壞塊,也就是,你買到的新的,還沒用過的Nand Flash,就可能包含了壞塊。此類出廠時就有的壞塊,被稱作factory (masked) bad block 或initial bad/invalid block,在出廠之前,就會做對應的標記,標為壞塊。

第二種是在使用過程中產生的壞塊,由於使用過程時間長了,在擦塊除的時候,出錯了,說明此塊壞了,也要在程序運行過程中,發現,並且標記成壞塊的。具體標記的位置,和上面一樣。這類塊叫做worn-out bad block。即用壞了的塊。

小知識大作用:U盤的芯片,為什麼會有壞塊?

壞塊標記:

NAND Flash壞塊標記的位置三種情況:每個塊的第1頁、第1頁和第2頁、最後1頁。對於小頁(512Bytes大小),壞塊標記是在OOB區域的第6個字節。對於大頁(如2K大小),壞塊標記是在OOB區域的第1個字節。如果壞塊標記字節是0xff,則說明這個塊是好塊,否則就是壞塊。

小知識大作用:U盤的芯片,為什麼會有壞塊?

壞塊管理:

在linux系統中會使用壞塊表(BBT)對壞塊進行管理。在加載NAND驅動時,如果你沒有加入參數主動要求跳過壞塊掃描,那麼系統都會掃描壞塊,並建立BBT。使用中可以通過BBT來查詢某個塊是否是壞塊。使用過程中如果發現壞塊,也需要更新BBT。壞塊表有兩種存放方式:

第一種是存放在內存中,這就要求在每次系統上電後都要重新掃描一次NAND Flash,建立bbt。缺點是使系統啟動速度變慢,優點是不需要佔用NAND Flash空間。

小知識大作用:U盤的芯片,為什麼會有壞塊?

第二種是存放在NAND Flash中,這種方式就不需要在系統上電後重新掃描NAND Flash,只需要去讀取就可以了。


分享到:


相關文章: