一种模拟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管理数据是正确