CN111949561B - 一种存储设备及其控制方法和控制装置 - Google Patents
一种存储设备及其控制方法和控制装置 Download PDFInfo
- Publication number
- CN111949561B CN111949561B CN201910412953.1A CN201910412953A CN111949561B CN 111949561 B CN111949561 B CN 111949561B CN 201910412953 A CN201910412953 A CN 201910412953A CN 111949561 B CN111949561 B CN 111949561B
- Authority
- CN
- China
- Prior art keywords
- wear
- event queue
- operation command
- storage device
- erasing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000001514 detection method Methods 0.000 claims abstract description 8
- 238000005299 abrasion Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 6
- 239000007787 solid Substances 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (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
本发明实施例公开了一种存储设备及其控制方法和控制装置,该存储设备包括存储模块,存储模块包括多个物理块和事件队列,该控制方法包括:如果检测到物理块的擦除次数大于或等于第一擦除阈值,将磨损平衡操作添加到事件队列中;在操作空白阶段,如果检测到事件队列中存在磨损平衡操作,执行该磨损平衡操作。本发明实施例中,采用后台执行磨损平衡操作的方法,磨损平衡操作和存储设备的读写擦操作命令不会同时进行,如此不会占用用户的擦除时间,在用户完成正常的读写擦操作后,控制装置通过自动检测和处理来完成磨损平衡的全部操作,减少了用户操作等待时间,提高了存储设备系统性能。
Description
技术领域
本发明实施例涉及存储技术,尤其涉及一种存储设备及其控制方法和控制装置。
背景技术
磨损平衡Wear leveling是大多数固态硬盘SSD产品都会实现的闪存转换层FTL算法之一。其核心思想是平衡设备端的所有物理块的擦写次数。
磨损平衡Wear leveling包括动态磨损平衡Dynamic wear leveling。现有动态磨损平衡技术是在用户执行擦或写操作的过程中完成。如用户在执行擦除操作时,根据映射表得到擦除操作所对应的物理块地址,判断该物理块的擦除次数是否已大于一个给定的阈值。如果满足该条件,则触发Dynamic wear leveling。
然而,磨损平衡涉及数据的搬移和物理块的擦除操作,这会占用用户的读写操作时间,导致等待时间变长,降低了系统性能。
发明内容
本发明实施例提供一种存储设备及其控制方法和控制装置,以缩短用户操作等待时间。
本发明实施例提供了一种存储设备的控制方法,所述存储设备包括存储模块,所述存储模块包括多个物理块和事件队列,该控制方法包括:
如果检测到所述物理块的擦除次数大于或等于第一擦除阈值,将磨损平衡操作添加到所述事件队列中;
在操作空白阶段,如果检测到所述事件队列中存在所述磨损平衡操作,执行该磨损平衡操作。
进一步的,确定所述操作空白阶段的具体执行过程为:
将第一操作命令执行完成之后到第二操作命令开始执行之前的时段确定为所述操作空白阶段,所述第一操作命令与所述第二操作命令为所述存储设备接收到的相邻两次操作命令。
进一步的,检测到所述物理块的擦除次数大于或等于第一擦除阈值之前,还包括:
接收第一操作命令并确定所述第一操作命令对应的物理块,再检测该物理块的擦除次数是否大于或等于所述第一擦除阈值。
基于同一发明构思,本发明实施例还提供了一种存储设备的控制装置,所述存储设备包括存储模块,所述存储模块包括多个物理块和事件队列,该控制装置包括:
事件确定模块,用于如果检测到所述物理块的擦除次数大于或等于第一擦除阈值,将磨损平衡操作添加到所述事件队列中;
事件执行模块,用于在操作空白阶段,如果检测到所述事件队列中存在所述磨损平衡操作,执行该磨损平衡操作。
进一步的,所述事件执行模块还用于将第一操作命令执行完成之后到第二操作命令开始执行之前的时段确定为所述操作空白阶段,所述第一操作命令与所述第二操作命令为所述存储设备接收到的相邻两次操作命令。
进一步的,还包括:检测模块,用于接收第一操作命令并确定所述第一操作命令对应的物理块,再检测该物理块的擦除次数是否大于或等于所述第一擦除阈值。
基于同一发明构思,本发明实施例还提供了一种存储设备,所述存储设备包括存储模块和如上所述的控制装置,所述控制装置与所述存储模块电连接。
本发明实施例中,采用后台执行磨损平衡操作的方法,如果检测到物理块的擦除次数大于或等于第一擦除阈值,将磨损平衡操作添加到事件队列中,在操作空白阶段,如果检测到事件队列中存在磨损平衡操作,执行该磨损平衡操作。本发明实施例中,触发磨损平衡操作事件后先记录到事件队列中,再在操作空白阶段从事件队列中侦测出磨损平衡操作并执行,显然磨损平衡操作和存储设备的读写擦操作命令不会同时进行,如此不会占用用户的擦除时间,在用户完成正常的读写擦操作后,控制装置通过自动检测和处理来完成磨损平衡的全部操作,减少了用户操作等待时间,提高了存储设备系统性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种存储设备的控制方法的流程图;
图2是本发明实施例提供的一种存储设备的控制装置的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下将参照本发明实施例中的附图,通过实施方式清楚、完整地描述本发明的技术方案,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例提供的一种存储设备的控制方法的流程图,该存储设备可选为任意集成有存储模块的芯片或器件,例如集成有闪存颗粒的固态硬盘,在其他实施例中还可选该存储设备为其他集成有存储模块的器件。在此,存储设备包括存储模块,存储模块包括多个物理块和事件队列,存储模块以物理块为单元进行数据写入。本实施例中集成在存储设备的控制装置可执行该控制方法,该控制装置采用软件和/或硬件的方式实现。
本实施例提供的存储设备的控制方法包括:
步骤110、如果检测到物理块的擦除次数大于或等于第一擦除阈值,将磨损平衡操作添加到事件队列中。
本实施例中,对于存储设备中所有的物理块,控制装置中存储有每个物理块的擦除次数,并且控制装置在每次操作之后会及时更新每个物理块的擦除次数。控制装置检测到物理块的擦除次数大于或等于第一擦除阈值时,说明存储设备可以执行磨损平衡操作。本实施例中,无需立即执行磨损平衡操作,而是将磨损平衡操作作为一次事件记录在事件队列中,后续执行。需要说明的是,本实施例的控制装置为事件驱动模式,其通过事件队列实现,事件队列中包括多个事件,这些事件在空闲时间进行执行。
需要说明的是,第一擦除阈值是与物理块擦除次数相关的参数,其目的在于使得物理块擦除次数均衡,因此第一擦除阈值可以是预先设定的固定值,也可以是随着物理块擦除次数而变化的不定值。例如,可选第一擦除阈值等于存储模块中多个物理块的擦除次数均值,即存储设备中各个物理块的擦除次数求和再求平均值得出的数值即为第一擦除阈值。还可选第一擦除阈值等于(m+n)/2,m为存储设备中物理块的最大擦除次数,n为存储设备中物理块的最小擦除次数。还可选第一擦除阈值为k,k为固定值。在保证能够达到物理块的均衡使用的基础上,可合理设定第一擦除阈值。
可选的,检测到物理块的擦除次数大于或等于第一擦除阈值之前,还包括:接收第一操作命令并确定第一操作命令对应的物理块,再检测该物理块的擦除次数是否大于或等于第一擦除阈值。本实施例中第一操作命令可以是读操作、写操作或擦除操作等操作命令。控制装置根据第一操作命令可以确定该命令对应的物理块,然后检测该物理块的擦除次数是否大于或等于第一擦除阈值。在此将存储设备接收到操作命令作为检测物理块擦除次数的触发条件的目的在于,避免存储设备重复检测擦除次数以将磨损平衡事件记录在事件队列中,占用用户操作时间。
步骤120、在操作空白阶段,如果检测到事件队列中存在磨损平衡操作,执行该磨损平衡操作。
本实施例中,将磨损平衡操作记录到事件队列中后,控制装置继续执行当前操作命令。操作命令执行结束后,控制装置检测到系统处于空闲时段即操作空白阶段,再检测事件队列中是否有磨损平衡操作这一事件,如果有,则控制装置执行磨损平衡操作。显然,操作空白阶段是指存储设备无操作命令执行的时段,此时存储设备系统处于空闲状态,控制装置侦测到磨损平衡操作事件并在该操作空白阶段执行即后台进行执行,不占用存储设备的任意操作命令执行事件。执行磨损平衡操作的过程与现有技术类似,包括物理块数据交换和物理块擦除,具体过程在此不再赘述。
可选的,确定操作空白阶段的具体执行过程为:将第一操作命令执行完成之后到第二操作命令开始执行之前的时段确定为操作空白阶段,第一操作命令与第二操作命令为存储设备接收到的相邻两次操作命令。本实施例中,控制装置执行完一个操作命令后,会检测是否有新命令输入,若无,则将第一操作命令执行完成之后到第二操作命令开始执行之前的时段确定为操作空白阶段,用于执行磨损平衡操作。需要说明的是,若存储设备接收到第二操作命令且磨损平衡操作事件未执行完成,则可以优先执行磨损平衡操作,再执行第二操作命令。
本实施例中,采用后台执行磨损平衡操作的方法,如果检测到物理块的擦除次数大于或等于第一擦除阈值,将磨损平衡操作添加到事件队列中,在操作空白阶段,如果检测到事件队列中存在磨损平衡操作,执行该磨损平衡操作。本实施例中,触发磨损平衡操作事件后先记录到事件队列中,再在操作空白阶段从事件队列中侦测出磨损平衡操作并执行,显然磨损平衡操作和存储设备的读写擦操作命令不会同时进行,如此不会占用用户的擦除时间,在用户完成正常的读写擦操作后,控制装置通过自动检测和处理来完成磨损平衡的全部操作,减少了用户操作等待时间,提高了存储设备系统性能。
基于同一发明构思,本发明实施例还提供了一种存储设备的控制装置,该控制装置可执行上述任意实施例所述的控制方法。存储设备包括存储模块,存储模块包括多个物理块和事件队列。
本实施例提供的存储设备的控制装置包括:事件确定模块210,用于如果检测到物理块的擦除次数大于或等于第一擦除阈值,将磨损平衡操作添加到事件队列中;事件执行模块220,用于在操作空白阶段,如果检测到事件队列中存在磨损平衡操作,执行该磨损平衡操作。
可选的,事件执行模块220还用于将第一操作命令执行完成之后到第二操作命令开始执行之前的时段确定为操作空白阶段,第一操作命令与第二操作命令为存储设备接收到的相邻两次操作命令。
可选的,该控制装置还包括:检测模块,用于接收第一操作命令并确定第一操作命令对应的物理块,再检测该物理块的擦除次数是否大于或等于第一擦除阈值。需要说明的是,检测模块执行完成后,再执行事件确定模块210。
本实施例中,磨损平衡Wear leveling的核心思想是平衡设备端的所有物理块的擦写次数,达到物理块的均衡使用,以提高设备端物理块的使用寿命。通过该机制使得数据每次被写入到内存中的不同物理块中,而不是一直写入内存中的同一位置,如此可以最大限度地使用设备物理块,尽量减少了损耗程度,延长设备的最长使用期限。本实施例中磨损平衡主要是指动态磨损平衡。
现有技术中,动态磨损平衡是在用户执行擦或写操作的过程中完成,这会占用用户的擦除操作时间,等待时间变长,降低了系统性能。
本实施例中,将Dynamic wear leveling操作放在设备端后台中执行,不占用用户正常的擦写时间。具体的,设备端后台操作为事件驱动模式,其通过事件队列实现。在设备端后台存在wear leveling的监控器和处理器,一旦磨损平衡触发条件满足,存储设备中的闪存转换层FTL会将磨损平衡操作放置在事件队列中,那么在系统空闲时监控器就会侦测到事件队列中的wear leveling事件,之后交给处理器进行处理,即磨损平衡是在后台完成的。在此监控器和处理器可集成在控制装置中。采用后台处理磨损平衡的好处是不占用用户擦写操作的等待时间,在用户完成正常的擦写操作后,后台通过自动检测和处理来完成磨损平衡的全部操作,提高了系统的整体性能。
基于同一发明构思,本发明实施例还提供了一种存储设备,存储设备包括存储模块和如上任意实施例所述的控制装置,控制装置与存储模块电连接。可选存储模块为与非闪存NAND Flash,存储设备为固态硬盘SSD。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整、相互结合和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (7)
1.一种存储设备的控制方法,其特征在于,所述存储设备包括存储模块,所述存储模块包括多个物理块和事件队列,该控制方法包括:
如果检测到所述物理块的擦除次数大于或等于第一擦除阈值,将磨损平衡操作添加到所述事件队列中,将所述磨损平衡操作记录到所述事件队列中之后,继续执行当前操作命令;
在操作空白阶段,如果检测到所述事件队列中存在所述磨损平衡操作,在后台执行该磨损平衡操作;
其中,所述磨损平衡操作采用事件驱动模式并通过所述事件队列执行,所述事件队列中包括多个事件。
2.根据权利要求1所述的控制方法,其特征在于,确定所述操作空白阶段的具体执行过程为:
将第一操作命令执行完成之后到第二操作命令开始执行之前的时段确定为所述操作空白阶段,所述第一操作命令与所述第二操作命令为所述存储设备接收到的相邻两次操作命令。
3.根据权利要求1所述的控制方法,其特征在于,检测到所述物理块的擦除次数大于或等于第一擦除阈值之前,还包括:
接收第一操作命令并确定所述第一操作命令对应的物理块,再检测该物理块的擦除次数是否大于或等于所述第一擦除阈值。
4.一种存储设备的控制装置,其特征在于,所述存储设备包括存储模块,所述存储模块包括多个物理块和事件队列,该控制装置包括:
事件确定模块,用于如果检测到所述物理块的擦除次数大于或等于第一擦除阈值,将磨损平衡操作添加到所述事件队列中,将所述磨损平衡操作记录到所述事件队列中之后,继续执行当前操作命令;
事件执行模块,用于在操作空白阶段,如果检测到所述事件队列中存在所述磨损平衡操作,在后台执行该磨损平衡操作;
其中,所述磨损平衡操作采用事件驱动模式并通过所述事件队列执行,所述事件队列中包括多个事件。
5.根据权利要求4所述的控制装置,其特征在于,所述事件执行模块还用于将第一操作命令执行完成之后到第二操作命令开始执行之前的时段确定为所述操作空白阶段,所述第一操作命令与所述第二操作命令为所述存储设备接收到的相邻两次操作命令。
6.根据权利要求4所述的控制装置,其特征在于,还包括:检测模块,用于接收第一操作命令并确定所述第一操作命令对应的物理块,再检测该物理块的擦除次数是否大于或等于所述第一擦除阈值。
7.一种存储设备,其特征在于,所述存储设备包括存储模块和如权利要求4-6任一项所述的控制装置,所述控制装置与所述存储模块电连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910412953.1A CN111949561B (zh) | 2019-05-17 | 2019-05-17 | 一种存储设备及其控制方法和控制装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910412953.1A CN111949561B (zh) | 2019-05-17 | 2019-05-17 | 一种存储设备及其控制方法和控制装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949561A CN111949561A (zh) | 2020-11-17 |
CN111949561B true CN111949561B (zh) | 2024-03-29 |
Family
ID=73336810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910412953.1A Active CN111949561B (zh) | 2019-05-17 | 2019-05-17 | 一种存储设备及其控制方法和控制装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949561B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354681A (zh) * | 2008-09-23 | 2009-01-28 | 美商威睿电通公司 | 存储器系统、非易失性存储器的磨损均衡方法及装置 |
CN101777026A (zh) * | 2009-01-09 | 2010-07-14 | 成都市华为赛门铁克科技有限公司 | 一种存储管理方法、硬盘及存储系统 |
CN102789403A (zh) * | 2012-07-11 | 2012-11-21 | 忆正科技(武汉)有限公司 | 一种闪存控制器及其控制方法 |
CN103914392A (zh) * | 2014-04-03 | 2014-07-09 | 深圳市硅格半导体有限公司 | 闪存的空块回收方法及装置 |
CN109582215A (zh) * | 2017-09-29 | 2019-04-05 | 华为技术有限公司 | 硬盘操作命令的执行方法、硬盘及存储介质 |
-
2019
- 2019-05-17 CN CN201910412953.1A patent/CN111949561B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354681A (zh) * | 2008-09-23 | 2009-01-28 | 美商威睿电通公司 | 存储器系统、非易失性存储器的磨损均衡方法及装置 |
CN101777026A (zh) * | 2009-01-09 | 2010-07-14 | 成都市华为赛门铁克科技有限公司 | 一种存储管理方法、硬盘及存储系统 |
CN102789403A (zh) * | 2012-07-11 | 2012-11-21 | 忆正科技(武汉)有限公司 | 一种闪存控制器及其控制方法 |
CN103914392A (zh) * | 2014-04-03 | 2014-07-09 | 深圳市硅格半导体有限公司 | 闪存的空块回收方法及装置 |
CN109582215A (zh) * | 2017-09-29 | 2019-04-05 | 华为技术有限公司 | 硬盘操作命令的执行方法、硬盘及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111949561A (zh) | 2020-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8560759B1 (en) | Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency | |
CN108958907B (zh) | 用于数据存储系统的上下文感知动态命令调度 | |
US10372619B2 (en) | Data backup method, data recovery method and storage controller | |
TWI628542B (zh) | 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置 | |
KR101573591B1 (ko) | 메모리 시스템 제어기를 구비하는 장치 및 관련 방법 | |
CN109582227B (zh) | 固态硬盘写入方法、装置、计算机设备和存储介质 | |
US8254172B1 (en) | Wear leveling non-volatile semiconductor memory based on erase times and program times | |
TWI512476B (zh) | 用以控制非依電性記憶體裝置中之操作之方法以及相關電腦程式產品、電腦可讀儲存媒體、記憶體裝置、及主機裝置 | |
US20120185656A1 (en) | Systems and Methods for Scheduling a Memory Command for Execution Based on a History of Previously Executed Memory Commands | |
US9851904B2 (en) | Garbage collection while maintaining predetermined writing speed | |
CN114328281B (zh) | 固态硬盘异常掉电处理方法、装置、电子设备及介质 | |
US10990325B2 (en) | Write control method, associated data storage device and controller thereof | |
US11204864B2 (en) | Data storage devices and data processing methods for improving the accessing performance of the data storage devices | |
US20150149741A1 (en) | Storage System and Control Method Thereof | |
CN111400201B (zh) | 快闪存储器的数据整理方法、存储装置及控制电路单元 | |
KR20170098900A (ko) | 트랜잭션 처리 방법, 장치 및 컴퓨터 시스템 | |
TW201703048A (zh) | 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
KR20160074025A (ko) | 데이터 저장 장치의 동작 방법 | |
CN107239225B (zh) | 存储器管理方法、存储器储存装置及存储器控制电路单元 | |
CN107025063B (zh) | 内存管理方法、内存储存装置及内存控制电路单元 | |
TW202028981A (zh) | 資料儲存裝置及避免韌體失效之方法 | |
CN104391755A (zh) | 嵌入式多媒体卡eMMC芯片异常的处理方法和装置 | |
CN111949569A (zh) | 一种存储设备及其控制方法和控制装置 | |
TW202242664A (zh) | 以局部清理操作來進行垃圾回收的方法與相關控制器和儲存系統 | |
CN108334383B (zh) | 一种信息处理方法及电子设备 |
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 | ||
CB02 | Change of applicant information |
Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094 Applicant after: Zhaoyi Innovation Technology Group Co.,Ltd. Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing Applicant before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |