一种3D闪存的控制方法和系统与流程

文档序号:12363548阅读:281来源:国知局
一种3D闪存的控制方法和系统与流程

本发明涉及数据存储领域,尤其涉及一种3D闪存的控制方法和系统。



背景技术:

传统内存芯片的存储模式以平面分布为基础,所有存储单元均分布于二维平面当中。3D闪存,是通过将原本平铺的存储单元堆叠起来,形成多层结构,来提供容量。

现有的3D闪存,可将其分为若干层,每层有若干行,每行有若干个物理块。在此结构特点下,3D闪存具有以下性能特点,一方面,当对3D闪存进行数据读写操作访问时,其每层物理块的访问速度要快于层间的访问速度;另一方面,当对3D闪存中某个物理块进行写操作或擦除操作时,该物理块周围同层的物理块比不同层的物理块,会受到更大的影响。当前技术中并未充分根据3D闪存这一结构性能特点,有针对性地设计合适的方法,来保证性能和稳定性的平衡。

现有技术中针对此问题主要涉及3D闪存管理技术中如下三个方面的技术细节:

1、空闲块分配策略:当前空闲块分配策略为线性分配策略,按照空闲块物理地址从小到大,顺次将物理地址空间中的空闲块分配出去。当到达最后一块物理块后,管理程序回到物理地址起始位置,重新扫描芯片,寻找空闲块。一方面,此策略可能将同一物理块链中的物理块分散至多个物理层,导致在进行读操作和擦除操作时,访问性能降低。另一方面,该策略有可能将多个在某段时间连续访问的物理块链放置于同一层,导致该物理层中的物理块被频繁操作,物理块稳定性迅速降低,数据出错的可能性大大增加。

2、缺少对物理块链更新频度的监测:当操作系统向芯片中写入数据后,对于某些逻辑空间的数据将长期驻留在芯片中,且更新频度较低。而某些逻辑空间的数据,在一定时间段内不断进行数据更新。导致用于存储未频繁更新的逻辑空间数据的物理块稳定性较高,因此芯片性能下降不均匀。

3、物理块擦除回收策略:当前技术中,当芯片中无空闲块可供分配时,则寻找最长物理块链进行擦除回收操作。该策略严重影响用户的单次访问时间,降低芯片性能。



技术实现要素:

本发明实施例所要解决的技术问题在于,提供一种3D闪存的控制方法和系统,解决现有技术中由空闲块的线性分配策略导致的芯片访问性能低,稳定性差的问题。

为了解决上述技术问题,本发明实施例提供了一种3D闪存的控制方法,在将数据写入逻辑地址时,根据地址映射关系检测是否有与所述逻辑地址对应的物理地址,

当检测结果为是时,查找与所述物理地址对应的物理块,从所述物理块对应的物理层中分配空闲物理块进行数据写入;

当检测结果为否时,分配新的物理块,并将数据写入所述新的物理块。

相应地,本发明实施例还提供了一种3D闪存的控制系统,包括寻址模块、第一写操作分配模块和第二写操作分配模块,

所述寻址模块用于在将数据写入逻辑地址时,根据地址映射关系检测是否有与逻辑地址对应的物理地址,

当检测结果为是时,所述第一写操作分配模块查找与所述物理地址对应的物理块,并从与所述物理块对应的物理层中分配空闲物理块进行数据写入;

当检测结果为否时,所述第二写操作分配模块分配新的物理块,并将数据写入所述新的物理块。

实施本发明实施例,具有如下有益效果:一方面,在将数据写入逻辑地址时,根据地址映射关系检测是否有与所述逻辑地址对应的物理地址,当检测结果为是时,查找与所述物理地址对应的物理块,从所述物理块对应的物理层中分配空闲物理块进行数据写入,由于在3D闪存中,对比单次访问多个物理层间的物理块,连续访问同一物理层中的物理块的效率更高,因此本发明实施例通过让同一物理块链中的物理块处于同一物理层,实现了芯片访问速度的提升。另一方面,当上述检测结果为否时,则需要构建一个新的物理块链,此时分配新的物理块,并将数据写入所述新的物理块,进一步的,所述新的物理块从评定值最小的物理层中选择,由此保证了从芯片中稳定性较强的物理层中构建新的物理块链,提升了芯片的稳定性。

附图说明

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

图1是本发明提供的一种3D闪存的控制方法的第一实施例流程图;

图2是图1中分配新的物理块的流程图;

图3是图1中从与物理地址对应的物理块所在物理层分配空闲物理块的流程图;

图4是图3中分配同层的空闲物理块的流程图;

图5是图4中对物理块链进行擦除回收的流程图;

图6是本发明提供的一种3D闪存的控制系统的第一实施例的结构示意图;

图7是图6中第二写操作分配模块的结构示意图;

图8是图6中第一写操作分配模块的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参见图1,是本发明提供的一种3D闪存的控制方法的第一实施例流程图,该方法包括:

S101:根据逻辑地址查找映射表;

在将数据写入逻辑地址时,操作系统向存储管理系统发起对逻辑页号log_page的写请求,存储管理系统首先计算对应的逻辑块号log_block和块内偏移页号offset,根据逻辑块号查找映射表,找到对应的物理块号phy_block。

S102:根据地址映射关系检测是否有与所述逻辑地址对应的物理地址,当检测结果为是时,执行步骤S103;若逻辑块首次向芯片中写入数据,则映射表中找不到对应的物理块号,此时,执行步骤S104。

S103:查找与所述物理地址对应的物理块,从与该物理块对应的物理层中分配空闲物理块进行数据写入;

S104:分配新的物理块,并将数据写入该新的物理块。

根据3D闪存的结构特点,分别为每个物理层设置一个写操作计数器,和擦除次数计数器,并分别组织成两个队列。对于以擦除次数指标组织的逻辑队列,队头为当前擦除操作次数最多的物理层,队尾为擦除操作次数最少的物理层。对于以写操作次数为指标的队列,队头为当前写操作次数最多的物理层,队尾为写操作次数最少的物理层。当对某一个物理块链进行回收擦除操作后,一方面修改对应擦除队列中某个层对应的擦除次数,并根据队列的组织规则,移动该物理层在队列中的位置;另一方面,首先根据擦除次数指标,然后再根据写次数指标,找出评定值最小的物理层,将该物理层中的空闲块进行分配。其中erase_time表示该物理层的擦除次数,write_time表示该物理层中物理块的写操作次数。初始状态下,两个队列均按照层号由小到大的顺序进行排列。

令对芯片执行一次擦除操作的影响相当于执行a次写操作的影响,根据某一特定物理层的擦除操作次数erase_time和写操作次数write_time,依据公式(1)计算出该物理层的评定值V,

V=erase_time*a+write_time (1)

图2是图1中分配新的物理块的流程图,具体的,步骤S104包括以下步骤:

S201:存储管理系统根据公式(1),对每个物理层计算评定值,从各物理层中,查找出评定值最小的物理层;

S202:检测所述评定值最小的物理层中是否有空闲物理块,当检测结果为是时,执行步骤S203,否则,执行步骤S204;

S203:从评定值最小的物理层中选择空闲物理块进行分配;

S204:对上述评定值最小的物理层中的物理块链进行擦除回收,以便获得空闲物理块,将获得的空闲的物理块进行分配。

进一步的,图3是图1中从与物理地址对应的物理块所在物理层分配空闲物理块的流程图,步骤S103具体包括以下步骤,

S301:检测由所述物理块组成的物理块链中是否有空闲物理页,当检测结果为是时,执行步骤S302,否则,执行步骤S303;

S302:将数据写入所述空闲物理页;

S303:判断所述物理块链的长度是否达到操作系统的最大限定长度,

当判断为是时,执行步骤S304,否则执行步骤S305;

S304:沿所述物理块链从后向前开始查找空闲物理页,并向所述空闲物理页写入数据。其中,令逻辑页号为log_page,每个物理块中共有page_per_block个物理页。存储管理系统首先在物理块链中的第offset=log_page%page_per_block中写入数据,当物理块链长度达到最大限度后,则从物理块链的最后一个物理块开始,寻找空闲的块内物理页r_offset,并由后向前对r_offset页写入数据。该步骤保证了块链中的空闲物理页空间得到充分利用,避免了因空闲物理块不足,而擦除大量未被使用的物理页的情况发生。

S305:从所述物理块链对应的物理层中分配新的物理块,并将所述新的物理块加入所述物理块链中。

图4是图3中分配同层的空闲物理块的流程图,其中,S305具体包括以下步骤,

S401:存储管理系统首先检测上述物理块链对应的物理层中是否有空闲物理块,

当检测结果为是时,执行步骤S402,否则,执行步骤S403,

S402:从上述与物理块链对应的物理层中选择空闲物理块进行分配;

S403:对上述物理块链进行擦除回收以获得空闲物理块,对获得的空闲物理块进行分配。

图5是图4中对物理块链进行擦除回收的流程图,上述擦除回收物理块链包括以下步骤:

S501:在上述物理块链所对应的物理层中获取所有物理块链,并将物理块链根据长度从大到小排序,按排序从前开始选择至少两个物理块链;

S502:从上述至少两个物理块链中选择最久未被更新的物理块链,将该物理块链中的数据进行擦除;

S503:计算各个物理层的评定值,并根据公式(1)选择评定值最小的物理层,从评定值最小的物理层中获取空闲物理块;

S504:将上述最久未被更新的物理块链中的数据复制到上述空闲物理块中,完成对物理块链的擦除回收操作。

上述物理块链还包括时间戳,时间戳用于记录该物理块链的最近一次被修改的时间,根据时间戳可获得最久未被更新的物理块链。存储管理系统每隔若干次写操作后,扫描一次物理块链,查看该物理块链的时间戳。当经过第n次扫描后,取出前m个时间戳记录时间较早的物理块链,判定这前m个物理块链中的物理块更新频率较低,进行擦除回收操作,释放长期未被使用,稳定性较高的物理块,并根据(1),寻找评定值较大的物理层中的空闲物理块,将数据写入该物理块中。其中,m和n为不小于1的整数。

如图6所示,为本发明提供的一种3D闪存的控制系统的第一实施例的结构示意图,该系统包括寻址模块1、第一写操作分配模块2和第二写操作分配模块3,上述寻址模块1用于在将数据写入逻辑地址时,根据地址映射关系检测是否有与逻辑地址对应的物理地址,当检测结果为是时,上述第一写操作分配模块2查找与上述物理地址对应的物理块,并从与上述物理块对应的物理层中分配空闲物理块进行数据写入;当检测结果为否时,上述第二写操作分配模块3分配新的物理块,并将数据写入所述新的物理块。

图7是图6中第二写操作分配模块3的结构示意图,第二写操作分配模块3包括:评定值计算单元31、第一物理块查找单元32、第一分配单元33和第二分配单元34,上述评定值计算单元31,令对芯片执行一次擦除操作的影响相当于执行a次写操作的影响,

根据某一特定物理层的擦除操作次数erase_time和写操作次数write_time,依据公式(1)计算出该物理层的评定值V,

V=erase_time*a+write_time (1)

所述第一物理块查找单元32,用于从各物理层中查找出评定值最小的物理层,并检测所述评定值最小的物理层中是否有空闲物理块,当检测结果为是时,上述第一分配单元33从所述评定值最小的物理层中选择空闲物理块进行分配;当检测结果为否时,上述第二分配单元34对所述评定值最小的物理层中的物理块链进行擦除回收,以便获得空闲物理块,将获得的空闲的物理块进行分配。

图8是图6中第一写操作分配模块2的结构示意图,上述第一写操作分配模块2包括物理页查找单元21、第一写入单元22、第二写入单元23,上述物理页查找单元21用于检测由所述物理块组成的物理块链中是否有空闲物理页,在检测结果为是时,上述第一写入单元22将数据写入所述空闲物理页;否则,第二写入单元23判断所述物理块链的长度是否达到操作系统的最大限定长度,当判断为是时,上述第二写入单元23沿所述物理块链从后向前开始查找空闲物理页,并向所述空闲物理页写入数据,当判断为否时,上述第二写入单元23从所述物理块链对应的物理层中分配新的物理块,并将所述新的物理块加入所述物理块链中。

上述第二写入单元23包括第二物理块查找单元231、第三分配单元232和第四分配单元233,上述第二物理块查找单元231,用于检测所述物理块链对应的物理层中是否有空闲物理块,当检测结果为是时,上述第三分配单元232从所述与物理块链对应的物理层中选择空闲物理块进行分配,当检测结果为否时,上述第四分配单元233对所述物理块链进行擦除回收以获得空闲物理块,对获得的空闲物理块进行分配。

上述第二分配单元34包括:擦除单元341,用于从所述至少两个物理块链中选择最久未被更新的物理块链,将该物理块链中的数据进行擦除;复制单元342,用于根据公式(1)选择评定值最小的物理层,从所述评定值最小的物理层中获取空闲物理块,并将所述最久未被更新的物理块链中的数据复制到所述空闲物理块中。

上述物理块链包括时间戳,时间戳用于记录所述物理块链的最近一次被修改的时间;根据时间戳获得最久未被更新的物理块链。

本发明实施例在将数据写入逻辑地址时,一方面,对于已经存在对应物理块链的写请求,分配同层的空闲物理块,通过让同一物理块链中的物理块处于同一物理层,来保证较快的读写访问速度;另一方面,对首次构建物理块链的写请求,需要构建一个新的物理块链时,则根据计算出的评定值得出各个物理层的相对稳定性,择优选择稳定性较强的物理层构建新的块链,最终获得速度与稳定性的平衡。进一步的,本发明实施例限定物理块链的长度,当物理块链到达最大长度限制时,对该块链进行擦除操作。同时,当某个物理层中无空闲物理块时,对更新频度较低的物理块链进行擦除回收,从而还保证了芯片的稳定性整体均匀下降。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

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