CN106528436B - 数据储存装置及其数据维护方法 - Google Patents
数据储存装置及其数据维护方法 Download PDFInfo
- Publication number
- CN106528436B CN106528436B CN201610182612.6A CN201610182612A CN106528436B CN 106528436 B CN106528436 B CN 106528436B CN 201610182612 A CN201610182612 A CN 201610182612A CN 106528436 B CN106528436 B CN 106528436B
- Authority
- CN
- China
- Prior art keywords
- data
- block
- logical
- maintenance table
- page
- 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
- 238000012423 maintenance Methods 0.000 title claims abstract description 246
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000013500 data storage Methods 0.000 title claims abstract description 25
- 238000013507 mapping Methods 0.000 claims abstract description 74
- 238000010586 diagram Methods 0.000 description 9
- 101100484378 Fowlpox virus (strain NVSL) FPV055 gene Proteins 0.000 description 3
- 101100484380 Fowlpox virus (strain NVSL) FPV061 gene Proteins 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101100484379 Fowlpox virus (strain NVSL) FPV060 gene Proteins 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance 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/7201—Logical to physical mapping or translation of blocks or pages
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据储存装置及其数据维护方法,该装置,包括一快闪存储器以及一控制器。快闪存储器包括多个实体区块,每一实体区块包括多个实体页面。控制器用以接收将一第一数据段写入至少一第一逻辑页面的一写入命令,以将第一数据段写入至少一第一实体页面,当第一数据段的数据量小于一既定值并且大数据区块维护表中存在相应于第一逻辑区块的一第一大数据区块维护表时,在第一大数据区块维护表中记录第一逻辑页面以及第一实体页面的映射关系并且判断一小数据维护表中是否具有第一逻辑页面的至少一第一数据链结,以将小数据维护表中的第一数据链结删除。
Description
技术领域
本发明有关于一种存储器装置的数据维护方法;特别有关于一种以两种表维护的数据维护方法。
背景技术
快闪存储器为一种普遍的非挥发性数据储存装置,是以电性方式抹除与程序化。以与非门型的快闪存储器(即NAND FLASH)为例,常用作记忆卡(memory card)、通用序列总线闪存装置(USB flash device)、固态硬盘(SSD)、嵌入式快闪存储器模组(eMMC)…等使用。
快闪存储器(如,NAND FLASH)的储存阵列包括多个个区块(blocks)。各区块包括多个页面(pages),其中在快闪存储器中数据写入的单位是页面,数据抹除的最小单位为区块。由于每一笔数据都需要记录,数据记录的方式影响到控制器的效能表现。所以需要一种方法来有效地维护数据。
发明内容
本发明所提供的数据储存装置以及数据维护方法可利用根据数据的长度分别以两种不同的表维护数据的链结关系,使得随机写入的小数据以及连续地写入的大数据分别以有效的方式维持。
本发明提供一种数据储存装置。数据储存装置包括一快闪存储器以及一控制器。快闪存储器包括多个实体区块,每一实体区块包括多个实体页面。控制器用以接收将一第一数据段写入至少一第一逻辑页面的一写入命令,以将第一数据段写入实体页面中的至少一第一实体页面,当第一数据段的数据量小于一既定值时,判断多个大数据区块维护表中之一者是否相应于第一逻辑页面所属的一第一逻辑区块,当大数据区块维护表中存在相应于第一逻辑区块的一第一大数据区块维护表时,在第一大数据区块维护表中记录第一逻辑页面以及第一实体页面的映射关系并且判断一小数据维护表中是否具有第一逻辑页面中的至少一者的至少一第一数据链结,当小数据维护表中具有第一逻辑页面中的至少一者的至少一第一数据链结时,将小数据维护表中的第一数据链结删除。
在一实施例中,控制器用以当第一数据段的数据量小于既定值并且当大数据区块维护表中不存在相应于第一逻辑区块的第一大数据区块维护表时,在小数据维护表中记录第一逻辑页面以及第一实体页面的映射关系。
又一实施例中,控制器还用以当第一数据段的数据量大于既定值时,判断大数据区块维护表中的一者是否相应于第一逻辑页面所属的第一逻辑区块,当大数据区块维护表中存在相应于第一逻辑区块的第一大数据区块维护表时,在第一大数据区块维护表中记录第一逻辑页面以及第一实体页面的映射关系并且判断小数据维护表中是否具有第一逻辑页面中的至少一者的至少一第一数据链结,当小数据维护表中具有第一逻辑页面中的至少一者的至少一第一数据链结时,将小数据维护表中的第一数据链结删除。另外,控制器还用以当第一数据段的数据量大于既定值并且大数据区块维护表中不存在相应于第一逻辑区块的第一大数据区块维护表时,产生第一大数据区块维护表以在第一大数据区块维护表中记录第一逻辑页面以及第一实体页面的映射关系并且判断小数据维护表中是否具有第一逻辑页面中的至少一者的至少一第一数据链结,当小数据维护表中具有第一逻辑页面中的至少一者的至少一第一数据链结时,将小数据维护表中的第一数据链结删除。
另外,每一大数据区块维护表用以记录一个实体区块中的实体页面与所相应的多个逻辑区块中一者中的多个逻辑页面的数据链结关系。再者,数据储存装置还包括一实体逻辑区块映射表,用以记录具有大数据区块维护表的逻辑区块以及实体区块的映射关系,并且控制器还用以判断实体逻辑区块映射表中是否具有第一逻辑区块的一映射关系,以判断大数据区块维护表中的一者是否相应于第一逻辑页面所属的第一逻辑区块。小数据维护表用以记录逻辑页面所对应的实体区块以及实体页面。另外,既定值为一个实体页面的长度。
本发明亦提供一种数据维护方法,适用于一数据储存装置,其中数据储存装置具有多个实体区块,每一实体区块包括多个实体页面。数据维护方法包括:接收将一第一数据段写入至少一第一逻辑页面数据一写入命令,以将第一数据段写入实体页面中的至少一第一实体页面;判断第一数据段的长度是否大于一既定值;当第一数据段的数据量小于一既定值时,判断多个大数据区块维护表中的一者是否相应于第一逻辑页面所属的一第一逻辑区块;当大数据区块维护表中存在相应于第一逻辑区块的一第一大数据区块维护表时,在第一大数据区块维护表中记录第一逻辑页面以及第一实体页面的映射关系并且判断一小数据维护表中是否具有第一逻辑页面中的至少一者的至少一第一数据链结;以及当小数据维护表中具有第一逻辑页面中的至少一者的至少一第一数据链结时,将小数据维护表中的第一数据链结删除。
在一实施例中,数据维护方法还包括当第一数据段的数据量小于既定值并且当大数据区块维护表中不存在相应于第一逻辑区块的第一大数据区块维护表时,在小数据维护表中记录第一逻辑页面以及第一实体页面的映射关系。
又另一实施例中,数据维护方法还包括:当第一数据段的数据量大于既定值时,判断大数据区块维护表中的一者是否相应于第一逻辑页面所属的第一逻辑区块;当大数据区块维护表中存在相应于第一逻辑区块的第一大数据区块维护表时,在第一大数据区块维护表中记录第一逻辑页面以及第一实体页面的映射关系并且判断小数据维护表中是否具有第一逻辑页面中的至少一者的至少一第一数据链结;以及当小数据维护表中具有第一逻辑页面中的至少一者的至少一第一数据链结时,将小数据维护表中的第一数据链结删除。
另外,数据维护方法还包括:当第一数据段的数据量大于既定值并且大数据区块维护表中不存在相应于第一逻辑区块的第一大数据区块维护表时,产生第一大数据区块维护表以在第一大数据区块维护表中记录第一逻辑页面以及第一实体页面的映射关系并且判断小数据维护表中是否具有第一逻辑页面中的至少一者的至少一第一数据链结;以及当小数据维护表中具有第一逻辑页面中的至少一者的至少一第一数据链结时,将小数据维护表中的第一数据链结删除。
在一实施例中,每一大数据区块维护表用以记录一个实体区块中的实体页面与所相应的多个逻辑区块中一者中的多个逻辑页面的数据链结关系。数据维护方法还包括判断一实体逻辑区块映射表中是否具有第一逻辑区块的一映射关系,以判断大数据区块维护表中的一者是否相应于第一逻辑页面所属的第一逻辑区块,其中实体逻辑区块映射表,用以记录具有大数据区块维护表的逻辑区块以及实体区块的映射关系。
值得注意的是,小数据维护表用以记录逻辑页面所对应的实体区块以及实体页面。既定值为一个实体页面的长度。
附图说明
图1是本发明的一种实施例的电子系统的方块图。
图2是本发明的一种实施例的大数据区块维护表以及实体逻辑区块映射表的示意图。
图3是本发明的一种实施例的大数据区块维护表的示意图。
图4是本发明的一种实施例的小数据维护表的意图。
图5是本发明的一种实施例的小数据维护表的示意图。
图6A和6B是本发明的一种实施例的数据维护方法的流程图。
符号说明
100 电子系统;
120 主机;
140 数据储存装置;
160 控制器;
162 运算单元;
164 永久存储器;
166 动态随机存取器;
180 快闪存储器;
FHT 实体逻辑区块映射表;
LDT0~LDTN 大数据区块维护表;
SDT 小数据维护表;
HB0~HBN、HBZ0~HBZ2 逻辑区块;
FBX0~FBXN 实体页面;
HP0~HPM、HPW0~HPW2 逻辑页面;
FPY0~FPYM 实体区块;
S600~S618 步骤。
具体实施方式
以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。
图1是本发明的一种实施例的电子系统的方块图。电子系统100包括一主机120以及一数据储存装置140。数据储存装置140包括一快闪存储器180以及一控制器160,且可根据主机120所下达的命令操作。
控制器160包括一运算单元162、一永久存储器(如,只读存储器ROM)164以及一动态随机存取器(RAM)166。永久存储器164与所载的程序码、数据组成固件(firmware),由运算单元162执行,使控制器160基于该固件控制该快闪存储器180。
快闪存储器180包括多个实体区块,每一实体区块包括多个实体页面。值得注意的是,每一实体区块以及实体页面具有一个相应逻辑区块以及逻辑页面,其中逻辑区块以及逻辑页面是实体区块以及实体页面所被定义的逻辑地址,用以方便维护快闪存储器180中的数据。在本发明的一实施例中,控制器160可藉由一小数据维护表以及多个大数据区块维护表记录实体页面以及实体区块与逻辑页面以及逻辑区块的关系。值得注意的是,小数据维护表用以维护数据量小于一既定值的写入命令所写入的数据。举例而言,小数据维护表用以维护数据量小于一实体页面大小的数据段,其中小数据维护表用以记录逻辑页面所对应的实体区块以及实体页面,但本发明不限于此。在其他实施例中,既定值一可为两个页面、三个页面、五个页面或者十个页面。大数据区块维护表用以维护连续写入的数据。换言之,大数据区块维护表系用以维护数据量大于一既定值的写入命令所写入的数据。举例而言,大数据区块维护表用以维护数据量大于一实体页面大小的数据段。另外,在本发明的一实施例中,每一大数据区块维护表相应于一个实体区块(逻辑区块),用以记录一个区块内的逻辑页面以及实体页面的映射关系(数据链结)。换言之,每一大数据区块维护表用以记录一个实体区块中的实体页面与所相应的多个逻辑区块中一者中的多个逻辑页面的数据链结关系。因此,在本实施例中,数据储存装置140还包括一实体逻辑区块映射表,用以记录具有大数据区块维护表的逻辑区块以及实体区块的映射关系。换言之,实体逻辑区块映射表用以提供控制器160判断逻辑区块是否具有大数据区块维护表并且映射至哪一个实体区块。值得注意的是,实体逻辑区块映射表、大数据区块维护表及/或小数据维护表可储存于快闪存储器180中,并且控制器160可将实体逻辑区块映射表、大数据区块维护表以及小数据维护表载入动态随机存取器166以进行管理。
图2是本发明的一种实施例的大数据区块维护表以及实体逻辑区块映射表的示意图。如图2所示,图2包括一实体逻辑区块映射表FHT以及多个大数据区块维护表LDT0~LDTN。实体逻辑区块映射表FHT包括多个栏位分别代表多个逻辑区块HB0~HBN,并且栏位中用以记录逻辑区块HB0~HBN所映射(链结)的实体区块FBX0~FBXN。举例而言,当逻辑区块HB0映射至实体区块FB3时,FBX0为FB3,当逻辑区块HB1映射至实体区块FB6时,FBX1为FB6,依此类推。大数据区块维护表LDT0~LDTN用以记录区块中实体页面以及逻辑页面的映射(链结)关系。举例而言,大数据区块维护表LDT0用以记录逻辑区块HB0(实体区块FBX0)中实体页面以及逻辑页面的映射关系,大数据区块维护表LDT1用以记录逻辑区块HB1(实体区块FBX1)中实体页面以及逻辑页面的映射关系,大数据区块维护表LDT2用以记录逻辑区块HB2(实体区块FBX2)中实体页面以及逻辑页面的映射关系,依此类推。大数据区块维护表LDT0~LDTN分别包括多个栏位,栏位分别代表逻辑区块中的逻辑页面HP0~HPM,并且栏位中用以记录逻辑页面HP0~HPM所映射(链结)的实体页面FPY0~FPYM。以大数据区块维护表LDT0为例,大数据区块维护表LDT0用以记录逻辑区块HB0中实体页面以及逻辑页面的映射关系。大数据区块维护表LDT0包括多个栏位,每一栏位分别代表逻辑区块HB0中的逻辑页面HP0~HPM,并且栏位中用以记录逻辑页面HP0~HPM所映射(链结)的实体页面FPY0~FPYM。举例而言,当逻辑页面HP0映射至实体页面FP4时,FPY0为FP4,当逻辑页面HP1映射至实体页面FP6时,FPY0为FP6,依此类推。当控制器160将数据写入一特定逻辑区块的特定逻辑页面时,控制器160自快闪存储器中选取可用的一实体区块以将数据写入该实体区块中的一特定实体页面,将数据写入的实体区块填入实体逻辑区块映射表FHT中该特定逻辑区块的栏位,并且将数据写入的特定实体页面填入相应于该特定逻辑区块的大数据区块维护表中该特定逻辑页面的栏位。举例而言,当控制器160将数据写入一逻辑区块HB2的逻辑页面HP2时,控制器160自快闪存储器中选取可用的一实体区块FB10以将数据写入实体区块FB10中的一实体页面FP14,将数据写入的实体区块FB10填入实体逻辑区块映射表FHT中逻辑区块HB2的栏位,并且将数据写入的实体页面FP14填入相应于逻辑HB2的大数据区块维护表LDT2中逻辑页面HP2的栏位。换言之,在本实施例中,实体逻辑区块映射表FHT中的FBX2为FB10,大数据区块维护表LDT2中的FPY2为FP14。因此,控制器160可在读取数据时,根据实体逻辑区块映射表FHT定位至逻辑区块所映射的实体区块,并且根据大数据区块维护表LDT0~LDTN定位至逻辑页面所映射的实体页面。
然而,由于动态随机存取器166的容量所容纳的大数据区块维护表LDT0~LDTN的数量有限。因此,当大数据区块维护表LDT0~LDTN的数量大于一第一临界数量时,控制器160则选择最旧的大数据区块维护表,以进行整理。第一临界数量可为6、7、8、9、10等等,本发明不限于此。以大数据区块维护表LDT0为例,如第3图所示。在第3图中,大数据区块维护表LDT0所相应的逻辑区块HB0具有12个逻辑页面HP0~HP11。在本实施例中,逻辑页面HP0映射至实体页面FP4、逻辑页面HP1映射至实体页面FP5、逻辑页面HP2映射至实体页面FP3、逻辑页面HP3映射至实体页面FP6、逻辑页面HP4映射至实体页面FP7、逻辑页面HP5映射至实体页面FP2、逻辑页面HP6映射至实体页面FP10、逻辑页面HP7映射至实体页面FP11、逻辑页面HP8映射至实体页面FP0、逻辑页面HP9映射至实体页面FP9、逻辑页面HP10映射至实体页面FP8以及逻辑页面HP11映射至实体页面FP1。控制器160藉由搬移实体页面的数据,以对大数据区块维护表LDT0进行整理。如第3图所示,整理后的实体页面FP0~FP11是依序地映射至逻辑页面HP0~HP11。因此,数据储存装置140则不再需要大数据区块维护表LDT0来定位映射关系,整理后的大数据区块维护表LDT0可被删除。
图4是本发明的一种实施例的小数据维护表的示意图。小数据维护表SDT包括多个栏位,每一栏位包括两个子栏位。当控制器160将数据写入一特定逻辑区块的特定逻辑页面时,控制器160自快闪存储器180选择可用的一特定实体页面,以将数据写入该特定实体页面。接着,控制器160将特定实体页面写入小数据维护表SDT的一栏位中的第一子栏位,并且将特定逻辑区块以及特定逻辑页面写入该栏位的第二子栏位,如图4所示。举例而言,当控制器160将数据写入一逻辑区块HB0的逻辑页面HP3时,控制器160自快闪存储器180选择可用的一实体页面FP120,以将数据写入实体页面FP120。接着,控制器160将实体页面FP120写入小数据维护表SDT的第一栏位中的第一子栏位,并且将逻辑区块HB0以及逻辑页面HP3写入该栏位的第二子栏位。换言之,第一栏位中的FPY0为FP120、HBZ0为HB0并且HPW0为HP3。当控制器160将数据写入一逻辑区块HB5的逻辑页面HP7时,控制器160自快闪存储器180选择可用的一实体页面FP30,以将数据写入实体页面FP30。接着,控制器160将实体页面FP30写入小数据维护表SDT的第二栏位中的第一子栏位,并且将逻辑区块HB5以及逻辑页面HP7写入该栏位的第二子栏位。换言之,第二栏位中的FPY1为FP30、HBZ1为HB5并且HPW1为HP7。当控制器160将数据写入一逻辑区块HB0的逻辑页面HP14时,控制器160自快闪存储器180选择可用的一实体页面FP40,以将数据写入实体页面FP40。接着,控制器160将实体页面FP40写入小数据维护表SDT的第三栏位中的第一子栏位,并且将逻辑区块HB0以及逻辑页面HP14写入该栏位的第二子栏位。换言之,第三栏位中的FPY2为FP40、HBZ2为HB0并且HPW2为HP14,依此类推。
然而,由于动态随机存取器166的容量所容纳的小数据维护表SDT的栏位的数量有限。因此,当小数据维护表SDT的栏位的数量大于一第二临界数量时,控制器160则选择最旧的大数据区块维护表,以进行整理,如图4所示。第二临界数量可为128、130、160等等,本发明不限于此。值得注意的是,一般而言,第一临界数量小于第二临界数量,但本发明不限于此。在图2中,小数据维护表SDT已记录了12笔数据链结于栏位C0~C11。在本实施例中,整理前,栏位C0记录了逻辑区块HB0的逻辑页面HP3映射至实体页面FP4、栏位C1记录了逻辑区块HB2的逻辑页面HP4映射至实体页面FP14、栏位C2记录了逻辑区块HB2的逻辑页面HP1映射至实体页面FP18、栏位C3记录了逻辑区块HB0的逻辑页面HP6映射至实体页面FP3、栏位C4记录了逻辑区块HB2的逻辑页面HP3映射至实体页面FP20、栏位C5记录了逻辑区块HB7的逻辑页面HP0映射至实体页面FP30、栏位C6记录了逻辑区块HB0的逻辑页面HP10映射至实体页面FP2、栏位C7记录了逻辑区块HB2的逻辑页面HP9映射至实体页面FP21、栏位C8记录了逻辑区块HB0的逻辑页面HP4映射至实体页面FP11、栏位C9记录了逻辑区块HB7的逻辑页面HP4映射至实体页面FP31、栏位C10记录了逻辑区块HB7的逻辑页面HP5映射至实体页面FP29、栏位C11记录了逻辑区块HB7的逻辑页面HP2映射至实体页面FP28。控制器160藉由选择一逻辑区块,并且所选择的逻辑区块中的实体页面的数据,以对小数据维护表SDT进行整理。如图4所示,控制器160选择逻辑区块HB0进行整理。具有逻辑区块HB0的数据的栏位为C0、C3、C6、C8。栏位C0、C3、C6、C8中的实体页面已依序地映射至逻辑区块HB0中的逻辑页面HP0~HP11。因此,数据储存装置140则不再需要栏位C0、C3、C6、C8来定位映射关系,整理后的栏位C0、C3、C6、C8可被删除。值得注意的是,在本实施例中,小数据维护表SDT中的实体页面排除实体区块直接编号的,其可经由计算获得所相应的实体区块。举例而言,当每一实体区块具有12个实体页面时,实体页面FP20则为实体区块FB2中的实体区块FP8,依此类推。
综上所述,本发明中的一实施例,利用实体逻辑区块映射表FHT以及大数据区块维护表LDT0~LDTN来维护数据量大于一既定值的数据,并且利用小数据维护表SDT维护数据量小于既定值的数据。值得注意的是,既定值为一个实体页面的长度,但本发明不限于此。另外,大数据区块维护表LDT0~LDTN的优先权大于小数据维护表SDT。
详细而言,控制器160用以接收将一第一数据段写入至少一第一逻辑页面的一写入命令,以将第一数据段写入实体页面中的至少一第一实体页面。接着,控制器160判断第一数据段是否大于既定值,以决定第一数据段属于大数据或者小数据。
当第一数据段的数据量小于既定值时,控制器160判断多个大数据区块维护表LDT0~LDTN中之一者是否相应于第一逻辑页面所属的一第一逻辑区块。在一实施例中,控制器160判断实体逻辑区块映射表FHT中是否具有第一逻辑区块的一映射关系,以判断大数据区块维护表LDT0~LDTN中之一者是否相应于第一逻辑页面所属的第一逻辑区块,但本发明不限于此。当大数据区块维护表LDT0~LDTN中存在相应于第一逻辑区块的一第一大数据区块维护表时,控制器160在第一大数据区块维护表中记录第一逻辑页面以及第一实体页面的映射关系,并且判断一小数据维护表SDT中是否具有第一逻辑页面中的至少一者的至少一第一数据链结。当小数据维护表SDT中具有第一逻辑页面中的至少一者的至少一第一数据链结时,将小数据维护表SDT中的第一数据链结删除。当第一数据段的数据量小于既定值并且当大数据区块维护表LDT0~LDTN中不存在相应于第一逻辑区块的大数据区块维护表时,控制器160在小数据维护表SDT中记录第一逻辑页面以及第一实体页面的映射关系。值得注意的是,当小数据维护表SDT中已具有第一逻辑页面的数据链结时,控制器将原本的数据链结删除,再将第一逻辑页面以及第一实体页面的映射关系的映射关系填入小数据维护表SDT。
当第一数据段的数据量大于既定值时,控制器160还用以判断大数据区块维护表LDT0~LDTN中之一者是否相应于第一逻辑页面所属的第一逻辑区块。在一实施例中,控制器160判断实体逻辑区块映射表FHT中是否具有第一逻辑区块的一映射关系,以判断大数据区块维护表LDT0~LDTN中之一者是否相应于第一逻辑页面所属的第一逻辑区块,但本发明不限于此。当大数据区块维护表LDT0~LDTN中存在相应于第一逻辑区块的第一大数据区块维护表时,控制器160在第一大数据区块维护表中记录第一逻辑页面以及第一实体页面的映射关系并且判断小数据维护表SDT中是否具有第一逻辑页面中的至少一者的至少一第一数据链结。当小数据维护表SDT中具有第一逻辑页面中的至少一者的至少一第一数据链结时,控制器160将小数据维护表SDT中的第一数据链结删除。当第一数据段的数据量大于既定值并且大数据区块维护表LDT0~LDTN中不存在相应于第一逻辑区块的第一大数据区块维护表时,控制器160产生一第一大数据区块维护表以在第一大数据区块维护表中记录第一逻辑页面以及第一实体页面的映射关系并且判断小数据维护表SDT中是否具有第一逻辑页面中的至少一者的至少一第一数据链结。当小数据维护表SDT中具有第一逻辑页面中的至少一者的至少一第一数据链结时,控制器160将小数据维护表SDT中的第一数据链结删除。
图6是本发明的一种实施例的数据维护方法的流程图。数据维护方法适用于图1所示的数据储存装置140。流程开始于步骤S600。
在步骤S600中,控制器160自主机120接收将一第一数据段写入至少一第一逻辑页面的一写入命令,以将第一数据段写入实体页面中的至少一第一实体页面。
接着,在步骤S602中,控制器160判断第一数据段的长度是否大于一既定值,以判断第一数据段属于大数据或者小数据。在本发明的一实施例中,既定值为一个实体页面的长度,但本发明不限于此。当第一数据段的长度大于一既定值时,流程进行至步骤S608;否则,流程进行至步骤S604。
在步骤S604中,控制器160判断大数据区块维护表LDT0~LDTN中是否存在相应于第一逻辑页面所属的一第一逻辑区块的大数据区块维护表。当大数据区块维护表LDT0~LDTN中存在相应于第一逻辑页面所属的第一逻辑区块的大数据区块维护表时,流程进行至步骤S606;否则,流程进行至步骤S618。
在步骤S606中,控制器160在相应于第一逻辑页面所属的第一逻辑区块的大数据区块维护表中记录第一逻辑页面以及第一实体页面的映射关系。
在步骤S608中,控制器160判断大数据区块维护表LDT0~LDTN中是否存在相应于第一逻辑页面所属的第一逻辑区块的大数据区块维护表。当大数据区块维护表LDT0~LDTN中存在相应于第一逻辑页面所属的第一逻辑区块的大数据区块维护表时,流程进行至步骤S612;否则,流程进行至步骤S610。
在步骤S610中,控制器160产生相应于第一逻辑区块的大数据区块维护表,以在相应于第一逻辑区块的大数据区块维护表中记录第一逻辑页面以及第一实体页面的映射关系,并且在实体逻辑区块映射表FHT中记录第一逻辑区块以及第一实体页面所属的一第一实体区块的映射关系。
在步骤S612中,控制器160在相应于第一逻辑区块的大数据区块维护表中记录第一逻辑页面以及第一实体页面的映射关系。
接着,在步骤S614中,控制器160判断小数据维护表SDT中是否具有第一逻辑页面中的至少一者的至少一第一数据链结。当小数据维护表SDT中具有第一逻辑页面中的至少一者的至少一第一数据链结时,流程进行至步骤S612;否则,流程结束于步骤S608。
在步骤S612中,控制器160将小数据维护表SDT中的第一数据链结删除。举例而言,当控制器160自主机120接收将一第一数据段写入第一逻辑区块HB0中的第一逻辑页面HP1~HP10的一写入命令,以将第一数据段写入实体区块FB2中的实体页面FP11~FP20。由于第一数据段需要10个实体页面来储存,故第一数据段属于大数据。因此,控制器160在步骤S610中在实体逻辑区块映射表FHT中记录了第一逻辑区块HB0以及实体区块FB2的映射关系以及在大数据区块维护表LDT0里记录第一逻辑页面HP1~HP10以及第一实体页面FP11~FP20的映射关系,或者在步骤S612中在已存在的大数据区块维护表LDT0里记录第一逻辑页面HP1~HP10以及第一实体页面FP11~FP20的映射关系。接着,假设控制器160在步骤S614中发现小数据维护表SDT中具有第一逻辑页面HP1~HP10中的第一逻辑页面HP2以及HP5的数据链结(栏位)时,控制器160在步骤S616中将小数据维护表SDT中第一逻辑页面HP2以及HP5的数据链结删除。流程结束于步骤S616。在另一实施例中,当控制器160自主机120接收将一第一数据段写入第一逻辑区块HB0中的一第一逻辑页面HP1的一写入命令,以将第一数据段写入实体区块FB2中的实体页面FP11。由于第一数据段需要1个实体页面来储存,故第一数据段属于小数据,并且在步骤S606中在所相应的大数据区块维护表LDT0里记录第一逻辑页面HP1以及第一实体页面FP11的映射关系。接着,假设控制器160在步骤S614中发现小数据维护表SDT中具有第一逻辑页面HP1的数据链结(栏位)时,控制器160在步骤S616中将小数据维护表SDT中第一逻辑页面HP1的数据链结删除。流程结束于步骤S616。
在步骤S618中,控制器160在小数据维护表SDT中记录第一逻辑页面以及第一实体页面的映射关系。值得注意的是,控制器160在将第一逻辑页面以及第一实体页面的映射关系写入数据维护表SDT中的一新栏位后,更用以检查小数据维护表SDT中是否存在其他重复的第一逻辑页面的数据链结。如果,小数据维护表SDT中存在其他重复的第一逻辑页面的数据链结,将重复的旧数据链结删除。流程结束于步骤S618。
本发明所提供的数据储存装置140以及数据维护方法可利用根据数据的长度分别以两种不同的表维护数据的链结关系,使得随机写入的小数据以及连续地写入的大数据分别以有效的方式维持。
本发明的方法,或特定型态或其部份,可以以程序码的型态存在。程序码可储存于实体媒体,如软碟、光碟片、硬碟、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
以上所述,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或申请专利范围不须达成本发明所揭示的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。
Claims (12)
1.一种数据储存装置,包括:
一快闪存储器,包括多个实体区块,每一上述实体区块包括多个实体页面;以及
一控制器,用以接收将一第一数据段写入至少一第一逻辑页面的一写入命令,以将上述第一数据段写入上述实体页面中的至少一第一实体页面,当上述第一数据段的数据量小于一既定值时,判断多个大数据区块维护表中之一者是否相应于上述第一逻辑页面所属的一第一逻辑区块,当上述大数据区块维护表中不存在相应于上述第一逻辑区块的一第一大数据区块维护表时,在一小数据维护表中记录上述第一逻辑页面以及上述第一实体页面的映射关系,以及当上述第一数据段的数据量大于上述既定值时,判断上述大数据区块维护表中之一者是否相应于上述第一逻辑页面所属的上述第一逻辑区块,当上述大数据区块维护表中不存在相应于上述第一逻辑区块的上述第一大数据区块维护表时,产生上述第一大数据区块维护表以在上述第一大数据区块维护表中记录上述第一逻辑页面以及上述第一实体页面的映射关系;
其中,每一上述大数据区块维护表还用以记录一个上述实体区块中的上述实体页面与所相应的多个逻辑区块中一者中的多个逻辑页面的数据链结关系;
上述小数据维护表还用以记录上述逻辑页面所对应的上述实体区块以及上述实体页面。
2.根据权利要求1所述的数据储存装置,其特征在于,上述控制器还用以当上述第一数据段的数据量小于上述既定值并且当上述大数据区块维护表中存在相应于上述第一逻辑区块的上述第一大数据区块维护表时,在上述第一大数据区块维护表中记录上述第一逻辑页面以及上述第一实体页面的映射关系并且判断上述小数据维护表中是否具有上述第一逻辑页面中的至少一者的至少一第一数据链结,当上述小数据维护表中具有上述第一逻辑页面中的至少一者的至少一上述第一数据链结时,将上述小数据维护表中的上述第一数据链结删除。
3.根据权利要求1所述的数据储存装置,其特征在于,上述控制器还用以当上述第一数据段的数据量大于上述既定值并且上述大数据区块维护表中存在相应于上述第一逻辑区块的上述第一大数据区块维护表时,在上述第一大数据区块维护表中记录上述第一逻辑页面以及上述第一实体页面的映射关系并且判断上述小数据维护表中是否具有上述第一逻辑页面中的至少一者的至少一第一数据链结,当上述小数据维护表中具有上述第一逻辑页面中的至少一者的至少一上述第一数据链结时,将上述小数据维护表中的上述第一数据链结删除。
4.根据权利要求1所述的数据储存装置,其特征在于,上述控制器还用以判断上述小数据维护表中是否具有上述第一逻辑页面中的至少一者的至少一第一数据链结,当上述小数据维护表中具有上述第一逻辑页面中的至少一者的至少一上述第一数据链结时,将上述小数据维护表中的上述第一数据链结删除。
5.根据权利要求1所述的数据储存装置,其特征在于,还包括一实体逻辑区块映射表,用以记录具有上述大数据区块维护表的上述逻辑区块以及上述实体区块的映射关系,并且上述控制器还用以判断上述实体逻辑区块映射表中是否具有上述第一逻辑区块的一映射关系,以判断上述大数据区块维护表中之一者是否相应于上述第一逻辑页面所属的上述第一逻辑区块。
6.根据权利要求1所述的数据储存装置,其特征在于,上述既定值为一个上述实体页面的长度。
7.一种数据维护方法,适用于一数据储存装置,其中上述数据储存装置具有多个实体区块,每一上述实体区块包括多个实体页面,上述数据维护方法包括:
接收将一第一数据段写入至少一第一逻辑页面的一写入命令,以将上述第一数据段写入上述实体页面中的至少一第一实体页面;
判断上述第一数据段的长度是否大于一既定值;
当上述第一数据段的数据量小于一既定值时,判断多个大数据区块维护表中之一者是否相应于上述第一逻辑页面所属的一第一逻辑区块;
当上述大数据区块维护表中不存在相应于上述第一逻辑区块的一第一大数据区块维护表时,在一小数据维护表中记录上述第一逻辑页面以及上述第一实体页面的映射关系;
当上述第一数据段的数据量大于上述既定值时,判断上述大数据区块维护表中之一者是否相应于上述第一逻辑页面所属的上述第一逻辑区块;以及
当上述大数据区块维护表中不存在相应于上述第一逻辑区块的上述第一大数据区块维护表时,产生上述第一大数据区块维护表以在上述第一大数据区块维护表中记录上述第一逻辑页面以及上述第一实体页面的映射关系;
其中,每一上述大数据区块维护表还用以记录一个上述实体区块中的上述实体页面与所相应的多个逻辑区块中一者中的多个逻辑页面的数据链结关系;
上述小数据维护表还用以记录上述逻辑页面所对应的上述实体区块以及上述实体页面。
8.根据权利要求7所述的数据维护方法,其特征在于,还包括当上述第一数据段的数据量小于上述既定值并且当上述大数据区块维护表中存在相应于上述第一逻辑区块的上述第一大数据区块维护表时,在上述第一大数据区块维护表中记录上述第一逻辑页面以及上述第一实体页面的映射关系并且判断上述小数据维护表中是否具有上述第一逻辑页面中的至少一者的至少一第一数据链结;以及当上述小数据维护表中具有上述第一逻辑页面中的至少一者的至少一上述第一数据链结时,将上述小数据维护表中的上述第一数据链结删除。
9.根据权利要求7所述的数据维护方法,其特征在于,还包括:
当上述第一数据段的数据量大于上述既定值并且
上述大数据区块维护表中存在相应于上述第一逻辑区块的上述第一大数据区块维护表时,在上述第一大数据区块维护表中记录上述第一逻辑页面以及上述第一实体页面的映射关系并且判断上述小数据维护表中是否具有上述第一逻辑页面中的至少一者的至少一第一数据链结;以及
当上述小数据维护表中具有上述第一逻辑页面中的至少一者的至少一上述第一数据链结时,将上述小数据维护表中的上述第一数据链结删除。
10.根据权利要求7所述的数据维护方法,其特征在于,所述产生上述第一大数据区块维护表以在上述第一大数据区块维护表中记录上述第一逻辑页面以及上述第一实体页面的映射关系的步骤之后还包括:
判断上述小数据维护表中是否具有上述第一逻辑页面中的至少一者的至少一第一数据链结;以及
当上述小数据维护表中具有上述第一逻辑页面中的至少一者的至少一上述第一数据链结时,将上述小数据维护表中的上述第一数据链结删除。
11.根据权利要求7所述的数据维护方法,其特征在于,还包括判断一实体逻辑区块映射表中是否具有上述第一逻辑区块的一映射关系,以判断上述大数据区块维护表中之一者是否相应于上述第一逻辑页面所属的上述第一逻辑区块,其中上述实体逻辑区块映射表,用以记录具有上述大数据区块维护表的上述逻辑区块以及上述实体区块的映射关系。
12.根据权利要求7所述的数据维护方法,其特征在于,上述既定值为一个上述实体页面的长度。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104130400 | 2015-09-15 | ||
TW104130400A TWI559139B (zh) | 2015-09-15 | 2015-09-15 | 資料儲存裝置及其資料維護方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106528436A CN106528436A (zh) | 2017-03-22 |
CN106528436B true CN106528436B (zh) | 2020-03-10 |
Family
ID=57851710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610182612.6A Active CN106528436B (zh) | 2015-09-15 | 2016-03-28 | 数据储存装置及其数据维护方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10528263B2 (zh) |
CN (1) | CN106528436B (zh) |
TW (1) | TWI559139B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107315648B (zh) * | 2017-06-29 | 2020-07-03 | 成都三零嘉微电子有限公司 | 一种提高坏块管理时数据搬移性能的方法 |
CN108062203B (zh) * | 2017-12-15 | 2021-02-26 | 北京兆易创新科技股份有限公司 | 一种闪存数据管理方法、装置及存储器 |
US11052462B2 (en) | 2018-04-24 | 2021-07-06 | Hamilton Sunstrand Corporation | Embedded electronics in metal additive manufacturing builds enabled by low-melting temperature transition zone using material gradients |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104049905A (zh) * | 2013-03-14 | 2014-09-17 | 辉达公司 | 在异构处理器之间迁移不同尺寸的页 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101581859B1 (ko) * | 2009-02-27 | 2016-01-21 | 삼성전자주식회사 | 메모리 시스템 및 그것의 플래시 변환 계층의 데이터 관리 방법 |
US8364931B2 (en) * | 2009-06-29 | 2013-01-29 | Mediatek Inc. | Memory system and mapping methods using a random write page mapping table |
US20110004720A1 (en) * | 2009-07-02 | 2011-01-06 | Chun-Ying Chiang | Method and apparatus for performing full range random writing on a non-volatile memory |
US9274950B2 (en) * | 2009-08-26 | 2016-03-01 | Hewlett Packard Enterprise Development Lp | Data restructuring in multi-level memory hierarchies |
WO2013162589A1 (en) * | 2012-04-27 | 2013-10-31 | Intel Corporation | Migrating tasks between asymmetric computing elements of a multi-core processor |
US9424201B2 (en) * | 2013-03-14 | 2016-08-23 | Nvidia Corporation | Migrating pages of different sizes between heterogeneous processors |
US9830224B2 (en) | 2013-03-15 | 2017-11-28 | Nvidia Corporation | Selective fault stalling for a GPU memory pipeline in a unified virtual memory system |
TW201508484A (zh) * | 2013-08-22 | 2015-03-01 | Acer Inc | 資料寫入方法、硬碟模組以及資料寫入系統 |
-
2015
- 2015-09-15 TW TW104130400A patent/TWI559139B/zh active
-
2016
- 2016-03-28 CN CN201610182612.6A patent/CN106528436B/zh active Active
- 2016-07-20 US US15/215,279 patent/US10528263B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104049905A (zh) * | 2013-03-14 | 2014-09-17 | 辉达公司 | 在异构处理器之间迁移不同尺寸的页 |
Also Published As
Publication number | Publication date |
---|---|
US10528263B2 (en) | 2020-01-07 |
CN106528436A (zh) | 2017-03-22 |
US20170075575A1 (en) | 2017-03-16 |
TW201710901A (zh) | 2017-03-16 |
TWI559139B (zh) | 2016-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10007468B2 (en) | Method and apparatus for erasing data in data section in flash memory | |
CN105224237B (zh) | 一种数据存储方法及装置 | |
CN109388582B (zh) | 数据储存装置以及其数据抹除方法 | |
WO2015145647A1 (ja) | ストレージ装置とデータ処理方法及びストレージシステム | |
US20170364300A1 (en) | Controller, flash memory apparatus, method for identifying data block stability, and method for storing data in flash memory apparatus | |
CN110489357B (zh) | 一种用于可移动存储设备上隐藏数据的方法及系统 | |
US10073771B2 (en) | Data storage method and system thereof | |
CN106528436B (zh) | 数据储存装置及其数据维护方法 | |
US11176033B2 (en) | Data storage devices and data processing methods | |
WO2015114829A1 (ja) | 情報処理装置 | |
CN107766067B (zh) | 一种提升压缩镜像烧录速度的方法、存储介质及计算机 | |
US20170139600A1 (en) | Data storage device and data maintenance method thereof | |
CN104408126B (zh) | 一种数据库的持久化写入方法、装置和系统 | |
CN116795296B (zh) | 一种数据存储方法、存储设备及计算机可读存储介质 | |
US20110107056A1 (en) | Method for determining data correlation and a data processing method for a memory | |
CN107430546A (zh) | 一种文件更新方法及存储设备 | |
US20200192810A1 (en) | Data Storage Devices and Data Processing Methods | |
KR20150142250A (ko) | 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법 | |
CN108334457B (zh) | 一种io处理方法及装置 | |
CN112416811B (zh) | 基于数据关联度的垃圾回收方法、闪存及装置 | |
US10198209B2 (en) | Memory storage recycling | |
CN106155916B (zh) | 数据储存装置以及数据读取方法 | |
KR100479170B1 (ko) | 메모리 억세스 제어장치 및 방법 | |
CN116483280B (zh) | 固件存储方法、固件查找方法、设备及介质 | |
CN112527745B (zh) | 嵌入式文件系统多分区解析方法、终端设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |