一种模拟NandFlash的装置及方法
技术领域
本发明涉及模拟存储领域,尤其涉及一种模拟NandFlash的装置及方法。
背景技术
eMMC(EmbeddedMultiMediaCard,内嵌式存储器)是一种主要针对于手机或平板电脑等电子设备的内嵌式存储器。其中,eMMC中包含了非线性闪存(NandFlash),目前,NandFlash逐渐成为嵌入式系统的主要存储介质之一,没有文件系统来管理NandFlash上的数据是不可想象的。
为了便于管理NandFlash上的数据,引入了FTL(FlashTranslationLayer,文件传输层),一旦FTL出现问题,那么会使数据读写发生错误,更为严重的是eMMC无法被访问。因此,FTL的稳定性及效率对eMMC来说至关重要,在应用FTL对eMMC中NandFlash上的数据进行管理时,首先应该对FTL进行测试。
现有技术中,在FTL的测试过程中,需要不断地问NandFlash上的数据,通过反馈结果判断FTL的稳定性及效率,但是这种测试方法应用到硬件中的NandFlash,不方便测试操作。所以,在FTL测试中,采用模拟NandFlash的装置进行数据的存储。由于在FTL测试中,为了反复验证FTL的稳定性,需要大量的数据,因此,模拟NandFlash的装置能否高效的存储和管理数据是测试FTL的重要环节。
发明内容
有鉴于此,本发明实施例提供一种模拟NandFlash的装置及方法,能够实现高效的数据存储和管理功能。
第一方面,本发明实施例提供了一种模拟NandFlash的装置,包括:
信息数据模块,用于信息数据的管理;
元数据模块,用于元数据的管理;
用户数据模块,用于用户数据的管理;
第一文件访问存储模块,用于存储信息数据;
第二文件访问存储模块,用于存储元数据;
第三文件访问存储模块,用于存储用户数据;
第一访问接口,用于信息数据模块与外部设备之间进行数据的传输;
第二访问接口,用于元数据模块与外部设备之间进行数据的传输;
第三访问接口,用于用户数据模块与外部设备之间进行数据的传输。
进一步的,所述信息数据模块,包括:
地址标识单元,用于记录或存储Nandlash的标识信息,以区分不同的NandFlash;
ID管理单元,用于实现NandFlash的ID管理功能;
坏块管理单元,用于实现NandFlash坏块管理功能;
读写报错单元,用于实现NandFlash读写报错功能。
进一步的,所述元数据以Block为单位存储在文件中,形成元数据的Block文件。
进一步的,所述元数据管理模块对元数据的Block文件以链表的形式进行管理。
进一步的,所述元数据管理模块对元数据的Block文件以链表的形式进行管理,包括:元数据进行读取时,以链头到链尾实施方式进行读取、以链尾到链头实施方式进行读取或者以任意的一个Block文件为节点向前或向后读取。
进一步的,元数据进行读取时,读取每个Block文件所在的NandFlash的地址标识、每个Block文件所在的文件夹的标识以及每个Block文件的标识。
第二方面,本发明实施例还提供了一种模拟NandFlash的方法,包括:
通过信息数据模块进行信息数据的管理;
通过元数据模块进行元数据的管理;
通过用户数据模块进行用户数据的管理;
通过第一文件访问存储模块存储信息数据;
通过第二文件访问存储模块存储元数据;
通过第三文件访问存储模块存储用户数据;
通过第一访问接口进行信息数据模块与外部设备之间进行数据的传输;
通过第二访问接口进行元数据模块与外部设备之间进行数据的传输;
通过第三访问接口进行用户数据模块与外部设备之间进行数据的传输。
进一步的,所述通过信息数据模块进行信息数据的管理,包括:
通过地址标识单元记录或存储Nandlash的标识信息,以区分不同的NandFlash;
通过ID管理单元实现NandFlash的ID管理功能;
通过坏块管理单元实现NandFlash坏块管理功能;
通过读写报错单元实现NandFlash读写报错功能。
本发明实施例提供的一种模拟NandFlash的装置及方法,其中,该装置包括信息数据模块、元数据模块、用户数据模块、第一文件访问存储模块、第二文件访问存储模块、第三文件访问存储模块、第一访问接口、第二访问接口和第三访问接口,其中信息数据模块、元数据模块、用户数据模块分别用于信息数据、元数据和用户数据的管理;第一文件访问存储模块、第二文件访问存储模块和第三文件访问存储模块分别用于存储信息数据、元数据和用户数据;第一访问接口,第二访问接口和第三访问接口分别用于信息数据模块、元数据模块、用户数据模块与外部设备之间进行数据的传输。本发明实施例将信息数据、元数据、用户数据分别进行归类存储和管理,能够实现高效的数据存储和管理功能。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是本发明实施例一提供的一种模拟NandFlash的装置的结构图;
图2是本发明实施例一提供的元数据模块管理元数据的链表图;
图3是本发明实施例二提供的一种模拟NandFlash的方法流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
eMMC(EmbeddedMultiMediaCard,内嵌式存储器)是一种主要针对于手机或平板电脑等电子设备的内嵌式存储器。其中,eMMC中包含了NandFlash,为了便于管理NandFlash上的数据,引入了FTL,一旦FTL出现问题,那么会使数据读写发生错误,更为严重的是eMMC无法被访问。因此,FTL的稳定性及效率对eMMC来说至关重要,在应用FTL对NandFlash上的数据进行管理时,首先应该对FTL进行测试。
现有技术中,在FTL的测试过程中,需要不断地问NandFlash上的数据,通过反馈结果判断FTL的稳定性及效率,但是这种测试方法应用到硬件中的NandFlash,不方便测试操作。所以,在FTL测试中,采用模拟Nandflash的装置进行数据的存储和管理。
实施例一
图1为本发明实施例一提供的一种模拟NandFlash的装置结构框图,如图1所示,所述的装置100包括:信息数据模块101、元数据模块102、用户数据模块103、第一文件访问存储模块104、第二文件访问存储模块105、第三文件访问存储模块106、第一访问接口107、第二访问接口108和第三访问接口109。
其中,所述信息数据模块101,用于信息数据的管理。其中信息数据包括NandFlash的地址标识、ID等信息,将信息数据存储到第一文件访问存储模块104。
所述元数据模块102,用于元数据的管理。其中,所述元数据以Block为单位存储在文件中,形成元数据的Block文件;其中,元数据包括逻辑地址到物理地址的映射表,元数据模块102将元数据存储到第二文件访问存储模块105。
在本实施例中,如图2所示,所述元数据管理模块对元数据的Block文件以链表的形式进行管理。具体的,在FTL测试过程中,对元数据进行读取时,以链头到链尾实施方式进行读取、以链尾到链头实施方式进行读取或者以任意的一个Block文件为节点向前或向后读取。元数据进行读取时,读取每个Block文件所在的NandFlash的地址标识、每个Block文件所在的文件夹的标识以及每个Block文件的标识。
需要说明的是本实施例示例性的将元数据模块采用3个Block文件进行管理的实现方式(如图3所示),但上述方式仅仅为方便描述元数据模块对元数据进行管理的具体表现形式,本发明实施例对元数据的Block文件的数量不作限制。
如图1所示,所述用户数据模块103,用于用户数据的管理。用户数据的格式、大小通过用户数据模块103进行管理,将用户数据存储到第三文件访问存储模块106中。例如,当写入的某个用户数据的大小为8字节时,用户数据模块103将该用户数据以8字节存入第三文件访问存储模块106。一般情况下,用户数据占用空间比较大,为了提高用户数据的读写效率,将用户数据进行压缩存储。
在本实施例中,所述第一访问接口107,用于信息数据模块101与外部设备之间进行数据的传输;所述第二访问接口108,用于元数据模块102与外部设备之间进行数据的传输;所述第三访问接口109,用于用户数据模块103与外部设备之间进行数据的传输。
如图1所示,在FTL测试过程中,测试系统发送写入命令时,FTL将命令中的逻辑地址转换成物理地址,并将这种映射关系通过第二访问接口108存储到元数据模块102管理的第二文件访问存储模块105中,通过第三访问接口109将数据写入到用户数据模块103管理的第三文件访问存储模块106中。当测试系统发送读取命令时,FTL根据第二文件访问模块105中的元数据,可以将读取命令中的逻辑地址转换成物理地址,调取用户数据模块103管理的第三文件访问存储模块106中的用户数据,判断与之前写入的用户数据是否相同,如果相同,则FTL管理数据是正确的,否则,FTL出现问题。如果测试系统需要获取NandFlash的ID、型号等信息,可以通过第一访问接口107获取在信息数据模块101管理的第一文件访问存储模块104中的数据。
在上述实施例的基础上,第一文件访问存储模块104、第二文件访问存储模块105和第三文件访问模块106,可以为同一个文件访问存储模块,存储信息数据、元数据和用户数据。
在上述实施例的基础上,如图1所示,所述信息数据模块101,包括:地址标识单元1011,ID管理单元1012,坏块管理单元1013和读写报错单元1014。
所述地址标识单元1011,记录或存储Nandlash的标识信息,以区分不同的NandFlash;其中,每一个NandFlash均具有唯一的标识,每一个NandFlash的地址标识单元对NandFlash进行标识,能够区分不同的NandFlash。
所述ID管理单元1012,用于实现NandFlash的ID管理功能,其中通过ID管理单元,可以获取NandFlash的型号、种类等信息。其中,对于ID信息相同的NandFlash可能会存在多个,地址标识单元1011能够将多个NandFlash进行区分。
所述坏块管理单元1013,用于实现NandFlash坏块管理功能。
在本实施例中,NandFlash中存在一些坏块,随着NandFlash的访问次数的增加,坏块的个数可能会越来越多。坏块管理单元1013能够对NandFlash中的坏块进行检测以及标记,更新坏块地址表。例如,在NandFlash中存在8个Block,其中,坏块管理单元能够对8个Block进行检测,确定Block的坏块地址,如果检测到的Block<2>为坏块,对Block<2>的块地址进行标记,并更新坏块地址表。当测试系统向FTL发送读取Block<2>的命令时,FTL查询逻辑地址到物理地址的映射表,其中逻辑地址到物理地址的映射表根据坏块地址表中的信息,确认Block<2>为坏块的地址,FTL根据逻辑地址到物理地址的映射表的信息,将逻辑Block<2>映射到物理Block<3>,调用物理Block<3>中的数据,如果调用的数据与之前写入的数据相同,则判断FTL对数据的管理是正确的,否则FTL出现问题。其中,坏块管理单元还具有其他坏块管理的功能。
所述读写报错单元1014,用于实现NandFlash读写报错功能。
在本实施例中,NandFlash存在多个Block,如果某个Block已经被写入数据,当测试系统再次向该Block发送写入数据的命令时,读写报错单元能够出现错误提示,并且需要将之前写入该Block的数据进行擦除,才能进行新数据的写入操作。
在本实施例中,通过将信息数据模块区分了不同的功能单元,能够将信息数据归类管理,使信息数据的管理更加高效。
本发明实施例提供的一种模拟NandFlash的装置,该装置包括信息数据模块、元数据模块、用户数据模块、第一文件访问存储模块、第二文件访问存储模块、第三文件访问存储模块、第一访问接口、第二访问接口和第三访问接口,其中信息数据模块、元数据模块、用户数据模块分别用于信息数据、元数据和用户数据的管理;第一文件访问存储模块、第二文件访问存储模块和第三文件访问存储模块分别用于存储信息数据、元数据和用户数据;第一访问接口,第二访问接口和第三访问接口分别用于信息数据模块、元数据模块、用户数据模块与外部设备之间进行数据的传输。本发明实施例将信息数据、元数据、用户数据分别进行归类存储和管理,能够实现高效的数据存储和管理功能。
实施例二
图3是本实施例二提供的一种模拟NandFlash的方法的流程图,由模拟NandFlash的装置来执行,在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。如图3所示,所述方法包括:
S301:通过信息数据模块进行信息数据的管理。
S302:通过元数据模块进行元数据的管理。
S303:通过用户数据模块进行用户数据的管理。
S304:通过第一文件访问存储模块存储信息数据。
S305:通过第二文件访问存储模块存储元数据。
S306:通过第三文件访问存储模块存储用户数据。
S307:通过第一访问接口进行信息数据模块与外部设备之间进行数据的传输。
S308:通过第二访问接口进行元数据模块与外部设备之间进行数据的传输。
S309:通过第三访问接口进行用户数据模块与外部设备之间进行数据的传输。
在上述实施例的基础上,对通过信息数据模块进行信息数据的管理步骤进行了优化,具体的,通过信息数据模块进行信息数据的管理包括:通过地址标识单元记录或存储Nandlash的标识信息,以区分不同的NandFlash;通过ID管理单元实现NandFlash的ID管理功能;通过坏块管理单元实现NandFlash坏块管理功能;通过读写报错单元实现NandFlash读写报错功能。对通过信息数据模块进行信息数据的管理步骤进行优化,能够将信息数据归类管理,使信息数据的管理更加高效。
本发明实施例二提供的一种模拟NandFlash的方法,通过信息数据模块、元数据模块、用户数据模块分别进行信息数据、元数据和用户数据的管理,通过第一文件访问存储模块、第二文件访问存储模块和第三文件访问存储模块分别进行存储信息数据、元数据和用户数据;通过第一访问接口,第二访问接口和第三访问接口分别进行信息数据模块、元数据模块、用户数据模块与外部设备之间进行数据的传输,能够实现高效的数据的存储和管理。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。