CN109947355B - 用于动态执行存储器回收数据储存装置与操作方法 - Google Patents

用于动态执行存储器回收数据储存装置与操作方法 Download PDF

Info

Publication number
CN109947355B
CN109947355B CN201810710169.4A CN201810710169A CN109947355B CN 109947355 B CN109947355 B CN 109947355B CN 201810710169 A CN201810710169 A CN 201810710169A CN 109947355 B CN109947355 B CN 109947355B
Authority
CN
China
Prior art keywords
blocks
interval
memory
flash memory
data storage
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
Application number
CN201810710169.4A
Other languages
English (en)
Other versions
CN109947355A (zh
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.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN109947355A publication Critical patent/CN109947355A/zh
Application granted granted Critical
Publication of CN109947355B publication Critical patent/CN109947355B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及一种用于动态执行存储器回收流程的数据储存装置与操作方法,包括一快闪存储器以及一控制器。快闪存储器包括多个区块,其中上述区块之每一者包括多个页面。控制器耦接快闪存储器,用以依据快闪存储器中的至少一空闲区块的数量、以及有效页面为不同比例时所对应的多个非空闲区块的数量,在快闪存储器执行一存储器回收流程。存储器回收流程以合并等区块中的至少两个非空闲区块,以释放至少一空闲区块。

Description

用于动态执行存储器回收数据储存装置与操作方法
技术领域
本发明有关于一种包含快闪存储器(FLASH memory)的数据储存装置,特别是关于在快闪存储器上动态执行存储器回收(garbage-collection,GC)的流程。
背景技术
存储器回收流程被广泛使用于各种存储器装置中。存储器回收流程特别被使用在大多数页面为被用或空闲的无效率的区块,合并这些无效率的区块为一个有效率的区块,而得到更多备用区块。藉由规律地执行存储器回收流程,能够提升存储器装置的效率。
然而,是否执行存储器回收流程通常是由一个临界值所决定。当决定执行存储器回收流程时,会降低存储器装置的效能。举例而言,因为执行存储器回收,造成写入延迟的突然增加以及效能突然劣化。此外,存储器装置具有不同的操作状态,能够执行来自主机的各种指令。因此,需要一种动态调整的存储器回收流程,防止存储器装置的效能突然劣化,并且配合各种操作状态与主机指令。
发明内容
本发明的一实施例提供了一种数据储存装置以及操作方法可动态调整预设值、而不是只有一个固定的预设值来执行存储器回收流程,以避免快闪存储器的突然延迟。详细而言,本发明更提供至少一临界值用以判断快闪存储器中的有效页面为不同比例时所对应的非空闲区块的数量,动态调整存储器回收的执行流程。藉由本发明所提出的操作方法来动态调整用以判断是否执行存储器回收流程的预设值,能够增进存储器回收的效率,并且避免影响到数据储存装置的效能。
本发明提供一种用于动态执行存储器回收流程的数据储存装置,包括一快闪存储器以及一控制器。快闪存储器包括多个区块,其中上述区块之每一者包括多个页面。控制器耦接快闪存储器,用以依据快闪存储器中的至少一空闲区块的数量、以及有效页面为不同比例时所对应的多个非空闲区块的数量,在快闪存储器执行一存储器回收流程。存储器回收流程用以合并等区块中的至少两个非空闲区块,以释放至少一空闲区块。
控制器计算快闪存储器的至少一空闲区块的数量,并且判断空闲区块的数量是否小于一预设值。当空闲区块的数量小于预设值时,控制器计算有效页面的比例在第一区间时所对应的非空闲区块的数量是否大于第一临界值。当有效页面的比例在第一区间时所对应的区块的数量大于第一临界值时,控制器以第一差距值递减预设值。当有效页面的比例在第一区间时所对应之区块的数量小于或等于第一临界值时,控制器计算有效页面的比例在第二区间时所对应的区块的数量是否大于第二临界值。
再者,当有效页面的比例在第二区间时所对应的区块的数量大于第二临界值时,控制器以第二差距值递减预设值。当有效页面的比例在第二区间时所对应的区块的数量小于或等于第二临界值时,控制器以第三差距值递增预设值。此外,控制器耦接一主机,控制器还依据主机所传送的指令在快闪存储器执行存储器回收流程。
本发明提供一种一种动态执行存储器回收流程的操作方法,应用于一数据储存装置。数据储存装置包括一快闪存储器以及一控制器,快闪存储器包括多个区块,上述区块之每一者包括多个页面。操作方法包括:计算快闪存储器中的至少一空闲区块的数量;计算有效页面为不同比例时所对应的多个非空闲区块的数量;以及依据快闪存储器中的至少一空闲区块的数量、以及有效页面为不同比例时所对应的非空闲区块的数量,在快闪存储器执行一存储器回收流程,用以合并上述区块中的至少两个非空闲区块,以释放至少一空闲区块。
关于本发明其他附加的特征与优点,此领域的熟悉本技术领域者,在不脱离本发明的精神和范围内,当可根据本案实施方法中所揭示的数据储存装置与操作方法。
附图说明
图1是显示根据本发明一实施例所述的数据储存装置的方块示意图;
图2是显示根据本发明一实施例所述的计算快闪存储器的空闲区块与非空闲区块的示意图;
图3是显示根据本发明另一实施例所述的计算快闪存储器的空闲区块与非空闲区块的示意图;
图4是显示根据本发明另一实施例所述的计算快闪存储器的空闲区块与非空闲区块的示意图;
图5是显示根据本发明一实施例所述的快闪存储器的操作方法的流程图。
符号说明
100-数据储存装置;
120-控制器;
140-快闪存储器;
160-16N-储存矩阵;
160_A、160_Z…16N_A、16N_Z-区块;
160_A_1、160_Z_1…16N_A_X、16N_Z_X-页面;
180-随机存取存储器;
200-主机;
DT-表格。
具体实施方式
为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
图1是显示根据本发明一实施例所述的据储存装置100与主机200的示意图。在一实施例中,数据储存装置100包括控制器120、快闪存储器140以及随机存取存储器(RAM)180。数据储存装置100耦接主机200以传送数据与指令、或是接收数据与指令。快闪存储器140可以为非挥发性存储器,例如与非门快闪存储器(NAND Flash)。数据储存装置100的例子可包含(但不限于):可携式记忆装置(诸如符合SD/MMC、CF、MS、XD或UFS标准之记忆卡)、固态硬碟(solid state drive,SSD)以及各种嵌入式(embedded)储存装置(诸如符合UFS或EMMC规格的嵌入式储存装置)。主机200可以为手机、平板电脑、笔记型电脑、导航机或车载系统等各种电子产品、或上述各种电子产品中的处理器。
如图1所示,控制器120耦接快闪存储器140以及随机存取存储器180。随机存取存储器180用以暂存以及预取控制器120所需的数据,或是用以暂存主机200要写入快闪存储器140的数据,以加快数据储存装置100的存取时间。控制器120藉由控制快闪存储器140以丛集(cluster)为单位执行读取运作的方式来对快闪存储器140执行读取运作。此外,控制器120耦接快闪存储器140以相互传送数据与指令或接收数据与指令。进一步而言,控制器120可包括具有固件码的只读存储器(ROM)以及微控制器,并且微控制器执行固件码以操作或是存取快闪存储器140。
快闪存储器140包括多个储存矩阵(plane)160-16N。在一实施例中,每一储存矩阵160-16N的一部分区块组合成一超级区块(super block),使得快闪存储器140包括多个超级区块。详细而言,储存矩阵160-16N中的每一者更包括多个区块(block)。在一实施例中,快闪存储器140具有4个储存矩阵160-164(亦即CE0-CE3)。储存矩阵160包括区块160_A-160_Z,储存矩阵16N包括区块16N_A-16N_Z。对于储存矩阵160而言,区块160_A-160_Z中的每一者还包括多个页面。区块160_A包括页面160_A_1-160_A_X,区块160_Z包括页面160_Z_1-160_Z_X,并且每个页面的大小为N个位元组,其中N为大于1的之正整数。
举例而言,储存矩阵160-164之每一者包括820的区块,上述区块的每一者包括256个页面,并且每个页面的大小为16K位元组(K-bytes)。此外,上述页面160_A_1-16N_Z_X为实体页面。控制器120在对快闪存储器140执行写入或储存动作时,是藉由控制快闪存储器140以实体页面为单位来执行写入或程式化的运作。
对于快闪存储器140而言,其页面160_A_1-16N_Z_X的每一者皆具有不同的实体地址。换言之,页面160_A_1-16N_Z_X的每一者都具有一个实体地址,而页面160_A_1-16N_Z_X的每一者的实体地址都是不同的。当数据储存装置100执行一写入运作时,控制器120决定快闪存储器140的一实体地址以写入或储存数据。此外,控制器120则分别对应上述多个实体地址至多个逻辑地址。因此,对于主机200而言,主机200藉由逻辑地址,来读取或写入数据储存装置100所储存于某个逻辑地址的数据。
在一实施例中,控制器120用以依据快闪存储器140中的空闲区块的数量、以及快闪存储器140中快闪存储器中的有效页面为不同比例时所对应的非空闲区块的数量,在快闪存储器140执行存储器回收流程。存储器回收流程用以合并至少两个非空闲区块,从非空闲区块中释放出至少一个空闲的区块。进一步而言,区块160_A-16N_Z可依据是否储存数据而区分为空闲区块以及非空闲区块。空闲区块的特征在于其每一个页面都是空的、没有写入任何数据。此外,非空闲区块的特征在于其至少一个页面有写入数据。
本发明所提出的存储器回收流程是根据可动态调整的预设值、而不是只有一个固定的预设值来执行或操作,以避免快闪存储器140的突然延迟。详细而言,本发明还提供至少一临界值用以判断快闪存储器中的有效页面为不同比例时所对应的非空闲区块的数量,动态调整存储器回收的执行流程。藉由本发明所提出的操作方法来动态调整用以判断是否执行存储器回收流程的预设值,能够增进存储器回收的效率,并且避免影响到数据储存装置100的效能。
在一实施例中,控制器120计算快闪存储器140中的至少一空闲区块的数量、以及有效页面为不同比例时所对应的多个非空闲区块的数量,判断是否执行存储器回收流程。当空闲区块的数量小于预设值时,控制器计算有效页面的比例在第一区间时所对应的这些非空闲区块的数量是否大于第一临界值。当有效页面的比例在该第一区间时所对应的非空闲区块的数量大于第一临界值时,控制器以第一差距值递减该预设值。因此,本发明所提出的操作方法是根据可动态调整的预设值、而不是只有一个固定的预设值来执行或操作存储器回收流程。
图2是显示根据本发明一实施例所述的计算快闪存储器140的空闲区块与非空闲区块的示意图。图2的实施例系统计储存矩阵160的区块160_A-160_Z的数据储存状态,但不以此为限。在其他实施例中,亦可统计两个以上的储存矩阵的全部或部分区块的数据储存状态。
在图2的实施例中,控制器120计算出储存矩阵160具有6个空闲区块以及20个非空闲区块。然后,控制器120判断空闲区块的数量是否大于预设值。如果空闲区块的数量大于预设值,表示空闲区块的数量够多,不需要启动存储器回收流程以释放更多的空闲区块。如果空闲区块的数量小于或等于预设值,表示空闲区块的数量不多,需要启动存储器回收流程以释放更多的空闲区块。
为了能够有效率的执行存储器回收流程,本发明的控制器120还进一步计算有效页面为不同比例时所对应的非空闲区块的数量,以递增或递减上述预设值。以下将说明各个非空闲区块的有效页面、以及如何计算有效页面为不同比例时所对应的非空闲区块的数量。
如图2所示,区块160_B已全部写满数据,无法再写入其他数据。因此,区块160_B的已写入数据的有效页面相对于区块160_B的全部页面的比例约为100%。此外,区块160_F的有效页面的比例约为10%,区块160_G的有效页面的比例约为30%,区块160_I的有效页面的比例约为50%,区块160_L的有效页面的比例约为70%。如下列表格1所示,控制器120藉由表格化方式统计有效页面为不同比例时所对应的非空闲区块的数量,并且将表格储存于随机存取存储器180。
有效页面的比例(%) 区间内区块的数量 区间内区块的比例(%)
第一区间 0%-20% 10 50%
第二区间 21%-40% 2 10%
第三区间 41%-60% 2 10%
第四区间 61%-80% 2 10%
第五区间 81%-100% 4 20%
表格1
因为有效页面的比例分布为0%至100%,因此可区分为五个区间。其中,第一区间的有效页面的比例分布为0%至20%,第二区间的有效页面的比例分布为21%至40%,以此类堆。由此可知,第一区间的区块的有效页面比例最低。相较于其他区间,第一区间的区块能够最有效率地进行合并以释放出空闲区块,并且执行存储器回收流程所需耗费的时间也是最少的。在此实施例中,控制器120计算有效页面的比例在第一区间时所对应的非空闲区块的数量是否大于第一临界值(例如临界值为6)。
如表格1所示,第一区间时所对应的非空闲区块的数量为10,大于第一临界值。换言之,快闪存储器140具有相当多数量的第一区间的非空闲区块,能够快速地藉由合并而取得空闲区块。由此可知,控制器120可延后或是暂缓执行存储器回收流程,以避免数据储存装置100的效能受到影响。因此,控制器120以第一差距值(例如第一差距值为1)递减预设值。递减后的预设值变小,表示控制器120执行存储器回收流程的条件更趋严苛,目前不需要执行存储器回收流程。
要注意的是,在其他实施例中,控制器120亦可计算有效页面的比例在第一区间时所对应的非空闲区块相对于全部非空闲区块的比例是否大于第一临界值(例如临界值为20%)。如表格1所示,第一区间时所对应的非空闲区块的比例为50%,大于第一临界值。因此,控制器120以第一差距值递减预设值(例如第一差距值为2%),则递减后的预设值为18%。
图3上显示根据本发明另一实施例所述的计算快闪存储器140的空闲区块与非空闲区块的示意图。在此实施例中系包括3个空闲区块以及23个非空闲区块。表格2显示其有效页面为不同比例时所对应的非空闲区块的数量。
有效页面的比例(%) 区间内区块的数量 区间内区块的比例(%)
第一区间 0%-20% 2 9%
第二区间 21%-40% 10 42%
第三区间 41%-60% 2 9%
第四区间 61%-80% 3 13%
第五区间 81%-100% 6 27%
表格2
在此实施例中,有效页面的比例在第一区间时所对应的非空闲区块的数量或比例,并未大于第一临界值。因此,控制器120不以第一差距值递减预设值,并且判断有效页面的比例在第二区间时所对应的非空闲区块的数量或比例是否大于第二临界值(例如第二临界值为6或27%)。要注意的是,上述第二区间的数值(21%-40%)大于第一区间的数值(0%-20%)。
如表格2所示,第二区间时所对应的非空闲区块的数量为10,大于第二临界值。换言之,快闪存储器140具有相当多数量的第二区间的非空闲区块,能够快速地藉由合并而取得空闲区块。因此,控制器120以第二差距值(例如第二差距值为1)递减预设值。递减后的预设值变小,表示控制器120执行存储器回收流程的条件更趋严苛,目前不需要执行存储器回收流程。
图4是显示根据本发明另一实施例所述的计算快闪存储器140的空闲区块与非空闲区块的示意图。在此实施例中系包括3个空闲区块以及23个非空闲区块。表格3显示其有效页面为不同比例时所对应的非空闲区块的数量。
有效页面的比例(%) 区间内区块的数量 区间内区块的比例(%)
第一区间 0%-20% 2 9%
第二区间 21%-40% 2 9%
第三区间 41%-60% 2 9%
第四区间 61%-80% 5 21%
第五区间 81%-100% 12 52%
表格3
在此实施例中,有效页面之比例在第一区间时所对应的非空闲区块的数量或比例并未大于第一临界值,并且有效页面的比例在第二区间时所对应的非空闲区块的数量或比例并未大于第二临界值。换言之,快闪存储器140具有相当少的第一区间与第二区间的非空闲区块,需要耗费较长时间进行合并而取得空闲区块。
因此,在此实施例中,控制器120以第三差距值(例如第二差距值为1)递增预设值。递增后的预设值变大,表示控制器120执行存储器回收流程的条件更趋宽松,需要尽早执行存储器回收流程释放出空闲区块,以避免发生空闲区块数量为0的情况。
在上述实施例中,控制器120依据有效页面为不同比例时所对应的非空闲区块的数量,决定是否执行存储器回收流程。在其他实施例中,为了配合主机200的运作,控制器是依据主机200所传送的指令,在快闪存储器140执行存储器回收流程。换言之,主机200可强制要求控制器120执行存储器回收流程,以符合其存取数据的需求。
图5是显示根据本发明一实施例所述的快闪存储器140的操作方法的流程图。在步骤S510中,控制器120计算快闪存储器140的空闲区块的数量。在步骤S511,控制器120计算快闪存储器140中的有效页面为不同比例时所对应的非空闲区块的数量。在步骤S512,控制器120依据快闪存储器140中的空闲区块的数量、以及有效页面为不同比例时所对应的非空闲区块的数量,决定是否执行快闪存储器140的存储器回收流程。
在步骤S514,控制器120判断空闲区块的数量是否小于预设值。如果空闲区块的数量并未小于预设值,则继续执行步骤S514。如果空闲区块的数量小于预设值,则执行步骤S516,控制器120计算有效页面的比例在第一区间时所对应的非空闲区块的数量是否大于第一临界值。
如果有效页面的比例在第一区间时所对应的非空闲区块的数量大于第一临界值,则执行步骤S518,控制器120以第一差距值递减预设值。如果有效页面的比例在第一区间时所对应的非空闲区块的数量并未大于第一临界值,则执行步骤S520,控制器120判断有效页面的比例在第二区间时所对应的非空闲区块的数量是否大于第二临界值。如果是,则执行步骤S522,控制器120以第二差距值递减预设值。如果否,则执行步骤S524,控制器120以第三差距值递增预设值。
本发明的方法,或特定型态或其部份,可以以程式码的型态存在。程式码可储存于实体媒体,如软碟、光碟片、硬碟、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程式产品,其中,当程式码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程式码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程式码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明之装置。当在一般用途处理单元实作时,程式码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
在本说明书以及权利要求书中的序数,例如“第一”、“第二”、“第三”等等,彼此之间并没有顺序上的先后关系,其仅用于标示区分两个具有相同名字的不同元件。本发明说明书中“耦接”一词泛指各种直接或间接的电性连接方式。本发明虽以较佳实施例揭示如上,然其并非用以限定本发明的范围,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视权利要求书范围所界定为准。

Claims (18)

1.一种用于动态执行存储器回收流程的数据储存装置,包括:
一快闪存储器,包括多个区块,其中这些区块之每一者包括第一数量的多个页面,且这些区块包括具有至少一有效页面的至少一非空闲区块,且各非空闲区块对应于一有效页面比例,该有效页面比例为在各非空闲区块的有效页面的第四数量相对于在各非空闲区块的这些页面的该第一数量的比例;以及
一控制器,耦接该快闪存储器,用以依据该快闪存储器中的至少一空闲区块的第二数量、以及在对应于该有效页面比例的不同范围的多个不同区间之每一者中的这些非空闲区块的第三数量,在该快闪存储器执行该存储器回收流程,其中该存储器回收流程用以合并这些区块中的至少两个这些非空闲区块,以释放该至少一空闲区块。
2.如权利要求1所述的用于动态执行存储器回收流程的数据储存装置,其特征在于:
该控制器计算该快闪存储器的该至少一空闲区块的该第二数量,并且判断该至少一空闲区块的该第二数量是否小于一预设值。
3.如权利要求2所述的用于动态执行存储器回收流程的数据储存装置,其特征在于:
当该至少一空闲区块的该第二数量小于该预设值时,该控制器计算该有效页面比例在一第一区间时所对应的这些非空闲区块的该第三数量是否大于一第一临界值。
4.如权利要求3所述的用于动态执行存储器回收流程的数据储存装置,其特征在于:
当该有效页面比例在该第一区间时所对应的这些非空闲区块的该第三数量大于该第一临界值时,该控制器以一第一差距值递减该预设值。
5.如权利要求3所述的用于动态执行存储器回收流程的数据储存装置,其特征在于:
当该有效页面比例在该第一区间时所对应的这些非空闲区块的该第三数量小于或等于该第一临界值时,该控制器计算该有效页面比例在一第二区间时所对应的这些非空闲区块的该第三数量是否大于一第二临界值。
6.如权利要求5所述的用于动态执行存储器回收流程的数据储存装置,其特征在于:
该第二区间的数值大于该第一区间的数值。
7.如权利要求5所述的用于动态执行存储器回收流程的数据储存装置,其特征在于:
当该有效页面比例在该第二区间时所对应的这些非空闲区块的该第三数量大于该第二临界值时,该控制器以一第二差距值递减该预设值。
8.如权利要求5所述的用于动态执行存储器回收流程的数据储存装置,其特征在于:
当该有效页面比例在该第二区间时所对应的这些非空闲区块的该第三数量小于或等于该第二临界值时,该控制器以一第三差距值递增该预设值。
9.如权利要求2所述的用于动态执行存储器回收流程的数据储存装置,其特征在于,还包括:
该控制器耦接一主机,该控制器还依据该主机所传送的指令在该快闪存储器执行该存储器回收流程。
10.一种用于 动态执行存储器回收流程的操作方法,应用于一数据储存装置,该数据储存装置包括一快闪存储器以及一控制器,该快闪存储器包括多个区块,这些区块之每一者包括第一数量的多个页面,且这些区块包括具有至少一有效页面的至少一非空闲区块,且各非空闲区块对应于一有效页面比例,该有效页面比例为在各非空闲区块的有效页面的第四数量相对于在各非空闲区块的这些页面的该第一数量的比例,该操作方法包括:
计算该快闪存储器中的至少一空闲区块的第二数量;
计算在对应于该有效页面比例的不同范围的多个不同区间之每一者中的这些非空闲区块的第三数量;以及
依据该快闪存储器中的至少一空闲区块的该第二数量、以及这些非空闲区块的该第三数量,在该快闪存储器执行该存储器回收流程,用以合并这些区块中的至少两个非空闲区块,以释放该至少一空闲区块。
11.如权利要求10所述的用于动态执行存储器回收流程的操作方法,其特征在于,还包括:
计算该快闪存储器的该至少一空闲区块的该第二数量;以及
判断该至少一空闲区块的该第二数量是否小于一预设值。
12.如权利要求11所述的用于动态执行存储器回收流程的操作方法,其特征在于:
当该至少一空闲区块的该第二数量小于该预设值时,计算该有效页面比例在一第一区间时所对应的这些非空闲区块的该第三数量是否大于一第一临界值。
13.如权利要求12所述的用于动态执行存储器回收流程的操作方法,其特征在于:
当该有效页面比例在该第一区间时所对应的这些非空闲区块的该第三数量大于该第一临界值时,使用一第一差距值递减该预设值。
14.如权利要求12所述的用于动态执行存储器回收流程的操作方法,其特征在于:
当该有效页面比例在该第一区间时所对应的这些非空闲区块的该第三数量小于或等于该第一临界值时,计算该有效页面比例在一第二区间时所对应的这些非空闲区块的该第三数量是否大于一第二临界值。
15.如权利要求14所述的用于动态执行存储器回收流程的操作方法,其特征在于:
该第二区间的数值大于该第一区间的数值。
16.如权利要求14所述的用于动态执行存储器回收流程的操作方法,其特征在于:
当该有效页面比例在该第二区间时所对应的这些非空闲区块的该第三数量大于该第二临界值时,使用一第二差距值递减该预设值。
17.如权利要求14所述的用于动态执行存储器回收流程的操作方法,其特征在于:
当该有效页面比例在该第二区间时所对应的这些非空闲区块的该第三数量小于或等于该第二临界值时,使用一第三差距值递增该预设值。
18.如权利要求11所述的用于动态执行存储器回收流程的操作方法,其特征在于,还包括:
耦接该控制器至一主机;以及
依据该主机所传送的指令在该快闪存储器执行该存储器回收流程。
CN201810710169.4A 2017-12-20 2018-07-02 用于动态执行存储器回收数据储存装置与操作方法 Active CN109947355B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW106144825 2017-12-20
TW106144825A TWI643065B (zh) 2017-12-20 2017-12-20 用於動態執行記憶體回收資料儲存裝置與操作方法

Publications (2)

Publication Number Publication Date
CN109947355A CN109947355A (zh) 2019-06-28
CN109947355B true CN109947355B (zh) 2022-05-24

Family

ID=65431904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810710169.4A Active CN109947355B (zh) 2017-12-20 2018-07-02 用于动态执行存储器回收数据储存装置与操作方法

Country Status (3)

Country Link
US (1) US10592412B2 (zh)
CN (1) CN109947355B (zh)
TW (1) TWI643065B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110058794B (zh) * 2018-01-19 2022-11-01 上海宝存信息科技有限公司 用于动态执行垃圾回收数据储存装置与操作方法
TWI718635B (zh) * 2019-03-04 2021-02-11 慧榮科技股份有限公司 非對稱型平面管理方法以及資料儲存裝置及其控制器
CN111651371B (zh) 2019-03-04 2023-06-16 慧荣科技股份有限公司 非对称型平面管理方法以及数据存储装置及其控制器
CN110333770B (zh) * 2019-07-10 2023-05-09 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
TWI775143B (zh) 2020-09-09 2022-08-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
US11494299B2 (en) * 2021-02-18 2022-11-08 Silicon Motion, Inc. Garbage collection operation management with early garbage collection starting point
EP4283473A4 (en) * 2021-08-02 2024-09-04 Samsung Electronics Co Ltd APPARATUS AND METHOD FOR REDUCING MEMORY CLEANING OPERATIONS

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354918A (zh) * 2007-07-25 2009-01-28 慧荣科技股份有限公司 存储装置以及平均使用一快闪式存储器的区块的方法
CN104699622A (zh) * 2013-12-09 2015-06-10 慧荣科技股份有限公司 数据储存装置以及其数据抹除方法
CN105589811A (zh) * 2014-11-10 2016-05-18 慧荣科技股份有限公司 数据储存装置与操作方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444462B2 (en) * 2006-09-28 2008-10-28 Sandisk Corporation Methods for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
CN102576330B (zh) * 2009-06-12 2015-01-28 提琴存储器公司 具有持久化无用单元收集机制的存储系统
TWI605458B (zh) * 2012-04-25 2017-11-11 Sony Corp Non-volatile memory devices, non-volatile memory control devices, and non-volatile memory control methods
US9542119B2 (en) * 2014-07-09 2017-01-10 Toshiba Corporation Solid-state mass storage media having data volumes with different service levels for different data types
TW201606778A (zh) * 2014-08-08 2016-02-16 Toshiba Kk 記憶體系統、主機裝置、資訊處理系統
KR20160027805A (ko) * 2014-09-02 2016-03-10 삼성전자주식회사 비휘발성 메모리 장치를 위한 가비지 컬렉션 방법
KR102371916B1 (ko) * 2015-07-22 2022-03-07 삼성전자주식회사 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법
US9645922B2 (en) * 2015-09-10 2017-05-09 HoneycombData Inc. Garbage collection in SSD drives
TWI591635B (zh) * 2016-02-05 2017-07-11 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354918A (zh) * 2007-07-25 2009-01-28 慧荣科技股份有限公司 存储装置以及平均使用一快闪式存储器的区块的方法
CN104699622A (zh) * 2013-12-09 2015-06-10 慧荣科技股份有限公司 数据储存装置以及其数据抹除方法
CN105589811A (zh) * 2014-11-10 2016-05-18 慧荣科技股份有限公司 数据储存装置与操作方法

Also Published As

Publication number Publication date
CN109947355A (zh) 2019-06-28
TW201928678A (zh) 2019-07-16
US20190188129A1 (en) 2019-06-20
TWI643065B (zh) 2018-12-01
US10592412B2 (en) 2020-03-17

Similar Documents

Publication Publication Date Title
CN109947355B (zh) 用于动态执行存储器回收数据储存装置与操作方法
CN110058794B (zh) 用于动态执行垃圾回收数据储存装置与操作方法
CN109358804B (zh) 一种数据处理方法、装置及闪存设备
CN107608908B (zh) 用于数据储存装置的磨损平均方法
CN109582217B (zh) 数据储存装置与将数据写入存储器装置的方法
US10732905B2 (en) Automatic I/O stream selection for storage devices
US9569352B2 (en) Storage module and method for regulating garbage collection operations based on write activity of a host
US8392649B2 (en) Memory storage device, controller, and method for responding to host write commands triggering data movement
US8572309B2 (en) Apparatus and method to protect metadata against unexpected power down
US20130166824A1 (en) Block management for nonvolatile memory device
CN109426445B (zh) 用以优化数据储存装置的数据储存方法及其数据储存装置
CN104423894A (zh) 数据储存装置以及快闪存储器控制方法
CN108228449B (zh) 终端设备控制方法及装置、终端设备及计算机可读存储介质
CN111324301B (zh) 存储器控制器以及具有存储器控制器的存储器系统
US20210240667A1 (en) User device including storage device and trim management method thereof
US10025670B2 (en) Information processing apparatus, memory dump method, and storage medium
CN112114742B (zh) 数据储存装置与数据处理方法
CN111033466A (zh) 对闪存进行分区以及实现具有映像升级能力的灵活引导
CN109426581B (zh) 用以检测数据储存装置的数据储存方法及其数据储存装置
CN105988875B (zh) 一种运行进程的方法及装置
CN110109851B (zh) 具有主机和存储器控制器的电子系统及其操作方法
CN107844432B (zh) 一种固态硬盘动态垃圾回收的方法及固态硬盘
CN111324303A (zh) Ssd垃圾回收方法、装置、计算机设备及存储介质
CN109426447B (zh) 用以优化数据储存装置的数据储存方法及其数据储存装置
WO2017027747A1 (en) Adaptive data compression for data storage in a memory device

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