欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種NANDFlash存儲芯片ECC校驗(yàn)算法的識別方法

文檔序號:2671080閱讀:1009來源:國知局
專利名稱:一種NAND Flash存儲芯片ECC校驗(yàn)算法的識別方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種手機(jī)芯片校驗(yàn)算法的識別方法,涉及一種NAND Flash存儲芯片 ECC校驗(yàn)算法的識別方法,屬于手機(jī)取證技術(shù)領(lǐng)域。
背景技術(shù)
隨著移動通信技術(shù)的不斷發(fā)展以及提供的服務(wù)水平和服務(wù)種類的不斷提高,手機(jī) 日益成為人們工作生活中不可或缺的聯(lián)系工具。與此同時,利用手機(jī)進(jìn)行詐騙、售假、造謠 等違法犯罪活動也日益猖撅。手機(jī)取證正是打擊這類犯罪的一個有效手段。手機(jī)功能的增強(qiáng)使得手機(jī)內(nèi)置存儲芯片的容量不斷增大,因此NAND Flash芯片逐 漸成為手機(jī)內(nèi)主要的非易失性存儲器件。NAND Flash存儲手機(jī)的固件信息和短信、通話記 錄、多媒體等用戶數(shù)據(jù),是手機(jī)取證的主要對象。與磁盤的存儲方式不同,NAND Flash芯片存儲的數(shù)據(jù)分有效數(shù)據(jù)和元數(shù)據(jù)(又叫 帶外數(shù)據(jù))。元數(shù)據(jù)負(fù)責(zé)有效數(shù)據(jù)的管理,元數(shù)據(jù)存儲的區(qū)域叫spare area區(qū)。NAND Flash的工藝特點(diǎn)使其存儲的數(shù)據(jù)在寫入和讀出時會不一致,因此NAND Flash采用專門的ECC(Error Checking and Correction)校驗(yàn)算法保證讀出數(shù)據(jù)的正確 性。ECC校驗(yàn)碼存儲在flash芯片的spare area區(qū),通常由手機(jī)內(nèi)的flash控制器讀取,送 入硬件ECC校驗(yàn)?zāi)K完成相應(yīng)有效數(shù)據(jù)的正確性驗(yàn)證。根據(jù)技術(shù)方式不同,NANDFlash 主要分為 SLC(Single Level Cell)和 MLC(Multi Level Cell)兩種。其中SLC每個存儲單元存放Ibit數(shù)據(jù),而MLC中每個存儲單元存放 2bit數(shù)據(jù),因此MLC型NAND Flash容量大,成本低,但是不夠穩(wěn)定,容易出錯;SLC型NAND Flash容量較小,但更穩(wěn)定。因而SLC的ECC校驗(yàn)常用糾錯能力不強(qiáng)的Hanming碼,MLC使 用糾錯能力更強(qiáng)的RS碼或BCH碼。手機(jī)內(nèi)置NAND Flash芯片中取證數(shù)據(jù)的獲取主要有邏輯鏡像方式和物理鏡像方 式。物理鏡像包含NAND Flash芯片內(nèi)的所有數(shù)據(jù),即有效數(shù)據(jù)和元數(shù)據(jù)。其中有效數(shù)據(jù) 包含那些被刪除數(shù)據(jù)和被犯罪分子故意隱藏數(shù)據(jù)(該數(shù)據(jù)不存在于邏輯鏡像中),因此物 理鏡像成為取證分析的主要研究對象。但是物理鏡像的數(shù)據(jù)獲取過程沒有Flash控制器和 硬件ECC校驗(yàn)?zāi)K的參與,沒辦法保證讀出數(shù)據(jù)的正確性。因此如何判別NAND Flash芯片 采用的ECC校驗(yàn)算法并據(jù)此進(jìn)行錯誤數(shù)據(jù)的校驗(yàn),成為對物理鏡像進(jìn)行取證分析的關(guān)鍵問 題。

發(fā)明內(nèi)容
本發(fā)明的目的是針對現(xiàn)有技術(shù)的問題,為解決在沒有Flash控制器和硬件ECC校 驗(yàn)?zāi)K參與的情況下,無法判斷獲取的物理鏡像數(shù)據(jù)是否正確的問題,提出一種識別NAND Flash芯片采用何種ECC校驗(yàn)算法并進(jìn)行錯誤數(shù)據(jù)校驗(yàn)的方法。首先分析NAND Flash中常用的幾種校驗(yàn)碼Hanming碼、RS碼和BCH碼。其中 Hanming碼的糾錯能力不強(qiáng),只能糾1比特錯檢測2比特錯,常用于SLC型NAND Flash中。一般情況下它用每256字節(jié)有效數(shù)據(jù)生成3字節(jié)的ECC校驗(yàn)碼,其中有6比特列校驗(yàn)和16 比特行校驗(yàn),剩余2比特填充1,共M比特(3個字節(jié)),如圖1。有的情況下用每512字節(jié) 有效數(shù)據(jù)生成3字節(jié)ECC校驗(yàn),其中6比特列校驗(yàn)和18比特行校驗(yàn)共M比特,如圖2。RS 碼是BCH碼的重要子類,可視為BCH碼的特例。MLC型NAND Flash的差錯類型測試顯示其 錯誤是以比特的形式分散在整個數(shù)據(jù)塊內(nèi),所以像BCH碼具有的隨機(jī)錯誤糾錯能力使它更 適于對MLC型NAND Flash進(jìn)行差錯控制。BCH碼通常以512字節(jié)或IOM字節(jié)為單位生成 ECC校驗(yàn)碼。由于BCH是按比特處理數(shù)據(jù),所以這里的512字節(jié)或IOM字節(jié)是指4096比特 或8192比特原始數(shù)據(jù)。BCH校驗(yàn)碼的長度取決于它的最大糾錯能力。假設(shè)BCH碼的最大糾 錯數(shù)據(jù)比特是t,則原始數(shù)據(jù)長度為512字節(jié)的BCH校驗(yàn)碼長度為13*t比特,原始數(shù)據(jù)長度 為IOM字節(jié)的BCH校驗(yàn)碼長度為14*t比特。一般情況下,t取值是4比特或8比特,由此 可計算出512字節(jié)原始數(shù)據(jù)的BCH校驗(yàn)碼長度為52比特(占7字節(jié))或104比特(占13 字節(jié)),1024字節(jié)原始數(shù)據(jù)的BCH校驗(yàn)碼長度為56比特(占7字節(jié))或112比特(占14 字節(jié))。ECC校驗(yàn)算法的識別前提是知道物理鏡像中有效數(shù)據(jù)區(qū)和spare area區(qū)的排列 規(guī)則以及spare area區(qū)內(nèi)ECC校驗(yàn)碼字段的位置。目前手機(jī)內(nèi)置NAND Flash芯片的主流 存儲結(jié)構(gòu)是512+16字節(jié)或2048+64字節(jié),即相應(yīng)物理鏡像中每512字節(jié)有效數(shù)據(jù)后跟16 字節(jié)spare area內(nèi)容或者每2048字節(jié)有效數(shù)據(jù)后跟64字節(jié)sparearea內(nèi)容。申請人在 本申請之前申請的一項(xiàng)專利“一種NAND Flash存儲芯片的元數(shù)據(jù)格式識別方法”也提供了 一種從NAND Flash存儲芯片中識別數(shù)據(jù)的排布規(guī)則以及ECC校驗(yàn)碼字段位置的方法。如果物理鏡像是512+16字節(jié)的數(shù)據(jù)排布格式,則可能的ECC校驗(yàn)算法有每256 字節(jié)生成3字節(jié)校驗(yàn)碼的Hanming碼算法,每512字節(jié)生成3字節(jié)校驗(yàn)碼的Hanming碼算 法以及最大糾錯能力t = 4的BCH碼算法(以512字節(jié)為單位生成校驗(yàn)碼),與之對應(yīng)的 各ECC校驗(yàn)碼長度最少分別為6字節(jié)、3字節(jié)和7字節(jié)。因?yàn)?6字節(jié)中有保留字段、邏輯 地址字段、壞塊標(biāo)識字段,所以其ECC校驗(yàn)碼字段最多不能超過10字節(jié)。如果物理鏡像是 2048+64字節(jié)的數(shù)據(jù)排布格式,則可能采用的ECC校驗(yàn)算法情況較為復(fù)雜,暫不考慮。針對物理鏡像是512+16字節(jié)的數(shù)據(jù)排布格式,本發(fā)明提供了一種NANDFlash存儲 芯片ECC校驗(yàn)算法的識別方法,包括以下步驟一、根據(jù)已知的ECC校驗(yàn)碼字段長度必須大于等于可能采用的ECC校驗(yàn)算法生成 的校驗(yàn)碼長度的原則推測匹配的ECC校驗(yàn)算法;二、對步驟一的推測結(jié)果進(jìn)行驗(yàn)證,并確定標(biāo)準(zhǔn)ECC校驗(yàn)碼和存儲ECC校驗(yàn)碼之間 的對應(yīng)關(guān)系,如不正確則繼續(xù)對下一個推測結(jié)果進(jìn)行驗(yàn)證(1)隨機(jī)生成一些數(shù)據(jù)文件存儲到目標(biāo)手機(jī)的內(nèi)置NAND Flash芯片上,分別獲取 NAND Flash芯片的物理鏡像文件和邏輯鏡像文件并計算它們有效數(shù)據(jù)的MD5值,根據(jù)相同 數(shù)據(jù)段MD5值相等的原則查找每一個邏輯頁對應(yīng)的物理頁,記錄下邏輯頁號、物理頁號及 對應(yīng)的spare area元數(shù)據(jù)內(nèi)容;(2)分析目標(biāo)NAND Flash芯片的邏輯鏡像文件內(nèi)容,確定某個隨機(jī)數(shù)據(jù)文件的位 置,即文件所在的邏輯頁號,記為log_num ;根據(jù)邏輯頁號l0g_rmm查找并讀取對應(yīng)物理頁 spare area ^ftW ;(3)將讀指針定位到NAND Flash芯片邏輯鏡像文件的log_num*512字節(jié)位置處,讀取一定數(shù)量的有效數(shù)據(jù),采用上述推測出的ECC校驗(yàn)算法計算該有效數(shù)據(jù)的ECC校驗(yàn) 碼;(4)將計算得到的ECC校驗(yàn)碼與從物理鏡像的相應(yīng)物理頁中讀出的ECC校驗(yàn)碼進(jìn) 行對比。如果完全一致則說明推測的ECC校驗(yàn)算法正確;如果不完全一致則繼續(xù)執(zhí)行步驟 (5);算得到的ECC校驗(yàn)碼與從物理鏡像的相應(yīng)物理頁中讀出的ECC校驗(yàn)碼不完全一致 并不說明推測的ECC校驗(yàn)算法錯誤,因?yàn)镠anming碼和BCH碼都是按比特處理數(shù)據(jù)的,其生 成的檢驗(yàn)碼也是按比特進(jìn)行存儲的,所以目標(biāo)手機(jī)內(nèi)存儲的ECC校驗(yàn)碼的存放規(guī)律可能與 推測的ECC校驗(yàn)算法計算出的標(biāo)準(zhǔn)ECC校驗(yàn)碼的存放規(guī)律不同。(5)要找出存儲的ECC校驗(yàn)碼和標(biāo)準(zhǔn)ECC校驗(yàn)碼各比特之間存在的對應(yīng)關(guān)系(i)從NAND Flash芯片邏輯鏡像文件的log_num*512字節(jié)位置開始,根據(jù)推測的 ECC校驗(yàn)算法連續(xù)計算多個邏輯頁的標(biāo)準(zhǔn)ECC校驗(yàn)碼;統(tǒng)計所有校驗(yàn)碼每比特值為1的個 數(shù)。為了保證統(tǒng)計結(jié)果能夠均勻分布,建議計算邏輯頁ECC校驗(yàn)碼的頁個數(shù)大于1000 ;(ii)對標(biāo)準(zhǔn)ECC校驗(yàn)碼的每比特統(tǒng)計結(jié)果進(jìn)行排序A并記錄下每比特數(shù)據(jù)在標(biāo)準(zhǔn) ECC校驗(yàn)碼中的位置;(iii)從記錄NAND Flash芯片邏輯頁號、對應(yīng)物理頁號及其spare area內(nèi)容的文 件result, txt中讀取與上述多個邏輯頁對應(yīng)的物理頁內(nèi)存儲的ECC校驗(yàn)碼數(shù)據(jù),同樣統(tǒng)計 每比特值為1的個數(shù);(iv)對統(tǒng)計結(jié)果進(jìn)行排序B并記錄下每比特數(shù)據(jù)在存儲的ECC校驗(yàn)碼中的位置;(ν)比較排序結(jié)果A和B,找出兩種ECC校驗(yàn)碼中統(tǒng)計結(jié)果相等的比特位,從而得 到標(biāo)準(zhǔn)ECC校驗(yàn)碼和存儲的ECC校驗(yàn)碼的一一對應(yīng)關(guān)系;如果在查找對應(yīng)關(guān)系的過程中,出 現(xiàn)少部分比特位不能一一對應(yīng)的情況,則說明物理鏡像文件中存儲的ECC校驗(yàn)碼有錯誤, 此時需增加log_num的值,從第(i)步起重復(fù)上述過程,直到可以確定標(biāo)準(zhǔn)ECC校驗(yàn)碼和存 儲的ECC校驗(yàn)碼的對應(yīng)關(guān)系;如果二者之間不存在所有比特位一一對應(yīng)的情況或者大多數(shù) 比特位不能對應(yīng)的情況則說明推測出的ECC校驗(yàn)算法錯誤,那么需要驗(yàn)證其它可能的ECC 校驗(yàn)算法。三、最后利用上述識別的ECC校驗(yàn)算法以及標(biāo)準(zhǔn)ECC校驗(yàn)碼和存儲ECC校驗(yàn)碼之 間的對應(yīng)關(guān)系,檢驗(yàn)物理鏡像文件中每個物理頁的數(shù)據(jù)是否有錯誤,如果有,則將其存儲的 ECC校驗(yàn)碼按比特轉(zhuǎn)換成標(biāo)準(zhǔn)ECC校驗(yàn)碼的形式,利用對應(yīng)ECC校驗(yàn)算法的糾錯算法進(jìn)行錯 誤數(shù)據(jù)的定位和糾錯。有益效果采用本發(fā)明方法能夠在無flash控制器和硬件ECC校驗(yàn)?zāi)K參與的情況下,識別 手機(jī)內(nèi)置NAND Flash芯片采用的ECC校驗(yàn)算法,發(fā)現(xiàn)實(shí)際存儲的ECC校驗(yàn)碼與對應(yīng)校驗(yàn)算 法計算出的標(biāo)準(zhǔn)校驗(yàn)碼之間的對應(yīng)關(guān)系并利用該對應(yīng)關(guān)系和相應(yīng)的ECC糾錯算法對物理 鏡像中的錯誤數(shù)據(jù)進(jìn)行定位和糾錯,確保NANDFlash芯片內(nèi)物理鏡像數(shù)據(jù)的準(zhǔn)確和有效。 本發(fā)明方法通用性強(qiáng),在手機(jī)取證領(lǐng)域具有很強(qiáng)的實(shí)用價值。


圖1為漢明碼算法為每256字節(jié)有效數(shù)據(jù)生成3字節(jié)校驗(yàn)碼的標(biāo)準(zhǔn)存儲圖2為漢明碼算法為每512字節(jié)有效數(shù)據(jù)生成3字節(jié)校驗(yàn)碼的標(biāo)準(zhǔn)存儲圖;圖3為ECC校驗(yàn)算法的識別方法的流程圖;圖4為驗(yàn)證推測的ECC校驗(yàn)算法是否正確的程序流程圖;圖5為查找標(biāo)準(zhǔn)ECC校驗(yàn)碼和存儲的ECC校驗(yàn)碼各比特對應(yīng)關(guān)系的程序流程圖。圖6為標(biāo)準(zhǔn)ECC校驗(yàn)碼和存儲的ECC校驗(yàn)碼各比特位統(tǒng)計結(jié)果的排序結(jié)果圖
具體實(shí)施例方式下面結(jié)合附圖具體說明本發(fā)明的優(yōu)選實(shí)施方式。本發(fā)明不僅限于以下實(shí)例,凡是 利用本發(fā)明的設(shè)計思路都進(jìn)入本發(fā)明的保護(hù)范圍之內(nèi)。本實(shí)施方式實(shí)現(xiàn)了一種NAND Flash存儲芯片ECC校驗(yàn)算法的識別方法,如圖3所 示,包括以下步驟—、根據(jù)已知的ECC校驗(yàn)碼字段長度必須大于等于可能采用的ECC校驗(yàn)算法生成 的校驗(yàn)碼長度的原則推測匹配的ECC校驗(yàn)算法;比如已知的ECC校驗(yàn)碼長度是3字節(jié)或4 字節(jié),則推測可能采用的是每512字節(jié)有效數(shù)據(jù)生成校驗(yàn)碼的Hanming碼算法(多余比特 可能全置0或1);如果確定的ECC校驗(yàn)碼長度是7字節(jié)或8字節(jié),則推測可能采用的是BCH
碼算法。二、對步驟一的推測結(jié)果進(jìn)行驗(yàn)證,驗(yàn)證過程如圖3所示。要找出存儲的ECC校驗(yàn) 碼和標(biāo)準(zhǔn)ECC校驗(yàn)碼各比特之間存在的對應(yīng)關(guān)系的具體步驟如圖4所示。為詳細(xì)說明本實(shí)施方式,下面以philips f511手機(jī)為例,具體說明本發(fā)明的實(shí)施 過程。實(shí)施例目標(biāo)手機(jī)是philips f511,在其內(nèi)置的NAND Flash芯片上存儲多個隨機(jī)數(shù)據(jù)文 件,大小盡量占滿NAND Flash的剩余空間。分別用WinheX15. 2軟件和手機(jī)維修工具(妙 手Box)獲取內(nèi)置flash芯片的邏輯鏡像文件philipS-f511-logical和對應(yīng)的物理鏡像文 件 philips-f511-physical. bin。根據(jù)專利申請“一種NAND Flash存儲芯片的元數(shù)據(jù)格式識別方法”中提供的方 法辨別出物理鏡像文件philips-f511-physical.bin中有效數(shù)據(jù)和元數(shù)據(jù)的排列規(guī)則是 512+16字節(jié)形式,并且其spare area區(qū)內(nèi)ECC校驗(yàn)碼字段位于第9 14字節(jié),共6字節(jié)。 根據(jù)前面對各種Hanming碼校驗(yàn)算法和BCH碼校驗(yàn)算法的分析可知,philips f511手機(jī)內(nèi) 置NAND Flash芯片最有可能采用的是每256字節(jié)有效數(shù)據(jù)生成3字節(jié)校驗(yàn)碼的Hanming 碼算法。下面驗(yàn)證該推測結(jié)果是否正確。利用Winhexl5. 2軟件分析邏輯鏡像文件philips-f511_logical,確定一個IOM 大小的隨機(jī)數(shù)據(jù)文件randoml.dat的起始扇區(qū)位于邏輯頁(即扇區(qū))2000號。打開記 錄有NAND Flash芯片邏輯頁號、對應(yīng)物理頁號及其spare area內(nèi)容的result, txt文 件,找到邏輯頁號2000對應(yīng)的物理頁是100081,其spare area內(nèi)存儲的ECC校驗(yàn)碼 是0x3E33E35342CB。接著將讀指針定位到邏輯鏡像文件phi 1 ips_f511-Iogical的第 2000*512 = 1024000字節(jié)位置處,先讀取前256字節(jié)有效數(shù)據(jù),利用Hanming碼校驗(yàn)算法計 算得到該有效數(shù)據(jù)的標(biāo)準(zhǔn)ECC校驗(yàn)碼值0x3FF03F,再讀取后256字節(jié)有效數(shù)據(jù)計算得到的 標(biāo)準(zhǔn)ECC校驗(yàn)碼值是0x66966B,連接在一起是0x3FF03F66966B。比較這兩對ECC校驗(yàn)碼發(fā)現(xiàn)其值并不相同,因此需要繼續(xù)尋找存儲的ECC校驗(yàn)碼和標(biāo)準(zhǔn)的ECC校驗(yàn)碼各比特位之間
是否存在一一對應(yīng)關(guān)系。從邏輯鏡像文件philipS-f511-logiCal的第1024000字節(jié)開始,利用每256字節(jié) 數(shù)據(jù)生成3字節(jié)校驗(yàn)碼的Hanming碼算法連續(xù)計算1000個邏輯頁的標(biāo)準(zhǔn)ECC校驗(yàn)碼(共 2000個)生成標(biāo)準(zhǔn)ECC校驗(yàn)碼文件standarcLecc ;統(tǒng)計所有標(biāo)準(zhǔn)ECC校驗(yàn)碼每比特取值 為1的個數(shù)存放在數(shù)組num_l [24] (3字節(jié)校驗(yàn)碼共M比特)中;對數(shù)組num_l進(jìn)行排序 并記錄下每比特數(shù)據(jù)在標(biāo)準(zhǔn)ECC校驗(yàn)碼中的位置如圖5左側(cè);從result, txt文件中讀取 從第2000 四99這1000個邏輯頁所對應(yīng)物理頁的ECC校驗(yàn)碼(共2000個)內(nèi)容生成存 儲ECC校驗(yàn)碼文件physicalecc,同樣統(tǒng)計所有校驗(yàn)碼每比特取值為1的個數(shù)存放在數(shù)組 num_2[24];對數(shù)組num 2進(jìn)行排序并記錄下每比特數(shù)據(jù)在存儲ECC校驗(yàn)碼中的位置如圖 5 右側(cè);比較排序結(jié)果發(fā)現(xiàn)除了 num_l [22] = 2000、num_l [23] = 2000 和 num_2
= 0、 num_2[12] = 0無法一一對應(yīng)外,其余22比特數(shù)據(jù)全能一一對應(yīng),原因在于標(biāo)準(zhǔn)ECC校驗(yàn) 碼的最后2比特?zé)o用位填充的是1,而存儲校驗(yàn)碼的第0比特和第12比特?zé)o用位填充的是
0。最后結(jié)論是標(biāo)準(zhǔn)ECC校驗(yàn)碼的第0比特、第1比特、第2比特、第3比特......分別和
存儲ECC校驗(yàn)碼的第13比特、第1比特、第14比特、第2比特......一一對應(yīng),此結(jié)果說
明上述的推測是正確的,即Philips f511手機(jī)采用的是每256字節(jié)有效數(shù)據(jù)生成3字節(jié)校 驗(yàn)碼的Hanming碼算法。識別出目標(biāo)手機(jī)所采用的ECC校驗(yàn)算法以及生成校驗(yàn)碼每比特的實(shí)際存儲順序 后,能夠檢驗(yàn)物理鏡像文件philipS-f511-phySiCal. bin中每個物理頁的數(shù)據(jù)是否正確。 比如在檢驗(yàn)到第514物理頁時發(fā)現(xiàn)該物理頁后256字節(jié)有效數(shù)據(jù)計算得到的3字節(jié)標(biāo)準(zhǔn) ECC校驗(yàn)碼是0xC0C33F,而存儲在spare area區(qū)的后一個3字節(jié)ECC校驗(yàn)碼是0x4CB44B。 按照上述發(fā)現(xiàn)的標(biāo)準(zhǔn)校驗(yàn)碼和存儲校驗(yàn)碼每比特的對應(yīng)關(guān)系將存儲校驗(yàn)碼0x4CB44B轉(zhuǎn)換 成標(biāo)準(zhǔn)校驗(yàn)碼后其值是0xClC33F。對比這2個標(biāo)準(zhǔn)校驗(yàn)碼發(fā)現(xiàn)并不完全相同說明物理鏡像 中該物理頁的數(shù)據(jù)發(fā)生了錯誤。利用Hanming碼的糾錯算法得知是該物理頁存儲的ECC校 驗(yàn)碼存在錯誤,于是對其進(jìn)行糾錯。
權(quán)利要求
1.一種NAND Flash存儲芯片ECC校驗(yàn)算法的識別方法,其特征在于,包括以下步驟一、根據(jù)已知的ECC校驗(yàn)碼字段長度必須大于等于可能采用的ECC校驗(yàn)算法生成的校 驗(yàn)碼長度的原則推測匹配的ECC校驗(yàn)算法;二、對步驟一的推測結(jié)果進(jìn)行驗(yàn)證,并確定標(biāo)準(zhǔn)ECC校驗(yàn)碼和存儲ECC校驗(yàn)碼之間的對 應(yīng)關(guān)系,如不正確則繼續(xù)對下一個推測結(jié)果進(jìn)行驗(yàn)證;三、利用上述識別的ECC校驗(yàn)算法以及標(biāo)準(zhǔn)ECC校驗(yàn)碼和存儲ECC校驗(yàn)碼之間的對應(yīng) 關(guān)系,檢驗(yàn)物理鏡像文件中每個物理頁的數(shù)據(jù)是否有錯誤,如果有,則將其存儲的ECC校驗(yàn) 碼按比特轉(zhuǎn)換成標(biāo)準(zhǔn)ECC校驗(yàn)碼的形式,利用對應(yīng)ECC校驗(yàn)算法的糾錯算法進(jìn)行錯誤數(shù)據(jù) 的定位和糾錯。
2.根據(jù)權(quán)利要求1所述的一種NANDFlash存儲芯片ECC校驗(yàn)算法的識別方法,其特征 在于,所述對步驟一的推測結(jié)果進(jìn)行驗(yàn)證,并確定標(biāo)準(zhǔn)ECC校驗(yàn)碼和存儲ECC校驗(yàn)碼之間對 應(yīng)關(guān)系的方法為(1)隨機(jī)生成一些數(shù)據(jù)文件存儲到目標(biāo)手機(jī)的內(nèi)置NANDFlash芯片上,分別獲取NAND Flash芯片的物理鏡像文件和邏輯鏡像文件并計算它們有效數(shù)據(jù)的MD5值,根據(jù)相同數(shù)據(jù) 段MD5值相等的原則查找每一個邏輯頁對應(yīng)的物理頁,記錄下邏輯頁號、物理頁號及對應(yīng) 的spare area元數(shù)據(jù)內(nèi)容;(2)分析目標(biāo)NANDFlash芯片的邏輯鏡像文件內(nèi)容,確定某個隨機(jī)數(shù)據(jù)文件的位置, 即文件所在的邏輯頁號,記為log_num ;根據(jù)邏輯頁號log_num查找并讀取對應(yīng)物理頁的 spare area f^J^ ;(3)將讀指針定位到NANDFlash芯片邏輯鏡像文件的log_num*512字節(jié)位置處,讀取 一定數(shù)量的有效數(shù)據(jù),采用上述推測出的ECC校驗(yàn)算法計算該有效數(shù)據(jù)的ECC校驗(yàn)碼;(4)將計算得到的ECC校驗(yàn)碼與從物理鏡像的相應(yīng)物理頁中讀出的ECC校驗(yàn)碼進(jìn)行對 比,如果完全一致則說明推測的ECC校驗(yàn)算法正確;如果不完全一致則繼續(xù)執(zhí)行步驟(5);(5)找出存儲的ECC校驗(yàn)碼和標(biāo)準(zhǔn)ECC校驗(yàn)碼各比特之間存在的對應(yīng)關(guān)系(i)從NAND Flash芯片邏輯鏡像文件的log_nUm*512字節(jié)位置開始,根據(jù)推測的ECC 校驗(yàn)算法連續(xù)計算多個邏輯頁的標(biāo)準(zhǔn)ECC校驗(yàn)碼;統(tǒng)計所有校驗(yàn)碼每比特值為1的個數(shù);( )對標(biāo)準(zhǔn)ECC校驗(yàn)碼的每比特統(tǒng)計結(jié)果進(jìn)行排序A并記錄下每比特數(shù)據(jù)在標(biāo)準(zhǔn)ECC 校驗(yàn)碼中的位置;(iii)從記錄NANDFlash芯片邏輯頁號、物理頁號及其對應(yīng)spare area內(nèi)容的文件 result, txt中讀取與上述多個邏輯頁對應(yīng)的物理頁內(nèi)存儲的ECC校驗(yàn)碼數(shù)據(jù),同樣統(tǒng)計每 比特值為1的個數(shù);(iv)對統(tǒng)計結(jié)果進(jìn)行排序B并記錄下每比特數(shù)據(jù)在存儲的ECC校驗(yàn)碼中的位置;(ν)比較排序結(jié)果A和B,找出兩種ECC校驗(yàn)碼中統(tǒng)計結(jié)果相等的比特位,從而得到標(biāo) 準(zhǔn)ECC校驗(yàn)碼和存儲的ECC校驗(yàn)碼的一一對應(yīng)關(guān)系;如果在查找對應(yīng)關(guān)系的過程中,出現(xiàn)少 部分比特位不能一一對應(yīng)的情況,則說明物理鏡像文件中存儲的ECC校驗(yàn)碼有錯誤,此時 需增加log_nUm的值,從第(i)步起重復(fù)上述過程,直到可以確定標(biāo)準(zhǔn)ECC校驗(yàn)碼和存儲的 ECC校驗(yàn)碼的對應(yīng)關(guān)系;如果二者之間不存在所有比特位一一對應(yīng)的情況或者大多數(shù)比特 位不能對應(yīng)的情況則說明推測出的ECC校驗(yàn)算法錯誤,那么需要驗(yàn)證其它可能的ECC校驗(yàn) 算法。
3.根據(jù)權(quán)利要求2所述的一種NAND Flash存儲芯片ECC校驗(yàn)算法的識別方法,其特 征在于,步驟(i)中為了保證統(tǒng)計結(jié)果能夠均勻分布,計算邏輯頁ECC校驗(yàn)碼的頁個數(shù)大于 1000。
全文摘要
本發(fā)明涉及一種NAND Flash存儲芯片ECC校驗(yàn)算法的識別方法,包括以下步驟一、根據(jù)已知的ECC校驗(yàn)碼字段長度必須大于等于可能采用的ECC校驗(yàn)算法生成的校驗(yàn)碼長度的原則推測匹配的ECC校驗(yàn)算法;二、對步驟一的推測結(jié)果進(jìn)行驗(yàn)證;三、利用識別的ECC校驗(yàn)算法以及標(biāo)準(zhǔn)ECC校驗(yàn)碼和存儲ECC校驗(yàn)碼之間的對應(yīng)關(guān)系,進(jìn)行錯誤數(shù)據(jù)的定位和糾錯。采用本發(fā)明能夠在無flash控制器和硬件ECC校驗(yàn)?zāi)K參與的情況下,識別手機(jī)內(nèi)置NAND Flash芯片采用的ECC校驗(yàn)算法,發(fā)現(xiàn)實(shí)際存儲的ECC校驗(yàn)碼與對應(yīng)校驗(yàn)算法計算出的標(biāo)準(zhǔn)校驗(yàn)碼之間的對應(yīng)關(guān)系,并對物理鏡像中的錯誤數(shù)據(jù)進(jìn)行定位和糾錯,確保NAND Flash芯片內(nèi)物理鏡像數(shù)據(jù)的準(zhǔn)確和有效。
文檔編號G11C29/42GK102142282SQ20111004169
公開日2011年8月3日 申請日期2011年2月21日 優(yōu)先權(quán)日2011年2月21日
發(fā)明者張麗, 張全新, 張雪蘭, 李元章, 譚毓安, 馬忠梅 申請人:北京理工大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
昂仁县| 石河子市| 朝阳县| 大悟县| 遂昌县| 宝丰县| 岳西县| 寻甸| 南部县| 桃园市| 安图县| 富裕县| 同心县| 寿宁县| 察雅县| 岳阳县| 星子县| 永安市| 磐石市| 宁国市| 吉木萨尔县| 盈江县| 襄城县| 启东市| 壶关县| 土默特右旗| 阿荣旗| 宾川县| 德钦县| 南江县| 新田县| 色达县| 法库县| 綦江县| 互助| 佛教| 札达县| 平原县| 福贡县| 孟连| 芒康县|