一種NandFlash中模擬用戶數(shù)據(jù)存儲(chǔ)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種NandFlash中模擬用戶數(shù)據(jù)存儲(chǔ)的方法。
【背景技術(shù)】
[0002]eMMC(Embedded Multi Media Card,內(nèi)嵌式存儲(chǔ)器)是一種主要針對(duì)于手機(jī)或平板電腦等電子設(shè)備的內(nèi)嵌式存儲(chǔ)器。其中,eMMC中包含了 NandFlash,目前,NandFlash逐漸成為嵌入式系統(tǒng)的主要存儲(chǔ)介質(zhì)之一,沒有文件系統(tǒng)來管理NandFlash上的數(shù)據(jù)是不可想象的。
[0003]為了便于管理NandFlash 上的數(shù)據(jù),引入了 FTL(Flash Translat1n Layer,文件傳輸層),一旦FTL出現(xiàn)問題,那么會(huì)使數(shù)據(jù)讀寫發(fā)生錯(cuò)誤,更為嚴(yán)重的是eMMC無法被訪問。因此,F(xiàn)TL的穩(wěn)定性及效率對(duì)eMMC來說至關(guān)重要,在應(yīng)用FTL對(duì)eMMC中NandFlash上的數(shù)據(jù)進(jìn)行管理時(shí),首先應(yīng)該對(duì)FTL進(jìn)行測試。
[0004]現(xiàn)有技術(shù)中,在FTL的測試過程中,需要不斷的訪問NandFlash上存儲(chǔ)的數(shù)據(jù),通過反饋結(jié)果判斷FTL的穩(wěn)定性及效率,但是這種測試方法應(yīng)用到硬件中的NandFlash,不方便測試操作。所以,在FTL測試中,采用模擬的NandFlash進(jìn)行數(shù)據(jù)的存儲(chǔ)。其中,模擬的NandFlash存儲(chǔ)的數(shù)據(jù)中包括用戶數(shù)據(jù),在NandFlash模擬儲(chǔ)存中用戶數(shù)據(jù)的數(shù)據(jù)量都是GB級(jí)的,由于用戶數(shù)據(jù)的占用的空間比較大,在測試FTL過程中,訪問用戶數(shù)據(jù)的效率會(huì)降低。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明實(shí)施例提供一種NandFlash中模擬用戶數(shù)據(jù)存儲(chǔ)的方法,以解決FTL測試中用戶數(shù)據(jù)訪問效率低的問題。
[0006]本發(fā)明實(shí)施例提供了一種NandFlash中模擬用戶數(shù)據(jù)存儲(chǔ)的方法,包括:
[0007]獲取物理頁中各個(gè)物理扇區(qū)的用戶數(shù)據(jù)存儲(chǔ)信息,并存儲(chǔ)到數(shù)據(jù)文件的第一存儲(chǔ)單元,其中每個(gè)物理扇區(qū)用于存儲(chǔ)512字節(jié)用戶數(shù)據(jù),所述用戶數(shù)據(jù)存儲(chǔ)信息的長度為8字
-K-
T ;
[0008]獲取所述物理頁中帶外數(shù)據(jù)信息,將所述帶外數(shù)據(jù)信息存儲(chǔ)到數(shù)據(jù)文件的第二存儲(chǔ)單元,其中,所述數(shù)據(jù)文件存儲(chǔ)于內(nèi)存中。
[0009]進(jìn)一步的,每個(gè)所述物理頁包括8個(gè)或16個(gè)物理扇區(qū);所述數(shù)據(jù)文件包括對(duì)應(yīng)的8個(gè)或16個(gè)第一存儲(chǔ)單元。
[0010]進(jìn)一步的,每個(gè)物理扇區(qū)存儲(chǔ)的用戶數(shù)據(jù)為所述物理扇區(qū)的邏輯區(qū)塊地址。
[0011]進(jìn)一步的,所述帶外數(shù)據(jù)包括糾錯(cuò)校驗(yàn)數(shù)據(jù)和所述物理頁中各物理扇區(qū)的邏輯區(qū)塊地址與物理地址轉(zhuǎn)換的映射表。
[0012]進(jìn)一步的,所述獲取物理頁中各個(gè)物理扇區(qū)的用戶數(shù)據(jù)存儲(chǔ)信息,并存儲(chǔ)到數(shù)據(jù)文件的第一存儲(chǔ)單元存包括:
[0013]獲取物理頁中各個(gè)所述物理扇區(qū)的邏輯區(qū)塊地址,以及各個(gè)所述物理扇區(qū)的寫入次序;
[0014]將數(shù)據(jù)文件的第一存儲(chǔ)單元分為大小相等的第一部分和第二部分;
[0015]通過所述第一部分存儲(chǔ)物理扇區(qū)邏輯區(qū)塊地址;
[0016]通過所述第二部分存儲(chǔ)物理扇區(qū)的寫入次序。
[0017]進(jìn)一步的,所述存儲(chǔ)物理扇區(qū)中寫入次序包括:
[0018]采用時(shí)間戳記錄物理扇區(qū)中用戶數(shù)據(jù)的寫入次序。
[0019]進(jìn)一步的,所述第二存儲(chǔ)單元的大小為16字節(jié)。
[0020]進(jìn)一步的,所述每個(gè)物理扇區(qū)存儲(chǔ)的用戶數(shù)據(jù)為所述物理扇區(qū)的邏輯區(qū)塊地址與所述物理扇區(qū)的寫入次序。
[0021]本發(fā)明實(shí)施例提供的一種NandFlash中模擬用戶數(shù)據(jù)存儲(chǔ)的方法,通過第一存儲(chǔ)單元存儲(chǔ)物理頁中各個(gè)扇區(qū)的用戶數(shù)據(jù),通過第二數(shù)據(jù)單元存儲(chǔ)物理頁中的帶外數(shù)據(jù),能夠解決FTL測試中用戶數(shù)據(jù)訪問效率低的問題。
【附圖說明】
[0022]通過閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0023]圖1是本發(fā)明實(shí)施例一提供的一種NandFlash中模擬用戶數(shù)據(jù)存儲(chǔ)的方法的流程圖;
[0024]圖2是本發(fā)明實(shí)施例一提供的數(shù)據(jù)文件的結(jié)構(gòu)框圖;
[0025]圖3是本發(fā)明實(shí)施例二提供的一種NandFlash中模擬用戶數(shù)據(jù)存儲(chǔ)的方法的流程圖;
[0026]圖4是本發(fā)明實(shí)施例二提供的第一存儲(chǔ)單元的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0027]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部內(nèi)容。
[0028]目前,為了便于管理NandFlash上的數(shù)據(jù),引入了 FTL,一旦FTL出現(xiàn)問題,那么會(huì)使數(shù)據(jù)讀寫發(fā)生錯(cuò)誤,更為嚴(yán)重的是eMMC無法被訪問。因此,F(xiàn)TL的穩(wěn)定性及效率對(duì)eMMC來說至關(guān)重要,在應(yīng)用FTL對(duì)NandFlash上的數(shù)據(jù)進(jìn)行管理時(shí),首先應(yīng)該對(duì)FTL進(jìn)行測試。
[0029]現(xiàn)有技術(shù)中,在FTL的測試過程中,需要不斷的訪問NandFlash上存儲(chǔ)的數(shù)據(jù),通過反饋結(jié)果判斷FTL的穩(wěn)定性及效率,但是這種測試方法應(yīng)用到硬件中的NandFlash,不方便測試操作。所以,在FTL測試中,采用模擬的NandFlash進(jìn)行模擬數(shù)據(jù)的存儲(chǔ),其中,模擬的數(shù)據(jù)中大部分為用戶數(shù)據(jù)。
[0030]在FTL的測試過程中,由測試系統(tǒng)向FTL發(fā)送讀取NandFlash中用戶數(shù)據(jù)的命令,F(xiàn)TL將命令中包含的邏輯區(qū)塊地址轉(zhuǎn)換為物理地址,調(diào)用該物理地址下的用戶數(shù)據(jù),如果調(diào)用的用戶數(shù)據(jù)與之前寫入的用戶數(shù)據(jù)相同,則可以判定FTL對(duì)用戶數(shù)據(jù)的管理是正確的;否則FTL出現(xiàn)問題。在FTL的測試中,需要不斷的訪問NandFlash中的用戶數(shù)據(jù),用戶數(shù)據(jù)的數(shù)據(jù)量都是GB級(jí)的,占用的空間比較大,訪問用戶數(shù)據(jù)的效率會(huì)比較低。
[0031]實(shí)施例一
[0032]圖1為本發(fā)明實(shí)施例提供的一種NandFlash中模擬用戶數(shù)據(jù)存儲(chǔ)的方法的流程圖,如圖1所示,該方法包括:
[0033]步驟101:獲取物理頁中各個(gè)物理扇區(qū)的用戶數(shù)據(jù)存儲(chǔ)信息,并存儲(chǔ)到數(shù)據(jù)文件的第一存儲(chǔ)單元,其中每個(gè)物理扇區(qū)用于存儲(chǔ)512字節(jié)用戶數(shù)據(jù),所述用戶數(shù)據(jù)存儲(chǔ)信息的長度為8字節(jié)。
[0034]在本實(shí)施例中,第一存儲(chǔ)單元的大小為8字節(jié),每個(gè)所述物理頁包括8個(gè)或16個(gè)物理扇區(qū),相應(yīng)的,所述數(shù)據(jù)文件包括對(duì)應(yīng)的8個(gè)或16個(gè)第一存儲(chǔ)單元。每個(gè)物理扇區(qū)存儲(chǔ)的用戶數(shù)據(jù)為所述物理扇區(qū)的邏輯區(qū)塊地址。
[0035]在本實(shí)施例中,將各個(gè)物理扇區(qū)用編號(hào)進(jìn)行標(biāo)識(shí),各個(gè)物理扇區(qū)的編號(hào)即為邏輯區(qū)塊地址。每個(gè)物理扇區(qū)存儲(chǔ)的用戶數(shù)據(jù)為物理扇區(qū)的邏輯區(qū)塊地址。例如,一個(gè)扇區(qū)存儲(chǔ)的用戶數(shù)據(jù)為0,則該扇區(qū)的邏輯區(qū)塊地址為O。在FTL測試過程中,如果測試系統(tǒng)發(fā)送讀取邏輯區(qū)塊地址為O的扇區(qū)時(shí),F(xiàn)TL將邏輯區(qū)塊地址O轉(zhuǎn)換成物理地址;調(diào)用該物理地址下物理扇區(qū)的數(shù)據(jù),如果返回的數(shù)據(jù)為0,則說明FTL管理用戶數(shù)據(jù)是正確的,否則,F(xiàn)TL是有問題的。
[0036]在上述實(shí)施例的基礎(chǔ)上,所述的邏輯區(qū)塊地址為O的物理扇區(qū)中,包含的用戶數(shù)據(jù)可以為多個(gè)0,為了提高用戶數(shù)據(jù)的訪問效率,提高FTL的測試效率,邏輯區(qū)塊地址為O的物理扇區(qū)中的用戶數(shù)據(jù)存儲(chǔ)為O。
[0037]步驟102:獲取所述物理頁中帶外數(shù)據(jù)信息,將所述帶外數(shù)據(jù)信息存儲(chǔ)到數(shù)據(jù)文件的第二存儲(chǔ)單元,其中,所述數(shù)據(jù)文件存儲(chǔ)于內(nèi)存中。
[0038]在上述實(shí)施例的基礎(chǔ)上,如圖2所示,數(shù)據(jù)文件200包括第一存儲(chǔ)單元201和第二存儲(chǔ)單元202 ;第一存儲(chǔ)單元201,用于存儲(chǔ)物理頁中各個(gè)物