NandFlash的位反轉

2021-09-27 12:18:09 字數 690 閱讀 9467

flash位反轉

由於flash固有的特性,在讀寫資料過程中,偶然會產生一位或幾位資料錯誤(這種概率很低),bit位從「1」變為「0」,或者從「1」變為「0」。

當位反**生在關鍵的**、資料上時,有可能導致系統崩潰。當僅僅是報告位反轉,重新讀取即可:如果確實發生了位反轉,則必須有相應的錯誤檢測/恢復措施。

在nand flash上發生位反轉的概率很高,推薦使用edc/ecc進行錯誤檢測和恢復。

nand比nor出現概率高,是因為nand是單浮柵極結構,但是nor是控制管+浮柵極結構,控制管和浮柵極結構,在對其中浮柵極操作時首先要使得控制管有效,所以相當於增加了單獨選中單元,不容易影響到其他地方。

具體原因:

漂移效應(drifting effects)

漂移效應指的是,nand flash中cell的電壓值,慢慢地變了,變的和原始值不一樣了。

程式設計干擾所產生的錯誤(program-disturb errors)

此現象有時候也叫做,過度程式設計效應(over-program effect)。

對於某個頁面的程式設計操作,即寫操作,引起非相關的其他的頁面的某個位跳變了。

讀操作干擾產生的錯誤(read-disturb errors)

此效應是,對乙個頁進行資料讀取操作,卻使得對應的某個位的資料,產生了永久性的變化,即nand flash上的該位的值變了。

位反轉演算法

比如0x12 0001 0010 反轉後變成 0100 1000 即0x48 static unsigned char buf 0x12,buf1 0 static int m,n for m 7,n 0 m n 0 m n buf buf1 將兩位元組short型別數高低位元組取出來 unsign...

反轉位元組中的位

使用有限的記憶體操作完成位元組中的位反轉。完成後,修改 讓它執行得盡可能快 但沒有記憶體限制 優化和正確性相比,總是居於次要位置。uint8 t swapbitsinbyte uint8 t input uint8 t output 0 for uint8 t i 0 i 8 i if input ...

解析高效位反轉

把乙個二進位制數反轉 逆序輸出 的 如下 unsigned char fun4 unsigned char c 實際上,這段 的原理很簡單。就是先2位一組反轉,再4位一組反轉,最後8位一組反轉。其中,4位一組反轉時,把一組分為兩半看,每一半都已經反轉了,所以只要將兩半對調即可。8位一組同理。對於2 ...