CN118796136B - 处理数据保持能力的方法以及存储设备 - Google Patents
处理数据保持能力的方法以及存储设备 Download PDFInfo
- Publication number
- CN118796136B CN118796136B CN202411287866.5A CN202411287866A CN118796136B CN 118796136 B CN118796136 B CN 118796136B CN 202411287866 A CN202411287866 A CN 202411287866A CN 118796136 B CN118796136 B CN 118796136B
- Authority
- CN
- China
- Prior art keywords
- scanning
- memory
- word line
- storage
- memory block
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开一种处理数据保持能力的方法以及存储设备。该方法包括:对所有平面内的存储块进行分组,以得到多个存储块组;对每个存储块中的所有字线进行分组,以得到多个字线组,每条字线组还包括多个存储页;在每个存储块组内部进行扫描,所述扫描包括多轮扫描,每轮扫描从初始芯片的一个存储块的一个字线组中选出未被扫描过的一条字线作为初始扫描字线,然后依次以预设偏移确定下一个平面中的相应存储块的相应字线作为下一个平面的起始扫描字线;以及根据在每个存储块完成扫描后的扫描结果决定是否将该存储块中的数据搬移到一空闲存储块并据此执行。该方法通过交叉扫描以实现对有问题的存储块的早发现和早处理。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种处理数据保持能力的方法以及存储设备。
背景技术
当前很多存储设备,如USB闪存、 SD卡、CF卡、SSD、 eMMC嵌入式存储卡、UFS设备等,均以闪存存储介质,尤其是NAND型闪存存储介质为主要存储介质, 且逐渐成为主流形态,相比于传统磁介质的存储器,性能有了质的飞跃。闪存存储介质由大量的存储单元构成,每个存储单元由浮动栅极晶体管构成,在长时间不进行读写操作的情况下,晶体管的浮栅门级中存放的电荷会发生变化,导致原本存储的数据发生变化,进而发生错误。所以,保持闪存存储介质中的数据可读是存储设备的重要能力。
为了解决这一问题,存储设备中的控制器会定期或不定期地对闪存存储介质进行数据巡检,并根据巡检结果将处于危险状态的存储块中的数据搬运到其他空闲的存储块。
发明内容
有鉴于此,本发明实施例提供一种处理数据保持能力的方法以及存储设备,以提升以NAND型闪存作为主要存储介质的存储设备的数据保持能力。
根据本发明的第一方面,提供一种处理数据保持能力的方法,所述方法用于存储设备,所述存储设备包括存储介质和控制器,所述存储介质包括多个闪存芯片,每个闪存芯片包含多个平面,每个平面被依次划分为多个存储块组,每个存储块包括按顺序排列的多条字线,每条字线连接多个存储页,所述方法由所述控制器执行,并包括以下步骤:
对所有存储块进行分组,以得到多个存储块组,其中,各个平面中的连续的一个或多个存储块被分在同一个存储块组中;
对每个存储块中的所有字线进行分组,以得到多个字线组,其中,每个存储块中的连续的多个字线被分在一个字线组中,每个字线组还包括若干存储页;
在每个存储块组内部,进行扫描,所述扫描包括多轮扫描,每轮扫描从初始平面的一个存储块的一个字线组中选出未被扫描过的一条字线作为初始扫描字线,然后依次以预设偏移确定下一个平面中的相应存储块的相应字线作为下一条扫描字线;以及
根据每个存储块的扫描结果决定是否将该存储块中的数据搬移到一空闲存储块并据此执行。
在一些实施例中,所述多轮扫描的初始扫描字线位于同一个存储块内的多个字线组中。
在一些实施例中,所述多轮扫描的初始扫描字线之间间隔固定数量的字线。
在一些实施例中,所述方法还包括:
对所述多个存储块组进行分组,以得到多个存储块组的分组;
在每个存储块组的分组中,不同存储块组的初始存储块按预设偏移确定。
在每个存储块组的分组中,其中,对于任意存储块,只要扫描出的错误数据占比超过设定阈值,则停止扫描,并将该存储块中的数据搬移到一空闲存储块并据此执行。
在一些实施例中,同一个存储块组中的各个存储块在所属闪存芯片的相应平面上具有相同编号。
在一些实施例中,将各个闪存芯片的各个平面的每8个存储块分在同一个存储块组的分组中。
在一些实施例中,在通电但长时间未访问所述存储设备的情况下,执行如上所述的方法。
在一些实施例中,在主机空闲或者主机低负载的条件下执行如上所述的方法。
根据本发明的第二方面,提供一种存储设备的控制器,执行上述的方法。
根据本发明的第三方面,提供一种存储设备,包括:耦接的控制器和闪存存储介质,所述控制器执行上述的方法。
本发明实施例所提供的方法在存储设备的各个物理部件(包括芯片、平面、存储块和字线)之间通过交叉扫描解决了单一扫描所造成的有问题的存储块越来越多的问题,能够作到对有问题的存储块的早发现和早处理,从而有助于维护存储设备的数据保持能力。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示出了示例性的主机系统的示意性框图;
图2是示例性的闪存存储介质的结构示意图;
图3和图4是本发明实施例提供的执行第一种巡检策略的流程图;
图5和图6是本发明实施例提供的执行第二种巡检策略的流程图;
图7是本发明实施例提供的处理数据保持能力的方法的流程图;
图8是本发明另一实施例提供的处理数据保持能力的方法的流程图;
图9用于示意本发明实施例的存储块组、存储块组的分组和存储块之间的关系;
图10是本发明实施例的存储块组的扫描次序的示意图。
具体实施方式
以下将参照附图更详细地描述本发明。在各个附图中,相同的元件采用类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,可能未示出某些公知的部分。
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
图1示出示例性的主机系统100的示意性框图。主机系统100例如是个人电脑、笔记本电脑、服务器。
主机系统100包括主机设备110 (例如,包括主处理器和内存的计算机系统)和存储设备。主机设备110可向存储设备发布主机命令,使得存储设备根据命令来管理存储在存储设备中的主机数据。例如,主机设备110可通信地连接到存储设备 (例如,通过主机接口121)并且向存储设备发布各种命令(例如,READ,WRITE,UNMAP,REASSIGNBLOCK,TRIM等)。存储设备可根据命令提示的地址范围存储、更新、读取和/或以其他方式管理主机数据。一旦执行了命令,则存储设备可将响应传输到主机设备110,从而指示命令已成功完成。
存储设备由控制器120和存储介质130组成。控制器120包括主机接口121、处理器123、缓存单元124和存储介质接口128。控制系统120的主机接口121连接至主机设备110,用于缓存和传输主机命令和主机数据。处理器123与主机接口121、缓存单元124和存储介质接口128相连接,处理器123对主机命令进行解析并执行相应的操作。缓存单元124例如为SRAM和/或DRAM,可用于存储逻辑地址与物理地址之间映射关系以及一些配置数据。存储介质接口128包括接口电路,用于实现控制器120和存储介质130之间的数据传输。
控制器120还具有由若干程序组成的核心软件层,这些程序由处理器123执行以实现管理功能,包括例如:数据读写、坏块管理、损耗均衡、垃圾回收、断电恢复、写平衡技术。核心软件层通常被形成为固件。
存储介质130存储主机数据。存储介质130和存储介质接口128之间具有多个通道,用于传输主机数据。在本发明实施例中,存储介质130被限定为由闪存芯片组成的闪存存储介质,尤其是背景技术中提到的NAND型闪存。
图2是一个示例性的闪存存储介质的结构示意图。存储介质130具有两个闪存芯片(die),在图上标识为die 0至die 1。依据芯片的物理特性,每个芯片包括四个平面(plane), 在图上标识为plane0到plane3,每个平面包括若干个存储块(block),图上采用8N +X标识每个存储块,并示例性地将每8个存储块分为一组。每个存储块由若干个字线(WordLine)组成, 每个字线包括若干个存储页,每个存储可以存储16KB的有效数据。
存储介质接口128和存储介质130之间的连接通道为channel0和channel1,芯片die0使用通道channel0,因此存储介质接口128访问芯片die0各自的平面plane0至plane3上的各个存储块需通过通道channel0,访问芯片die1各自的平面plane0至plane3上的各个存储块需通过通道channel1。依靠通道channel0至channel1,存储介质接口128可并行访问存储介质130上的相应的存储块,例如,存储介质接口128通过通道channel0和chanel1并行向存储介质130上的相应的存储块写入或读取数据。
参考背景技术,对闪存存储介质进行数据巡检和数据搬移是保持闪存存储介质中的数据可读的重要手段,为此,本发明实施例提供两种巡检策略:第一种巡检策略仅扫描特定存储页和/或特定存储块;第二种巡检策略是对全部存储块进行扫描。第一种巡检策略通常用于快速识别闪存存储介质长时间断电之后再通电的情况下,哪些存储块或存储页处于危险状态。第二种巡检策略主要针对数据写入之后,在通电的情况下长时间不访问的情形,比如视频存储设备、手机存储的照片等,如果通电不访问所持续时间足够长,又没有应对策略,则会出现数据丢失、访问存储设备卡顿等异常情况。
图3和图4是本发明实施例提供的执行第一种巡检策略的流程图。图3包括以下步骤。
在步骤S301中,对闪存存储介质启动第一种巡检策略。
在步骤S302中,与上次的启动时间的时间间隔是否大于或等于设定阈值,如果是,则执行步骤S303,如果否,则等待一段时间后,再来执行步骤S302。
在步骤S303中,执行第一种巡检策略。
第一种巡检策略可分多次进行,图3给出了每个执行过程的流程图,具体包括:先基于用户指令或定时器启动第一种巡检策略的进程,进程启动后检查与上一次的启动时间的时间间隔是否大于或等于设定阈值,如果是,则执行第一种巡检策略,如果不是,则等待一段时间后,再检查与上一次的启动时间的时间间隔是否大于或等于设定阈值。
图4给出了步骤S303的具体实施方式,其包括以下步骤。
在步骤S401中,初始化i=0,j=0。
在步骤S402中,判断i是否小于N,如果是,则执行步骤S402,如果否,则流程结束。
在步骤S403中,扫描存储块j的第i个存储页。
在步骤S404中,判断错误占比是否超过设定阈值,如果是,则执行步骤S404,如果否,则执行步骤S405。
在步骤S405中,将存储块j的数据搬移到其他空闲的存储块。
在步骤S406中,j++。
在步骤S407中,判断完成M个存储块的扫描,如果是,则执行步骤S408,否则执行步骤S403。
在步骤S408中,i++。
依据本实施例,先设置扫描页数N和存储块数量M(N和M为常数),然后开启多轮扫描,在每轮扫描中,依次扫描M个存储块中的每一个存储块的第i个存储页,若第i个存储页的错误数据占比是否超过设定阈值,则将对应的存储块中的数据搬移到其他空闲的存储块,这里i为变量,在多轮扫描中依次递增,当i递增到N时,扫描结束。如此实现了第一种巡检策略下的有限数量的存储页的扫描。
图5和图6是本发明实施例提供的执行第二种巡检策略的流程图。图5包括以下步骤。
在步骤S501中,获取存储设备的第二种巡检策略的进度。
在步骤S502中,检查第二种巡检策略的执行进度是否符合预期,如果是,则执行步骤S503,否则执行步骤S504。
在步骤S503中,继续按正常进度对存储设备执行第二种巡检策略。
在步骤S504时,加速对存储设备执行第二种巡检策略。
第二种巡检策略可分多次进行,图3给出了每个执行过程的流程图,具体包括:先检查执行进度,如果符合预定进度,则按照正常进度执行,如果不符合正常进度,则加速执行进度。例如,按照第二种策略每间隔一段时间扫描多个存储页,如果由于进入低功耗模式或其他原因导致执行进度不及预期,则会持续补偿损失的进度,直到达到预期为止。
图6给出了步骤S503和S504的具体实施方式,其包括以下步骤。
在步骤S601中,获取上一次扫描的起始位置。上一次扫描的起始位置指向第一个闪存芯片的第一个平面的第一个存储块中的扫描位置。
在步骤S602中,i=0。
在步骤S603中,判断存储块x是否需要扫描,如果是,则执行步骤S604。
在步骤S604中,依据规则计算存储块x的扫描位置。
在步骤S605中,执行扫描。
在步骤S606中,判断存储块x的错误数据占比是否超过设定阈值,如果是,则执行步骤S607,如果否,则执行步骤S608。
在步骤S607中,搬移存储块x。
在步骤S608中,x++。
在步骤S609中,存储块全部扫完。
在步骤S611中,扫描进度符合预期。
在步骤S612中,本此扫描结束。
依据本实施例,根据上一次扫描的起始位置和设定规则确定本次要扫描的存储块x的扫描位置并执行扫描,如果依据扫描结果确定存储块x的错误数据占比超过设定阈值,则将存储块x的数据搬移到其他空闲的存储块,这里x为变量,并依次递增,当本次要扫描的存储块都完成扫描后,判断当前的扫描进度是否符合预期,如果是,则结束本次扫描,如果不是,则继续扫描。
应该理解,两种巡检策略可各自独立的执行,但第二种巡检策略一般比第一种巡检策略需耗用更多时间,相对应地,第二种巡检策略的执行结果准确性更高,漏检可能性更小。为了兼顾两种巡检策略的优缺点,本发明实施例还提供一种两种巡检策略结合使用的方法,其流程图参考图7所示,以及在第二种巡检策略中按优选扫描次序进行扫描的方法,其流程图参考图8所示。
图7是本发明实施例提供的处理数据保持能力的方法的流程图,该方法包括如下步骤。
在步骤S701中,对一个或多个特定存储页进行扫描。
在步骤S702中,判断一个或多个特定存储页的错误数据占比是否超过第一设定阈值,如果是,则执行步骤S707,如果否,则结束本次扫描。
在步骤S703中,扫描一个或多个特定存储页所在的存储块。
在步骤S704中,判断一个或多个特定存储页所在的存储块的错误数据占比是否超过第二设定阈值,如果是,则执行步骤S706,如果否,则执行步骤S705。
在步骤S705中,将一个或多个特定存储页所在的存储块搬运到空闲存储块上。
在步骤S706中,扫描所有存储块。
在步骤S707中,根据每个存储块的错误数据占比决定是否将该存储块中的数据搬移到一空闲存储块并据此执行。
根据本实施例,先确定一个或多个存储页,对这些存储页进行扫描,如果扫描结果显示这些存储页的错误数据占比(或这些存储页的最大错误数据占比)超过第一设定阈值,则继续对这些存储页所在的存储块进行扫描,如果这些存储页所在的存储块的错误数据占比(或这些存储页所在的存储块的最大错误数据占比)小于或等于第二设定阈值,则将一个或多个特定存储页所在的存储块的数据搬运到空闲存储块上,并结束本次扫描,如果这些存储页所在的存储块的错误数据占比(或这些存储页所在的存储块的最大错误数据占比)超过第二设定阈值,则扫描所有存储块,并且每扫描完一个存储块,根据该存储块的错误数据占比决定是否将该存储块中的数据搬移到一空闲存储块并据此执行。
依据本实施例,一方面,先扫描有限数量的存储页,当扫描结果预示着各个存储页所在的存储块处于危险状态时,则扫描各个存储页所在的存储块,另一方面,当各个存储页所在的存储块的存储数据占比超过设定阈值时,扫描所有存储块,从而能够避免非必要地执行第二种巡检策略所带来的资源浪费和时间耗用,同时第二种巡检策略的有效执行又弥补了第一种巡检策略可能存在的对处于危险状态的存储块的漏检问题。
在一些实施例中,步骤S701的特定存储页是从如图2的存储介质130中的各个平面上分别选出的存储页,例如从图2的8个平面上分别选出一个字线上的一个存储页。更进一步,对于图2的8个平面,按照偏移N条字线从第一平面至第8平面中依次选定一条字线上的一个存储页,N为大于或等于1的整数。
在一些实施例中,步骤S701的特定存储页是根据经验或统计数据确定的、其存储单元的电荷数容易发生变化的存储页。例如,控制器向存储介质写入数据时,通常按照超级块进行写入,超级块是逻辑上包括多个存储块的存储块集合,写满的超级块处于稳定状态,但未写满的超级块中的未写满的存储块的未写满的存储页处于不稳定状态,其电荷数容易发生变化。
在一些实施例中,步骤S701的特定存储页是根据经验或统计数据确定的、为其存储单元的电荷数不容易发生变化的存储页。例如,从写满的超级块中选出若干个存储页。
在一些实施例中,步骤S702和步骤S704中所使用的第一设定阈值和第二设定阈值和步骤S701的特定存储页的选取有关,如果步骤S701的特定存储页为其包含的存储单元的电荷数容易发生变化的存储页,则第一设定阈值大于第二设定阈值,如果步骤S701的特定存储页为其包含的存储单元的电荷数相对不容易发生变化的存储页,则第一设定阈值小于第二设定阈值。
在一些实施例中,步骤S701的特定存储页包括根据经验或统计数据确定的、其包含的存储单元的电荷数容易发生变化的几个存储页和电荷数不容易发生变化的几个存储页,并针对电荷数容易发生变化的几个存储页和电荷数不容易发生变化的几个存储页设定两个第一设定阈值,然后根据两个比较结果确定是否执行步骤S703。
在一些实施例中,步骤S701的特定存储页为以下几种选择的组合:特定存储块中的起始字线所连接的存储页;特定存储块的结束字线所连接的存储页;特定存储块的起始字线和结束字线之间的任选字线所连接的存储页,特定存储块为任意选择的存储块、不同平面的存储块、间隔一定平面的存储块、等等。
应该理解,本实施例的步骤S701、S703执行的是第一种巡检策略,步骤S706执行的是第二种巡检策略,对于步骤S706来说,可以按闪存芯片、平面、存储块和字线依次进行扫描,也可以按闪存芯片、平面、存储块和字线进行交叉扫描,例如,先扫描第一芯片的第一平面,再扫描第二芯片的第二平面,然后再扫描第一芯片的第二平面,再扫描第二芯片的第一平面,诸如此类。
为了在第二种巡检策略执行中尽早发现并处理处于危险状态的存储块,本发明还提供了另一实施例的处理数据保持能力的方法,该方法所应用的存储设备具有和图2类似的存储介质。并且,该方法同样可以形成为计算机程序,由图1中的控制器120中的处理器123处理,且形成的计算机程序可形成为图1中的控制器120的固件,当存储设备通电该计算机程序就启动运行。图8示出了该方法的流程图。
在步骤S801中,对存储块进行分组,以得到多个存储块组,其中,各个闪存芯片的各个平面中的一个或多个连续的存储块分在同一个存储块组中。
在步骤S802中,对每个存储块中的字线进行分组,以得到多个字线组。每个存储块中的连续的多个字线被分在一个字线组中,每个字线组还包括若干个存储页。
在步骤S803中,在每个存储块组内部进行扫描。每轮扫描从初始平面的一个存储块的一个字线组中选出未被扫描过的一条字线作为初始扫描字线,然后依次以预设偏移确定下一个平面中的相应存储块的相应字线作为下一条扫描字线。
在步骤S804中,根据每个存储块的扫描结果决定是否将该存储块中的数据搬移到一空闲存储块并据此执行。在每扫描完一个存储块即决定是否搬运它的数据,而不是等待所有存储块都扫描完成之后,再进行集中的数据搬运。
以图9和图10为例对本实施例进行详细的解释说明。图9用于示意本发明实施例的存储块组、存储块组的分组和存储块之间的关系。图10用于示意本发明实施例的存储块组的扫描次序。
在图9中,闪存存储介质包括2个芯片(die),每个芯片具有从plane0到plane3的四个平面(plane),每个平面具有多个存储块,图上将每8个存储块分为一组,并采用8N +X表示每个存储块的标识。
根据本实施例,各个平面中的一个或多个存储块被分在同一个存储块组中,例如图9中,将闪存芯片die0和die1中的各个平面中的第一个存储块放在同一个存储块组中,图上示出了存储块组A1,此时,A1中的各个存储块均具有编号8N+0。再例如,将各个平面中的编号为8N+0和8N+1的存储块放在同一个存储块组中。应该指出的是,各个闪存芯片的各个平面上的具有相同编号的存储块具有数据一致性的物理特性。
在图10中,A1和图9中的存储块组A1指向同一个存储块组,为了简便,图10仅展示了部分存储块以及部分字线,并采用字线 8Y+X(X为0至7)来表示各个字线。
依据本实施例,将每个存储块中的多个字线分为多个字线组,例如图9按照每8条字线划分字线组。然后,对每个存储块组进行扫描,所述扫描包括多轮扫描。参考图10的黄色虚线所示,对于存储块组A1,每轮扫描以平面plane0的未扫描的一个字线作为初始扫描字线,第一轮扫描从平面plane0的第一个存储块的字线组(y=0)中的字线WordLine 8Y+0的字线开始,然后通过预设偏移定位到存储块组A1的平面plane1的相应存储块中的字线组(y=0)中的字线WordLine 8Y+i(i<7),再按照预设偏移定位到存储块组A1的平面plane2的相应存储块中的字线组(y=1)中的字线WordLine 8Y+ 0,依次类推;参考图上绿色虚线所示,第二轮扫描从平面plane0的另一个字线组(y=1)中的字线WordLine 8Y+0的字线开始,然后通过预设偏移定位到存储块组A1的平面plane1的相应存储块中的字线组(y=1)中的相应字线上,依次类推。可选地,在各轮扫描中,相邻轮次的扫描的开始扫描字线总是位于不同的字线组中,并且可间隔固定数量的字线。
上述多轮扫描可以作为第一周期,当其完成后,可以开始第二周期,第二周期的扫描次序和第一周期的扫描次序一致,即,第二周期的第一轮扫描从存储块组A1的平面plane0的字线组(y=0)中的字线WordLine 8Y+1的字线开始,然后通过预设偏移定位到存储块组A1的平面plane1的相应字线组中的相应字线上,再按照预设偏移定位到存储块组A1的平面plane2的相应字线组中的相应字线上,依次类推。其他周期依次类推。
本发明实施例实现了同一个存储块组中的不同平面的存储块中直接扫描字线的次序是不一样的,这样的处理能够快速地发现处于危险状态的存储块,减少每个存储块按照最小存储页扫描到最大存储页的过程中,扫描过的存储页逐步变差的情况。进一步地,在各个物理部件(包括芯片、平面、存储块和字线)之间的交叉扫描,能够解决单一扫描所造成的扫描出的有问题的存储块越来越多的问题,并实现对有问题的存储块的早发现和早处理。
在一些实施例中,在存储块组的基础上,继续将多个存储块组进行分组,以得到多个存储块组的分组,在不同的存储块组的分组中,存储块的扫描次序是一样的,但是字线的扫描次序可以不同。例如,参考图9所示,存储块组A1和A2中的存储块扫描次序相同,但是字线的扫描按预设偏移进行定位。
在一些实施例中,对于任意一个存储块,无需完成所有字线的扫描,只要已扫描出的错误数据占比超过设定阈值,即可决定将该存储块的数据搬移到一空闲存储块并据此执行。
在一些实施例中,上述实施例的执行条件为主机空闲或者主机低负载。主机空闲是指:主机对存储设备没有任何交互持续一定的时间,比如3s;主机低负载是指:主机对存储设备仅有少量的交互,如读、写负载均低于6MB/s; 此时NAND型闪存内部的带宽足够用来在保证与主机交互的前提下,还存在足够的资源执行基于上述实施例的扫描任务。可选地,通过监控模块持续监控存储设备的资源使用情况,并将主机空闲或者主机低负载作为上述实施例的触发条件,并将主机负载高于设定阈值作为上述实施例的停止条件。
在一些实施例中,持续累计针对存储设备的访问次数,并在访问次数低于设定阈值的条件下,判断上述实施例中的任意一个的执行条件是否满足,如果满足,则执行相应实施例。
在一些实施例中,上述实施例所针对的存储设备所包含的一个或多个闪存芯片通过唯一通道与控制器通信,在此条件,只能通过该唯一通道串行扫描各个存储块中的各个存储页,因此整体上所耗用的时间将更加漫长,因此更有必要通过采用混合巡检策略和交叉扫描来进行扫描。
综上,本发明实施例针对存储设备提供两种处理数据保持能力的方法和装置,两种方法可以结合使用,也可以各自独立使用,均能在一定程度上提升存储设备的数据保持能力。
依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种处理数据保持能力的方法,所述方法用于存储设备,所述存储设备包括存储介质和控制器,所述存储介质包含多个平面,每个平面被依次划分为多个存储块,每个存储块包括按顺序排列的多条字线,每条字线包含多个存储页,所述方法由所述控制器执行,并包括以下步骤:
对所有存储块进行分组,以得到多个存储块组,其中,同一个存储块组中包含所有芯片的所有平面中的一个或多个连续的存储块;
对每个存储块中的所有字线进行分组,以得到多个字线组,其中,每个存储块中的连续的多个字线被分在一个字线组中,每个字线组还包括若干存储页;
在每个存储块组内部进行扫描,所述扫描包括多轮扫描,每轮扫描从初始平面的一个字线组中选出未被扫描过的一条字线作为初始扫描字线,然后依次以预设偏移确定下一个平面中的相应字线作为下一条扫描字线;以及
每扫描完一个存储块,即根据该存储块的扫描结果决定是否将该存储块中的数据搬移到一空闲存储块并据此执行。
2.根据权利要求1所述的方法,其中,所述多轮扫描的初始扫描字线位于同一个存储块内的多个字线组中。
3.根据权利要求1所述的方法,其中,所述多轮扫描的初始扫描字线之间间隔固定数量的字线。
4.根据权利要求1所述的方法,还包括:
对所述多个存储块组进行分组,以得到多个存储块组的分组;
在每个存储块组的分组中,不同存储块组的所扫描的第一条字线按预设偏移确定。
5.根据权利要求1所述的方法,其中,对于任意存储块,只要扫描出的错误数据占比超过设定阈值,则停止扫描,并将该存储块中的数据搬移到一空闲存储块并据此执行。
6.根据权利要求1所述的方法,其中,同一个存储块组中的各个存储块在所属闪存芯片的相应平面上具有相同编号。
7.根据权利要求4所述的方法,其中,将各个闪存芯片的各个平面的每8个存储块分在同一个存储块组的分组中。
8.根据权利要求1所述的方法,其中,在通电但长时间未访问所述存储设备的情况下,执行如权利要求1至7任一项所述的方法。
9.一种存储设备的控制器,执行如权利要求1至8任一项所述的方法。
10.一种存储设备,包括:耦接的控制器和闪存存储介质,所述控制器执行如权利要求1至8任意一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411287866.5A CN118796136B (zh) | 2024-09-13 | 2024-09-13 | 处理数据保持能力的方法以及存储设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411287866.5A CN118796136B (zh) | 2024-09-13 | 2024-09-13 | 处理数据保持能力的方法以及存储设备 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN118796136A CN118796136A (zh) | 2024-10-18 |
| CN118796136B true CN118796136B (zh) | 2025-02-14 |
Family
ID=93023969
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202411287866.5A Active CN118796136B (zh) | 2024-09-13 | 2024-09-13 | 处理数据保持能力的方法以及存储设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN118796136B (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120045125A (zh) * | 2024-12-26 | 2025-05-27 | 深圳大普微电子股份有限公司 | 数据扫描方法、闪存设备及计算机可读存储介质 |
| CN120872713A (zh) * | 2025-09-26 | 2025-10-31 | 山东云海国创云计算装备产业创新中心有限公司 | 一种存储设备仿真方法、装置、电子设备及存储介质 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20000003933A (ko) * | 1998-06-30 | 2000-01-25 | 김영환 | 메모리 내장 칩에서의 내부 메모리 테스트 방법 및 장치 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9013922B2 (en) * | 2012-09-20 | 2015-04-21 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
| US9361991B1 (en) * | 2014-12-23 | 2016-06-07 | Sandisk Technologies Inc. | Efficient scanning of nonvolatile memory blocks |
| US20190005663A1 (en) * | 2017-06-30 | 2019-01-03 | Adcole Corporation | Method for reducing impact of surface texture in an optical scan and devices thereof |
| CN115543183A (zh) * | 2022-03-11 | 2022-12-30 | 苏州忆联信息系统有限公司 | Ssd数据扫描优化方法、装置、计算机设备及存储介质 |
| CN118098317A (zh) * | 2022-11-18 | 2024-05-28 | 长江存储科技有限责任公司 | 存储器的操作方法、存储器、存储系统以及电子设备 |
-
2024
- 2024-09-13 CN CN202411287866.5A patent/CN118796136B/zh active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20000003933A (ko) * | 1998-06-30 | 2000-01-25 | 김영환 | 메모리 내장 칩에서의 내부 메모리 테스트 방법 및 장치 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN118796136A (zh) | 2024-10-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN118796136B (zh) | 处理数据保持能力的方法以及存储设备 | |
| US9063844B2 (en) | Non-volatile memory management system with time measure mechanism and method of operation thereof | |
| JP5002201B2 (ja) | メモリシステム | |
| US10990325B2 (en) | Write control method, associated data storage device and controller thereof | |
| US8392649B2 (en) | Memory storage device, controller, and method for responding to host write commands triggering data movement | |
| KR101431205B1 (ko) | 캐시 메모리 장치 및 캐시 메모리 장치의 데이터 처리 방법 | |
| US9965194B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus which performs data arrangement operation according to usage frequency of physical erasing unit of memory storage apparatus | |
| US8266368B2 (en) | Memory controller, memory system, and control method for memory system | |
| US20200293221A1 (en) | Storage device and computing device including storage device | |
| US20120159050A1 (en) | Memory system and data transfer method | |
| US10776024B2 (en) | Solid state drive and data accessing method thereof | |
| CN114300032B (zh) | 一种检查存储介质失效的方法、装置和固态硬盘 | |
| US11487658B2 (en) | Memory system including plural regions storing data and operating method thereof | |
| CN101441597B (zh) | 可调式混合密度内存储存装置的控制方法及其热门数据控管模块 | |
| US9081664B2 (en) | Memory system capable of preventing data destruction | |
| US11928364B2 (en) | Memory system and method | |
| JP2014041468A (ja) | フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリ制御方法 | |
| US10802917B2 (en) | Memory system confirming whether processing of preserving data which has been before shutdown | |
| CN114281265B (zh) | 一种存储介质失效的处理方法、装置和固态硬盘 | |
| KR101070511B1 (ko) | Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법 | |
| CN113590505B (zh) | 地址映射方法、固态硬盘控制器及固态硬盘 | |
| US11069409B2 (en) | Method, associated memory device and controller thereof for performing programming management | |
| CN112988068B (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
| US12399817B2 (en) | Memory system and method of controlling the memory system | |
| US20200327069A1 (en) | Data storage device and operation method thereof, controller using the same |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant | ||
| REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40118580 Country of ref document: HK |