CN113282522B - 数据储存装置以及其操作方法 - Google Patents
数据储存装置以及其操作方法 Download PDFInfo
- Publication number
- CN113282522B CN113282522B CN202110757193.5A CN202110757193A CN113282522B CN 113282522 B CN113282522 B CN 113282522B CN 202110757193 A CN202110757193 A CN 202110757193A CN 113282522 B CN113282522 B CN 113282522B
- Authority
- CN
- China
- Prior art keywords
- data
- block
- mapping table
- mapping
- scanning
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 29
- 238000013507 mapping Methods 0.000 claims abstract description 127
- 230000011218 segmentation Effects 0.000 claims description 21
- 230000010076 replication Effects 0.000 abstract 1
- 238000012005 ligant binding assay Methods 0.000 description 21
- 238000012546 transfer Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000008033 biological extinction Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- MCSOAHVAIJXNDN-ZTFGCOKTSA-N ram-322 Chemical compound C1C(=O)CC[C@@]2(O)[C@H]3CC4=CC=C(OC)C(O)=C4[C@]21CCN3C MCSOAHVAIJXNDN-ZTFGCOKTSA-N 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0261—Garbage collection, i.e. reclamation of unreferenced memory using reference counting
-
- 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
- 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
- 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
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据储存装置以及其操作方法,其中非挥发式存储器的垃圾回收为分段进行,以穿插执行一主机下达的主机指令。垃圾回收的有效数据复制(swap)阶段、目的区块的映射表F2H更新阶段、与映射表H2F更新阶段可一同或单独进行分段。
Description
本申请是申请号为201710463318.7的分案申请。
技术领域
本发明有关于数据储存装置,特别有关于其中垃圾回收(garbage collection)技术。
背景技术
数据储存装置所采用的非挥发性存储器有多种形式─例如,快闪存储器(flashmemory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存。
在非挥发性存储器上储存数据时,往往藉由垃圾回收程序来回收不具有有效数据的区块,使该区块经抺写之后可以重新用来储存数据。随着时间的演进,非挥发性存储器的区块的物理结构愈来愈复杂,数据的储存能力也愈来愈巨大,因此,如何在不拖累***资源的前提下,如何有效率地执行垃圾回收程序成为一项重要课题。
发明内容
根据本发明一种实施方式提供的一数据储存装置包括一非挥发式存储器以及一微控制器。该非挥发式存储器包括多个物理区块。该微控制器自这些物理区块中选择一来源区块(source blocks)以及一目的区块(destination block),进行垃圾回收(garbagecollection),将上述来源区块的有效数据分段地收集至上述目的区块。该微控制器于该些有效数据复制至该目的区块的分段间,执行一主机下达的一指令。
根据本发明另一种实施方式提供的一数据储存装置包括一非挥发式存储器以及一微控制器。该非挥发式存储器包括多个物理区块。该微控制器自这些物理区块中选择一来源区块以及一目的区块,并进行一垃圾回收以将上述来源区块的多个有效数据复制至该目的区块,并分段地更新该目的区块的一映射表F2H。该微控制器于更新该目的区块的该映射表F2H的分段间,执行一主机下达的一指令。
根据本发明另一种实施方式提供的一数据储存装置包括一非挥发式存储器以及一微控制器。该微控制器进行一垃圾回收以将这些物理区块的一来源区块的多个有效数据复制至这些物理区块的一目的区块,其中,该微控制器以该目的区块的一尾端为起点,分段地反向扫描该目的区块以更新一映射表H2F。该映射表H2F记录多个数据的多个逻辑地址与多个物理地址的一映射关系。该微控制器于反向扫描该目的区块以更新该映射表H2F的分段间,执行一主机下达的一指令。
根据本发明另一种实施方式提供的一数据储存装置操作方法包括:自一非挥发式存储器的多个物理区块选择一来源区块以及一目的区块;进行一垃圾回收以将上述来源区块的多个有效数据分段地复制至该目的区块;且于该些有效数据复制至该目的区块的分段间,执行一主机下达的一指令。
根据本发明另一种实施方式提供的一数据储存装置操作方法包括:自一非挥发式存储器的多个物理区块选择一来源区块以及一目的区块;进行一垃圾回收以将上述来源区块的多个有效数据复制至该目的区块,并分段地更新该目的区块的一映射表F2H;且于更新该目的区块之该映射表F2H的分段间,执行一主机下达的一指令。
根据本发明另一种实施方式提供的一数据储存装置操作方法包括:自一非挥发式存储器的多个物理区块选择一来源区块以及一目的区块;进行一垃圾回收以将该来源区块的多个有效数据复制至这些物理区块的一目的区块,并以该目的区块的一尾端为起点,分段地反向扫描该目的区块以更新一映射表H2F,该映射表H2F记录多个数据的多个逻辑地址与多个物理地址的一映射关系;且于反向扫描该目的区块以更新该映射表H2F的分段间,执行一主机下达的一指令。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1图解一快闪存储器(Flash memory)100的储存空间规划;
图2图解垃圾回收的概念;
图3以方块图图解根据本发明一种实施方式实现的一数据储存装置300;
图4为流程图,根据本发明一种实施方式说明本发明垃圾回收的分段设计;
图5根据一种实施方式细述步骤S402;
图6根据一种实施方式细述步骤S404;
图7根据一种实施方式细述步骤S408;
图8举例说明映射表H2F的可靠度;
图9举例说明目的区块GC_D的映射表F2H的可靠度;
图10还举另一例说明映射表H2F的可靠度;以及
图11还举另一例说明映射表H2F的可靠度。
符号说明
100~快闪存储器;
200~主机;
300~数据储存装置;
302~控制单元;
304~动态随机存取存储器;
310~线上烧录区块池;
312~***资讯区块池;
314~闲置区块池;
316~数据区块池;
320~微控制器;
322~随机存取记忆空间;
324~只读存储器;
A1、A2~数据;
Active_Blk~主动区块;
B~数据;
BLK#1、BLK#2、BLK#Z~物理区块;
GC_D~垃圾回收之目的区块;
S1、S2~来源区块;Sf~最末来源区块;
S402…S408、S502…S512、S602…S620、S702…S720~步骤;
tb~分段点;
*p~复制尾端指标。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照申请专利范围界定。
非挥发性存储器可以是快闪存储器(Flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)等具有长时间数据保存的存储器装置。以下特别以快闪存储器(Flash memory)为例进行讨论。
图1图解了一快闪存储器(Flash memory)100的物理储存空间规划,系划分为多个物理区块(physical blocks)BLK#1、BLK#2…BLK#Z等,Z为正整数。各物理区块包括多个物理页(physical pages),例如:256个物理页。每一物理页包括一个可储存预设长度的数据的数据区,例如:可储存16KB长度的数据区;除此之外,每一物理页还具有一个备用区,并利用此备用区来储存元数据(metadata)。多个物理页,例如三个,可被同一条字元线(wordline)所存取或管理。每一物理页的数据区可划分为多个储存单元,例如:每一储存单元4KB。每一储存单元可储存一个4KB大小的数据,并将逻辑区块地址(Logical BlockAddress,LBA)(例如:LBA#0)储存于备用区;或者,每一储存单元最多可储存8个512B大小的数据,并将其LBA(例如:LBA#0~LBA#7)储存于备用区。为了简化说明,在本发明中每一储存单元可储存一个4KB大小的数据。数据所对应的LBA(由主机所分配)以及数据储存于快闪存储器100的位置/地址(物理地址)之间的映射关系可以记录至一个映射表H2F,以进行数据的管理。映射表H2F较佳是以LBA为索引依序建立,但不以此为限,映射表H2F也可以依数据储存至快闪存储器的先后顺序来建立。除了映射表H2F之外,使用者可建立其他类型的映射表以管理快闪存储器100所储存的数据,并作为映射表H2F重建的依据。例如,映射表F2H记录数据储存于快闪存储器100的位置/地址以及数据所对应的LBA之间的映射关系,并较佳以物理页或物理页的单元为索引。
现今数据储存装置常以快闪存储器100为储存媒体,常用来实现记忆卡(memorycard)、通用序列汇流排闪存装置(USB flash device)、固态硬碟(SSD)…等产品。有一种应用是采多晶片封装、将快闪存储器100与其控制器包装在一起─称为嵌入式快闪存储器模组(如eMMC)。
快闪存储器100的数据更新并非对同样储存空间作复写,而是将更新数据储存在闲置空间。至于原储存空间的储存内容则转为无效。频繁的写入操作容易致使储存空间充斥无效的储存内容。对于充斥无效物理页的物理区块,快闪存储器100具有垃圾回收(Garbage Collection)设计。图2图解垃圾回收的概念。斜线标示无效数据。来源区块(source blocks)的有效数据将被复制至目的区块(destination block)。当复制完成后,可直接对来源区块执行抹除(erase)动作并将其定义(或变更)为闲置区块(spare block);或者,将此来源区块定义为闲置区块,当闲置区块被选取以储存数据时,再对此闲置区块执行抹除(erase)动作。为了有效率地执行垃圾回收程序,本发明揭露以分段方式执行垃圾回收程序,并于分段之间执行来自于主机的指令,避免***资源被垃圾回收程序所独占而造成***效能低落。
图3以方块图图解根据本发明一种实施方式实现的一数据储存装置300,其中包括快闪存储器100以及一控制单元302。控制单元302耦接于一主机200与该快闪存储器100之间,包括根据主机200所下达的指令操作该快闪存储器100。数据储存装置300还可选择性地设置一个动态随机存取存储器(DRAM)304,作为数据缓冲器。
图示快闪存储器100的储存空间规划包括:线上烧录区块池310、***资讯区块池312、闲置区块池314、数据区块池318、主动区块Active_Blk以及因应垃圾回收需求而产生的目的区块GC_D。线上烧录区块池310的区块储存线上烧录(in-system programming,ISP)的程序。***资讯区块池312的区块储存***资讯─如,映射表H2F。主动区块Active_Blk由闲置区块池314供应,负责接收来自于主机200的数据,待完成数据储存后即推入数据区块池316或定义为数据区块池316的数据区块。垃圾回收程序中的目的区块GC_D系由闲置区块池314供应。垃圾回收程序中的来源区块则可选自该数据区块池316。来源区块的有效内容完全复制至该目的区块GC_D后,来源区块则定义为闲置区块。
控制单元302包括一微控制器320、一随机存取记忆空间322以及一只读存储器324。随机存取记忆空间322较佳为静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。随机存取记忆空间322较佳与微控制器320置于同一个晶粒(die)。动态随机存取存储器304则未与微控制器320置于同一个晶粒。只读存储器324存有只读程序码(如,ROMcode)。微控制器320执行该只读存储器324所载的只读程序码或/以及该快闪存储器100的该线上烧录区块池310所载的线上烧录的程序,以进行运作。微控制器320可以该随机存取存储器322动态整理映射表H2F或分组映射表H2F_G,其中,映射表H2F可分割成多个分组映射表H2F_G,每一分组映射表H2F_G的大小较佳等于一个数据页或储存单元的大小,以利分组映射表H2F_G的储存及管理,但不以此为限。在本发明中将以映射表H2F的整理为例进行说明,但不以此为限。至于主动区块Active_Blk以及目的区块GC_D各自的映射表F2H,微控制器320也可以是在该随机存取存储器322上动态整理。
本发明微控制器320以分段的方式在快闪存储器100执行垃圾回收程序,并于分段期间处理主机200发出的指令(如,读/写要求)。垃圾回收程序大致上包括四个阶段:第一阶段进行有效数据复制(或搬移);第二阶段进行目的区块GC_D的映射表F2H更新;第三阶段进行目的区块GC_D的区块关闭资讯(EOB)储存;以及,第四阶段进行映射表H2F更新。本发明揭露分段执行第一阶段或/以及第二阶段或/以及第四阶段的任务的方法,其中,是否分段执行视使用者需求而决定。
图4为流程图,根据本发明一种实施方式描述垃圾回收程序。参阅图4,垃圾回收程序启动后,步骤S402分段地将有效数据自来源区块(以下标示GC_S)复制至目的区块GC_D,期间穿插执行来自于主机200的指令。待目的区块GC_D不再有位置接受来源区块GC_S的有效数据,步骤S404分段地整理该目的区块GC_D的映射表F2H,期间穿插执行来自于主机200的指令。步骤S406将整理完毕的映射表F2H与其他数据(包括抹除计数…之类)组成区块关闭数据(EOB)填入目的区块GC_D,较佳填入目的区块GC_D的尾端。之后,步骤S408根据目的区块GC_D分段地将相关映射资讯更新至映射表H2F,期间穿插执行来自于主机200的指令。最后,将目的区块GC_D关连至数据区块池316,垃圾回收程序随之完成。
图5根据一种实施方式细述步骤S402。藉步骤S502,有效数据自来源区块GC_S复制至目的区块GC_D,其中,来源区块GC_S选自于数据区块池316,且来源区块GC_S的数量较佳为一个以上。另外,来源区块GC_S的选取可依据一个以上的参数,例如,数据区块池316的数据区块的抹写次数、存取次数、数据写入的先后顺序、数据写入的时间等等,并不以此为限。
步骤S504检查目的区块GC_D是否已无数据收集空间。若目的区块GC_D不再有位置接受来源区块GC_S的有效数据,步骤S506以指标(标号*p,又称复制尾端指标)指向来源区块GC_S中最后一个完成有效料复制的数据页或是储存单元,或是指向来源区块GC_S中下一个执行有效料复制的数据页或是储存单元,流程切入步骤S404。反之,步骤S508还判断分段条件是否满足。若未满足,来源区块GC_S的有效数据继续经步骤S502复制至目的区块GC_D。若满足,步骤S510判断是否有来自于主机200的指令在等待,如果否,来源区块GC_S的有效数据继续经步骤S502复制至目的区块GC_D;如果是,步骤S512将***资源转而用来执行来自于主机200的指令,例如:读取或写入数据,并随之(如,写入数据)更新映射表H2F,之后,重续步骤S502。本发明中用指标为例,进行数据来源或目的的管理,但不以此为限,使用者亦可使用先进先出法(First Input First Output,FIFO)或其他方式进行数据来源或目的的管理。在步骤S512中,***资源可执行来自于主机200的预设数量的指令,例如5个指令。如果闲置的指令超过5个,则剩余的指令将在下一个步骤S512再执行。在步骤S508的分段条件包括预设的时间长度、数据复制量、以及/或来源区块GC_S的更替。其中,时间长度可随着过热降频而拉长。综上所述,步骤S402中有效数据的复制可被中断或分段执行,并利用中断或分段之间的间隔执行来自于主机200的指令,因此,数据储存装置300于执行垃圾回收程序期间,不会一直处于忙碌状态而无法回应来自于主机200的指令,进而改善数据储存装置300的***效能,达到本发明其中之一目的。
图6根据一种实施方式细述步骤S404。步骤S602初始化扫描点,其中,扫描点的标的为目的区块GC_D的数据页或储存单元的地址,标的的内容为数据页或储存单元所储存的数据。由于步骤S512可能导致复制到目的区块GC_D的有效数据不再有效,因此,整理映射表F2H时需重新判断目的区块GC_D的数据的有效性。
步骤S604取得扫描点的标的的内容的LBA。步骤S606判断在映射表H2F中扫描点的内容的逻辑区块地址是否映射至来源区块GC_S。若是,步骤S608判断该扫描点的标的的内容为有效数据。若否,步骤S610判断该扫描点的标的的内容为无效数据。
步骤S612判断扫描是否结束,即判断扫描点的标的是否为目的区块GC_D的最后一个数据页或最后一个储存单元的地址。若结束,则进行步骤S406。若否,步骤S614判断分段条件是否满足。若未满足,步骤S616变更扫描点的标的(如,到下一数据页或下一储存单元),回到步骤S604。若满足,步骤S618将***资源转而用来执行来自于主机200的指令,例如:读取或写入数据,并随之(如,写入数据)更新映射表H2F。
步骤S620判断主动区块Active_Blk是否被填满,进行区块关闭(close)。若是,流程回到步骤S602,重启目的区块GC_D的映射表F2H的扫描。若否,步骤S616变更扫描点的标的。由于主动区块Active_Blk关闭将造成映射表H2F内容的改变(更新)。因此,需重启目的区块GC_D的映射表F2H的扫描,以免造成数据有效性的误判。
综上所述,步骤S404中目的区块GC_D的映射表F2H的整理可被中断或分段执行,并利用中断或分段之间的间隔执行来自于主机200的指令,因此,数据储存装置300于执行垃圾回收程序期间,不会一直处于忙碌状态而无法回应来自于主机200的指令,进而改善数据储存装置300的***效能,达到本发明其中之一目的。
图7根据一种实施方式细述步骤S408。步骤S702初始化扫描点,其中,扫描点的标的为目的区块GC_D的数据页或储存单元的地址,标的的内容为数据页或储存单元所储存的数据。更新H2F的目的区块GC_D扫描较佳实施例为反向扫描。扫描点的标的较佳为目的区块GC_D的最后一个数据页或最后一个储存单元的地址;标的的内容较佳为最后一个数据页或最后一个储存单元所储存的数据。
步骤S704取得扫描点的标的的内容的LBA。步骤S706判断在映射表H2F中扫描点的内容之LBA(即步骤S704取得的逻辑区块地址LBA)是否映射至来源区块GC_S。若是,步骤S708可根据步骤S506所产生的指标*p还判断此来源区块GC_S是否是最末来源区块。若是,执行步骤S710。指标*p将该LBA的有效数据搬移区分成领先及落后。若映射表H2F显示该LBA至该最末来源区块的映射是在该指标*p之前(领先),显示关于该LBA,最新内容已经复制至该目的区块GC_D。步骤S712随之执行,更新映射表H2F,使该逻辑区块地址LBA指向该目的区块GC_D。若映射表H2F显示该逻辑区块地址LBA至该最末来源区块的映射是在该指标*p之后(落后),显示关于该LBA,该目的区块GC_D内容早已不是最新内容。关于该LBA的映射,步骤S712需跳过─不能使映射表H2F错误指向目的区块GC_D中旧的内容,而是要保持映射表H2F目前正确指向来源区块Sf的状况。
至于步骤S708判定是来源区块GC_S但非最末来源区块的状况,则无有效数据尚未完全搬移的问题,故可略过步骤S710的判断而进入步骤S712,更新映射表H2F,使该LBA指向该目的区块GC_D。
至于步骤S706判定非来源区块的状况,表示目的区块GC_D关于该LBA的内容已非最新,流程直接跳到步骤S712之后─不能使映射表H2F错误指向目的区块GC_D中旧的内容,而是要保持映射表H2F目前正确指向。
步骤S714判断目的区块GC_D的扫描是否结束。若结束,则垃圾回收完成。若未结束,步骤S716判断分段条件是否满足。若未满足,步骤S718变更扫描点的标的(如,前推扫描点,以符合目的区块GC_D的由下往上扫描),回到步骤S704。若满足,步骤S720将***资源转而用来执行来自于主机200的指令,并随之(如,写入要求)更新映射表H2F相关内容。
以下举例说明以上流程设计如何确保映射数据可靠度。图8举例说明映射表H2F的可靠度。图8分段点tb之前,映射表H2F随着扫描目的区块GC_D而更新(例如,根据图7流程扫描目的区块GC_D而做映射表H2F更新)。扫描未完成即面临分段点tb(例如,图7 S716满足分段条件)。分段点tb之后,***资源改执行来自于主机200的指令,并随之(如,写入要求)即时更新映射表H2F相关内容(图7步骤S720)。
在分段点tb之后,映射表H2F的可靠度分两个方向讨论。一是分段点tb之后,适应主机200要求而改动的数据。一是分段点tb之后,映射表H2F相关内容尚未指向目的区块GC_D但也没有被主机200改动的数据。关于分段点tb之后,因应主机200要求而改动的数据,其映射表H2F相关内容有即时更新(如步骤S720),故其于映射表H2F的映射资讯可靠。至于分段点tb之后,映射表H2F相关内容尚未指向目的区块GC_D但也没有被主机200改动的数据,其映射仍是指向来源区块GC_S,故仍是指向可用内容。综上,第8图分段点tb前后的映射表H2F都具备高可靠度。
图9举例说明目的区块GC_D的映射表F2H的可靠度。数据A1自来源区块GC_S复制至目的区块GC_D后,还更新成数据A2存于主动区块Active_Blk。数据A2写入时,目的区块GC_D的映射表F2H的扫描已经进行到数据A1之后。稍早扫描至目的区块GC_D的数据A1时,由于数据A2的写入尚未发生,映射表H2F相关内容是指向数据A1的来源区块GC_S,目的区块GC_D上的数据A1是被视为有效。然而,数据A2写入发生后,映射表H2F相关内容改指向主动区块Active_Blk。此时,若目的区块GC_D映射表F2H仍显示目标区块GC_D的数据A1为有效,则会发生错误。所幸,主动区块Active_Blk之区块关闭时,目的区块GC_D的映射表F2H扫描将重新执行(S620至S602)。再次的扫描行动中,因为目的区块GC_D数据A1在映射表H2F相关内容是指向主动区块Active_Blk─非来源区块GC_S,因此目的区块GC_D的数据A1将被订正为无效。本发明技术使目的区块GC_D的映射表F2H具备高可靠度。
图10还举另一例说明映射表H2F的可靠度。来源区块S1的数据A1在垃圾回收分段间隔被来自于主机200的指令更新为数据A2,且接收该数据A2的主动区块后来也被选作来源区块Sn。数据A1以及A2都被复制入目的区块GC_D。反向扫描该目的区块GC_D以更新映射表H2F前,来自于主机200的指令更新数据A2已使得映射表H2F相关内容指向来源区块Sn。反向扫描该目的区块GC_D到数据A2时,其在映射表H2F中指向来源区块Sn的相关内容使得目的区块GC_D上数据A2被视为有效,映射表H2F相关内容改指向目的区块GC_D的数据A2(图7步骤S712)。后续扫描到数据A1时,其在映射表H2F中指向目的区块GC_D的相关内容使得目的区块GC_D上数据A1被视为无效(图7步骤S706的"否"),映射表H2F相关内容不会被错误改成指向目的区块GC_D的数据A1(掠过步骤S712)。
图11还举另一例说明映射表H2F的可靠度。来源区块S1的数据A1在垃圾回收分段间隔被主机指令更新为数据A2,且接收该数据A2的主动区块后来成为最末来源区块Sf。指标*p(第5图步骤S506)标示有效数据搬移进度。如图所示,来源区块S1的数据A1已被复制入目的区块GC_D。至于来源区块Sf,如指标*p所示,仅数据B被复制到目的区块GC_D,数据A2未能复制至目的区块GC_D。依照图7流程反向扫描该目的区块GC_D以更新映射表H2F前,主机指令更新数据A2已使得映射表H2F相关内容指向最末来源区块Sf。同样地,数据B的映射表H2F相关内容也是指向最末来源区块Sf。随着图7流程进行,反向扫描该目的区块GC_D到数据B时,其在映射表H2F中指向最末来源区块Sf的相关内容触发比对指标*p(步骤S710)。数据B的复制领先该指标*p,故目的区块GC_D上数据B被视为有效,映射表H2F相关内容改指向目的区块GC_D(步骤S712)。后续扫描到数据A1时,其在映射表H2F中指向最末来源区块Sf(数据A2)的相关内容触发比对指标*p(步骤S710)。数据A2的复制落后该指标*p,故目的区块GC_D上数据A1被视为无效,步骤S712略过,映射表H2F相关内容不会被错误改成指向目的区块GC_D的数据A1。
其他采用上述概念完分段式垃圾回收的技术都属于本发明所欲保护的范围。基于以上技术内容,本发明更涉及数据储存装置操作方法。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要救亡收界定为准。
Claims (6)
1.一种数据储存装置,包括:
一非挥发式存储器,包括多个物理区块;以及
一微控制器,进行一垃圾回收以将这些物理区块的一来源区块的多个有效数据复制至这些物理区块之一目的区块,其中,该微控制器以该目的区块的一尾端为起点,分段地反向扫描该目的区块以更新一映射表H2F,该映射表H2F记录多个数据的多个逻辑地址与多个物理地址的一映射关系,该微控制器于反向扫描该目的区块以更新该映射表H2F的分段间,执行一主机下达的一指令;
其中:
该微控制器还依据一复制尾端来判断该来源区块里尚未被复制的这些有效数据;
该微控制器建立一扫描点以反向扫描该目的区块;且
该微控制器在该映射表H2F中关于该扫描点上数据的映射资讯于该复制尾端之前时,修正该映射表H2F关于该扫描点上数据的映射资讯指向该目的区块的该扫描点,反之,不修正该映射表H2F关于该扫描点上数据的映射资讯指向该目的区块的该扫描点。
2.如权利要求1所述的数据储存装置,其特征在于,该来源区块里尚未被复制的这些有效数据于该映射表H2F的映射资讯优先于反向扫描该目的区块所获得的相关映射资讯。
3.如权利要求1所述的数据储存装置,其特征在于:
分段条件与一预设的时间长度或该映射表H2F的一更新量相关。
4.一种数据储存装置操作方法,包括:
自一非挥发式存储器的多个物理区块选择一来源区块以及一目的区块;
进行一垃圾回收以将该来源区块的多个有效数据复制至这些物理区块的一目的区块,并以该目的区块的一尾端为起点,分段地反向扫描该目的区块以更新一映射表H2F,该映射表H2F记录多个数据的多个逻辑地址与多个物理地址的一映射关系;
于反向扫描该目的区块以更新该映射表H2F的分段间,执行一主机下达的一指令;
依据一复制尾端来判断该来源区块里尚未被复制的这些有效数据;
建立一扫描点以反向扫描该目的区块;且
在该映射表H2F中关于该扫描点上数据的映射资讯于该复制尾端之前时,修正该映射表H2F关于该扫描点上数据的映射资讯指向该目的区块的该扫描点,反之,不修正该映射表H2F关于该扫描点上数据的映射资讯指向该目的区块的该扫描点。
5.如权利要求4所述的数据储存装置操作方法,其特征在于,该来源区块里尚未被复制的这些有效数据于该映射表H2F的映射资讯优先于反向扫描该目的区块所获得的相关映射资讯。
6.如权利要求4所述的数据储存装置操作方法,其特征在于:
分段条件与一预设的时间长度或该映射表H2F的一更新量相关。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110757193.5A CN113282522B (zh) | 2017-03-07 | 2017-06-19 | 数据储存装置以及其操作方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106107357 | 2017-03-07 | ||
TW106107357A TWI653533B (zh) | 2017-03-07 | 2017-03-07 | 資料儲存裝置以及其操作方法 |
CN202110757193.5A CN113282522B (zh) | 2017-03-07 | 2017-06-19 | 数据储存装置以及其操作方法 |
CN201710463318.7A CN108572922A (zh) | 2017-03-07 | 2017-06-19 | 数据储存装置以及其操作方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710463318.7A Division CN108572922A (zh) | 2017-03-07 | 2017-06-19 | 数据储存装置以及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113282522A CN113282522A (zh) | 2021-08-20 |
CN113282522B true CN113282522B (zh) | 2024-07-05 |
Family
ID=63444632
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710463318.7A Pending CN108572922A (zh) | 2017-03-07 | 2017-06-19 | 数据储存装置以及其操作方法 |
CN202110757193.5A Active CN113282522B (zh) | 2017-03-07 | 2017-06-19 | 数据储存装置以及其操作方法 |
CN202110761083.6A Pending CN113342707A (zh) | 2017-03-07 | 2017-06-19 | 数据储存装置以及其操作方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710463318.7A Pending CN108572922A (zh) | 2017-03-07 | 2017-06-19 | 数据储存装置以及其操作方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110761083.6A Pending CN113342707A (zh) | 2017-03-07 | 2017-06-19 | 数据储存装置以及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10642729B2 (zh) |
CN (3) | CN108572922A (zh) |
TW (1) | TWI653533B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI619018B (zh) * | 2016-11-10 | 2018-03-21 | 慧榮科技股份有限公司 | 可用於資料儲存裝置之垃圾蒐集方法 |
KR20190005307A (ko) * | 2017-07-06 | 2019-01-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20190040607A (ko) * | 2017-10-11 | 2019-04-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN112055843B (zh) * | 2017-12-13 | 2024-02-06 | 美光科技公司 | 同步化nand逻辑到物理表区跟踪 |
US10489291B2 (en) * | 2018-01-23 | 2019-11-26 | Goke Us Research Laboratory | Garbage collection method for a data storage apparatus by finding and cleaning a victim block |
TWI721365B (zh) * | 2018-09-17 | 2021-03-11 | 慧榮科技股份有限公司 | 高效能垃圾收集方法以及資料儲存裝置及其控制器 |
CN114528226A (zh) | 2018-09-17 | 2022-05-24 | 慧荣科技股份有限公司 | 高效能垃圾收集方法以及数据存储装置及其控制器 |
US10884954B2 (en) | 2018-09-17 | 2021-01-05 | Silicon Motion, Inc. | Method for performing adaptive locking range management, associated data storage device and controller thereof |
TWI676176B (zh) * | 2018-10-25 | 2019-11-01 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
CN111610930B (zh) * | 2019-02-26 | 2023-05-02 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
TWI706250B (zh) * | 2019-02-26 | 2020-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
KR20200119059A (ko) | 2019-04-09 | 2020-10-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US11237973B2 (en) | 2019-04-09 | 2022-02-01 | SK Hynix Inc. | Memory system for utilizing a memory included in an external device |
KR20210011216A (ko) * | 2019-07-22 | 2021-02-01 | 에스케이하이닉스 주식회사 | 메모리 시스템의 메타 데이터 관리 방법 및 장치 |
KR20200132047A (ko) | 2019-05-15 | 2020-11-25 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치 |
KR20210011201A (ko) | 2019-07-22 | 2021-02-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 온도 조절 방법 |
KR20210011176A (ko) | 2019-07-22 | 2021-02-01 | 에스케이하이닉스 주식회사 | 메모리 시스템의 액세스 동작 방법 및 장치 |
CN112130750B (zh) * | 2019-06-25 | 2023-11-07 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
TWI688956B (zh) * | 2019-08-28 | 2020-03-21 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI724550B (zh) * | 2019-09-19 | 2021-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
US11210168B1 (en) * | 2020-06-25 | 2021-12-28 | Micron Technology, Inc. | Error handling optimization in memory sub-system mapping |
CN112433958B (zh) * | 2020-11-17 | 2023-04-14 | 合肥康芯威存储技术有限公司 | 一种固态硬盘的垃圾回收方法、***、装置及其存储介质 |
US12045461B2 (en) * | 2022-07-28 | 2024-07-23 | Micron Technology, Inc. | Temporal metric driven media management scheme |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5777608A (en) | 1989-03-10 | 1998-07-07 | Board Of Regents, The University Of Texas System | Apparatus and method for in-parallel scan-line graphics rendering using content-searchable memories |
US6621746B1 (en) * | 2002-02-27 | 2003-09-16 | Microsoft Corporation | Monitoring entropic conditions of a flash memory device as an indicator for invoking erasure operations |
US8504798B2 (en) * | 2003-12-30 | 2013-08-06 | Sandisk Technologies Inc. | Management of non-volatile memory systems having large erase blocks |
US20060184718A1 (en) | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
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 |
US8166205B2 (en) * | 2007-07-31 | 2012-04-24 | Cisco Technology, Inc. | Overlay transport virtualization |
US8751755B2 (en) | 2007-12-27 | 2014-06-10 | Sandisk Enterprise Ip Llc | Mass storage controller volatile memory containing metadata related to flash memory storage |
KR20130031046A (ko) | 2011-09-20 | 2013-03-28 | 삼성전자주식회사 | 플래시 메모리 장치 및 플래시 메모리 장치의 데이터 관리 방법 |
JP5586718B2 (ja) * | 2012-06-19 | 2014-09-10 | 株式会社東芝 | 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 |
CN103677653B (zh) * | 2012-09-21 | 2017-07-25 | 联想(北京)有限公司 | 一种基于ssd的数据处理方法及电子设备 |
US9448919B1 (en) * | 2012-11-13 | 2016-09-20 | Western Digital Technologies, Inc. | Data storage device accessing garbage collected memory segments |
KR20140080660A (ko) * | 2012-12-13 | 2014-07-01 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 시스템의 동작 방법 |
CN103336744B (zh) * | 2013-06-20 | 2015-11-04 | 华中科技大学 | 一种固态存储设备的垃圾回收方法及其*** |
US9208074B2 (en) * | 2013-08-30 | 2015-12-08 | Silicon Motion, Inc. | Updating address mapping in sub-intervals in a flash memory data storage device |
CN104699626B (zh) * | 2013-12-10 | 2019-02-19 | 中兴通讯股份有限公司 | 终端内存处理方法、装置及终端 |
US9632880B2 (en) * | 2013-12-26 | 2017-04-25 | Silicon Motion, Inc. | Data storage device and flash memory control method |
CN104090847B (zh) * | 2014-06-25 | 2017-01-11 | 华中科技大学 | 一种固态存储设备的地址分配方法 |
TWI546666B (zh) * | 2014-11-03 | 2016-08-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
US9928871B2 (en) * | 2015-10-01 | 2018-03-27 | Kabushiki Kaisha Toshiba | Storage device and a method for defect scanning of the same |
KR20170075855A (ko) * | 2015-12-23 | 2017-07-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102625637B1 (ko) * | 2016-02-01 | 2024-01-17 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN106445832A (zh) * | 2016-09-06 | 2017-02-22 | 深圳市先天海量信息技术有限公司 | 闪存存储***的地址映射方法及装置 |
JP6524039B2 (ja) * | 2016-09-23 | 2019-06-05 | 東芝メモリ株式会社 | メモリシステム及び制御方法 |
-
2017
- 2017-03-07 TW TW106107357A patent/TWI653533B/zh active
- 2017-06-19 CN CN201710463318.7A patent/CN108572922A/zh active Pending
- 2017-06-19 CN CN202110757193.5A patent/CN113282522B/zh active Active
- 2017-06-19 CN CN202110761083.6A patent/CN113342707A/zh active Pending
- 2017-11-02 US US15/802,065 patent/US10642729B2/en active Active
-
2018
- 2018-11-20 US US16/197,034 patent/US10783071B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TW201833777A (zh) | 2018-09-16 |
US10642729B2 (en) | 2020-05-05 |
CN113282522A (zh) | 2021-08-20 |
CN108572922A (zh) | 2018-09-25 |
US20190087326A1 (en) | 2019-03-21 |
CN113342707A (zh) | 2021-09-03 |
TWI653533B (zh) | 2019-03-11 |
US10783071B2 (en) | 2020-09-22 |
US20180260132A1 (en) | 2018-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113282522B (zh) | 数据储存装置以及其操作方法 | |
CN110058796B (zh) | 数据储存装置 | |
CN113168408B (zh) | 利用压缩的键值存储树数据块溢出 | |
US7487303B2 (en) | Flash memory device and associated data merge method | |
JP3708047B2 (ja) | フラッシュメモリの管理方法 | |
US8612719B2 (en) | Methods for optimizing data movement in solid state devices | |
CN110895514A (zh) | 映射表更新方法 | |
EP1909184A2 (en) | Mapping information managing apparatus and method for non-volatile memory supporting different cell types | |
CN110618945B (zh) | 存储*** | |
CN108228471B (zh) | 管理存储器装置中存储器单元的实体信息的方法及*** | |
KR20130066525A (ko) | 데이터 이용가능성의 마운트타임 조정 | |
US10120583B2 (en) | Performance penalty avoidance for solid state drive | |
KR20140006234A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
CN106598504B (zh) | 数据存储方法及装置 | |
JP2010287049A (ja) | メモリシステムおよびメモリシステムの管理方法 | |
CN112835811A (zh) | 存储器***及其操作方法 | |
TWI556103B (zh) | 記憶體裝置及其資料存取方法 | |
US11392310B2 (en) | Memory system and controller | |
KR20150139383A (ko) | 반도체 장치 | |
US12039193B2 (en) | Apparatus, method and computer program for managing memory page updates within non-volatile memory | |
JP2013109404A (ja) | 情報処理装置 | |
CN112527692B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN116501655A (zh) | 将存储器块解除分配的存储控制器及其操作方法 | |
CN113010447A (zh) | 用于存储器子***的媒体管理的快照读取优化 | |
KR20190088671A (ko) | 낸드 플래시 메모리 장치 |
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 |