CN112783424A - 存储装置及其控制方法 - Google Patents
存储装置及其控制方法 Download PDFInfo
- Publication number
- CN112783424A CN112783424A CN201911164368.0A CN201911164368A CN112783424A CN 112783424 A CN112783424 A CN 112783424A CN 201911164368 A CN201911164368 A CN 201911164368A CN 112783424 A CN112783424 A CN 112783424A
- Authority
- CN
- China
- Prior art keywords
- storage device
- internal data
- data
- move
- memory
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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
-
- 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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Vehicle Body Suspensions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种存储装置的控制方法,该控制方法可包括以下步骤:由存储装置的存储装置控制器确定存储装置是否必须移动内部数据;当确定存储装置必须移动内部数据时,由存储装置控制器基于至少一些内部数据移动请求和存储装置中的空闲页面的数量来决定数据移动分配比率;并且由存储装置控制器分配一个或多个编程时间,以完成与至少一些内部数据移动请求相对应的第一数量的内部数据移动操作以及第二数量的主机数据写入操作,使得第一数量与第二数量的比率与数据移动分配比率一致。
Description
相关申请的交叉引用
本申请要求于2019年11月5日向美国专利和商标局提交的申请号为16/674,893的美国申请的优先权,其通过引用整体并入本文。
技术领域
各个实施例总体涉及一种电子装置,且更特别地,涉及一种存储装置及其控制方法。
背景技术
因为非易失性存储装置即使在断电后也保留所存储的数据,并且具有小体积和低功耗,所以非易失性存储器装置,例如基于闪速存储器的存储装置被广泛用于电子装置中。此外,诸如固态驱动器的非易失性存储装置也已安装在台式计算机、笔记本电脑和服务器类型计算机系统中。
当电子装置执行应用程序来存储诸如文本、数据、照片、音频或视频的各种数据时,电子装置通常需要在短时间内向存储装置提供多个数据写入请求。存储装置的控制器可根据电子装置(即,主机)的写入请求来生成写入命令,并且执行所生成的写入命令。存储装置的控制器可使用命令队列来存储主机的写入命令。命令队列中存储的主机的写入命令可顺序地输出到存储装置的存储器,以执行数据写入操作。在一些情况下,存储装置需要移动内部数据。当存储装置执行移动内部数据的操作时,该操作可能对来自电子装置的写入命令的执行效率造成影响,从而使电子装置的写入性能劣化和不稳定。在这种情况下,写入性能的劣化和不稳定可反映在应用程序的响应流畅性或应用程序的服务效率上。
发明内容
各个实施例涉及一种应用于具有存储器的装置的存储装置、当执行内部数据移动操作时能够使主机的数据写入效率稳定的方法、存储装置的控制方法以及存储介质。
在实施例中,一种存储装置的控制方法可包括以下步骤:(a)由存储装置控制器确定存储装置是否必须移动内部数据;(b)当确定存储装置必须移动内部数据时,由存储装置控制器基于至少一些内部数据移动请求和存储装置中的空闲页面的数量来决定数据移动分配比率;并且(c)由存储装置控制器分配一个或多个编程时间,以完成与至少一些内部数据移动请求相对应的第一数量的内部数据移动操作以及第二数量的主机数据写入操作,使得第一数量与第二数量的比率与数据移动分配比率一致,其中第一数量大于第二数量。
存储装置控制器可具有用于存储内部数据移动请求的数据移动请求序列,内部数据移动请求中的每个可对应于存储装置中的、内部数据待移动的存储器区域,并且内部数据待移动的存储器区域可以是待执行垃圾收集、损耗均衡、块回收或运行坏块处理的存储器区域。
存储装置控制器可具有用于存储内部数据移动请求的数据移动请求序列(流),并且内部数据移动请求中的每个可对应于存储装置中的、内部数据待移动的存储器区域。当在步骤(b)中确定存储装置必须移动内部数据时,存储装置控制器可基于数据移动请求序列中的至少一些内部数据移动请求、所需空闲块的数量和空闲页面的数量来决定数据移动分配比率。
可基于数据移动请求序列中的具有相对较高优先级的至少一些内部数据移动请求、所需空闲块的数量和空闲页面的数量来决定数据移动分配比率。
存储装置控制器可具有用于存储内部数据移动请求的数据移动请求序列,并且内部数据移动请求中的每个可对应于存储装置中的、内部数据待移动的存储器区域。步骤(b)可包括以下步骤:当确定存储装置必须移动内部数据时,存储装置控制器基于数据移动请求序列中的内部数据移动请求之中的、具有相对较高优先级的至少一些内部数据移动请求以及所需空闲块的数量,来决定数据待移动的页面的总数量;并且基于该数据待移动的页面的总数量和空闲页面的数量来决定数据移动分配比率。
存储装置可包括多个存储器芯片。步骤(c)可包括以下步骤:根据并行模式,由存储装置控制器分配一个或多个编程时间,以使用存储装置中的第一数量的存储器芯片来完成第一数量的内部数据移动操作,并且使用存储装置中的第二数量的存储器芯片来完成第二数量的主机数据写入操作,使得第一数量与第二数量的比率以及第一数量的存储器芯片和第二数量的存储器芯片的比率与数据移动分配比率一致,其中第一数量大于第二数量,并且第一数量的存储器芯片大于第二数量的存储器芯片。
一个或多个编程时间可包括第一数量的编程时间和第二数量的编程时间。步骤(c)可包括以下步骤:由存储装置控制器分配第一数量的编程时间来完成第一数量的内部数据移动操作,并且分配第二数量的编程时间来完成第二数量的主机数据写入操作,使得第一数量与第二数量的比率与数据移动分配比率一致,其中第一数量大于第二数量,并且第一数量的编程时间大于第二数量的编程时间。
存储装置可包括多个存储器芯片。步骤(c)可包括以下步骤:由存储装置控制器决定内部数据移动操作和主机数据写入操作的操作模式,其中操作模式是并行模式和非并行模式中的一种;并且在该操作模式下,分配一个或多个编程时间来完成第一数量的内部数据移动操作和第二数量的主机数据写入操作,使得第一数量与第二数量的比率与数据移动分配比率一致,其中第一数量大于第二数量。
在实施例中,提供了一种存储用于控制存储装置的程序代码的非暂时性计算机可读存储介质,当由处理器执行该程序代码时,使存储装置执行包括以下的操作:由存储装置控制器确定存储装置是否必须移动内部数据;当确定存储装置必须移动内部数据时,由存储装置控制器基于至少一些内部数据移动请求和存储装置中的空闲页面的数量来决定数据移动分配比率;并且由存储装置控制器分配一个或多个编程时间,以完成与至少一些内部数据移动请求相对应的第一数量的内部数据移动操作以及第二数量的主机数据写入操作,使得第一数量与第二数量的比率与数据移动分配比率一致,其中第一数量大于第二数量。
在实施例中,一种存储装置可包括:存储器;以及存储装置控制器,联接到存储器,并且被配置成控制存储器以执行对存储器的数据访问,其中存储装置控制器确定存储装置是否必须移动内部数据;当确定存储装置必须移动内部数据时,基于至少一些内部数据移动请求和存储装置中的空闲页面的数量来决定数据移动分配比率;并且分配一个或多个编程时间来完成与至少一些内部数据移动请求相对应的第一数量的内部数据移动操作和第二数量的主机数据写入操作,使得第一数量与第二数量的比率与数据移动分配比率一致,其中第一数量大于第二数量。
存储装置控制器可具有用于存储内部数据移动请求的数据移动请求序列,内部数据移动请求中的每个可对应于存储装置中的、内部数据待移动的存储器区域,并且该内部数据待移动的存储器区域可以是待执行垃圾收集、损耗均衡、块回收或运行坏块处理的存储器区域。
存储装置控制器可具有用于存储内部数据移动请求的数据移动请求序列,并且内部数据移动请求中的每个可对应于存储装置中的、内部数据待移动的存储器区域。当确定存储装置必须移动内部数据时,存储装置控制器可基于数据移动请求序列中的至少一些内部数据移动请求、所需空闲块的数量和空闲页面的数量来决定数据移动分配比率。
存储装置控制器可基于数据移动请求序列中的具有相对较高优先级的至少一些内部数据移动请求、所需空闲块的数量和空闲页面的数量来决定数据移动分配比率。
存储装置控制器可具有用于存储内部数据移动请求的数据移动请求序列,并且内部数据移动请求中的每个可对应于存储装置中的、内部数据待移动的存储器区域。当确定存储装置必须移动内部数据时,存储装置控制器基于数据移动请求序列中的内部数据移动请求之中的、具有相对较高优先级的至少一些内部数据移动请求以及所需空闲块的数量,来决定数据待移动的页面的总数量,并且基于该数据待移动的页面的总数量和空闲页面的数量来确定数据移动分配比率。
存储器可包括多个存储器芯片,并且根据并行模式,存储装置控制器可分配一个或多个编程时间,以使用存储装置中的第一数量的存储器芯片来完成第一数量的内部数据移动操作,并且使用存储装置中的第二数量的存储器芯片来完成第二数量的主机数据写入操作,使得第一数量与第二数量的比率以及第一数量的存储器芯片和第二数量的存储器芯片的比率与数据移动分配比率一致,其中第一数量大于第二数量,并且第一数量的存储器芯片大于第二数量的存储器芯片。
一个或多个编程时间可包括第一数量的编程时间和第二数量的编程时间,并且存储装置控制器可分配第一数量的编程时间来完成第一数据数量的内部数据移动操作,并且分配第二数量的编程时间来完成第二数据数量的主机数据写入操作,使得第一数量与第二数量的比率与数据移动分配比率一致,其中第一数量大于第二数量,并且第一数量的编程时间大于第二数量的编程时间。
存储器可包括多个存储器芯片,并且存储装置控制器可决定内部数据移动操作和主机数据写入操作的操作模式,即并行模式或非并行模式,并且根据操作模式,分配一个或多个编程时间来完成第一数量的内部数据移动操作和第二数量的主机数据写入操作,使得第一数量与第二数量的比率与数据移动分配比率一致,其中第一数量大于第二数量。
在实施例中,一种存储装置可包括:存储器,包括多个块,每个块包括多个页面;以及控制器,联接到存储器,适于:基于多个块之中的至少两个块中的、数据待移动的目标页面的数量和用于来自主机的写入数据的空闲页面的数量,来确定数据移动数量;基于数据移动数量来确定用于写入数据的编程时间和用于数据移动的数据移动时间;并且基于该数据移动时间来对该数量的目标页面执行数据移动。
根据以下结合附图的具体实施方式,本发明的这些和其它特征及优点对于本发明领域的技术人员将变得显而易见。
附图说明
图1是示出根据本发明的实施例的存储装置的框图。
图2是示出根据本发明的实施例的存储装置控制器的框图。
图3是示出根据本发明的实施例的存储装置的控制方法的流程图。
图4是示出根据本发明的实施例的数据移动请求序列的示图。
图5是示出图3的步骤S20的流程图。
图6是示出根据本发明的实施例的数据移动请求序列的示图。
图7是示出图3的步骤S30的流程图。
具体实施方式
为了理解本公开的目的、特征和效果,将参照附图通过各个实施例来详细描述本公开。
尽管示出和描述了本发明的各个实施例,但本领域普通技术人员将理解的是,在不脱离本发明的原理和精神的情况下,可在这些实施例中进行改变。
应当理解的是,附图是所描述装置的简化示意图,并且可能不包括公知的细节,以免模糊本发明的特征。
还应当注意的是,在不脱离本发明的范围的情况下,一个实施例中存在的特征可与另一实施例的一个或多个特征一起使用。
图1示出根据本公开的实施例的存储装置。图1的存储装置可实施下面将详细描述的图3、图5或图7的控制方法,并且实施当存储装置需要执行移动内部数据的操作时稳定主机的数据写入效率的各种方法。例如,存储装置可分配一个或多个编程时间来完成内部数据移动操作和主机数据写入操作,并且控制内部数据移动操作和主机数据写入操作的计数比率。因此,当存储装置执行移动内部数据的操作时,可减少关于使主机数据写入效率不稳定的影响。如图1所示,存储装置包括存储装置控制器100和存储器200。存储装置控制器100包括处理器110、缓冲器120、多个存储器通道(例如,130和131)以及对应于每个存储器通道的存储器通道控制器140。缓冲器120可利用易失性存储器或非易失性存储器来实施。存储器200包括多个存储器芯片(例如,201、202、211和212)。例如,存储器芯片是诸如NOR型存储器或NAND型存储器的闪速存储器,但本实施例不限于此。
存储装置控制器100可通过主机接口150与主机10通信来从主机10接收读取或写入请求。存储装置控制器100生成与主机100的读取请求或写入请求相对应的读取命令或写入命令。进一步地,存储装置控制器100将所生成的命令传送到对应于该命令的存储器通道(例如,130或131)的存储器通道控制器140。存储器通道控制器140用于控制一个或多个存储器芯片。例如,存储器通道控制器140将数据读取命令传送到任意一个存储器芯片,并且将根据数据读取命令读取的数据传送到存储装置控制器100,例如缓冲器120。存储装置控制器100将主机10所请求的数据传送到主机10。此外,存储器通道控制器140将根据数据写入命令而待被写入的数据存储到存储器芯片中。当存储装置控制器100控制存储器200的操作时,缓冲器120可由存储装置控制器100和存储器200使用,并且存储用于诸如读取操作、写入操作、编程操作和擦除操作的各种操作的数据。在图1中,多个存储器通道控制器140根据并行处理模式来执行读取操作或写入操作。另外,处理器110通过总线160电联接到存储器通道(例如,130和131)。然而,本公开不限于上述示例。例如,存储器通道控制器中的每个可利用逻辑电路或可编程电路来实施,或者以软件来实施并且由处理器110执行。再例如,存储装置控制器100可被实施为仅具有一个存储器通道的存储器通道控制器140。
主机接口150可处理从主机10提供的命令和数据,并且通过诸如以下的各种接口协议中的一种或多种与主机10通信:通用串行总线(USB)、多媒体卡(MMC)、外围组件互连(PCI)-高速(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、串列SCSI(SAS)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
图2是示出根据本发明的实施例的存储装置控制器300的框图。图2示出以固件或软件实施的存储装置控制器300的结构。例如,存储装置控制器300包括主机接口层310、闪速存储器转换层320和闪速存储器接口层330。用于与主机10通信的主机接口层310用作主机10与存储装置控制器300之间的接口。闪速存储器转换层320用于管理读取、写入和擦除操作。闪速存储器转换层320还用于将逻辑地址(例如,逻辑块地址或逻辑页面地址)转换成与存储器200的存储器芯片201、202、211或212相对应的物理地址(例如,物理块地址或物理页面地址)。闪速存储器接口层330用于处理闪速存储器转换层320与存储器200之间的通信。例如,闪速存储器接口层330将命令从闪速存储器转换层320传送到存储器200。
存储装置控制器300可通过图1的硬件结构来实施。当将逻辑地址转换成物理地址时,闪速存储器转换层320参考并保护地址映射表。因为地址映射表包括大量的数据,所以闪速存储器转换层320将地址映射表的一些部分存储在高速缓存中。当转换所需的逻辑地址与物理地址之间的对应关系没有存储在高速缓存中时,闪速存储器转换层320通过更新高速缓存中的地址映射表的部分的内容来生成映射表读取命令。此外,当地址映射表被应用于诸如嵌入式MMC(eMMC)的存储器产品或其它存储器产品时,将地址映射表存储在存储器产品的存储器中。然而,本公开不限于这种示例。
存储装置控制器300控制对存储器200的各个操作,例如写入操作、读取操作、编程操作和擦除操作。例如,存储装置控制器300可根据主机10的写入请求来生成写入命令,并且执行所生成的写入命令。存储装置控制器300可使用命令队列来存储主机10的写入命令。存储装置控制器300可通过顺序处理命令队列中存储的、主机10的写入命令来执行数据写入操作。
特别地,存储装置控制器300控制应用于闪速存储器转换层320的固件算法。例如,存储装置控制器300可实施包括垃圾收集(GC)、损耗均衡(WL)、块回收(BR)和运行坏块处理(RBB)的算法。因此,当执行GC、WL、BR和RBB中的任意一种算法时,存储装置都需要移动内部数据。
当存储装置移动内部数据或写入主机数据时,写入性能可能劣化或不稳定。当存储装置控制器300移动大量的内部数据时,该操作可能对主机10的写入命令的执行效率造成影响,从而劣化电子装置的写入性能。另一方面,当待需要由存储装置控制器300处理的内部数据移动请求相对较少或没有时,写入性能提高。为了稳定主机数据的写入效率,存储装置的控制方法的实施例如下。
图3是根据本发明的实施例的存储装置的控制方法的流程图。图3所示的实施例可应用于具有存储器的装置,并且当存储装置需要执行内部数据的移动操作(或内部数据移动操作)时,实施能够稳定主机数据的写入效率的各种方法。参照图1和图3,存储装置的控制方法包括步骤S10至S30。
在步骤S10中,存储装置控制器100确定存储装置是否必须执行内部数据移动操作。例如,存储装置控制器100根据诸如以下的条件来确定存储装置是否必须执行内部数据移动操作:是否存在内部数据的移动请求(或内部数据移动请求)、待移动的内部数据的量是否已达到阈值、或者内部数据移动操作的优先级是否已达到预定条件。
在步骤S20中,当确定存储装置必须执行内部数据移动操作时,存储装置控制器100基于至少一些内部数据移动请求和存储装置中的空闲页面的数量来确定数据移动分配比率。例如,数据移动分配比率是基于一些内部数据移动请求和存储装置中的空闲页面的数量的函数。
在步骤S30中,存储装置控制器100分配一个或多个编程时间来完成具有第一数量的内部数据移动操作以及具有第二数量的主机数据写入操作,其中该第一数量对应于至少一些上述的内部数据移动请求,使得第一数量与第二数量的比率与数据移动分配比率一致。第一数量大于第二数量。
在步骤S30中,随着第一数量与第二数量的比率被控制为与在步骤S20中决定的数据移动分配比率一致,可平均地分配和使用存储器200的空闲存储器空间。因此,当执行内部数据移动操作和主机数据写入操作时,可以在稳定主机数据的写入效率的同时,减少将使写入性能不稳定的可能性。
在图3的方法中,当步骤S10的确定结果为否时,在步骤S15中执行其它进程。例如,在步骤S15中,存储装置控制器100可暂时停止该方法,不控制内部数据移动操作和主机数据写入操作的计数(或数量),或者在暂时停止该方法之后,重复步骤S10。此外,基于在步骤S20中确定的数据移动分配比率,存储装置控制器100可重复步骤S30以执行待处理的内部数据移动请求和主机数据写入请求。存储装置控制器100可从步骤S10或S20开始来重复图3的方法。然而,本实施例不限于这些示例。
在下文中,将图3中的步骤S10至S30描述如下。
在实施例中,存储装置控制器100可具有数据移动请求序列。数据移动请求序列用于包括一个或多个内部数据移动请求。内部数据移动请求中的每个对应于存储装置中的、内部数据待移动的存储器区域。图4是示出根据本发明的实施例的数据移动请求序列400的示图。在数据移动请求序列400中,块401至410可代表数据移动请求序列400中的内部数据移动请求。在一些情况下,块401至410可代表存储了对应于内部数据移动请求的数据的存储器区域和/或数据待移动的存储器区域。内部数据移动请求是通过执行垃圾收集(GC)、损耗均衡(WL)、块回收(BR)和运行坏块处理(RBB)中的任意一种算法而生成的。块401至410可被实施为数据移动请求序列400的节点。节点中的每个可对应于内部数据待移动的存储器区域(例如,存储块)。例如,块401可对应于内部数据由于运行坏块处理而待移动的存储器区域。块402、403、405和408至410对应于内部数据由于GC而待移动的存储器区域。块404和407对应于内部数据由于BR而待移动的存储器区域。块406可对应于内部数据由于WL而待移动的存储器区域。在对与块401至410相对应的存储器区域执行了内部数据移动操作之后,与块401至410相对应的存储器区域的有效数据可移动到新的存储器区域。因此,可释放存储块或页面以供后续使用。此外,存储装置控制器100可基于内部数据被移动的存储器区域的重要性,以优先级的降序来将不同的优先级应用于所存储的内部数据移动请求。例如,在图4中,箭头PT指示数据移动请求序列400中的靠近左侧的块具有较高优先级,而数据移动请求序列400中的靠近右侧的块具有较低优先级。然而,由箭头PT的方向指示的块的优先级仅是用于描述示例,并且本实施例不限于这种示例。
在实施例中,当在图3的步骤S20中确定了存储装置必须执行内部数据移动操作时,存储装置控制器100根据数据移动请求序列中的至少一些内部数据移动请求、所需空闲块的数量和空闲页面的数量来确定数据移动分配比率。例如,数据移动分配比率是基于数据移动请求序列中的至少一些内部数据移动请求、所需空闲块的数量和空闲页面的数量的函数。
在实施例中,根据数据移动请求序列中的具有相对较高优先级的至少一些内部数据移动请求、所需空闲块的数量和空闲页面的数量来决定步骤S20中的数据移动分配比率。如图4所示,与数据移动请求序列400中的块401、402和403相对应的内部数据移动请求是具有相对较高优先级的内部数据移动请求,它们需要优先处理。与具有相对较高优先级的内部数据移动请求相对应的存储器区域(例如,存储块)可能包括有效页面。因此,可将数据移动分配比率设置为基于用于数据移动请求序列中的具有相对较高优先级的至少一些内部数据移动请求的有效页面的总数量、所需空闲块的数量和空闲页面的数量的函数。
图5是示出图3中的步骤S20的流程图。如图5所示,步骤S20的实施例包括如下步骤S21和S23。
在步骤S21中,当确定存储装置必须执行内部数据移动操作时,存储装置控制器100根据数据移动请求序列中的内部数据移动请求之中的、具有相对较高优先级的至少一些内部数据移动请求和所需空闲块的数量来确定数据待移动的页面的总数量。
在步骤S23中,存储装置控制器100根据数据待移动的页面的总数量和空闲页面的数量来决定数据移动分配比率。
例如,在步骤S21中,数据待移动的页面的总数量是基于数据移动请求序列中的、具有相对较高优先级的至少一些内部数据移动请求和所需空闲块的数量的函数。该函数可由等式1-1和等式1-2来设置和定义。
IPC1+IPC2+…+IPCN≥NrRequiredFreeBlocks*PagesPerBlock(等式1-1)
TotalMovedPages=(N*PagesPerBlock)-(IPC1+IPC2+…+IPCN)(等式1-2)
在等式1-1和1-2中,NrRequiredFreeBlocks、PagesPerBlock和TotalMovedPages分别代表所需空闲块的数量、每存储器区域(即,存储块)的页面数量以及数据待移动的页面的总数量。等式1-1的右侧是与所需空闲块的数量相对应的页面数量。等式1-1的左侧是与数据移动请求序列中的具有相对较高优先级的内部数据移动请求相对应的存储器区域中的无效页面计数IPCi的总和,其中i是范围为从1至N的整数。例如,参照图4,存储装置控制器100可根据优先级的降序来在数据移动请求序列400中选择N个内部数据移动请求。进一步地,存储装置控制器100可计算与该N个内部数据移动请求相对应的存储器区域中的无效页面计数IPCi的总和。当无效页面计数IPCi的总和满足等式1-1时,可确定N的值。然后,存储装置控制器100可使用等式1-2来获取数据待移动的页面的总数量。例如,当无效页面计数IPCi的总和满足等式1-1时,这指示存储装置控制器100可对与该N个内部数据移动请求相对应的存储器区域执行内部数据移动操作,然后释放与所需空闲块的数量(NrRequiredFreeBlocks)相对应的存储器区域(例如,存储块)的存储器空间。
例如,在步骤S23中,可将由NrMoves代表的数据移动分配比率设置为通过将数据待移动的页面的总数量(TotalMovePages)除以空闲页面的数量(NrFreePages)而获得的值,并且表示为下面的等式2。
NrMoves=TotalMovePages/NrFreePages(等式2)
重新参照图3,在步骤S30中,随着存储装置控制器100控制将第一数量与第二数量的比率与在图5的步骤S23的实施例中决定的数据移动分配比率相一致,可平均地分配和使用存储器200的空闲存储器空间。因此,当执行内部数据移动操作和主机数据写入操作时,可以在稳定主机数据的写入效率的同时,减少将使写入性能不稳定的可能性。
当存储装置联接到主机10并且通过存储装置控制器100访问存储器200的数据时,存储装置控制器100可根据实际操作来更新数据移动请求序列、所需空闲存储块的数量和空闲页面的数量。因此,存储装置控制器100通过执行图3中存储装置的控制方法而获得的数据移动分配比率也可根据存储装置的操作而改变。
在一些实施例中,所需空闲块的数量是存储装置控制器100根据与存储器200相对应的多个存储器区域的使用而预期保持的存储器区域的数量。例如,存储装置控制器100可根据存储装置的操作,基于性能条件、当前时刻剩余的空闲块数量或其它参数来决定所需空闲块的数量。例如,存储装置控制器100可决定待布置的空闲存储器区域的数量(例如,100或50个块),或者决定需要在存储器200中留下多少空闲块。另外,空闲页面的数量是可用于存储装置中的主机10的数据写入操作的空闲存储器页面的数量。
在上述实施例或其它实施例中,存储装置控制器100可使用图4所示的数据移动请求序列400来直接存储内部数据移动请求,以便实施图3的控制方法。然而,本实施例不限于这些示例。在一些其它实施例中,存储装置控制器100可使用图6所示的方法来实施数据移动请求序列,以便实施图3的控制方法。如图6所示,存储装置控制器100使用多个队列510、530、550和570来存储不同类型的内部数据移动请求,并且通过队列510、530、550和570来获取数据移动请求序列600。队列530用于存储通过WL生成的内部数据移动请求。队列550用于存储通过BR生成的内部数据移动请求。队列570用于存储通过RBB生成的内部数据移动请求。在图6中,块511至518、531至533、551至555及571对应于内部数据移动请求,并且通过执行GC、WL、BR和RBB中的任意一种算法来生成数据移动请求序列。块511至518、531至533、551至555及571可被实施为队列510、530、550和570的节点。节点中的每个可对应于内部数据需要移动的存储器区域(例如,存储块)。
存储装置控制器100可基于内部数据待移动的存储器区域的重要性,以优先级的降序来将不同的优先级应用于所存储的内部数据移动请求。例如,在图6中,箭头PT指示队列510、530、550和570和数据移动请求序列600中的靠近左侧的块具有较高的优先级,以及指示队列510、530、550和570和数据移动请求序列600中的靠近右侧的块具有较低的优先级。然而,由箭头PT的方向指示的块的优先级仅是用于描述示例,并且本实施例不限于这种示例。存储装置控制器100可通过基于队列的分类应用不同的策略或条件,来将不同的优先级应用于队列中的节点。
在与GC相关的队列510的情况下,存储装置控制器100根据与内部数据移动请求相对应的存储器区域的无效页面计数(IPC),来向内部数据移动请求应用优先级。例如,随着相应的IPC越高或相应的有效页面计数越低,应用越高的优先级。
在与WL相关的队列530中,存储装置控制器100根据与内部数据移动请求相对应的存储器区域的擦除计数,来向内部数据移动请求应用优先级。例如,随着相应的擦除计数越低时,应用越高的优先级。
在与BR相关的队列550中,存储装置控制器100根据与内部数据移动请求相对应的存储器区域的读取计数,来向内部数据移动请求应用优先级。例如,随着相应的读取计数越高时,应用越高的优先级。
在与RBB相关的队列570的情况下,在与内部数据移动请求相对应的存储器区域中存在坏存储器页面。因此,存储装置控制器100不需要设置优先级。
存储装置控制器100可向队列510、530、550和570应用优先级(或权重),或者单独地计算存储器区域的有效页面计数。存储装置控制器100可基于队列510、530、550和570中的具有相对较高优先级的节点,通过根据参数选择性地联接和排列有效页面计数来获取数据移动请求序列600。因此,存储装置控制器100可使用数据移动请求序列600来实施图3的控制方法。在本实施例中,可更详细地分类和处理内部数据移动请求和优先级。因此,图3的控制方法可优先处理对存储装置的耐久性重要或有益的内部数据移动请求。
在一些实施例中,图6所示的队列可进行合并,并且队列510、530、550和570中的任意两个或三个队列可合并到一个队列中。例如,队列530和550可合并成一个队列。在这种情况下,可以减少排队进程的复杂性。
重新参照图3,在步骤S30的一些实施例中,存储装置控制器100可使用并行模式或非并行模式来分配一个或多个编程时间,从而完成与至少一些上述的内部数据移动请求相对应的第一数量的内部数据移动操作以及第二数量的主机数据写入操作。
图1示出了多个存储器芯片包括在存储装置的存储器200中的情况。在实施例中,步骤S30可包括:根据并行模式,存储装置控制器100分配一个或多个编程时间,以使用存储装置中的第一数量的存储器芯片来完成第一数量的内部数据移动操作,并且使用存储装置中的第二数量的存储器芯片来完成第二数量的主机数据写入操作。因此,存储装置控制器100可控制将第一数量与第二数量的比率以及第一数量的存储器芯片与第二数量的存储器芯片的比率与数据移动分配比率一致。第一数量大于第二数量,并且第一数量的存储器芯片大于第二数量的存储器芯片。例如,当数据移动分配比率为3:1时,假设存储装置的存储器中包括四个存储器芯片,并且并行处理是可能的。在本实施例中,根据并行模式,存储装置控制器100分配一个或多个编程时间,以使用存储装置中的第一数量的存储器芯片(例如,三个芯片)来完成第一数量(例如,三个页面)的内部数据移动操作,并且使用存储装置中的第二数量的存储器芯片(例如,一个芯片)来完成第二数量(例如,一个页面)的主机数据写入操作。
在实施例中,一个或多个编程时间包括第一数量的编程时间和第二数量的编程时间。在一些实施例中,步骤S30包括:根据非并行模式,由存储装置控制器分配第一数量的编程时间来完成第一数量的内部数据移动操作,并且分配第二数量的编程时间来完成第二数量的主机数据写入操作,使得第一数量与第二数量的比率与数据移动分配比率一致。第一数量大于第二数量,并且第一数量的编程时间大于第二数量的编程时间。例如,当数据移动分配比率为3:1时,假设存储装置的存储器中包括四个存储器芯片。根据本实施例,存储装置控制器100分配第一数量的编程时间(例如,三个编程时间)以使用四个存储器芯片来完成第一数量(例如,3*4=12个页面)的内部数据移动操作。此外,存储装置控制器100分配第二数量的编程时间(例如,一个单独的编程时间)以使用四个存储器芯片来完成第二数量(例如,1*4=4个页面)的主机数据写入操作。
在步骤S30的另一实施例中,存储装置控制器100可基于存储装置中的存储器芯片的布置、估计的性能或其它参数来决定内部数据移动操作和主机数据写入操作的操作模式。进一步地,存储装置控制器100可分配一个或多个编程时间来完成与至少一些上述的内部数据移动请求相对应的第一数量的内部数据移动操作以及第二数量的主机数据写入操作。图7是示出图3中的步骤S30的流程图。如图7所示,步骤S30包括步骤S31和S33,并且存储装置包括多个存储器芯片。
在步骤S31中,存储装置控制器决定内部数据移动操作和主机数据写入操作的操作模式,并且该操作模式是并行模式或非并行模式。
在步骤S33中,根据操作模式,存储装置控制器分配一个或多个编程时间来完成第一数量的内部数据移动操作和第二数量的主机数据写入操作,使得第一和第二数量的比率与数据移动分配比率一致。第一数量大于第二数量。
在步骤S31中,存储装置控制器100可基于存储装置中的存储器芯片的布置、估计的性能或其它参数来决定内部数据移动操作和主机数据写入操作的操作模式。当数据移动分配比率为7:1并且存储装置的存储器中包括八个存储器芯片时,存储装置控制器可将操作模式决定为并行模式。因此,在相应的步骤S33中,可应用上述的与并行模式相关的实施例。根据并行模式,存储装置控制器100可分配一个编程时间,以使用存储装置中的第一数量(例如,7个)的存储器芯片来完成第一数量(例如,七个页面)的内部数据移动操作,并且使用存储装置中的第二数量(例如,1个)的存储器芯片来完成第二数量(例如,一个页面)的主机数据写入操作。
当数据移动分配比率为7:1并且存储装置的存储器中包括四个存储器芯片时,存储装置控制器可将操作模式确定为非并行模式。因此,在相应的步骤S33中,可应用上述的与非并行模式相关的实施例。存储装置控制器100可分配第一数量的编程时间(例如,七个编程时间)以使用四个存储器芯片来完成第一数量(例如,7*4=28个页面)的内部数据移动操作,并且分配第二数量的编程时间(例如,一个单独的编程时间)以使用四个存储器芯片来完成第二数量(例如,1*4=4个页面)的主机数据写入操作。
在步骤S31中,存储装置控制器100可根据估计的性能来决定内部数据移动操作和主机数据写入操作的操作模式。例如,当估计内部数据移动请求和主机数据写入请求的当前数量时,在通过非并行模式(或并行模式)获得的处理效率相对符合要求的情况下,存储装置控制器100将操作模式决定为非并行模式(或并行模式)。
在步骤S31中,存储装置控制器可基于存储装置中的存储器芯片的布置、估计的性能或其它参数来决定内部数据移动操作和主机数据写入操作的操作模式。
在与步骤S30相关的实施例中,在一个或多个所分配的编程时间期间,执行内部数据移动操作和主机数据写入操作的顺序不受限制。换言之,只要在一个或多个所分配的编程时间期间,第一数量与第二数量的比率与数据移动分配比率一致,可根据随机执行顺序来间歇地或同时地完成内部数据移动操作和主机数据写入操作。
在一些实施例中,计算装置(例如,图1或图2中示出的存储装置)包括非暂时性存储介质,该非暂时性存储介质存储程序代码,以用于控制存储装置的存储装置控制器以执行存储装置的控制方法。该方法包括图3的方法的实施例中的任意一个或其组合。例如,程序代码可包括用于实施图3的步骤S10至S30、图5的步骤S21和S23或图7的步骤S31和S33的一个或多个程序或程序模块,并且这些模块的程序代码可以协同操作,并且以适当的顺序或并行地执行。当计算装置执行这些程序代码时,计算装置可执行图3中的存储装置的控制方法的任意一个实施例。可读记录介质的示例可包括固件、只读存储器(ROM)、随机存取存储器(RAM)、存储卡、光信息存储介质、磁信息存储介质或其它随机类型的存储介质或存储器,并且本实施例不限于这些示例。
在与存储装置相关的实施例(图1和图2)中,处理器110、存储器通道控制器140和主机接口150中的一个或多个或者它们的组合可利用一个或多个电路来实施。例如,处理器110、存储器通道控制器140和主机接口150中的一个或多个或者它们的组合可利用处理器、数字信号处理器、微处理器、诸如现场可编程门阵列(FPGA)和专用集成电路(ASIC)类型电路的可编程集成电路中的一个或多个来实施,或者利用专用电路或模块来实施。存储器通道控制器也可被实施为软件,诸如进程、线程或程序模块或其它类型的软件。然而,本实施例不限于这些示例。
因此,这些实施例可应用于具有存储器的装置,并且提供一种用于当存储装置移动内部数据时,实施能够稳定主机的数据写入效率的各种方法的存储装置、存储装置的控制方法和存储介质。例如,存储装置可分配一个或多个编程时间来完成内部数据移动操作和主机数据写入操作,并且控制内部数据移动操作和主机数据写入操作的计数比率。因此,当存储装置执行内部数据移动操作时,可减少关于使主机数据写入效率不稳定的影响。
根据本实施例,可以提供一种存储装置及其控制方法,该存储装置及其控制方法可应用于具有存储器的装置,并且当执行内部数据移动操作时,实施能够稳定主机的数据写入效率的各种方法。例如,存储装置控制器可分配一个或多个编程时间来完成内部数据移动操作和主机数据写入操作,从而控制内部数据移动操作的数量与主机数据写入操作的数量的比率,从而当存储装置移动内部数据时减少关于使主机数据写入效率不稳定的影响。
尽管上面已经描述了各个实施例,但是本领域技术人员将理解,所描述的实施例仅为示例。因此,本文已描述的存储装置及其控制方法不应基于所描述的实施例而受到限制。
Claims (18)
1.一种存储装置的控制方法,包括:
由存储装置控制器确定所述存储装置是否必须移动内部数据;
当确定所述存储装置必须移动内部数据时,由所述存储装置控制器基于至少一些内部数据移动请求和所述存储装置中的空闲页面的数量来决定数据移动分配比率;并且
由所述存储装置控制器分配一个或多个编程时间,以完成与所述至少一些内部数据移动请求相对应的第一数量的内部数据移动操作以及第二数量的主机数据写入操作,使得所述第一数量与所述第二数量的比率与所述数据移动分配比率一致,其中所述第一数量大于所述第二数量。
2.根据权利要求1所述的控制方法,其中所述存储装置控制器具有用于存储所述内部数据移动请求的数据移动请求序列,所述内部数据移动请求中的每个对应于所述存储装置中的、内部数据待移动的存储器区域,其中所述存储器区域是待执行垃圾收集、损耗均衡、块回收或运行坏块处理的存储器区域。
3.根据权利要求1所述的控制方法,其中所述存储装置控制器具有用于存储所述内部数据移动请求的数据移动请求序列,并且所述内部数据移动请求中的每个对应于所述存储装置中的、内部数据待移动的存储器区域,并且
其中当确定所述存储装置必须移动所述内部数据时,所述存储装置控制器基于所述数据移动请求序列中的所述至少一些内部数据移动请求、所需空闲块的数量和所述空闲页面的数量来决定所述数据移动分配比率。
4.根据权利要求3所述的控制方法,其中所述至少一些内部数据移动请求包括所述数据移动请求序列中的、具有相对较高优先级的内部数据移动请求。
5.根据权利要求1所述的控制方法,其中所述存储装置控制器具有用于存储所述内部数据移动请求的数据移动请求序列,并且所述内部数据移动请求中的每个对应于所述存储装置中的、内部数据待移动的存储器区域,
其中决定所述数据移动分配比率包括:
由所述存储装置控制器基于所述数据移动请求序列中的内部数据移动请求之中的、具有相对较高优先级的至少一些内部数据移动请求以及所需空闲块的数量,来决定数据待移动的页面的总数量;并且
基于所述数据待移动的页面的总数量和所述空闲页面的数量来决定所述数据移动分配比率。
6.根据权利要求1所述的控制方法,其中所述存储装置包括多个存储器芯片,
其中分配所述一个或多个编程时间包括:根据并行模式,由所述存储装置控制器分配所述一个或多个编程时间,以使用所述存储装置中的第一数量的存储器芯片来完成所述第一数量的内部数据移动操作,并且使用所述存储装置中的第二数量的存储器芯片来完成所述第二数量的主机数据写入操作,使得所述第一数量与所述第二数量的比率以及所述第一数量的存储器芯片与所述第二数量的存储器芯片的比率与所述数据移动分配比率一致,其中所述第一数量大于所述第二数量,并且所述第一数量的存储器芯片大于所述第二数量的存储器芯片。
7.根据权利要求1所述的控制方法,其中所述一个或多个编程时间包括第一数量的编程时间和第二数量的编程时间,
其中分配所述一个或多个编程时间包括:由所述存储装置控制器分配所述第一数量的编程时间来完成所述第一数量的内部数据移动操作,并且分配所述第二数量的编程时间来完成所述第二数量的主机数据写入操作,使得所述第一数量与所述第二数量的比率与所述数据移动分配比率一致,其中所述第一数量大于所述第二数量,并且所述第一数量的编程时间大于所述第二数量的编程时间。
8.根据权利要求1所述的控制方法,其中所述存储装置包括多个存储器芯片,
其中分配所述一个或多个编程时间包括:
由所述存储装置控制器决定所述内部数据移动操作和所述主机数据写入操作的操作模式,其中所述操作模式是并行模式和非并行模式中的一个;并且
在所述操作模式下,分配所述一个或多个编程时间来完成所述第一数量的内部数据移动操作和所述第二数量的主机数据写入操作,使得所述第一数量与所述第二数量的比率与所述数据移动分配比率一致,其中所述第一数量大于所述第二数量。
9.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储用于控制存储装置的程序代码,当由处理器执行所述程序代码时,使所述存储装置执行包括以下的操作:
由存储装置控制器确定所述存储装置是否必须移动内部数据;
当确定所述存储装置必须移动内部数据时,由所述存储装置控制器基于至少一些内部数据移动请求和所述存储装置中的空闲页面的数量来决定数据移动分配比率;并且
由所述存储装置控制器分配一个或多个编程时间,以完成与所述至少一些内部数据移动请求相对应的第一数量的内部数据移动操作以及第二数量的主机数据写入操作,使得所述第一数量与所述第二数量的比率与所述数据移动分配比率一致,其中所述第一数量大于所述第二数量。
10.一种存储装置,包括:
存储器;以及
存储装置控制器,联接到所述存储器,并且控制所述存储器以执行对所述存储器的数据访问,
其中所述存储装置控制器确定所述存储装置是否必须移动内部数据;当确定所述存储装置必须移动内部数据时,基于至少一些内部数据移动请求和所述存储装置中的空闲页面的数量来决定数据移动分配比率;并且分配一个或多个编程时间以完成与所述至少一些内部数据移动请求相对应的第一数量的内部数据移动操作以及第二数量的主机数据写入操作,使得所述第一数量与所述第二数量的比率与所述数据移动分配比率一致,其中所述第一数量大于所述第二数量。
11.根据权利要求10所述的存储装置,其中所述存储装置控制器具有用于存储所述内部数据移动请求的数据移动请求序列,所述内部数据移动请求中的每个对应于所述存储装置中的、内部数据待移动的存储器区域,其中所述内部数据待移动的存储器区域是执行垃圾收集、损耗均衡、块回收或运行坏块处理的存储器区域。
12.根据权利要求10所述的存储装置,其中所述存储装置控制器具有用于存储所述内部数据移动请求的数据移动请求序列,并且所述内部数据移动请求中的每个对应于所述存储装置中的、内部数据待移动的存储器区域,并且
其中当确定所述存储装置必须移动内部数据时,所述存储装置控制器基于所述数据移动请求序列中的所述至少一些内部数据移动请求、所需空闲块的数量和所述空闲页面的数量来决定所述数据移动分配比率。
13.根据权利要求12所述的存储装置,其中所述至少一些内部数据移动请求包括所述数据移动请求序列中的、具有较高优先级的内部数据移动请求。
14.根据权利要求10所述的存储装置,其中所述存储装置控制器具有用于存储所述内部数据移动请求的数据移动请求序列,并且所述内部数据移动请求中的每个对应于所述存储装置中的、内部数据待移动的存储器区域,
其中当确定所述存储装置必须移动内部数据时,所述存储装置控制器基于所述数据移动请求序列中的内部数据移动请求之中的、具有较高优先级的至少一些内部数据移动请求以及所需空闲块的数量,来决定数据待移动的页面的总数量,并且基于所述数据待移动的页面的总数量和所述空闲页面的数量来决定所述数据移动分配比率。
15.根据权利要求10所述的存储装置,其中所述存储器包括多个存储器芯片,并且根据并行模式,所述存储装置控制器分配所述一个或多个编程时间,以使用所述存储装置中的第一数量的存储器芯片来完成所述第一数量的内部数据移动操作,并且使用所述存储装置中的第二数量的存储器芯片来完成所述第二数量的主机数据写入操作,使得所述第一数量与所述第二数量的比率以及所述第一数量的存储器芯片与所述第二数量的存储器芯片的比率与所述数据移动分配比率一致,其中所述第一数量大于所述第二数量,并且所述第一数量的存储器芯片大于所述第二数量的存储器芯片。
16.根据权利要求10所述的存储装置,其中所述一个或多个编程时间包括第一数量的编程时间和第二数量的编程时间,并且所述存储装置控制器分配所述第一数量的编程时间来完成所述第一数量的内部数据移动操作,并且分配所述第二数量的编程时间来完成所述第二数量的主机数据写入操作,使得所述第一数量与所述第二数量的比率与所述数据移动分配比率一致,其中所述第一数量大于所述第二数量,并且所述第一数量的编程时间大于所述第二数量的编程时间。
17.根据权利要求10所述的存储装置,其中所述存储器包括多个存储器芯片,并且所述存储装置控制器决定所述内部数据移动操作和所述主机数据写入操作的操作模式,所述操作模式是并行模式或非并行模式,并且根据所述操作模式,所述存储装置控制器分配所述一个或多个编程时间来完成所述第一数量的内部数据移动操作和所述第二数量的主机数据写入操作,使得所述第一数量与所述第二数量的比率与所述数据移动分配比率一致,其中所述第一数量大于所述第二数量。
18.一种存储装置,包括:
存储器,包括多个块,所述多个块中的每个包括多个页面;以及
控制器,联接到所述存储器,所述控制器:
基于所述多个块之中的至少两个块中的、数据待移动的目标页面的数量和用于来自主机的写入数据的空闲页面的数量,来确定数据移动数量;
基于所述数据移动数量来确定用于所述写入数据的编程时间和用于数据移动的数据移动时间;并且
基于所述数据移动时间来对所述数量的目标页面执行数据移动。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108112380A TWI786288B (zh) | 2019-04-09 | 2019-04-09 | 儲存裝置、儲存裝置的控制方法及記錄媒體 |
US16/674,893 US11068189B2 (en) | 2019-04-09 | 2019-11-05 | Storage device and control method thereof |
US16/674,893 | 2019-11-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112783424A true CN112783424A (zh) | 2021-05-11 |
CN112783424B CN112783424B (zh) | 2024-01-16 |
Family
ID=72747891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911164368.0A Active CN112783424B (zh) | 2019-04-09 | 2019-11-25 | 存储装置及其控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11068189B2 (zh) |
CN (1) | CN112783424B (zh) |
TW (1) | TWI786288B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11137943B2 (en) * | 2020-03-04 | 2021-10-05 | Micron Technology, Inc. | Internal commands for access operations |
US11474885B2 (en) * | 2020-04-07 | 2022-10-18 | Micron Technology, Inc. | Method for an internal command of a first processing core with memory sub-system that caching identifiers for access commands |
KR20220052152A (ko) * | 2020-10-20 | 2022-04-27 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130275802A1 (en) * | 2012-04-16 | 2013-10-17 | Hitachi, Ltd. | Storage subsystem and data management method of storage subsystem |
CN103761988A (zh) * | 2013-12-27 | 2014-04-30 | 华为技术有限公司 | 固态硬盘及数据移动方法 |
CN104298615A (zh) * | 2014-10-09 | 2015-01-21 | 重庆大学 | 一种存储器交换分区损耗的均衡方法 |
US20160274792A1 (en) * | 2013-11-22 | 2016-09-22 | Nec Corporation | Storage apparatus, method, and program |
US20160313944A1 (en) * | 2015-04-22 | 2016-10-27 | Sandisk Enterprise Ip Llc | Method and System for Limiting Write Command Execution |
CN107845394A (zh) * | 2016-09-19 | 2018-03-27 | 三星电子株式会社 | 存储装置及其操作方法 |
US10126981B1 (en) * | 2015-12-14 | 2018-11-13 | Western Digital Technologies, Inc. | Tiered storage using storage class memory |
CN109684236A (zh) * | 2018-12-25 | 2019-04-26 | 广东浪潮大数据研究有限公司 | 一种数据写缓存控制方法、装置、电子设备和存储介质 |
CN109923514A (zh) * | 2016-11-08 | 2019-06-21 | 美光科技公司 | 对数据的存储器操作 |
CN110007851A (zh) * | 2018-01-04 | 2019-07-12 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060718B2 (en) * | 2006-06-20 | 2011-11-15 | International Business Machines | Updating a memory to maintain even wear |
US7853759B2 (en) * | 2007-04-23 | 2010-12-14 | Microsoft Corporation | Hints model for optimization of storage devices connected to host and write optimization schema for storage devices |
EP2225643B1 (en) * | 2007-12-28 | 2020-05-06 | Toshiba Memory Corporation | Semiconductor storage device |
KR101867282B1 (ko) | 2011-11-07 | 2018-06-18 | 삼성전자주식회사 | 비휘발성 메모리 장치의 가비지 컬렉션 방법 |
GB201322290D0 (en) * | 2013-12-17 | 2014-01-29 | Ibm | Method and device for managing a memory |
WO2016135954A1 (ja) * | 2015-02-27 | 2016-09-01 | 株式会社日立製作所 | ストレージ装置および不揮発メモリデバイス |
US9645922B2 (en) * | 2015-09-10 | 2017-05-09 | HoneycombData Inc. | Garbage collection in SSD drives |
US10146469B2 (en) * | 2015-09-29 | 2018-12-04 | EMC IP Holding Company, LLC | Dynamic storage tiering based on predicted workloads |
KR102756730B1 (ko) | 2016-12-05 | 2025-01-20 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10452282B2 (en) * | 2017-04-07 | 2019-10-22 | Micron Technology, Inc. | Memory management |
TWI674505B (zh) * | 2017-11-30 | 2019-10-11 | 宜鼎國際股份有限公司 | 資料存取效率的預估方法 |
-
2019
- 2019-04-09 TW TW108112380A patent/TWI786288B/zh active
- 2019-11-05 US US16/674,893 patent/US11068189B2/en active Active
- 2019-11-25 CN CN201911164368.0A patent/CN112783424B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130275802A1 (en) * | 2012-04-16 | 2013-10-17 | Hitachi, Ltd. | Storage subsystem and data management method of storage subsystem |
US20160274792A1 (en) * | 2013-11-22 | 2016-09-22 | Nec Corporation | Storage apparatus, method, and program |
CN103761988A (zh) * | 2013-12-27 | 2014-04-30 | 华为技术有限公司 | 固态硬盘及数据移动方法 |
CN104298615A (zh) * | 2014-10-09 | 2015-01-21 | 重庆大学 | 一种存储器交换分区损耗的均衡方法 |
US20160313944A1 (en) * | 2015-04-22 | 2016-10-27 | Sandisk Enterprise Ip Llc | Method and System for Limiting Write Command Execution |
US10126981B1 (en) * | 2015-12-14 | 2018-11-13 | Western Digital Technologies, Inc. | Tiered storage using storage class memory |
CN107845394A (zh) * | 2016-09-19 | 2018-03-27 | 三星电子株式会社 | 存储装置及其操作方法 |
CN109923514A (zh) * | 2016-11-08 | 2019-06-21 | 美光科技公司 | 对数据的存储器操作 |
CN110007851A (zh) * | 2018-01-04 | 2019-07-12 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN109684236A (zh) * | 2018-12-25 | 2019-04-26 | 广东浪潮大数据研究有限公司 | 一种数据写缓存控制方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20200326874A1 (en) | 2020-10-15 |
US11068189B2 (en) | 2021-07-20 |
TW202038106A (zh) | 2020-10-16 |
CN112783424B (zh) | 2024-01-16 |
TWI786288B (zh) | 2022-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113906383B (zh) | 主机系统和存储器子系统之间的定时数据传送 | |
CN113795820B (zh) | 主机系统与存储器子系统之间的输入/输出大小控制 | |
US11573742B2 (en) | Dynamic data placement for collision avoidance among concurrent write streams | |
CN113924545B (zh) | 基于存储器子系统中的媒体单元的可用性的预测性数据传输 | |
CN107885456B (zh) | 减少io命令访问nvm的冲突 | |
US12050809B2 (en) | Multi-pass data programming in a memory sub-system having multiple dies and planes | |
CN109697027B (zh) | 包括共享存储器区域和专用存储器区域的数据存储设备 | |
CN114817094A (zh) | 控制器和具有控制器的存储器系统 | |
CN112783424B (zh) | 存储装置及其控制方法 | |
CN112786095A (zh) | 存储设备、存储系统及其操作方法 | |
CN110489056A (zh) | 控制器以及包括该控制器的存储器系统 | |
US9213498B2 (en) | Memory system and controller | |
CN110119245B (zh) | 用于操作nand闪存物理空间以扩展存储器容量的方法和系统 | |
CN107885667B (zh) | 降低读命令处理延迟的方法与装置 | |
US11687275B2 (en) | Method for assigning plurality of channels of storage device for stream data writing, storage device and storage medium | |
CN113811847A (zh) | 来自主机系统的写入命令的部分执行 | |
CN113126900B (zh) | 用于存储器子系统的媒体管理的单独核心 | |
CN115527585A (zh) | 用于存储器管理的超额配给组件 | |
CN114691017A (zh) | 用以分配存储设备的多个存储通道以进行串流数据写入的方法、存储设备及其存储介质 | |
US20240345754A1 (en) | Intelligent performance mode selection to manage quality of service | |
US20250110661A1 (en) | Systems and methods for allocating read buffers based on read data sizes in non-volatile storage devices | |
CN117632255A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |