CN110888820A - 数据储存装置以及非挥发式存储器控制方法 - Google Patents
数据储存装置以及非挥发式存储器控制方法 Download PDFInfo
- Publication number
- CN110888820A CN110888820A CN201910376013.1A CN201910376013A CN110888820A CN 110888820 A CN110888820 A CN 110888820A CN 201910376013 A CN201910376013 A CN 201910376013A CN 110888820 A CN110888820 A CN 110888820A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- active block
- active
- source
- 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 65
- 238000013500 data storage Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 title claims description 41
- 238000012546 transfer Methods 0.000 claims description 22
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 5
- 238000011084 recovery Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000001934 delay Effects 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
- 238000013507 mapping 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
- 238000012545 processing Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the 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/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
- 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
- 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
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/7211—Wear leveling
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
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)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本发明涉及非挥发式存储器的高效控制技术。具体而言提供一种数据储存装置以及非挥发式存储器控制方法,该数据储存装置包括一非挥发式存储器以及一控制器。该控制器自该非挥发式存储器的多个闲置区块配置一第一主动区块填写一主机要求的写入数据。该控制器在这些闲置区块的数量小于一临界数量、且一第一来源区块的有效数据少于一临界数据量时,以该第一主动区块为该第一来源区块的有效数据的搬移目的地。
Description
技术领域
本发明有关于非挥发式存储器的控制。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存,可做为储存媒体实现一数据储存装置。
非挥发式存储器通常有其特殊的储存特性。本技术领域需要相应非挥发式存储器的储存特性发展相应的控制技术。
发明内容
根据本发明一种实施方式所实现的一数据储存装置包括一非挥发式存储器以及一控制器。该控制器自该非挥发式存储器的多个闲置区块配置一第一主动区块填写一主机要求的写入数据。该控制器在这些闲置区块的数量小于一临界数量、且一第一来源区块的有效数据少于一临界数据量时,以该第一主动区块为该第一来源区块的有效数据的搬移目的地。
一种实施方式中,该控制器将该第一来源区块的有效数据全数搬移到该第一主动区块后,是在该第一主动区块完成结尾写入前释出该第一来源区块为闲置区块。
一种实施方式中,该控制器在这些闲置区块之数量小于该临界数量、但该第一来源区块的有效数据不少于该临界数据量时,以一第二主动区块为该第一来源区块的有效数据的搬移目的地。该控制器是自这些闲置区块配置该第二主动区块,有别于该第一主动区块。
一种实施方式中,该控制器将该第一来源区块的有效数据全数搬移到该收集区块后,保留该第一来源区块,直至该第二主动区块关闭方释出为闲置区块。
一种实施方式中,该控制器操作一旗标。该控制器在该第一来源区块的有效数据全数搬移到该第一主动区块后,以该旗标标示该第一主动区块已负责该第一来源区块的有效数据保存,禁制该第一主动区块再用做一第二来源区块的有效数据的搬移目的地。该第二来源区块的有效数据亦少于该临界数据量。该第二来源区块的有效数据搬移需求源于这些闲置区块的数量再次小于该临界数量。
一种实施方式中,该控制器在该第一主动区块关闭后,自这些闲置区块配置一第三主动区块填写该主机要求的写入数据,并重置该旗标,使该控制器得以将该第三主动区块作为该第二来源区块的有效数据的搬移目的地。
一种实施方式中,该控制器限制该第一主动区块得以收集的来源区块数量。
以上控制器对非挥发式存储器的操作也可以由其他结构实现。本发明还可以前述概念实现非挥发式存储器的控制方法,包括:根据一主机的要求操作一非挥发式存储器;自该非挥发式存储器的多个闲置区块配置一第一主动区块填写该主机要求的写入数据;且在这些闲置区块的数量小于一临界数量、且一第一来源区块的有效数据少于一临界数据量时,以该第一主动区块为该第一来源区块的有效数据的搬移目的地。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1根据本发明一种实施方式图解一数据储存装置100;
图2A以及图2B以流程图图解根据本发明一种实施方式实现的高效能数据储存方法,并使用旗标cleanflag决定垃圾回收采路径GC_S或是路径GC_B;以及
图3A以及图3B显示不同技术如何变化快闪存储器102的闲置区块数量。
符号说明
100~数据储存装置;
102~快闪存储器;
104~控制器;
106~主机;
108~闲置区块池;
110~数据区块池;
A0~主动区块;
A1~收集区块;
GC_B、GC_S~垃圾回收的路径;
S202…S224~步骤。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依围由权利要求书界定。
非挥发式存储器可以是快闪存储器(Flash Memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,提供长时间数据保存的储存媒体。以下特别以快闪存储器为例进行讨论。
现今数据储存装置常以快闪存储器为储存媒体,用以储存来自于主机的使用者数据。数据储存装置的种类众多,包括记忆卡(Memory Card)、通用串行总线闪存装置(USBFlash Device)、固态硬碟(SSD)…等产品。有一种应用是采多芯片封装、将快闪存储器与其控制器包装在一起─称为嵌入式快闪存储器模块(如eMMC)。
以快闪存储器为储存媒体的数据储存装置可应用于多种电子装置中。所述电子装置包括智慧型手机、穿戴装置、平板电脑、虚拟实境设备…等。电子装置的运算模块可视为主机(Host),操作所使用的数据储存装置,以存取其中快闪存储器。
以快闪存储器为储存媒体的数据储存装置也可用于建构数据中心。例如,伺服器可操作固态硬碟(SSD)阵列形成数据中心。伺服器即可视为主机,操作所连结的固态硬碟,以存取其中快闪存储器。
图1根据本发明一种实施方式图解数据储存装置100。数据储存装置100包括快闪存储器102以及控制器104。主机106透过控制器104而间接存取快闪存储器102。控制器104除了接收及执行来自主机(Host)106的写入命令,更主动搬移快闪存储器102所储存的使用者数据。
以下叙述快闪存储器有其特殊的储存特性。
主机106是以逻辑地址(例如,逻辑区块地址LBA或全域主机页编号GHP…等)区别使用者数据。快闪存储器的物理空间则是划分为多个区块(Blocks)配置使用。各区块(Block)包括多页面(Pages)。各页面包括N个区段(Sectors),N为大于一的整数,如:4。16KB空间的页面可分为四个区段,各区段为4KB。一种实施方式中,一区块系根据页面编号,由低至高编号配置来储存数据。
一种实施方式中,数据储存装置采用多通道技术,可将不同通道的多个区块可以虚拟成一个超级区块,多个页面可以虚拟成一个超级页面,并以超级区块、超级页面进行数据储存空间的管理,可加快数据储存装置的数据吞吐量。
数据储存装置将使用者数据的逻辑地址与物理地址的对应关系记录在逻辑-物理地址映射表(Logical-Physical Mapping Table,L2P Table)中。
快闪存储器的储存空间需先抹除方能再次使用,抹除(Erase)的最小单位为区块。区块可区分成数据区块、主动区块以及闲置区块。闲置区块可作为主动区块以写入使用者数据。当主动区块写满使用者数据后,经过关闭处理(写入EOB(End of Block)资讯),主动区块变更为数据区块。随着使用者数据的更新,部份储存在数据区块的使用者数据会由有效数据变更为无效数据。当数据区块所储存的使用者数据皆为无效数据时,经抹除处理后则变更为闲置区块。在另一种实施例中,充满无效数据的数据区块会变更为闲置区块,而抹除处理乃等到闲置区块作为主动区块时再予以执行。
快闪存储器的使用涉及数据搬移程序,可分成垃圾回收程序以及非垃圾回收程序。当闲置区块数量不足时,可对储存空间进行垃圾回收(Garbage Collection)处理。例如,当多个数据区块(又称来源区块)仅储存零星有效数据时,可进行垃圾回收处理而将有效数据集中到一个主动区块(又称目的区块),以回收多个数据区块,增加闲置区块数量。
非垃圾回收程序的种类很多,是根据濒损条件判断。例如,产生错误更正失效(ECCfailed)的数据区块(来源区块)也需要进行数据搬移以及时抢救其中尚可读出的使用者数据。另外,过于频繁读取的数据区块(来源区块)也需要进行数据搬移,避免数据区块的数据保存能力降低所导致的使用者数据损坏,此操作又称预防性搬移(Early Move)。另外,数据搬移也可能响应区块间的损耗平均(Wear Leveling)考量而启动,例如,将读取次数低的数据区块(来源区块)的使用者数据(包括有效数据及无效数据)全部搬移到抹除计数较高的主动区块(目的区块),以回收该数据区块。另外,损耗平均程序亦可与垃圾回收程序予以结合,即损耗平均程序中搬移多个数据区块(来源区块)的有效数据至抹除计数较高的主动区块(目的区块)。
需注意的是,数据搬移较佳是以数据复制的方式来实现。
本发明特别针对垃圾回收所进行的有效数据搬移提出一种高效能方案。本发明提出一种高效能数据储存的方法,可令同一块主动区块满足不只一种的数据储存的需求。除了储存来自于主机106的使用者数据(主机106以写入指令要求写入快闪存储器102)之外,低于一临界数据量的有效数据搬移的垃圾回收也可存入同一块主动区块。
图中将快闪存储器102的闲置区块归属至闲置区块池108,数据区块归属至数据区块池110。控制器104是自闲置区块池108中选择闲置区块作为主动区块使用。相应地,闲置区块池108的闲置区块数量会减少。之后,使用者数据填入主动区块。主动区块关闭而成为数据区块后,数据区块数量会增加。
控制器104一般以一个主动区块(标示为A0)接收来自主机106的使用者数据,此使用者数据通常由写入命令所提供。本发明是将该主动区块A0更用来实现低数据量的垃圾回收。对于仅余留少量有效数据(以一临界数据量衡量)的一来源区块,本发明是将其有效数据收集至该主动区块A0。相较于传统技术特意另外配置一主动区块(以下称之A1)收集如此少量有效数据,本发明设计有其效应。
首先,本发明中主动区块A0不只可以储存来自主机106以写入指令要求写入的使用者数据,更可以储存少量垃圾回收的使用者数据,因此,可降低闲置区块的使用量。
响应突发断电事件,突发断电事件回复(Sudden Power Off Recovery,SPOR)程序须特别考量数据可靠度,会舍弃尚未关闭(Closed)的该主动区块A1,仍以来源区块上的使用者数据为准。因此,只要主动区块A1尚未关闭,数据搬移程序中的所有来源区块都必须留存,不能释出。上述设计明显地拖累来源区块的回收,造成闲置区块数量无法及时地增加,甚至导致不同种类的数据搬移程序的启动。然而,突发断电事件回复(SPOR)程序不会全然丢弃该主动区块A0。若以主动区块A0为来源区块的数据搬移目的地,有效数据搬移完成后,数据搬移程序中的来源区块即可释出,无须为了SPOR程序而留存。闲置区块数量随即上升,利于快闪存储器操作。
特别是,来源区块若仅有少量有效数据(以一临界数据量衡量),其搬移耗费时间甚少。待如此少量的有效数据完全自来源区块搬移到主动区块A0后,该来源区块即可释出,及时补足闲置区块数量。其中,控制器104可记录每一数据区块的有效数据量,并即时性或周期性地更新每一数据区块的有效数据量,或是在关闭一个主动区块A0后再一次性地更新每一数据区块的有效数据量。
此外,传统技术为了令作为目的区块的主动区块A1及早关闭,可能会填入部份虚假数据(dummy data),这将降低数据区块的数据储存量,也增加区块的抹写频率,缩短快闪存储器寿命。相较之,弹性使用主动区块A0作数据搬移程序的目的地,可以减少虚假数据的写入,克服上述问题。
如前所述,数据搬移程序可区分成垃圾回收程序以及非垃圾回收程序。当闲置区块数量少于一临界数量TH1,控制器104启动垃圾回收程序。控制器104自该数据区块池110选出一来源区块,并判断该来源区块的有效数据量。若该来源区块的有效数据量低于一临界数据量TH2,控制器104以该主动区块A0作为该来源区块之有效数据搬移的目的地,如箭头GC_S所示。若该来源区块的有效数据量不低于该临界数据量,控制器104则是以另一主动区块A1作为该来源区块之有效数据搬移的目的地,如箭头GC_B所示。另外,控制器104亦可直接选取具有最小有效数据量的数据区块作为该来源区块。该主动区块A1也是从该闲置区块池108选取,可能涉及多个区块之有效数据收集。主动区块A1关闭后即归纳属该数据区块池110。该主动区块A1不限定只做垃圾回收,也可应付前述错误更正失效搬移、预防性搬移、损耗平均搬移、或是其他。
一种实施方式中,控制器104限制该主动区块A0所应付的来源区块数量(例如,只应付单一个、或一特定数值内的来源区块)。如此一来,以主动区块A0为有效数据目的地的来源区块数量有限,不会有过量区块接连释出。闲置区块数量波动稳定。
一种实施方式系引入一旗标cleanflag决定垃圾回收采路径GC_S或是路径GC_B。
图2A以及图2B以流程图图解根据本发明一种实施方式实现的高效能数据储存方法,并使用旗标cleanflag决定垃圾回收采路径GC_S或是路径GC_B。
步骤S202:控制器104配置主动区块A0。控制器104自闲置区块池108配置其中之一闲置区块作为主动区块A0。
步骤S204:控制器104初始化旗标cleanflag为"DISABLE"。旗标cleanflag状态"DISABLE"代表控制器104尚未将主动区块A0当作任何来源区块的有效数据的搬移目的地。
步骤S206:控制器104判断闲置区块的数量是否小于一临界数量TH1。若否,控制器104判断快闪存储器102尚未有垃圾回收需求,流程进入步骤S208,反之,则更作步骤S210判断。
步骤S208:控制器104判断是否关闭主动区块A0?如果是则执行步骤S214,如果否则执行步骤S212。假如主动区块A0仍有闲置空间以储存数据,则控制器104不关闭主动区块A0。
步骤S212:控制器104将来自主机106的使用者数据写入主动区块A0,之后,回到步骤S206。在主动区块A0接收主机106端数据之间,控制器104可能穿插快闪存储器102多种操作,使得闲置区块数量减少,衍生出垃圾回收需求。以步骤S206监控即是应付此状况。
步骤S214:控制器104关闭主动区块A0。假如主动区块A0已无闲置空间以储存数据,则控制器104关闭主动区块A0,并将EOB资讯写入主动区块A0的最后一个页面中,之后,将主动区块A0变更成数据区块。
步骤S210:控制器104在步骤S206确认有垃圾回收需求后,还以此判断该来源区块的有效数据量是否小于一临界数据量TH2。控制器104以此步骤判断是否为低数据量搬移的垃圾回收。若是,流程接续图2B。若否,流程进入步骤S216。
步骤S216:控制器104以主动区块A1为来源区块的有效数据量搬移目的地,实现高数据量的垃圾回收。一种实施方式中,控制器104可继续回到步骤S206,监控是否有其他垃圾回收需求发生。
图2B的步骤S218~S224则是用于应付低数据量的垃圾回收。步骤S218:控制器104将旗标cleanflag设为"START",其中,"START"代表主动区块A0作为数据搬移的目的区块,并准备执行数据的搬移。
步骤S220:控制器104从来源区块搬移使用者数据至主动区块A0。另外,假设来源区块中有效数据无法一次搬移完成,则控制器104可分批搬移来源区块中有效数据至主动区块A0,中间并穿插回应来自主机106的命令,例如,将来自主机106的使用者数据写入主动区块A0。
步骤S222:控制器104将旗标cleanflag设为"END",其中,"END"表示主动区块A0已用作某一来源区块的有效数据搬移目的地,是用来与旗标cleanflag值"Disable"区别。倘若同一个主动区块A0的使用中,又发生低数据量垃圾回收需求,"END"值的旗标可避免控制器104又再以主动区块A0为目的区块。新的低数据量垃圾回收可以待主动区块A0关闭,另外又有闲置区块配置为主动区块A0后再进行。
步骤S224:控制器104将来源区块变更为闲置区块,此时,闲置区块池的数量加1。步骤S224可无关主动区块A0关闭与否。闲置区块数量可及时被补上。相较之,步骤S216以主动区块A1为目的地的来源区块必须确定主动区块A1关闭后方可释出。以主动区块A0为有效数据搬移目的地的技术显然有其优势。此外,由于来源区块的有效数据量低,进行数据搬移所需的时间短,又能快速地将来源区块变更成闲置区块,因此,相较于步骤S216的作法,步骤S218~S224具有显著的效益。
使用者操作习惯可能导致装置反复断电、上电(称为power cycle)。例如,手机使用者开盖查看信息又盖上。闲置区块大量消耗,发生垃圾回收需求。本发明技术使得过低的闲置区块数量得以及时补足。
图3A以及图3B显示不同技术如何变化快闪存储器102的闲置区块数量。
图3A统一都是以主动区块A1(不同于接收主机106写入数据用的主动区块A0)为垃圾回收目的地。第3B图则是将主动区块A0也用来做部分垃圾回收。第3A图中,闲置区块数量会剧烈下降后再猛然补足。图3B中,闲置区块数量一有不足立即补上,波动较小。
一种实施方式中,主动区块A0限定收集的来源区块数量多于单一个。
一种实施方式中,旗标cleanflag不被使用。主动区块A0不限定所收集的来源区块数量。
一种实施方式中,主动区块A0是在完成写入时递减闲置区块数量,以确立是否要设定一垃圾回收需求旗标。步骤S206是检查该垃圾回收需求旗标。该旗标设立时,流程方进行步骤S210。
一种实施方式中,该临界数据量TH2系设定为写入单位。例如,临界数据量TH等于一页16KB,或一超级页64KB;避免过度占用主动区块A0做垃圾回收。
以上控制器104对快闪存储器102的操作也可以由其他结构实现。凡是以主动区块A0分担低数据搬移量的垃圾回收的技术,都属于本发明欲保护范围。本发明还可以前述概念实现非挥发式存储器的控制方法。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (18)
1.一种数据储存装置,包括:
一非挥发式存储器;以及
一控制器,根据一主机的要求操作该非挥发式存储器,
其中:
该控制器自该非挥发式存储器的多个闲置区块配置一第一主动区块填写该主机要求的写入数据;且
该控制器在这些闲置区块的数量小于一临界数量、且一第一来源区块的有效数据少于一临界数据量时,以该第一主动区块为该第一来源区块的有效数据的搬移目的地。
2.如权利要求1所述的数据储存装置,其特征在于:
该控制器将该第一来源区块的有效数据全数搬移到该第一主动区块后,是在该第一主动区块关闭前释出该第一来源区块为闲置区块。
3.如权利要求2所述的数据储存装置,其特征在于:
该控制器在这些闲置区块的数量小于该临界数量、但该第一来源区块的有效数据不少于该临界数据量时,以一第二主动区块为该第一来源区块的有效数据的搬移目的地;且
该控制器系自这些闲置区块配置该第二主动区块,有别于该第一主动区块。
4.如权利要求3所述的数据储存装置,其特征在于:
该控制器将该第一来源区块的有效数据全数搬移到该收集第二主动区块后,保留该第一来源区块,直至该第二主动区块关闭方释出为闲置区块。
5.如权利要求2所述的数据储存装置,其特征在于:
该控制器操作一旗标;且
该控制器在该第一来源区块的有效数据全数搬移到该第一主动区块后,以该旗标标示该第一主动区块已负责该第一来源区块的有效数据保存,禁制该第一主动区块再用做一第二来源区块的有效数据的搬移目的地。
6.如权利要求5所述的数据储存装置,其特征在于:
该第二来源区块的有效数据亦少于该临界数据量;且
该第二来源区块的有效数据搬移需求源于这些闲置区块的数量再次小于该临界数量。
7.如权利要求6所述的数据储存装置,其特征在于:
该控制器在该第一主动区块关闭后,自这些闲置区块配置一第三主动区块填写该主机要求的写入数据,并重置该旗标,使该控制器得以将该第三主动区块作为该第二来源区块的有效数据的搬移目的地。
8.如权利要求2所述的数据储存装置,其特征在于:
该控制器限制该第一主动区块得以收集的来源区块数量。
9.如权利要求2所述的数据储存装置,其特征在于:
该临界数据量设定为写入单位。
10.一种非挥发式存储器控制方法,包括:
根据一主机的要求操作一非挥发式存储器;
自该非挥发式存储器的多个闲置区块配置一第一主动区块填写该主机要求的写入数据;且
在这些闲置区块的数量小于一临界数量、且一第一来源区块的有效数据少于一临界数据量时,以该第一主动区块为该第一来源区块的有效数据的搬移目的地。
11.如权利要求10所述的非挥发式存储器控制方法,其特征在于,还包括:
将该第一来源区块的有效数据全数搬移到该第一主动区块后,设定在该第一主动区块关闭前,释出该第一来源区块为闲置区块。
12.如权利要求11所述的非挥发式存储器控制方法,其特征在于,还包括:
在这些闲置区块的数量小于该临界数量、但该第一来源区块的有效数据不少于该临界数据量时,以一第二主动区块为该第一来源区块的有效数据的搬移目的地,
其中,该第二主动区块配置自这些闲置区块,并有别于该第一主动区块。
13.如权利要求12所述的非挥发式存储器控制方法,其特征在于,还包括:
将该第一来源区块的有效数据全数搬移到该第二主动区块后,保留该第一来源区块,直至该第二主动区块关闭后方释出为闲置区块。
14.如权利要求13所述的非挥发式存储器控制方法,其特征在于,还包括:
操作一旗标;且
在该第一来源区块的有效数据全数搬移到该第一主动区块后,以该旗标标示该第一主动区块已负责该第一来源区块的有效数据保存,禁制该第一主动区块再用做一第二来源区块的有效数据的搬移目的地。
15.如权利要求14所述的非挥发式存储器控制方法,其特征在于:
该第二来源区块的有效数据亦少于该临界数据量;且
该第二来源区块的有效数据搬移需求源于这些闲置区块的数量再次小于该临界数量。
16.如权利要求15所述的非挥发式存储器控制方法,其特征在于,还包括:
在该第一主动区块关闭后,自这些闲置区块配置一第三主动区块填写该主机要求的写入数据,并重置该旗标,使得以将该第三主动区块作为该第二来源区块的有效数据的搬移目的地。
17.如权利要求11所述的非挥发式存储器控制方法,其特征在于,还包括:
限制该第一主动区块得以收集的来源区块数量。
18.如权利要求11所述的非挥发式存储器控制方法,其特征在于:
该临界数据量设定为写入单位。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862728134P | 2018-09-07 | 2018-09-07 | |
US62/728,134 | 2018-09-07 | ||
TW108107912 | 2019-03-08 | ||
TW108107912A TWI714975B (zh) | 2018-09-07 | 2019-03-08 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888820A true CN110888820A (zh) | 2020-03-17 |
CN110888820B CN110888820B (zh) | 2022-01-25 |
Family
ID=69718922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910376013.1A Active CN110888820B (zh) | 2018-09-07 | 2019-05-07 | 数据储存装置以及非挥发式存储器控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11199982B2 (zh) |
CN (1) | CN110888820B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102653235B1 (ko) * | 2019-10-16 | 2024-04-01 | 에스케이하이닉스 주식회사 | 메모리 블록을 효율적으로 관리할 수 있는 메모리 시스템 및 메모리 시스템의 동작방법 |
CN112799601B (zh) * | 2021-02-24 | 2023-06-13 | 群联电子股份有限公司 | 有效数据合并方法、存储器存储装置及控制电路单元 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7609564B2 (en) * | 2005-12-31 | 2009-10-27 | Intel Corporation | Systems and techniques for non-volatile memory buffering |
CN102193870A (zh) * | 2010-03-09 | 2011-09-21 | 群联电子股份有限公司 | 存储器管理与写入方法、存储器控制器与存储器存储系统 |
US8225028B2 (en) * | 2008-10-28 | 2012-07-17 | Silicon Motion, Inc. | Memory devices and methods for programming flash memory utilizing spare blocks |
US20130132640A1 (en) * | 2011-11-18 | 2013-05-23 | Phison Electronics Corp. | Data writing method, and memory controller and memory storage apparatus using the same |
CN103218306A (zh) * | 2013-03-29 | 2013-07-24 | 四川长虹电器股份有限公司 | 一种实现基于ubi的动态磨损均衡的方法 |
CN103455386A (zh) * | 2013-08-28 | 2013-12-18 | 华为技术有限公司 | 一种修复出错数据的方法和设备 |
CN104598167A (zh) * | 2011-06-27 | 2015-05-06 | 群联电子股份有限公司 | 存储器抹除方法、存储器控制器与存储器储存装置 |
CN107943710A (zh) * | 2016-10-13 | 2018-04-20 | 大心电子股份有限公司 | 存储器管理方法及使用所述方法的存储控制器 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69327237T2 (de) * | 1992-04-01 | 2000-09-07 | Omron Corp., Kyoto | Schutzhülle für spekulum und herstellungsverfahren |
KR100719380B1 (ko) | 2006-03-31 | 2007-05-18 | 삼성전자주식회사 | 향상된 신뢰성 특성을 갖는 다치 플래시 메모리 장치 및그것을 포함한 메모리 시스템 |
US7315916B2 (en) | 2004-12-16 | 2008-01-01 | Sandisk Corporation | Scratch pad block |
US7594087B2 (en) | 2006-01-19 | 2009-09-22 | Sigmatel, Inc. | System and method for writing data to and erasing data from non-volatile memory |
CN101645309B (zh) | 2008-08-05 | 2013-05-22 | 威刚科技(苏州)有限公司 | 非挥发性存储装置及其控制方法 |
US8040744B2 (en) * | 2009-01-05 | 2011-10-18 | Sandisk Technologies Inc. | Spare block management of non-volatile memories |
TWI399644B (zh) * | 2009-12-24 | 2013-06-21 | Univ Nat Taiwan | 非揮發記憶體區塊管理方法 |
US9021177B2 (en) * | 2010-04-29 | 2015-04-28 | Densbits Technologies Ltd. | System and method for allocating and using spare blocks in a flash memory |
US8402228B2 (en) * | 2010-06-30 | 2013-03-19 | International Business Machines Corporation | Page buffering in a virtualized, memory sharing configuration |
KR101727704B1 (ko) | 2010-10-04 | 2017-04-18 | 삼성전자주식회사 | 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들 |
JP5535128B2 (ja) | 2010-12-16 | 2014-07-02 | 株式会社東芝 | メモリシステム |
US8886990B2 (en) * | 2011-01-27 | 2014-11-11 | Apple Inc. | Block management schemes in hybrid SLC/MLC memory |
KR20130076429A (ko) | 2011-12-28 | 2013-07-08 | 삼성전자주식회사 | 메모리 장치의 저장 영역 관리 방법 및 이를 이용한 저장 장치 |
CN104732153B (zh) | 2013-12-18 | 2018-01-12 | 群联电子股份有限公司 | 数据抹除方法、存储器控制电路单元及存储器存储装置 |
US20160078966A1 (en) | 2014-09-14 | 2016-03-17 | Transcend Information, Inc. | Method of performing wear management in non-volatile memory devices |
US20160188455A1 (en) | 2014-12-29 | 2016-06-30 | Sandisk Technologies Inc. | Systems and Methods for Choosing a Memory Block for the Storage of Data Based on a Frequency With Which the Data is Updated |
US9747201B2 (en) * | 2015-03-26 | 2017-08-29 | Facebook, Inc. | Methods and systems for managing memory allocation |
US9983829B2 (en) | 2016-01-13 | 2018-05-29 | Sandisk Technologies Llc | Physical addressing schemes for non-volatile memory systems employing multi-die interleave schemes |
CN107025941A (zh) | 2016-01-29 | 2017-08-08 | 瑞昱半导体股份有限公司 | 固态硬盘控制电路 |
CN107817943B (zh) | 2016-09-13 | 2020-12-15 | 深圳大心电子科技有限公司 | 数据传输方法、存储器存储装置及存储器控制电路单元 |
TWI627531B (zh) | 2016-11-28 | 2018-06-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
CN108121664A (zh) | 2016-11-28 | 2018-06-05 | 慧荣科技股份有限公司 | 数据储存装置以及其操作方法 |
TWI615710B (zh) * | 2016-12-14 | 2018-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI613652B (zh) | 2017-03-27 | 2018-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
US10409716B2 (en) | 2017-10-11 | 2019-09-10 | Western Digital Technologies, Inc. | Non-volatile memory with adaptive wear leveling |
-
2019
- 2019-05-07 CN CN201910376013.1A patent/CN110888820B/zh active Active
- 2019-07-08 US US16/505,231 patent/US11199982B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7609564B2 (en) * | 2005-12-31 | 2009-10-27 | Intel Corporation | Systems and techniques for non-volatile memory buffering |
US8225028B2 (en) * | 2008-10-28 | 2012-07-17 | Silicon Motion, Inc. | Memory devices and methods for programming flash memory utilizing spare blocks |
CN102193870A (zh) * | 2010-03-09 | 2011-09-21 | 群联电子股份有限公司 | 存储器管理与写入方法、存储器控制器与存储器存储系统 |
CN104598167A (zh) * | 2011-06-27 | 2015-05-06 | 群联电子股份有限公司 | 存储器抹除方法、存储器控制器与存储器储存装置 |
US20130132640A1 (en) * | 2011-11-18 | 2013-05-23 | Phison Electronics Corp. | Data writing method, and memory controller and memory storage apparatus using the same |
CN103218306A (zh) * | 2013-03-29 | 2013-07-24 | 四川长虹电器股份有限公司 | 一种实现基于ubi的动态磨损均衡的方法 |
CN103455386A (zh) * | 2013-08-28 | 2013-12-18 | 华为技术有限公司 | 一种修复出错数据的方法和设备 |
CN107943710A (zh) * | 2016-10-13 | 2018-04-20 | 大心电子股份有限公司 | 存储器管理方法及使用所述方法的存储控制器 |
Non-Patent Citations (1)
Title |
---|
巫小泉: "面向大规模闪存存储的存储系统关键技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
US11199982B2 (en) | 2021-12-14 |
US20200081621A1 (en) | 2020-03-12 |
CN110888820B (zh) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11416391B2 (en) | Garbage collection | |
KR101324688B1 (ko) | 영구 가비지 컬렉션을 갖는 메모리 시스템 | |
US11334480B2 (en) | Data storage device and non-volatile memory control method | |
KR101718713B1 (ko) | 비휘발성 메모리 시스템 | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US20240220155A1 (en) | Solution for Super Device Imbalance in ZNS SSD | |
CN114746834A (zh) | 基于分区状态的分区附加命令调度 | |
TWI714975B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN110888820B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US11966618B2 (en) | Purposeful super device imbalance for ZNS SSD efficiency | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
CN110888593B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US20230075329A1 (en) | Super Block Allocation Across Super Device In ZNS SSD | |
CN110888591B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US11269534B2 (en) | Data storage device and non-volatile memory control method | |
US11640254B2 (en) | Controlled imbalance in super block allocation in ZNS SSD | |
US20230103355A1 (en) | Support Higher Number of Active Zones in ZNS SSD |
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 |