CN111797028A - 用于3d闪存的动态数据填充 - Google Patents

用于3d闪存的动态数据填充 Download PDF

Info

Publication number
CN111797028A
CN111797028A CN201910277645.2A CN201910277645A CN111797028A CN 111797028 A CN111797028 A CN 111797028A CN 201910277645 A CN201910277645 A CN 201910277645A CN 111797028 A CN111797028 A CN 111797028A
Authority
CN
China
Prior art keywords
data
area
physical block
open
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910277645.2A
Other languages
English (en)
Inventor
路向峰
高会娟
周宝龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Memblaze Technology Co Ltd
Original Assignee
Beijing Memblaze Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Memblaze Technology Co Ltd filed Critical Beijing Memblaze Technology Co Ltd
Priority to CN201910277645.2A priority Critical patent/CN111797028A/zh
Publication of CN111797028A publication Critical patent/CN111797028A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

提供了用于3D闪存的动态数据填充方法与存储设备。所提供的方法包括,响应于开放物理块的第一区域被读取的次数超过第一阈值,产生要写入所述开放物理块的第一填充数据。

Description

用于3D闪存的动态数据填充
技术领域
本申请涉及存储技术,特别地,涉及用于诸如3D NAND闪存的非易失存储介质的动态数据填充方法与存储设。
背景技术
图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机系统接口)、SAS(Serial AttachedSCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component InterconnectExpress,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)、XPoint存储器等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件104包括闪存接口控制器(或称为介质接口、介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
在存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。这些情况下,存储设备所接收的读/写命令指示逻辑地址。
存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。通常FTL表的条目记录了存储设备中以数据页为单位的地址映射关系。
控制部件可能将从接口103接收的命令改变形态(例如,根据FTL条目所对应的逻辑地址空间大小切分命令),并处理改变形态的命令。
存储设备包括多个NVM芯片。每个NVM芯片包括一个或多个管芯(DIE)或逻辑单元(LUN,Logic UNit)。管芯或逻辑单元之间可以并行响应读写操作。在同一管芯或逻辑单元上的多个读、写或擦除操作顺序执行。
诸如闪存的NVM芯片包括多个物理块。物理块包括物理页。物理页是实施编程操作的最小单元,而物理块是实施擦除操作的最小单元。随着NVM芯片的密度逐步增加,编程操作的最小单元可以是一个或多个物理页。例如,一些NVM芯片提供完整编程命令(One-ShotProgram),用于一次编程多个物理页。物理页一般包括位于相同字线(Word Line)的多个存储单元。在3D闪存中,字线又可包括多个字线段,每个字线段提供构成一个或多个物理页的存储单元。
随着存储密度的增加,诸如闪存的NVM芯片面临交差耦合干扰、读干扰(ReadDisturb)等问题。在编程某物理页时,作用于一条字线的编程信号会对相邻的字线产生干扰。在读取某物理页时,被读取字线周围的字线会对被读取的字线产生干扰,为实施读取操作所产生的电信号也会对被读取的字线与相邻的字线产生干扰。这种干扰在物理块的临近已编程字线与未编程字线的区域尤为严重。
将部分物理页已被编程而部分物理页尚未被编程的物理块,称为开放(Open)物理块。由于开放物理块中存在临近已编程字线与未编程字线的区域,因而被存储在开放物理块中的数据存在可靠性隐患。
NVM芯片已经努力克服由于交叉耦合干扰、读干扰等带来的数据可靠性问题。当开放物理块的所有物理页都被编程后,该物理块被称为“关闭”(Closed)的物理块。关闭的物理块的数据的可靠性得到极大提升。
图2展示了开放物理块中的受干扰影响的多个区域。
图2中,为了展示的目的,将向下的方向定义为物理页的地址的递增方向。在编程物理块中的各物理页时,按照地址递增的顺序对物理页实施编程。因而开放物理块中,根据是否已被编程,形成了两个区域——已编程区域和未编程区域。已编程区域又包括3部分——可靠区域、关区域与敏感区域。可靠区域中的数据具有较高的可靠性,对开放物理块的可靠区域的读取操作,基本上不影响开放物理块中存储的数据的可靠性。
将已编程区域与未编程区域的相邻位置的物理页记为物理页C,物理页C是当前最后一个已被编程的物理页。从物理页C向前(物理页地址递减方向)的指定区域(一般为几十到几百个物理页)为关注区域。例如,关注区域包括相邻字线的存储单元。对开放物理块的关注区域的读取操作,将影响敏感区域的数据的可靠性。例如,对关注区域的读取操作累计例如几千或几万次后,敏感区域的数据可能被破坏。
敏感区被包含于关注区域,但小于关注区域。敏感区域也是从物理页C向前的指定区域。例如,敏感区域包括来自相同字线的存储单元。除了受到读操作的影响,时间也对敏感区域存储的数据产生影响。敏感区域内的数据所能保持的时间显著小于可靠区域的数据的保持时间。
可靠区域、关注区域、敏感区域以及未编程区域是可变的。随着编程操作的实施,开放物理块的未编程区域逐渐缩小,而已编程区域逐渐扩大。参看图2,对开放物理块210施加进一步的一个或多个编程命令,得到了开放物理块220。同开放物理块210相比,开放物理块220中,可靠区域变得更大,关注区域与敏感区域的范围整体向具有更大物理页地址的方向移动。由于随着编程操作的发生,敏感区域随之移动,因而即使对关注区域存在一些读取操作,只要这些读取操作不是非常频繁,其对敏感区域内存储的数据的影响尚不会达到破坏数据的程度。
当开放物理块变为关闭的物理块,物理块中的区域都变为可靠区域,而关注区域与敏感区域均消失。因而在存在持续写入数据的场合,存储设备中的NVM芯片中的开放物理块大体上能被及时填满,形成关闭的物理块,并且所存储的数据具有较好的可靠性。
发明内容
然而,发明人注意到,一些应用场景具有特殊性。例如,在向存储设备写入一定量数据后,长时间不再产生待写入的数据。这使得存储设备的NVM芯片中的一个或多个开放物理块长期处于开放状态而不能及时被关闭。随着时间的积累和/或对而这些开放物理块的关注读取的读操作次数的积累,使得这些开放物理块的敏感区域的数据可靠性持续下降,甚至可能被破坏,并导致从存储设备的这些开放物理块的敏感区域读取数据失败。
需要应对并解决这种问题,避免从存储设备的这些开放物理块的敏感区域读取数据失败的风险。
根据本申请的第一方面,提供了根据本申请第一方面的第一用于存储设备的方法,包括:响应于开放物理块的第一区域被读取的次数超过第一阈值,产生要写入所述开放物理块的第一填充数据。
根据本申请第一方面的第一用于存储设备的方法,提供了根据本申请第一方面的第二用于存储设备的方法,还包括:响应于所述开放物理块的第二区域的数据被存储在第二区域的时间超过第二阈值,产生要写入所述开放物理块的第二填充数据。
根据本申请第一方面的第一或第二用于存储设备的方法,提供了根据本申请第一方面的第三用于存储设备的方法,其中第一区域是所述开放物理块的关注区域,位于从所述开放物理块的最后一个已编程页向前的指定区域。
根据本申请第一方面的第一至第三用于存储设备的方法之一,提供了根据本申请第一方面的第四用于存储设备的方法,其中第一填充数据的大小是存储设备写入数据的最小单元。
根据本申请第一方面的第一至第四用于存储设备的方法之一,提供了根据本申请第一方面的第五用于存储设备的方法,其中第一填充数据的大小关联于第一阈值,若所述开放物理块的第二区域的大小是第一填充数据的大小的N倍,其中N为正整数,则第一阈值的N倍不大于所述第二区域的数据被破坏前所述第一区域能被读取的次数。
根据本申请第一方面的第五用于存储设备的方法,提供了根据本申请第一方面的第六用于存储设备的方法,其中所述第二区域是所述开放物理块的敏感区域,位于从所述开放物理块的最后一个已编程页向前的指定区域,以及所述第一区域包含所述第二区域。
根据本申请第一方面的第一至第六用于存储设备的方法之一,提供了根据本申请第一方面的第七用于存储设备的方法,还包括:响应于开放物理块的第一区域被读取,递增第一计数器,使得第一计数器代表所述开放物理块的第一区域被读取的次数。
根据本申请第一方面的第七用于存储设备的方法,提供了根据本申请第一方面的第八用于存储设备的方法,还包括:响应于向所述开放物理块写入第一填充数据,使第一计数器减少第一阈值。
根据本申请第一方面的第五或第六用于存储设备的方法,提供了根据本申请第一方面的第九用于存储设备的方法,还包括:响应于用户向所述开放物理块写入数据,更新所述第二区域的位置。
根据本申请第一方面的第一至第九用于存储设备的方法之一,提供了根据本申请第一方面的第十用于存储设备的方法,还包括:响应于用户向所述开放物理块写入数据,更新所述第一区域的位置。
根据本申请第一方面的第一至第十用于存储设备的方法之一,提供了根据本申请第一方面的第十一用于存储设备的方法,其中第二填充数据的大小是存储设备写入数据的最小单元。
根据本申请第一方面的第一至第十一用于存储设备的方法之一,提供了根据本申请第一方面的第十二用于存储设备的方法,其中第二填充数据的大小关联于第二阈值,若所述开放物理块的第二区域的大小是第二填充数据的大小的M倍,其中M为正整数,则第二阈值的M倍不大于所述第二区域的数据被破坏前,所述第二区域中的数据能被可靠地存储的时间。
根据本申请第一方面的第一至第十二用于存储设备的方法之一,提供了根据本申请第一方面的第十三用于存储设备的方法,还包括:响应于响应于所述开放物理块的第二区域的数据被存储在第二区域的时间超过第二阈值,递增第二计数器,使得第二计数器代表所述开放物理块的第二区域的数据被存储在第二区域的时间。
根据本申请第一方面的第十三用于存储设备的方法,提供了根据本申请第一方面的第十四用于存储设备的方法,还包括:响应于向所述开放物理块写入第二填充数据,使第二计数器减少第二阈值。
根据本申请第一方面的第一至第十四用于存储设备的方法之一,提供了根据本申请第一方面的第十五用于存储设备的方法,还包括:响应于用户向所述开放物理块写入数据,重置所述开放物理块的第二区域的数据被存储在第二区域的时间。
根据本申请第一方面的第一至第三用于存储设备的方法之一,提供了根据本申请第一方面的第十六用于存储设备的方法,其中第一填充数据的大小是第二区域的大小。
根据本申请第一方面的第二至第十用于存储设备的方法之一,提供了根据本申请第一方面的第十七用于存储设备的方法,其中第二填充数据的大小是第二区域的大小。
根据本申请第一方面的第一至第十七用于存储设备的方法之一,提供了根据本申请第一方面的第十八用于存储设备的方法,还包括:将第一填充数据写入所述开放物理块。
根据本申请第一方面的第一至第十八用于存储设备的方法之一,提供了根据本申请第一方面的第十九用于存储设备的方法,其中:所述存储设备包括多个开放物理块,响应于多个开放物理块的第一开放物理块的第一区域被读取的次数超过第一阈值,产生要写入所述第一开放物理块的第一填充数据。
根据本申请第一方面的第一至第十八用于存储设备的方法之一,提供了根据本申请第一方面的第二十用于存储设备的方法,其中:其中所述存储设备包括一个或多个大块;响应于第一开放大块的第一区域被读取的次数超过第二阈值,产生要写入所述第一开放大块的第一填充数据。
根据本申请第一方面的第二十用于存储设备的方法,提供了根据本申请第一方面的第二十一用于存储设备的方法,其中第一开放大块的第一区域的大小是第一开放大块的所有物理块的第一区域的大小之和;以及第一开放大块的第二区域的大小是第一开放大块的所有物理块的第二区域的大小之和。
根据本申请第一方面的第二十用于存储设备的方法,提供了根据本申请第一方面的第二十二用于存储设备的方法,其中第一开放大块的第一区域的大小是第一开放大块的所有非存储RAID校验数据的物理块的第一区域的大小之和;以及第一开放大块的第二区域的大小是第一开放大块的所有非存储RAID校验数据的物理块的第二区域的大小之和。
根据本申请第一方面的第二十至第二十二用于存储设备的方法,提供了根据本申请第一方面的第二十三用于存储设备的方法,其中响应于所述第一开放大块的第二区域的数据被存储在第二区域的时间超过第三阈值,产生要写入所述第一开大块的第二填充数据。
根据本申请第一方面的第一至第二十三用于存储设备的方法之一,提供了根据本申请第一方面的第二十四用于存储设备的方法,其中:其中所述存储设备是多流存储设备;响应于第一流对应的第一区域被读取次数超过第四阈值,为第一流产生第一填充数据。
根据本申请第一方面的第二十四用于存储设备的方法,提供了根据本申请第一方面的第二十五用于存储设备的方法,其中流被绑定到一个或多个大块。
根据本申请的第二方面,提供了根据本申请第二方面的信息处理设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实施根据本申请第一方面的用于存储设备的方法之一。
根据本申请的第三方面,提供了根据本申请第三方面的计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实施根据本申请第一方面的用于存储设备的方法之一。
根据本申请的第四方面,提供了根据本申请第四方面的存储设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现根据本申请第一方面的用于存储设备的方法之一。
根据本申请的第五方面,提供了根据本申请第五方面的29、一种于存储设备的系统,包括:数据填充模块,用于响应于开放物理块的第一区域被读取的次数超过第一阈值,产生要写入所述开放物理块的第一填充数据。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的存储设备的框图;
图2展示了开放物理块中的受干扰影响的多个区域;
图3展示了根据本申请实施例的开放物理块的数据填充的示意图;
图4是根据本申请再一实施例的开放物理块的数据填充的示意图;
图5展示了根据本申请另一实施例的开放物理块的数据填充的流程图;
图6展示了根据本申请依然另一实施例的开放物理块的数据填充的流程图;以及
图7展示了根据本申请依然又一实施例的开放物理块的数据填充的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图3展示了根据本申请实施例的开放物理块的数据填充的示意图。
开放物理块310的已编程区域包括敏感区域312。由于缺乏或没有进一步的对开放物理块310的编程操作(致使敏感区域312未发生移动),且对物理块310的关注区域的读取操作累积了一定次数(和/或敏感区域312中的存储单元位于敏感区域312中累积了一定时间),敏感区域312中的数据可靠性显著下降(由物理块320指示)。
参看图3,物理块320指示了数据可靠性下降后的开放物理块310。物理块320的敏感区域322中的数据可靠性下降,其中的数据在被读取时可能存在不可纠正的错误(称为危险数据)。
为了消除这种危险数据,根据本申请的实施例,统计开放物理块320中的关注区域被读取的次数和/或敏感区域312中的数据被存储的时间。若开放物理块320中的关注区域被读取的次数大于次数阈值和/或敏感区域312中的数据被存储的时间大于时间阈值,则向开放物理块320写入填充数据。
图3中,开放物理块330展示了被写入的填充数据(由“1/2/3/4/……A/B/C”指示)。填充数据可以是例如随机数或者预先指定的数据。填充数据被写入未编程区域,并使得敏感区域向下(物理页地址增加方向)移动,从而开放物理块310中的敏感区域312不再是敏感区域。以此方式,使得敏感区域312中的数据,在由于关注区域被读取或时间的累积而被破坏之前,脱离了敏感区域(敏感区域下移),从而避免了敏感区域312中的数据被破坏。
可选地,为了确保敏感区域312不再是敏感区域,填充的数据量大于或等于敏感区域312的大小。
可选地,次数阈值与时间阈值根据非易失存储介质的特性确定,由非易失存储介质的厂商提供或在实验室中测量得到。例如,若敏感区域的数据在关注区域被读取5万次后出现不可纠正错误,则将次数阈值设置为4万次或小于5万次的值;若敏感区域的数据在被写入24小时后出现不可纠正错误,则将时间阈值设置为20小时或小于24小时。
根据图3的实施例,能避免敏感区域中的数据被破坏。然而,在写入填充数据时,一次产生了填充整个敏感区域的数据,既浪费了存储空间,又对存储设备的性能造成影响(写入填充数据占据了存储设备的写带宽,使得用户体验到的写带宽下降或发生抖动,写入填充数据也影响对对被写入数据的开放物理块的读操作的处理延迟与读带宽)。而且,若在统计关注区域被读取的次数和/或敏感区中的数据被存储的时间的期间,出现了用户对开放物理块的写入操作,使得敏感区域向下移动,则在产生填充数据时对填充数据的量的需求减少,若按照敏感区域的大小生成填充数据,则一些填充数据是不必要的,并导致对存储空间的浪费。
根据本申请的又一个实施例,为敏感区域的每个物理页、编程操作的最小单元单元或读取操作的最小单元(将这些单元简称为统计单元)记录对其产生影响的关注区域的读操作的次数(被读取次数)和/或其上数据被存储的时间。响应于任何统计单元(记为统计单元SU)的被的读取次数大于次数阈值和/或被存储的时间大于时间阈值,向敏感区域所在的开放物理块写入填充数据,以使得敏感区域向下移动,统计单元SU不再属于敏感区域。
随着敏感区域向下移动,一些新的统计单元被新加入到敏感区域,而一些原有的统计单元被移出敏感区域,以及不再为被移出敏感区域的统计单元记录其被读取次数与被存储时间。
响应于用户向存储设备写入数据,存储设备产生了垃圾回收的数据或者日志数据,也向开放物理块写入数据,并使敏感区域下移。
用这样的方式,准确地统计敏感区域的每个统计单元对应的被读取次数和或被存储的时间,并产生填充数据,使得产生的填充数据最少,减少对存储空间的浪费,但需要记录的数据较多,计算复杂度较大。
图4是根据本申请再一实施例的开放物理块的数据填充的示意图。
开放物理块410的已编程区域包括敏感区域412。为避免敏感区域412中的数据被破坏,每当该敏感区域对应的关注区域被读取了指定的次数(记为C1),则产生并向该敏感区域所在的开放物理块写入指定量的填充数据(记为P1)。作为举例,指定量的填充数据P1的大小为读取操作的最小单元或编程操作的最小单元。依然作为举例,填充数据P1的大小为2KB、4KB、16KB或其倍数。可以理解的,生成的填充数据P1无须被立即写入开放物理块,而是作为待写入的数据,并同其他待写入数据组合后,再写入开放物理块。依然可以理解的,若填充数据P1为4KB,存储设备还为填充数据生成元数据(例如校验数据等),并将填充数据P1与校验数据一同写入开放物理块。
根据本申请的一种实施方式,指定的次数C1与填充数据P1存在关联。例如,敏感区域的大小是每次产生的填充数据P1的大小的N倍(N为正整数),而C1*N为次数阈值或在敏感区域的数据被破坏前,该敏感区域对应的关注区域能承载的读取操作的次数。例如,填充数据P1的大小是4KB,而敏感区域的大小是64KB,在敏感区域的数据被破坏前,该敏感区域对应的关注区域能承载10万次读取操作,则C1为6250,即关注区域每承载了6250次读取操作,产生一份填充数据P1。类似地,填充数据P1的大小是16KB,而敏感区域的大小是64KB,在敏感区域的数据被破坏前,该敏感区域对应的关注区域能承载10万次读取操作,则C1为25000。可选地,填充数据P1的大小是4KB,而敏感区域的大小是64KB,在敏感区域的数据被破坏前,该敏感区域对应的关注区域能承载10万次读取操作,则设置C1为小于6250,以尽早产生填充数据,提高敏感区域的数据的可靠性。
以此方式,将对敏感区域的填充,分解为彼此间隔的多次写操作,每次写入开放物理块的数据量很少,从而使得数据填充对存储设备的性能的影响降到最低。
可选地或进一步地,若用户产生了要写入开放物理块数据,或者存储设备的垃圾回收操作、日志操作等产生了要写入开放物理块的数据,将这些非填充数据记为用户数据U,响应于获取了用户数据U或将用户数据U写入了开放物理块,关注区域与敏感区域的位置改变(下移),但无须改变所统计的该敏感区域对应的关注区域被读取的次数,之前的统计依然有效。从而简化了计算过程。
例如,当前的关注区域为物理地址范围P1~P2,统计在地址范围P1~P2上承载的读取操作的次数,每当该读取操作的次数超过了C1,则产生一份填充数据写入开放物理块,以及响应于填充数据被生成或写入开放物理块,使统计的在敏感区域上承载的读取操作的次数递减C1。若有大小为A的用户数据U要写入该开放物理块,则关注区域的物理地址范围变为(P1+A)~(P2+A),并继续统计在地址范围(P1+A)~(P2+A)上承载的读取操作的次数。
从而,参看图4,在开放物理块420的敏感区域422中形成了用户数据U与填充数据P混合存在的场景。根据本申请的该实施例,若存在大量的用户数据U,则由于关注区域的持续移动,降低了读取操作落入关注区域的几率,使得填充数据P的生成几率降低,从而提高了U/P的(数据量)比值,减少了对存储空间的不必要占用。并且计算过程简单,每次生成填充数据P时对存储设备的性能影响也很低。
在极端情况下,存在持续的用户数据U,也存在大量对刚写入的数据用户U的读取操作,则会产生一定量的不必要的填充数据P,这是本实施方式的副作用,以换取计算过程的简单、降低对计算能力的使用,降低对存储设备性能的影响,也降低存储设备性能的波动。
依然可选地或进一步地,为避免敏感区域412中的数据被破坏,统计该敏感区域中数据被保存的时间,每当敏感区域内的数据被保存的时间超过指定时间(记为T1),则产生并向该敏感区域所在的开放物理块写入指定量的填充数据(记为P2)。作为举例,指定量的填充数据P2的大小为读取操作的最小单元或编程操作的最小单元。依然作为举例,填充数据P2的大小为2KB、4KB、16KB或其倍数。
指定时间T1与填充数据P2存在关联。例如,敏感区域的大小是每次产生的填充数据P2的大小的M倍(M为正整数),而T1*M为时间阈值或在敏感区域的数据被破坏前,该敏感区域中的数据能被可靠地存储的时间。例如,填充数据P2的大小是4KB,而敏感区域的大小是64KB,在敏感区域的数据被破坏前,该敏感区域的数据能被可靠地保存24小时,则T1为1.5小时,即在敏感区域不发生变化的情况下,每经过1.5小时,产生一份填充数据P2。类似地,填充数据P2的大小是16KB,而敏感区域的大小是64KB,在敏感区域的数据被破坏前,该敏感区域的数据能被可靠地保存24小时,则T1为6小时。可选地,填充数据P2的大小是4KB,而敏感区域的大小是64KB,在敏感区域的数据被破坏前,该敏感区域的数据能被可靠地保存24小时,则设置T1为小于1.5小时,以尽早产生填充数据,提高敏感区域的数据的可靠性。
以此方式,将对敏感区域的填充,分解为彼此间隔的多次写操作,每次写入开放物理块的数据量很少,从而使得数据填充对存储设备的性能的影响降到最低。
基于对关注区域的读取操作而产生的填充数据P1与基于敏感区域的数据被存储的时间产生的填充数据P2可以彼此独立,或彼此关联。例如,响应于关注区域承载了C1次读操作而产生填充数据P1,并且,响应于敏感区域的数据被存储的时间达到T1而产生填充P2。作为又一个例子,每次产生了填充数据,所统计的对关注区域的读取操作的次数与敏感区域的数据被存储的时间均清零或重新统计。
可选地或进一步地,在统计敏感区域的数据被存储的时间期间,若出现了用户数据U,则敏感区域的数据被存储的时间被清零或重新统计,因为用户数据U将使得敏感区域发生变化(下移),旧的敏感区域的数据被存储的时间不再适用于新的敏感区域。
图5展示了根据本申请另一实施例的开放物理块的数据填充的流程图。
响应于获取了读命令(510),识别读命令是否要访问开放物理块的关注区域(520)。例如,通过比较读命令要访问的物理地址是否属于关注区域的物理地址范围而识别读命令是否访问开放物理块的关注区域。
若读命令访问开放物理块的关注区域,递增该开放物理块的关注区域的被读取次数,以累积关注区域被读取的次数(530)。若该开放物理块的关注区域被读取的次数超过了指定阈值(540),则生成填充数据P1,并向该关注区域所属的物理块的未编程区域写入所生成的填充数据P1(550),以及还从累积的关注区域被读取的次数中减去指定的阈值(560)。
可以理解地,关注区域是动态的,随着用户数据U出现或者产生了填充数据P1,开放物理块被写入用户数据U或填充数据P1,也使得关注区域下移。
作为举例,填充数据P1的大小是为2KB、4KB、16KB或其倍数,并且填充P1的大小同指定阈值关联。若每次生成的填充数据P1增大,则也相应设置更大的指定阈值。例如,敏感区域的大小是每次产生的填充数据P1的大小的N倍(N为正整数),而指定阈值C1*N为次数阈值或在敏感区域的数据被破坏前,该敏感区域对应的关注区域能承载的读取操作的次数。
在又一种实施方式中,存储设备包括多个开放物理块。为每个开放物理块统计其关注区域被读取的次数,响应于开放物理块OP的关注区域被读取次数超过指定阈值,为该开放物理块OP产生填充数据。
在再一种实施方式中,存储设备包括一个或多个大块,每个大块包括多个物理块,从而具有开放物理块的大块被称为开放大块。为每个开放大块统计其关注区域被读取的次数,响应于开放大块OXP的关注区域被读取次数超过指定阈值,为该开放大块OXP产生填充数据。开放大块OXP的关注区域/敏感区域大小是开放大块中的所有物理块的关注区域/敏感区域的大小之和;或者,在对大块采用诸如RAID的数据保护机制的情况下,开放大块OXP的关注区域/敏感区域大小是开放大块中的所有非存储RAID校验数据的物理块的关注区域/敏感区域的大小之和。
在依然又一种实施方式中,存储设备是多流存储设备,能处理多个流,每个流被绑定到一个或多个物理块或大块。要写入存储设备的数据来自至少一个流,例如,访问每个命名空间的用户写请求的数据构成一个流;或者依据用户写请求的流标签,具有相同流标签的用户写请求的数据构成一个流;或者,依据发出用户写请求的应用或虚拟机,来自相同应用和/或虚拟机的用户写请求的数据构成一个流。为每个流统计其关注区域被读取的次数,响应于流S的关注区域被读取次数超过指定阈值,为该流S产生填充数据。其中,流的关注区域/敏感区域的大小是被绑定到该流的物理块或大块的关注区域/敏感区域的大小。
图6展示了根据本申请依然另一实施例的开放物理块的数据填充的流程图。
响应于时间的流逝(610),根据时间流逝的量递增计数器(640),以使得计数器代表了开放物理块的敏感区域上的数据被存储的时间长度。
响应于收到要向开放物理块写入数据的用户写命令(或垃圾回收操作、日志操作)(620),将同该开放物理块对应的记录时间流逝的计数器清零(630)。
若计数器所代表的开放物理块的敏感区域上的数据被存储的时间长度超过了指定阈值(650),则生成填充数据P2,并向该关注区域所属的物理块的未编程区域写入所生成的填充数据P2(660),以及还使计数器减去指定的阈值(670)。
可以理解地,敏感区域是动态的,随着用户数据U出现或者产生了填充数据P1,开放物理块被写入用户数据U或填充数据P1,也使得敏感区域下移。可选地,响应于敏感区域的改变,使代表了开放物理块的敏感区域上的数据被存储的时间长度的计数器清零。
作为举例,填充数据P2的大小是为2KB、4KB、16KB或其倍数,并且填充P2的大小同指定阈值T1关联。若每次生成的填充数据P2增大,则也相应设置更大的指定阈值。例如,敏感区域的大小是每次产生的填充数据P2的大小的M倍(M为正整数),而T1*M为时间阈值或在敏感区域的数据被破坏前,该敏感区域中的数据能被可靠地存储的时间。
在又一种实施方式中,存储设备包括多个开放物理块。为每个开放物理块统计其敏感区域上的数据被存储的时间,响应于开放物理块OP的敏感区域上的数据被存储的时间超过指定阈值,为该开放物理块OP产生填充数据。
在再一种实施方式中,存储设备包括一个或多个大块。为每个开放大块统计其敏感区域上的数据被存储的时间,响应于开放大块OXP的敏感区域上的数据被存储的时间超过指定阈值,为该开放大块OXP产生填充数据。
在依然又一种实施方式中,存储设备是多流存储设备。为每个流统计其敏感区域上的数据被存储的时间,响应于流S的敏感区域上的数据被存储的时间超过指定阈值,为该流S产生填充数据。
图7展示了根据本申请依然又一实施例的开放物理块的数据填充的流程图。
响应于获取了读命令(710),识别读命令是否要访问开放物理块的关注区域(720)。若读命令访问开放物理块的关注区域,递增代表了该开放物理块的关注区域的被读取次数的第一计数器,以累积该开放物理块的关注区域被读取的次数(730)。若该开放物理块的关注区域被读取的次数超过了指定阈值TH1(740),则生成填充数据P1,并向该关注区域所属的物理块的未编程区域写入所生成的填充数据P1(750),以及还从第一计数器中减去指定阈值TH1(760)。可选地,响应于生成了填充数据P1,还从第二计数器中减去指定阈值TH2。
作为举例,填充数据P1大小同指定阈值TH1关联。
响应于时间的流逝(715),根据时间流逝的量递增第二计数器(745),以使得第二计数器代表了开放物理块的敏感区域上的数据被存储的时间长度。响应于收到要向开放物理块写入数据的用户写命令(或垃圾回收操作、日志操作)(725),将同该开放物理块对应的记录时间流逝的第二计数器清零(735)。
若第二计数器所代表的开放物理块的敏感区域上的数据被存储的时间长度超过了指定阈值TH2(755),则生成填充数据P2,并向该关注区域所属的物理块的未编程区域写入所生成的填充数据P2(760),以及还使第二计数器减去指定的阈值TH2(770)。可选地,响应于生成了填充数据P2,还从第一计数器中减去指定阈值TH1。
作为举例,填充数据P2大小同指定阈值TH2关联。
本申请的一个或多个实施例也适用于2D闪存,以及其他非易失存储介质。
应该理解,框图和流程图的每个框以及框图和流程图的框的组合可以分别由包括计算机程序指令的各种装置来实施。这些计算机程序指令可以加载到通用计算机、专用计算机或其他可编程数据控制设备上以产生机器,从而在计算机或其他可编程数据控制设备上执行的指令创建了用于实现一个或多个流程图框中指定的功能的装置。
框图和流程图的框支持用于执行指定功能的装置的组合、用于执行指定功能的步骤的组合和用于执行指定功能的程序指令装置的组合。还应该理解,框图和流程图的每个框以及框图和流程图的框的组合可以由执行指定功能或步骤的、基于硬件的专用计算机系统实现,或由专用硬件和计算机指令的组合实现。
上述的不同块、操作以及技术的至少一部分可以被执行,通过使用硬件,控制设备执行固件指令,控制设备执行软件指令,或者及其任意组合。当在硬件中执行时,硬件可以包括一个或多个离散组件,集成电路,应用的集成电路(ASIC),等等。需要理解的是,本发明可以以纯软件、纯硬件、固件以及上述的各种组合来实现。硬件例如可以是控制设备、专用集成电路、大规模集成电路等等。
虽然当前申请参考的示例被描述,其只是为了解释的目的而不是对本申请的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本申请的范围。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种用于存储设备的方法,包括:
响应于开放物理块的第一区域被读取的次数超过第一阈值,产生要写入所述开放物理块的第一填充数据。
2.根据权利要求1所述的方法,还包括:
响应于所述开放物理块的第二区域的数据被存储在第二区域的时间超过第二阈值,产生要写入所述开放物理块的第二填充数据。
3.根据权利要求1或2所述的方法,其中
第一区域是所述开放物理块的关注区域,位于从所述开放物理块的最后一个已编程页向前的指定区域。
4.根据权利要求1-4之一所述的方法,其中
第一填充数据的大小关联于第一阈值,若所述开放物理块的第二区域的大小是第一填充数据的大小的N倍,其中N为正整数,则第一阈值的N倍不大于所述第二区域的数据被破坏前所述第一区域能被读取的次数。
5.根据权利要求4所述的方法,其中
所述第二区域是所述开放物理块的敏感区域,位于从所述开放物理块的最后一个已编程页向前的指定区域,以及所述第一区域包含所述第二区域。
6.根据权利要求1-5之一所述的方法,其中
第二填充数据的大小关联于第二阈值,若所述开放物理块的第二区域的大小是第二填充数据的大小的M倍,其中M为正整数,则第二阈值的M倍不大于所述第二区域的数据被破坏前,所述第二区域中的数据能被可靠地存储的时间。
7.根据权利要求1-6之一所述的方法,还包括:
响应于用户向所述开放物理块写入数据,重置所述开放物理块的第二区域的数据被存储在第二区域的时间。
8.根据权利要求1-7之一所述的方法,其中:
其中所述存储设备包括一个或多个大块;
响应于第一开放大块的第一区域被读取的次数超过第二阈值,产生要写入所述第一开放大块的第一填充数据。
9.根据权利要求1-8之一所述的方法,其中:
其中所述存储设备是多流存储设备;
响应于第一流对应的第一区域被读取次数超过第四阈值,为第一流产生第一填充数据。
10.一种存储设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现根据权利要求1-9之一的方法。
CN201910277645.2A 2019-04-08 2019-04-08 用于3d闪存的动态数据填充 Pending CN111797028A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910277645.2A CN111797028A (zh) 2019-04-08 2019-04-08 用于3d闪存的动态数据填充

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910277645.2A CN111797028A (zh) 2019-04-08 2019-04-08 用于3d闪存的动态数据填充

Publications (1)

Publication Number Publication Date
CN111797028A true CN111797028A (zh) 2020-10-20

Family

ID=72805668

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910277645.2A Pending CN111797028A (zh) 2019-04-08 2019-04-08 用于3d闪存的动态数据填充

Country Status (1)

Country Link
CN (1) CN111797028A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527203A (zh) * 2020-12-14 2021-03-19 深圳市硅格半导体有限公司 闪存存储器的数据重写方法、系统、终端设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527203A (zh) * 2020-12-14 2021-03-19 深圳市硅格半导体有限公司 闪存存储器的数据重写方法、系统、终端设备及存储介质
CN112527203B (zh) * 2020-12-14 2024-04-19 深圳市硅格半导体有限公司 闪存存储器的数据重写方法、系统、终端设备及存储介质

Similar Documents

Publication Publication Date Title
US10318414B2 (en) Memory system and memory management method thereof
CN106448737B (zh) 读取闪存数据的方法、装置以及固态驱动器
US10127166B2 (en) Data storage controller with multiple pipelines
TWI421869B (zh) 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
US10552048B2 (en) Reduction of maximum latency using dynamic self-tuning for redundant array of independent disks
US10970205B2 (en) Logical-to-physical data structures for tracking logical block addresses indicative of a collision
US11669461B2 (en) Logical to physical table fragments
CN109558334B (zh) 垃圾数据回收方法及固态存储设备
US11989452B2 (en) Read-disturb-based logical storage read temperature information identification system
KR102530583B1 (ko) 저장 장치 및 메모리 시스템
CN109976664B (zh) 固态存储设备的日志数据组织
CN110750380A (zh) 具有奇偶校验高速缓存方案的存储器系统以及操作方法
US11922067B2 (en) Read-disturb-based logical storage read temperature information maintenance system
CN113590503B (zh) 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统
US20180217928A1 (en) Data storage device and operating method thereof
CN110119326B (zh) 数据存储装置及其操作方法
CN113590502B (zh) 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统
CN111324414A (zh) Nvm存储介质模拟器
CN107808686B (zh) 读出错测试方法与装置
CN109815157B (zh) 编程命令处理方法与装置
CN111797028A (zh) 用于3d闪存的动态数据填充
US9652172B2 (en) Data storage device performing merging process on groups of memory blocks and operation method thereof
US11656984B2 (en) Keeping zones open with intermediate padding
CN114968849A (zh) 提高编程缓存利用率的方法及其设备
CN114730247A (zh) 具有数据的最小写入大小的存储设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Applicant after: Beijing yihengchuangyuan Technology Co.,Ltd.

Address before: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Applicant before: BEIJING MEMBLAZE TECHNOLOGY Co.,Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination