CN104281535B - 一种映射表在内存中的处理方法和装置 - Google Patents
一种映射表在内存中的处理方法和装置 Download PDFInfo
- Publication number
- CN104281535B CN104281535B CN201410494461.9A CN201410494461A CN104281535B CN 104281535 B CN104281535 B CN 104281535B CN 201410494461 A CN201410494461 A CN 201410494461A CN 104281535 B CN104281535 B CN 104281535B
- Authority
- CN
- China
- Prior art keywords
- sub
- lot
- storage space
- mapping table
- mark
- 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
Landscapes
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种映射表在内存中的处理方法和装置,所述的方法包括:判断目标子映射表是否存在于所述子存储空间Slot中;若所述目标子映射表不存在于所述子存储空间Slot中,则判断是否存在为空状态标识的子存储空间Slot;若存在为空状态标识的子存储空间Slot,则将所述目标子映射表添加至所述为空状态标识的子存储空间Slot中;将所述子存储空间Slot的状态标识更新为非空状态标识。本发明实施例用以减少映射表在内存中的转换次数,减少数据的读写操作,缩短读写延迟。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种映射表在内存中的处理方法和一种映射表在内存中的处理装置。
背景技术
在eMMC(Embedded Multi Media Card,嵌入式多媒体卡)、闪存NAND等产品中的FTL(Flash Translation Layer,闪存转换层),是一种与操作系统间对话的介质,由于存在FTL,因此操作系统可将闪存等产品作为一个磁盘驱动器,在闪存等产品上建立多个虚拟的数据块或者扇区用以存储及管理数据。
目前对于FTL而言存在的问题是,当需要将FTL中的映射表读取到操作系统的RAM(Random Access Memory,随机存储器/内存)中时,有时会出现映射表太大而不能全部加载到内存中的问题。故在内存运行时只能加载将映射表的一部分加载到内存中,当需要映射表的其他部分时再进行转换,这种转换的做法称为“动态加载映射表”。
参照图1所示的一种实现动态加载映射表的常用方法的示意图,其进行动态加载映射表的具体步骤是:将映射表分成多个相等的部分Mapping table Part_1,Mappingtable Part_2……Mapping table Part_m……Mapping table Part_n,只在运行时将映射表的一部分加载到内存中,例如只加载Mapping table Part_m到内存中,当在数据的读写过程中需要映射表的其他部分时,比如需要Mapping table Part_n,需要先将Mappingtable Part_m保存到闪存NAND,再将Mapping table Part_n加载到内存中。这种常用方法的缺点是,每次进行映射表的转换需要进行额外的数据读写的过程,导致较大的读写延迟。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提出一种映射表在内存中的处理方法和装置,用以减少映射表在内存中的转换次数,减少数据的读写操作,缩短读写延迟。
发明内容
本发明实施例所要解决的技术问题是提供一种映射表在内存中的处理方法,用以减少映射表在内存中的转换次数,减少数据的读写操作,缩短读写延迟。
相应的,本发明实施例还提供了一种映射表在内存中的处理装置,用以保证上述方法的实现及应用。
为了解决上述问题,本发明公开了一种映射表在内存中的处理方法,所述映射表包括两个或者两个以上的子映射表;所述内存的存储空间包括两个或者两个以上的子存储空间Slot,所述子存储空间Slot具有对应的状态标识,所述状态标识包括空状态标识和非空状态标识;所述的方法包括:
判断目标子映射表是否存在于所述子存储空间Slot中;
若所述目标子映射表不存在于所述子存储空间Slot中,则判断是否存在为空状态标识的子存储空间Slot;
若存在为空状态标识的子存储空间Slot,则将所述目标子映射表添加至所述为空状态标识的子存储空间Slot中;
将所述子存储空间Slot的状态标识更新为非空状态标识。
优选地,所述内存中存储有所述子存储空间Slot的访问队列;所述内存与闪存NAND互相通信;所述判断是否存在为空状态标识的子存储空间Slot的步骤之后,还包括:
若不存在为空状态标识的子存储空间Slot,则依据所述访问队列将为非空状态标识的子存储空间Slot中的子映射表保存至闪存NAND中;
将所述子存储空间Slot的状态标识更新为空状态标识。
优选地,所述依据访问队列将为非空状态标识的子存储空间Slot中的子映射表保存至闪存NAND中的步骤包括:
获取处于所述访问队列的队尾的为非空状态标识的子存储空间Slot;
将所述子存储空间Slot中的子映射表保存至闪存NAND。
优选地,所述方法还包括:
当所述内存处于空闲状态时,判断是否存在为空状态标识的子存储空间Slot。
优选地,在所述将新的映射表添加至为空状态标识的子存储空间Slot的步骤之后,还包括:
更新所述子存储空间Slot访问队列。
本发明实施例还公开了一种映射表在内存中的处理装置,所述映射表包括两个或者两个以上的子映射表;所述内存的存储空间包括两个或者两个以上的子存储空间Slot,所述子存储空间Slot具有对应的状态标识,所述状态标识包括空状态标识和非空状态标识;所述的装置包括:
第一判断模块,用于判断目标子映射表是否存在于所述子存储空间Slot中;若所述目标子映射表不存在于所述子存储空间Slot中,则调用第二模块;
第二判断模块,用于判断是否存在为空状态标识的子存储空间Slot;若存在为空状态标识的子存储空间Slot,则调用添加模块;
添加模块,用于将所述目标子映射表添加至所述为空状态标识的子存储空间Slot中;
第一更新模块,用于将所述子存储空间Slot的状态标识更新为非空状态标识。
优选地,所述内存中存储有所述子存储空间Slot的访问队列;所述内存与闪存NAND互相通信;所述装置还包括:
保存模块,用于若不存在为空状态标识的子存储空间Slot,则依据所述访问队列将为非空状态标识的子存储空间Slot中的子映射表保存至闪存NAND中;
第二更新模块,用于将所述子存储空间Slot的状态标识更新为空状态标识。
优选地,所述保存模块包括:
子存储空间Slot获取子模块,用于获取处于所述访问队列的队尾的为非空状态标识的子存储空间Slot;
子映射表保存子模块,用于将所述子存储空间Slot中的子映射表保存至闪存NAND中。
优选地,所述装置还包括:
空闲判断模块,用于当所述内存处于空闲状态时,判断是否存在为空状态标识的子存储空间Slot。
优选地,所述装置还包括:
访问队列更新模块,用于更新所述子存储空间Slot访问队列。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例在内存中分配有一部分存储空间,该存储空间又分为多个子存储空间Slot,用于存放特定格式的数据。在进行读写数据的过程,如果发现目标子映射表不存在于子存储空间Slot中,则需要将该目标子映射表添加到为非空状态标识的子存储空间Slot中。由于在内存中分配有多个子存储空间Slot,故只需要将目标子映射表添加到没有子映射表的子存储空间Slot即可,可以减少不必要的读写操作,减少映射表的转换次数,提高内存处理性能。
此外,本发明实施例还在空闲状态时监测所有子存储空间Slot的状态,全部子存储空间Slot的状态用访问队列来记录子存储空间Slot的存取情况。如果发现全部子存储空间Slot都存有子映射表,则可以将处于访问队列尾部的子存储空间Slot,即长时间没有进行存取操作的子存储空间Slot中的子映射表保存到闪存NAND中,从而空出子存储空间Slot来添加的目标子映射表,缩短读写延迟。
附图说明
图1是本发明的一种实现动态加载映射表的常用方法的示意图;
图2是本发明的一种映射表在内存中的处理方法实施例1的步骤流程图;
图3是本发明的一种将目标子映射表添加到内存前的示意图;
图4是本发明的一种将目标子映射表添加到内存后的示意图;
图5是本发明的一种映射表在内存中的处理方法实施例2的步骤流程图;
图6是本发明的一种将子映射表存储到闪存NAND前的示意图;
图7是本发明的一种将子映射表存储到闪存NAND后的示意图;
图8是本发明的一种映射表在内存中的处理装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一:
参照图2,示出了本发明的一种映射表在内存中的处理方法实施例1的步骤流程图,所述映射表可以包括两个或者两个以上的子映射表;所述内存的存储空间可以包括两个或者两个以上的子存储空间Slot,所述子存储空间Slot可以具有对应的状态标识,所述状态标识可以包括空状态标识和非空状态标识;
在具体实现中,映射表被分成多个相等的子映射表,比如Mapping table part_1,Mapping table part_2,Mapping table part_3……。在内存中分配出一部分的存储空间,并划分成很多块的子存储空间,每一块的子存储空间都可以用来存放特定格式的数据,比如映射表。可以将这种子存储空间形象地称为一个槽(Slot),就像在音箱中的每个槽可以存放一张光盘一样,在本发明实施例中,每个槽可以存放一个映射表数据。
所述子存储空间Slot设置有对应的状态标识,用以表明其存储状态。具体可以包括空状态标识和非空状态标识。其中,空状态标识用以表示其对应的存储空间Slot中当前没有存放有子映射表,非空状态标识则用以其对应的存储空间Slot中当前存放有子映射表。
所述方法具体可以包括如下步骤:
步骤201,判断目标子映射表是否存在于所述子存储空间Slot中;若所述目标子映射表不存在于所述子存储空间Slot中,则执行步骤202;
步骤202,判断是否存在为空状态标识的子存储空间Slot;若存在为空状态标识的子存储空间Slot,则执行步骤203;
步骤203,将所述目标子映射表添加至所述为空状态标识的子存储空间Slot中;
在本发明实施例中,在用户读写数据的过程中,如果当前所需的目标子映射表不存在于内存中,即不存在于某个子存储空间Slot中时,则需要将目标子映射表添加到内存中的某一为空状态标识的子存储空间Slot,即当前没有存放有子映射表的子存储空间Slot中。此时如果判断存在为空状态标识的子存储空间Slot,则可以将目标子映射表加入到为空状态标识的子存储空间Slot中,以保证用户读写数据的正常运行。
步骤204,将所述子存储空间Slot的状态标识更新为非空状态标识。
当将目标子映射表加入到子存储空间Slot中后,由于该子存储空间Slot中已经存放了子映射表,此时还应该将该子存储空间Slot的状态标识从空状态标识修改为非空状态标识,由此来说明该子存储空间Slot已经存放了子映射表。
为了使本领域技术人员更好地理解本发明实施例,可参照图3所示的本发明的一种将目标子映射表添加到内存前的示意图,在图中NAND(闪存)与RAM(内存)互相通信,在NAND中包括有映射表的子映射表Mapping table Part_1,Mapping table Part_2,Mappingtable Part_3,Mapping table Part_4,Mapping table Part_5,……,在RAM中划分有多个子存储空间Slot 0,Slot 1,Slot 2,Slot 3,其中,在Slot 0中存储了Mapping tablePart_1,因此子存储空间Slot 0,Slot 1,Slot 2,Slot 3分别对应的状态为Non-empty(非空状态),empty(空状态),empty(空状态),empty(空状态)。
参照图4所示的本发明的一种将目标子映射表添加到内存后的示意图,在用户读写数据的过程中,如果当前所需的目标子映射表Mapping table Part_3不存在于内存中,则需要将Mapping table Part_3加入到内存中为empty的子存储空间中,当将Mappingtable Part_3加入到内存中为empty的Slot 1后,则需要将Slot 1的状态修改为Non-empty(非空状态)。
本发明实施例在内存中分配有一部分存储空间,该存储空间又分为多个子存储空间Slot,用于存放特定格式的数据(例如映射表)。在进行读写数据的过程,如果发现目标子映射表不存在于子存储空间Slot中,则需要将该目标子映射表添加到为非空状态标识的子存储空间Slot中。由于在内存中分配有多个子存储空间Slot,故只需要将目标子映射表添加到没有子映射表的子存储空间Slot即可,可以减少不必要的读写操作,减少映射表的转换次数,提高内存处理性能。
实施例二:
参照图5,示出了本发明的一种映射表在内存中的处理方法实施例2的步骤流程图,所述映射表可以包括两个或者两个以上的子映射表;所述内存的存储空间可以包括两个或者两个以上的子存储空间Slot,所述子存储空间Slot可以具有对应的状态标识,所述状态标识可以包括空状态标识和非空状态标识;所述内存中可以存储有所述子存储空间Slot的访问队列;所述内存可以与闪存NAND互相通信;具体可以包括如下步骤:
步骤401,判断目标子映射表是否存在于所述子存储空间Slot中;若所述目标子映射表不存在于所述子存储空间Slot中,则执行步骤402;若所述目标子映射表存在于所述子存储空间Slot中,则执行步骤407;
在本发明的一种优选实施例中,所述方法还可以包括如下步骤:
步骤S11,当所述内存处于空闲状态时,判断是否存在为空状态标识的子存储空间Slot。
在本发明实施例中,内存中存储有所述子存储空间Slot的访问队列。本发明示例可以在空闲状态时监测所有子存储空间Slot的状态,全部子存储空间Slot的状态用访问队列来记录子存储空间Slot的存取情况。如果发现全部子存储空间Slot都存有子映射表,则可以将处于访问队列尾部的子存储空间Slot,即长时间没有进行存取操作的子存储空间Slot中的子映射表保存到闪存NAND中,从而空出子存储空间Slot来添加的目标子映射表,避免有时需要添加目标子映射表时没有存在为空状态的子存储空间Slot,还需要进一步清空某一子存储空间Slot所需的时间,缩短读写延迟。
参照图6所示的本发明的一种将子映射表存储到闪存NAND前的示意图,当处于空闲状态时,检测内存中子存储空间Slot的状态。假设在RAM中的子存储空间Slot 0,Slot 1,Slot 2,Slot 3中分别存储了Mapping table Part_1,Mapping table Part_3,Mappingtable Part_4,Mapping table Part_5,则子存储空间Slot 0,Slot 1,Slot 2,Slot 3分别对应的状态为Non-empty(非空状态)。
参照图7所示的本发明的一种将子映射表存储到闪存NAND后的示意图,当处于空闲状态时,检测到所有的子存储空间Slot的状态,发现子存储空间Slot 0,Slot 1,Slot 2,Slot 3分别对应的状态为Non-empty,为了避免当需要将目标子映射表时,没有为空的子存储空间Slot来存放,此时可以将处于访问队列队尾的,即长时间没有进行存储操作的子存储空间Slot的子映射表保存到NAND中。在本示例中,由于Slot 0处于访问队列队尾,故可以将其从访问队列中移除,并且将Slot 0中的Mapping table Part_1保存到NAND中。
当然,在实际应用中,还可以设定将超过预设时间没有被访问的子存储空间Slot从访问队列中移除,本发明实施例对此不加以限制。
需要说明的是,在用户读写数据的过程中,还以在需要将目标子映射表添加到内存中的子存储空间Slot时,才判断是否为空状态标识的子存储空间Slot,本发明实施例同样对此不加以限制。
步骤402,判断是否存在为空状态标识的子存储空间Slot;若存在为空状态标识的子存储空间Slot,则执行步骤405;若不存在为空状态标识的子存储空间Slot,则执行步骤403;
步骤403,依据所述访问队列将为非空状态标识的子存储空间Slot中的子映射表保存至闪存NAND中;
需要说明的,也可以将映射表保存在除闪存NAND的其他存储器中,本发明实施例对此不加以限制。
在本发明的一种优选实施例中,所述步骤403可以包括如下子步骤:
子步骤S21,获取处于所述访问队列的队尾的为非空状态标识的子存储空间Slot;
子步骤S22,将所述子存储空间Slot中的子映射表保存至闪存NAND。
步骤404,将所述子存储空间Slot的状态标识更新为空状态标识;
步骤405,将所述目标子映射表添加至所述为空状态标识的子存储空间Slot中;
步骤406,将所述子存储空间Slot的状态标识更新为非空状态标识;
步骤407,更新所述子存储空间Slot访问队列。
在具体实现中,将目标子映射表加入到子存储空间Slot中,或者当前访问的是已经存储有目标子映射表子存储空间Slot后,由于访问的子存储空间Slot已经发生了变化,故需要更新内存中的子存储空间Slot访问队列,将此时存储目标子映射表的子存储空间Slot的在访问队列中修改为第一位。
以图4为例,在RAM中存储有记录子存储空间Slot访问顺序的访问队列。由于此时访问的子存储空间Slot已经更改为Slot 1,故还需要在内存中将存储Mapping tablePart_3的Slot 1的在访问队列中修改为第一位。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例三:
参照图8,示出了本发明一种映射表在内存中的处理装置实施例的结构框图,所述映射表可以包括两个或者两个以上的子映射表;所述内存的存储空间可以包括两个或者两个以上的子存储空间Slot,所述子存储空间Slot可以具有对应的状态标识,所述状态标识可以包括空状态标识和非空状态标识;具体可以包括如下模块:
第一判断模块601,用于判断目标子映射表是否存在于所述子存储空间Slot中;若所述目标子映射表不存在于所述子存储空间Slot中,则调用第二模块;
第二判断模块602,用于判断是否存在为空状态标识的子存储空间Slot;若存在为空状态标识的子存储空间Slot,则调用添加模块;
在本发明的一种优选实施例中,所述内存中可以存储有所述子存储空间Slot的访问队列;所述内存可以与闪存NAND互相通信;所述装置还可以包括如下模块:
保存模块,用于若不存在为空状态标识的子存储空间Slot,则依据所述访问队列将为非空状态标识的子存储空间Slot中的子映射表保存至闪存NAND中;
第二更新模块,用于将所述子存储空间Slot的状态标识更新为空状态标识。
添加模块603,用于将所述目标子映射表添加至所述为空状态标识的子存储空间Slot中;
第一更新模块604,用于将所述子存储空间Slot的状态标识更新为非空状态标识。
在本发明的一种优选实施例中,所述保存模块可以包括如下子模块:
子存储空间Slot获取子模块,用于获取处于所述访问队列的队尾的为非空状态标识的子存储空间Slot;
子映射表保存子模块,用于将所述子存储空间Slot中的子映射表保存至闪存NAND中。
在本发明的一种优选实施例中,所述装置还包括如下模块:
空闲判断模块,用于当所述内存处于空闲状态时,判断是否存在为空状态标识的子存储空间Slot。
在本发明的一种优选实施例中,所述装置还包括如下模块:
访问队列更新模块,用于更新所述子存储空间Slot访问队列。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种映射表在内存中的处理方法和一种映射表在内存中的处理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种映射表在内存中的处理方法,其特征在于,所述映射表包括两个或者两个以上的子映射表;所述内存的存储空间包括两个或者两个以上的子存储空间Slot,所述子存储空间Slot具有对应的状态标识,所述状态标识包括空状态标识和非空状态标识;所述的方法包括:
判断目标子映射表是否存在于所述子存储空间Slot中;
若所述目标子映射表不存在于所述子存储空间Slot中,则判断是否存在为空状态标识的子存储空间Slot;
若存在为空状态标识的子存储空间Slot,则将所述目标子映射表添加至所述为空状态标识的子存储空间Slot中;
将所述子存储空间Slot的状态标识更新为非空状态标识;
当所述内存处于空闲状态时,判断是否存在为空状态标识的子存储空间Slot;
所述当所述内存处于空闲状态时,判断是否存在为空状态标识的子存储空间Slot,还包括:
在空闲状态时监测所有子存储空间Slot的状态,全部子存储空间Slot的状态用访问队列来记录子存储空间Slot的存取情况,如果发现全部子存储空间Slot都存有子映射表,则可以将处于访问队列尾部的子存储空间Slot中的子映射表保存到闪存NAND中。
2.根据权利要求1 所述的方法, 还包括,其特征在于,所述内存中存储有所述子存储空间Slot的访问队列;所述内存与闪存NAND互相通信;所述判断是否存在为空状态标识的子存储空间Slot的步骤之后,还包括:
若不存在为空状态标识的子存储空间Slot,则依据所述访问队列将为非空状态标识的子存储空间Slot中的子映射表保存至闪存NAND中;
将所述子存储空间Slot的状态标识更新为空状态标识。
3.根据权利要求2所述的方法,其特征在于,所述依据访问队列将为非空状态标识的子存储空间Slot中的子映射表保存至闪存NAND中的步骤包括:
获取处于所述访问队列的队尾的为非空状态标识的子存储空间Slot;
将所述子存储空间Slot中的子映射表保存至闪存NAND。
4.根据权利要求1或2所述的方法,其特征在于,在所述将新的映射表添加至为空状态标识的子存储空间Slot的步骤之后,还包括:
更新所述子存储空间Slot访问队列。
5.一种映射表在内存中的处理装置,其特征在于,所述映射表包括两个或者两个以上的子映射表;所述内存的存储空间包括两个或者两个以上的子存储空间Slot,所述子存储空间Slot具有对应的状态标识,所述状态标识包括空状态标识和非空状态标识;所述的装置包括:
第一判断模块,用于判断目标子映射表是否存在于所述子存储空间Slot中;若所述目标子映射表不存在于所述子存储空间Slot中,则调用第二模块;
第二判断模块,用于判断是否存在为空状态标识的子存储空间Slot;若存在为空状态标识的子存储空间Slot,则调用添加模块;
添加模块,用于将所述目标子映射表添加至所述为空状态标识的子存储空间Slot中;
第一更新模块,用于将所述子存储空间Slot的状态标识更新为非空状态标识;
空闲判断模块,用于当所述内存处于空闲状态时,判断是否存在为空状态标识的子存储空间Slot;
所述空闲判断模块,用于当所述内存处于空闲状态时,判断是否存在为空状态标识的子存储空间Slot,还包括:
在空闲状态时监测所有子存储空间Slot的状态,全部子存储空间Slot的状态用访问队列来记录子存储空间Slot的存取情况,如果发现全部子存储空间Slot都存有子映射表,则可以将处于访问队列尾部的子存储空间Slot中的子映射表保存到闪存NAND中。
6.根据权利要求5所述的装置,其特征在于,所述内存中存储有所述子存储空间Slot的访问队列;所述内存与闪存NAND互相通信;所述装置还包括:
保存模块,用于若不存在为空状态标识的子存储空间Slot,则依据所述访问队列将为非空状态标识的子存储空间Slot中的子映射表保存至闪存NAND中;
第二更新模块,用于将所述子存储空间Slot的状态标识更新为空状态标识。
7.根据权利要求6所述的装置,其特征在于,所述保存模块包括:
子存储空间Slot获取子模块,用于获取处于所述访问队列的队尾的为非空状态标识的子存储空间Slot;
子映射表保存子模块,用于将所述子存储空间Slot中的子映射表保存至闪存NAND中。
8.根据权利要求5或6所述的装置,其特征在于,还包括:
访问队列更新模块,用于更新所述子存储空间Slot访问队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410494461.9A CN104281535B (zh) | 2014-09-24 | 2014-09-24 | 一种映射表在内存中的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410494461.9A CN104281535B (zh) | 2014-09-24 | 2014-09-24 | 一种映射表在内存中的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104281535A CN104281535A (zh) | 2015-01-14 |
CN104281535B true CN104281535B (zh) | 2017-11-17 |
Family
ID=52256429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410494461.9A Active CN104281535B (zh) | 2014-09-24 | 2014-09-24 | 一种映射表在内存中的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104281535B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201818248A (zh) * | 2016-11-15 | 2018-05-16 | 慧榮科技股份有限公司 | 可應用於資料儲存裝置之記憶體管理方法 |
CN107168888B (zh) * | 2017-05-19 | 2020-06-02 | 惠州佰维存储科技有限公司 | Nand闪存的映射表管理方法及其系统 |
CN109375877A (zh) * | 2018-10-24 | 2019-02-22 | 江苏华存电子科技有限公司 | 一种闪存存储中管理主机端逻辑位置对应映射表的方法 |
TWI709854B (zh) * | 2019-01-21 | 2020-11-11 | 慧榮科技股份有限公司 | 資料儲存裝置及用於存取邏輯至物理位址映射表之方法 |
CN111666330B (zh) * | 2019-03-06 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 数据的读写方法和装置 |
CN112099943B (zh) * | 2020-08-13 | 2024-05-03 | 深圳云天励飞技术股份有限公司 | 内存分配方法及相关设备 |
CN112882663B (zh) * | 2021-03-25 | 2022-10-14 | 湖南国科微电子股份有限公司 | 一种随机写的方法、电子设备及存储介质 |
CN116880746B (zh) * | 2023-06-05 | 2024-10-01 | 珠海妙存科技有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436419A (zh) * | 2010-09-29 | 2012-05-02 | 三星电子株式会社 | 非易失性存储器系统及管理其电源的方法 |
CN103064641A (zh) * | 2013-02-05 | 2013-04-24 | 威盛电子股份有限公司 | 非易失性存储装置及其操作方法 |
-
2014
- 2014-09-24 CN CN201410494461.9A patent/CN104281535B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436419A (zh) * | 2010-09-29 | 2012-05-02 | 三星电子株式会社 | 非易失性存储器系统及管理其电源的方法 |
CN103064641A (zh) * | 2013-02-05 | 2013-04-24 | 威盛电子股份有限公司 | 非易失性存储装置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104281535A (zh) | 2015-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104281535B (zh) | 一种映射表在内存中的处理方法和装置 | |
US10671290B2 (en) | Control of storage of data in a hybrid storage system | |
CN102156738B (zh) | 数据块处理方法、数据块存储设备及系统 | |
CN105117351B (zh) | 向缓存写入数据的方法及装置 | |
CN101923568B (zh) | 布隆过滤器的元素增加、删除方法以及布隆过滤器 | |
CN104115133B (zh) | 用于复合非易失性存储设备的数据迁移的方法、系统和设备 | |
CN104809179B (zh) | 访问哈希表的装置和方法 | |
CN111737265B (zh) | 区块数据访问方法、区块数据存储方法及装置 | |
CN104750740B (zh) | 数据更新的方法及装置 | |
US9588906B2 (en) | Removing cached data | |
CN104615594B (zh) | 一种数据更新方法及装置 | |
CN105786401A (zh) | 服务器集群系统中的数据管理方法及装置 | |
CN106775474A (zh) | 一种Nand Flash磨损均衡方法、装置及存储器 | |
US20200042538A1 (en) | Methods and apparatus to partition a database | |
CN108733324A (zh) | 一种固态硬盘的数据读写方法、装置、设备及存储介质 | |
CN104598652B (zh) | 一种数据库查询方法及装置 | |
CN106708749A (zh) | 一种数据查找方法 | |
CN112148226A (zh) | 一种数据存储方法及相关装置 | |
CN107133183A (zh) | 一种基于tcmu虚拟块设备的缓存数据访问方法及系统 | |
US20210349918A1 (en) | Methods and apparatus to partition a database | |
CN107203341A (zh) | 基于闪存的数据存储方法、装置以及闪存芯片 | |
CN106919342A (zh) | 基于自动精简配置的存储资源分配方法和装置 | |
CN103176753B (zh) | 存储设备及其数据管理方法 | |
CN117725035B (zh) | 一种针对lsm树的文件合并方法及相关设备 | |
CN104572737A (zh) | 数据存储辅助方法及系统 |
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 | ||
CP03 | Change of name, title or address |
Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094 Patentee after: Zhaoyi Innovation Technology Group Co.,Ltd. Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing Patentee before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc. |
|
CP03 | Change of name, title or address |