一種模擬NandFlash的裝置及方法
【技術領域】
[0001]本發明涉及模擬存儲領域,尤其涉及一種模擬NandFlash的裝置及方法。
【背景技術】
[0002]eMMC(Embedded Multi Media Card,內嵌式存儲器)是一種主要針對于手機或平板電腦等電子設備的內嵌式存儲器。其中,eMMC中包含了非線性閃存(NandFlash),目前,NandFlash逐漸成為嵌入式系統的主要存儲介質之一,沒有文件系統來管理NandFlash上的數據是不可想象的。
[0003]為了便于管理NandFlash 上的數據,引入了 FTL(Flash Translat1n Layer,文件傳輸層),一旦FTL出現問題,那么會使數據讀寫發生錯誤,更為嚴重的是eMMC無法被訪問。因此,FTL的穩定性及效率對eMMC來說至關重要,在應用FTL對eMMC中NandFlash上的數據進行管理時,首先應該對FTL進行測試。
[0004]現有技術中,在FTL的測試過程中,需要不斷地問NandFlash上的數據,通過反饋結果判斷FTL的穩定性及效率,但是這種測試方法應用到硬件中的NandFlash,不方便測試操作。所以,在FTL測試中,采用模擬NandFlash的裝置進行數據的存儲。由于在FTL測試中,為了反復驗證FTL的穩定性,需要大量的數據,因此,模擬NandFlash的裝置能否高效的存儲和管理數據是測試FTL的重要環節。
【發明內容】
[0005]有鑒于此,本發明實施例提供一種模擬NandFlash的裝置及方法,能夠實現高效的數據存儲和管理功能。
[0006]第一方面,本發明實施例提供了一種模擬NandFlash的裝置,包括:
[0007]信息數據模塊,用于信息數據的管理;
[0008]元數據模塊,用于元數據的管理;
[0009]用戶數據模塊,用于用戶數據的管理;
[0010]第一文件訪問存儲模塊,用于存儲信息數據;
[0011]第二文件訪問存儲模塊,用于存儲元數據;
[0012]第三文件訪問存儲模塊,用于存儲用戶數據;
[0013]第一訪問接口,用于信息數據模塊與外部設備之間進行數據的傳輸;
[0014]第二訪問接口,用于元數據模塊與外部設備之間進行數據的傳輸;
[0015]第三訪問接口,用于用戶數據模塊與外部設備之間進行數據的傳輸。
[0016]進一步的,所述信息數據模塊,包括:
[0017]地址標識單元,用于記錄或存儲Nandlash的標識信息,以區分不同的NandFlash ;
[0018]ID管理單元,用于實現NandFlash的ID管理功能;
[0019]壞塊管理單元,用于實現NandFlash壞塊管理功能;
[0020]讀寫報錯單元,用于實現NandFlash讀寫報錯功能。
[0021]進一步的,所述元數據以Block為單位存儲在文件中,形成元數據的Block文件。
[0022]進一步的,所述元數據管理模塊對元數據的Block文件以鏈表的形式進行管理。
[0023]進一步的,所述元數據管理模塊對元數據的Block文件以鏈表的形式進行管理,包括:元數據進行讀取時,以鏈頭到鏈尾實施方式進行讀取、以鏈尾到鏈頭實施方式進行讀取或者以任意的一個Block文件為節點向前或向后讀取。
[0024]進一步的,元數據進行讀取時,讀取每個Block文件所在的NandFlash的地址標識、每個Block文件所在的文件夾的標識以及每個Block文件的標識。
[0025]第二方面,本發明實施例還提供了一種模擬NandFlash的方法,包括:
[0026]通過信息數據模塊進行信息數據的管理;
[0027]通過元數據模塊進行元數據的管理;
[0028]通過用戶數據模塊進行用戶數據的管理;
[0029]通過第一文件訪問存儲模塊存儲信息數據;
[0030]通過第二文件訪問存儲模塊存儲元數據;
[0031]通過第三文件訪問存儲模塊存儲用戶數據;
[0032]通過第一訪問接口進行信息數據模塊與外部設備之間進行數據的傳輸;
[0033]通過第二訪問接口進行元數據模塊與外部設備之間進行數據的傳輸;
[0034]通過第三訪問接口進行用戶數據模塊與外部設備之間進行數據的傳輸。
[0035]進一步的,所述通過信息數據模塊進行信息數據的管理,包括:
[0036]通過地址標識單元記錄或存儲Nandlash的標識信息,以區分不同的NandFlash ;
[0037]通過ID管理單元實現NandFlash的ID管理功能;
[0038]通過壞塊管理單元實現NandFlash壞塊管理功能;
[0039]通過讀寫報錯單元實現NandFlash讀寫報錯功能。
[0040]本發明實施例提供的一種模擬NandFlash的裝置及方法,其中,該裝置包括信息數據模塊、元數據模塊、用戶數據模塊、第一文件訪問存儲模塊、第二文件訪問存儲模塊、第三文件訪問存儲模塊、第一訪問接口、第二訪問接口和第三訪問接口,其中信息數據模塊、元數據模塊、用戶數據模塊分別用于信息數據、元數據和用戶數據的管理;第一文件訪問存儲模塊、第二文件訪問存儲模塊和第三文件訪問存儲模塊分別用于存儲信息數據、元數據和用戶數據;第一訪問接口,第二訪問接口和第三訪問接口分別用于信息數據模塊、元數據模塊、用戶數據模塊與外部設備之間進行數據的傳輸。本發明實施例將信息數據、元數據、用戶數據分別進行歸類存儲和管理,能夠實現高效的數據存儲和管理功能。
【附圖說明】
[0041]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發明的其它特征、目的和優點將會變得更明顯:
[0042]圖1是本發明實施例一提供的一種模擬NandFlash的裝置的結構圖;
[0043]圖2是本發明實施例一提供的元數據模塊管理元數據的鏈表圖;
[0044]圖3是本發明實施例二提供的一種模擬NandFlash的方法流程圖。
【具體實施方式】
[0045]下面結合附圖和實施例對本發明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發明,而非對本發明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發明相關的部分而非全部內容。
[0046]eMMC(Embedded Multi Media Card,內嵌式存儲器)是一種主要針對于手機或平板電腦等電子設備的內嵌式存儲器。其中,eMMC中包含了 NandFlash,為了便于管理NandFlash上的數據,引入了 FTL,一旦FTL出現問題,那么會使數據讀寫發生錯誤,更為嚴重的是eMMC無法被訪問。因此,FTL的穩定性及效率對eMMC來說至關重要,在應用FTL對NandFlash上的數據進行管理時,首先應該對FTL進行測試。
[0047]現有技術中,在FTL的測試過程中,需要不斷地問NandFlash上的數據,通過反饋結果判斷FTL的穩定性及效率,但是這種測試方法應用到硬件中的NandFlash,不方便測試操作。所以,在FTL測試中,采用模擬Nandflash的裝置進行數據的存儲和管理。
[0048]實施例一
[0049]圖1為本發明實施例一提供的一種模擬NandFlash的裝置結構框圖,如圖1所示,所述的裝置100包括:信息數據模塊101、元數據模塊102、用戶數據模塊103、第一文件訪問存儲模塊104、第二文件訪問存儲模塊105、第三文件訪問存儲模塊106、第一訪問接口107、第二訪問接口 108和第三訪問接口 109。
[0050]其中,所述信息數據模塊101,用于信息數據的管理。其中信息數據包括NandFlash的地址標識、ID等信息,將信息數據存儲到第一文件訪問存儲模塊104。
[0051]所述元數據模塊102,用于元數據的管理。其中,所述元數據以Block為單位存儲在文件中,形成元數據的Block文件;其中,元數據包括邏輯地址到物理地址的映射表,元數據模塊102將元數據存儲到第二文件訪問存儲模塊105。
[0052]在本實施例中,如圖2所示,所述元數據管理模塊對元數據的Block文件以鏈表的形式進行管理。具體的,在FTL測試過程中,對元數據進行讀取時,以鏈頭到鏈尾實施方式進行讀取、以鏈尾到鏈頭實施方式進行讀取或者以任意的一個Block文件為節點向前或向后讀取。元數據進行讀取時,讀取每個Block文件所在的NandFlash的地址標識、每個Block文件所在的文件夾的標識以及每個Block文件的標識。
[0053]需要說明的是本實施例示例性的將元數據模塊采用3個Block文件進行管理的實現方式(如圖3所示),但上述方式僅僅為方便描述元數據模塊對元數據進行管理的具體表現形式,本發明實施例對元數據的Block文件的數量不作限制。
[0054]如圖1所示,所述用戶數據模塊103,用于用戶數據的管理。用戶數據的格式、大小通過用戶數據模塊103進行管理,將用戶數據存儲到第三文件訪問存儲模塊106中。例如,當寫入的某個用戶數據的大小為8字節時,用戶數據模塊103將該用戶數據以8字節存入第三文件訪問存儲模塊106。一般情況下,用戶數據占用空間比較大,為了提高用戶數據的讀寫效率,將用戶數據進行壓縮存儲。
[0055]在本實施例中,所述第一訪問接口 107,用于信息數據模塊101與外部設備之間進行數據的傳輸;所述第二訪問接口 108,用于元數據模塊102與外部設備之間進行數據的傳輸;所述第三訪問接口 109,用于用戶數據模塊103與外部設備之間進行數據的傳輸。
[0056]如圖1所示,在FTL測試過程中,測試系統發送寫入命令時,FTL將命令中的邏輯地址轉換成物理地址,并將這種映射關系通過第二訪問接口 108存儲到元數據模塊102管理的第二文件訪問存儲模塊105中,通過第三訪問接口 109將數據寫入到用戶數據模塊103管理的第三文件訪問存儲模塊106中。當測試系統發送讀取命令時,FTL根據第二文件訪問模塊105中的元數據,可以將讀取命令中的邏輯地址轉換成物理地址,調取用戶數據模塊103管理的第三文件訪問存儲模塊106中的用戶數據,判斷與之前寫入的用戶數據是否相同,如果相同,則FTL管理數據是正確