一种三维闪存的数据写入方法、装置及可读存储介质与流程

文档序号:18162713发布日期:2019-07-13 09:24阅读:168来源:国知局
一种三维闪存的数据写入方法、装置及可读存储介质与流程

本发明涉及数据存储领域,尤其涉及一种三维闪存的数据写入方法、装置及可读存储介质。



背景技术:

作为最新一代的闪存技术,三维闪存通过在三维方向上堆叠闪存来实现存储容量成倍的快速增长,可以获得数倍于传统芯片的存储容量。由于三维闪存的高存储容量,在越来越多的行业受到了用户的青睐。

然而,在现有的三维闪存的管理上,系统会针对特定逻辑地址进行频繁读写操作,从而三维闪存上对应于该逻辑地址的物理地址的局部温度则会不断升高,导致闪存的可靠性下降,数据的误码率大幅升高。目前,通常通过电路级技术例如分布式nand串扰码、层感知程序验证和读取、层感知位线预充电等方案来提高三维闪存的电路可靠性,但是该电路级技术解决方案为基于硬件的解决方案,需要改变三维闪存的硬件设计工艺,方案实现的复杂度较高,应用的稳定性较为局限。



技术实现要素:

本发明实施例的主要目的在于提供一种三维闪存的数据写入方法、装置及可读存储介质,至少能够解决相关技术中采用电路级技术改善三维闪存的可靠性时,方案实现的复杂度较高,应用的稳定性较为局限的问题。

为实现上述目的,本发明实施例第一方面提供了一种三维闪存的数据写入方法,该方法包括:

当向三维闪存写入数据时,在所述三维闪存上分配对应于待写入数据的逻辑块的目标物理块;

对所述目标物理块进行温度感知,根据所述目标物理块的温度感知信息判断是否满足预设的数据写入条件;

若是,则将所述待写入数据写入所述目标物理块;

若否,则查找所述三维闪存上符合所述数据写入条件的新物理块,并将所述待写入数据写入所述新物理块。

为实现上述目的,本发明实施例第二方面提供了一种三维闪存的数据写入装置,该装置包括:

分配模块,用于当向三维闪存写入数据时,在所述三维闪存上分配对应于待写入数据的逻辑块的目标物理块;

判断模块,用于对所述目标物理块进行温度感知,根据所述目标物理块的温度感知信息判断是否满足预设的数据写入条件;

第一写入模块,用于在满足所述数据写入条件时,将所述待写入数据写入所述目标物理块;

第二写入模块,用于在不满足所述数据写入条件时,查找所述三维闪存上符合所述数据写入条件的新物理块,并将所述待写入数据写入所述新物理块。

为实现上述目的,本发明实施例第三方面提供了一种电子装置,该电子装置包括:处理器、存储器和通信总线;

所述通信总线用于实现所述处理器和存储器之间的连接通信;

所述处理器用于执行所述存储器中存储的一个或者多个程序,以实现上述任意一种三维闪存的数据写入方法的步骤。

为实现上述目的,本发明实施例第四方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任意一种三维闪存的数据写入方法的步骤。

根据本发明实施例提供的三维闪存的数据写入方法、装置及可读存储介质,当向三维闪存写入数据时,在三维闪存上分配对应于待写入数据的逻辑块的目标物理块;对目标物理块进行温度感知,根据目标物理块的温度感知信息判断是否满足预设的数据写入条件;若是,则将待写入数据写入目标物理块;若否,则查找三维闪存上符合数据写入条件的新物理块,并将待写入数据写入新物理块。通过本发明的实施,采用软/硬件协同设计的思想,在设备驱动层实现物理块的温度感知,然后基于温度感知结果来控制数据写入至合适的物理块,不用更改三维闪存本身的工艺设计,方案实现时的复杂度较低,应用稳定性也更有保障。

本发明其他特征和相应的效果在说明书的后面部分进行阐述说明,且应当理解,至少部分效果从本发明说明书中的记载变的显而易见。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明第一实施例提供的三维闪存的数据写入方法的基本流程示意图;

图2为本发明第一实施例提供的构建高温强连通分量的流程示意图;

图3为本发明第二实施例提供的一种三维闪存的数据写入装置的结构示意图;

图4为本发明第二实施例提供的另一种三维闪存的数据写入装置的结构示意图;

图5为本发明第三实施例提供的电子装置的结构示意图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

第一实施例:

为了解决相关技术中采用电路级技术改善三维闪存的可靠性时,方案实现的复杂度较高,应用的稳定性较为局限的技术问题,本实施例提出了一种三维闪存的数据写入方法,应用于三维闪存,三维闪存采用多层的立体结构,各平面层堆叠在一起,每层有若干行,每行具有若干物理块。如图1所示为本实施例提供的三维闪存的数据写入方法的基本流程示意图,本实施例提出的三维闪存的数据写入方法包括以下的步骤:

步骤101、当向三维闪存写入数据时,在三维闪存上分配对应于待写入数据的逻辑块的目标物理块。

具体的,当上层应用要求写入一个文件的时候,首先根据文件号序列去计算要写入的逻辑块号,然后对于这个逻辑块号,在三维闪存上顺序分配物理块号。应当理解的是,在实际应用中,若待写入的数据可以仅通过一个物理块写完,也可以是需要多个物理块进行写入,在需要多个物理块进行写入时,物理块是依次进行分配,在当前分配的物理块执行后续流程之后,再为待写入数据分配下一个物理块。还应当说明的是,本实施例中所分配的目标物理块为可供待写入数据使用的空闲物理块,也即被擦除后的物理块。

步骤102、对目标物理块进行温度感知,根据目标物理块的温度感知信息判断是否满足预设的数据写入条件。

具体的,现有的三维闪存的数据写入方法是顺序写入的,无关乎闪存温度,而本实施例中基于对物理块的温度进行感知,并基于温度感知结果来控制数据写入。应当理解的是,数据写入条件用于衡量目标物理块的温度是否符合数据写入要求,在不满足数据写入条件时,表征目标物理块的温度高于数据写入临界温度。

可选的,对目标物理块进行温度感知,根据目标物理块的温度感知信息判断是否满足预设的数据写入条件包括:检测目标物理块是否归属于高温强连通分量;高温强连通分量用于指示包含目标物理块的物理块集合中所有物理块的温度均高于预设温度阈值;在目标物理块归属于高温强连通分量时,根据高温强连通分量的时间戳,判断高温强连通分量的时间戳所指示的时刻与当前时刻之差是否超过预设时长阈值;高温强连通分量的时间戳为物理块集合中最早进栈的物理块进栈时的时间戳;若超过时长阈值,则满足预设的数据写入条件;若不超过时长阈值,则不满足所述数据写入条件。

具体的,本实施例中考虑在三维闪存上读写和擦除物理块会导致物理块升温的特性,对三维闪存上的高温物理块进行标记,也即将高温物理块构建为高温强连通分量,通常一个物理块如果被写,那么在一段时间内,该物理块以及其相邻的物理块有重复被写的趋势,以及出于物理块之间的热传导,一个高温物理块通过热传导,能够导致相邻的物理块升温,从而一个高温强连通分量通常关联于多个物理块。应当说明的是,每个高温强连通分量具有一个时间戳smallest_time[],用于记录归属于该高温强连通分量的所有物理块中最早进栈的那个物理块的时间戳time[]。在本实施例中,通过计算高温强连通分量的时间戳与当前时间的差值,来衡量该高温强连通分量下的物理块的从被标记至当前的冷却时间,在冷却时间超过预设时长阈值时,说明物理块冷却的时间足够长,当前物理块为符合写入要求的物理块,反之则说明该物理块当前应当继续进行冷却而不可写入,而避免物理块在短期内反复被操作而导致数据出错。

可选的,在将待写入数据写入目标物理块之前,还包括:对高温强连通分量进行释放操作,释放操作用于将归属于高温强连通分量的所有物理块进栈时的时间戳、以及高温强连通分量的时间戳重置为初始值。

具体的,在本实施例中,在确定归属于高温强连通分量的物理块冷却时间满足要求时,在对该物理块进行数据写入之前,可以取消这个高温强连通分量,将其中所有物理块的时间戳time[]以及高温强连通分量的时间戳smallest_time[]进行重置,取消所有物理块属于高温强连通分量的标记。

可选的,对目标物理块进行温度感知,根据目标物理块的温度感知信息判断是否满足预设的数据写入条件包括:检测目标物理块是否归属于高温强连通分量,并在目标物理块不归属于高温强连通分量时,检测目标物理块当前的温度;高温强连通分量用于指示包含目标物理块的物理块集合中所有物理块的温度均高于预设温度阈值;判断目标物理块当前的温度是否低于预设温度阈值;若低于温度阈值,则满足预设的数据写入条件;若不低于温度阈值,则不满足所述数据写入条件。

具体的,在本实施例的另一种实现中,若该目标物理块并不属于高温强连通分量,则直接对该目标物理块进行温度检测,并判断该目标物理块当前温度是否低于预温度设阈值,在低于预设温度阈值时,说明目标物理块不是高温物理块,满足数据写入条件。

可选的,若目标物理块当前的温度不低于温度阈值,则以目标物理块为起点,构建高温强连通分量。

具体的,在目标物理块高于预设温度阈值,则说明目标物理块为高温物理块,不满足数据写入条件,本实施例中则基于该目标物理块构建高温强连通分量,来指导后续对该物理块的数据写入行为。

如图2所示为本实施例提供的构建高温强连通分量的流程示意图,具体包括以下步骤:

步骤201、将目标物理块确定为首个待进栈物理块;

步骤202、将待进栈物理块压入栈中,并记录待进栈物理块进栈时的时间戳;

步骤203、遍历三维闪存上与待进栈物理块相邻的物理块,判断相邻的物理块当前的温度是否不低于温度阈值;

步骤204、在确定相邻的物理块当前的温度不低于温度阈值时,将相邻的物理块作为待进栈物理块,返回执行步骤202;

步骤205、在符合预设的构建终止条件时,对栈内的物理块进行退栈处理,直至最先进栈的目标物理块退栈,基于所退栈的所有物理块构建高温强连通分量,并将目标物理块进栈时的时间戳作为高温强连通分量的时间戳。

具体的,本实施例中首先初始化一个栈s,初始化一个时间戳变量cnt_time,还要初始化两个数组,一个是time[],该数组用来记录各个物理块进栈的次序,作为每个物理块的时间戳。第二个数组smallest_time[]记录一个物理块能够回溯到的最早的栈中结点的时间戳。在目标物理块x的温度高于温度阈值时,首先要将该目标物理块x压入栈中,更新时间戳cnt_time=cnt_time+1,同时更新time[]数组和smallest_time[]数组,具体的操作是:令time[x]=cnt_time,smallest_time[x]=time_cnt。

接下来遍历所有跟目标物理块x相邻的物理块,由于物理块处于三维闪存中,从而共有上下左右前后六个方向的相邻物理块。假设当前遍历到的相邻物理块为y,就判断y是否在本次构造高温强连通分量的过程中被访问过。如果没有被访问过,则接着判断物理块y的温度是否超过了温度阈值,如果超过了高温阈值,那就将物理块y作为新的输入,将物理块y压入栈中,并遍历物理块y相邻的物理块以及相邻物理块的温度是否超过温度阈值。而若物理块y没有被访问过,则说明该物理块已经被压入栈中,执行更新smallest_time[x]=min(smallest_time[x],time[y]),而并不重复将其压入栈中。

应当说明的是,在本实施例中,构建终止条件包括以下任意一种,其一,所有相邻物理块都被遍历完毕,其二,物理块其余的五个相邻物理块当前的温度均低于温度阈值。在满足构建终止条件时,那么就判断是否有time[x]=smallest_time[x],若是,则说明目标物理块x就是所构造的高温强连通分量中最早进栈的物理块。至此,栈中所有的物理块都属于高温强连通分量,将栈顶元素一直退栈,直到目标物理块x为止,退栈出来的所有物理块组成高温强连通分量。

步骤103、在满足数据写入条件时,将待写入数据写入目标物理块。

具体的,本实施例中在基于对目标物理块的温度感知行为确定该物理块可以写入时,将待写入数据写入该物理块,若所有待写入数据仅需要一个物理块即可写完,则当前的整个数据写入流程结束,而若需要多个物理块才能写入,那么则返回步骤101,继续分配物理块并进行温度感知。

步骤104、在不满足数据写入条件时,查找三维闪存上符合数据写入条件的新物理块,并将待写入数据写入新物理块。

具体的,在本实施例中,若确定当前的目标物理块不满足数据写入条件,则所分配的该目标物理块为高温物理块,应当在三维闪存上重找一个符合条件的新物理块进行数据写入,以避免在高温物理块上进行数据写入而导致数据出错。

可选的,查找三维闪存上符合数据写入条件的新物理块包括:基于高温强连通分量的偏移量信息在三维闪存上,以目标物理块为起点跳过对应于偏移量信息的物理块,查找符合数据写入条件的新物理块。

具体的,若目标物理块归属于高温强连通分量,且基于高温强连通分量的时间戳确定该物理块的冷却时间低于预设时长阈值时,需要重找符合条件的新物理块进行数据写入时,基于该高温强连通分量的偏移量信息来跳过三维闪存上的高温区域,来查找温度符合数据写入要求的新物理块。

根据本发明实施例提供的三维闪存的数据写入方法,当向三维闪存写入数据时,在三维闪存上分配对应于待写入数据的逻辑块的目标物理块;对目标物理块进行温度感知,根据目标物理块的温度感知信息判断是否满足预设的数据写入条件;若是,则将待写入数据写入目标物理块;若否,则查找三维闪存上符合数据写入条件的新物理块,并将待写入数据写入新物理块。通过本发明的实施,采用软/硬件协同设计的思想,在设备驱动层实现物理块的温度感知,然后基于温度感知结果来控制数据写入至合适的物理块,不用更改三维闪存本身的工艺设计,方案实现时的复杂度较低,应用稳定性也更有保障。

第二实施例:

为了解决相关技术中采用电路级技术改善三维闪存的可靠性时,方案实现的复杂度较高,应用的稳定性较为局限的技术问题,本实施例示出了一种三维闪存的数据写入装置,具体请参见图3,本实施例的数据写入装置包括:

分配模块301,用于当向三维闪存写入数据时,在三维闪存上分配对应于待写入数据的逻辑块的目标物理块;

判断模块302,用于对目标物理块进行温度感知,根据目标物理块的温度感知信息判断是否满足预设的数据写入条件;

第一写入模块303,用于在满足数据写入条件时,将待写入数据写入目标物理块;

第二写入模块304,用于在不满足数据写入条件时,查找三维闪存上符合数据写入条件的新物理块,并将待写入数据写入新物理块。

具体的,当上层应用要求写入一个文件的时候,首先根据文件号序列去计算要写入的逻辑块号,然后对于这个逻辑块号,在三维闪存上顺序分配物理块号。并且,本实施例中基于对物理块的温度进行感知,并基于温度感知结果来控制数据写入,其中,数据写入条件用于衡量目标物理块的温度是否符合数据写入要求。另外,本实施例中在基于对目标物理块的温度感知行为确定该物理块当前的温度适合数据写入时,将待写入数据写入该物理块,而若确定当前的目标物理块不满足数据写入条件,则所分配的该目标物理块为高温物理块,应当在三维闪存上重找一个符合条件的新物理块进行数据写入,以避免在高温物理块上进行数据写入而导致数据出错。

一方面,在本实施例的一些实施方式中,判断模块302具体用于检测目标物理块是否归属于高温强连通分量;高温强连通分量用于指示包含目标物理块的物理块集合中所有物理块的温度均高于预设温度阈值;在目标物理块归属于高温强连通分量时,根据高温强连通分量的时间戳,判断高温强连通分量的时间戳所指示的时刻与当前时刻之差是否超过预设时长阈值;高温强连通分量的时间戳为物理块集合中最早进栈的物理块进栈时的时间戳。其中,若超过时长阈值,则满足预设的数据写入条件;若不超过时长阈值,则不满足所述数据写入条件。

如图4所示为本实施例提供的另一种三维闪存的数据写入装置,进一步地,在本实施例的一些实施方式中,三维闪存的数据写入装置还包括:释放模块305,用于在将待写入数据写入目标物理块之前,对高温强连通分量进行释放操作,释放操作用于将归属于高温强连通分量的所有物理块进栈时的时间戳、以及高温强连通分量的时间戳重置为初始值。

进一步地,在本实施例的一些实施方式中,第二写入模块304在查找三维闪存上符合数据写入条件的新物理块时,具体用于基于高温强连通分量的偏移量信息在三维闪存上,以目标物理块为起点跳过对应于偏移量信息的物理块,查找符合数据写入条件的新物理块。

另一方面,在本实施例的另一些实施方式中,判断模块302具体用于检测目标物理块是否归属于高温强连通分量,并在目标物理块不归属于高温强连通分量时,检测目标物理块当前的温度;高温强连通分量用于指示包含目标物理块的物理块集合中所有物理块的温度均高于预设温度阈值;判断目标物理块当前的温度是否低于预设温度阈值。其中,若低于温度阈值,则满足预设的数据写入条件;若不低于温度阈值,则不满足数据写入条件。

请再次参阅图4,进一步地,在本实施例的一些实施方式中,三维闪存的数据写入装置还包括:构建模块306,用于在目标物理块当前的温度不低于温度阈值时,以目标物理块为起点,构建高温强连通分量。

更进一步地,在本实施例的一些实施方式中,构建模块306在以目标物理块为起点,构建高温强连通分量时,具体用于将目标物理块确定为首个待进栈物理块;将待进栈物理块压入栈中,并记录待进栈物理块进栈时的时间戳;遍历三维闪存上与待进栈物理块相邻的物理块,判断相邻的物理块当前的温度是否不低于温度阈值;在确定相邻的物理块当前的温度不低于温度阈值时,将相邻的物理块作为待进栈物理块进行递归;在符合预设的构建终止条件时,对栈内的物理块进行退栈处理,直至最先进栈的目标物理块退栈,基于所退栈的所有物理块构建高温强连通分量,并将目标物理块进栈时的时间戳作为高温强连通分量的时间戳。

应当说明的是,前述实施例中的三维闪存的数据写入方法均可基于本实施例提供的三维闪存的数据写入装置实现,所属领域的普通技术人员可以清楚的了解到,为描述的方便和简洁,本实施例中所描述的三维闪存的数据写入装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

采用本实施例提供的三维闪存的数据写入装置,当向三维闪存写入数据时,在三维闪存上分配对应于待写入数据的逻辑块的目标物理块;对目标物理块进行温度感知,根据目标物理块的温度感知信息判断是否满足预设的数据写入条件;若是,则将待写入数据写入目标物理块;若否,则查找三维闪存上符合数据写入条件的新物理块,并将待写入数据写入新物理块。通过本发明的实施,采用软/硬件协同设计的思想,在设备驱动层实现物理块的温度感知,然后基于温度感知结果来控制数据写入至合适的物理块,不用更改三维闪存本身的工艺设计,方案实现时的复杂度较低,应用稳定性也更有保障。

第三实施例:

本实施例提供了一种电子装置,参见图5所示,其包括处理器501、存储器502及通信总线503,其中:通信总线503用于实现处理器501和存储器502之间的连接通信;处理器501用于执行存储器502中存储的一个或者多个计算机程序,以实现上述实施例一中的三维闪存的数据写入方法中的至少一个步骤。

本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于ram(randomaccessmemory,随机存取存储器),rom(read-onlymemory,只读存储器),eeprom(electricallyerasableprogrammablereadonlymemory,带电可擦可编程只读存储器)、闪存或其他存储器技术、cd-rom(compactdiscread-onlymemory,光盘只读存储器),数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。

本实施例中的计算机可读存储介质可用于存储一个或者多个计算机程序,其存储的一个或者多个计算机程序可被处理器执行,以实现上述实施例一中的方法的至少一个步骤。

本实施例还提供了一种计算机程序,该计算机程序可以分布在计算机可读介质上,由可计算装置来执行,以实现上述实施例一中的方法的至少一个步骤;并且在某些情况下,可以采用不同于上述实施例所描述的顺序执行所示出或描述的至少一个步骤。

本实施例还提供了一种计算机程序产品,包括计算机可读装置,该计算机可读装置上存储有如上所示的计算机程序。本实施例中该计算机可读装置可包括如上所示的计算机可读存储介质。

可见,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的计算机程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。

此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、计算机程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。所以,本发明不限制于任何特定的硬件和软件结合。

以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1