闪存芯片的管理方法、装置及计算机可读存储介质
技术领域
本发明实施例涉及存储器技术领域,尤其涉及一种闪存芯片的管理方法及、装置及计算机可读存储介质。
背景技术
随着闪存技术的发展与成熟,闪存存储器已广泛应用于各类存储系统,如U盘、智能手机、平板电脑、数字存储卡、固态硬盘等。闪存存储系统中出现了一种称为闪存转换层(Flash Translation Layer,简称FTL)的嵌入式软件负责将来自于文件系统的逻辑地址转换为闪存中的物理地址。因此,如何有效地执行地址映射并管理映射信息,成为一个关键问题。
在实际使用闪存芯片时,用户通常看到的是连续的逻辑区块地址(Logical BlockAddress,LBA),而实际写到闪存颗粒中是物理地址,所以在闪存转换层肯定会用到从逻辑地址到物理地址的映射。
但闪存颗粒在实际使用过程中,有的块(block)因为编程/擦除PEC等原因会变成坏块,无法继续使用其进行写入等操作,所以可用的物理单元就会不断变化。由于闪存转换层可用的物理单元也随之变化,所以闪存转换层就必须额外管理闪存颗粒的物理信息,使得闪存转换层算法变得复杂。
发明内容
本发明提供一种闪存芯片的管理方法及、装置及计算机可读存储介质,以解决闪存转换层需要额外管理物理块的信息而导致算法复杂性增加的问题。
第一方面,本发明实施例提供了一种闪存芯片的管理方法,该方法包括:
根据接收到的当前逻辑地址以及映射关系表确定与所述当前逻辑地址对应的第一物理地址;
当判断出与所述第一物理地址对应的目标块为坏块时,获取与所述第一物理地址对应的第二物理地址;
其中,所述映射关系表用于存储逻辑地址与第一物理地址之间的第一对应关系。
进一步的,该方法还包括:
获取存储芯片中的坏块,将所述坏块的属性信息存储在预设的坏块表中。
进一步的,所述判断出与所述第一物理地址对应的目标块为坏块包括:
获取与所述第一物理地址对应的目标块的目标属性信息,若所述目标属性信息与所述坏块表中的各坏块的属性信息一致,则判断出所述目标块为坏块。
进一步的,所述判断出与所述第一物理地址对应的目标块为坏块之后,还包括:
获取所述目标块的属性信息,并将所述属性信息更新至所述坏块表中。
进一步的,所述获取与所述第一物理地址对应的第二物理地址,包括:
获取所述芯片中当前未写入数据的物理单元所对应的物理地址作为与所述第一物理地址对应的第二物理地址。
第二方面,本发明实施例还提供了一种闪存芯片的管理装置,该装置包括:
第一地址获取模块,用于根据接收到的当前逻辑地址以及映射关系表确定与所述当前逻辑地址对应的第一物理地址;
第二地址获取模块,用于当判断出与所述第一物理地址对应的目标块为坏块时,获取与所述第一物理地址对应的第二物理地址;
其中,所述关系映射表用于存储逻辑地址与第一物理地址之间的第一对应关系。
进一步的,该装置还包括:坏块获取模块,用于获取存储芯片中的坏块,将所述坏块的属性信息存储在预设的坏块表中。
进一步的,所述第二地址获取模块包括:信息判断单元,用于获取与所述第一物理地址对应的目标块的目标属性信息,若所述目标属性信息与所述坏块表中的各坏块的属性信息一致,则判断出所述目标块为坏块。
进一步的,该装置还包括:属性信息获取模块,用于在判断出与所述第一物理地址对应的目标块为坏块之后,获取所述目标块的属性信息,并将所述属性信息更新至所述坏块表中。
第三方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例所述的闪存芯片的管理方法。
本发明通过根据接收到的当前逻辑地址以及映射关系表确定与所述当前逻辑地址对应的第一物理地址;当判断出与所述第一物理地址对应的目标块为坏块时,获取与所述第一物理地址对应的第二物理地址;其中,所述映射关系表用于存储逻辑地址与第一物理地址之间的第一对应关系,能够有效解决由于出现坏块导致可用的物理单元变化,而闪存转换层要额外管理闪存中的物理信息时算法复杂的问题,可以缩短系统平均响应时间。
附图说明
为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
图1是本发明实施例一中的一种闪存芯片的管理方法。
图2A是本发明实施例二中的一种基于闪存芯片的管理方法建立的两级映射关系的示意图。
图2B是图2A所示的闪存芯片出现坏块时的两级映射关系的示意图。
图3是本发明实施例三中的一种闪存芯片的管理装置。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一中的一种闪存芯片的管理方法的流程图,本实施例可适用于闪存芯片的管理情况,该方法可以由闪存芯片的管理装置来执行,具体包括如下步骤:
S110、根据接收到的当前逻辑地址以及映射关系表确定与所述当前逻辑地址对应的第一物理地址。
其中,逻辑地址通常是在有地址变换功能的计算机中,访问指令给出的地址(操作数);第一物理地址通常是在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,此存储器地址称为物理地址(实际地址)。一般情况下,要经过寻址方式的计算或变换才得到内存储器中的第一物理地址。为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时由机器直接寻址的第一物理地址,这一过程称为地址映射。所述映射关系表用于存储逻辑地址与第一物理地址之间的第一对应关系。也就是可以通过查找映射关系表查找与逻辑地址对应的第一物理地址。
示例性的,闪存转化层可以对闪存单元的操作进行统一管理,核心功能是从逻辑地址到物理地址的映射。闪存转换层中的地址映射可以实现逻辑地址(文件系统的访问地址)到物理地址(闪存的实际地址)的映射。通常,文件系统通过脱机地址访问闪存的存储系统,闪存转换层接收到逻辑地址后查找映射关系表,找到相应的物理地址,或者分配一个新的物理地址。常用到的映射包括块单元映射,页单元映射和混合映射。
S120、当判断出与所述第一物理地址对应的目标块为坏块时,获取与所述第一物理地址对应的第二物理地址。
其中,在闪存芯片中的生产中及使用过程中可能会产生坏块,坏块是随机分布的,容易导致设备出现较高故障率,而且坏块不容易消除或者成本太高。因此,闪存器件可以对介质进行初始化扫描以发现坏块,把发现的坏块中的内容备份到另外一个空的可用块里面,然后把这个块标记为坏块,并将坏块标记为不可用。
第二物理地址可以是按照预设的选取规则选取的其他块对应的物理地址。可选的,获取所述闪存芯片中当前未写入数据的物理单元所对应的物理地址作为与所述第一物理地址对应的第二物理地址,也就是说将当前未写入数据的物理单元可以作为与第一物理地址对应的第二物理地址。
当然,可以是随机选取或者按照第一物理地址排列的顺序选取空的块对应的物理地址作为第二物理地址。示例性的,NAND flash以页为单位读写数据,而以块为单位擦除数据。如果第一物理地址包括1,2,3,4,5,6,7,8,9,10,11和12等编号的地址单元,其中1,2,3,4,5,6,7,8和9都分别与各逻辑地址有一一对应的关系,例如,其中,标号为7的物理地址与逻辑地址9对应。而标号分别为10,11和12物理地址等是没有与逻辑地址有对应关系的单元。当访问逻辑地址9时,根据映射关系表获取到与逻辑地址9对应的第一物理地址7,但是当判所述第一物理地址7对应的目标块为坏块时,那么可以选择10作为新的物理地址,即第二物理地址。比如进行写入操作时,可以直接将数据写入或缓存到第二物理地址,提高缓存命中率。
可选的,在上述实施例的基础上,可以保存第二物理地址与第一物理地址对应的新建映射关系,当用户下次进行存储或者访问时,就可以直接从逻辑地址和映射关系表访问第一物理地址,进一步根据新建映射关系找到第二物理地址,使用户可以快速访问到目标地址。
本发明实施例的技术方案通过根据接收到的当前逻辑地址以及映射关系表确定与所述当前逻辑地址对应的第一物理地址;当判断出与所述第一物理地址对应的目标块为坏块时,获取与所述第一物理地址对应的第二物理地址;其中,所述关系映射表用于存储逻辑地址与第一物理地址之间的第一对应关系。这样用户在进行访问的逻辑地址时,可以保证管理地址映射以及响应效率,同时访问时看到的一直是连续的逻辑地址,闪存转换层的固件及管理算法变得简单,不需要知道物理单元的状态信息,就可以方便管理地址映射进行操作,保持了高效的地址映射性能,使系统设备达到更优的性能。
在上述技术方案的基础上,可选的,闪存芯片的管理方法还包括:获取闪存芯片中的坏块,将所述坏块的属性信息存储在预设的坏块表中。
其中,预设的坏块表可以是预先设置的用于存储闪存中坏块属性信息的表,在闪存芯片中可以通过扫描等方式进行坏块的扫描,并将扫描到的坏块的属性信息存储在预设的坏块表中。属性信息可以是坏块的标号、字段等信息。这样的技术方案使得计算机设备进行访问时,可以直接判断根据逻辑地址对应的第一物理地址对应的目标块是否在坏块表中,如果在坏块表中,在选择第二物理地址时,就直接排除这个坏块,也就不需要将数据写入这个目标块中,而是选择其他不在坏块表中的还未写入数据的块进行操作,提高相应效率。
在此基础上,可选是判断出与所述第一物理地址对应的目标块为坏块包括:获取与所述第一物理地址对应的目标块的目标属性信息,若所述目标属性信息与所述坏块表中的至少一个坏块的属性信息一致,则判断出所述目标块为坏块。即获取到第一物理地址对应的目标块时,若判断出此目标块的目标属性信息与所述坏块表中的至少一个坏块一致时,则判断出所述目标块为坏块。
考虑到随着闪存芯片使用时间和使用次数的增加,坏块率也可能会随之升高,为了及时得知坏块情况,可选的,所述判断出与所述第一物理地址对应的目标块为坏块之后,还包括:获取所述目标块的属性信息,并将所述属性信息更新至所述坏块表中,以便查询。
实施例二
图2A是本发明实施例二中的一种基于闪存芯片的管理方法建立的两级映射关系的示意图。如图2A所示,本实施例根据闪存芯片的管理方法可以建立一种两级映射关系。
首先,引入虚拟单元地址层,建立一级映射,即逻辑地址与虚拟单元地址建立一一对应的关系,即第一映射表。
其中,虚拟单元地址段是连续并且一直可用的,虚拟单元地址于逻辑地址总数保持一致,也不存在不可用的情况。
其次,建立二级映射,即虚拟地址一一映射到每一个物理地址,即第二映射表。
其中,虚拟地址的单元总数比物理地址的单元少,当某个物理地址的单元不可用时,虚拟地址的单元就会指向另一个没有被占用的,空闲的对策物理单元,如图2A所示的物理地址10,11和12等。
如果访问逻辑地址9,则根据第一映射表,会寻找到虚拟单元地址7,继续根据第二映射表找到物理地址7。在一级映射中,固件能够使用的虚拟地址的单元一直没有改变。
图2B是图2A所示的闪存芯片出现坏块时的两级映射关系的示意图,如图2B所示,假设在使用一段时间后,物理地址7所对应的物理单元是坏的,无法继续使用时,那么二级映射关系就会改变。比如,虚拟单元地址7对应的物理地址可以更改为物理地址10,并可以更新第二映射表。这样坏的物理单元可以进行标记,根据一定的选取规则把坏的物理单元的物理地址对应到其他可用的空的物理地址中,可以解决闪存转换层可用的物理单元变化,导致的闪存转换层就增加其他额外管理闪存物理信息的算法变得复杂,降低系统响应率和性能的问题。
本发明实施例的技术方案通过建立二级映射关系,实现用户在进行访问的逻辑地址时,可以不受坏块影响,保证管理地址映射以及响应效率,同时访问时看到的一直是连续的逻辑地址,闪存转换层的固件及管理算法变得简单,不需要知道物理单元的状态信息,就可以方便管理地址映射进行操作,保持了高效的地址映射性能,使系统设备达到更优的性能。
实施例三
图3是本发明实施例三中的一种闪存芯片的管理装置,该装置包括:
第一地址获取模块310,用于根据接收到的当前逻辑地址以及映射关系表确定与所述当前逻辑地址对应的第一物理地址;
第二地址获取模块320,用于当判断出与所述第一物理地址对应的目标块为坏块时,获取与所述第一物理地址对应的第二物理地址;
其中,所述映射关系表用于存储逻辑地址与第一物理地址之间的第一对应关系。
可选的,该装置还包括坏块获取模块,用于获取存储芯片中的坏块,将所述坏块的属性信息存储在预设的坏块表中。
可选的,所述第二地址获取模块包括信息判断单元,用于获取与所述第一物理地址对应的目标块的目标属性信息,若所述目标属性信息与所述坏块表中的各坏块的属性信息一致,则判断出所述目标块为坏块。
可选的,该装置还包括属性信息获取模块,用于在判断出与所述第一物理地址对应的目标块为坏块之后,获取所述目标块的属性信息,并将所述属性信息更新至所述坏块表中。
上述装置可执行本发明实施例一和实施例二所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例一和实施例二所提供的方法。
值得注意的是,上述闪存芯片的管理方法装置的实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例四
本发明实施例四提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任意实施例所述的闪存芯片的管理方法。
本实施例提供的计算机可读存储介质存储的计算机程序,除了被处理器执行时实现本发明任意实施例中所述的闪存芯片的管理方法,还可以包括其他程序,以实现具体的业务需求。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。