CN109783004A - 数据储存装置与存储器装置的数据处理方法 - Google Patents
数据储存装置与存储器装置的数据处理方法 Download PDFInfo
- Publication number
- CN109783004A CN109783004A CN201810531214.XA CN201810531214A CN109783004A CN 109783004 A CN109783004 A CN 109783004A CN 201810531214 A CN201810531214 A CN 201810531214A CN 109783004 A CN109783004 A CN 109783004A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- single layer
- controller
- layer cell
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 66
- 239000002356 single layer Substances 0.000 claims abstract description 63
- 238000007596 consolidation process Methods 0.000 claims abstract description 57
- 230000015654 memory Effects 0.000 claims abstract description 51
- 239000010410 layer Substances 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000005138 cryopreservation Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 206010038743 Restlessness Diseases 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及一种数据储存装置与存储器装置的数据处理方法。数据储存装置,包括一存储器装置以及一控制器。存储器装置包括多个存储器区块。存储器区块包括多个单层单元区块与多个多层单元区块。控制器耦接存储器装置。当控制器执行用以将单层单元区块所储存的数据写入多层单元区块的一既定程序时,控制器判断各单层单元区块所对应的一有效页面计数值是否大于一临界值,并且当多个单层单元区块所对应的有效页面计数值大于临界值时,控制器执行一第一合并程序,用以直接将具有有效页面计数值大于临界值的多个单层单元区块所储存的数据写入多层单元区块之一或多者。
Description
技术领域
本发明有关于一种是用于快闪存储器装置的数据处理方法,可有效率地处理存储器装置所储存的数据,以提升存储器装置的效能。
背景技术
随着数据储存装置的科技在近几年快速地成长,许多数据储存装置,如符合SD/MMC规格、CF规格、MS规格与XD规格的记忆卡、固态硬碟、内嵌式存储器(embedded MultiMedia Card,缩写为eMMC)以及通用快闪存储器(Universal Flash Storage,缩写为UFS)已经广泛地被应用在多种用途上。因此,在这些数据储存装置上,有效的存取控制也变成一个重要的议题。
为了提高数据储存装置的存取效能,本发明提出一种新的数据处理方法,可有效率地处理存储器装置所储存的数据,以提升存储器装置的效能。
发明内容
本发明提出一种数据储存装置,包括一存储器装置以及一控制器。存储器装置包括多个存储器区块。存储器区块包括多个单层单元区块与多个多层单元区块。控制器耦接存储器装置。当控制器执行用以将单层单元区块所储存的数据写入多层单元区块的一既定程序时,控制器判断各单层单元区块所对应的一有效页面计数值是否大于一临界值,并且当多个单层单元区块所对应的有效页面计数值大于临界值时,控制器执行一第一合并程序,用以直接将具有有效页面计数值大于临界值的多个单层单元区块所储存的数据写入多层单元区块之一或多者。
本发明另提出一种存储器装置的数据处理方法,适用于一数据储存装置,数据储存装置包括一存储器装置与一控制器,存储器装置包括多个存储器区块,并且等存储器区块包括多个单层单元区块与多个多层单元区块,该方法包括:判断各单层单元区块所对应的一有效页面计数值是否大于一临界值;以及当多个单层单元区块所对应的有效页面计数值大于临界值时,执行一第一合并程序,用以直接将具有有效页面计数值大于临界值的多个单层单元区块所储存的数据写入多层单元区块之一或多者。
附图说明
图1A是显示根据本发明的一实施例所述的电子装置范例方块图。
图1B是显示根据本发明的另一实施例所述的电子装置范例方块图。
图2是显示根据本发明的一实施例所述的处理伫列示意图。
图3是显示根据本发明的一实施例所述的存储器装置的数据处理方法流程图。
图4是显示根据本发明的另一实施例所述的存储器装置的数据处理方法流程图。
符号说明
100-数据储存装置;
110A、110B-控制器;
111-微处理器;
112、SRAM-静态随机存取存储器;
113、ROM-只读存储器;
114-编码器;
115-扰乱器;
120-存储器装置;
200-主机装置;
210-接口;
300A、300B-电子装置。
具体实施方式
为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
图1A是显示根据本发明的一实施例所述的电子装置方块图。电子装置300A可包括主机装置200与数据储存装置100。电子装置300A可为移动装置,例如智慧型手机、智慧型手表或平板电脑,但不以此为限。
根据本发明的一实施例,数据储存装置100可包括控制器110A与存储器装置120。控制器110A可至少包括一微处理器111、静态随机存取存储器(Static Random AccessMemory,缩写为SRAM)112、只读存储器(ROM)113、一编码器114与一扰乱器115。存储器装置120可包括一或多个非挥发性存储器,例如,快闪存储器。
主机装置200与数据储存装置100可透过一既定接口210相互连接。例如,当数据储存装置100符合通用快闪存储器(Universal Flash Storage,缩写为UFS)的规范时,主机装置200与数据储存装置100可透过UFS接口相互连接。又例如,当数据储存装置100符合内嵌式存储器(embedded Multi Media Card,缩写为eMMC)的规范时,主机装置200与数据储存装置100可透过MMC接口相互连接。
图1B是显示根据本发明的另一实施例所述的电子装置300B范例方块图。于此实施例中,SRAM 112被配置于控制器110B外部,并且耦接至控制器110B。
值得注意的是,为简化说明,图1A与图1B仅显示与本发明相关的元件,并且图1A与图1B仅显示多种可应用本发明的架构的其中两种。然而,本发明的实施并不仅限于图1A与图1B所示的元件与架构。
根据本发明的一实施例,存储器装置120包括多个存储器区块。存储器区块可进一步被区分为多个单层单元(Single Level Cell,缩写为SLC)区块与多个多层单元区块(Multiple Level Cell,缩写为MLC)区块。SLC区块的每个存储器单元中储存一个位元数据,MLC区块的每个存储器单元中储存多个位元数据。例如,根据本发明的一实施例,MLC区块的每个存储器单元中储存两个位元数据。例如,根据本发明的另一实施例,多层单元区块可为三层单元(Triple Level Cell,缩写为TLC)区块,TLC区块的每个存储器单元中储存三个位元数据。
各存储器区块可包括多个页面,通常在快闪存储器中,一个页面为一个写入作业的最小数据块单位,而一个区块为一个抹除作业的最小数据块单位。一个物理页面的大小为固定的,而一个逻辑页面的大小则可根据固件编程需求弹性地被设计。
一般而言,为了使MLC/TLC区块的编程能维持稳定状态,每次编程需写入多个页面的数据(诸如二个或三个物理页面的数据)至MLC/TLC区块,因此存储器装置120的SLC区块可作用为快取存储器,或缓存器(buffer),用以暂存数据。待SLC区块的使用率达到一定程度时,控制器110A/110B可决定执行一既定程序,将SLC区块储存的数据写入MLC/TLC区块,如此一来,SLC区块的存储器空间可被释放并可再度被使用。
于上述既定程序中,多个SLC区块的所储存的数据会被写入一或多个MLC/TLC区块。以TLC区块为例,控制器将收集或合并数量相当于三个SLC区块的所能储存的数据量的数据,并且将其收集或合并的数据写入TLC区块。
然而,有时SLC区块所储存的数据可能已经无效。举例而言,当SLC区块中的部分页面所储存的数据与其他区块中所储存的数据重复,且该页面的数据并非最新被储存的数据,则该页面的数据会被判断为已经无效,该页面会被视为无效页面(又称为过期页面)。因此,于本发明所提出的数据处理方法中,在将SLC区块储存的数据写入MLC/TLC区块的既定程序中进一步考虑无效页面的数量,用以更效率地处理存储器装置所储存的数据。
根据本发明的一实施例,当控制器110A/110B决定执行既定程序时,判断各单层单元区块所对应的一有效页面计数值VP_Count是否大于一临界值TH。举例而言,控制器110A/110B可于SRAM 112或存储器装置120内建立一第一表格,用以记录各存储器区块所对应的一有效页面计数值VP_Count,其中用于记录的页面的单位可以是一个逻辑页面。因此,VP_Count的最大值为一存储器区块所包含的逻辑页面数量,最小值为0。控制器110A/110B可于每次写入操作后更新第一表格的内容。
更具体的说,假设控制器110A/110B将一主页面(Host page)的数据写入存储器区块B,其中一个主页面可被设定为一次存取作业的数据块单位。例如,当一个物理页面的大小为16K位元时,一个主页面的大小可被设定为4K位元。当控制器110A/110B判断相同的主页面已于更早之前被写入存储器区块A时,则控制器110A/110B将存储器区块A所对应的有效页面计数值VP_Count减1,并且将存储器区块B所对应的有效页面计数值VP_Count加1。
根据本发明的一实施例,控制器110A/110B可于SRAM 112或存储器装置120内建立一第二表格,用以记录一主页面的数据被储存于哪个存储器区块的哪个页面。因此,控制器110A/110B可透过查询第二表格得知该主页面是否已被储存于其他存储器区块内。
当多个单层单元区块所对应的有效页面计数值VP_Count大于临界值TH时,控制器110A/110B决定执行一第一合并程序,用以将具有有效页面计数值VP_Count大于临界值TH的多个单层单元区块所储存的数据写入一或多者多层单元区块。
根据本发明的一实施例,第一合并程序为直接合并(Direct merge)程序。以TLC区块为例,当至少三个单层单元区块所对应的有效页面计数值VP_Count大于临界值TH时,控制器110A/110B决定执行直接合并程序。控制器110A/110B可以三个具有有效页面计数值VP_Count大于临界值TH的SLC区块组合成一个群组。控制器110A/110B依序读取一群组内SLC区块所储存的数据(即,读取整个SLC区块所储存的数据而不考虑是否有无效页的存在),并依序将读取的数据写入一个TLC区块。一般而言,一个读取动作伴随一个写入动作。由于SLC区块的数据无须经过控制器,而是直接被写入TLC区块,因此直接合并程序的优点为速度快。
另一方面,当控制器110A/110B发现任一个单层单元区块所对应的有效页面计数值VP_Count不大于临界值TH时,控制器110A/110B决定执行一第二合并程序。于第二合并程序中,控制器110A/110B自尚未被处理过的SLC区块中挑选出数个具有有效页面计数值VP_Count不大于临界值TH之SLC区块,并且将被挑选出的SLC区块中有效页面所储存的数据合并后,将数据写入多层单元区块之一者。
根据本发明的一实施例,第二合并程序为缓存编程(On Buffer Program,缩写为OBP)合并程序的一种应用。以TLC区块为例,当控制器110A/110B发现任一个SLC区块所对应的有效页面计数值VP_Count不大于临界值TH时,控制器110A/110B决定对此SLC区块执行OBP合并程序。
更具体的说,于OBP合并程序中,当控制器110A/110B判断一个SLC区块的某个物理页面(例如,16K位元的物理页面)所储存的数据都是有效数据时,控制器110A/110B不将有效数据读出来整理,而是将有效数据继续存放于原SLC区块中。
当控制器110A/110B判断一个SLC区块的某个物理页面所储存的数据并非都是有效数据时,读取此SLC区块所储存的有效页面的数据,并暂存于缓存器。控制器110A/110B接着继续检测其余SLC区块所储存的数据是否并非都是有效数据。若其余SLC区块所储存的数据并非都是有效数据,便如同上述读取此SLC区块所储存的有效页面的数据,并暂存于缓存器。待缓存器内收集到一个物理页面大小的有效数据时(例如,16K位元),再将之写入一暂存区块(以下称为OBP区块)中。
于本发明的一实施例中,控制器110A/110B可于SRAM 112或存储器装置120内建立一OBP表格。OBP表格用以记录尔后进行OBP合并程序时,目的TLC区块的每一页的数据现在是存放在哪个区块的哪一页。例如,可能在原本的SLC区块,也有可能在OBP区块。
最后,当累积到一个TLC区块可容纳的有效数据之后,会依据OBP表格上面记录的资讯,一页一页(例如,物理页面)地依序将数据读到控制器110A/110B,并依据页面编号查询对应的随机种子,经过扰乱器115扰乱及编码器114编码之后,再将处理过的数据存入TLC区块的对应页面。此外,每一页面的备用区(spare region)中也会存一份随机种子,当数据读出来之后,便可以依据备用区的随机种子将数据还原。
因此,根据本发明的一实施例中,于第二合并程序中,当控制器110A/110B判断一个SLC区块的某个物理页面所储存的数据并非都是有效数据时,控制器110A/110B读取此SLC区块的有效页面的数据,并暂存于缓存器,待缓存器内收集到一个物理页面大小的有效数据时(例如,16K位元),再将之写入一OBP区块中。当控制器110A/110B判断一个SLC区块的某个物理页面所储存的数据都是有效数据时,控制器110A/110B不将有效数据读出来整理,而是将有效数据继续存放于原SLC区块中。待控制器110A/110B收集到可写满一个TLC区块(即,三个SLC区块,其可以是原SLC区块或OBP区块,两者合计)的有效页面数据量时,再将有效数据写入一TLC区块。相较于直接合并(即,上述的第一合并程序),OBP合并(即,上述的第二合并程序)的优点为可确保TLC区块内的数据皆为有效。
于本发明的实施例中,控制器110A/110B根据存储器区块的有效页面计数值VP_Count弹性地决定要使用哪种方式将单层单元区块储存的数据写入多层单元区块,如此一来,对于有效页面多的存储器区块,可享受直接合并程序的优点(即,可快速完成数据收集与写入的程序),并且对于有效页面少的存储器区块,也可藉由OBP合并的过程有效减少写入多层单元区块的无效页面数量,让后续进行多层单元区块的垃圾回收(garbagecollection)程序或其他的数据处理程序更加有效率。
以下段落将更详细说明本申请的多个实施例。
根据本发明的一第一实施例,控制器110A/110B可先将要进行既定程序的SLC区块依序排入一处理伫列中,以便于预先根据随机种子将SLC区块分组。举例而言,当控制器110A/110B依序将数据写入SLC区块0、1、2…时,也可依照一既定顺序为SLC区块0、1、2…分配不同的随机种子。更具体的说,假设数据储存装置系统中被配置三组随机种子,每组包含多个不同的随机种子,各随机种子用以扰乱一物理页面,并且三组的随机种子皆不相同。举例而言,假设一SLC区块包含10个物理页面,则每组随机种子可包含10个不同的随机种子,而这三组被配置的随机种子中所包含的30个随机种子亦皆不相同。
控制器110A/110B可依序将这三组随机种子分配给SLC区块。例如,将第一组随机种子分配给SLC区块0、3、6…,将第二组随机种子分配给SLC区块1、4、7…,将第三组随机种子分配给SLC区块2、5、8…依此类推。值得注意的是,以上范例仅用以清楚说明本发明的概念,本发明并不限于使用三组不同的随机种子。例如,数据储存装置系统可使用三组以上不同的随机种子。
控制器110A/110B的扰乱器115可根据随机种子将数据扰乱后再存入SLC区块中。此外,每一页面的备用区(spare region)中也会存一份随机种子,当数据读出来的后,便可以依据备用区的随机种子将数据还原。
由于控制器110A/110B已知SLC区块0、1、2使用不同的随机种子,SLC区块3、4、5使用不同的随机种子,因此,控制器110A/110B可如图2所示将要进行既定程序的SLC区块依序排入一处理伫列中,其中处理伫列记录的可以是SLC区块编号,例如图2方块中的数字。如此一来,处理伫列中每栏(column)的三个SLC区块可被归类为一群组,并且每一群组内的SLC区块可确保会根据不同随机种子进行数据扰乱(即,群组内的每一个物理页面都会根据不同随机种子进行数据扰乱)。
在将SLC区块依序排入处理伫列后,控制器110A/110B可依序判断各单层单元区块所对应的一有效页面计数值VP_Count是否大于一临界值TH。假设如图2所示,SLC区块3、5、7、11、13、15所对应的有效页面计数值VP_Count均不大于临界值TH(图2中以斜线标示出VP_Count<=TH的区块),其余SLC区块所对应的有效页面计数值VP_Count均大于临界值TH。
根据本发明的一实施例,控制器110A/110B于判断SLC区块0、1、2所对应的有效页面计数值VP_Count均大于临界值TH后,可决定对SLC区块0、1、2执行第一合并程序,用以直接将SLC区块0、1、2写入一个TLC区块。此处理程序可持续被进行,直到遇到有效页面计数值VP_Count不大于临界值TH的SLC区块。
假设SLC区块3所对应的有效页面计数值VP_Count不大于临界值TH,则当处理到SLC区块3时,控制器110A/110B决定执行一第二合并程序。于第二合并程序中,控制器110A/110B判断各SLC区块的物理页面所储存的数据是否都是有效数据。当控制器110A/110B判断一个SLC区块的某个物理页面所储存的数据并非都是有效数据时,控制器110A/110B读取此SLC区块的有效页面的数据,并暂存于缓存器。当控制器110A/110B判断一个SLC区块的某个物理页面所储存的数据都是有效数据时,控制器110A/110B不将有效数据读出来整理,而是将有效数据继续存放于原SLC区块中。待控制器110A/110B收集到可写满一个TLC区块(即,三个SLC区块,其可以是原SLC区块或OBP区块,两者合计)的有效页面数据量时,再将有效数据写入一TLC区块。
待第二合并程序完成后,控制器110A/110B进一步重整处理伫列内容,将已处理过(即,所有有效数据均被合并写入TLC区块)的SLC区块移除,并由同一组(同一列)未处理过的SLC区块递补。如图2的箭头所示,当SLC区块3已被处理完成时,控制器110A/110B将SLC区块编号6填入处理伫列第二栏第一列的空缺位置,以取代SLC区块3,当SLC区块5已被处理完成时,控制器110A/110B将SLC区块编号8填入处理伫列第二栏第三列的位置,以取代SLC区块5,并依此类推。如此一来,可确保被归类为一群组的每栏(column)的三个SLC区块会根据不同随机种子进行数据扰乱(即,群组内的每一个物理页面都会根据不同随机种子进行数据扰乱)。
同样地,每当控制器110A/110B完成第一合并程序时,也可依照相同方式重整处理伫列内容。
此外,待第二合并程序完成后,控制器110A/110B可再根据处理伫列内容依序处理其他未处理过的SLC区块。控制器110A/110B可继续如上述依序判断各单层单元区块所对应的一有效页面计数值VP_Count是否大于一临界值TH,并且根据判断结果决定要执行第一合并程序或第二合并程序。
于本发明的第一实施例中,控制器110A/110B根据存储器区块的有效页面计数值VP_Count弹性地决定要使用哪种方式将单层单元区块储存的数据写入多层单元区块,如此一来,对于有效页面多的存储器区块,可快速完成既定程序,并且对于有效页面少的存储器区块,也可藉由上述第二合并程序有效减少写入多层单元区块的无效页面数量,让后续进行多层单元区块的垃圾回收(garbage collection)程序或其他的数据处理程序更加有效率。
根据本发明的一第二实施例,控制器110A/110B可更进一步于SRAM 112或存储器装置120内建立一第三表格,用以记录各SLC区块所配置的随机种子相关资讯。例如,记录各SLC区块所配置的随机种子是属于哪一组。当控制器110A/110B决定执行既定程序时,可先检视第一表格与第三表格的内容,自具有有效页面计数值VP_Count大于临界值TH的SLC区块中选择具有不同随机种子的多个(例如,三个)SLC区块形成一群组,执行上述第一合并程序。待SLC区块群组(即,具有有效页面计数值VP_Count大于临界值TH且具有不同随机种子的多个(例如,三个)SLC区块所形成之群组)都处理完成后,再利用剩余的SLC区块执行上述第二合并程序。
于本发明的第二实施例中,控制器110A/110B优先以第一合并程序处理有效页面多的存储器区块,如此可快速释放存储器空间。待有效页面多的存储器区块处理完后,再处理有效页面少的存储器区块,藉由上述第二合并程序有效减少写入多层单元区块的无效页面数量,让后续进行多层单元区块的垃圾回收(garbage collection)程序或其他的数据处理程序更加有效率。
根据本发明的一第三实施例,当控制器110A/110B决定执行既定程序时,亦可优先判断是否发生过突然断电(sudden power off)。根据本发明的一实施例,当发生过突然断电后,系统于重新上电时,会执行一突然断电回复(Sudden Power Off Recovery,SPOR)程序,以重新建立表格与数据区块连结。因此,于执行SPOR程序时,控制器110A/110B可设起一旗标,用以指示发生过突然断电。当控制器110A/110B决定执行既定程序时,可检查此旗标是否被设起,用来判断是否发生过突然断电。若是,则于断电发生后第一次执行既定程序时,控制器110A/110B可不判断单层单元区块所对应的有效页面计数值VP_Count是否大于临界值TH,而是改为直接决定执行第三合并程序。第三合并程序也是OBP合并程序的一种应用。于第三合并程序中,控制器110A/110B将单层单元区块中有效页面所储存的数据暂存于缓存器,用以进行数据合并。待控制器110A/110B收集到可写满一个多层单元区块(以TLC区块为例,即3个SLC区块)的有效页面数据量时,控制器110A/110B为各物理页面配置不同的随机种子,再将合并后的数据写入一多层单元区块。待既定程序完程后,控制器110A/110B可清除上述旗标。如此一来,仅发生过突然断电后第一次欲执行既定程序时会选择执行第三合并程序。
值得注意的是,于本发明的其他实施例中,控制器110A/110B也可被设计为先计数突然断电的发生次数,并且当突然断电的发生次数大于一既定数值后,再设起另一旗标,用以指示发生过连续突然断电的情况。当控制器110A/110B决定执行既定程序时,可先确认连续突然断电的旗标是否被设起。当发现连续突然断电的旗标被设起时,就直接决定执行第三合并程序以完成既定程序。待既定程序完成后,控制器110A/110B可清除此旗标。如此一来,仅发生过连续突然断电后第一次欲执行既定程序时会选择执行第三合并程序。
一般而言,每当突然断电发生后,系统就会使用一个新的单层单元区块作为目前的快取存储器,因此,突然断电或连续突然断电都有可能造成单层单元区块包含大量的无效页面。因此,于本发明的第三实施例中,于发生过突然断电或连续突然断电后第一次欲执行既定程序时,可设定为优先选择执行第三合并程序。
图3显示了根据本发明的一实施例所述的存储器装置的数据处理方法,适用于一数据储存装置,数据储存装置可包括一存储器装置与一控制器,存储器装置可包括多个存储器区块,并且存储器区块可被切割为多个单层单元区块与多个多层单元区块,单层单元区块用以暂存数据。
图3所示的流程图涵盖本发明的第一、第二与第三实施例。首先,控制器决定执行一既定程序(步骤S302),用以将单层单元区块储存的数据写入多层单元区块,以释放单层单元区块的存储器空间。接着,控制器判断数据储存装置是否发生过突然断电(步骤S304)。若是,则控制器决定执行第三合并程序(步骤S306)。若否,则控制器进一步判断各单层单元区块所对应的一有效页面计数值VP_Count是否大于一临界值TH(步骤S308)。若是,则对该单层单元区块执行第一合并程序(步骤S310),控制器直接将具有VP_Count>TH的多个单层单元区块所储存的数据写入多层单元区块。若否,则对该单层单元区块执行第二合并程序(步骤S312)。
如上述,于本发明的实施例中,控制器110A/110B根据存储器区块的有效页面计数值VP_Count弹性地决定要使用哪种方式将单层单元区块储存的数据写入多层单元区块,如此一来,对于有效页面多的存储器区块,可享受直接合并程序的优点(即,可快速完成数据收集与写入的程序),并且对于有效页面少的存储器区块,也可藉由OBP合并的过程有效减少写入多层单元区块的无效页面数量,让后续进行多层单元区块的垃圾回收(garbagecollection)程序或其他的数据处理程序更加有效率。此外,于发生过突然断电或连续突然断电后第一次欲执行既定程序时,都优先选择执行OBP合并,以确保多层单元区块内的数据皆为有效。
除应用于上述用以将SLC区块储存的数据写入TLC区块的一既定程序外,根据本发明的一第四实施例,于编程缓存器(buffer)的过程中,亦可藉由随机种子的配置,使得各物理页面可根据不同随机种子进行数据扰乱,藉由此配置可使上述的合并程序更有效率。如上述,为了维持编程的稳定性,存储器装置120的SLC区块可作用为缓存器(或快取存储器),用以于主机装置200欲将数据写入存储器装置100时暂存数据。待SLC区块的使用率达到一定程度时,控制器110A/110B便可执行上述的既定程序。
根据本发明的第四实施例,控制器110A/110B可为不同的SLC区块配置不同组随机种子,其中各组随机种子分别包含一既定数量的随机种子,并且各组所包含的随机种子均不相同。举例而言,控制器110A/110B可为不同SLC区块配置不同组随机种子,用以于写入数据时,扰乱器115可根据对应的随机种子进行数据扰乱。假设一SLC区块包含10个物理页面,则每组随机种子可包含10个不同的随机种子,则配置给三个SLC区块的三组随机种子中所包含的30个随机种子皆不相同。
更具体的说,于本发明的一实施例中,控制器110A/110B可先使用第一SLC区块作为缓存器(buffer)。当控制器110A/110B自主机装置200接收欲写入存储器装置120的数据时,扰乱器115可根据一第一组随机种子对该数据进行数据扰乱,编码器114可对扰乱过的该数据进行编码,之后经扰乱及编码过的该数据被写入第一SLC区块。
当第一SLC区块被写满或待第一SLC区块的使用率达到一定程度时,控制器110A/110B可再使用第二SLC区块作为缓存器。同样地,当控制器110A/110B自主机装置200接收欲写入存储器装置120的数据时,扰乱器115可根据一第二组随机种子对该数据进行数据扰乱,编码器114可对扰乱过的该数据进行编码,之后经扰乱及编码过的该数据被写入第二SLC区块。
当第二SLC区块被写满或待第二SLC区块的使用率达到一定程度时,控制器110A/110B可再使用第三SLC区块作为缓存器。同样地,当控制器110A/110B自主机装置200接收欲写入存储器装置120的数据时,扰乱器115可根据一第三组随机种子对该数据进行数据扰乱,编码器114可对扰乱过的该数据进行编码,之后经扰乱及编码过的该数据被写入第三SLC区块,并依此类推。
如上述,第一组随机种子、第二组随机种子与第三组随机种子分别包含一既定数量的随机种子,并且第一组随机种子、第二组随机种子与第三组随机种子所包含的随机种子均不相同。
此外,扰乱器115于进行数据扰乱时,亦会将各物理页面所使用的随机种子储存于该物理页面的一备用区(spare region)中,当数据读出来之后,便可以依据备用区的随机种子将数据还原。更具体的说,于读取数据时,控制器110A/110B自存储器装置120读出对应的数据,经由编码器114对该数据进行解码,以及经由扰乱器115根据该数据的备用区所储存的对应的随机种子对解码过的该数据进行数据解扰乱后,便可得到原始数据。
根据本发明的第四实施例,由于已事先为不同的SLC区块配置不同组随机种子,使得数据于写入不同的SLC区块时便已使用不同的随机种子进行数据扰乱,且各物理页面所配置的随机种子亦均不相同,因此,当控制器110A/110B决定执行用以将多个SLC区块所储存的数据写入一个多层单元区块的一直接合并程序(即,上述的第一合并程序)时,便可直接将多个SLC区块所储存的数据写入一个多层单元区块。
如上述,控制器110A/110B依序读取多个(例如,三个)SLC区块所储存的数据,并依序将读取的数据写入一个TLC区块。一般而言,一个读取动作伴随一个写入动作。例如,控制器110A/110B可依序读取上述第一SLC区块并直接将读取的数据写入一TLC区块,读取上述第二SLC区块并直接将读取的数据写入同一TLC区块,以及读取上述第三SLC区块并直接将读取的数据写入同一TLC区块。
根据本发明的一实施例,SLC区块可如上述被分为三个群组,各群组可对应于一组随机种子,且不同群组的SLC区块配置不同组随机种子。举例而言,第一群组可包含第一SLC区块、第四SLC区块…等,并且控制器110A/110B可为第一群组的SLC区块配置第一组随机种子。同样地,第二群组可包含第二SLC区块、第五SLC区块…等,并且控制器110A/110B可为第二群组的SLC区块配置第二组随机种子,第三群组可包含第三SLC区块、第六SLC区块…等,并且控制器110A/110B可为第三群组的SLC区块配置第三组随机种子。于本发明的一实施例中,假设三个群组各只有二个SLC区块,则控制器110A/110B可于各群组所包含的其中一个SLC区块被写满之后即马上启动直接合并程序。假设三个群组各包含三个以上SLC区块,则控制器110A/110B可于各群组所包含的空的SLC区块的数量低于某个既定值时启动直接合并程序。
由于SLC区块的数据无须经过控制器,而是直接被写入TLC区块,因此直接合并程序的优点为速度快。此外,由于于本发明的第四实施例中,控制器110A/110B已为不同的SLC区块配置不同组随机种子,因此,上述第一、第二与第三SLC区块所配置的随机种子均不相同,且上述第一、第二与第三SLC区块的各物理页面所配置的随机种子亦不相同,藉由此配置可使上述的合并程序更有效率。
图4是显示根据本发明的另一实施例所述的存储器装置的数据处理方法流程图。首先,为不同的SLC区块配置不同组随机种子(步骤S402)。举例而言,当N个SLC区块被设定作为缓存器时,控制器110A/110B可配置N组不同的随机种子,使得各SLC区块所对应的随机种子均不相同,且各SLC区块的各物理页面所对应的随机种子亦均不相同,其中N为一正整数。
接着,当控制器110A/110B欲将数据写入第n个SLC区块时(其中0<n<N),根据该SLC区块所对应的第n组随机种子对数据进行数据扰乱,并且对扰乱过的数据进行编码后,再将经扰乱及编码过的数据写入对应的SLC区块(步骤S404)。
相较于先前技术,当要将SLC区块的数据整理至TLC区块时,为确保每个物理页面的随机种子皆不相同,往往需要将数据先从存储器装置120读取至SRAM112,并且由控制器重新给予随机种子再扰乱/编码后,才能再储存至TLC区块,如此降低数据储存装置的效能。于本发明的实施例中,藉由随机种子的配置可使上述的合并程序更有效率,并且可确保经合并程序后的TLC区块内的每一个物理页面的数据都会根据不同随机种子进行数据扰乱。
本发明说明书中"耦接"一词是泛指各种直接或间接的电性连接方式。本发明虽以较佳实施例揭示如上,然其并非用以限定本发明的范围,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围应由权利要求书界定为准。
Claims (10)
1.一种数据储存装置,包括:
一存储器装置,包括多个存储器区块,其中这些存储器区块包括多个单层单元区块与多个多层单元区块;以及
一控制器,耦接该存储器装置,其中当该控制器执行用以将这些单层单元区块所储存的数据写入这些多层单元区块的一既定程序时,该控制器判断各单层单元区块所对应的一有效页面计数值是否大于一临界值,并且当多个单层单元区块所对应的该有效页面计数值大于该临界值时,该控制器执行一第一合并程序,用以直接将具有该有效页面计数值大于该临界值的这些单层单元区块所储存的数据写入这些多层单元区块之一或多者。
2.如权利要求1所述的数据储存装置,其特征在于,该控制器还自具有该有效页面计数值大于该临界值的这些单层单元区块中选择具有不同随机种子的单层单元区块执行该第一合并程序。
3.如权利要求1所述的数据储存装置,其特征在于,当该控制器判断一单层单元区块所对应的该有效页面计数值不大于该临界值时,执行一第二合并程序,其中于该第二合并程序中,该控制器判断各单层单元区块的物理页面所储存的数据是否都是有效数据,以及当一单层单元区块的一物理页面所储存的数据并非都是有效数据时,该控制器读取该单层单元区块的有效页面的数据,并暂存于一缓存器,并且待该缓存器收集到可写满一个多层单元区块的有效页面数据量时,再将有效数据写入这些多层单元区块之一者。
4.如权利要求1所述的数据储存装置,其特征在于,这些多层单元区块为三层单元区块,并且当该控制器执行该第一合并程序时,直接将三个具有不同随机种子的单层单元区块所储存的数据写入一个三层单元区块。
5.如权利要求1所述的数据储存装置,其特征在于,当该控制器执行该既定程序时还判断是否发生过突然断电,当发生过突然断电时,该控制器执行一第三合并程序,其中于该第三合并程序中,该控制器将这些单层单元区块中有效页面所储存的数据合并,并且将合并后的数据写入这些多层单元区块。
6.一种存储器装置的数据处理方法,适用于一数据储存装置,该数据储存装置包括一存储器装置与一控制器,该存储器装置包括多个存储器区块,并且这些存储器区块包括多个单层单元区块与多个多层单元区块,该方法包括:
判断各单层单元区块所对应的一有效页面计数值是否大于一临界值;以及
当多个单层单元区块所对应的该有效页面计数值大于该临界值时,执行一第一合并程序,用以直接将具有该有效页面计数值大于该临界值的这些单层单元区块所储存的数据写入这些多层单元区块之一或多者。
7.如权利要求6所述的方法,其特征在于,还包括:
自具有该有效页面计数值大于该临界值的这些单层单元区块中选择具有不同随机种子的单层单元区块执行该第一合并程序。
8.如权利要求6所述的方法,其特征在于,还包括:
当判断一单层单元区块所对应的该有效页面计数值不大于该临界值时,执行一第二合并程序,并且其中执行该第二合并程序的步骤包括:
判断各单层单元区块的物理页面所储存的数据是否都是有效数据;
当一单层单元区块的一物理页面所储存的数据并非都是有效数据时,读取该单层单元区块的有效页面的数据,并暂存于一缓存器;以及
待该缓存器收集到可写满一个多层单元区块的有效页面数据量时,将有效数据写入这些多层单元区块之一者。
9.如权利要求6所述的方法,其特征在于,这些多层单元区块为三层单元区块,并且当执行该第一合并程序时,三个具有不同随机种子的单层单元区块所储存的数据直接被合并并且被写入一个三层单元区块。
10.如权利要求6所述的方法,其特征在于,还包括:
判断是否发生过突然断电;以及
当发生过突然断电时,不判断各单层单元区块所对应的该有效页面计数值是否大于该临界值,而改为直接执行一第三合并程序;
其中执行该第三合并程序的步骤包括:
将这些单层单元区块中有效页面所储存的数据合并;以及
将合并后的数据写入这些多层单元区块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810794936.4A CN109783007B (zh) | 2017-11-13 | 2018-05-29 | 数据储存装置与存储器装置的数据处理方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106139137A TWI653538B (zh) | 2017-11-13 | 2017-11-13 | 資料儲存裝置與記憶體裝置之資料處理方法 |
TW106139137 | 2017-11-13 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810794936.4A Division CN109783007B (zh) | 2017-11-13 | 2018-05-29 | 数据储存装置与存储器装置的数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783004A true CN109783004A (zh) | 2019-05-21 |
CN109783004B CN109783004B (zh) | 2022-04-26 |
Family
ID=66432102
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810531214.XA Active CN109783004B (zh) | 2017-11-13 | 2018-05-29 | 数据储存装置与存储器装置的数据处理方法 |
CN201810794936.4A Active CN109783007B (zh) | 2017-11-13 | 2018-05-29 | 数据储存装置与存储器装置的数据处理方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810794936.4A Active CN109783007B (zh) | 2017-11-13 | 2018-05-29 | 数据储存装置与存储器装置的数据处理方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10719254B2 (zh) |
CN (2) | CN109783004B (zh) |
TW (1) | TWI653538B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966300A (zh) * | 2020-08-24 | 2020-11-20 | 深圳三地一芯电子有限责任公司 | 一种节省主控sram的存储器数据写入方法及装置 |
WO2023019981A1 (zh) * | 2021-08-17 | 2023-02-23 | 华为云计算技术有限公司 | 数据查询方法以及相关设备 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3577916B1 (en) * | 2017-03-25 | 2021-05-05 | Samsung Electronics Co., Ltd. | Method and apparatus for transmitting and receiving data in mission critical data communication system |
TWI653538B (zh) * | 2017-11-13 | 2019-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
KR102654308B1 (ko) * | 2018-11-26 | 2024-04-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR102593541B1 (ko) * | 2018-11-29 | 2023-10-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
CN111949565A (zh) * | 2019-05-17 | 2020-11-17 | 北京兆易创新科技股份有限公司 | 一种存储器及其控制方法和控制装置 |
TWI745695B (zh) | 2019-05-22 | 2021-11-11 | 慧榮科技股份有限公司 | 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置 |
US10735189B2 (en) * | 2019-07-01 | 2020-08-04 | Alibaba Group Holding Limited | Data exchange for multi-party computation |
CN110795626A (zh) * | 2019-10-28 | 2020-02-14 | 南京弹跳力信息技术有限公司 | 大数据处理方法及系统 |
CN113495850B (zh) | 2020-04-08 | 2024-02-09 | 慧荣科技股份有限公司 | 管理垃圾回收程序的方法、装置及计算机可读取存储介质 |
TWI740446B (zh) * | 2020-04-08 | 2021-09-21 | 慧榮科技股份有限公司 | 管理垃圾回收程序的電腦程式產品及方法及裝置 |
TWI738308B (zh) * | 2020-04-27 | 2021-09-01 | 宇瞻科技股份有限公司 | 基於分頁模式備份資料的固態硬碟以及基於分頁模式的固態硬碟資料備份方法 |
KR102392121B1 (ko) * | 2020-06-15 | 2022-04-29 | 한국전자통신연구원 | 메모리 분리 시스템에서 메모리 관리 방법 및 장치 |
JP7438859B2 (ja) * | 2020-06-17 | 2024-02-27 | キオクシア株式会社 | メモリシステムおよび方法 |
KR20220025401A (ko) * | 2020-08-24 | 2022-03-03 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
US20220222008A1 (en) * | 2021-01-14 | 2022-07-14 | Silicon Motion, Inc. | Method for managing flash memory module and associated flash memory controller and memory device |
US11467763B2 (en) * | 2021-01-20 | 2022-10-11 | Micron Technology, Inc. | Valid data aware media reliability scanning for memory sub-blocks |
JP2023039459A (ja) * | 2021-09-09 | 2023-03-22 | キオクシア株式会社 | メモリシステムおよび方法 |
US11733914B2 (en) | 2021-10-29 | 2023-08-22 | Western Digital Technologies, Inc. | Direct write operation for quad-level cell based data storage devices |
US11809713B1 (en) * | 2022-07-12 | 2023-11-07 | Silicon Motion, Inc. | Method and apparatus for performing data access management of memory device with aid of randomness-property control |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488354A (zh) * | 2008-01-16 | 2009-07-22 | 三星电子株式会社 | 稳定的数据存储系统和方法 |
CN101593156A (zh) * | 2008-05-28 | 2009-12-02 | 群联电子股份有限公司 | 多种存储器的管理方法、系统及控制器 |
CN102033811A (zh) * | 2009-09-24 | 2011-04-27 | 慧荣科技股份有限公司 | 用于管理闪存多个区块的方法和相关记忆装置及其控制器 |
CN103164344A (zh) * | 2013-03-12 | 2013-06-19 | 深圳市江波龙电子有限公司 | 一种闪存存储设备中数据管理的方法及装置 |
CN103827833A (zh) * | 2011-07-22 | 2014-05-28 | 桑迪士克科技股份有限公司 | 存储数据的系统和方法 |
US20150039948A1 (en) * | 2013-07-31 | 2015-02-05 | SK Hynix Inc. | Data storage device and operating method thereof |
US20160092129A1 (en) * | 2014-09-30 | 2016-03-31 | Sandisk Technologies Inc. | System and method for folding partial blocks into multi-level cell memory blocks |
US20160266967A1 (en) * | 2015-03-12 | 2016-09-15 | SK Hynix Inc. | Memory device and system including the same |
US20160266791A1 (en) * | 2015-03-09 | 2016-09-15 | Phison Electronics Corp. | Memory control circuit unit, memory storage apparatus and data accessing method |
US20160364337A1 (en) * | 2015-06-10 | 2016-12-15 | Micron Technology, Inc. | Memory having a static cache and a dynamic cache |
US20170115884A1 (en) * | 2015-10-26 | 2017-04-27 | SanDisk Technologies, Inc. | Data Folding in 3D Nonvolatile Memory |
CN107291378A (zh) * | 2016-03-31 | 2017-10-24 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2225643B1 (en) * | 2007-12-28 | 2020-05-06 | Toshiba Memory Corporation | Semiconductor storage device |
CN101494086B (zh) | 2008-01-24 | 2011-12-07 | 群联电子股份有限公司 | 快闪存储器储存装置、快闪存储器控制器及其切换方法 |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
CN101814318B (zh) * | 2009-02-25 | 2013-05-01 | 群联电子股份有限公司 | 多层存储单元与非型闪存储存系统及其控制器与存取方法 |
JP2011145838A (ja) * | 2010-01-13 | 2011-07-28 | Toshiba Corp | 記憶装置管理装置および記憶装置の管理方法 |
CN102208210B (zh) * | 2010-03-31 | 2016-04-27 | 深圳市朗科科技股份有限公司 | 闪存设备及其数据存储方法 |
US20130042051A1 (en) | 2011-08-10 | 2013-02-14 | Skymedi Corporation | Program method for a non-volatile memory |
US8666068B2 (en) | 2011-10-20 | 2014-03-04 | Sandisk Technologies Inc. | Method for scrambling shaped data |
US8984373B2 (en) * | 2012-02-22 | 2015-03-17 | Silicon Motion, Inc. | Method for accessing flash memory and associated flash memory controller |
US9146851B2 (en) * | 2012-03-26 | 2015-09-29 | Compellent Technologies | Single-level cell and multi-level cell hybrid solid state drive |
US20130343131A1 (en) * | 2012-06-26 | 2013-12-26 | Lsi Corporation | Fast tracking for flash channels |
US8839073B2 (en) * | 2012-05-04 | 2014-09-16 | Lsi Corporation | Zero-one balance management in a solid-state disk controller |
US9620202B2 (en) * | 2013-11-01 | 2017-04-11 | Seagate Technology Llc | Reduction or elimination of a latency penalty associated with adjusting read thresholds for non-volatile memory |
TWI606458B (zh) | 2013-11-05 | 2017-11-21 | 威盛電子股份有限公司 | 非揮發性記憶體裝置的操作方法 |
CN103777904B (zh) * | 2014-02-12 | 2017-07-21 | 威盛电子股份有限公司 | 数据储存装置以及数据加扰与解扰方法 |
US20160094339A1 (en) * | 2014-09-30 | 2016-03-31 | Sandisk Technologies Inc. | Scrambling schemes for scrambling and descrambling data |
US9349479B1 (en) * | 2014-11-18 | 2016-05-24 | Sandisk Technologies Inc. | Boundary word line operation in nonvolatile memory |
US10008250B2 (en) * | 2015-03-27 | 2018-06-26 | Intel Corporation | Single level cell write buffering for multiple level cell non-volatile memory |
TWI569275B (zh) * | 2015-07-17 | 2017-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
TWI571881B (zh) | 2015-10-23 | 2017-02-21 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 |
TWI606336B (zh) | 2016-04-21 | 2017-11-21 | 慧榮科技股份有限公司 | 儲存裝置及其控制單元、可用於儲存裝置的資料儲存方法 |
US10423492B2 (en) * | 2016-05-17 | 2019-09-24 | SK Hynix Inc. | Self error-handling flash memory device |
TWI602061B (zh) | 2017-03-16 | 2017-10-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元 |
US10891083B2 (en) * | 2017-04-18 | 2021-01-12 | Microsemi Solutions (Us), Inc. | System and method for randomizing data |
US10387246B2 (en) * | 2017-06-26 | 2019-08-20 | Western Digital Technologies, Inc. | Method and system for scanning for erased flash memory pages |
TWI653538B (zh) * | 2017-11-13 | 2019-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
-
2017
- 2017-11-13 TW TW106139137A patent/TWI653538B/zh active
-
2018
- 2018-05-29 CN CN201810531214.XA patent/CN109783004B/zh active Active
- 2018-05-29 CN CN201810794936.4A patent/CN109783007B/zh active Active
- 2018-07-19 US US16/039,722 patent/US10719254B2/en active Active
- 2018-10-16 US US16/161,900 patent/US10592157B2/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488354A (zh) * | 2008-01-16 | 2009-07-22 | 三星电子株式会社 | 稳定的数据存储系统和方法 |
CN101593156A (zh) * | 2008-05-28 | 2009-12-02 | 群联电子股份有限公司 | 多种存储器的管理方法、系统及控制器 |
CN102033811A (zh) * | 2009-09-24 | 2011-04-27 | 慧荣科技股份有限公司 | 用于管理闪存多个区块的方法和相关记忆装置及其控制器 |
CN103827833A (zh) * | 2011-07-22 | 2014-05-28 | 桑迪士克科技股份有限公司 | 存储数据的系统和方法 |
CN103164344A (zh) * | 2013-03-12 | 2013-06-19 | 深圳市江波龙电子有限公司 | 一种闪存存储设备中数据管理的方法及装置 |
US20150039948A1 (en) * | 2013-07-31 | 2015-02-05 | SK Hynix Inc. | Data storage device and operating method thereof |
US20160092129A1 (en) * | 2014-09-30 | 2016-03-31 | Sandisk Technologies Inc. | System and method for folding partial blocks into multi-level cell memory blocks |
US20160266791A1 (en) * | 2015-03-09 | 2016-09-15 | Phison Electronics Corp. | Memory control circuit unit, memory storage apparatus and data accessing method |
US20160266967A1 (en) * | 2015-03-12 | 2016-09-15 | SK Hynix Inc. | Memory device and system including the same |
US20160364337A1 (en) * | 2015-06-10 | 2016-12-15 | Micron Technology, Inc. | Memory having a static cache and a dynamic cache |
US20170115884A1 (en) * | 2015-10-26 | 2017-04-27 | SanDisk Technologies, Inc. | Data Folding in 3D Nonvolatile Memory |
CN107291378A (zh) * | 2016-03-31 | 2017-10-24 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966300A (zh) * | 2020-08-24 | 2020-11-20 | 深圳三地一芯电子有限责任公司 | 一种节省主控sram的存储器数据写入方法及装置 |
WO2023019981A1 (zh) * | 2021-08-17 | 2023-02-23 | 华为云计算技术有限公司 | 数据查询方法以及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109783007B (zh) | 2022-05-10 |
TWI653538B (zh) | 2019-03-11 |
US10592157B2 (en) | 2020-03-17 |
US20190146705A1 (en) | 2019-05-16 |
CN109783004B (zh) | 2022-04-26 |
US20190146704A1 (en) | 2019-05-16 |
TW201918893A (zh) | 2019-05-16 |
US10719254B2 (en) | 2020-07-21 |
CN109783007A (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783004A (zh) | 数据储存装置与存储器装置的数据处理方法 | |
CN105988718B (zh) | 非挥发性储存装置与控制器进行的控制方法 | |
CN104008061B (zh) | 内存回收方法及装置 | |
CN103425595B (zh) | 数据储存装置和闪存的区块管理方法 | |
CN105242871B (zh) | 一种数据写入方法及装置 | |
CN103080911B (zh) | 存储器块的先占式垃圾回收 | |
CN106598479A (zh) | 闪速存储器的故障安全擦除的方法和装置 | |
CN109343790A (zh) | 一种基于nand flash的数据存储方法、终端设备及存储介质 | |
CN106527969B (zh) | 一种寿命均衡的NandFlash存储器读写方法 | |
CN106776362B (zh) | 存储器的控制方法及装置 | |
CN104503710A (zh) | 一种提高闪存写入速度的方法和装置 | |
CN106469122B (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
CN105893275A (zh) | 缓存及读取即将写入储存单元的数据的方法以及使用该方法的装置 | |
CN102999439A (zh) | 高速缓冲存储器设备、处理器和信息处理装置 | |
CN103440207A (zh) | 缓存方法及装置 | |
CN102722455B (zh) | 一种闪存设备中数据存储的方法及装置 | |
CN105511806B (zh) | 处理写请求的方法和移动终端 | |
CN107526540A (zh) | 数据储存装置及其数据维护方法 | |
CN110058795A (zh) | 管理闪存模块的方法及相关的闪存控制器及电子装置 | |
CN106909318A (zh) | 固态硬盘使用方法及装置 | |
CN109117383A (zh) | 管理闪存模块的方法和闪存控制器 | |
CN109697170A (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
CN104881366B (zh) | 修复均化的方法与系统 | |
CN105512047B (zh) | Flash闪存的写操作、擦除操作方法及装置 | |
CN105988939A (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 |