CN110895514A - 映射表更新方法 - Google Patents

映射表更新方法 Download PDF

Info

Publication number
CN110895514A
CN110895514A CN201910370083.6A CN201910370083A CN110895514A CN 110895514 A CN110895514 A CN 110895514A CN 201910370083 A CN201910370083 A CN 201910370083A CN 110895514 A CN110895514 A CN 110895514A
Authority
CN
China
Prior art keywords
block
data
mapping table
host
controller
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.)
Pending
Application number
CN201910370083.6A
Other languages
English (en)
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 CN110895514A publication Critical patent/CN110895514A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

一种映射表更新方法,执行于数据存储装置中,数据存储装置包括非易失性存储器与控制器,且所述映射表更新方法包括如下步骤。首先,令控制器处理自于主机所下达的命令,并且当命令为写入命令时,判断是否触发执行部分垃圾回收程序。如果是,控制器依照分段条件来将至少一来源区块内的局部有效数据复制到目的区块中,并且以所复制的局部有效数据的逻辑地址,及所述局部有效数据所在目的区块的物理地址来更新数据存储装置的逻辑至物理地址映射表,然后返回执行令控制器处理自于主机所下达的命令。

Description

映射表更新方法
技术领域
本发明涉及一种映射表更新方法,尤其涉及一种能够因应垃圾回收(GarbageCollection,GC)程序的逻辑至物理地址(Logical-to-Physical Address)映射表更新方法。
背景技术
一般来说,数据存储装置是由控制器与非易失性存储器,例如闪速存储器(FlashMemory)所构成,且非易失性存储器的使用情况又主要以映射表来作管理,例如逻辑至物理地址映射表即用来显示主机端的逻辑地址与非易失性存储器端的物理地址的映射关系。因此,如何来维护映射表为本领域的一项重要课题,尤其是当数据存储装置因应垃圾回收程序而复制来源区块(Source Block)内的有效数据到目的区块(Destination Block)时,本领域亟需一种能够准确更新逻辑至物理地址映射表的方法。
发明内容
为达上述目的,本发明实施例提供一种映射表更新方法,执行于数据存储装置中,数据存储装置包括非易失性存储器与控制器,且所述映射表更新方法包括如下步骤。首先,令控制器处理自于主机所下达的命令,并且当命令为写入命令时,判断是否触发执行部分垃圾回收程序。如果是,控制器依照分段条件来将至少一来源区块内的局部有效数据复制到目的区块中,并且以所复制的局部有效数据的逻辑地址,及所述局部有效数据所在目的区块的物理地址来更新数据存储装置的逻辑至物理地址映射表,然后返回执行令控制器处理自于主机所下达的命令。
为使能更进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,但是此等说明与所附图式仅是用来说明本发明,而非对本发明的权利范围作任何的限制。
附图说明
图1是本发明实施例所提供的数据存储装置的功能方块示意图。
图2是本发明实施例所提供的垃圾回收程序的运作示意图。
图3是本发明实施例所提供的映射表更新方法的流程示意图。
图4A~图4C是图3的映射表更新方法中步骤S320~步骤S330的运作示意图。
图5是本发明另一实施例所提供的映射表更新方法的流程示意图。
图6是图5的映射表更新方法中根据L2P备份表来回复L2P表的运作示意图。
具体实施方式
在下文中,将借由图式说明本发明的各种实施例来详细描述本发明。然而,本发明概念可能以许多不同形式来体现,且不应解释为限于本文中所阐述的例示性实施例。此外,在图式中相同参考数字可用以表示类似的元件。
首先,请参阅图1,图1是本发明实施例所提供的数据存储装置的功能方块示意图。数据存储装置1包括非易失性存储器110与控制器120,且非易失性存储器110包括多个区块(未绘示),每一区块又包含多个页面(Pages),而每一页面则用来存储一笔主机数据或是多笔主机数据。在本实施例中,一笔主机数据较佳为4KB,但本发明并不以此为限制。总而言之,页面即为写入或读取数据时的最小单元,而区块则为数据擦除的最小单元。因此,区块依据其功能又可区分为闲置(Spare)区块、主动(Active)区块与数据区块,其中闲置区块为可被选取并写入数据的区块,主动区块为已被选取并正在写入数据的区块,数据区块则为完成数据写入且不再写入数据的区块。需要说明的是,本发明并不限制区块及页面的具体实现方式,本领域技术人员应可依据实际需求或应用来进行相关设计。此外,在本实施例中,非易失性存储器110较佳是以闪速存储器来实现,但本发明亦不以此为限制。
控制器120电性耦接于非易失性存储器110,并且用来控制非易失性存储器110内的数据存取。必须了解的是,数据存储装置1通常是会与主机2一起使用,并且根据主机2所下达的写入/读取命令,来将主机数据写入到非易失性存储器110中,或者从非易失性存储器110中读取主机数据。因此,在本实施例中,控制器120较佳相应为闪速存储器控制器(FlashController),且其包括接口逻辑122、微处理器124以及控制逻辑126。微处理器124电性耦接于接口逻辑122与控制逻辑126,并用以通过接口逻辑122来接收自于主机2所下达的写入/读取命令,以及通过控制逻辑126来存取非易失性存储器110中的主机数据。另外,在本实施例中,数据存储装置1更可包括动态随机存取存储器(Dynamic Random AccessMemory,DRAM)130,电性耦接于控制器120,并且用来作为数据缓冲器。又或者是,在其它实施例中,数据存储装置1的控制器120也可直接使用主机2的DRAM(未绘示)来作为数据缓冲器。
如同前面内容所述,为了进行数据的管理与存取,因此,数据存储装置1必须建立及存储至少一映射表,例如逻辑至物理地址映射表,在本实施例中将它简称为L2P表,并且于数据存储装置1运作时,微处理器124会从非易失性存储器110中读取L2P表,并且上传到DRAM 130或主机2的DRAM中,以增加数据管理与存取上的效率。但对于DRAM 130或主机2的DRAM的大小不足以存储一整个L2P表的数据存储装置1而言,亦即在DRAM 130或主机2的DRAM只能存储局部L2P表的情况下,微处理器124就必须频繁地去存取非易失性存储器110中的L2P表,以交换(Swap)或替代暂存在DRAM 130或主机2的DRAM中的局部L2P表。因此,为了有效管理L2P表,L2P表较佳可分割成多个子L2P表,例如1024个子L2P表,如此一来,控制器120便可依据DRAM 130或主机2的DRAM的大小,而上传全部或多个子L2P表到DRAM130或主机2的DRAM中。
另外,L2P表所显示的主机端的逻辑地址是能够以多种形式,例如逻辑区块地址(Logical Block Address,LBA)或全域主机页面(Global Host Page,GHP)来实现,且逻辑区块地址LBA及全域主机页面GHP较佳分别对应于不同大小的主机数据,例如512B及4KB的主机数据。此外,L2P表较佳可依照全域主机页面GHP的顺序而建立,也就是说全域主机页面GHP可为项目(索引)值,而非易失性存储器110的物理地址就为项目(索引)的内容值,如此一来,L2P表的大小亦可有效降低。然而,为了方便以下说明,本实施例的L2P表较佳是以全域主机页面GHP来作索引,并且记录各全域主机页面GHP的主机数据是被存储在非易失性存储器110的哪个物理地址,亦即哪个区块的哪个页面,但本发明并不以此为限制。
另一方面,非易失性存储器110有一种特殊的物理特性,那就是数据的更新并非会在同一物理地址上作复写,而是将更新的主机数据写入于闲置的物理地址中,并将全域主机页面GHP对应至新的物理地址,此时原物理地址的旧主机数据就可转为无效数据。如此一来,频繁的写入操作必会使得非易失性存储器110充斥着无效数据,所以垃圾回收程序才因应而发展出。在本实施例中,执行垃圾回收程序的触发条件可例如是非易失性存储器110的闲置区块的总数低于第一临界值,或者是任一数据区块的读取次数高于第二临界值,又或者是任一数据区块的建立时间长于第三临界值,但本发明均不以此为限制。总而言之,本发明并不限制执行垃圾回收程序的触发条件,本领域技术人员应可依据实际需求或应用来进行相关设计。接着,图2将用来解释本实施例的垃圾回收程序的运作原理,其中图2的斜线部分即用来表示无效数据。
如图2所示,假如当两数据区块,例如,区块Blk2与区块Blk3先后被选作为来源区块时,数据存储装置1就会连续地将来源区块Blk2与来源区块Blk3内的全部有效数据,例如全域主机页面GHP0~GHP5的主机数据复制到因应垃圾回收程序而选取的目的区块,例如区块Blk10中,以完成整个垃圾回收程序。可以理解的是,所述目的区块Blk10较佳选自于包含多个闲置区块的一闲置区块池(未绘示),但本发明并不以此为限制,并且在执行垃圾回收程序时,目的区块Blk10将可被重新定义为主动区块,所以其标号可同样表示为Act1,但本发明亦不以此为限制。另外,当来源区块Blk2或来源区块Blk3内的有效数据都已复制成功后,数据存储装置1还可来对来源区块Blk2或来源区块Blk3进行擦除动作,并将其重新定义为闲置区块,以释出存储空间。又或者是,在其它实施例中,数据存储装置1也可先将来源区块Blk2或来源区块Blk3重新定义为闲置区块,之后当区块Blk2或区块Blk3被选为主动区块时,才进行上述擦除动作,总而言之,本发明亦不限制擦除来源区块时的具体实现方式,本领域技术人员应可依据实际需求或应用来进行相关设计。
然而,为了简化垃圾回收程序的复杂度,习知的映射表更新方法是在目的区块Blk10已写满数据并被重新定义为数据区块后,亦即来源区块Blk2与来源区块Blk3内的全部有效数据都已复制成功,并使目的区块Blk10写满数据后,数据存储装置1才“一次性地”将目的区块Blk10中的逻辑地址及物理地址更新至L2P表。但因为在更新L2P表的期间内,数据存储装置1无法处理/回应自于主机2所下达的写入/读取命令,以致于造成数据存储装置1的整体效能明显下降,而此下降的幅度在仅配置小量数据缓冲器的数据存储装置1中更为显著,这是因为在更新L2P表的过程中,微处理器124还必须频繁地去对非易失性存储器110作存取,即读取适当的子L2P表,并将更新后的子L2P表写回至非易失性存储器110,所以就会有更长的时间而没有办法处理/回应来自主机2所下达的写入/读取命令。
图3是本发明实施例所提供的映射表更新方法的流程示意图,需要说明的是,图3的映射表更新方法是可执行于图1的数据存储装置1中,但本发明并不限制图3的映射表更新方法仅能够执行于图1的数据存储装置1中。另外,如同前面内容所述,本发明并不限制执行垃圾回收程序的触发条件,但为了及时处理来自主机2所下达的写入/读取命令,所以本实施例的垃圾回收程序乃分段执行,而每段垃圾回收程序又称为部分垃圾回收程序,并且于执行每段的部分垃圾回收程序间控制器120亦可处理来自主机2所下达的写入/读取命令。首先,在步骤S300中,本实施例令控制器120处理自于主机2所下达的命令,并且当所述命令为写入命令时,本实施例则接续执行步骤S310,如果不是,即返回执行步骤S300。在步骤S310中,控制器120判断是否触发执行部分垃圾回收程序。如果是,即接续执行步骤S320,如果不是,则返回执行步骤S300。
在步骤S320中,控制器120依照一分段条件来将至少一来源区块内的局部有效数据复制到目的区块中,例如请一并参阅图2,当第一次执行到步骤S320时,控制器120可先复制来源区块Blk2与来源区块Blk3内的2笔有效数据到目的区块Blk10中,之后当第二次执行到步骤S320时,控制器120可再复制来源区块Blk2与来源区块Blk3内的另2笔有效数据到目的区块Blk10中;或者当第一次执行到步骤S320时,控制器120可先复制来源区块Blk2与来源区块Blk3内的64个页面中的有效数据到目的区块中,而此时的这64个页面中可能全部或仅部分存储有有效数据,但本发明均不以此为限制,之后当第二次执行到步骤S320时,控制器120可再复制来源区块Blk2与来源区块Blk3内的另64个页面中的有效数据到目的区块中。总而言之,本发明并不限制所述分段条件的具体实现方式,本领域技术人员应可依据实际需求或应用来进行相关设计。另外,来源区块内的有效数据所复制到目的区块的位置则较佳可由控制器120所决定。
另一方面,在步骤S320中,控制器120更可建立一逻辑至物理地址备份表,在本实施例中将它简称为L2P备份表,以用来记录所复制的所述局部有效数据的逻辑地址,及所述局部有效数据所在来源区块的物理地址,并且为了有效管理L2P备份表,控制器120较佳可将L2P备份表存储于一表格区块(未绘示)中,而所述表格区块则同样选自于包含多个闲置区块的闲置区块池,但本发明亦不以此为限制。接着,在步骤S330中,控制器120以所复制的所述局部有效数据的逻辑地址,及所述局部有效数据所在目的区块的物理地址来更新L2P表,并且返回执行步骤S300。可以理解的是,当某一主机数据存储至某一主动区块的页面时,控制器120较佳可将所述主机数据的逻辑地址记录至所述主动区块的闲置区域(SpareArea),或者记录至所述主动区块的区块关闭资讯(End of Block,EOB)中。接着,在所述主动区块被重新定义为数据区块以及被选取为来源区块后,当所述主机数据被视为有效数据而复制到目的区块时,控制器120就较佳可自前述闲置区域或区块关闭资讯中,取得所述主机数据的逻辑地址,并且配合所述主机数据所被复制在目的区块的物理地址来直接更新L2P表。
仔细地说,如果步骤S300的命令为非写入命令的话,本实施例就不会接续执行步骤S310,也就是返回执行步骤S300,直到当控制器120处理到主机2的写入命令时,本实施例才接续执行步骤S310。另外,为了方便以下说明,本实施例将先探讨步骤S320的分段条件是指每次仅复制2笔有效数据到目的区块中,但其并非用以限制本发明。因此,请一并参阅图4A~图4C,图4A~图4C是图3的映射表更新方法中步骤S320~步骤S330的运作示意图,其中图4A~图4C又采用如同图2的来源区块的例子来作说明,但其亦非用以限制本发明。如图4A所示,在控制器120判断触发执行第一段的部分垃圾回收程序后,控制器120可将来源区块Blk2与来源区块Blk3内的2笔有效数据,例如来源区块Blk2内的全域主机页面GHP0~GHP1的主机数据,复制到目的区块Blk10的页面P#0~P#1中,然后控制器120以所复制的主机数据的逻辑地址,及所述主机数据所在目的区块Blk10的物理地址来直接更新L2P表。也就是说,此时的L2P表即记录逻辑地址为全域主机页面GHP0~GHP1的主机数据是存储在目的区块Blk10的页面P#0~P#1中,但L2P备份表(未绘示)则依旧记录逻辑地址为全域主机页面GHP0~GHP1的主机数据是存储在来源区块Blk2的页面P#0及P#2中。
然而,为了避免数据存储装置1一直处于执行垃圾回收程序而无法回应自于主机2所下达的命令,因此,在图4A的更新L2P表后,控制器120就可转而用来处理自于主机2所下达的其他命令,例如读取命令。接着,如果控制器120又再处理到(下个)写入命令的话,控制器120就会判断是否触发执行第二段的部分垃圾回收程序。在本实施例中,控制器120较佳可于执行每段的部分垃圾回收程序前穿插处理预设数量的主机命令,但本发明并不以此为限制。也就是说,在本实施例中,执行部分垃圾回收程序的触发条件还可例如是已处理过的主机命令超过所述预设数量,或者是当步骤S300的执行时间超过预设时间长度时,控制器120就可再度执行步骤S320,亦即执行下一段的部分垃圾回收程序。总而言之,本发明并不限制控制器120处理主机命令,以及判断是否触发执行(每段的)部分垃圾回收程序时的具体实现方式,本领域技术人员应可依据实际需求或应用来进行相关设计。
接着,如图4B所示,在控制器120再度执行步骤S320时,即执行第二段的部分垃圾回收程序,控制器120则将来源区块Blk2与来源区块Blk3内的另2笔有效数据,例如来源区块Blk2内的全域主机页面GHP2~GHP3的主机数据,复制到目的区块Blk10的页面P#2~P#3中,然后控制器120以所复制的主机数据的逻辑地址,及所述主机数据所在目的区块Blk10的物理地址来直接更新L2P表,所以此时的L2P表即记录逻辑地址为全域主机页面GHP2~GHP3的主机数据是存储在目的区块Blk10的页面P#2~P#3中,但L2P备份表则依旧记录逻辑地址为全域主机页面GHP2~GHP3的主机数据是存储在来源区块Blk2的页面P#4及P#5中。
类似地,如图4C所示,在控制器120又再度执行步骤S320时,即执行第三段的部分垃圾回收程序,控制器120则将来源区块Blk2与来源区块Blk3内的另2笔有效数据,例如来源区块Blk3内的全域主机页面GHP4~GHP5的主机数据,复制到目的区块Blk10的页面P#4~P#5中,然后控制器120以所复制的主机数据的逻辑地址,及所述主机数据所在目的区块Blk10的物理地址来直接更新L2P表,所以此时的L2P表即记录逻辑地址为全域主机页面GHP4~GHP5的主机数据是存储在目的区块Blk10的页面P#4~P#5中,但L2P备份表则依旧记录逻辑地址为全域主机页面GHP4~GHP5的主机数据是存储在来源区块Blk3的页面P#1及P#4中。
综上所述,本实施例采用部分垃圾回收程序来将来源区块Blk2与来源区块Blk3内的有效数据,例如全域主机页面GHP0~GHP3以及全域主机页面GHP4~GHP5的主机数据,分段地复制到目的区块Blk10中,并且根据所复制的局部有效数据来直接更新数据存储装置1的L2P表,而非等到目的区块Blk10写满主机数据后,例如全域主机页面GHP0~GHP5的主机数据都已复制成功后,才一次性地更新L2P表。另外,在执行每段的部分垃圾回收程序前(或称执行复制/更新前),控制器120更可穿插处理自于主机2所下达的命令,以藉此达到改善整体效能低落的目的。
在其它实施例中,执行部分垃圾回收程序所复制的主机数据也可来自于不同来源区块,例如若同样以图2的来源区块Blk2与来源区块Blk3作说明,并且假设分段条件是改指每次复制3笔有效数据到目的区块Blk10的话,因此,在执行第一段的部分垃圾回收程序时,控制器120可复制来源区块Blk2的全域主机页面GHP0~GHP2的主机数据到目的区块Blk10中,但在执行第二段的部分垃圾回收程序时,控制器120则复制来源区块Blk2的全域主机页面GHP3的主机数据,以及来源区块Blk3的全域主机页面GHP4~GHP5的主机数据到目的区块Blk10中。总而言之,如同前面内容所述,本发明并不限制所述分段条件的具体实现方式,本领域技术人员应可依据实际需求或应用来进行相关设计。
另一方面,考量到目的区块Blk10可能因为异常事件,例如断电事件,或者写入/读回失败,而必需予以丢弃。为了避免上述问题,本发明的映射表更新方法可再进一步改良,请参阅图5,图5是本发明另一实施例所提供的映射表更新方法的流程示意图。需要说明的是,图5的映射表更新方法是可同样执行于图1的数据存储装置1中,但本发明亦不限制图5的映射表更新方法仅能够执行于图1的数据存储装置1中。另外,图5中部分与图3相同的流程步骤以相同的图号标示,故于此便不再多加详述其细节。相较于图3的步骤S310,在控制器120判断触发执行部分垃圾回收程序后,图5的映射表更新方法更可包括步骤S312及步骤S314。
在步骤S312中,控制器120判断目的区块是否曾发生异常事件。如果是,则先执行步骤S314,然后再接续执行步骤S320与步骤S330;如果不是,则直接执行步骤S320与步骤S330。在步骤S314中,控制器120根据L2P备份表来回复(Roll Back)数据存储装置1的L2P表,也就是说回复L2P表乃以L2P备份表所记录的逻辑地址为准,将L2P备份表内的逻辑地址所对应的物理地址(来源区块)替代掉L2P表内的逻辑地址所对应的物理地址(目的区块)。
图6是图5的映射表更新方法中根据L2P备份表来回复L2P表的运作示意图。例如,在控制器120执行部分垃圾回收程序后,来源区块Blk2与来源区块Blk3内的全域主机页面GHP0~GHP5的主机数据被分段地复制到目的区块Blk10中,并且分段地来直接更新L2P表,但如果此时发生了异常事件,造成控制器120必需得丢弃目的区块Blk10的话,控制器120则根据L2P备份表来回复数据存储装置1的L2P表,使得L2P表回复成记录来源区块Blk2与来源区块Blk3的主机数据的逻辑地址与非易失性存储器110的物理地址的映射关系。由于逻辑地址与物理地址的映射关被正确地回复(或替代),因此,丢弃目的区块Blk10并不会造成主机数据的遗失或者数据管理上的困扰。
当然地,由于目的区块Blk10已被丢弃,为了执行部分垃圾回收程序,控制器120较佳会从闲置区块池中选择另一闲置区块,例如区块Blk12(未绘示)来作为新的目的区块,而且在接续的步骤S320中,控制器120较佳也会选择由第一段的部分垃圾回收程序来从头执行,亦即依照分段条件将区块Blk2内的全域主机页面GHP0~GHP1的主机数据再复制到(新的)目的区块Blk12中,并且直接更新L2P表,然后返回执行令控制器120处理自于主机2所下达的命令,直到控制器120再度执行步骤S320,控制器120则将区块Blk2内的全域主机页面GHP2~GHP3的主机数据再复制到目的区块Blk12中,以此类推。总而言之,在每次执行步骤S330前,控制器120更利用L2P备份表来备份L2P表中所记录有关本次复制的有效数据的映射关系。
必须了解的是,建立L2P备份表所需的资源或成本虽然很小,但却可以有效克服异常事件所产生的技术课题,以256GB大小的数据存储装置1为例,L2P表的大小为256MB,但L2P备份表的大小却可能只要小于4MB。另外,本发明并不限制异常事件的种类,异常事件可能是指断电事件,或者写入/读回失败等等,总而言之,本领域技术人员应可依据实际需求或应用来进行相关设计。
综上所述,本发明实施例所提供的映射表更新方法是会采用部分垃圾回收程序来将至少一来源区块内的有效数据分段地复制到目的区块中,并且根据所复制的局部有效数据来直接更新数据存储装置的L2P表,而非等到来源区块内的全部有效数据都已复制成功后才一次性地更新L2P表,并且在执行每次复制/更新前穿插处理自于主机所下达的命令,以达到改善整体效能低落的现象。除此之外,在执行每次复制前(或称执行每段的部分垃圾回收程序前),本实施例更会去检查是否须根据所建立的L2P备份表来回复L2P表,以避免更新后的L2P表指向曾因发生突发的断电事件,或者写入/读回失败而中止的目的区块,并且在执行每次更新前,本实施例都利用L2P备份表来备份L2P表中所记录有关本次复制的有效数据的映射关系。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的方法及技术内容作出些许的更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (4)

1.一种映射表更新方法,执行于一数据存储装置中,其特征在于,所述数据存储装置包括一非易失性存储器与一控制器,所述映射表更新方法包括:
步骤A:令所述控制器处理自于一主机所下达的一命令,并且当所述命令为一写入命令时,判断是否触发执行一部分垃圾回收程序;
如果是,则执行步骤B:依照一分段条件来将至少一来源区块内的局部有效数据复制到一目的区块中;以及
步骤C:以所复制的所述局部有效数据的逻辑地址,及所述局部有效数据所在所述目的区块的物理地址来更新所述数据存储装置的一逻辑至物理地址映射表,并且返回执行所述步骤A。
2.如权利要求1所述的映射表更新方法,其特征在于,所述非易失性存储器包括多个区块,所述多个区块的每一个更包括多个页面,且所述多个区块分为闲置区块、主动区块与数据区块,而所述至少一来源区块即选自于多个所述数据区块,且所述目的区块则选自于多个所述闲置区块。
3.如权利要求2所述的映射表更新方法,其特征在于,在执行所述步骤B中,所述控制器更建立一逻辑至物理地址备份表,以用来记录所复制的所述局部有效数据的所述逻辑地址,及所述局部有效数据所在所述来源区块的所述物理地址。
4.如权利要求3所述的映射表更新方法,其特征在于,在判断触发执行所述部分垃圾回收程序后,所述映射表更新方法更包括:
判断所述目的区块是否曾发生异常事件,其中所述异常事件包括断电事件,或者写入/读回失败;
如果是,则先执行步骤A1:根据所述逻辑至物理地址备份表来回复所述逻辑至物理地址映射表,然后再接续执行所述步骤B与所述步骤C;以及
如果不是,则直接执行所述步骤B与所述步骤C。
CN201910370083.6A 2018-09-11 2019-05-06 映射表更新方法 Pending CN110895514A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862729556P 2018-09-11 2018-09-11
US62/729556 2018-09-11

Publications (1)

Publication Number Publication Date
CN110895514A true CN110895514A (zh) 2020-03-20

Family

ID=69719181

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910370083.6A Pending CN110895514A (zh) 2018-09-11 2019-05-06 映射表更新方法
CN201910461259.9A Active CN110888594B (zh) 2018-09-11 2019-05-30 数据存储装置及其校验码处理方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910461259.9A Active CN110888594B (zh) 2018-09-11 2019-05-30 数据存储装置及其校验码处理方法

Country Status (3)

Country Link
US (2) US20200081780A1 (zh)
CN (2) CN110895514A (zh)
TW (2) TWI703438B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111737165A (zh) * 2020-07-02 2020-10-02 群联电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制电路单元
CN113970999A (zh) * 2020-07-24 2022-01-25 旺宏电子股份有限公司 存储器装置以及用于操作存储器装置的方法
US11755242B2 (en) 2020-06-22 2023-09-12 Phison Electronics Corp. Data merging method, memory storage device for updating copied L2P mapping table according to the physical address of physical unit

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110895513A (zh) * 2018-09-12 2020-03-20 华为技术有限公司 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法
KR102637478B1 (ko) * 2018-12-05 2024-02-15 삼성전자주식회사 오픈 채널 솔리드 스테이트 드라이브, 이를 포함하는 비휘발성 메모리 시스템 및 오픈 채널 솔리드 스테이트 드라이브의 파워 로스 프로텍션 방법
KR102659832B1 (ko) * 2019-03-05 2024-04-22 삼성전자주식회사 데이터 저장 장치 및 시스템
KR20210044564A (ko) * 2019-10-15 2021-04-23 삼성전자주식회사 스토리지 장치 및 그것의 가비지 컬렉션 방법
US11216207B2 (en) * 2019-12-16 2022-01-04 Silicon Motion, Inc. Apparatus and method for programming user data on the pages and the parity of the page group into flash modules
CN113806133A (zh) * 2020-06-12 2021-12-17 华为技术有限公司 一种数据写入方法和装置
US11513891B2 (en) 2020-07-24 2022-11-29 Kioxia Corporation Systems and methods for parity-based failure protection for storage devices
US11561722B2 (en) * 2020-08-25 2023-01-24 Micron Technology, Inc. Multi-page parity data storage in a memory device
CN112364273A (zh) * 2020-09-18 2021-02-12 上海泛微软件有限公司 入口页面生成方法、装置、设备及计算机可读存储介质
US11500782B2 (en) * 2020-12-18 2022-11-15 Micron Technology, Inc. Recovery of logical-to-physical table information for a memory device
CN112799765B (zh) * 2021-01-30 2022-10-11 交通银行股份有限公司 一种基于页面编码的智能跳转方法、设备及存储介质
CN112799601B (zh) * 2021-02-24 2023-06-13 群联电子股份有限公司 有效数据合并方法、存储器存储装置及控制电路单元
TWI821965B (zh) 2021-09-29 2023-11-11 慧榮科技股份有限公司 編碼歷程資訊的存取方法及電腦程式產品及裝置
US11972150B2 (en) 2021-09-29 2024-04-30 Silicon Motion, Inc. Method and non-transitory computer-readable storage medium and apparatus for programming data into flash memory through dedicated acceleration hardware
US11860775B2 (en) 2021-09-29 2024-01-02 Silicon Motion, Inc. Method and apparatus for programming data into flash memory incorporating with dedicated acceleration hardware
TWI805231B (zh) 2022-02-18 2023-06-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
TW202334821A (zh) 2022-02-18 2023-09-01 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120151124A1 (en) * 2010-12-08 2012-06-14 Sung Hoon Baek Non-Volatile Memory Device, Devices Having the Same, and Method of Operating the Same
US8407449B1 (en) * 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
CN107967125A (zh) * 2017-12-20 2018-04-27 北京京存技术有限公司 闪存转换层的管理方法、装置及计算机可读存储介质
CN108038026A (zh) * 2017-11-17 2018-05-15 中国科学院信息工程研究所 一种基于闪存的数据快速恢复方法与系统
CN108089822A (zh) * 2017-12-20 2018-05-29 北京京存技术有限公司 存储芯片的管理方法、系统、设备及存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2912299B2 (ja) * 1997-06-10 1999-06-28 四国日本電気ソフトウェア株式会社 ディスクアレイ制御装置
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
JP2009187139A (ja) * 2008-02-04 2009-08-20 Hitachi Ltd ストレージシステム
US8533564B2 (en) * 2009-12-23 2013-09-10 Sandisk Technologies Inc. System and method of error correction of control data at a memory device
US8775868B2 (en) * 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
CN102591737B (zh) * 2011-01-13 2015-04-22 群联电子股份有限公司 数据写入与读取方法、存储器控制器与存储器储存装置
US20130304970A1 (en) * 2012-04-20 2013-11-14 Stec, Inc. Systems and methods for providing high performance redundant array of independent disks in a solid-state device
US8996951B2 (en) * 2012-11-15 2015-03-31 Elwha, Llc Error correction with non-volatile memory on an integrated circuit
US10013203B2 (en) * 2013-01-04 2018-07-03 International Business Machines Corporation Achieving storage compliance in a dispersed storage network
US9535774B2 (en) * 2013-09-09 2017-01-03 International Business Machines Corporation Methods, apparatus and system for notification of predictable memory failure
WO2015173925A1 (ja) * 2014-05-15 2015-11-19 株式会社日立製作所 ストレージ装置
US20150349805A1 (en) * 2014-05-28 2015-12-03 Skymedi Corporation Method of Handling Error Correcting Code in Non-volatile Memory and Non-volatile Storage Device Using the Same
CN104166634A (zh) * 2014-08-12 2014-11-26 华中科技大学 一种固态盘系统中的映射表缓存管理方法
CN107787485B (zh) * 2015-04-30 2021-04-09 马维尔以色列(M.I.S.L.)有限公司 多读取和写入端口存储器
CN106326136A (zh) * 2015-07-02 2017-01-11 广明光电股份有限公司 固态硬盘搜集垃圾区块的方法
TWI569139B (zh) * 2015-08-07 2017-02-01 群聯電子股份有限公司 有效資料合併方法、記憶體控制器與記憶體儲存裝置
TWI591482B (zh) * 2016-01-30 2017-07-11 群聯電子股份有限公司 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
CN107391026B (zh) * 2016-04-27 2020-06-02 慧荣科技股份有限公司 闪存装置及闪存存储管理方法
CN106802777A (zh) * 2017-01-20 2017-06-06 杭州电子科技大学 一种用于固态存储设备的闪存转换层控制方法
TWI670594B (zh) * 2018-01-18 2019-09-01 慧榮科技股份有限公司 資料儲存裝置
US20190243578A1 (en) * 2018-02-08 2019-08-08 Toshiba Memory Corporation Memory buffer management for solid state drives
US10970170B2 (en) * 2019-08-29 2021-04-06 Micron Technology, Inc. Shared parity protection
JP7034132B2 (ja) * 2019-12-20 2022-03-11 株式会社日立製作所 ストレージシステムおよびストレージシステムのデータ圧縮方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407449B1 (en) * 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
US20120151124A1 (en) * 2010-12-08 2012-06-14 Sung Hoon Baek Non-Volatile Memory Device, Devices Having the Same, and Method of Operating the Same
CN108038026A (zh) * 2017-11-17 2018-05-15 中国科学院信息工程研究所 一种基于闪存的数据快速恢复方法与系统
CN107967125A (zh) * 2017-12-20 2018-04-27 北京京存技术有限公司 闪存转换层的管理方法、装置及计算机可读存储介质
CN108089822A (zh) * 2017-12-20 2018-05-29 北京京存技术有限公司 存储芯片的管理方法、系统、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱海滨等: "《分布式系统原理与设计》", 30 September 1997 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11755242B2 (en) 2020-06-22 2023-09-12 Phison Electronics Corp. Data merging method, memory storage device for updating copied L2P mapping table according to the physical address of physical unit
CN111737165A (zh) * 2020-07-02 2020-10-02 群联电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制电路单元
CN111737165B (zh) * 2020-07-02 2023-09-12 群联电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制电路单元
CN113970999A (zh) * 2020-07-24 2022-01-25 旺宏电子股份有限公司 存储器装置以及用于操作存储器装置的方法

Also Published As

Publication number Publication date
TW202011187A (zh) 2020-03-16
TWI773890B (zh) 2022-08-11
CN110888594B (zh) 2023-04-14
TWI703438B (zh) 2020-09-01
US11068391B2 (en) 2021-07-20
US20200081780A1 (en) 2020-03-12
US20200081832A1 (en) 2020-03-12
CN110888594A (zh) 2020-03-17
TW202011195A (zh) 2020-03-16

Similar Documents

Publication Publication Date Title
CN110895514A (zh) 映射表更新方法
US8332576B2 (en) Data reading method for flash memory and controller and storage system using the same
CN110908925B (zh) 高效能垃圾收集方法以及数据存储装置及其控制器
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
US20170228154A1 (en) Device and method for power loss protection in solid state drive
US20150186224A1 (en) Data storage device and flash memory control method
CN105718530B (zh) 文件存储系统及其文件存储控制方法
US20150331624A1 (en) Host-controlled flash translation layer snapshot
US20090307413A1 (en) Data writing method for flash memory and storage system and controller using the same
US10838629B2 (en) Solid state device with fast boot after ungraceful shutdown
JP2012203443A (ja) メモリシステムおよびメモリシステムの制御方法
JP2009237668A (ja) フラッシュメモリを用いた記憶装置
US20120278535A1 (en) Data writing method, memory controller, and memory storage apparatus
US20100306447A1 (en) Data updating and recovering methods for a non-volatile memory array
CN110674056B (zh) 一种垃圾回收方法及装置
US20100318726A1 (en) Memory system and memory system managing method
US8261013B2 (en) Method for even utilization of a plurality of flash memory chips
US10942811B2 (en) Data processing method for solid state drive
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
TWI639112B (zh) 儲存裝置及其控制單元、可用於儲存裝置的資料儲存方法
US20230044942A1 (en) Conditional update, delayed lookup
CN108509295B (zh) 存储器系统的操作方法
TWI729674B (zh) 資料儲存裝置及其垃圾蒐集方法
CN117539692B (zh) 一种zns固态硬盘数据集管理命令实现方法
US10732875B2 (en) Data processing method for solid state drive

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