CN110888591B - 数据储存装置以及非挥发式存储器控制方法 - Google Patents
数据储存装置以及非挥发式存储器控制方法 Download PDFInfo
- Publication number
- CN110888591B CN110888591B CN201910323781.0A CN201910323781A CN110888591B CN 110888591 B CN110888591 B CN 110888591B CN 201910323781 A CN201910323781 A CN 201910323781A CN 110888591 B CN110888591 B CN 110888591B
- Authority
- CN
- China
- Prior art keywords
- block
- data
- active block
- source block
- 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.)
- Active
Links
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/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/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/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/0626—Reducing size or complexity of 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/0647—Migration mechanisms
-
- 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/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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及非挥发式存储器的高效控制技术,尤其涉及数据储存装置以及非挥发式存储器控制方法。本发明的数据储存装置包括一非挥发式存储器以及一控制器。该控制器自该非挥发式存储器的多个闲置区块配置一主动区块填写一主机要求的写入数据。该控制器在这些闲置区块的数量小于一临界数量时,以该主动区块为该来源区块的有效数据的搬移目的地。该控制器在一第二来源区块符合一濒损条件时,以该主动区块为该第二来源区块的有效数据的搬移目的地。
Description
技术领域
本发明有关于非挥发式存储器的控制。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存,可做为储存媒体实现一数据储存装置。
非挥发式存储器通常有其特殊的储存特性。本技术领域需要相应非挥发式存储器的储存特性发展相应的控制技术。
发明内容
根据本案本发明一种实施方式所实现的一数据储存装置包括一非挥发式存储器以及一控制器。该控制器自该非挥发式存储器的多个闲置区块配置一主动区块填写一主机要求的写入数据。该控制器在这些闲置区块的数量小于一临界数量时,以该主动区块为该来源区块的有效数据的搬移目的地。该控制器在一第二来源区块符合一濒损条件时,以该主动区块为该第二来源区块的有效数据的搬移目的地。
一种实施方式中,该控制器令一来源区块的有效数据完全搬移到该主动区块后,方允许另一来源区块的有效数据搬移到该主动区块。
一种实施方式中,该控制器以多个批次将一来源区块的有效数据搬移到该主动区块,并于不同批次间允许该主机发出的写入数据填入该主动区块。
一种实施方式中,该控制器估算一来源区块的有效数据量以及该主动区块的闲置空间之间的一比例,并根据该比例设定各批次搬移的有效数据量。根据该比例,该控制器还可设定两个批次之间允许该主机填入该主动区块的写入数据量。
一种实施方式中,该控制器估算一来源区块的有效数据量以及该主机要求的写入数据量之间的一比例,并根据该比例设定各批次搬移的有效数据量。
一种实施方式中,满足该濒损条件的该第二来源区块为错误更正失效。
一种实施方式中,满足该濒损条件的该第二来源区块是做预防性搬移。
一种实施方式中,满足该濒损条件的该第二来源区块是做损耗平均搬移。
一种实施方式中,该控制器将一来源区块的有效数据全数搬移到该主动区块后,是在该主动区块完成结尾写入前释出该来源区块为闲置区块。
一种实施方式中,该控制器操作一旗标。该控制器在一来源区块的有效数据全数搬移到该主动区块后,方以该旗标标示该主动区块允许保存其他来源区块的有效数据。
以上控制器对非挥发式存储器的操作也可以由其他结构实现。本发明还可以前述概念实现非挥发式存储器的控制方法,包括:根据一主机的要求操作一非挥发式存储器;自该非挥发式存储器的多个闲置区块配置一主动区块填写该主机要求的写入数据;在这些闲置区块的数量小于一临界数量时,以该主动区块为一第一来源区块的有效数据的搬移目的地;且在一第二来源区块符合一濒损条件时,以该主动区块为该第二来源区块的有效数据的搬移目的地。
下文特举实施例,并配合所附图示,详细说明本发明内容。
附图说明
图1根据本发明一种实施方式图解数据储存装置100;以及
图2A-2B以流程图图解根据本发明一种实施方式实现的高效能数据储存方法,并使用旗标cleanflag来控制数据的搬移;且
图3图解一种分段搬移的例子。
符号说明
100~数据储存装置;
102~快闪存储器;
104~控制器;
106~主机;
108~闲置区块池;
110~数据区块池;
A0~主动区块;
Data#0…Data#7~使用者数据;
GC~垃圾回收路径;
Non_GC~非垃圾回收的其他有效数据搬移路径;
S202…S228~步骤。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求的界定。
非挥发式存储器可以是快闪存储器(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为大于1的整数,如:4。16KB空间的页面可分为四个区段,各区段为4KB。一种实施方式中,一区块系根据页面编号,由低至高编号配置来储存使用者数据。
一种实施方式中,数据储存装置采用多通道技术,可将不同通道的多个区块可以虚拟成一个超级区块,多个页面可以虚拟成一个超级页面,并以超级区块、超级页面进行数据储存空间的管理,可加快数据储存装置的数据吞吐量。
数据储存装置将使用者数据的逻辑地址与物理地址的对应关系记录在逻辑-物理地址映射表(Logical-Physical Mapping Table,L2P Table)中。
快闪存储器的储存空间需先抹除方能再次使用,抹除(Erase)的最小单位为区块。区块可区分成数据区块、主动区块以及闲置区块。闲置区块可作为主动区块以写入使用者数据。当主动区块写满使用者数据后,经过关闭处理(写入EOB(End of Block)资讯),主动区块变更为数据区块。随着使用者数据的更新,部份储存在数据区块的使用者数据会由有效数据变更为无效数据。当数据区块所储存的使用者数据皆为无效数据时,经抹除处理后则变更为闲置区块。在另一种实施例中,充满无效数据的数据区块会变更为闲置区块,而抹除处理乃等到闲置区块作为主动区块时再予以执行。
快闪存储器的使用涉及数据搬移程序,可分成垃圾回收程序以及非垃圾回收程序。当闲置区块数量不足时,可对储存空间进行垃圾回收(Garbage Collection)处理。例如,当多个数据区块(又称来源区块)仅储存零星有效数据时,可进行垃圾回收处理而将有效数据集中到一个主动区块(又称目的区块),以回收多个数据区块,增加闲置区块数量。
非垃圾回收程序的种类很多,是根据濒损条件判断。例如,产生错误更正失效(ECCfailed)的数据区块(来源区块)也需要进行数据搬移以及时抢救其中尚可读出的使用者数据。另外,过于频繁读取的数据区块(来源区块)也需要进行数据搬移,避免数据区块的数据保存能力降低所导致的使用者数据损坏,此操作又称预防性搬移(Early Move)。另外,数据搬移也可能因应区块间的损耗平均(Wear Leveling)考量而启动,例如,将读取次数低的数据区块(来源区块)的使用者数据(包括有效数据及无效数据)全部搬移到抹除计数较高的主动区块(目的区块),以回收该数据区块。另外,损耗平均程序亦可与垃圾回收程序予以结合,即损耗平均程序中搬移多个数据区块(来源区块)的有效数据至抹除计数较高的主动区块(目的区块)。
需注意的是,数据搬移较佳是以数据复制的方式来实现。
图中将快闪存储器102的闲置区块归属至闲置区块池108,数据区块归属至数据区块池110。当有主机106提出写入命令、或控制器104启动数据搬移程序时,控制器104自闲置区块池108中选择一个闲置区块作为主动区块A0,此时闲置区块池108的闲置区块数量会减一。之后,将使用者数据写入至主动区块A0中。当主动区块A0关闭而成为数据区块后,数据区块数量会加一。
本发明提出一种高效能数据储存的方法,可满足各种数据储存的需求。除了储存来自于主机的使用者数据(主机106以写入指令要求写入快闪存储器102)之外,启动数据搬移程序,例如,垃圾回收、错误更正失效搬移、预防性搬移、损耗平均搬移、或是其他,都可以利用本发明高效能数据储存方法来储存来源方块(数据区块)的使用者数据。
控制器104一般以一个主动区块(标示为A0)接收来自主机的使用者数据,此使用者数据通常由写入命令所提供。特别是,相较于以另一个主动区块(称之A1以与A0区别)储存来自来源区块的使用者数据,本发明控制器104令主动区块A0也作为数据搬移程序的目的地,而不是使用主动区块A1。一旦有数据搬移需求,例如,垃圾回收、错误更正失效搬移、预防性搬移、损耗平均搬移、或是其他,本发明可将数据搬移程序中的来源区块的使用者数据收集至主动区块A0。相较于传统技术同时配置主动区块A0以及主动区块A1,本发明设计有数种优点,并描述如下。
首先,本发明中主动区块A0不只可以储存来自主机以写入指令要求写入的使用者数据,更可以储存来自来源区块的使用者数据,因此,可降低闲置区块的使用量。
在传统有使用主动区块A1的例子中,因应突发断电事件,突发断电事件回复(Sudden Power Off Recovery,SPOR)程序须特别考量数据可靠度,会舍弃尚未关闭(Closed)的主动区块A1,仍以来源区块上的使用者数据为准。因此,只要主动区块A1尚未关闭,数据搬移程序中的所有来源区块都必须留存,不能释出。上述设计明显地拖累来源区块的回收,造成闲置区块数量无法及时地增加,甚至导致不同种类的数据搬移程序的启动。
相较传统技术,本发明是以主动区块A0作为数据搬移程序中的目的区块。突发断电事件回复(SPOR)程序不会全然丢弃该主动区块A0。在数据搬移完成后,数据搬移程序中的来源区块即可回收,无须为了SPOR程序而留存。因此,相较于传统特别再以主动区块A1作为目的区块的技术,本发明的闲置区块数量可有效地增加,克服上述问题。
此外,传统技术为了令作为目的区块的主动区块A1及早关闭,可能会填入部份虚假数据(dummy data),这将降低数据区块的数据储存量,也增加区块的抹写频率,缩短快闪存储器寿命。相较之,以主动区块A0作数据搬移程序的目的地,可以避免虚假数据的写入,克服上述问题。
一种实施方式中,控制器104令一来源区块(无论属垃圾回收或非垃圾回收)的有效数据完全搬移到该主动区块A0后,方允许另一来源区块(无论属垃圾回收或非垃圾回收)的有效数据搬移到该主动区块A0。
如前述,数据搬移程序可区分成垃圾回收程序以及非垃圾回收程序。当闲置区块数量少于临界数量TH1,控制器104启动垃圾回收程序,并以主动区块A0作为垃圾回收程序中的目的区块,如垃圾回收路径GC所示。
非垃圾回收程序,例如错误更正失效搬移、预防性搬移、损耗平均搬移等等,控制器104也以主动区块A0作为非垃圾回收程序中的目的区块,如非垃圾回收路径Non_GC标示。
一种实施方式中,除了储存来自主机106的使用者数据之外,主动区块A0也作为垃圾回收程序的目的区块。主动区块A0储存来自主机106的使用者数据后,如果主动区块A0未被关闭,则主动区块A0可作为垃圾回收程序中的目的区块以储存来自来源区块BLK#0的使用者数据。在此设定下,如果来源区块(以BLK#0为例)的所有有效数据已完成搬移,则来源区块BLK#0可被回收而成为闲置区块,无须等待主动区块A0关闭。
一种实施方式中,除了储存来自主机106的使用者数据之外,主动区块A0可作为非垃圾回收程序的目的区块。主动区块A0储存来自主机106的使用者数据后,如果主动区块A0未被关闭,则主动区块A0可作为非垃圾回收程序的目的区块以储存来自来源区块(以BLK#1为例)位址使用者数据。在此设定下,如果来源区块BLK#1的所有有效数据已完成搬移,则来源区块BLK#1可被回收而成为闲置区块,无须等待主动区块A0关闭。
一种实施方式中,除了储存来自主机106的使用者数据之外,主动区块A0可作为垃圾回收程序以及非垃圾回收程序的目的区块。主动区块A0储存来自主机的使用者数据后,如果主动区块A0未被关闭,控制器104可启动垃圾回收程序而将来源区块(以BLK#0为例)位址使用者数据搬移至主动区块A0。如果主动区块A0仍未关闭,控制器104可启动非垃圾回收程序而将来源区块BLK#0位址使用者数据搬移至主动区块A0。更甚者,主动区块A0可作为非垃圾回收程序的目的区块以储存来自来源区块(以BLK#1为例)位址使用者数据。在此设定下,如果来源区块BLK#0或来源区块BLK#1的所有有效数据已完成搬移,则来源区块BLK#0或来源区块BLK#1可被回收而成为闲置区块,无须等待主动区块A0关闭。
另外,来自主机、垃圾回收程序或非垃圾回收程序的使用者数据较佳为分段(分批次)地且交错地储存或搬移至主动区块A0,其中,分段表示储存或搬移一定数量的使用者数据至主动区块A0,或在预设时间储存或搬移一定数量的使用者数据至主动区块A0;交错表示数据由多个数据来源轮流提供,其中,数据来源可为主机、垃圾回收程序或非垃圾回收程序的来源区块。
一种实施方式中,控制器104估算来源区块的有效数据量以及来自于主机106的使用者数据量的比例,并根据该比例设定分段搬移以及分段写入的数据量。在另一种实施方式中,控制器104估算来源区块的有效数据量以及主动区块A0的闲置空间的比例,并根据该比例设定分段搬移以及分段写入的数据量。
图2A-2B以流程图图解根据本发明一种实施方式实现的高效能数据储存方法,并使用旗标cleanflag来控制数据的搬移。
步骤S202:控制器104配置主动区块A0。控制器104自闲置区块池108配置其中的一闲置区块作为主动区块A0。
步骤S204:控制器104初始化旗标cleanflag为"DISABLE"。旗标cleanflag状态"DISABLE"代表主动区块A0也可配置为数据搬移程序的目的区块。
步骤S206:控制器104判断是否执行数据搬移程序?如果是则执行步骤S210,如果否则执行步骤S208。当预设条件满足时,例如,闲置区块数量少于临界数量TH1,或是产生错误更正失效,则控制器104启动(执行)数据搬移程序。
步骤S208:控制器104判断是否关闭主动区块A0?如果是则执行步骤S214,如果否则执行步骤S212。假如主动区块A0仍有闲置空间以储存数据,则控制器104不关闭主动区块A0。
步骤S212:控制器104将来自主机106的使用者数据写入主动区块A0,之后,回到步骤S206。在上述中控制器104先执行步骤S206,之后,才会执行步骤S208以及步骤S212,这表示控制器104会优先搬移数据搬移程序的使用者数据。在另一实施例中,控制器104可先执行步骤S208以及步骤S212,之后,再执行步骤S206,在此设定下,控制器104会优先将主机106的使用者数据写入主动区块A0。
步骤S214:控制器104关闭主动区块A0。假如主动区块A0已无闲置空间以储存数据,则控制器104关闭主动区块A0,并将EOB资讯写入主动区块A0的最后一个页面中。
步骤S210:控制器104决定数据搬移程序的数据搬移量,其中,数据搬移量可为固定值、由来源区块的数据量与来自主机106的使用者数据量的比例所决定、或由来源区块的数据量以及主动区块A0的闲置空间的比例所决定。来源区块可为垃圾回收程序或非垃圾回收程序的来源区块。数据搬移量较佳为有效数据的数量。
步骤S216:控制器104将旗标cleanflag设为"START",其中,"START"代表主动区块A0作为数据搬移的目的区块,并准备执行数据的搬移。
步骤S218:控制器104从来源区块搬移数据搬移量的使用者数据至主动区块A0。控制器104可一次性或分段地将来源区块的使用者数据搬移至主动区块A0。假设来源区块有x使用者数据,而来自主机106的使用者数据量为n*x,两者的比例为1:n,x例如=16,n例如=10。如果为分段进行数据搬移,则每一次分段中控制器104可搬移M笔使用者数据至主动区块A0,M例如=4,各段搬移的数量=4。第3图图解一种分段搬移的例子。使用者数据Data#0…Data#3搬移到主动区块A0后,可穿插主机106写入使用者数据至主动区块A0,再将使用者数据Data#4…Data#7搬移到主动区块A0;剩余八笔使用者数据也是如是方式自来源区块搬移到主动区块A0。如果为一次性进行数据搬移,则不穿插主机106写入使用者数据,控制器104将16笔使用者数据全部搬移到主动区块A0。另外,在进行数据搬移时,M较佳为区段的倍数,且可涵盖整数倍页面。例如,控制器104一次只写入一个页面的数据,则M=4,表示一页的四个区段一起搬移。一种实施方式中,控制器104一次写入一个超级页面的数据,M=16。
步骤S220:控制器104将旗标cleanflag设为"FINISH",其中,"FINISH"表示一次性或分段地数据搬移已完成。
步骤S222:控制器104将来自主机106的使用者数据写入至主动区块A0。在数据搬移量的使用者数据该阶段已搬移完成之后,控制器104将数据的来源改为主机106,即将来自主机106的使用者数据写入至主动区块A0。其中,控制器104可写入固定笔数的使用者数据,或由上述比例计算出的40(n*M,n=10且M=4)笔使用者数据写入至主动区块A0。
步骤S224:控制器104判断数据搬移程序是否执行完毕?如果是则执行步骤S226,如果否则执行步骤S216。假如控制器104是分段地将来源区块的使用者数据搬移至主动区块A0,控制器104会重复执行步骤S216~S224,例如重复次数=4(共16笔且每段4笔,则重复4次,分四段搬移)。
步骤S226:控制器104将旗标cleanflag设为"DISABLE"。
步骤S228:控制器104将来源区块变更为闲置区块,此时,闲置区块池的数量加1。步骤S228可无关主动区块A0关闭与否。闲置区块数量可及时被补上。
在步骤S212、步骤S214、步骤S218以及步骤S222的其中之一,控制器104还包括依据主动区块A0所储存的使用者数据更新逻辑-物理地址映射表,其中,控制器104较佳先产生主动区块A0的使用者数据的物理-逻辑地址映射表后,再以物理-逻辑地址映射表来更新逻辑-物理地址映射表。
一种实施方式中,步骤S222可以包括时限判断。超过该时限,流程即进行步骤S224。
一种实施方式中,分段搬移(S218)以及分段写入(S222)的数据量取决于来源区块的有效数据量以及主动区块A0的闲置空间的比例。若主动区块A0仅余少量闲置空间,但来源区块的有效数据量很多,则控制器104调高各段搬移的有效数据(S218)、或/以及限制各段写入的主机106使用者数据(S222)。如此一来,主机区块A0关闭前,来源区块可完全搬移。
使用者操作习惯可能导致装置反复断电、上电(称为power cycling)。例如,手机使用者开盖查看信息又盖上。闲置区块大量消耗,发生垃圾回收需求。特定区块也有可能过于频繁读取,导致错误更正失效(ECC failed)搬移、预防性搬移(early move)、损耗平均(wear leveling)搬移、或是其他有效数据搬移求发生。本发明使得过低的闲置区块数量得以及时补足。
以上控制器104对快闪存储器102位址操作也可以由其他结构实现。凡是不为了数据于区块间的搬移更配置主动区块A1者,都属于本发明欲保护范围。本发明还可以前述概念实现非挥发式存储器的控制方法。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围由权利要求书界定为准。
Claims (18)
1.一种数据储存装置,包括:
一非挥发式存储器;以及
一控制器,根据一主机的要求操作该非挥发式存储器,
其中:
该控制器自该非挥发式存储器的多个闲置区块配置一主动区块填写该主机要求的写入数据;
该控制器在这些闲置区块的数量小于一临界数量时,以该主动区块为一第一来源区块的有效数据的搬移目的地;
该控制器在一第二来源区块符合一濒损条件时,以该主动区块为该第二来源区块的有效数据的搬移目的地;
该控制器以多个批次将一来源区块的有效数据搬移到该主动区块,并于不同批次间允许该主机发出的写入数据填入该主动区块;且
该控制器估算一来源区块的有效数据量以及该主机要求的写入数据量之间的一第一比例,并根据该第一比例设定各批次搬移的有效数据量。
2.如权利要求1所述的数据储存装置,其特征在于:
该控制器令一来源区块的有效数据完全搬移到该主动区块后,方允许另一来源区块的有效数据搬移到该主动区块。
3.如权利要求1所述的数据储存装置,其特征在于:
该控制器还估算一来源区块的有效数据量以及该主动区块的闲置空间之间的一第二比例,并根据该第二比例设定各批次搬移的有效数据量。
4.如权利要求3所述的数据储存装置,其特征在于:
根据该第二比例,该控制器设定两个批次之间允许该主机填入该主动区块的写入数据量。
5.如权利要求1所述的数据储存装置,其特征在于:
满足该濒损条件的该第二来源区块为错误更正失效。
6.如权利要求1所述的数据储存装置,其特征在于:
满足该濒损条件的该第二来源区块是做预防性搬移。
7.如权利要求1所述的数据储存装置,其特征在于:
满足该濒损条件的该第二来源区块是做损耗平均搬移。
8.如权利要求1所述的数据储存装置,其特征在于:
该控制器将一来源区块的有效数据全数搬移到该主动区块后,是在该主动区块完成结尾写入前释出该来源区块为闲置区块。
9.如权利要求2所述的数据储存装置,其特征在于:
该控制器操作一旗标;且
该控制器在一来源区块的有效数据全数搬移到该主动区块后,方以该旗标标示该主动区块允许保存其他来源区块的有效数据。
10.一种非挥发式存储器控制方法,包括:
根据一主机的要求操作一非挥发式存储器;
自该非挥发式存储器的多个闲置区块配置一主动区块填写该主机要求的写入数据;
在这些闲置区块的数量小于一临界数量时,以该主动区块为一第一来源区块的有效数据的搬移目的地;
在一第二来源区块符合一濒损条件时,以该主动区块为该第二来源区块的有效数据的搬移目的地;
以多个批次将一来源区块的有效数据搬移到该主动区块,并于不同批次间允许该主机发出的写入数据填入该主动区块;且
估算一来源区块的有效数据量以及该主机要求的写入数据量之间的一第一比例,并根据该第一比例设定各批次搬移的有效数据量。
11.如权利要求10所述的非挥发式存储器控制方法,其特征在于,还包括:
令一来源区块的有效数据完全搬移到该主动区块后,方允许另一来源区块的有效数据搬移到该主动区块。
12.如权利要求10所述的非挥发式存储器控制方法,其特征在于,还包括:
估算一来源区块的有效数据量以及该主动区块的闲置空间之间的一第二比例,并根据该第二比例设定各批次搬移的有效数据量。
13.如权利要求12所述的非挥发式存储器控制方法,其特征在于,还包括:
根据该第二比例,设定两个批次之间允许该主机填入该主动区块的写入数据量。
14.如权利要求10所述的非挥发式存储器控制方法,其特征在于:
满足该濒损条件的该第二来源区块为错误更正失效。
15.如权利要求10所述的非挥发式存储器控制方法,其特征在于:
满足该濒损条件的该第二来源区块是做预防性搬移。
16.如权利要求10所述的非挥发式存储器控制方法,其特征在于:
满足该濒损条件的该第二来源区块是做损耗平均搬移。
17.如权利要求10所述的非挥发式存储器控制方法,其特征在于,还包括:
将一来源区块的有效数据全数搬移到该主动区块后,是在该主动区块完成结尾写入前释出该来源区块为闲置区块。
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 | ||
TW108106466A TWI696916B (zh) | 2018-09-07 | 2019-02-26 | 資料儲存裝置以及非揮發式記憶體控制方法 |
TW108106466 | 2019-02-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888591A CN110888591A (zh) | 2020-03-17 |
CN110888591B true CN110888591B (zh) | 2023-05-30 |
Family
ID=69719528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910323781.0A Active CN110888591B (zh) | 2018-09-07 | 2019-04-22 | 数据储存装置以及非挥发式存储器控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10896004B2 (zh) |
CN (1) | CN110888591B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102653235B1 (ko) * | 2019-10-16 | 2024-04-01 | 에스케이하이닉스 주식회사 | 메모리 블록을 효율적으로 관리할 수 있는 메모리 시스템 및 메모리 시스템의 동작방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033811A (zh) * | 2009-09-24 | 2011-04-27 | 慧荣科技股份有限公司 | 用于管理闪存多个区块的方法和相关记忆装置及其控制器 |
CN103218306A (zh) * | 2013-03-29 | 2013-07-24 | 四川长虹电器股份有限公司 | 一种实现基于ubi的动态磨损均衡的方法 |
CN105740161A (zh) * | 2014-11-03 | 2016-07-06 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN107708108A (zh) * | 2017-09-30 | 2018-02-16 | 广东欧珀移动通信有限公司 | 信息处理方法、装置、计算机可读存储介质和计算机设备 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100719380B1 (ko) * | 2006-03-31 | 2007-05-18 | 삼성전자주식회사 | 향상된 신뢰성 특성을 갖는 다치 플래시 메모리 장치 및그것을 포함한 메모리 시스템 |
US7315916B2 (en) * | 2004-12-16 | 2008-01-01 | Sandisk Corporation | Scratch pad block |
US7412560B2 (en) | 2004-12-16 | 2008-08-12 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
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 |
CN101645309B (zh) | 2008-08-05 | 2013-05-22 | 威刚科技(苏州)有限公司 | 非挥发性存储装置及其控制方法 |
TW201017403A (en) * | 2008-10-28 | 2010-05-01 | Silicon Motion Inc | Access methods for memory devices and memory devices and machine readable medium thereof |
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 |
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 |
TWI423022B (zh) * | 2011-02-15 | 2014-01-11 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
KR20130076429A (ko) | 2011-12-28 | 2013-07-08 | 삼성전자주식회사 | 메모리 장치의 저장 영역 관리 방법 및 이를 이용한 저장 장치 |
CN102609378B (zh) * | 2012-01-18 | 2016-03-30 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
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 | 深圳大心电子科技有限公司 | 数据传输方法、存储器存储装置及存储器控制电路单元 |
CN108121664A (zh) | 2016-11-28 | 2018-06-05 | 慧荣科技股份有限公司 | 数据储存装置以及其操作方法 |
TWI627531B (zh) | 2016-11-28 | 2018-06-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 |
-
2019
- 2019-04-22 CN CN201910323781.0A patent/CN110888591B/zh active Active
- 2019-07-08 US US16/505,264 patent/US10896004B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033811A (zh) * | 2009-09-24 | 2011-04-27 | 慧荣科技股份有限公司 | 用于管理闪存多个区块的方法和相关记忆装置及其控制器 |
CN103218306A (zh) * | 2013-03-29 | 2013-07-24 | 四川长虹电器股份有限公司 | 一种实现基于ubi的动态磨损均衡的方法 |
CN105740161A (zh) * | 2014-11-03 | 2016-07-06 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN107708108A (zh) * | 2017-09-30 | 2018-02-16 | 广东欧珀移动通信有限公司 | 信息处理方法、装置、计算机可读存储介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
US20200081657A1 (en) | 2020-03-12 |
CN110888591A (zh) | 2020-03-17 |
US10896004B2 (en) | 2021-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9507711B1 (en) | Hierarchical FTL mapping optimized for workload | |
EP2389631B1 (en) | Solid state memory formatting | |
US20180196743A1 (en) | Directed sanitization of memory | |
CN110908925B (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
CN110806984B (zh) | 在存储器系统中搜索有效数据的设备和方法 | |
KR102002921B1 (ko) | 버퍼 운영 방법 및 그에 따른 반도체 저장 장치 | |
KR20180121794A (ko) | 동적 슈퍼 블록을 포함하는 메모리 장치 및 관련 방법 및 전자 시스템 | |
CN110928807B (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
CN110825659B (zh) | 用于检查存储器系统中的块中的有效数据的设备和方法 | |
CN111435289B (zh) | 映射数据访问性能提高的存储器控制器及其操作方法 | |
KR101718713B1 (ko) | 비휘발성 메모리 시스템 | |
CN112130749B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN112015329A (zh) | 存储系统及其操作方法 | |
TWI696916B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN114077389A (zh) | 控制器、存储器系统以及数据处理系统 | |
CN111610930A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
KR102578191B1 (ko) | 리커버리 성능이 최적화된 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
CN110888820B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN110888591B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN111610931B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN110888593B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US20160300617A1 (en) | Memory device and associated erase method | |
TW202013183A (zh) | 高效能垃圾收集方法以及資料儲存裝置及其控制器 | |
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 |