CN112130749A - 数据储存装置以及非挥发式存储器控制方法 - Google Patents
数据储存装置以及非挥发式存储器控制方法 Download PDFInfo
- Publication number
- CN112130749A CN112130749A CN201911104601.6A CN201911104601A CN112130749A CN 112130749 A CN112130749 A CN 112130749A CN 201911104601 A CN201911104601 A CN 201911104601A CN 112130749 A CN112130749 A CN 112130749A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- mode
- volatile memory
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 95
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000013500 data storage Methods 0.000 title claims abstract description 31
- 238000011084 recovery Methods 0.000 claims abstract description 5
- 238000004064 recycling Methods 0.000 claims 2
- 238000005516 engineering process Methods 0.000 abstract description 3
- 210000004027 cell Anatomy 0.000 description 13
- 238000010586 diagram Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000004242 micellar liquid chromatography Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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/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/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/0253—Garbage collection, i.e. reclamation of unreferenced 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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
- 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/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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Abstract
本发明涉及非挥发式存储器的一种高效控制技术,具体地说,涉及数据储存装置以及非挥发式存储器控制方法。一非挥发式存储器的储存空间划分为多个区块。将主机要求的写入数据编程至非挥发式存储器时,本发明还记录这些区块的编程顺序。本发明提出基于编程顺序进行垃圾回收的技术。
Description
技术领域
本发明有关于非挥发式存储器的控制。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存,可做为储存媒体实现一数据储存装置。
非挥发式存储器通常有其特殊的储存特性。本技术领域需要相应非挥发式存储器的储存特性发展相应的控制技术。
发明内容
本发明提出非挥发式存储器的一种高效控制技术。一非挥发式存储器的储存空间划分为多个区块。将主机要求的写入数据编程至非挥发式存储器时,本发明还记录这些区块的编程顺序。本发明提出基于编程顺序进行垃圾回收的技术。
根据本发明一种实施方式实现的一数据储存装置包括一非挥发式存储器以及一控制器。该非挥发式存储器的储存空间划分为多个区块。该控制器控制该非挥发式存储器。将一主机要求的写入数据编程至该非挥发式存储器时,该控制器还记录这些区块的编程顺序。根据上述编程顺序,该控制器将一第一源区块的有效数据复制到一第一目的区块后,是将一第二源区块的有效数据复制到该第一目的区块,该第二源区块乃接续该第一源区块编程。该第一源区块以及该第二源区块的有效数据复制至该第一目的区块后,该控制器释出该第一源区块以及该第二源区块,实现第一型垃圾回收。
一种实施方式中,该控制器是将该主机要求的写入数据以一第一模式编程至该非挥发式存储器,再经上述第一型垃圾回收转为一第二模式储存。该第一源区块以及该第二源区块采用该第一模式储存数据。该第一目的区块采用该第二模式储存数据。
一种实施方式中,该控制器是在供该第一模式操作的闲置区块数量低于一第一阈值时,进行上述第一型垃圾回收。
一种实施方式中,该控制器在供该第二模式操作的闲置区块数量低于一第二阈值时,进行第二型垃圾回收。经该第二型垃圾回收,该控制器根据有效页数自该第二模式操作的区块间选择一第三源区块,将该第三源区块的有效数据复制到该第二模式操作的一第二目的区块,并将该第三源区块释出。
一种实施方式中,该主机要求更新该第一目的区块的数据时,该控制器经该第一模式将更新内容编程至该非挥发式存储器,并令该第一目的区块的内容无效,使该第一目的区块不经上述第二型垃圾回收即释出。
一种实施方式中,该第一模式为单阶储存模式,且该第二模式为三阶储存模式。
一种实施方式中,该控制器以一编程顺序表纪录该非挥发式存储器采该第一模式的多个区块的编程顺序。
一种实施方式中,该数据储存装置还包括一存储器,耦接该控制器。该控制器在该存储器上管理该区块编程顺序纪录表。
一种实施方式中,该控制器将该编程顺序表载于该非挥发式存储器的系统资讯区块。
一种实施方式中,关于该第一模式操作的区块,该控制器以写入区块结尾资讯纪录下一个编程的区块。该控制器将上述写入区块结尾资讯写入所属区块的尾端。
根据本发明概念实施的一种非挥发式存储器控制方法,包括以下步骤:将一主机要求的写入数据编程至一非挥发式存储器时,还记录该非挥发式存储器的多个区块的编程顺序;根据上述编程顺序,将一第一源区块的有效数据复制到一第一目的区块后,将一第二源区块的有效数据复制到该第一目的区块,其中该第二源区块乃接续该第一源区块编程;且将该第一源区块以及该第二源区块的有效数据复制至该第一目的区块后,释出该第一源区块以及该第二源区块,实现第一型垃圾回收。
附图说明
图1图解快闪存储器一区块Blk的结构;
图2A与图2B分别对应单阶储存单元SLC与三阶储存单元TLC,其中以闸极浮动电子进行划分,图解不同逻辑意义下,存储单元分布概率;
图3为方块图,图解根据本发明一种实施方式实现的一数据储存装置300;
图4为流程图,根据本发明一种实施方式图解写入指令执行的步骤;
图5为流程图,根据本发明一种实施方式图解写入指令执行的步骤;且
图6为流程图,根据本发明一种实施方式图解垃圾回收程序的步骤。
符号说明
300~数据储存装置;
302~快闪存储器;
304~控制器;
306~主机;
308~存储器;
310~编程顺序表;
Blk、Blk0…Blk5、Blk100~区块;
Blk#~区块编号;
LinkBlk~区块链结的下一个编程区块;
S402…S408、S502…S512、S602…S610~步骤。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应由权利要求书来界定。
非挥发式存储器可以是快闪存储器(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),以下将以LBA为例进行说明。至于数据实际储存在快闪存储器何处,则是以映射方式管理。
快闪存储器的物理空间是划分为多个区块(Blocks)配置使用。图1图解快闪存储器一区块Blk的结构。一区块Blk包括多页面(Pages),例如,页面0…页面255。各页面包括多个区段(Sectors),例如32个区段,每一区段可储存512B长度的使用者数据。一次写入可能涉及多个区段。例如,在4KB数据管理模式下,可将8个区段视为一个数据单元,进行管理。一次写入可能涵盖8个区段(4KB)长度。16KB长度的页面可由四个数据单元(32个区段)所组成。一种实施方式是根据页编号─由低编号至高编号─循序使用一区块的储存空间。特别是,同样LBA所对应的数据更新并非覆写至旧数据的储存空间,新版本的数据须写入闲置空间(空白的区段)。旧空间的内容则标示为无效。一区块可能仅零星留存有效数据。
由于数据不断地写入闲置空间,这导致闲置区块逐渐消耗。闲置区块数量不足时(如,低于阈值),垃圾回收(Garbage Collection)需求产生。数据区块留存的零星有效数据经垃圾回收程序集中到其他区块(例如:主动区块)的储存空间。徒留无效数据的数据区块则抹除(Erase)而成为闲置区块,闲置区块数量因而拉升,确保数据储存装置的正常使用。
垃圾回收程序的一种实施方式是以有效页数(Valid Page Count)低的数据区块为来源区块(Source Block)。如此一来,少量的有效数据完成搬移后,此数据区块即可被抹除,进而释出一个区块(闲置区块)的储存空间。然而,以有效页数作为来源区块的判断标准有其缺点。例如,第一来源区块和第二来源区块原本储存的数据的LBA为连续的,之后,第一来源区块和第二来源区块剩下零星的有效数据。当垃圾回收程序执行并将零星有效数据复制至目的区块(Destination Block)后,数据的LBA的连续性很可能会被破坏,这使的目的区块所储存的数据的LBA为不连续,且LBA亦可能失去顺序性,此结果不利于数据储存装置执行连续LBA所对应的数据读取,这将造成数据储存装置的数据读取效能上的低落。
本发明提出一种方案,改善前述数据零散问题。本发明垃圾回收程序乃依照区块的编程顺序选取源区块做。一种实施方式中,第一区块编程后,接续编程的是第二区块。第一回合的垃圾回收以第一区块为源区块,将数据收集至目的区块后,第二回合的垃圾回收以第二区块为源区块,再将数据收集至目的区块。如此一来,目的区块所收集的内容维持LBA高度连续,利于连续LBA所对应的数据读取。甚至,该段连续数据再次更新后,此目的区块即完全无效;无须再执行垃圾回收即可回收目的区块,大大节省系统资源。
一种实施方式中,快闪存储器的储存单元不限定为单阶储存单元(Single-LevelCells,SLCs),还有部分空间是提供多阶储存单元(multiple level cells),包括三阶储存单元(Triple-Level Cells,TLCs)、或四阶储存单元(Quad-level cells,QLCs)。一个单阶储存单元SLC储存一个位元的数据,一个三阶储存单元TLC储存三个位元的数据,以此类推。为了简化说明,以下将以TLC为例。特别说明,以下实施例提到应用在TLC的技术也可应用至其他阶数的多阶储存单元。
图2A与图2B分别对应SLC与TLC的示意图,其中以闸极浮动电子进行划分,图解不同逻辑意义下,存储单元分布概率。如图所示,存储单元的逻辑定义与其闸极浮动电子量相关。SLC的逻辑分界较TLC明确;不仅可靠度较高、写入速度也较快。TLC则是在储存容量上有其优势。若追求准确与速度,采用SLC的区块(或称SLC区块)可提供理想的储存空间,例如:可作为数据快取。考量到储存密度,采用TLC的区块(或称TLC区块)可提供理想的储存空间,例如:可作为数据储存。由于数据储存量上的差异,SLC区块的所收集的数据须伺机搬移到TLC区块,以确保数据储存装置可提供适当的储存容量。
一种实施方式中,在SLC模式下,TLC区块可模拟SLC区块的运作,例如:采用SLC模式进行数据编程(Data Program),或是采用SLC模式进行数据读取。将来自主机的数据以SLC模式编程至TLC闲置区块后,此TLC闲置区块之后可称为SLC数据区块。当编程的数据量达一临界数据量(例如,数据储存装置的储存容量的三分之一)后,产生垃圾回收需求以将有效数据由SLC数据区块搬移到TLC闲置区块。
本发明垃圾回收程序特别在SLC模式进行数据编程的数据量超过临界值、或SLC闲置区块数低于临界值,依照编程顺序(Program Order)来选择SLC数据区块作为来源区块(Source Block),将来源区块中的数据(有效数据)搬移到目的区块(Destination Block),目的区块为TLC闲置区块。TLC闲置区块不再写入数据后则变更为TLC数据区块。如此一来,来源区块的选取乃依照编程顺序,如果来源区块的数据为连续数据,则搬移到目的区块的数据亦为连续数据,在目的区块的数据的LBA具有高度连续产性,利于LBA所对应的数据读取。甚至,该段连续数据再次更新后,目的区块的所有数据可能皆被无效化,因此,无须执行本发明垃圾回收程序来回收TLC数据区块的数据,可直接将TLC数据区块变更为TLC闲置区块,显著节省系统资源。
图3为方块图,图解根据本发明一种实施方式实现的数据储存装置300。数据储存装置300以快闪存储器302为储存媒体,并为快闪存储器302设计控制器304。主机306系经控制器304操作快闪存储器302。
当收到来自主机306所下达的写入指令及数据,控制器304以SLC模式将数据写入至快闪存储器302的SLC闲置区块,SLC闲置区块不再写入数据后则变更为SLC数据区块,控制器304还以存储器(可为DRAM、SRAM…等)308纪录SLC数据区块的编程顺序表310。随着写入量累积,SLC闲置区块量不足或编程的数据量达一临界数据量时,控制器304启动本发明垃圾回收程序。本发明垃圾回收程序根据编程顺序表310选择来源区块,将SLC数据区块上的数据收集到目的区块。当SLC数据区块已无任何有效数据后,SLC数据区块可被抹除(erase)或变更成SLC闲置区块。
如图所示,主机306下达写入LBA#0~#39数据的写入指令,控制器304依序将LBA#0~#39数据写入至SLC数据区块Blk0、Blk1、Blk2、Blk4、Blk5…。随着以上编程动作,控制器304令编程顺序表310记录各区块(BLK#)链结的下一个编程区块(LinkBlk)为何。图示表格(310)显示SLC数据区块的编程顺序依序为SLC数据区块Blk0、Blk1、Blk2、Blk4以及Blk5。
当启动本发明垃圾回收程序时,控制器304根据编程顺序表310而依序选取SLC数据区块Blk0、Blk1、Blk2以及Blk4作为来源区块,将有效数据搬移到TLC数据区块Blk100。如图所示,即使部分数据在SLC数据区块Blk0、Blk1、Blk2以及Blk4上已无效,没有收集到TLC数据区块Blk100,TLC数据区块Blk100所收集到的数据在LBA上还是有高度连续性,达到本发明的目的。
编程顺序表310除了可暂存于存储器308,亦可记录在快闪存储器302上,如此一来,可确保编程顺序表310不会遗失。一种实施方式中,控制器306将,将下一个编程区块(LinkBlk)整合于EOB(End Of Block,区块结尾)资讯中,使数据区块依序链接。一种实施方式中,控制器306将编程顺序表310写入至快闪存储器302的系统区块(System InformationBlocks)中。
图4为流程图,根据本发明一种实施方式图解写入指令执行的步骤,较佳由控制器304所执行。
步骤S402,控制器304接收来自主机306的写入指令,其中,写入指令包括LBA以及LBA所对应的数据。
步骤S404,控制器304以SLC模式将LBA所对应的数据编程至SLC闲置区块,其中,控制器304亦可以SLC模式将LBA编程至SLC闲置区块。
步骤S406,控制器304将SLC闲置区块的区块编号记录至编程顺序表310,其中,编程顺序表310暂存于存储器308。
步骤S408,控制器304将编程顺序表310写入快闪存储器302的系统区块。
图5为流程图,根据本发明一种实施方式图解写入指令执行的步骤,较佳由控制器304所执行。
步骤S502,控制器304接收来自主机306的写入指令,其中,写入指令包括LBA以及LBA所对应的数据。
步骤S504,控制器304以SLC模式将LBA所对应的数据编程至SLC闲置区块,其中,控制器304亦可以SLC模式将LBA编程至SLC闲置区块。
步骤S506,控制器304判断是否不再编程数据至SLC闲置区块,如果是则执行步骤S508,如果否则执行步骤S502。如果SLC闲置区块已写满数据,或突然发生掉电等突发事件,则控制器304不再编程数据至SLC闲置区块。
步骤S508,控制器304将SLC闲置区块变更为SLC数据区块。
步骤S510,控制器304将SLC数据区块的区块编号记录至编程顺序表310,其中,编程顺序表310暂存于存储器308。
步骤S512,控制器304将编程顺序表310写入快闪存储器302的系统区块。
图6为流程图,根据本发明一种实施方式图解垃圾回收程序的步骤,较佳由控制器304所执行。
步骤S602,控制器304判断垃圾回收程序的触发条件是否满足,如果是则执行步骤S604,如果否则继续执行步骤S602,其中,垃圾回收程序的触发条件例如是SLC闲置区块数量低于一阈值,或是SLC闲置区块的数据编程量大于等于一临界数据量。
步骤S604,控制器306根据编程顺序表310选择来源区块,其中,来源区块,例如,SLC数据区块,的数据乃采用非预设编程模式,例如,SLC模式,对TLC区块进行数据编程。
步骤S606,控制器306选择目的区块,其中,控制器306将采用预设编程模式,例如,TLC模式,而将数据编程至目的区块,例如,TLC闲置区块。
步骤S608,控制器306将来源区块中的数据复制至目的区块。
步骤S610,控制器306将来源区块变更为闲置区块。当来源区块中的数据皆复制至目的区块SLC后,来源区块中的数据皆为无效数据,因此,控制器306可将SLC数据区块变更为SLC闲置区块以增加SLC闲置区块数量,达到垃圾回收目的。
一种实施方式另外有一个垃圾回收设计,在TLC闲置区块数量不足时启动。此时即是以有效页数为来源区块选取标准,进行的是TLC来源区块至TLC目的区块的数据搬移。不同于前述考量到编成顺序的SLC来源区块至TLC目的区块的第一型垃圾回收,基于有效页数而进行的TLC来源区块至TLC目的区块的数据搬移称为第二型垃圾回收。
一种实施方式中,非挥发式存储器控制方法包括以下步骤:将一主机要求的写入数据编程至一非挥发式存储器时,还记录该非挥发式存储器的多个区块的编程顺序;根据上述编程顺序,将一第一源区块的有效数据复制到一第一目的区块后,将一第二源区块的有效数据复制到该第一目的区块,其中该第二源区块乃接续该第一源区块编程;且将该第一源区块以及该第二源区块的有效数据复制至该第一目的区块后,释出该第一源区块以及该第二源区块,实现第一型垃圾回收。此控制方法可如前述内容有多种变形。
以上控制器304对快闪存储器302的操作设计也可以由其他结构实现。凡是在垃圾回收时,以编程顺序作为源区块选择标准,都属于本发明欲保护范围。本发明还可以前述概念实现非挥发式存储器的控制方法。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围应由权利要求书界定为准。
Claims (20)
1.一种数据储存装置,包括:
一非挥发式存储器,其储存空间划分为多个区块;以及
一控制器,控制该非挥发式存储器,
其中:
将一主机要求的写入数据编程至该非挥发式存储器时,该控制器还记录这些区块的编程顺序;
根据上述编程顺序,该控制器将一第一源区块的有效数据复制到一第一目的区块后,是将一第二源区块的有效数据复制到该第一目的区块,该第二源区块乃接续该第一源区块编程;且
该第一源区块以及该第二源区块的有效数据复制至该第一目的区块后,该控制器释出该第一源区块以及该第二源区块,实现第一型垃圾回收。
2.如权利要求1所述的数据储存装置,其特征在于:
该控制器是将该主机要求的写入数据以一第一模式编程至该非挥发式存储器,再经上述第一型垃圾回收转为一第二模式储存;
该第一源区块以及该第二源区块采用该第一模式储存数据;且
该第一目的区块采用该第二模式储存数据。
3.如权利要求2所述的数据储存装置,其特征在于:
该控制器是在供该第一模式操作的闲置区块数量低于一第一阈值时,进行上述第一型垃圾回收。
4.如权利要求3所述的数据储存装置,其特征在于:
该控制器在供该第二模式操作的闲置区块数量低于一第二阈值时,进行第二型垃圾回收;且
经该第二型垃圾回收,该控制器根据有效页数自该第二模式操作的区块间选择一第三源区块,将该第三源区块的有效数据复制到该第二模式操作的一第二目的区块,并将该第三源区块释出。
5.如权利要求4所述的数据储存装置,其特征在于:
该主机要求更新该第一目的区块的数据时,该控制器经该第一模式将更新内容编程至该非挥发式存储器,并令该第一目的区块的内容无效,使该第一目的区块不经上述第二型垃圾回收即释出。
6.如权利要求5所述的数据储存装置,其特征在于:
该第一模式为单阶储存模式;且
该第二模式为三阶储存模式。
7.如权利要求2所述的数据储存装置,其特征在于:
该控制器以一编程顺序表纪录该非挥发式存储器采该第一模式的多个区块的编程顺序。
8.如权利要求7所述的数据储存装置,其特征在于,还包括:
一存储器,耦接该控制器,
其中,该控制器在该存储器上管理该区块编程顺序纪录表。
9.如权利要求7所述的数据储存装置,其特征在于:
该控制器将该编程顺序表载于该非挥发式存储器的系统资讯区块。
10.如权利要求2所述的数据储存装置,其特征在于:
关于该第一模式操作的区块,该控制器以写入区块结尾资讯纪录下一个编程的区块;且
该控制器将上述写入区块结尾资讯写入所属区块的尾端。
11.一种非挥发式存储器控制方法,包括:
将一主机要求的写入数据编程至一非挥发式存储器时,还记录该非挥发式存储器的多个区块的编程顺序;
根据上述编程顺序,将一第一源区块的有效数据复制到一第一目的区块后,将一第二源区块的有效数据复制到该第一目的区块,其中该第二源区块乃接续该第一源区块编程;且
将该第一源区块以及该第二源区块的有效数据复制至该第一目的区块后,释出该第一源区块以及该第二源区块,实现第一型垃圾回收。
12.如权利要求11所述的非挥发式存储器控制方法,其特征在于,还包括:
将该主机要求的写入数据以一第一模式编程至该非挥发式存储器,再经上述第一型垃圾回收转为一第二模式储存,
其中:
该第一源区块以及该第二源区块采用该第一模式储存数据;且
该第一目的区块采用该第二模式储存数据。
13.如权利要求12所述的非挥发式存储器控制方法,其特征在于,还包括:
在供该第一模式操作的闲置区块数量低于一第一阈值时,进行上述第一型垃圾回收。
14.如权利要求13所述的非挥发式存储器控制方法,其特征在于,还包括:
在供该第二模式操作的闲置区块数量低于一第二阈值时,进行第二型垃圾回收;且
经该第二型垃圾回收,根据有效页数自该第二模式操作的区块间选择一第三源区块,将该第三源区块的有效数据复制到该第二模式操作的一第二目的区块,并将该第三源区块释出。
15.如权利要求14所述的非挥发式存储器控制方法,其特征在于,还包括:
在该主机要求更新该第一目的区块的数据时,经该第一模式将更新内容编程至该非挥发式存储器,并令该第一目的区块的内容无效,使该第一目的区块不经上述第二型垃圾回收即释出。
16.如权利要求15所述的非挥发式存储器控制方法,其特征在于:
该第一模式为单阶储存模式;且
该第二模式为三阶储存模式。
17.如权利要求12所述的非挥发式存储器控制方法,其特征在于,还包括:
以一编程顺序表纪录该非挥发式存储器采该第一模式的多个区块的编程顺序。
18.如权利要求17所述的非挥发式存储器控制方法,其特征在于,还包括:
提供一存储器;且
在该存储器上管理该区块编程顺序纪录表。
19.如权利要求17所述的非挥发式存储器控制方法,其特征在于,还包括:
将该编程顺序表载于该非挥发式存储器的系统资讯区块。
20.如权利要求12所述的非挥发式存储器控制方法,其特征在于,还包括:
关于该第一模式操作的区块,以写入区块结尾资讯纪录下一个编程的区块;且
将上述写入区块结尾资讯写入所属区块的尾端。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962866051P | 2019-06-25 | 2019-06-25 | |
US62/866,051 | 2019-06-25 | ||
TW108137199A TWI718710B (zh) | 2019-06-25 | 2019-10-16 | 資料儲存裝置以及非揮發式記憶體控制方法 |
TW108137199 | 2019-10-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112130749A true CN112130749A (zh) | 2020-12-25 |
CN112130749B CN112130749B (zh) | 2023-12-22 |
Family
ID=73849556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911104601.6A Active CN112130749B (zh) | 2019-06-25 | 2019-11-13 | 数据储存装置以及非挥发式存储器控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11334480B2 (zh) |
CN (1) | CN112130749B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI813978B (zh) * | 2021-04-16 | 2023-09-01 | 群聯電子股份有限公司 | 快閃記憶體控制方法、快閃記憶體儲存裝置及快閃記憶體控制器 |
TWI805231B (zh) | 2022-02-18 | 2023-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
TW202334821A (zh) | 2022-02-18 | 2023-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012867A (zh) * | 2009-09-03 | 2011-04-13 | 248固态硬碟有限公司 | 资料储存系统及其管理方法 |
CN107168639A (zh) * | 2016-03-08 | 2017-09-15 | 东芝存储器株式会社 | 存储系统、信息处理系统及非易失性存储器的控制方法 |
TW201738892A (zh) * | 2016-04-27 | 2017-11-01 | 慧榮科技股份有限公司 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
CN109388520A (zh) * | 2017-08-08 | 2019-02-26 | 大心电子(英属维京群岛)股份有限公司 | 数据备份方法、数据恢复方法以及存储控制器 |
US20190095116A1 (en) * | 2017-09-22 | 2019-03-28 | Toshiba Memory Corporation | Memory system |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5136592A (en) | 1989-06-28 | 1992-08-04 | Digital Equipment Corporation | Error detection and correction system for long burst errors |
US6092231A (en) | 1998-06-12 | 2000-07-18 | Qlogic Corporation | Circuit and method for rapid checking of error correction codes using cyclic redundancy check |
US6606682B1 (en) | 2000-04-19 | 2003-08-12 | Western Digital Technologies, Inc. | Cluster-based cache memory allocation |
US7058763B2 (en) | 2001-05-04 | 2006-06-06 | Lucent Technologies Inc. | File system for caching web proxies |
US20070079103A1 (en) | 2005-10-05 | 2007-04-05 | Yasuyuki Mimatsu | Method for resource management in a logically partitioned storage system |
JP2009075759A (ja) | 2007-09-19 | 2009-04-09 | Hitachi Ltd | ストレージ装置及びストレージ装置におけるデータの管理方法 |
US8751755B2 (en) | 2007-12-27 | 2014-06-10 | Sandisk Enterprise Ip Llc | Mass storage controller volatile memory containing metadata related to flash memory storage |
JP5347657B2 (ja) | 2009-03-31 | 2013-11-20 | 富士通株式会社 | データ記憶プログラム、方法、及び情報処理装置 |
US8219776B2 (en) | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US8478796B2 (en) | 2010-03-23 | 2013-07-02 | Apple Inc. | Uncorrectable error handling schemes for non-volatile memories |
US8484529B2 (en) | 2010-06-24 | 2013-07-09 | International Business Machines Corporation | Error correction and detection in a redundant memory system |
US8631271B2 (en) | 2010-06-24 | 2014-01-14 | International Business Machines Corporation | Heterogeneous recovery in a redundant memory system |
KR101774496B1 (ko) | 2010-12-08 | 2017-09-05 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법 |
CN102203740B (zh) | 2011-05-27 | 2013-06-05 | 华为技术有限公司 | 数据处理方法、装置及系统 |
US8843806B2 (en) | 2012-01-19 | 2014-09-23 | International Business Machines Corporation | Dynamic graduated memory device protection in redundant array of independent memory (RAIM) systems |
US8904244B2 (en) | 2012-10-17 | 2014-12-02 | Lsi Corporation | Heuristic approach for faster consistency check in a redundant storage system |
US9715519B2 (en) | 2013-03-15 | 2017-07-25 | Sandisk Technologies Llc | Managing updates to multiple sets of metadata pertaining to a memory |
US9229876B2 (en) | 2013-12-17 | 2016-01-05 | Sandisk Technologies Inc. | Method and system for dynamic compression of address tables in a memory |
JP6196199B2 (ja) | 2014-09-12 | 2017-09-13 | 東芝メモリ株式会社 | 半導体記憶装置 |
US9436615B2 (en) | 2014-10-03 | 2016-09-06 | Sandisk Technologies Llc | Optimistic data read |
US9626286B2 (en) | 2014-10-03 | 2017-04-18 | Sandisk Technologies Llc | Hardware and firmware paths for performing memory read processes |
US9558125B2 (en) | 2014-10-27 | 2017-01-31 | Sandisk Technologies Llc | Processing of un-map commands to enhance performance and endurance of a storage device |
US9870836B2 (en) * | 2015-03-10 | 2018-01-16 | Toshiba Memory Corporation | Memory system and method of controlling nonvolatile memory |
JP6414852B2 (ja) * | 2015-12-14 | 2018-10-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US9886388B2 (en) | 2016-04-22 | 2018-02-06 | Citrix Systems, Inc. | Dynamic block-level indexing for cache with overflow |
US9934151B2 (en) * | 2016-06-28 | 2018-04-03 | Dell Products, Lp | System and method for dynamic optimization for burst and sustained performance in solid state drives |
US10558519B2 (en) | 2017-01-17 | 2020-02-11 | International Business Machines Corporation | Power-reduced redundant array of independent memory (RAIM) system |
TWI613652B (zh) * | 2017-03-27 | 2018-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
US10380018B2 (en) * | 2017-04-04 | 2019-08-13 | Micron Technology, Inc. | Garbage collection |
US10642743B2 (en) | 2017-06-28 | 2020-05-05 | Arm Limited | Apparatus and method of handling caching of persistent data |
KR102430791B1 (ko) * | 2017-07-19 | 2022-08-10 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
US11442813B2 (en) | 2017-10-11 | 2022-09-13 | Hewlett-Packard Development Company, L.P. | Memory devices including execution trace buffers |
KR102410021B1 (ko) | 2017-11-20 | 2022-06-21 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 메모리 모듈을 갖는 메모리 시스템 및 그 메모리 시스템에서의 데이터 처리 방법 |
TWI661307B (zh) | 2017-12-06 | 2019-06-01 | 慧榮科技股份有限公司 | 資料儲存裝置、主機裝置、以及資料寫入方法 |
US10789130B1 (en) | 2018-03-09 | 2020-09-29 | Toshiba Memory Corporation | Capacitor energy management for unexpected power loss in datacenter SSD devices |
CN110489052B (zh) * | 2018-05-14 | 2022-11-25 | 慧荣科技股份有限公司 | 数据储存装置 |
CN112099985B (zh) | 2019-06-17 | 2023-09-12 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
US10922235B2 (en) | 2019-06-26 | 2021-02-16 | Western Digital Technologies, Inc. | Method and system for address table eviction management |
-
2019
- 2019-11-13 CN CN201911104601.6A patent/CN112130749B/zh active Active
-
2020
- 2020-05-28 US US16/885,627 patent/US11334480B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012867A (zh) * | 2009-09-03 | 2011-04-13 | 248固态硬碟有限公司 | 资料储存系统及其管理方法 |
CN107168639A (zh) * | 2016-03-08 | 2017-09-15 | 东芝存储器株式会社 | 存储系统、信息处理系统及非易失性存储器的控制方法 |
TW201738892A (zh) * | 2016-04-27 | 2017-11-01 | 慧榮科技股份有限公司 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
CN109388520A (zh) * | 2017-08-08 | 2019-02-26 | 大心电子(英属维京群岛)股份有限公司 | 数据备份方法、数据恢复方法以及存储控制器 |
US20190095116A1 (en) * | 2017-09-22 | 2019-03-28 | Toshiba Memory Corporation | Memory system |
Also Published As
Publication number | Publication date |
---|---|
US20200409835A1 (en) | 2020-12-31 |
CN112130749B (zh) | 2023-12-22 |
US11334480B2 (en) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9390004B2 (en) | Hybrid memory management | |
US9652386B2 (en) | Management of memory array with magnetic random access memory (MRAM) | |
CN110955384B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
EP2565792B1 (en) | Block management schemes in hybrid SLC/MLC memory | |
KR101324688B1 (ko) | 영구 가비지 컬렉션을 갖는 메모리 시스템 | |
KR101477047B1 (ko) | 메모리 시스템 및 그것의 블록 병합 방법 | |
CN105718530B (zh) | 文件存储系统及其文件存储控制方法 | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN112130749B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN111610930A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
TWI713032B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN116364148A (zh) | 一种面向分布式全闪存储系统的磨损均衡方法及系统 | |
US11036414B2 (en) | Data storage device and control method for non-volatile memory with high-efficiency garbage collection | |
CN110888591A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
TWI724550B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
TWI705328B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
KR20230115196A (ko) | 메모리 블록을 할당 해제하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법 | |
CN110609817A (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 |