CN107102953A - 非易失性存储器装置及其迭代排序方法 - Google Patents

非易失性存储器装置及其迭代排序方法 Download PDF

Info

Publication number
CN107102953A
CN107102953A CN201710043274.2A CN201710043274A CN107102953A CN 107102953 A CN107102953 A CN 107102953A CN 201710043274 A CN201710043274 A CN 201710043274A CN 107102953 A CN107102953 A CN 107102953A
Authority
CN
China
Prior art keywords
candidate
solid block
ordered set
block
solid
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
Application number
CN201710043274.2A
Other languages
English (en)
Other versions
CN107102953B (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.)
Via Technologies Inc
Original Assignee
Via Technologies 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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN107102953A publication Critical patent/CN107102953A/zh
Application granted granted Critical
Publication of CN107102953B publication Critical patent/CN107102953B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/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
    • 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/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • 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/7207Details relating to flash memory management management of metadata or control data
    • 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/7211Wear leveling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

非易失性存储器(NVM)装置及其迭代排序方法。所述NVM装置可以进行迭代排序方法来从非易失性存储器的多个实体块中选择一个目标实体块,以及对该目标实体块进行管理操作。迭代排序方法包括:从所述实体块中选择多个候选实体块加入排序集合,依照元数据来排序在排序集合中的所有候选实体块,从排序集合中取走具有最大(或最小)元数据的一个候选实体块作为该目标实体块,以及保留排序集合中的M个候选实体块且将其余候选实体块从排序集合舍弃。

Description

非易失性存储器装置及其迭代排序方法
技术领域
本发明涉及一种存储器装置,且特别涉及一种非易失性存储器装置及其迭代排序方法。
背景技术
与传统的硬盘机(hard disk drives)相比,由于快闪存储器(flash memory)存储设备的读/写性能佳且功耗低,使得快闪存储器被广泛应用于数据存储系统中。快闪转换层(Flash Translation Layer,FTL)是快闪存储器型存储设备的核心部分。快闪转换层不仅负责调度数据路径任务(data path tasks,亦即有关于性能),而且还管理着快闪存储器的可靠性(reliability,亦即有关于耐久性)。快闪转换层为现有技术,故不再赘述。
快闪转换层操作,例如磨损平衡(wear leveling)、垃圾收集(garbagecollection)或巡检读取(patrol read),利用了来自于存储设备的多个实体块(block)的一些元数据(metadata)。这些实体块的每一个各自具有不同的元数据,以记录自己实体块本身的管理信息或计数值。例如,每个实体块的所述元数据可能包括编程/抹除(program/erase)计数、无效数据计数(invalid data count)以及时间标记(time stamp)。每当快闪转换层需要执行磨损平衡、垃圾收集或巡检读取时,所述元数据(即这些实体块)需要被排序(或至少需要找到最大或最小值)。如何找出这些元数据的最大值(或最小值),或是排序这些元数据,是一个重要的课题。
发明内容
本发明提供一种非易失性存储器装置及其迭代排序方法,以从多个候选实体块中选择一个目标实体块去进行管理操作。
本发明的实施例提供一种非易失性存储器装置。非易失性存储器装置包括非易失性存储器以及控制器。非易失性存储器具有多个实体块。控制器耦接至非易失性存储器。控制器可以进行迭代排序方法来从这些实体块的K个候选实体块中选择一个目标实体块,以及对该目标实体块进行管理操作。迭代排序方法包括:从所述K个候选实体块中任意选择N-M个候选实体块加入排序集合,依照元数据(metadata)来排序该排序集合中的所有候选实体块,经排序后从该排序集合中取走具有最大元数据或最小元数据的一个候选实体块作为该目标实体块,以及在从该排序集合中取走该目标实体块后保留该排序集合中的M个候选实体块且将其余候选实体块从该排序集合舍弃。其中,K、M、N为整数,且K>N>M。
本发明的实施例提供一种非易失性存储器装置的迭代排序方法,用以从多个实体块的K个候选实体块中选择一个目标实体块,以便对该目标实体块进行一管理操作。所述迭代排序方法包括下述步骤。从所述K个候选实体块中任意选择N-M个候选实体块加入排序集合。依照元数据来排序该排序集合中的所有候选实体块。经排序后,从该排序集合中取走具有最大元数据或最小元数据的一个候选实体块作为该目标实体块。在从该排序集合中取走该目标实体块后,保留该排序集合中的M个候选实体块,且将其余候选实体块从该排序集合舍弃。其中,K、M、N为整数,且K>N>M。
基于上述,本发明实施例所提供的非易失性存储器装置及其迭代排序方法,其可以在一个排序集合中保留了前次迭代的M个候选实体块,并且从非易失性存储器装置的多个实体块中任意选择N-M个实体块加入该排序集合,然后依照元数据来排序该排序集合中的所有实体块。藉由迭代抽样方法(iterative sampling method)找最大值/最小值块,然后去进行管理操作。该排序集合中的实体块的数量可以远小于非易失性存储器装置的实体块的数量。与传统解决方案相比较,由于更小的排序空间,因此复杂度低得多,且搜索延迟较小。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是依照本发明一实施例说明一种非易失性存储器装置的电路方块(circuitblock)示意图。
图2是依照本发明一实施例说明一种迭代排序方法的流程示意图。
图3A至图3E与图4A至图4E是以磨损平衡作为应用例,说明在迭代排序方法进行过程中的所述排序集合SS示意图。
图5是依照本发明另一实施例说明一种非易失性存储器装置的电路方块(circuitblock)示意图。
【符号说明】
10:主机
100、500:非易失性存储器装置
110、110’:控制器
111:中央处理单元
112:存储器控制电路
113:存储器缓冲器
114:迭代排序电路
115:错误校验纠正(ECC)电路
120:非易失性存储器
B1~B14:候选实体块
PE:编程/抹除计数
S210~S260:步骤
SS:排序集合
具体实施方式
在本申请说明书全文(包括权利要求书)中所使用的“耦接(或连接)”一词可指任何直接或间接的连接手段。举例而言,若文中描述第一装置耦接(或连接)于第二装置,则应该被解释成该第一装置可以直接连接于该第二装置,或者该第一装置可以通过其他装置或某种连接手段而间接地连接至该第二装置。另外,凡可能之处,在图式及实施方式中使用相同标号的元件/构件/步骤代表相同或类似部分。不同实施例中使用相同标号或使用相同用语的元件/构件/步骤可以相互参照相关说明。
图1是依照本发明一实施例说明一种非易失性存储器装置100的电路方块(circuit block)示意图。依照设计需求,非易失性存储器装置100可以是随身碟、固态硬盘(solid state disc,SSD)或是其他存储装置。非易失性存储器装置100可以耦接至主机(host)10。此主机10可以是计算机、手持式电话、多媒体播放器、相机或是其他电子装置。非易失性存储器装置100包括控制器110以及非易失性存储器120。依照设计需求,非易失性存储器120可以是与非快闪存储器(NAND flash memory)或是其他非易失性存储电路/元件。非易失性存储器120具有多个实体块(block),以便存放数据。
控制器110耦接至非易失性存储器120。控制器110可以依照主机10的写入命令(write command)的逻辑地址而存取非易失性存储器120。在一些实施例中,所述逻辑地址信息可以是逻辑块地址(logical block address,LBA)或是其他逻辑地址。当主机10对非易失性存储器装置100发出一个写入命令时,控制器110会将此主机写入命令转换(或解码)为多个内部写入动作/指令。所述“将一个主机写入命令转换为多个内部写入动作/指令”即为写入放大(Write Amplification,WA)。写入放大主要是为了内部写入操作,例如垃圾收集(garbage collection)、磨损平衡(wear leveling)和/或其他管理性写入操作,以便管理数据更新和存储耐久性(storage endurance)。除此之外,控制器110还可以对存取非易失性存储器120进行其他管理操作,例如巡检读取(patrol read)或是其他快闪转换层(Flash Translation Layer,FTL)操作等。所述管理操作(例如磨损平衡、垃圾收集或巡检读取)为现有技术,故不再赘述。
管理操作往往需要利用来自于非易失性存储器120的多个实体块的一些元数据(metadata)。这些实体块的每一个各自具有不同的元数据,以记录自己实体块本身的管理信息或计数值。例如,每个实体块的所述元数据可能包括编程/抹除(program/erase)计数、无效数据计数(invalid data count)以及时间标记(time stamp)。每当控制器110需要执行管理操作(例如磨损平衡、垃圾收集或巡检读取)时,所述元数据(即这些实体块)需要被排序(或至少需要找到最大或最小值),以便从这些实体块找出一个目标实体块。控制器110还可以对存取非易失性存储器120进行“迭代排序方法”,来从非易失性存储器120的K个候选实体块中选择一个目标实体块,以及对该目标实体块进行管理操作(容后详述)。
在图1所示实施例中,控制器110包括中央处理单元111、存储器控制电路112、存储器缓冲器113、迭代排序电路114与错误校验纠正(Error Checking and Correcting,以下称ECC)电路115。中央处理单元111经由通信接口耦接至主机10。依照设计需求,所述通信接口包括小型计算机系统接口(small computer system interface,SCSI)、串行连接小型计算机系统接口(Serial Attached SCSI,SAS)、增强型小型装置接口(Enhanced Small DiskInterface,ESDI)、串行先进技术连接(serial advanced technology attachment,SATA)、快速周边元件互连(peripheral component interconnect express,PCI-express)、整合式电子装置(integrated drive electronics,IDE)接口、通用串行总线(universalserial bus,USB)、雷电(Thunderbolt)接口或其他接口。本实施例并没有限制主机10与非易失性存储器装置100之间的接口结构。
当主机10发出写入命令时,待写入的数据可以被暂存于存储器缓冲器113,而中央处理单元111可以将主机10的写入命令(包含逻辑地址)转换/解码为对应的内部控制信号(包含非易失性存储器120的物理地址),并将内部控制信号提供给存储器控制电路112和/或存储器缓冲器113。存储器缓冲器113的例子包括动态随机存取存储器(dynamic randomaccess memory,DRAM)、静态随机存取存储器(static random access memory,SRAM)或是其他易失性存储器(volatile memory)。ECC电路115可以执行ECC算法,以便将暂存于存储器缓冲器113的数据加以编码为码字(codeword)。在一些实施例中,ECC电路115可以执行BCH(Bose-Chaudhuri-Hocquengh)码算法、低密度同位校验(Low Density Parity Check,LDPC)码算法或是其他ECC算法。依照内部控制信号,存储器控制电路112可以定址/控制非易失性存储器120,以便将码字写入非易失性存储器120。
当主机10发出读取命令时,中央处理单元111可以将主机10的读取命令(包含逻辑地址)转换/解码为对应的内部控制信号(包含非易失性存储器120的物理地址)。依照内部控制信号,存储器控制电路112可以定址/控制非易失性存储器120,以便将非易失性存储器120内的码字读出。ECC电路115可以执行ECC算法,以便将码字解码为数据,并将经解码的数据暂存于存储器缓冲器113。然后,中央处理单元111可以将暂存于存储器缓冲器113的数据回传给主机10。
控制器110的迭代排序电路114可以对存取非易失性存储器120进行“迭代排序方法”,来从非易失性存储器120的K个候选实体块中选择一个目标实体块。依据迭代排序电路114所选择的目标实体块,中央处理单元111可以对该目标实体块进行管理操作。举例来说,图2是依照本发明一实施例说明一种迭代排序方法的流程示意图。本实施例所提出的想法是藉由迭代抽样方法(iterative sampling method)找最大值/最小值块。图2所示流程绘示了一次迭代的各个步骤。请参照图1与图2,控制器110的迭代排序电路114可以在步骤S210中判定此次迭代是否为首次迭代。若步骤S210判定此次迭代为首次迭代,则迭代排序电路114可以进行步骤S220。若步骤S210判定此次迭代非为首次迭代,则迭代排序电路114可以进行步骤S230。
在步骤S220中,控制器110的迭代排序电路114可以从非易失性存储器120的K个候选实体块中任意选择N个候选实体块作为排序集合,其中K、N为整数,且K>N。在步骤S230中,控制器110的迭代排序电路114可以从非易失性存储器120的K个候选实体块中任意选择N-M个候选实体块加入该排序集合,其中M为整数,且K>N>M。本实施例并不限定步骤S220与步骤S230中所述“任意选择”的实现方式。举例来说(但不限于此),所述“任意选择”可以是利用任何随机算法而从多个实体块中选择一个或多个候选实体块。
所述K个候选实体块的定义,是指在非易失性存储器120的所有实体块中,适合进行某一个管理操作的部分实体块集合。迭代排序电路114可以从这些K个候选实体块选择一个目标实体块,然后中央处理单元111可以对该目标实体块进行管理操作。举例来说,当该管理操作为磨损平衡(wear leveling)操作时,所述K个候选实体块为在非易失性存储器120的所有实体块中的所有自由实体块。当该管理操作为垃圾收集(garbage collection)操作时,所述K个候选实体块为在非易失性存储器120的所有实体块中的所有已写满实体块。当该管理操作为巡检读取(patrol read)操作时,所述K个候选实体块为在非易失性存储器120的所有实体块中的所有已写满实体块。
在步骤S240中,控制器110的迭代排序电路114可以依照元数据(metadata)来排序在所述排序集合中的所有候选实体块。本实施例并不限定步骤S240的排序操作的实施方式。举例来说,迭代排序电路114可以采用任何排序算法,来依照元数据(metadata)对在所述排序集合中的所有候选实体块进行排序。该排序集合中的候选实体块的数量N可以远小于非易失性存储器120的所有候选实体块的数量K。所述数量N可以依照设计需求来决定。例如,非易失性存储器120的所有候选实体块的数量K可能是几百万(或更多),而该排序集合中的候选实体块的数量N可以是几个或几十个(例如N=30)。与传统解决方案相比较,由于更小的排序空间,因此复杂度低得多,且搜索延迟较小。
依照管理操作的需求,在步骤S240的所述排序操作,可以是递增排序,也可以是递减排序。举例来说,当该管理操作为磨损平衡(wear leveling)操作时,步骤S240的所述元数据为编程/抹除计数(program/erase),而步骤S240的所述排序操作可以是递增排序。当该管理操作为垃圾收集(garbage collection)操作时,步骤S240的所述元数据为无效数据计数(invalid data count),而步骤S240的所述排序操作可以是递减排序。当该管理操作为巡检读取(patrol read)操作时,步骤S240的所述元数据为时间标记(time stamp),而步骤S240的所述排序操作可以是递增排序。
在步骤S250中,控制器110的迭代排序电路114可以从该排序集合中取走具有最大元数据(或最小元数据)的一个候选实体块作为该目标实体块。举例来说,当该管理操作为磨损平衡(wear leveling)操作时,步骤S250可以从该排序集合中取走具有最小元数据(最小编程/抹除计数)的一个候选实体块作为该目标实体块。当该管理操作为垃圾收集(garbage collection)操作时,步骤S250可以从该排序集合中取走具有最大元数据(最大无效数据计数)的一个候选实体块作为该目标实体块。当该管理操作为巡检读取(patrolread)操作时,步骤S250可以从该排序集合中取走具有最小元数据(最早时间标记)的一个候选实体块作为该目标实体块。因此,控制器110的中央处理单元111可以对该目标实体块进行管理操作。
在步骤S260中,控制器110的迭代排序电路114可以保留该排序集合中的M个候选实体块,且将其余候选实体块从该排序集合舍弃。所述数量M可以依照设计需求来决定。步骤S260可以从该排序集合中保留具有最大元数据(或最小元数据)的M个候选实体块。举例来说,当该管理操作为磨损平衡(wear leveling)操作时,步骤S260可以从该排序集合中保留具有最小元数据(最小编程/抹除计数)的M个候选实体块。当该管理操作为垃圾收集(garbage collection)操作时,步骤S260可以从该排序集合中保留具有最大元数据(最大无效数据计数)的M个候选实体块。当该管理操作为巡检读取(patrol read)操作时,步骤S260可以从该排序集合中保留具有最小元数据(最早时间标记)的M个候选实体块。
举例来说,图3A至图3E与图4A至图4E是以磨损平衡作为应用例,说明在迭代排序方法进行过程中的所述排序集合SS示意图。在图3A至图3E与图4A至图4E所示实施例中,排序集合SS中的候选实体块的数量N被设定为8,而该排序集合中的候选实体块的保留数量M被设定为2。依照设计需求,在其他实施例中,数量N和/或数量M可以被设定为其他数值。
图3A至图3E说明控制器110在进行首次迭代的过程。在排序集合SS没有有效候选实体块时,或是非易失性存储器装置100被初始化后,则迭代排序电路114可以进行步骤S220,以从非易失性存储器120的K个候选实体块中任意选择N个候选实体块作为排序集合SS。请参照图3A,迭代排序电路114从非易失性存储器120的K个候选实体块中任意选择8个候选实体块(例如图3A所示候选实体块B1~B8)作为排序集合SS。其中,假设候选实体块B1的编程/抹除计数PE(元数据)为10,候选实体块B2的编程/抹除计数PE为14,候选实体块B3的编程/抹除计数PE为7,候选实体块B4的编程/抹除计数PE为68,候选实体块B5的编程/抹除计数PE为52,候选实体块B6的编程/抹除计数PE为33,候选实体块B7的编程/抹除计数PE为3,而候选实体块B8的编程/抹除计数PE为25。
请参照图3B,控制器110的迭代排序电路114在步骤S240中依照编程/抹除计数PE来排序在所述排序集合SS中的所有候选实体块B1~B8(递增排序)。
请参照图3C,控制器110的迭代排序电路114在步骤S250中可以从排序集合SS中取走具有最小编程/抹除计数PE的一个候选实体块作为该目标实体块。在图3C所示实施例中,候选实体块B7是排序集合SS中的具有最小编程/抹除计数PE的候选实体块。因此,迭代排序电路114可以从排序集合SS中取走候选实体块B7作为该目标实体块。控制器110的中央处理单元111可以对候选实体块B7(目标实体块)进行磨损平衡操作(管理操作)。
请参照图3D,控制器110的迭代排序电路114在步骤S260中可以保留排序集合SS中的2个候选实体块,且将其余候选实体块从排序集合SS舍弃。在图3D所示实施例中,步骤S260可以从排序集合SS中保留具有最小编程/抹除计数PE(元数据)的2个候选实体块B3与B1。排序集合SS中的其余候选实体块B2、B8、B6、B5与B4会被舍弃。
图3E绘出舍弃了其余候选实体块后的排序集合SS。在图3E所示实施例中,候选实体块B3与B1被保留在排序集合SS中。在一些实施例中,图3E所示留有候选实体块B3与B1的排序集合SS可以被存储在非易失性存储器120。在另一些实施例中,图3E所示留有候选实体块B3与B1的排序集合SS可以被存储在易失性存储器(例如存储器缓冲器113或是其他随机存取存储器)中。在断电之前,被存储在易失性存储器中的排序集合SS可以被存储至非易失性存储器120,以便在断电(power loss)期间保留图3E所示留有候选实体块B3与B1的排序集合SS。断电后,易失性存储器中的排序集合SS将被丢失。当在下次上电(power on)时,控制器110的迭代排序电路114可以选择使用(或不使用)在非易失性存储器120中留有候选实体块的排序集合SS。若系统选择不使用在非易失性存储器120中的排序集合SS,则在电源接通后,迭代排序电路114将重新进行上述迭代排序方法的首次迭代过程。若系统选择使用在非易失性存储器120中的排序集合SS,则在电源接通后,迭代排序电路114将从非易失性存储器120取出图3E所示留有候选实体块B3与B1的排序集合SS,以待下一次迭代所使用。
图4A至图4E说明控制器110在进行第二次迭代的过程。当再一次进行磨损平衡操作(管理操作)时,上述迭代排序方法会被再次执行。在排序集合SS具有有效候选实体块时,则迭代排序电路114可以进行步骤S230,以从非易失性存储器120的K个候选实体块中任意选择N-M个候选实体块加入排序集合SS。例如,请参照图4A,迭代排序电路114从非易失性存储器120的K个候选实体块中任意选择6个(N-M个)候选实体块(例如图4A所示候选实体块B9~B14)加入排序集合SS。其中,假设候选实体块B9的编程/抹除计数PE(元数据)为61,候选实体块B10的编程/抹除计数PE为9,候选实体块B11的编程/抹除计数PE为4,候选实体块B12的编程/抹除计数PE为29,候选实体块B13的编程/抹除计数PE为12,而候选实体块B14的编程/抹除计数PE为23。
请参照图4B,控制器110的迭代排序电路114在步骤S240中依照编程/抹除计数PE来排序在所述排序集合SS中的所有候选实体块B3、B1与B9~B14(递增排序)。
请参照图4C,控制器110的迭代排序电路114在步骤S250中可以从排序集合SS中取走具有最小编程/抹除计数PE的一个候选实体块作为该目标实体块。在图4C所示实施例中,候选实体块B11是排序集合SS中的具有最小编程/抹除计数PE的候选实体块。因此,迭代排序电路114可以从排序集合SS中取走候选实体块B11作为该目标实体块。控制器110的中央处理单元111可以对候选实体块B11(目标实体块)进行磨损平衡操作(管理操作)。
请参照图4D,控制器110的迭代排序电路114在步骤S260中可以保留排序集合SS中的2个候选实体块,且将其余候选实体块从排序集合SS舍弃。在图4D所示实施例中,步骤S260可以从排序集合SS中保留具有最小编程/抹除计数PE(元数据)的2个候选实体块B3与B10。排序集合SS中的其余候选实体块B1、B13、B14、B12与B9会被舍弃。
图4E绘出舍弃了其余候选实体块后的排序集合SS。在图4E所示实施例中,候选实体块B3与B10被保留在排序集合SS中,以待下一次迭代所使用。以此类推,当快闪转换层需要进行磨损平衡时,上述迭代过程会被重复进行。
值得注意的是,在不同的应用情境中,上述控制器110、中央处理单元111、存储器控制电路112、迭代排序电路114和/或ECC电路115的相关功能可以利用一般的编程语言(programming languages,例如C或C++)、硬件描述语言(hardware descriptionlanguages,例如Verilog HDL或VHDL)或其他合适的编程语言来实现为软件、固件或硬件。可执行所述相关功能的软件(或固件)可以被布置为任何已知的计算机可存取介质(computer-accessible medias),例如磁带(magnetic tapes)、半导体(semiconductors)存储器、磁盘(magnetic disks)或光盘(compact disks,例如CD-ROM或DVD-ROM),或者可通过互联网(Internet)、有线通信(wired communication)、无线通信(wirelesscommunication)或其它通信介质传送所述软件(或固件)。所述软件(或固件)可以被存放在计算机的可存取介质中,以便于由计算机的处理器来存取/执行所述软件(或固件)的编程码(programming codes)。另外,本发明的装置和方法可以通过硬件和软件的组合来实现。
举例来说,图5是依照本发明另一实施例说明一种非易失性存储器装置500的电路方块(circuit block)示意图。非易失性存储器装置500包括控制器110’以及非易失性存储器120。在图5所示实施例中,控制器110’包括中央处理单元111、存储器控制电路112、存储器缓冲器113与ECC电路115。图5所示非易失性存储器装置500、控制器110’、非易失性存储器120、中央处理单元111、存储器控制电路112、存储器缓冲器113与ECC电路115可以参照图1所示非易失性存储器装置100、控制器110、非易失性存储器120、中央处理单元111、存储器控制电路112、存储器缓冲器113与ECC电路115的相关说明来类推,故不再赘述。在图5所示实施例中,迭代排序电路114已被省略,而迭代排序电路114的功能可以利用固件和/或软件方式实现于中央处理单元111中。
综上所述,本发明诸实施例所述非易失性存储器装置及其迭代排序方法,其可以在一个排序集合SS中保留了前次迭代的M个候选实体块。当再一次进行管理操作时,所述非易失性存储器装置可以从非易失性存储器120的多个候选实体块中任意选择N-M个候选实体块加入排序集合SS,然后依照元数据来排序在排序集合SS中的所有候选实体块。经排序后,所述非易失性存储器装置可以从排序集合SS中取走具有最大(或最小)元数据的一个候选实体块作为目标实体块,以便对该目标实体块进行某一管理操作。在从排序集合SS中取走该目标实体块后,所述非易失性存储器装置可以保留排序集合SS中的M个候选实体块,且将其余候选实体块从排序集合SS舍弃。保留了M个候选实体块的排序集合SS可以被保存,以待下一次迭代所使用。藉由迭代抽样方法(iterative sampling method)找最大值/最小值块,排序集合SS中的实体块的数量可以远小于非易失性存储器120的实体块的数量。与传统解决方案相比较,由于更小的排序空间,因此复杂度低得多,且搜索延迟较小。
虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附权利要求书界定范围为准。

Claims (10)

1.一种非易失性存储器装置,包括:
非易失性存储器,具有多个实体块;以及
控制器,耦接至该非易失性存储器,用以进行迭代排序方法来从该非易失性存储器的这些实体块的K个候选实体块中选择一个目标实体块,以及对该目标实体块进行管理操作;
其中该迭代排序方法包括:从所述K个候选实体块中任意选择N-M个候选实体块加入排序集合,依照元数据来排序该排序集合中的所有候选实体块,经排序后从该排序集合中取走具有最大元数据或最小元数据的一个候选实体块作为该目标实体块,以及在从该排序集合中取走该目标实体块后保留该排序集合中的M个候选实体块且将其余候选实体块从该排序集合舍弃,其中K、M、N为整数,且K>N>M。
2.如权利要求1所述的非易失性存储器装置,其中该迭代排序方法还包括:在首次迭代中,从所述K个候选实体块中任意选择N个候选实体块作为该排序集合。
3.如权利要求1所述的非易失性存储器装置,其中当该管理操作为磨损平衡操作时,所述K个候选实体块为该非易失性存储器的这些实体块中的所有自由实体块,所述元数据为编程/抹除计数,该控制器从该排序集合中取走具有最小编程/抹除计数的一个候选实体块作为该目标实体块,且该控制器保留该排序集合中具有最小编程/抹除计数的M个候选实体块且将其余候选实体块从该排序集合舍弃。
4.如权利要求1所述的非易失性存储器装置,其中当该管理操作为垃圾收集操作时,所述K个候选实体块为该非易失性存储器的这些实体块中的所有已写满实体块,所述元数据为无效数据计数,该控制器从该排序集合中取走具有最大无效数据计数的一个候选实体块作为该目标实体块,且该控制器保留该排序集合中具有最大无效数据计数的M个候选实体块且将其余候选实体块从该排序集合舍弃。
5.如权利要求1所述的非易失性存储器装置,其中当该管理操作为巡检读取操作时,所述K个候选实体块为该非易失性存储器的这些实体块中的所有已写满实体块,所述元数据为时间标记,该控制器从该排序集合中取走具有最早时间标记的一个候选实体块作为该目标实体块,且该控制器保留该排序集合中具有最早时间标记的M个候选实体块且将其余候选实体块从该排序集合舍弃。
6.一种非易失性存储器装置的迭代排序方法,用以从非易失性存储器的多个实体块的K个候选实体块中选择一个目标实体块,以便对该目标实体块进行管理操作,所述迭代排序方法包括:
从所述K个候选实体块中任意选择N-M个候选实体块加入排序集合,其中K、M、N为整数,且K>N>M;
依照元数据来排序该排序集合中的所有候选实体块;
经排序后,从该排序集合中取走具有最大元数据或最小元数据的一个候选实体块作为该目标实体块;以及
在从该排序集合中取走该目标实体块后,保留该排序集合中的M个候选实体块,且将其余候选实体块从该排序集合舍弃。
7.如权利要求6所述的迭代排序方法,还包括:
在首次迭代中,从所述K个候选实体块中任意选择N个候选实体块作为该排序集合。
8.如权利要求6所述的迭代排序方法,其中当该管理操作为磨损平衡操作时,所述K个候选实体块为该非易失性存储器的这些实体块中的所有自由实体块,所述元数据为编程/抹除计数,所述从该排序集合中取走具有最大元数据或最小元数据的一个候选实体块的步骤是从该排序集合中取走具有最小编程/抹除计数的一个候选实体块作为该目标实体块,且所述保留该排序集合中的M个候选实体块的步骤是保留该排序集合中具有最小编程/抹除计数的M个候选实体块且将其余候选实体块从该排序集合舍弃。
9.如权利要求6所述的迭代排序方法,其中当该管理操作为垃圾收集操作时,所述K个候选实体块为该非易失性存储器的这些实体块中的所有已写满实体块,所述元数据为无效数据计数,所述从该排序集合中取走具有最大元数据或最小元数据的一个候选实体块的步骤是从该排序集合中取走具有最大无效数据计数的一个候选实体块作为该目标实体块,且所述保留该排序集合中的M个候选实体块的步骤是保留该排序集合中具有最大无效数据计数的M个候选实体块且将其余候选实体块从该排序集合舍弃。
10.如权利要求6所述的迭代排序方法,其中当该管理操作为巡检读取操作时,所述K个候选实体块为该非易失性存储器的这些实体块中的所有已写满实体块,所述元数据为时间标记,所述从该排序集合中取走具有最大元数据或最小元数据的一个候选实体块的步骤是从该排序集合中取走具有最早时间标记的一个候选实体块作为该目标实体块,且所述保留该排序集合中的M个候选实体块的步骤是保留该排序集合中具有最早时间标记的M个候选实体块且将其余候选实体块从该排序集合舍弃。
CN201710043274.2A 2016-12-14 2017-01-19 非易失性存储器装置及其迭代排序方法 Active CN107102953B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/378,044 US10824554B2 (en) 2016-12-14 2016-12-14 Method and apparatus for efficiently sorting iteration with small sorting set
US15/378,044 2016-12-14

Publications (2)

Publication Number Publication Date
CN107102953A true CN107102953A (zh) 2017-08-29
CN107102953B CN107102953B (zh) 2020-04-28

Family

ID=59676364

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710043274.2A Active CN107102953B (zh) 2016-12-14 2017-01-19 非易失性存储器装置及其迭代排序方法

Country Status (3)

Country Link
US (1) US10824554B2 (zh)
CN (1) CN107102953B (zh)
TW (1) TWI655573B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096215A (zh) * 2018-01-29 2019-08-06 群联电子股份有限公司 存储器管理方法、存储器储存装置及存储器控制电路单元
CN112585683A (zh) * 2018-07-19 2021-03-30 美光科技公司 用于损耗均衡的偏置采样方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021069943A1 (en) * 2019-10-09 2021-04-15 Micron Technology, Inc. Self-adaptive wear leveling method and algorithm
US11967391B2 (en) * 2021-08-06 2024-04-23 SK Hynix Inc. System and method for testing multicore SSD firmware based on preconditions generation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010034809A1 (en) * 1995-09-28 2001-10-25 Takeshi Ogawa Selecting erase method based on type of power supply for flash eeprom
CN1690983A (zh) * 2004-04-30 2005-11-02 联发科技股份有限公司 可循序写入数据至闪存中的系统及其方法
US20140215129A1 (en) * 2013-01-28 2014-07-31 Radian Memory Systems, LLC Cooperative flash memory control
CN105161137A (zh) * 2015-08-27 2015-12-16 大唐微电子技术有限公司 一种MLC架构中Nand Flash控制器电路实现装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080096523A1 (en) 2003-07-22 2008-04-24 Niklas Lundin An Arrangement, a Node and a Method Relating to Handling of Lost/Discarded Data Packets
TWI368224B (en) * 2007-03-19 2012-07-11 A Data Technology Co Ltd Wear-leveling management and file distribution management of hybrid density memory
US8352470B2 (en) * 2008-05-23 2013-01-08 International Business Machines Corporation Adaptive aggregation: improving the performance of grouping and duplicate elimination by avoiding unnecessary disk access
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8892144B2 (en) 2011-10-25 2014-11-18 At&T Intellectual Property I, L.P. Dynamic bearer management
US8712963B1 (en) * 2011-12-22 2014-04-29 Emc Corporation Method and apparatus for content-aware resizing of data chunks for replication
US9967558B1 (en) * 2013-12-17 2018-05-08 Google Llc Adaptive motion search control for variable block size partitions in video coding
KR101465447B1 (ko) * 2014-03-31 2014-12-10 성균관대학교산학협력단 외부 병합 정렬 방법, 외부 병합 정렬 시스템 및 외부 병합 정렬을 위한 분산 처리 시스템
US10620931B2 (en) * 2016-07-13 2020-04-14 At&T Mobility Ii Llc Automated device memory clean up mechanism

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010034809A1 (en) * 1995-09-28 2001-10-25 Takeshi Ogawa Selecting erase method based on type of power supply for flash eeprom
CN1690983A (zh) * 2004-04-30 2005-11-02 联发科技股份有限公司 可循序写入数据至闪存中的系统及其方法
US20140215129A1 (en) * 2013-01-28 2014-07-31 Radian Memory Systems, LLC Cooperative flash memory control
CN105161137A (zh) * 2015-08-27 2015-12-16 大唐微电子技术有限公司 一种MLC架构中Nand Flash控制器电路实现装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096215A (zh) * 2018-01-29 2019-08-06 群联电子股份有限公司 存储器管理方法、存储器储存装置及存储器控制电路单元
CN112585683A (zh) * 2018-07-19 2021-03-30 美光科技公司 用于损耗均衡的偏置采样方法

Also Published As

Publication number Publication date
TW201833754A (zh) 2018-09-16
TWI655573B (zh) 2019-04-01
US10824554B2 (en) 2020-11-03
CN107102953B (zh) 2020-04-28
US20180165010A1 (en) 2018-06-14

Similar Documents

Publication Publication Date Title
US10318414B2 (en) Memory system and memory management method thereof
US10884947B2 (en) Methods and memory systems for address mapping
TWI693516B (zh) 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置
CN107025071B (zh) 非易失性存储器装置及其垃圾收集方法
KR101606718B1 (ko) 플래시 메모리 기반 데이터 저장을 위한 적응적 ecc 기술들
US10296452B2 (en) Data separation by delaying hot block garbage collection
CN109428606B (zh) 具有ldpc解码器的存储器系统及其操作方法
US8516184B2 (en) Data updating using mark count threshold in non-volatile memory
KR20140047740A (ko) 플래시 메모리들을 위한 ldpc 소거 디코딩
TWI451249B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
US8667210B2 (en) Memory management method, memory controller and memory storage apparatus
US20200089566A1 (en) Apparatus for diagnosing memory system and operating method thereof
CN107102953A (zh) 非易失性存储器装置及其迭代排序方法
CN110750380B (zh) 具有奇偶校验高速缓存方案的存储器系统以及操作方法
CN105975404A (zh) 非易失性存储器装置及其操作方法
US10402102B2 (en) Memory system and operating method thereof
Chen et al. An erase efficiency boosting strategy for 3D charge trap NAND flash
US10942848B2 (en) Apparatus and method for checking valid data in memory system
CN110532195B (zh) 存储器系统的工作负荷分簇及执行其的方法
TWI548991B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
CN113590502B (zh) 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统
CN113590503B (zh) 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统
TWI464585B (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
US11531605B2 (en) Memory system for handling program error and method thereof
US11126545B2 (en) Memory system and operating method thereof

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