CN112527692A - 数据储存装置以及非挥发式存储器控制方法 - Google Patents
数据储存装置以及非挥发式存储器控制方法 Download PDFInfo
- Publication number
- CN112527692A CN112527692A CN201911072549.0A CN201911072549A CN112527692A CN 112527692 A CN112527692 A CN 112527692A CN 201911072549 A CN201911072549 A CN 201911072549A CN 112527692 A CN112527692 A CN 112527692A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- volatile memory
- controller
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000013500 data storage Methods 0.000 title claims abstract description 27
- 238000013507 mapping Methods 0.000 claims description 80
- 239000007787 solid Substances 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100481703 Arabidopsis thaliana TMK2 gene Proteins 0.000 description 1
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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
- 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/7202—Allocation control and policies
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种非挥发式存储器高效控制技术,具体而言,涉及数据储存装置以及非挥发式存储器控制方法。一控制器自该非挥发式存储器选择一主要来源区块,该主要来源区块涉及的逻辑地址的一群组数量超过一阈值。该控制器自该主要来源区块选定一目标群组,收集该目标群组的数据至该非挥发式存储器提供的一目的区块,以降低该主要来源区块的该群组数量。
Description
技术领域
本发明有关于非挥发式存储器的控制。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存,可做为储存媒体实现一数据储存装置。
非挥发式存储器通常有其特殊的储存特性。本技术领域需要相应非挥发式存储器的储存特性发展相应的控制技术。
发明内容
本发明揭示一种非挥发式存储器高效控制技术。
根据本发明一种实施方式实现的一数据储存装置包括一非挥发式存储器以及控制该非挥发式存储器的一控制器。该控制器自该非挥发式存储器选择一主要来源区块,该主要来源区块涉及的逻辑地址的一群组数量超过一阈值。该控制器自该主要来源区块选定一目标群组,收集该目标群组的数据至该非挥发式存储器提供的一目的区块,以降低该主要来源区块的该群组数量。
一种实施方式中,除了该主要来源区块,该控制器还将该目标群组遍及该非挥发式存储器中其他区块的数据收集至该目的区块。
一种实施方式中,该控制器反复依照群组将数据自该主要来源区块移出,直至该主要来源区块的该群组数量不超过该阈值。
一种实施方式中,该控制器系在不回应一主机时,依照群组将数据自该主要来源区块移出,使该主要来源区块的该群组数量不超过该阈值。
一种实施方式中,该控制器还随着该数据储存装置的使用动态调升该阈值。
一种实施方式中,该控制器将该目标群组的一目标群组映射表自该非挥发式存储器载入一暂存存储器。根据该暂存存储器所载的该目标群组映射表,该控制器将该非挥发式存储器中该目标群组的所有有效数据复制至该目的区块。该控制器在该暂存存储器上修正该目标群组映射表指向该目的区块,并将该目标群组映射表自该暂存存储器回存该非挥发式存储器。
一种实施方式中,该控制器取该主要来源区块中数据量最大的群组为该目标群组。
一种实施方式中,该控制器将一主机下达的写入数据程式化至该非挥发式存储器的一主动区块,并计数该主动区块的逻辑地址的一群组数量。该控制器在关闭该主动区块时,判断该主动区块的该群组数量是否高于该阈值,以决定该主动区块关闭后是否作为该主要来源区块。
以上存储器控制器对非挥发式存储器的操作也可以由其他结构实现。本发明还可以前述概念实现非挥发式存储器的控制方法。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1图解快闪存储器一区块Blk的结构;
图2图解群组映射表L2P_G#的定义;
图3为方块图,图解根据本发明一种实施方式所实施的数据储存装置300;
图4为本发明一种数据整理方法的流程图;以及
图5图解本发明一种实施方式的功效。
符号说明
300~数据储存装置;
302~快闪存储器;
304~控制器;
306~暂存存储器;
308~主机;
310~系统区块池;
312~备用区块池;
314~数据区块池;
316~群组映射表暂存区;
502、504、506~显示各区块群组数量的曲线;
A0、A1~主动区块;
Blk~区块;
Blk1、Blk2、Blk3~数据区块;
G0、G2、G4、G3~群组;
G#~主动区块A0涉及群组的编号;
L2P_G0…L2P_G3~群组映射表;
P2L~主动区块A0的物理-逻辑地址映射表;
S402…S414~步骤;
Total_G#~主动区块A0的群组数量。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求界定。
非挥发式存储器可以是快闪存储器(Flash Memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,提供长时间数据保存的储存媒体。以下特别以快闪存储器为例进行讨论。
现今数据储存装置常以快闪存储器为储存媒体,实现记忆卡(Memory Card)、通用串行总线闪存装置(USB Flash Device)、固态硬碟(SSD)…等产品。有一种应用是采多芯片封装、将快闪存储器与其控制器包装在一起─称为嵌入式快闪存储器模块(如eMMC)。
以快闪存储器为储存媒体的数据储存装置可应用于多种电子装置中。所述电子装置包括智慧型手机、穿戴装置、平板电脑、虚拟实境设备…等。电子装置的运算模块可视为一主机(Host),操作所使用的数据储存装置,以存取其中快闪存储器。
以快闪存储器为储存媒体的数据储存装置也可用于建构数据中心。例如,伺服器可操作固态硬碟(SSD)阵列形成数据中心。伺服器即可视为一主机,操作所连结的固态硬碟,以存取其中快闪存储器。
快闪存储器有其特殊的储存特性,以下作叙述。
主机(Host)端是以逻辑地址(例如,逻辑区块地址LBA或全域主机页编号GHP…等)来区别数据。至于数据实际储存在快闪存储器何处,则是以映射方式管理。
快闪存储器的物理空间是划分为多个区块(Blocks)配置使用。图1图解快闪存储器中区块Blk的结构。区块Blk包括多页面(Pages),例如,页面0…页面255。一种实施方式系根据页编号─由低编号至高编号─循序使用一区块的储存空间。各页面包括多个区段(Sectors),例如32个区段,每一区段可储存512B长度的使用者数据。一次写入可能涉及多个区段。例如,在4KB数据管理模式下,可将8个区段视为一个数据单元,进行管理。一次写入可能涵盖8个区段长度。16KB长度的页面可由四个数据单元(32个区段)所组成;四个数据单元的逻辑关系可能不连续。
特别是,同样逻辑地址的数据更新并非覆写至旧数据的储存空间,新版本的数据须写入闲置空间(空白的区段)。旧空间的内容则标示为无效。区块可能仅零星留存有效数据。由于快闪存储器的储存空间需抹除(Erase)后方能再次使用,闲置区块逐渐消耗。闲置区块数量不足时(如,低于阈值),垃圾回收(Garbage Collection)需求产生。区块留存的零星有效数据经垃圾回收集中到其他空间。徒留无效数据的区块则抹除再利用,拉升闲置区块数量,确保快闪存储器的正常使用。垃圾回收也可能使得同区块内容的逻辑关系更零散。
由前述内容可知,映射资讯的维护将显着影响快闪存储器控制效能。一种实施方式中,主机区别用的逻辑地址到底使用快闪存储器何处空间是以逻辑-物理地址(Logical-to-Physical,L2P)映射表纪录。一种实施方式中,L2P映射表的尺寸庞大,因应之,逻辑地址分为多个逻辑地址的群组,每一群组对应至一个群组映射表L2P_G#,因此,L2P映射表可以划分为多个群组映射表L2P_G#,例如,2048个群组映射表L2P_G#。当进行数据存取时,被参考或更新的特定群组映射表L2P_G#才会被载出。相较于载出完整的L2P映射表,采用群组映射表L2P_G#具有存取快速以及管理方便的优点。
图2图解群组映射表L2P_G#的定义。一种实施方式是以定量的逻辑地址切割L2P映射表,例如:1024个逻辑地址,例如:群组映射表L2P_G#0记录LBA#0~LBA#1023所对应的物理地址,群组映射表L2P_G#1记录LBA#1024~LBA#2047所对应的物理地址,每一物理地址例如以4B记录。
在最理想的情况下,数据区块依序储存逻辑地址群组G#所对应的数据,例如,数据区块#0储存L2P_G#0~#1所对应的数据,数据区块#1储存L2P_G#2~#3所对应的数据,以此类推。在此情况下,当执行垃圾回收程序时,所需读取以及更新的群组映射表L2P_G#的数量为最小值。然而,数据区块并非依序储存群组映射表L2P_G#所对应的数据,在最糟的情况下,数据区块可能储存对应至不同群组映射表L2P_G#的数据,例如,单一数据区块所储存的数据对应至1024个群组映射表L2P_G#。在此情况下,当执行垃圾回收程序时,读取以及更新1024个群组映射表L2P_G#将严重地消耗系统资源及时间,造成系统效能的显着降低。
为了解决上述问题以及增加垃圾回收程序的效率,本发明揭示一种数据整理方法,此数据整理方法会监控单一数据区块所涉及的群组映射表L2P_G#的数量,并将部份群组映射表L2P_G#所对应的数据搬移至另一区块,如此一来,此数据区块所涉及的群组映射表L2P_G#的数量有可效地降低。之后,当此区块作为垃圾回收程序中的来源区块时,可有效降低群组映射表L2P_G#的读取及更新数量,进而达到增加/维持垃圾回收程序效率的目的。
图3为方块图,图解根据本发明一种实施方式所实施的数据储存装置300,其中包括快闪存储器302、控制器304以及暂存存储器306。主机308是透过控制器304操作快闪存储器302。数据储存装置300内部也可经控制器304发动快闪存储器302的最佳化操作;整理快闪存储器302空间,使其发挥最大储存效能。控制器304进行运算时是以暂存存储器306暂存数据。暂存存储器306可为动态随机存取存储器(DRAM)或SRAM。
快闪存储器302中的区块可依据其使用状态而给予不同的名称,例如,区块未写入数据时则称为备用区块,区块正在写入数据时则称为主动区块,区块写满数据后则称为数据区块。系统区块池310中的系统数据区块储存所有的群组映射表L2P_G#。取自备用区块池312的备用区块可以作为主动区块A0,用于储存来自主机308的写入指令的使用者数据(简称为数据)。对应主动区块A0的物理空间配置状况,控制器304在暂存存储器306上记录物理-逻辑地址(P2L,Physical-to-Logical address的简写)映射表,或是P2L映射表,记录主动区块A0物理空间所储存的数据的逻辑地址,即数据的物理地址与逻辑地址的映射关系。控制器304可利用P2L映射表来更新L2P映射表的内容,并在P2L映射表写入至主动区块A0后(例如,区块结尾资讯EOB的填写),再将主动区块A0推入数据区块池314而成为数据区块。此外,控制器304可依据P2L映射表、或根据随主动区块A0储存数据而即时记录/更新的资讯,得知一区块(可已归类为数据区块,或尚为主动区块)涉及的群组映射表L2P_G#编号G#以及数量Total_G#。一种实施方式中,一区块涉及的群组映射表L2P_G#编号G#以及数量Total_G#也是在主动区块A0关闭的区块结尾资讯EOB填写时,填入该区块中。
当启动本发明数据整理方法后,控制器304会周期性或非周期性地检查数据区块所对应的群组映射表L2P_G#的群组数量Total_G#。若有数据区块的群组数量Total_G#大于阈值,例如:图3中数据区块BLK#1的群组数量Total_G#等于4,大于数值3,控制器304会自数据区块BLK#1中选定一个目标群组映射表L2P_G#,例如:群组映射表L2P_G#2,从数据区块BLK#1以及其他数据区块(如,区块Blk2以及Blk3,甚至主动区块A0)中将群组映射表L2P_G#2所对应至的数据复制到主动区块A1。当数据复制完成后,数据区块BLK#1所储存的群组映射表L2P_G#2所对应的数据不再有效,因此,数据区块BLK#1的群组数量Total_G#减少至3,不再大于阈值。如果数据区块BLK#1的群组数量Total_G#远大于3时,控制器304可以重复上次步骤,或是,一次选取多个目标群组映射表L2P_G#,例如:群组映射表L2P_G#2~#3,并进行上述的数据复制,令数据区块BLK#1的群组数量Total_G#可以快速地减少,并小于等于阈值。由于主动区块A1中是收集相关群组的完整数据,所涉及的群组数量Total_G#有限,必定小于阈值。最后,当主动区块A1写满数据后,被推入数据区块池314,也被归类为数据区块。
所述利用背景空闲时间对数据区块进行整理,使数据区块涉及的群组数量Total_G#有限的技术,也可以是在主动区块A0推入数据区块池314后,控制器304一有空闲时间即实行之。此方式无须掌握所有区块的群组数量Total_G#资讯。控制器304除了动态纪录当下主动区块A0的群组数量Total_G#,仅需还掌握刚推入数据区块池314而尚未整理的少数数据区块的群组数量Total_G#即可。群组数量Total_G#无须作为区块结束资讯EOB填入区块尾端。
执行本发明数据整理方法后,相同群组映射表L2P_G#的数据将被收集在同一个数据区块,这使得连续逻辑地址的读取要求可被迅速地执行及回复,因此,可以增加数据储存装置300的读取效能。而当执行垃圾回收程序时,如果数据区块BLK#1被选取作为来源区块,由于数据区块BLK#1的群组数量Total_G#已减少,因此,控制器304仅需自系统区块池310中读取少量的群组映射表L2P_G#,再更新少量群组映射表L2P_G#的内容,如此一来,垃圾回收程序可以快速地执行并完成,达成本发明的目的。
在上述中,阈值可为固定值,或是非固定值。随着时间过去,每一数据区块所所对应的群组映射表L2P_G#数量可能会逐渐增加,因此,采用固定的阈值可能不符合实际的需求,或是造成显着的写入放大(Write Amplification)效应。因此,控制器304可以将固定值加上一个变数值而成为阈值,此变数值例如是所有数据区块所对应的群组映射表L2P_G#数量的平均值,如此一来,阈值的设定能够符合实际的需求。
图4为本发明一种数据整理方法的流程图,较佳由数据储存装置300中的控制器304所执行。
步骤S402,控制器304选取群组数量Total_G#大于阈值的数据区块作为主要来源区块。控制器304记录并更新数据区块的群组映射表L2P_G#的编号,并周期性或非周期性地检查数据区块的群组数量Total_G#是否大于阈值。以第3图为例,数据区块BLK#1所储存的数据分别对应至群组映射表L2P_G#0、#2、#3以及#4,因此,数据区块BLK#1的群组数量Total_G#等于4,大于阈值3,因此,控制器304选取数据区块BLK#1作为主要来源区块。在主要来源区块的选取上,控制器304可以选取第一个群组数量Total_G#大于阈值的数据区块,亦可选取群组数量Total_G#为最大值的数据区块,亦可选取最新或最旧且其群组数量Total_G#大于阈值的数据区块。
步骤S404,控制器304选取来源区块中多个群组映射表L2P_G#的其中一个作为目标群组映射表L2P_G#。例如,控制器304选取群组映射表L2P_G#2作为目标群组映射表L2P_G#。在目标群组映射表L2P_G#的选取上,控制器304可以选取记录上的第一个或最后一个群组映射表L2P_G#2,亦可选取具有最多或最少有效数据数量的群组映射表L2P_G#2。
步骤S406,控制器304读取目标群组映射表L2P_G#。控制器304自系统区块池310中的系统区块中读取群组G2的群组映射表L2P_G#2。
步骤S408,控制器304依据目标群组映射表L2P_G#来选取其他来源区块。控制器304读取群组映射表L2P_G#2的内容即可得知数据的物理位置。例如:除了数据区块BLK#1,群组映射表L2P_G#2记录了对应至数据区块BLK#2以及数据区块BLK#3的物理地址,因此,控制器304选取数据区块BLK#2以及数据区块BLK#3作为其他来源区块。
步骤S410,控制器304选取一个备用区块作为目的区块。控制器304选取备用区块池312中的一个备用区块作为主动区块A1,作为数据整理的目的区块。当然,控制器304亦可选取主动区块A0作为目的区块。
步骤S412,控制器304将目标群组映射表L2P_G#所对应的数据自主要来源区块以及其他来源区块复制至目的区块,并更新目标群组映射表L2P_G#。控制器304依据群组映射表L2P_G#2所记录的物理地址,将主要来源区块或其他来源区块所储存的数据复制至主动区块A1。当数据复制完成后,再以主动区块A1的P2L映射表来更新群组映射表L2P_G#2所记录的物理地址。在数据的选取上,控制器304可以依序读取群组映射表L2P_G#2所记录的物理地址的数据,并将数据复制至主动区块A1,亦可读取群组映射表L2P_G#2所记录的主要来源区块的物理地址,并将来自主要来源区块的数据复制至主动区块A1,之后,再读取群组映射表L2P_G#2所记录的其他来源区块的物理地址,再将来自其他来源区块的数据复制至主动区块A1。
步骤S414,控制器304更新主要来源区块的群组数量Total_G#。
如果主要来源区块的群组数量Total_G#仍大于阈值,可重新本发明数据整理方法,直到群组数量Total_G#小于等于阈值,或是,在步骤S406中,控制器304可读取多个目标群组映射表L2P_G#,以加速主要来源区块的群组数量Total_G#的减少。
图5图解本发明一种实施方式的功效。曲线502显示各数据区块的群组数量Total_G#,有部份数据区块的群组数量Total_G#较大并大过阈值Th。经过垃圾回收程序后,反而造成数据区块的群组数量Total_G#的增加(如曲线504)。原本群组数量Total_G#超过阈值Th的数据区块,在执行本发明数据整理方法后,群组数量Total_G#可显着地降低并小于等于阈值Th如曲线506所示。
以上存储器控制器304对快闪存储器302的操作设计也可以由其他结构实现。凡是根据前述概念限制各区块群组数量的技术,都属于本发明欲保护范围。本发明还可以前述概念实现非挥发式存储器的控制方法。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当以权利要求书界定为准。
Claims (16)
1.一种数据储存装置,包括:
一非挥发式存储器;以及
一控制器,控制该非挥发式存储器,
其中:
该控制器自该非挥发式存储器选择一主要来源区块,该主要来源区块涉及的逻辑地址的一群组数量超过一阈值;且
该控制器自该主要来源区块选定一目标群组,收集该目标群组的数据至该非挥发式存储器提供的一目的区块,以降低该主要来源区块的该群组数量。
2.如权利要求1所述的数据储存装置,其特征在于:
除了该主要来源区块,该控制器还将该目标群组遍及该非挥发式存储器中其他区块的数据收集至该目的区块。
3.如权利要求2所述的数据储存装置,其特征在于:
该控制器反复依照群组将数据自该主要来源区块移出,直至该主要来源区块的该群组数量不超过该阈值。
4.如权利要求3所述的数据储存装置,其特征在于:
该控制器系在不回应一主机时,依照群组将数据自该主要来源区块移出,使该主要来源区块的该群组数量不超过该阈值。
5.如权利要求3所述的数据储存装置,其特征在于:
该控制器还随着该数据储存装置的使用动态调升该阈值。
6.如权利要求1所述的数据储存装置,其特征在于:
该控制器将该目标群组的一目标群组映射表自该非挥发式存储器载入一暂存存储器;
根据该暂存存储器所载的该目标群组映射表,该控制器将该非挥发式存储器中该目标群组的所有有效数据复制至该目的区块;且
该控制器在该暂存存储器上修正该目标群组映射表指向该目的区块,并将该目标群组映射表自该暂存存储器回存该非挥发式存储器。
7.如权利要求1所述的数据储存装置,其特征在于:
该控制器取该主要来源区块中数据量最大的群组为该目标群组。
8.如权利要求1所述的数据储存装置,其特征在于:
该控制器将一主机下达的写入数据程式化至该非挥发式存储器的一主动区块,并计数该主动区块的逻辑地址的一群组数量;且
该控制器在关闭该主动区块时,判断该主动区块的该群组数量是否高于该阈值,以决定该主动区块关闭后是否作为该主要来源区块。
9.一种非挥发式存储器控制方法,包括:
自一非挥发式存储器选择一主要来源区块,该主要来源区块涉及的逻辑地址的一群组数量超过一阈值;且
自该主要来源区块选定一目标群组,收集该目标群组的数据至该非挥发式存储器提供的一目的区块,以降低该主要来源区块的该群组数量。
10.如权利要求9所述的非挥发式存储器控制方法,其特征在于,除了该主要来源区块,还将该目标群组遍及该非挥发式存储器中其他区块的数据收集至该目的区块。
11.如权利要求10所述的非挥发式存储器控制方法,其特征在于,还包括:
反复依照群组将数据自该主要来源区块移出,直至该主要来源区块的该群组数量不超过该阈值。
12.如权利要求11所述的非挥发式存储器控制方法,其特征在于,是在不回应一主机时,依照群组将数据自该主要来源区块移出,使该主要来源区块的该群组数量不超过该阈值。
13.如权利要求11所述的非挥发式存储器控制方法,其特征在于,还包括:
随着该数据储存装置的使用动态调升该阈值。
14.如权利要求9所述的非挥发式存储器控制方法,其特征在于,还包括:
将该目标群组的一目标群组映射表自该非挥发式存储器载入一暂存存储器;
根据该暂存存储器所载的该目标群组映射表,将该非挥发式存储器中该目标群组的所有有效数据复制至该目的区块;且
在该暂存存储器上修正该目标群组映射表指向该目的区块,并将该目标群组映射表自该暂存存储器回存该非挥发式存储器。
15.如权利要求9所述的非挥发式存储器控制方法,其特征在于,是取该主要来源区块中数据量最大的群组为该目标群组。
16.如权利要求9所述的非挥发式存储器控制方法,其特征在于,还包括:
将一主机下达的写入数据程式化至该非挥发式存储器的一主动区块,并计数该主动区块的逻辑地址的一群组数量;且
在关闭该主动区块时,判断该主动区块的该群组数量是否高于该阈值,以决定该主动区块关闭后是否作为该主要来源区块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108133729 | 2019-09-19 | ||
TW108133729A TWI724550B (zh) | 2019-09-19 | 2019-09-19 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112527692A true CN112527692A (zh) | 2021-03-19 |
CN112527692B CN112527692B (zh) | 2024-07-23 |
Family
ID=74880863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911072549.0A Active CN112527692B (zh) | 2019-09-19 | 2019-11-05 | 数据储存装置以及非挥发式存储器控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11269534B2 (zh) |
CN (1) | CN112527692B (zh) |
TW (1) | TWI724550B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI841494B (zh) * | 2023-10-02 | 2024-05-01 | 慧榮科技股份有限公司 | 用以進行記憶體裝置的資料存取控制之方法、記憶體控制器、記憶體裝置以及電子裝置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070078901A1 (en) * | 2005-09-30 | 2007-04-05 | Fujitsu Limited | Hierarchical storage system, and control method and program therefor |
US20090113121A1 (en) * | 2004-02-26 | 2009-04-30 | Super Talent Electronics Inc. | Swappable Sets of Partial-Mapping Tables in a Flash-Memory System With A Command Queue for Combining Flash Writes |
US20130166822A1 (en) * | 2011-12-23 | 2013-06-27 | International Business Machines Corporation | Solid-state storage management |
US20140075095A1 (en) * | 2012-09-13 | 2014-03-13 | Sandisk Technologies Inc. | Optimized fragmented block compaction with a bitmap |
US20140101369A1 (en) * | 2012-10-05 | 2014-04-10 | Western Digital Technologies, Inc. | Methods, devices and systems for physical-to-logical mapping in solid state drives |
US20150347026A1 (en) * | 2014-05-28 | 2015-12-03 | Sandisk Technologies Inc. | Method and system for interleaving pieces of a mapping table for a storage device |
CN107025071A (zh) * | 2016-12-14 | 2017-08-08 | 威盛电子股份有限公司 | 非易失性存储器装置及其垃圾收集方法 |
US20180260132A1 (en) * | 2017-03-07 | 2018-09-13 | Silicon Motion, Inc. | Data Storage Device and Operating Method Thereof |
CN108733319A (zh) * | 2017-04-17 | 2018-11-02 | 桑迪士克科技有限责任公司 | 用于非易失性存储器中的混合推拉数据管理的系统和方法 |
CN108874301A (zh) * | 2017-05-08 | 2018-11-23 | 慧荣科技股份有限公司 | 数据储存装置以及其操作方法 |
US20180357157A1 (en) * | 2017-06-12 | 2018-12-13 | SK Hynix Inc. | Memory system and operating method thereof |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010287049A (ja) * | 2009-06-11 | 2010-12-24 | Toshiba Corp | メモリシステムおよびメモリシステムの管理方法 |
KR101638061B1 (ko) * | 2009-10-27 | 2016-07-08 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법 |
US8990477B2 (en) * | 2012-04-19 | 2015-03-24 | Sandisk Technologies Inc. | System and method for limiting fragmentation |
US9436696B2 (en) * | 2013-10-02 | 2016-09-06 | International Business Machines Corporation | Data fragmentation tuning and candidacy persistence |
US20170300249A1 (en) * | 2016-04-15 | 2017-10-19 | Western Digital Technologies, Inc. | Validity tracking for garbage collection |
TWI659304B (zh) * | 2017-10-20 | 2019-05-11 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
TWI692690B (zh) * | 2017-12-05 | 2020-05-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
TWI670594B (zh) * | 2018-01-18 | 2019-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置 |
KR102593757B1 (ko) * | 2018-09-10 | 2023-10-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
CN110895513B (zh) * | 2018-09-12 | 2024-09-17 | 华为技术有限公司 | 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法 |
US20200226064A1 (en) * | 2019-01-15 | 2020-07-16 | Western Digital Technologies, Inc. | Method of reverse mapping and data consolidation to enhance random performance |
-
2019
- 2019-09-19 TW TW108133729A patent/TWI724550B/zh active
- 2019-11-05 CN CN201911072549.0A patent/CN112527692B/zh active Active
-
2020
- 2020-06-16 US US16/902,475 patent/US11269534B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113121A1 (en) * | 2004-02-26 | 2009-04-30 | Super Talent Electronics Inc. | Swappable Sets of Partial-Mapping Tables in a Flash-Memory System With A Command Queue for Combining Flash Writes |
US20070078901A1 (en) * | 2005-09-30 | 2007-04-05 | Fujitsu Limited | Hierarchical storage system, and control method and program therefor |
US20130166822A1 (en) * | 2011-12-23 | 2013-06-27 | International Business Machines Corporation | Solid-state storage management |
US20140075095A1 (en) * | 2012-09-13 | 2014-03-13 | Sandisk Technologies Inc. | Optimized fragmented block compaction with a bitmap |
US20140101369A1 (en) * | 2012-10-05 | 2014-04-10 | Western Digital Technologies, Inc. | Methods, devices and systems for physical-to-logical mapping in solid state drives |
US20150347026A1 (en) * | 2014-05-28 | 2015-12-03 | Sandisk Technologies Inc. | Method and system for interleaving pieces of a mapping table for a storage device |
CN107025071A (zh) * | 2016-12-14 | 2017-08-08 | 威盛电子股份有限公司 | 非易失性存储器装置及其垃圾收集方法 |
US20180260132A1 (en) * | 2017-03-07 | 2018-09-13 | Silicon Motion, Inc. | Data Storage Device and Operating Method Thereof |
CN108733319A (zh) * | 2017-04-17 | 2018-11-02 | 桑迪士克科技有限责任公司 | 用于非易失性存储器中的混合推拉数据管理的系统和方法 |
CN108874301A (zh) * | 2017-05-08 | 2018-11-23 | 慧荣科技股份有限公司 | 数据储存装置以及其操作方法 |
US20180357157A1 (en) * | 2017-06-12 | 2018-12-13 | SK Hynix Inc. | Memory system and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
TWI724550B (zh) | 2021-04-11 |
US11269534B2 (en) | 2022-03-08 |
TW202113610A (zh) | 2021-04-01 |
CN112527692B (zh) | 2024-07-23 |
US20210089223A1 (en) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110955384B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
KR101324688B1 (ko) | 영구 가비지 컬렉션을 갖는 메모리 시스템 | |
US20190220396A1 (en) | Data Storage Device | |
KR101465789B1 (ko) | 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법 | |
CN108073522B (zh) | 可用于数据储存装置的垃圾搜集方法 | |
US20150186259A1 (en) | Method and apparatus for storing data in non-volatile memory | |
WO2004040455A2 (en) | Method and apparatus for splitting a logical block | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US11334480B2 (en) | Data storage device and non-volatile memory control method | |
CN108073359B (zh) | 数据储存装置的操作方法 | |
US11055004B2 (en) | Data storage device and control method for non-volatile memory | |
US11269771B2 (en) | Storage device for improving journal replay, operating method thereof, and electronic device including the storage device | |
CN104424110A (zh) | 固态驱动器的主动回收 | |
KR20160139864A (ko) | 비휘발성 메모리 시스템 | |
US20050169058A1 (en) | Data management apparatus and method used for flash memory | |
JP2012113343A (ja) | 記憶装置 | |
TWI713032B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN111610931B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
CN111610929B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN112527692B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN117616377A (zh) | 跨zns ssd中的超级设备的超级块分配 | |
CN111338975B (zh) | 面向多流的垃圾回收方法及其存储设备 | |
CN113111011A (zh) | 数据存储装置及其垃圾收集方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |