CN105426315B - 实体储存对照表维护方法以及使用该方法的装置 - Google Patents
实体储存对照表维护方法以及使用该方法的装置 Download PDFInfo
- Publication number
- CN105426315B CN105426315B CN201410639474.0A CN201410639474A CN105426315B CN 105426315 B CN105426315 B CN 105426315B CN 201410639474 A CN201410639474 A CN 201410639474A CN 105426315 B CN105426315 B CN 105426315B
- Authority
- CN
- China
- Prior art keywords
- mentioned
- data
- group
- storage
- comparisons
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 167
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 46
- 238000012423 maintenance Methods 0.000 claims abstract description 22
- 230000005611 electricity Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 5
- 239000000872 buffer Substances 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 210000000746 body region Anatomy 0.000 description 1
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 238000004242 micellar liquid chromatography Methods 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000004809 thin layer chromatography Methods 0.000 description 1
Classifications
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- 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)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
本发明提出一种实体储存对照表维护方法,由处理单元执行,至少包含下列步骤:驱动存取接口,用以从储存单元中的区块的最后一个页面读取群组对照表,并且储存群组对照表至动态随机存取存储器。依据群组对照表驱动存取接口,用以从储存单元读取多个群组的数据,并且储存群组的数据至动态随机存取存储器中的实体储存对照表的指定位置。每一群组储存一段逻辑区块地址区间的数据实际储存于储存单元中的哪个位置的信息。
Description
技术领域
本发明有关于一种快闪存储器装置,特别是一种实体储存对照表产生方法以及使用该方法的装置。
背景技术
快闪存储器装置通常分为NOR快闪装置与NAND快闪装置。NOR快闪装置为随机存取装置,而可于地址脚位上提供任何的地址,用以存取NOR快闪装置的主装置(host),并及时地由NOR快闪装置的数据脚位上获得储存于该地址上的数据。相反地,NAND快闪装置并非随机存取,而是串行存取。NAND快闪装置无法像NOR快闪装置一样,可以存取任何随机地址,主装置反而需要写入串行的比特组(bytes)的值到NAND快闪装置中,用以定义请求命令(command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(在快闪存储器中的一个写入作业的最小数据块)或一个区块(在快闪存储器中的一个抹除作业的最小数据块)。实际上,为了提升写入的速度,一段连续逻辑位置的数据可能被散布放置于数个实体的储存单元中,并且使用实体储存对应表来指出被写入到实体储存单元中的何处。本发明提出一种实体储存对应表产生方法,用以提升重建速度,以及使用该方法的装置。
发明内容
本发明的实施例提出一种实体储存对照表维护方法,由处理单元执行,至少包含下列步骤:驱动存取接口,用以从储存单元中的区块的最后一个页面读取群组对照表,并且储存群组对照表至动态随机存取存储器。依据群组对照表驱动存取接口,用以从储存单元读取多个群组的数据,并且储存群组的数据至动态随机存取存储器中的实体储存对照表的指定位置。
本发明的实施例提出一种实体储存对照表维护装置,至少包含存取接口与处理单元。存取接口耦接于储存单元。处理单元耦接于上述存取接口,驱动存取接口从储存单元中的区块的最后一个页面读取群组对照表,以及储存群组对照表至动态随机存取存储器。接着,处理单元依据群组对照表驱动存取接口从储存单元读取群组的数据,以及储存上述群组的数据至上述动态随机存取存储器中的实体储存对照表的指定位置。
每一群组储存一段逻辑区块地址区间的数据实际储存于储存单元中的哪个位置的信息。
附图说明
图1是依据本发明实施例的快闪存储器的系统架构示意图。
图2是依据本发明实施例的快闪存储器中的储存单元示意图。
图3是依据本发明实施例的实体储存对照示意图。
图4是依据本发明实施例的实体储存对照表的切分示意图。
图5是依据本发明实施例的更新实体储存对照表的状态图。
图6是依据本发明实施例的执行于数据写入状态中的方法流程图。
图7是依据本发明实施例的执行于实体储存对照表写入状态中的方法流程图。
图8是依据本发明实施例的未储存群组队列示意图。
图9是依据本发明实施例的群组对照表示意图。
图10是依据本发明实施例的执行于实体储存对照表写入状态中的方法流程图。
图11是依据本发明实施例的群组及群组对照表储存示意图。
图12是依据本发明实施例的重建实体储存对照表的方法流程图。
符号说明
10 系统; 110 处理单元;
120 动态随机存取存储器;
150 存取接口; 160 主装置;
170 存取接口; 180 储存单元;
210 存储器单元阵列; 220 行解码单元;
230 列编码单元; 240 地址单元;
250 数据缓存器; 300 实体储存对照表;
310 实体位置信息; 310a 区块编号;
310b 单元编号; 400_0~400_n 群组;
510 闲置状态; 530 数据写入状态;
550 实体储存对照表写入状态;
570 群组对照表写入状态;
S611~S671 方法步骤;
S711~S731 方法步骤;
800 未储存群组队列;
900 群组对照表;
900_0~900_n 储存格;
S1011~S1041 方法步骤;
1100 储存单元中存放实体储存对照表的区块;
S1211~S1241 方法步骤。
具体实施方式
以下说明为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。
必须了解的是,使用于本说明书中的“包含”、“包括””等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。
在权利要求中使用如”第一”、"第二"、"第三"等词用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。
图1是依据本发明实施例的快闪存储器的系统架构示意图。快闪存储器的系统架构10中包含处理单元110,用以写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。详细来说,处理单元110透过存取接口170写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。系统架构10使用数个电子信号来协调处理单元110与储存单元180间的数据与命令传递,包含数据线(data line)、信号时钟信号(clock signal)与控制信号(control signal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片致能(chip enable,CE)、地址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、写入致能(write enable,WE)等控制信号。存取接口170可采用双倍数据率(double data rate,DDR)通讯协定与储存单元180沟通,例如,开放NAND快闪(open NAND flash interface,ONFI)、双倍数据率开关(DDR toggle)或其他接口。处理单元110另可使用存取接口150透过指定通讯协定与主装置160进行沟通,例如,通用串行总线(universal serial bus,USB)、先进技术附着(advanced technology attachment,ATA)、串行先进技术附着(serial advancedtechnology attachment,SATA)、快速周边元件互联(peripheral componentinterconnect express,PCI-E)或其他接口。
图2是依据本发明实施例的快闪存储器中的储存单元示意图。储存单元180可包含由MxN个存储器单元(memory cells)组成的阵列(array)210,而每一个存储器单元储存至少一个比特(bit)的信息。快闪存储器可以是NAND型快闪存储器,或其他种类的快闪存储器。为了正确存取信息,行解码单元220用以选择存储器单元阵列210中指定的行,而列编码单元230用以选择指定行中一定数量的比特组的数据作为输出。地址单元240提供行信息给行解码器220,其中定义了选择存储器单元阵列210中的那些行。相似地,列解码器230则根据地址单元240提供的列信息,选择存储器单元阵列210的指定行中一定数量的列进行读取或写入操作。行可称为为字元线(wordline),列可称为比特线(bitline)。数据缓存器(databuffer)250可储存从存储器单元阵列210读取出的数据,或欲写入存储器单元阵列210中的数据。存储器单元可为单层式单元(single-level cells,SLCs)、多层式单元(multi-levelcells,MLCs)或三层式单元(triple-level cells,TLCs)。
主装置160可透过存取接口150提供逻辑区块地址(LBA,Logical Block Address)给处理单元110,用以指示写入或读取特定区域的数据。然而,为为最佳化数据写入的效率,存取接口170将一段具有连续逻辑区块地址的数据分散地摆放在储存单元180中的不同实体区域。因此,需要于动态随机存取存储器中储存一个实体储存对照表(storage mappingtable,又称为H2F Host-to-Flash表),用以指出每个逻辑区块地址的数据实际储存于储存单元180中的哪个位置。图3是依据本发明实施例的实体储存对照示意图。实体储存对照表300依照逻辑储存地址的顺序,储存每一逻辑储存地址的数据实际储存于储存单元180中的哪个实体位置的信息。逻辑储存地址可以逻辑区块地址(LBA,Logical Block Address)表示,每一个逻辑区块地址对应到一个固定大小的实体储存空间,例如256K、512K或1024K比特组(Bytes)。例如,实体储存对照表300依序储存由LBA0至LBA65535的实体位置信息。固定数目的连续逻辑区块的实体位置信息310可以4个比特组表示,其中的2个比特组310a记录区块编号(block number),而另2个比特组310b记录单元编号(unit number)。例如,此4个比特组可指示连续八个实体区块的起始区块编号以及起始单元编号,而这八个实体区块又可统称为一个主页面(host page)。举例来说,储存对照表300所需要的空间从64M到1G比特组不等。由于NAND快闪装置并非随机存取装置,为了提升写入的效率,主装置160需要提供至少一个逻辑区块的连续性数据,例如512比特组的数据,使得储存装置180可以有效率的方式摆放到储存单元180。当主装置160写入数据到不同的逻辑区块时,例如写入逻辑区块地址LBA0、LBA1000、LBA4500、LBA10000,储存于动态随机存取存储器180中的实体储存对照表300中的相应实体位置信息也要随着更新。为了避免动态随机存取存储器180中储存的实体储存对照表300因断电而消失,需要一种方法有效率地将实体储存对照表300中已更新的实体位置信息写入到储存单元180中。如果每次主装置160写入一个逻辑区块的数据(例如512K比特组)就相应地更新储存单元180中的实体位置信息(例如2比特组),将使得存取接口170因频繁写入而不具效率。所以,于一些实施例中,可将实体储存对照表300切分成n个群组(groups),做为更新至储存单元180的最小单位。第4图是依据本发明实施例的实体储存对照表的切分示意图。实体储存对照表300分为群组400_0至400_n,每一个群组包含4096个逻辑区块的实体位置信息(例如2K比特组)。
图5是依据本发明实施例的更新实体储存对照表的状态图。处理单元110依据不同的触发事件来进入不同的状态,并执行每个状态中所需要的操作。处理单元110初始处于闲置状态(idle state)510,并且在经由存取接口150接收到主装置160所发出的写入命令后进入数据写入状态(data programming state)530。于数据写入状态中,处理单元110执行如下所示的一连串的操作,用以将数据写入储存单元180并更新动态随机存取存储器180中储存的实体储存对照表300。图6是依据本发明实施例的执行于数据写入状态中的方法流程图。处理单元110透过存取接口150取得一或多个逻辑区块地址(LBA)以及待写入的数据后(步骤S611),驱动存取接口170将数据写入到储存单元180中的有效区块(active block)中的单元(unit)(步骤S613)。有效区块以及写入单元分别以区块编号及单元编号表示。接着,更新动态存取存储器180中储存的实体储存对照表300,用以更新取得的逻辑区块地址的实体位置信息(步骤S615),以及更新未储存群组队列(unsaved group queue)(步骤S617)。未储存群组队列可记录于动态存取存储器180中,用以储存实体储存对照表300中的那些群组已经更新但尚未写入储存单元180的信息。假设,实体储存对照表300的群组切分如图4所示。处理单元110将逻辑区块地址LBA0、LBA1000、LBA4500、LBA10000的数据写入至储存单元180,并据以更新动态存取存储器180中实体储存对照表300的逻辑区块地址LBA0、LBA1000、LBA4500、LBA10000的实体位置信息。逻辑区块地址LBA0、LBA1000、LBA4500、LBA10000的实体位置信息分别属于第0个、第0个、第1个及第2个群组。处理单元110会检查未储存群组队列是否包含这些群组编号,如果没有,则将缺少的群组编号加入未储存群组队列。例如,当未储存群组队列只包含第0个、第1个、第8个及第10个群组的编号时,则将第2个群组的编号加入至未储存群组队列。接着,处理单元110判断是否已写入超过指定数目的逻辑区块的数据,例如7680个(步骤S631)。若是,进入实体储存对照表写入状态(Storage-mapping-tableProgramming State)550(步骤S651);否则,回到闲置状态(Idle State)510(步骤S671)。步骤S631的判断可经由检查一个写入计数器完成。此写入计数器可在每写入一个逻辑区块的数据后加一,并且在每次执行完实体储存对照表写入状态550中的处理时重设为0。值得注意的是,经由步骤S631的判断,可于写入指定数目的逻辑区块的数据后再将更新过的群组写入至储存单元180,用以避免如上所述的因频繁写入更新后的实体位置信息而造成存取接口170的使用不具效率的问题。
图7是依据本发明实施例的执行于实体储存对照表写入状态中的方法流程图。此方法流程反复执行一个回圈,直到未储存群组队列中所指示的实体储存对照表300的所有群组都写入储存单元180为止(步骤S711至S721)。图8是依据本发明实施例的未储存群组队列示意图。未储存群组队列800为一个阵列(array),包含多个储存格(cells),每一储存格存放储存实体储存对照表300中的特定群组已经更新但尚未写入储存单元180的信息。例如,”G1”代表实体储存对照表300中的第0个群组;”G8”代表实体储存对照表300中的第8个群组,依此类推。于每一回合的执行中,处理单元110从未储存群组队列800中取得一个群组编号(步骤S711),以及驱动存取接口170将实体储存对照表300中的相应群组写入储存单元(步骤S713)。于此须注意的是,储存单元180会设置一或多个指定的区块来储存实体储存对照表300的数据,例如,区块10至17,并且存取接口170会将此群组的数据写入至一个可用的单元(spare unit)上,而不会覆写掉以前储存的数据。这些群组可依写入时间的先后依序储存。就算于数据写入状态530中仅更新此群组中的一个逻辑区块的实体位置信息,处理单元110还是会将一整个群组中所有的实体位置信息写入储存单元180。接着,处理单元110更新储存于动态随机存取存储器120中的群组对照表(group mapping table,又称为G2FGroup-to-Flash表),用以指出实体储存对照表300中的每个群组的最新数据实际存放于储存单元180中的哪个位置(步骤S715),以及将此群组编号从未储存群组队列中移除(步骤S717)。图9是依据本发明实施例的群组对照表示意图。群组对照表900为一个阵列,依照群组编号的顺序使用多个储存格900_0至900_n来储存每一群组的最新数据实际储存于储存单元180中的哪个实体位置的信息。例如,群组对照900依序储存从群组G0至Gn的实体位置信息。每一个储存格使用2个比特组记录一个单元编号。例如,群组对照900中指出群组G0、G1及G2的最新数据实际存放在第100、200及300个单元上。当一个群组所对应到的所有逻辑区块还没有数据存放于储存单元180,相应的储存格会储存空值(null value),空值可设定为”0xFF”。例如,第9图中以斜线表示的储存格900_3储存空值,表示群组G3所对应到的所有逻辑区块都还没有数据存放于储存单元180。接着,处理单元110判断是否已写入所有群组的数据(步骤S721),若是,回到闲置状态510;否则,回到步骤S711,用以处理下一个未写入的群组。于步骤S721中,当处理单元110发现未储存群组队列为一个空队列时,则判断已写入所有群组的数据。
然而,未写入的群组越多则占用越多时间将动态随机存取存储器120中的数据储存至储存单元180。若处理单元110透过存取接口150由主装置160接收到读取或写入命令,但却碍于正在写入大量的群组数据至储存单元180而无法处理接收的命令,可能会造成接收到的读取或写入命令逾时无时处理。在另一些实施例中,处理单元110可限制群组数据的写入操作不超过一段既定的时间,用以避免如上所述的问题。第10图是依据本发明实施例的执行于实体储存对照表写入状态中的方法流程图。为了让说明书简洁易懂,步骤S1011至S1017、S1031以及S1041的详细内容可分别参考图7中步骤S711至S717、S721以及S731的说明。处理单元110可于进入实体储存对照表写入状态550时,启动一个计时器(timer),而此计时器会在一段时间后逾时(expired),例如35ms(milliseconds)。每回合的群组数据写入后(步骤S1011至S1017),处理单元110更判断是否超过既定的时间(步骤S1021)。若是,不管有没有写完所有的群组数据,强制回到闲置状态(步骤S1041);否则,继续进行步骤S1031的判断。于步骤S1021中,当处理单元110发现计时器已逾时,则判断超过既定的时间。
参考回图5,处理单元110处于闲置状态(idle state)510并且接收到即时待命(standby immediate)命令时,进入群组对照表写入状态(group-mapping-tableprogramming state)570。于群组对照表写入状态中,处理单元110驱动存取接口170将动态随机存取存储器120中的群组对照表900写入至储存单元180。当储存单元180设置一或多个指定的区块来储存实体储存对照表300的数据时,存取接口170从指定区块中取得一页的可用空间来储存群组对照表900。于此须注意的是,群组对照表900接续在已写入群组的数据之后。图11是依据本发明实施例的群组及群组对照表储存示意图。指定来储存实体储存对照表300的数据的区块1100可包含多个页面。假设一个页面包含八个单元;且每个单元可存放一个群组的数据:当实体储存对照表300的数据依群组写入时间的先后顺序摆放在第0至23个单元时,群组对照表900储存于包含第24至31个单元的页面中。第32个单元之后的区域(斜线所示)为尚未被使用的储存空间。
当快闪记忆装置给电时,处理单元110依据储存单元180的群组对照表900以及群组数据,于动态随机存取存储器120中重建如图4所示的实体储存对照表300。图12是依据本发明实施例的重建实体储存对照表的方法流程图。首先,处理单元驱动存取接口170从储存单元180中的指定区块的最后一页读取群组对照表并储存至动态随机存取存储器120(步骤S1211)。接着,反复执行一个回圈(步骤S1213至S1241),用以依据群组对照表的内容读取每一群组的最新数据并储存至动态随机存取存储器120。详细来说,于每一回合中,处理单元110于取得上一个页面的单元编号区间后,如单元编号16至23(步骤S1213),判断是否群组对照表中所储存的单元编号中的至少一者落入取得的单元编号区间(步骤S1221)。若是(步骤S1221中”是”的路径),代表此页面(范围包含步骤S1213所取得的单元编号区间)中储存至少一个群组的最新数据,处理单元110驱动存取接口170读取此页面的数据(步骤S1231),以及将群组对照表900所指示的群组数据储存至动态随机存取存储器的指定位置(步骤S1233)。于此须注意的是,步骤S1221的判断用以避免不必要的页面读取作业,换句话说,当判断群组对照表中所储存的单元编号都没有落入取得的单元编号区间时,则跳过此页的处理。然而,熟悉本技术领域者士亦可省略步骤S1221的判断,直接逐页读出数据后再决定是否更新实体储存对照表300中的内容。以图1为例,假设群组对照表900指示群组G4、G6、G22、G23、G24以及G43的数据分别储存于第22、23、19、20、21、16个单元上:处理单元110从储存单元180读出第2页面的数据后,会将其中的第22、23、19、20、21、16个单元的数据储存至动态随机存取存储器120中配置给群组G4、G6、G22、G23、G24以及G43的位置。最后,处理单元110判断是否已处理完所有的页面(步骤S1241),若是则结束整个实体储存对照表的重建作业;否则,回到步骤S1213用以处理前一个页面的数据。于步骤S1241中,当处理单元110发现目前处理的页面为第0页,则判断已处理完所有的页面。
虽然图1-2中包含了以上描述的元件,但不排除在不违反发明的精神下,使用更多其他的附加元件,已达成更佳的技术效果。此外,虽然图6、7、10和12的流程图采用指定的顺序来执行,但是在不违法发明精神的情况下,熟悉本技术领域者可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,熟悉本技术领域者亦可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或平行地执行更多步骤,本发明亦不因此而局限。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了熟悉本技术领域者显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。
Claims (18)
1.一种实体储存对照表维护方法,由一处理单元执行,包含:
驱动一存取接口,用以从一储存单元中的一区块的最后一个页面读取一群组对照表,其中,上述区块被配置来储存多个群组的数据,每一上述群组储存一段逻辑区块地址区间的数据实际储存于上述储存单元中的哪个位置的信息,上述群组对照表储存上述群组的最新数据存放在上述区块中的哪个单元的信息;
储存上述群组对照表至一动态随机存取存储器;
依据上述群组对照表驱动上述存取接口,用以从上述储存单元读取上述群组的数据;以及
储存上述群组的数据至上述动态随机存取存储器中的一实体储存对照表的指定位置。
2.如权利要求1所述的实体储存对照表维护方法,其特征在于,于储存上述群组对照表至上述动态随机存取存储器的步骤中,还包含:
依据逻辑区块地址的顺序储存上述群组的数据至上述动态随机存取存储器中的上述实体储存对照表。
3.如权利要求1所述的实体储存对照表维护方法,其特征在于,于从上述储存单元读取上述群组的数据的步骤中,还包含:
依据上述群组对照表驱动上述存取接口,用以由后至前逐页面读取上述群组的数据。
4.如权利要求3所述的实体储存对照表维护方法,其特征在于,每一上述页面包含多个群组的数据。
5.如权利要求3所述的实体储存对照表维护方法,其特征在于,于从上述储存单元读取上述群组的数据的步骤中,还包含:
由后至前取得一页面的一单元编号区间;
判断是否上述群组对照表中所储存的单元编号中的至少一者落入上述单元编号区间;
若是,则驱动上述存取接口读取上述页面的数据;以及
否则,跳过上述页面的数据不处理。
6.如权利要求1所述的实体储存对照表维护方法,其特征在于,上述群组对照表依据逻辑区块地址的顺序存储上述群组的数据。
7.如权利要求6所述的实体储存对照表维护方法,其特征在于,上述群组对照表包含多个储存格,上述储存格中的至少一者存放包含一段逻辑区块地址区间的一群组的数据被储存于上述区块中的哪个单元的信息。
8.如权利要求7所述的实体储存对照表维护方法,其特征在于,上述储存格中的至少一者存放空值,用以指出一群组中的所有逻辑区块都还没数据存放于上述储存单元。
9.如权利要求1所述的实体储存对照表维护方法,其特征在于,上述方法于一快闪记忆装置给电时执行,并且上述快闪记忆装置包含上述处理单元以及上述存取接口。
10.一种实体储存对照表维护装置,包含:
一存取接口,耦接于一储存单元;以及
一处理单元,耦接于上述存取接口,驱动上述存取接口,用以从上述储存单元中的一区块的最后一个页面读取一群组对照表,其中,上述区块被配置来储存多个群组的数据,每一上述群组储存一段逻辑区块地址区间的数据实际储存于上述储存单元中的哪个位置的信息,上述群组对照表储存上述群组的最新数据存放在上述区块中的哪个单元的信息;储存上述群组对照表至一动态随机存取存储器;依据上述群组对照表驱动上述存取接口,用以从上述储存单元读取上述群组的数据;以及储存上述群组的数据至上述动态随机存取存储器中的一实体储存对照表的指定位置。
11.如权利要求10所述的实体储存对照表维护装置,其特征在于,上述处理单元还依据逻辑区块地址的顺序储存上述群组的数据至上述动态随机存取存储器中的上述实体储存对照表。
12.如权利要求10所述的实体储存对照表维护装置,其特征在于,上述处理单元还依据上述群组对照表驱动上述存取接口,用以由后至前逐页面读取上述群组的数据。
13.如权利要求12所述的实体储存对照表维护装置,其特征在于,每一上述页面包含多个群组的数据。
14.如权利要求12所述的实体储存对照表维护装置,其特征在于,上述处理单元还由后至前取得一页面的一单元编号区间;判断是否上述群组对照表中所储存的单元编号中的至少一者落入上述单元编号区间;若是,则驱动上述存取接口读取上述页面的数据;以及,否则,跳过上述页面的数据不处理。
15.如权利要求10所述的实体储存对照表维护装置,其特征在于,上述群组对照表依据逻辑区块地址的顺序摆放上述群组的数据。
16.如权利要求15所述的实体储存对照表维护装置,其特征在于,上述群组对照表包含多个储存格,上述储存格中的至少一者存放包含一段逻辑区块地址区间的一群组的数据被储存于上述区块中的哪个单元的信息。
17.如权利要求16所述的实体储存对照表维护装置,其特征在于,上述储存格中的至少一者存放空值,用以指出一群组中的所有逻辑区块都还没数据存放于上述储存单元。
18.如权利要求10所述的实体储存对照表维护装置,其特征在于,上述处理单元于给电时重建上述动态随机存取存储器中的上述实体储存对照表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103130202 | 2014-09-02 | ||
TW103130202A TWI512467B (zh) | 2014-09-02 | 2014-09-02 | 實體儲存對照表維護方法以及使用該方法的裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105426315A CN105426315A (zh) | 2016-03-23 |
CN105426315B true CN105426315B (zh) | 2018-05-15 |
Family
ID=55402654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410639474.0A Active CN105426315B (zh) | 2014-09-02 | 2014-11-13 | 实体储存对照表维护方法以及使用该方法的装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9846643B2 (zh) |
CN (1) | CN105426315B (zh) |
TW (1) | TWI512467B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101593161B1 (ko) * | 2014-10-02 | 2016-02-15 | 한국전자통신연구원 | 메모리 관리 장치 및 방법 |
TWI545433B (zh) * | 2015-03-04 | 2016-08-11 | 慧榮科技股份有限公司 | 實體儲存對照表維護方法以及使用該方法的裝置 |
CN107544913B (zh) * | 2016-06-29 | 2021-09-28 | 北京忆恒创源科技股份有限公司 | 一种ftl表快速重建方法与装置 |
TWI601011B (zh) | 2016-07-05 | 2017-10-01 | 慧榮科技股份有限公司 | 偵測使用中邏輯頁面之資料儲存裝置與資料儲存方法 |
CN107918571B (zh) * | 2016-10-08 | 2021-04-30 | 上海宝存信息科技有限公司 | 测试储存单元的方法以及使用该方法的装置 |
TW201818248A (zh) * | 2016-11-15 | 2018-05-16 | 慧榮科技股份有限公司 | 可應用於資料儲存裝置之記憶體管理方法 |
CN108959108B (zh) | 2017-05-26 | 2021-08-24 | 上海宝存信息科技有限公司 | 固态硬盘访问方法以及使用该方法的装置 |
US10395750B2 (en) * | 2017-10-05 | 2019-08-27 | Dell Products, Lp | System and method for post-package repair across DRAM banks and bank groups |
TWI647566B (zh) * | 2018-01-19 | 2019-01-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
CN115509961A (zh) * | 2018-06-25 | 2022-12-23 | 慧荣科技股份有限公司 | 实体存储对照表产生装置及方法 |
CN111324549B (zh) * | 2018-12-14 | 2022-07-01 | 北京兆易创新科技股份有限公司 | 一种存储器及其控制方法和装置 |
US11288185B2 (en) * | 2019-01-03 | 2022-03-29 | Silicon Motion, Inc. | Method and computer program product for performing data writes into a flash memory |
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 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681314A (zh) * | 2008-03-01 | 2010-03-24 | 株式会社东芝 | 存储器系统 |
CN103064641A (zh) * | 2013-02-05 | 2013-04-24 | 威盛电子股份有限公司 | 非易失性存储装置及其操作方法 |
CN103455437A (zh) * | 2012-05-30 | 2013-12-18 | 慧荣科技股份有限公司 | 数据储存装置与数据储存装置操作方法 |
CN103677667A (zh) * | 2012-09-20 | 2014-03-26 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7346623B2 (en) | 2001-09-28 | 2008-03-18 | Commvault Systems, Inc. | System and method for generating and managing quick recovery volumes |
JP4662548B2 (ja) | 2005-09-27 | 2011-03-30 | 株式会社日立製作所 | スナップショット管理装置及び方法並びにストレージシステム |
KR100885181B1 (ko) * | 2007-02-06 | 2009-02-23 | 삼성전자주식회사 | 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법 |
US8443263B2 (en) * | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
US8341340B2 (en) * | 2010-07-21 | 2012-12-25 | Seagate Technology Llc | Multi-tier address mapping in flash memory |
US8990502B2 (en) * | 2010-11-23 | 2015-03-24 | International Business Machines Corporation | Write cache structure in a storage system |
TWI448891B (zh) * | 2012-09-06 | 2014-08-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
US8954656B2 (en) * | 2012-12-20 | 2015-02-10 | Sandisk Technologies Inc. | Method and system for reducing mapping table size in a storage device |
US20160011790A1 (en) * | 2014-07-14 | 2016-01-14 | Sandisk Technologies Inc. | Systems and methods to enable access to a host memory associated with a unified memory architecture (uma) |
-
2014
- 2014-09-02 TW TW103130202A patent/TWI512467B/zh active
- 2014-11-13 CN CN201410639474.0A patent/CN105426315B/zh active Active
-
2015
- 2015-06-12 US US14/738,500 patent/US9846643B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681314A (zh) * | 2008-03-01 | 2010-03-24 | 株式会社东芝 | 存储器系统 |
CN103455437A (zh) * | 2012-05-30 | 2013-12-18 | 慧荣科技股份有限公司 | 数据储存装置与数据储存装置操作方法 |
CN103677667A (zh) * | 2012-09-20 | 2014-03-26 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN103064641A (zh) * | 2013-02-05 | 2013-04-24 | 威盛电子股份有限公司 | 非易失性存储装置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20160062908A1 (en) | 2016-03-03 |
TWI512467B (zh) | 2015-12-11 |
CN105426315A (zh) | 2016-03-23 |
TW201610676A (zh) | 2016-03-16 |
US9846643B2 (en) | 2017-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105426315B (zh) | 实体储存对照表维护方法以及使用该方法的装置 | |
DE102011086098B4 (de) | Parallele Speicherlese- und Speicherschreib-Operationen in einem Speicher mit serieller Schnittstelle | |
CN105893275B (zh) | 缓存及读取即将写入储存单元的数据的方法以及使用该方法的装置 | |
US8144515B2 (en) | Interleaved flash storage system and method | |
CN110908926B (zh) | 数据储存装置及逻辑至物理地址映射表的写入方法 | |
US8438361B2 (en) | Logical block storage in a storage device | |
CN101154190B (zh) | 映射信息管理设备和方法 | |
US8386699B2 (en) | Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same | |
CN105528299B (zh) | 读取命令排程方法以及使用该方法的装置 | |
CN106598479A (zh) | 闪速存储器的故障安全擦除的方法和装置 | |
CN103946923A (zh) | 闪存系统 | |
CN106201329B (zh) | 循环区块模式下的数据存取方法以及使用该方法的装置 | |
CN106775440A (zh) | 数据储存装置与数据储存方法 | |
US20130173847A1 (en) | Metablock Size Reduction Using on Chip Page Swapping Between Planes | |
CN106033323B (zh) | 读取快闪存储器中储存单元的方法以及使用该方法的装置 | |
CN108628543A (zh) | 垃圾回收方法以及使用该方法的装置 | |
CN106484315B (zh) | 读取及写入命令排程方法以及使用该方法的装置 | |
TWI545433B (zh) | 實體儲存對照表維護方法以及使用該方法的裝置 | |
CN107291377A (zh) | 数据储存装置及其数据维护方法 | |
US20130326120A1 (en) | Data storage device and operating method for flash memory | |
US10846214B2 (en) | Nonvolatile memory system and method of operating the same | |
US7345914B2 (en) | Use of flash memory blocks outside of the main flash memory array | |
US10394486B2 (en) | Methods for garbage collection in a flash memory and apparatuses using the same | |
CN109918020A (zh) | 存储器系统及其操作方法 | |
US10387076B2 (en) | Methods for scheduling data-programming tasks and apparatuses using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |