CN110888593B - 数据储存装置以及非挥发式存储器控制方法 - Google Patents

数据储存装置以及非挥发式存储器控制方法 Download PDF

Info

Publication number
CN110888593B
CN110888593B CN201910445239.2A CN201910445239A CN110888593B CN 110888593 B CN110888593 B CN 110888593B CN 201910445239 A CN201910445239 A CN 201910445239A CN 110888593 B CN110888593 B CN 110888593B
Authority
CN
China
Prior art keywords
data
block
source block
controller
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.)
Active
Application number
CN201910445239.2A
Other languages
English (en)
Other versions
CN110888593A (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.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from TW108107913A external-priority patent/TWI712882B/zh
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN110888593A publication Critical patent/CN110888593A/zh
Application granted granted Critical
Publication of CN110888593B publication Critical patent/CN110888593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • 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

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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及非挥发式存储器的高效控制技术。具体而言,涉及数据储存装置以及非挥发式存储器控制方法。一控制器以多批次搬移一第一来源区块的有效数据至一主动区块,并在不同批次间允许一主机要求的写入数据填入该主动区块。在没有一第二来源区块存在时,该控制器令搬移该第一来源区块的上述批次各自搬移一第一数据量,反之则令上述批次各自搬移一第二数据量。该第二数据量高于该第一数据量,旨在加速该第一来源区块的数据搬移。

Description

数据储存装置以及非挥发式存储器控制方法
技术领域
本发明有关于非挥发式存储器的控制。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存,可做为储存媒体实现一数据储存装置。
非挥发式存储器通常有其特殊的储存特性。本技术领域需要相应非挥发式存储器的储存特性发展相应的控制技术。
发明内容
根据本发明一种实施方式所实现的一数据储存装置包括一非挥发式存储器以及一控制器。该控制器根据一主机的要求操作该非挥发式存储器。该控制器自该非挥发式存储器的多个闲置区块配置一主动区块填写该主机要求的写入数据。该控制器更以该主动区块作为该非挥发式存储器中一第一来源区块的有效数据的搬移目的地。该控制器以多批次搬移该第一来源区块的有效数据至该主动区块,并在不同批次间允许该主机要求的写入数据填入该主动区块。该控制器在没有一第二来源区块存在时,令搬移该第一来源区块的上述批次各自搬移一第一数据量。该控制器在存在该第二来源区块时,令搬移该第一来源区块的上述批次各自搬移一第二数据量。该第二数据量高于该第一数据量。
一种实施方式中,该控制器在更存在一第三来源区块时,调升该第二数据量。
一种实施方式中,该控制器令该第一来源区块的有效数据完全搬移到该主动区块后,方允许该第二来源区块的有效数据搬移到该主动区块。
一种实施方式中,该控制器是在搬移该第一来源区块的有效数据之初,就设定搬移该第一来源区块的上述批次各自搬移的数据量。
一种实施方式中,该控制器根据该第一来源区块的有效页数x以及该主动区块的闲置页数y估算一比例x:(y-x),等效为1:n。该控制器根据来源区块的总数设定一数值a。该控制器在仅该第一来源区块存在时,设定该数值a为一常态值,并在不只该第一来源区块存在时,设定该数值a大于该常态值。该控制器以一比例a:n实行该第一来源区块一批次的搬移以及该主机要求的写入数据的写入。
一种实施方式中,该控制器更根据该非挥发式存储器程式化的反应时间设定一数值M。该控制器自该第一来源区块搬移a*M页有效数据至该主动区块后,允许该主机要求的n*M页写入数据填入该主动区块。
一种实施方式中,该控制器估算上述数值a*M以及n*M后,先搬移a*M页有效数据至该主动区块,方允许该主机要求的n*M页写入数据填入该主动区块。
一种实施方式中,来源区块的选定,是响应这些闲置区块的数量小于一临界数量、或发现错误更正失效、或进行预防性搬移、或满足损耗平均。
一种实施方式中,该控制器将该第一来源区块的有效数据全数搬移到该主动区块后,是在该主动区块完成结尾写入前释出该第一来源区块为闲置区块。
以上控制器对非挥发式存储器的操作也可以由其他结构实现。本发明还可以前述概念实现非挥发式存储器的控制方法,包括:根据一主机的要求操作一非挥发式存储器;自该非挥发式存储器的多个闲置区块配置一主动区块填写该主机要求的写入数据;更以该主动区块作为该非挥发式存储器中一第一来源区块的有效数据的搬移目的地;以多批次搬移该第一来源区块的有效数据至该主动区块,并在不同批次间允许该主机要求的写入数据填入该主动区块;在没有一第二来源区块存在时,令搬移该第一来源区块的上述批次各自搬移一第一数据量;且在存在该第二来源区块时,令搬移该第一来源区块的上述批次各自搬移一第二数据量。该第二数据量高于该第一数据量。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1根据本发明一种实施方式图解一数据储存装置100;
图2以流程图图解根据本发明一种实施方式对快闪存储器102所实施的数据搬移;以及
图3还根据本发明一种实施方式详细说明步骤S208,其中将决定步骤S210各批次所进行的数据搬移页数a*M、以及步骤S212所穿插的主机106写入页数n*M。
符号说明
100~数据储存装置;
102~快闪存储器;
104~控制器;
106~主机;
108~闲置区块池;
110~数据区块池;
A0~主动区块;
Blk_Data~数据搬移路径;
Host_Data~主机写入数据路径;
S202…S218、S302…S308~步骤。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书来界定。
非挥发式存储器可以是快闪存储器(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…等)区别使用者数据。快闪存储器102的物理空间则是划分为多个区块(Blocks)配置使用。各区块(Block)包括多页(Pages)。各页包括N个区段(Sectors),N为大于一的整数,如:4。16KB空间的页可分为四个区段,各区段为4KB。一种实施方式中,一区块是根据页编号,由低至高编号配置来储存数据。
一种实施方式中,数据储存装置采用多通道技术,可将不同通道的多个区块可以虚拟成一个超级区块,多个页面可以虚拟成一个超级页面,并以超级区块、超级页面进行数据储存空间的管理,可加快数据储存装置的数据吞吐量。
数据储存装置将使用者数据的逻辑地址与物理地址的对应关系记录在逻辑-物理地址映射表(Logical-Physical Mapping Table,L2P Table)中。
快闪存储器102的储存空间需先抹除方能再次使用,抹除(Erase)的最小单位为区块。区块可区分成数据区块、主动区块以及闲置区块。闲置区块可作为主动区块以写入使用者数据。当主动区块写满使用者数据后,经过关闭处理(写入EOB(End of Block)资讯),主动区块变更为数据区块。随着使用者数据的更新,部份储存在数据区块的使用者数据会由有效数据变更为无效数据。当数据区块所储存的使用者数据皆为无效数据时,经抹除处理后则变更为闲置区块。在另一种实施例中,充满无效数据的数据区块会变更为闲置区块,而抹除处理乃等到闲置区块作为主动区块时再予以执行。
快闪存储器的使用涉及数据搬移程序,可分成垃圾回收程序以及非垃圾回收程序。当闲置区块数量不足时(例如,少于一临界数量TH1),可对储存空间进行垃圾回收(Garbage Collection)处理。例如,当多个数据区块(又称来源区块)仅储存零星有效数据时,可进行垃圾回收处理而将有效数据集中到一个主动区块(又称目的区块),以回收多个数据区块,增加闲置区块数量。
非垃圾回收程序的种类很多,是根据濒损条件判断。例如,产生错误更正失效(ECCfailed)的数据区块(来源区块)也需要进行数据搬移以及时抢救其中尚可读出的使用者数据。另外,过于频繁读取的数据区块(来源区块)也需要进行数据搬移,避免数据区块的数据保存能力降低所导致的使用者数据损坏,此操作又称预防性搬移(Early Move)。另外,数据搬移也可能响应区块间的损耗平均(Wear Leveling)考量而启动,例如,将读取次数低的数据区块(来源区块)的使用者数据(包括有效数据及无效数据)全部搬移到抹除计数较高的主动区块(目的区块),以回收该数据区块。另外,损耗平均程序亦可与垃圾回收程序予以结合,即损耗平均程序中搬移多个数据区块(来源区块)的有效数据至抹除计数较高的主动区块(目的区块)。
需注意的是,数据搬移较佳是以数据复制的方式来实现。
本发明对以上有效数据搬移提出一种高效能方案。一旦有数据搬移需求,例如,以上垃圾回收、错误更正失效搬移、预防性搬移、损耗平均搬移、或是其他,都可采用本发明搬移技巧。
图中将快闪存储器102的闲置区块归属至闲置区块池108,数据区块归属至数据区块池110。当有主机106提出写入命令、或控制器104启动数据搬移程序时,控制器104自闲置区块池108中选择一个闲置区块作为主动区块A0,此时闲置区块池108的闲置区块数量会减一。之后,将使用者数据写入至主动区块A0中。当主动区块A0关闭而成为数据区块后,数据区块数量会加一。
快闪存储器一般以主动区块A0接收主机的使用者数据,此使用者数据通常由写入命令所提供(参阅主机写入数据路径Host_Data)。特别是,相较于以另一个主动区块(称之A1以与A0区别)储存来自来源区块的使用者数据,本发明控制器104令主动区块A0也作为数据搬移程序的目的地,而不是使用主动区块A1。一旦有数据搬移需求,例如,垃圾回收、错误更正失效搬移、预防性搬移、损耗平均搬移、或是其他,本发明可将数据搬移程序中的来源区块的使用者数据收集至主动区块A0(参阅数据搬移路径Blk_Data)。特别是,本发明令同一区块的有效数据系分割成多个批次搬移到该主动区块A0。本发明为不同区块,适应性设定单批次搬移的有效数据量。越多数据区块产生有效数据搬移需求,单批次搬移的有效数据量越高。主机写入数据路径Host_Data以及数据搬移路径Blk_Data所提供给主动区块A0的数据量系动态调配。以下更详细讨论之。
相较于传统技术同时配置主动区块A0以及主动区块A1,如本发明善用主动区块A0有数种优点,并描述如下。
首先,本发明中主动区块A0不只可以储存来自主机以写入指令要求写入的使用者数据,还可以储存来自来源区块的使用者数据,因此,可降低闲置区块的使用量。
在传统有使用主动区块A1的例子中,响应突发断电事件,突发断电事件回复(Sudden Power Off Recovery,SPOR)程序须特别考量数据可靠度,会舍弃尚未关闭(Closed)的主动区块A1,仍以来源区块上的使用者数据为准。因此,只要主动区块A1尚未关闭,数据搬移程序中的所有来源区块都必须留存,不能释出。上述设计明显地拖累来源区块的回收,造成闲置区块数量无法及时地增加,甚至导致不同种类的数据搬移程序的启动。
相较传统技术,本发明是以主动区块A0作为数据搬移程序中的目的区块。突发断电事件回复(SPOR)程序不会全然丢弃该主动区块A0。在数据搬移完成后,数据搬移程序中的来源区块即可回收,无须为了SPOR程序而留存。因此,相较于传统特别再以主动区块A1作为目的区块的技术,本发明的闲置区块数量可有效地增加,克服上述问题。
此外,传统技术为了令作为目的区块的主动区块A1及早关闭,可能会填入部份虚假数据(dummy data),这将降低数据区块的数据储存量,也增加区块的抹写频率,缩短快闪存储器寿命。相较之,以主动区块A0作数据搬移程序的目的地,可以避免虚假数据的写入,克服上述问题。
一种实施方式中,控制器104令一来源区块(无论属垃圾回收或非垃圾回收)的有效数据完全搬移到该主动区块A0后,方允许另一来源区块(无论属垃圾回收或非垃圾回收)的有效数据搬移到该主动区块A0。
本发明特别令同一来源区块的有效数据系分批搬移至主动区块A0。各批次间,主机要求的写入数据可填入该主动区块A0。有效数据搬移以及来自主机的写入数据的填写之间可存在比例关系。本发明适应性设定该比例关系。若发生数据搬移需求的来源区块并不只单一个,本发明提高单批次所搬移的有效数据量,及早结束当前来源区块的有效数据搬移,以应付下一个来源区块。
图1中,主机106要求的写入数据经主机写入数据路径Host_Data)。垃圾回收、错误更正失效搬移、预防性搬移、损耗平均搬移等等,各种以主动区块A0为目的地的有效数据搬移,在图1是以数据搬移路径Blk_Data表示。凡是自数据区块池110选定数据区块作为来源区块,将其中有效数据搬移到主动区块A0者,都属于该数据搬移路径Blk_Data所涵盖技术。本发明是动态调配路径Host_Data以及路径Blk_Data的使用。
一种实施方式中,控制器104在前一个来源区块搬移完毕后,又允许其他来源区块同样以主动区块A0为有效数据搬移目的地。例如,一来源区块的垃圾回收完成后,控制器104允许另一个来源区块以同样的主动区块A0为目的地,进行非垃圾回收(错误更正失效搬移、预防性搬移、损耗平均搬移等等)的有效数据搬移。例如,对一来源区块进行非垃圾回收的有效数据搬移后,控制器104允许另一个来源区块以同样的主动区块A0为目的地,再次实施非垃圾回收的有效数据搬移。如此一来,主动区块A0关闭(例如,以是否完成EOB资讯为判断标准)前,闲置区块数量有机会被充分补充(可补充不只一个闲置区块)。
一种实施方式中,同一来源区块的有效数据系分批搬移至主动区块A0。各批次间,主机106要求的写入数据填入该主动区块A0。或者,各批次间,控制器104是令该快闪存储器102回复主机106的读取要求。不同批次的间距可以由写入该主动区块A0的主机106数据量决定、或是计时定义。批次间可能有新的有效数据搬移需求发生。控制器104是待当前来源区块的批次搬移结束后,才会处理另一个来源区块的批次搬移。
一种实施方式中,该控制器104根据一来源区块的有效数据量以及该主动区块A0的闲置空间估算一比例,并根据该比例设定各批次搬移的有效数据量。根据该比例,该控制器104还可设定两个批次之间允许该主机106填入该主动区块A0的写入数据量。
面临数据搬移需求的来源区块可能不只单一个。一种实施方式动态调配上述比例,对正要处理的该个来源区块作设定,决定各批次搬移的有效数据量。一种实施方式中,有数据搬移需求的来源区块有两个。第一来源区块的有效数据有x页。该主动区块A0有y页闲置空间。本发明可估算出一比例x:(y-x),等效为1:n。本发明可调整该比例为a:n,a为大于一常态值的数值。例如,常态值可为1,a可为2。考量快闪存储器102程式化(包括主机106写入以及来源区块搬移)的反应时间,本发明发展出的搬移策略为:每将a*M页有效数据自第一来源区块搬移到主动区块A0(对应路径Blk_Data),即穿插以主动区块A0储存主机106发下的n*M页写入数据(对应路径Host_Data)。倍数a使得第一来源区块的有效数据及早收集至主动区块A0。控制器104得以及时进行第二来源区块的有效数据搬移。控制器104将针对第二来源区块的有效数据量以及主动区块A0此时的闲置空间,估算出新的比例。控制器104也会确认是否又有其他来源区块待搬移,以调整该比例,产生适合该第二来源区块的搬移策略。
一种实施方式中,第一来源区块设定搬移策略时,不只有第二来源区块在等待,更有第三来源区块需要搬移。a值可设定成更大(相较于只有第一以及第二来源区块的例子)。
快闪存储器102程式化(包括主机106写入以及来源区块搬移)的反应时间受到多种因素影响。本发明特别考量该反应时间,设定前述M值。一种实施方式中,一次程式化M页可使快闪存储器102写入时序最佳化。例如,在等待第一笔M页程式化的确收回应时,第二笔M页即可快取至控制器104等待存入该快闪存储器102:操作效能远优于单页程式化。
一种实施方式中,控制器104是优先进行数据搬移,次而才考量主机106的写入要求。例如,一有需要数据搬移的来源区块,控制器104评估出搬移策略后,即进行第一批数据搬移。第一批数据搬移结束后,才允许再接收主机106要求的写入数据。此设计确保同一来源区块收集在同一主动区块A0上。
图2以流程图图解根据本发明一种实施方式对快闪存储器102所实施的数据搬移。
步骤S202:控制器104配置主动区块A0。控制器104自闲置区块池108配置其中之一闲置区块作为主动区块A0。
步骤S204:控制器104判断是否执行数据搬移程序?如果是则执行步骤S212,如果否则执行步骤S206。当预设条件满足时,例如,闲置区块数量少于临界数量TH1,或是产生错误更正失效搬移、预防性搬移、损耗平均搬移任一,则控制器104启动(执行)数据搬移程序。
步骤S206:控制器104判断是否关闭主动区块A0?如果是则执行步骤S210,如果否则执行步骤S208。假如主动区块A0仍有闲置空间以储存数据,则控制器104不关闭主动区块A0。
步骤S208:控制器104将来自主机106的使用者数据写入主动区块A0,之后,回到步骤S204。在上述中控制器104先执行步骤S204,之后,才会执行步骤S206以及步骤S208/S210,这表示控制器104会优先搬移数据搬移程序的使用者数据。在另一实施例中,控制器104可将步骤S204排在主机106使用者数据填写之后;在此设定下,控制器104会优先将主机106的使用者数据写入主动区块A0。
步骤S210:控制器104关闭主动区块A0。假如主动区块A0已无闲置空间以储存数据,则控制器104关闭主动区块A0,并将EOB资讯写入主动区块A0的最后一个页面中。
倘若步骤S204显示存在数据搬移需求,流程进入步骤S212,规划一来源区块的有效数据的搬移策略。控制器104除了考量来源区块的有效数据量、主动区块A0的闲置状况,还考量是否还有更多来源区块待搬移。控制器104因而评估得一搬移策略。例如,每搬移a*M页有效数据,即穿插n*M页的主机106写入数据。步骤S214以及步骤S216即反复执行以完成该搬移策略。
步骤S214以主动区块A0为目的地,搬移来源区块的a*M页有效数据。步骤S216,主动区块A0重启对主机106发来的写入数据的接收工作。控制器104允许主机106要求的n*M页写入数据填入该主动区块A0。步骤S218,控制器104判断是否完成该来源区块的有效数据搬移。若否,流程回到步骤S214,继续下一批次a*M页的有效数据搬移。若步骤S218判定该来源区块的有效数据搬移完成,流程进入步骤S204以及其后步骤,规划如何使用主动区块A0空间应付另一个数据搬移需求。
一种实施方式中,步骤S216可以包括一时限判断。超过该时限,流程即进行步骤S218。
图3还根据本发明一种实施方式详细说明步骤S212,其中决定步骤S214各批次所进行的数据搬移页数a*M、以及步骤S216所穿插的主机106写入页数n*M。
步骤S302,该控制器104根据来源区块的有效数据量以及该主动区块A0的闲置空间估算一比例1:n。例如,来源区块的有效数据有x页。主动区块A0有y页闲置空间。根据步骤S302,控制器104估算出一比例x:(y-x),等效为1:n。
步骤S304,控制器104判断是否有多个来源区块有数据搬移需求。若否,流程进入步骤S306。控制器104令数值a为一常态值(例如,1),表示无加速搬移的必要。反之,若有多个来源区块需要搬移,流程进入步骤S308。控制器104令数值a大于该常态值(例如,2),以加速搬移。越多来源区块等待数据搬移,数值a可设定越大。
图3程序所求出的n值以及所规划的a值,即套用于步骤S214以及S216,决定各批次进行的数据搬移页数a*M、以及各批次间允许穿插的主机106写入页数n*M。
使用者操作习惯可能导致装置反复断电、上电(称为power cycling)。例如,手机使用者开盖查看信息又盖上。闲置区块大量消耗,发生垃圾回收需求。特定区块也有可能过于频繁读取,导致错误更正失效(ECC failed)搬移、预防性搬移(early move)、损耗平均(wear leveling)搬移、或是其他有效数据搬移求发生。本发明使得过低的闲置区块数量得以及时补足。
以上控制器104对快闪存储器102的操作也可以由其他结构实现。凡是动态调配主动区块A0的使用方式(例如,动态调配路径Blk_Data以及路径Host_Data的使用比例),都属于本发明欲保护范围。本发明还可以前述概念实现非挥发式存储器的控制方法。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当以权利要求书界定为准。

Claims (16)

1.一种数据储存装置,包括:
一非挥发式存储器;以及
一控制器,根据一主机的要求操作该非挥发式存储器,
其中:
该控制器自该非挥发式存储器的多个闲置区块配置一主动区块填写该主机要求的写入数据;
该控制器还以该主动区块作为该非挥发式存储器中一第一来源区块的有效数据的搬移目的地;
该控制器以多批次搬移该第一来源区块的有效数据至该主动区块,并在不同批次间允许该主机要求的写入数据填入该主动区块;
该控制器在没有一第二来源区块存在时,令搬移该第一来源区块的上述批次各自搬移一第一数据量;
该控制器在存在该第二来源区块时,令搬移该第一来源区块的上述批次各自搬移一第二数据量;
该第二数据量高于该第一数据量;
该控制器根据该第一来源区块的有效页数x以及该主动区块的闲置页数y估算一比例x:(y-x),等效为1:n;
该控制器根据来源区块的总数设定一数值a;
该控制器在仅该第一来源区块存在时,设定该数值a为一常态值,并在不只该第一来源区块存在时,设定该数值a大于该常态值;并且
该控制器以一比例a:n实行该第一来源区块一批次的搬移以及该主机要求的写入数据的写入。
2.如权利要求1所述的数据储存装置,其特征在于:
该控制器在更存在一第三来源区块时,调升该第二数据量。
3.如权利要求1所述的数据储存装置,其特征在于:
该控制器令该第一来源区块的有效数据完全搬移到该主动区块后,方允许该第二来源区块的有效数据搬移到该主动区块。
4.如权利要求3所述的数据储存装置,其特征在于:
该控制器是在搬移该第一来源区块的有效数据之初,就设定搬移该第一来源区块的上述批次各自搬移的数据量。
5.如权利要求4所述的数据储存装置,其特征在于:
该控制器还根据该非挥发式存储器程式化的反应时间设定一数值M;且
该控制器自该第一来源区块搬移a*M页有效数据至该主动区块后,允许该主机要求的n*M页写入数据填入该主动区块。
6.如权利要求5所述的数据储存装置,其特征在于:
该控制器估算上述数值a*M以及n*M后,先搬移a*M页有效数据至该主动区块,方允许该主机要求的n*M页写入数据填入该主动区块。
7.如权利要求1所述的数据储存装置,其特征在于:
来源区块的选定,系响应这些闲置区块的数量小于一临界数量、或发现错误更正失效、或进行预防性搬移、或满足损耗平均。
8.如权利要求1所述的数据储存装置,其特征在于:
该控制器将该第一来源区块的有效数据全数搬移到该主动区块后,是在该主动区块完成结尾写入前释出该第一来源区块为闲置区块。
9.一种非挥发式存储器控制方法,包括:
根据一主机的要求操作一非挥发式存储器;
自该非挥发式存储器的多个闲置区块配置一主动区块填写该主机要求的写入数据;
还以该主动区块作为该非挥发式存储器中一第一来源区块的有效数据的搬移目的地;
以多批次搬移该第一来源区块的有效数据至该主动区块,并在不同批次间允许该主机要求的写入数据填入该主动区块;
在没有一第二来源区块存在时,令搬移该第一来源区块的上述批次各自搬移一第一数据量;
在存在该第二来源区块时,令搬移该第一来源区块的上述批次各自搬移一第二数据量,
其中,该第二数据量高于该第一数据量;
根据该第一来源区块的有效页数x以及该主动区块的闲置页数y估算一比例x:(y-x),等效为1:n;
根据来源区块的总数设定一数值a;
仅该第一来源区块存在时,设定该数值a为一常态值,并在不只该第一来源区块存在时,设定该数值a大于该常态值;并且
以一比例a:n实行该第一来源区块一批次的搬移以及该主机要求的写入数据的写入。
10.如权利要求9所述的非挥发式存储器控制方法,其特征在于,还包括:
在更存在一第三来源区块时,调升该第二数据量。
11.如权利要求9所述的非挥发式存储器控制方法,其特征在于,还包括:
令该第一来源区块的有效数据完全搬移到该主动区块后,方允许该第二来源区块的有效数据搬移到该主动区块。
12.如权利要求11所述的非挥发式存储器控制方法,其特征在于,还包括:
在搬移该第一来源区块的有效数据之初,就设定搬移该第一来源区块的上述批次各自搬移的数据量。
13.如权利要求12所述的非挥发式存储器控制方法,其特征在于,还包括:
根据该非挥发式存储器程式化的反应时间设定一数值M;且
自该第一来源区块搬移a*M页有效数据至该主动区块后,允许该主机要求的n*M页写入数据填入该主动区块。
14.如权利要求13所述的非挥发式存储器控制方法,其特征在于,还包括:
估算上述数值a*M以及n*M后,先搬移a*M页有效数据至该主动区块,方允许该主机要求的n*M页写入数据填入该主动区块。
15.如权利要求9所述的非挥发式存储器控制方法,其特征在于:
来源区块的选定,是响应这些闲置区块的数量小于一临界数量、或发现错误更正失效、或进行预防性搬移、或满足损耗平均。
16.如权利要求9所述的非挥发式存储器控制方法,其特征在于,还包括:
将该第一来源区块的有效数据全数搬移到该主动区块后,在该主动区块完成结尾写入前释出该第一来源区块为闲置区块。
CN201910445239.2A 2018-09-07 2019-05-27 数据储存装置以及非挥发式存储器控制方法 Active CN110888593B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862728134P 2018-09-07 2018-09-07
US62/728,134 2018-09-07
TW108107913A TWI712882B (zh) 2018-09-07 2019-03-08 資料儲存裝置以及非揮發式記憶體控制方法
TW108107913 2019-03-08

Publications (2)

Publication Number Publication Date
CN110888593A CN110888593A (zh) 2020-03-17
CN110888593B true CN110888593B (zh) 2024-01-26

Family

ID=69720037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910445239.2A Active CN110888593B (zh) 2018-09-07 2019-05-27 数据储存装置以及非挥发式存储器控制方法

Country Status (2)

Country Link
US (1) US11036414B2 (zh)
CN (1) CN110888593B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102653235B1 (ko) * 2019-10-16 2024-04-01 에스케이하이닉스 주식회사 메모리 블록을 효율적으로 관리할 수 있는 메모리 시스템 및 메모리 시스템의 동작방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033811A (zh) * 2009-09-24 2011-04-27 慧荣科技股份有限公司 用于管理闪存多个区块的方法和相关记忆装置及其控制器
US8225028B2 (en) * 2008-10-28 2012-07-17 Silicon Motion, Inc. Memory devices and methods for programming flash memory utilizing spare blocks
CN103425598A (zh) * 2012-05-18 2013-12-04 慧荣科技股份有限公司 数据储存装置和快闪存储器的区块管理方法
TWI526830B (zh) * 2013-11-14 2016-03-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI563507B (en) * 2015-07-01 2016-12-21 Phison Electronics Corp Memory management method, memory control circuit unit and memry storage apparatus

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100719380B1 (ko) 2006-03-31 2007-05-18 삼성전자주식회사 향상된 신뢰성 특성을 갖는 다치 플래시 메모리 장치 및그것을 포함한 메모리 시스템
US7412560B2 (en) 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7315916B2 (en) 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7609564B2 (en) 2005-12-31 2009-10-27 Intel Corporation Systems and techniques for non-volatile memory buffering
US7594087B2 (en) 2006-01-19 2009-09-22 Sigmatel, Inc. System and method for writing data to and erasing data from non-volatile memory
US7444461B2 (en) * 2006-08-04 2008-10-28 Sandisk Corporation Methods for phased garbage collection
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
US8463826B2 (en) * 2009-09-03 2013-06-11 Apple Inc. Incremental garbage collection for 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
KR101727704B1 (ko) 2010-10-04 2017-04-18 삼성전자주식회사 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들
KR101774496B1 (ko) * 2010-12-08 2017-09-05 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
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
TWI423022B (zh) 2011-02-15 2014-01-11 Phison Electronics Corp 記憶體管理方法、記憶體控制器與記憶體儲存裝置
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
KR102403253B1 (ko) * 2015-07-06 2022-05-30 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치
US20170123666A1 (en) * 2015-10-30 2017-05-04 Sandisk Technologies Inc. System and method for managing maintenance scheduling in a non-volatile memory
US9778855B2 (en) * 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
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 深圳大心电子科技有限公司 数据传输方法、存储器存储装置及存储器控制电路单元
CN108121664A (zh) 2016-11-28 2018-06-05 慧荣科技股份有限公司 数据储存装置以及其操作方法
TWI691839B (zh) 2016-11-28 2020-04-21 慧榮科技股份有限公司 資料管理方法
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225028B2 (en) * 2008-10-28 2012-07-17 Silicon Motion, Inc. Memory devices and methods for programming flash memory utilizing spare blocks
CN102033811A (zh) * 2009-09-24 2011-04-27 慧荣科技股份有限公司 用于管理闪存多个区块的方法和相关记忆装置及其控制器
CN103425598A (zh) * 2012-05-18 2013-12-04 慧荣科技股份有限公司 数据储存装置和快闪存储器的区块管理方法
TWI526830B (zh) * 2013-11-14 2016-03-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI563507B (en) * 2015-07-01 2016-12-21 Phison Electronics Corp Memory management method, memory control circuit unit and memry storage apparatus

Also Published As

Publication number Publication date
US11036414B2 (en) 2021-06-15
US20200081620A1 (en) 2020-03-12
CN110888593A (zh) 2020-03-17

Similar Documents

Publication Publication Date Title
US11416391B2 (en) Garbage collection
US20210073120A1 (en) Directed sanitization of memory
EP2291746B1 (en) Hybrid memory management
US10990325B2 (en) Write control method, associated data storage device and controller thereof
KR101718713B1 (ko) 비휘발성 메모리 시스템
CN112130749B (zh) 数据储存装置以及非挥发式存储器控制方法
CN114746834A (zh) 基于分区状态的分区附加命令调度
TWI712882B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
CN111610930A (zh) 数据储存装置以及非挥发式存储器控制方法
CN110888820B (zh) 数据储存装置以及非挥发式存储器控制方法
CN110888593B (zh) 数据储存装置以及非挥发式存储器控制方法
CN110888591B (zh) 数据储存装置以及非挥发式存储器控制方法
US20190258422A1 (en) Methods and apparatus for controlling flash translation layer recycle from host
US11269534B2 (en) Data storage device and non-volatile memory control method
US8423708B2 (en) Method of active flash management, and associated memory device and controller 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