CN103440208B - 一种数据存储的方法及装置 - Google Patents
一种数据存储的方法及装置 Download PDFInfo
- Publication number
- CN103440208B CN103440208B CN201310350179.9A CN201310350179A CN103440208B CN 103440208 B CN103440208 B CN 103440208B CN 201310350179 A CN201310350179 A CN 201310350179A CN 103440208 B CN103440208 B CN 103440208B
- Authority
- CN
- China
- Prior art keywords
- storage space
- target data
- memory
- physical address
- virtual address
- 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
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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及数据存储技术领域,公开了一种数据存储的方法及装置,在存储数据时,将存储数据的存储空间的虚拟地址预设成该空间的物理地址相同,不需要记录该存储空间的虚拟地址和物理地址的映射关系,只有在与物理地址相同的虚拟地址被占用时,才给存储空间分配与物理地址不相同的虚拟地址,此时才需要记录虚拟地址和物理地址的映射关系,因此,记录的映射关系较少,由于记录的映射关系减少了,在根据虚拟地址确定物理地址时,需要查询的映射关系就少了,因此,不仅降低了对映射关系的记录,还提高了查询效率。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种数据存储的方法及装置。
背景技术
在当今的IT(InformationTechnology,信息技术)管理中,数据存储的挑战往往是容量要求和性能要求,面对越来越多的数据量,访问、存储和管理这些数据已经变得越来越困难了,管理维护成本也越来越高。
为了解决上述问题,分级存储技术应运而生,分级存储是根据数据的重要性、访问频率等属性,将一些重要性较高、访问频率较高的数据存储到性能较高存储设备中,而将另一些重要性较低、访问频率较低的数据存储到性能较低的存储设备中。从而,减少非重要数据在性能较高存储设备上所占用的空间。
现有技术中,客户端在对存储设备中的存储空间进行写入操作时,为存储数据的空间分配的虚拟地址与物理地址不同,因此,需要记录存储数据的每一个存储空间的虚拟地址和物理地址的映射关系,因此,记录的映射关系较多而记录较多的映射关系对内存消耗很大,会影响分级存储对存储***性能的提升,甚至在某些情况下该种分级存储的实现还会带来存储性能的降低。
发明内容
本发明实施例提供一种数据存储的方法及装置,用以解决现有技术中存在的分级存储***记录的映射关系较多、内存消耗较大的问题。
本发明实施例提供的具体技术方案如下:
第一方面,提供一种数据存储方法,所述数据存储方法应用在存储设备中,所述存储设备包括控制器和第一存储器,所述方法包括:
接收写数据请求,所述写数据请求包括目标数据以及所述目标数据的长度;
在第一存储器中查找空闲的第一存储空间,所述第一存储空间的大小与所述目标数据的长度相同,并且所述第一存储空间的虚拟地址与第一存储空间的物理地址相同,所述第一存储空间的虚拟地址是预先分配的;
根据所述第一存储空间的物理地址,将所述目标数据写入所述第一存储空间。
结合第一方面,在第一种可能的实现方式中,所述存储设备还包括第二存储器,所述第二存储器的存储性能与所述第一存储器不同,所述方法还包括:
监控所述目标数据的冷热程度;
当所述目标数据的冷热程度达到预设的阈值时,根据所述目标数据的长度在所述第二存储器中查找与所述目标数据的长度相同的空闲的第二存储空间,所述第二存储空间的虚拟地址与所述第二存储空间的物理地址相同;
建立所述第一存储空间的虚拟地址与第二存储空间的物理地址之间的映射关系;
根据所述映射关系,将所述目标数据从所述第一存储器迁移至所述第二存储器的所述空闲的存储空间中。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,记录所述第一存储空间的物理地址。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,当所述目标数据的冷热程度低于所述预设的阈值时,根据所述记录的第一存储空间的物理地址,将所述目标数据迁移至所述第一存储器的存储空间中。
结合第一方面的第一至第三种可能的实现方式,在第四种可能的实现方式中,记录所述第二存储空间的虚拟地址。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,根据所述第二存储空间的虚拟地址,释放所述第二存储空间。
结合第一方面的第一种可能的实现方式,在第六种可能的实现方式中,接收数据访问请求,所述数据访问请求包括所述目标数据以及所述第一存储空间的虚拟地址;
根据所述第一存储空间的虚拟地址获得所述第一存储空间的物理地址;
根据所述第一存储空间的物理地址访问所述目标数据。
第二方面,提供一种数据存储存储设备,所述存储设备包括控制器和第一存储器,所述控制器包括:
接收单元,用于接收写数据请求,所述写数据请求包括目标数据以及所述目标数据的长度;
查找单元,用于在第一存储器中查找空闲的第一存储空间,所述第一存储空间的大小与所述目标数据的长度相同,并且所述第一存储空间的虚拟地址与第一存储空间的物理地址相同,所述第一存储空间的虚拟地址是预先分配的;
写入单元,用于根据所述第一存储空间的物理地址,将所述目标数据写入所述第一存储空间。
结合第二方面,在第一种可能的实现方式中,所述存储设备还包括第二存储器,所述第二存储器的存储性能与所述第一存储器不同,所述控制器还包括:
监控单元,用于监控所述目标数据的冷热程度;当所述目标数据的冷热程度达到预设的阈值时,根据所述目标数据的长度在所述第二存储器中查找与所述目标数据的长度相同的空闲的第二存储空间,所述第二存储空间的虚拟地址与所述第二存储空间的物理地址相同;
映射建立单元,用于建立所述第一存储空间的虚拟地址与第二存储空间的物理地址之间的映射关系;
迁移单元,用于根据所述映射关系,将所述目标数据从所述第一存储器迁移至所述第二存储器的所述空闲的存储空间中。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述迁移单元还用于:
记录所述第一存储空间的物理地址。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述迁移单元还用于:
当所述目标数据的冷热程度低于所述预设的阈值时,根据所述记录的第一存储空间的物理地址,将所述目标数据迁移至所述第一存储器的存储空间中。
结合第二方面的第一至第三种可能的实现方式,在第四种可能的实现方式中,所述迁移单元还用于:
记录所述第二存储空间的虚拟地址。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述迁移单元还用于:
根据所述第二存储空间的虚拟地址,释放所述第二存储空间。
结合第二方面的第一种可能的实现方式,在第六种可能的实现方式中,所述控制器还包括读取单元,
用于接收数据访问请求,所述数据访问请求包括所述目标数据以及所述第一存储空间的虚拟地址;根据所述第一存储空间的虚拟地址获得所述第一存储空间的物理地址;根据所述第一存储空间的物理地址访问所述目标数据。
本发明实施例中,在存储数据时,将存储数据的存储空间的虚拟地址预设成该空间的物理地址相同,不需要记录该存储空间的虚拟地址和物理地址的映射关系,只有在与物理地址相同的虚拟地址被占用时,才给存储空间分配与物理地址不相同的虚拟地址,此时才需要记录虚拟地址和物理地址的映射关系,因此,记录的映射关系较少,由于记录的映射关系少了,在根据虚拟地址确定物理地址时,需要查询的映射关系就少了,因此,不仅降低了对映射关系的记录,还提高了查询效率。
附图说明
图1为现有技术中分级存储***的示意图;
图2为本发明实施例中数据存储的第一流程图;
图3为本发明实施例中数据存储的第二流程图;
图4为本发明实施例中数据存储装置的第一示意图;
图5为本发明实施例中数据存储装置的第二示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“***”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
分级存储***一般包括:客户端、控制器和至少两个不同速度级别的存储设备,其中,客户端负责发起用户的操作,如:对存储空间进行IO(Input/Output,写读)访问、存储数据存储释放;控制器负责管理存储设备的存储空间、数据在至少两个存储设备之间的迁移,及客户端对IO实际的访问控制等;存储设备为数据提供存储的空间,具体如图1所示。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图2所示,本发明实施例中,数据存储的第一详细流程如下:
步骤200:接收写数据请求,写数据请求包括目标数据以及目标数据的长度;
步骤210:在第一存储器中查找空闲的第一存储空间,第一存储空间的大小与目标数据的长度相同,并且第一存储空间的虚拟地址与第一存储空间的物理地址相同,第一存储空间的虚拟地址是预先分配的;
步骤220:根据第一存储空间的物理地址,将目标数据写入第一存储空间。
本发明实施例中,数据存储方法应用在存储设备中,存储设备包括控制器和第一存储器。
步骤200-220的执行主体可以有多种方式,下面以执行主体为控制器为例进行说明。
现有技术中,控制器将数据存储至存储空间时,需要记录存储数据的每一个存储空间的虚拟地址和物理地址对应的映射关系,进而当客户端获取到任意一空闲空间的虚拟地址,并根据获取到的被分配的存储空间的虚拟地址确定物理地址时,需要查找记录的每一个存储数据的存储空间的虚拟地址和实际地址的映射关系来确定物理地址。
而本发明实施例中,控制器将数据存储至存储空间时,存储数据的空间的虚拟地址和物理地址是相同的,此时,该存储空间的虚拟地址和物理地址映射关系不是必须记录的,只需要记录虚拟地址和物理地址不相同的存储空间的虚拟地址和实际地址的映射关系即可,因此,记录的映射关系减少了,则当客户端根据获取到的虚拟地址确定物理地址时,仅需要去查找记录的虚拟地址和物理地址不相同的映射关系中,是否存在包括获取的虚拟地址的映射关系,若存在时,对根据映射关系查确定出的物理地址进行后续操作,若不存在包括获取的虚拟地址的映射关系时,则直接对与获取的虚拟地址相同的物理地址进行后续操作即可,因此,不仅降低了对映射关系的记录,还提高了查询效率。
例如,第一存储设备的存储空间为100G,分为100个空间,分别用B0-B99进行标识编号,其中,B0-B99空间中的每一个空间的初始虚拟地址和物理地址相同,例如,B0空间的初始虚拟地址为VA0X000010、物理地址为PA0X000010,B1空间的初始虚拟地址为VA0X000011、物理地址为PA0X000011,VA、PA分别标识地址是虚拟地址还是物理地址。控制器将数据存储在B0-B9空间时,由于B0-B9空间中的任意一空间的虚拟地址和物理地址相同,因此,不需要进行记录,而现有技术中,需要记录存储数据的每一个空间的虚拟地址和物理地址的映射关系,因此,映射关系较多。
同时,若客户端读取B9空间中存储的数据时,由于没有记录的映射关系,直接到与B9空间的虚拟地址相同的物理地址去读取数据即可,不用查询映射关系,而现有技术中,需要记录B0-B9空间中的每一空间的虚拟地址和物理地址的映射关系,若客户端读取B9空间中存储的数据时,由于查询记录的10条映射关系,获取B9空间的物理地址,然后,去读取数据,因此,查询效率较低。
本发明实施例中,目标数据存储在第一存储设备后,也可以迁移至其他存储设备,由于数据迁移后,数据所占空间的虚拟地址是不变的,但是物理地址发生了变化,也就是说,数据所占空间的虚拟地址与物理地址不相同了。
其中,目标数据在迁移时有多种方式,可选的,监控目标数据的冷热程度,然后,当目标数据的冷热程度达到预设的阈值时,根据目标数据的长度在第二存储器中查找与目标数据的长度相同的空闲的第二存储空间,第二存储空间的虚拟地址与第二存储空间的物理地址相同,最后,建立第一存储空间的虚拟地址与第二存储空间的物理地址之间的映射关系,并根据映射关系,将目标数据从第一存储器迁移至第二存储器的空闲的存储空间中,其中,第一存储设备的性能和第二存储设备的性能不同。
在实际应用中,第一存储空间的虚拟地址可能和物理地址相同,也可能不同,因此,将存储在第一存储设备的第一存储空间中的目标数据迁移至第二存储设备的第二存储空间中后,先判断对应第一存储空间是否记录有虚拟地址和物理地址的映射关系;若没有记录,则记录第一存储空间的虚拟地址和第二存储空间的物理地址的映射关系;若有记录,则将对应第一存储空间记录的虚拟地址和物理地址的映射关系,更改为第一存储空间的虚拟地址和第二存储空间的物理地址的映射关系。
上述过程也就是,在目标数据存储在第一存储设备中时,第一存储空间的虚拟地址和物理地址相同的情况下,则记录该目标数据在第一存储设备中时所占用的第一存储空间的虚拟地址,和在第二存储设备中时所占用的第二存储空间的物理地址的映射关系,在目标数据存储在第一存储设备中时,第一存储空间的虚拟地址和物理地址不相同的情况下,将记录的第一存储空间的虚拟地址和第一存储空间的物理地址相对应的映射关系,更改为第一存储空间的虚拟地址和第二存储空间的物理地址的映射关系。
本发明实施例中,在目标数据迁移至第二存储空间后,还要记录第一存储空间的物理地址。
本发明实施例中,还包括记录第二存储空间的虚拟地址。
本发明实施例中,目标数据在迁移至第二存储设备后,还可以再回迁至第一存储设备,具体实现方式有多种,可选的,当目标数据的冷热程度低于预设的阈值时,根据记录的第一存储空间的物理地址,将目标数据迁移至第一存储器的存储空间中。
此时,再回迁至第一存储设备时,要将记录的该迁移的目标数据迁出第一存储设备中时所占用的第一存储空间的虚拟地址,和在第二存储设备中时所占用的第二存储空间的物理地址的映射关系删除,此时,为了减少记录的映射关系,要尽量回迁至第一存储设备在中的第一存储空间,此时,要先确定第一存储设备中第一存储设备中的第一存储空间是否空闲,若空闲,回迁至第一存储空间,否则,再回迁至其他处于空闲状态的空间,若回迁的目标数据又存储至第一存储空间时,不需要再记录映射关系(此时,也就是说,迁回至第一存储空间时,虚拟地址和物理地址就匹配了),从记录的虚拟地址中删除第二存储空间虚拟地址,并将该虚拟地址添加到空闲且匹配的地址记录中去,以及从记录的物理地址中删除第一存储空间的物理地址。
若回迁的目标数据存储至第一存储设备中的第三存储空间时,则将第一存储空间的虚拟地址与第二存储空间的物理地址之间的映射关系,更改为第一存储空间的虚拟地址与第三存储空间的物理地址之间的映射关系,并从记录的虚拟地址中删除在第二空间的虚拟地址,并将该虚拟地址添加到空闲且匹配的地址记录中去。
例如,目标数据在第一存储设备中存储时,第一存储空间的虚拟地址为VA0X000010,物理地址为PA0X000010,若目标数据从第一存储设备迁移至第二存储设备时,在第二存储设备中所占用的第二存储空间的虚拟地址为VA0X000011,物理地址为PA0X000011,而目标数据在迁移时,目标数据已经携带了虚拟地址,因此,目标数据从第一存储设备迁移至第二存储设备后,所占用的第二存储空间的虚拟地址为VA0X000010,物理地址为PA0X000011,此时,所占用的第二存储设备的空间的虚拟地址和物理地址不匹配,要记录VA0X000010到PA0X000011的映射关系,同时,还可以记录为空闲状态的第一存储空间的物理地址PA0X000010,及为空闲状态的第二存储空间的虚拟地址。
进一步的,若迁移至第二存储设备的目标数据又回迁至第一存储设备,此时,要删除记录的VA0X000010到PA0X000011的映射关系,及记录的VA0X000011,并在回迁至第一存储空间时所占用空间的物理地址为PA0X000010,则不需要记录新的映射关系,同时,还要删除记录的PA0X000010,在回迁至第一存储设备的第三存储空间,第三存储空间的物理地址不是PA0X000010时,此时,要将记录的VA0X000010到PA0X000011的映射关系,更改为VA0X000010到第三存储空间的物理地址的映射关系,还需要记录第三存储空间的虚拟地址。
本发明实施例中,在数据回迁时,确定回迁的数据第一次在第一存储设备的空间是否空闲的方式有多种,可选的,从记录的空闲的物理地址中进行查找。
本发明实施例中,还可以对存储设备中的任意一存储空间进行释放,在进行释放时,要判定记录的映射关系中是否存在包括虚拟地址的映射关系,如果不存在映射关系,则将该地址添加到虚拟地址与物理地址匹配的的记录中。如果存在映射关系,则先删除该映射关系,并判断记录的物理地址中是否存在与释放的虚拟地址相同的物理地址,若是,则将该记录中的物理地址删除,并将该物理地址添加到虚拟地址与物理地址匹配的记录中去;否则将该释放的虚拟地址添加到记录的虚拟地址当中去,然后,还要判断记录的虚拟地址中是否存在与释放的物理地址相同的虚拟地址,若是,则将该记录中的虚拟地址删除,并将虚拟地址添加到虚拟地址与物理地址匹配的记录中去;否则将该释放的虚拟地址添加到记录的物理地址当中去。
本发明实施例中,由于控制器还可以记录,虚拟地址为非空闲状态、对应的物理地址为空闲状态的空间的物理地址,及记录虚拟地址为空闲状态、对应的物理地址为非空闲状态的空间的虚拟地址,因此,在释放空间(释放虚拟地址)后,若与释放的虚拟地址相同的物理地址非空闲,则控制器将释放的虚拟地址添加到记录的虚拟地址中,若与释放的物理地址(通过映射关系找到)相同的虚拟地址为非空闲,则控制器将释放的物理地址添加到记录的物理地址中。
进一步的,客户端还可以读取数据,向控制器发送数据访问请求,数据访问请求包括目标数据以及第一存储空间的虚拟地址;控制器在接收到请求后,其中,根据第一存储空间的虚拟地址获得第一存储空间的物理地址;并根据第一存储空间的物理地址访问目标数据,其中,根据第一存储空间的虚拟地址获得第一存储空间的物理地址时,可以先确定记录的映射关系中是否存在包括获取到的虚拟地址的映射关系,若是,则根据映射关系确定物理地址,否则,确定与获取到的虚拟地址相同的地址为物理地址。
例如,第一存储设备为100G,分为100个空间,分别用B0-B99进行标识编号,其中,B10-B99空间中的每一个空间的虚拟地址和物理地址相同,其中,B0-B9空间中存储有数据。由于B0-B2的虚拟地址和物理地址不同,B3-B9的虚拟地址和物理地址相同,则只需要分别记录B0-B2的虚拟地址和物理地址的映射关系,即3条映射关系,不需要记录B3-B9空间的映射关系,则客户端在预读取B2空间中的数据时,先确定记录的3条映射关系中是否存在包括B2的虚拟地址的映射关系,由于记录的映射关系中存在包括B2的虚拟地址的映射关系,因此,从确定的物理地址对应的B2空间中读取数据;客户端在预从B5空间中的数据时,先确定记录的3条映射关系中是否存在包括B5的虚拟地址的映射关系,由于记录的映射关系中不存在包括B5的虚拟地址的映射关系,因此,认为B5的物理地址与虚拟地址相同,因此,从与B5的虚拟地址相同的物理地址对应的空间中读取数据。
为了更好地理解本发明实施例,以下给出具体应用场景,针对数据存储、迁移及回迁的过程,做出进一步详细描述,具体如图3所示(其中,第一存储器A的存储空间中有10个空间的物理地址为空闲的,且A0-A2空间的虚拟地址和物理地址不相同,A3-A9空间的虚拟地址和物理地址相同):
步骤300:控制器接收写数据请求;
该步骤中,写数据请求包括目标数据以及目标数据的长度。
步骤310:控制器在A中确定A0为空闲的第一存储空间;
在该步骤中,A0空间的大小与目标数据的长度相同,并且A0空间的虚拟地址与物理地址相同,及虚拟地址是预先分配的。
步骤320:控制器根据A0空间的物理地址,将目标数据写入A0;
步骤330:控制器确定目标数据的冷热程度达到预设的阈值时,将目标数据从A0待迁移至B中的B0空间;
在该步骤中,B0空间的长度与目标数据的长度相同,且B0空间的虚拟地址与物理地址相同;
步骤340:控制器建立A0空间的虚拟地址与B0空间的物理地址之间的映射关系;
步骤350:控制器根据映射关系,将目标数据从A0空间待迁移至B中的B0空间;
步骤360:控制器记录A0空间的物理地址,及B0空间的虚拟地址;
步骤370:控制器确定目标数据的冷热程度低于预设的阈值时,确定A0空间空闲时,将目标数据回迁至A0空间,并删除A0空间的虚拟地址与B0空间的物理地址之间的映射关系。
参阅图4所示,本发明实施例还提供一种存储设备,具体包括:
控制器40和第一存储器41,控制器40还包括:
接收单元400,用于接收写数据请求,写数据请求包括目标数据以及目标数据的长度;
查找单元410,用于在第一存储器中查找空闲的第一存储空间,第一存储空间的大小与目标数据的长度相同,并且第一存储空间的虚拟地址与第一存储空间的物理地址相同,第一存储空间的虚拟地址是预先分配的;
写入单元420,用于根据第一存储空间的物理地址,将目标数据写入第一存储空间。
进一步的,本发明实施例中,存储设备还包括第二存储器42,第二存储器42的存储性能与第一存储器41不同,控制器40还包括:
监控单元430,用于监控目标数据的冷热程度;当目标数据的冷热程度达到预设的阈值时,根据目标数据的长度在第二存储器中查找与目标数据的长度相同的空闲的第二存储空间,第二存储空间的虚拟地址与第二存储空间的物理地址相同;
映射建立单元440,用于建立第一存储空间的虚拟地址与第二存储空间的物理地址之间的映射关系;
迁移单元450,用于根据映射关系,将目标数据从第一存储器迁移至第二存储器的空闲的存储空间中。
进一步的,本发明实施例中,迁移单元450还用于:记录第一存储空间的物理地址。
进一步的,本发明实施例中,迁移单元450还用于:当目标数据的冷热程度低于预设的阈值时,根据记录的第一存储空间的物理地址,将目标数据迁移至第一存储器的存储空间中。
进一步的,本发明实施例中,迁移单元450还用于:记录第二存储空间的虚拟地址。
进一步的,本发明实施例中,迁移单元450还用于:根据第二存储空间的虚拟地址,释放第二存储空间。
本发明实施例中,控制器40还包括读取单元460,用于接收数据访问请求,数据访问请求包括目标数据以及第一存储空间的虚拟地址;根据第一存储空间的虚拟地址获得第一存储空间的物理地址;根据第一存储空间的物理地址访问目标数据。
如图5所示,为本发明实施例提供的另一种存储设备的结构图,存储设备包括至少一个存储器501,通信总线502,控制器503以及至少一个通信接口504。
其中,通信总线502用于实现上述组件之间的连接并通信,通信接口504用于与外部设备连接并通信。
其中,存储器501用于存储需要执行的程序代码,这些程序代码具体可以包括:接收单元5011、查找单元5012、写入单元5013,当上述单元被控制器503执行时,实现如下功能:
接收单元5011,用于接收写数据请求,写数据请求包括目标数据以及目标数据的长度;
查找单元5012,用于在第一存储器中查找空闲的第一存储空间,第一存储空间的大小与目标数据的长度相同,并且第一存储空间的虚拟地址与第一存储空间的物理地址相同,第一存储空间的虚拟地址是预先分配的;
写入单元5013,用于根据第一存储空间的物理地址,将目标数据写入第一存储空间。
综上所述,本发明实施例中,在存储数据时,将存储数据的存储空间的虚拟地址预设成该空间的物理地址相同,不需要记录该存储空间的虚拟地址和物理地址的映射关系,只有在与物理地址相同的虚拟地址被占用时,才给存储空间分配与物理地址不相同的虚拟地址,此时才需要记录虚拟地址和物理地址的映射关系,因此,记录的映射关系较少,具体方法为:接收写数据请求,写数据请求包括目标数据以及目标数据的长度;在第一存储器中查找空闲的第一存储空间,第一存储空间的大小与目标数据的长度相同,并且第一存储空间的虚拟地址与第一存储空间的物理地址相同,第一存储空间的虚拟地址是预先分配的;根据第一存储空间的物理地址,将目标数据写入第一存储空间,由于记录的映射关系少了,在根据虚拟地址确定物理地址时,需要查询的映射关系就少了,因此,不仅降低了对映射关系的记录,还提高了查询效率。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的步骤。
尽管已描述了本发明的上述实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括上述实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种数据存储方法,所述数据存储方法应用在存储设备中,所述存储设备包括控制器和第一存储器,其特征在于,所述方法包括:
接收写数据请求,所述写数据请求包括目标数据以及所述目标数据的长度;
在第一存储器中查找空闲的第一存储空间,所述第一存储空间的大小与所述目标数据的长度相同,并且所述第一存储空间的虚拟地址与第一存储空间的物理地址相同,所述第一存储空间的虚拟地址是预先分配的;
根据所述第一存储空间的物理地址,将所述目标数据写入所述第一存储空间。
2.根据权利要求1所述的方法,其特征在于,所述存储设备还包括第二存储器,所述第二存储器的存储性能与所述第一存储器不同,所述方法还包括:
监控所述目标数据的冷热程度,所述目标数据的冷热程度是指所述目标数据被访问的频繁程度;
当所述目标数据的冷热程度达到预设的阈值时,根据所述目标数据的长度在所述第二存储器中查找与所述目标数据的长度相同的空闲的第二存储空间,所述第二存储空间的虚拟地址与所述第二存储空间的物理地址相同;
建立所述第一存储空间的虚拟地址与第二存储空间的物理地址之间的映射关系;
根据所述映射关系,将所述目标数据从所述第一存储器迁移至所述第二存储器的所述空闲的存储空间中。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
记录所述第一存储空间的物理地址。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述目标数据的冷热程度低于所述预设的阈值时,根据所述记录的第一存储空间的物理地址,将所述目标数据迁移至所述第一存储器的存储空间中,所述目标数据的冷热程度是指所述目标数据被访问的频繁程度。
5.根据权利要求2-4任一权利要求所述的方法,其特征在于,所述方法还包括:
记录所述第二存储空间的虚拟地址。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据所述第二存储空间的虚拟地址,释放所述第二存储空间。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收数据访问请求,所述数据访问请求包括所述目标数据以及所述第一存储空间的虚拟地址;
根据所述第一存储空间的虚拟地址获得所述第一存储空间的物理地址;
根据所述第一存储空间的物理地址访问所述目标数据。
8.一种存储设备,所述存储设备包括控制器和第一存储器,其特征在于,所述控制器包括:
接收单元,用于接收写数据请求,所述写数据请求包括目标数据以及所述目标数据的长度;
查找单元,用于在第一存储器中查找空闲的第一存储空间,所述第一存储空间的大小与所述目标数据的长度相同,并且所述第一存储空间的虚拟地址与第一存储空间的物理地址相同,所述第一存储空间的虚拟地址是预先分配的;
写入单元,用于根据所述第一存储空间的物理地址,将所述目标数据写入所述第一存储空间。
9.根据权利要求8所述的存储设备,其特征在于,所述存储设备还包括第二存储器,所述第二存储器的存储性能与所述第一存储器不同,所述控制器还包括:
监控单元,用于监控所述目标数据的冷热程度;当所述目标数据的冷热程度达到预设的阈值时,根据所述目标数据的长度在所述第二存储器中查找与所述目标数据的长度相同的空闲的第二存储空间,所述第二存储空间的虚拟地址与所述第二存储空间的物理地址相同,所述目标数据的冷热程度是指所述目标数据被访问的频繁程度;
映射建立单元,用于建立所述第一存储空间的虚拟地址与第二存储空间的物理地址之间的映射关系;
迁移单元,用于根据所述映射关系,将所述目标数据从所述第一存储器迁移至所述第二存储器的所述空闲的存储空间中。
10.根据权利要求9所述的存储设备,其特征在于,所述迁移单元还用于:
记录所述第一存储空间的物理地址。
11.根据权利要求10所述的存储设备,其特征在于,所述迁移单元还用于:
当所述目标数据的冷热程度低于所述预设的阈值时,根据所述记录的第一存储空间的物理地址,将所述目标数据迁移至所述第一存储器的存储空间中,所述目标数据的冷热程度是指所述目标数据被访问的频繁程度。
12.根据权利要求9-11任一权利要求所述的存储设备,其特征在于,所述迁移单元还用于:
记录所述第二存储空间的虚拟地址。
13.根据权利要求12所述的存储设备,其特征在于,所述迁移单元还用于:
根据所述第二存储空间的虚拟地址,释放所述第二存储空间。
14.根据权利要求9所述的存储设备,其特征在于,所述存储设备还包括读取单元,用于接收数据访问请求,所述数据访问请求包括所述目标数据以及所述第一存储空间的虚拟地址;根据所述第一存储空间的虚拟地址获得所述第一存储空间的物理地址;根据所述第一存储空间的物理地址访问所述目标数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310350179.9A CN103440208B (zh) | 2013-08-12 | 2013-08-12 | 一种数据存储的方法及装置 |
PCT/CN2014/071240 WO2015021755A1 (zh) | 2013-08-12 | 2014-01-23 | 一种数据存储的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310350179.9A CN103440208B (zh) | 2013-08-12 | 2013-08-12 | 一种数据存储的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103440208A CN103440208A (zh) | 2013-12-11 |
CN103440208B true CN103440208B (zh) | 2016-02-03 |
Family
ID=49693899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310350179.9A Active CN103440208B (zh) | 2013-08-12 | 2013-08-12 | 一种数据存储的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103440208B (zh) |
WO (1) | WO2015021755A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440208B (zh) * | 2013-08-12 | 2016-02-03 | 华为技术有限公司 | 一种数据存储的方法及装置 |
CN108231109B (zh) * | 2014-06-09 | 2021-01-29 | 华为技术有限公司 | 动态随机存取存储器dram的刷新方法、设备以及*** |
US9158681B1 (en) * | 2014-09-02 | 2015-10-13 | Sandisk Technologies Inc. | Process and apparatus to reduce declared capacity of a storage device by conditionally trimming |
US9824026B2 (en) | 2014-12-23 | 2017-11-21 | Intel Corporation | Apparatus and method for managing a virtual graphics processor unit (VGPU) |
CN111708717A (zh) | 2015-06-30 | 2020-09-25 | 华为技术有限公司 | 数据拷贝方法、直接内存访问控制器及计算机*** |
CN105487817B (zh) * | 2015-11-26 | 2019-09-10 | 上海新储集成电路有限公司 | 一种可定制的数据存储方法及*** |
CN106020717B (zh) * | 2016-05-05 | 2020-10-27 | 联想(北京)有限公司 | 数据处理方法及电子设备 |
US10877885B2 (en) | 2016-06-30 | 2020-12-29 | Huawei Technologies Co., Ltd. | Electronic device data operation method and electronic device for improved electronic device storage |
CN107092439B (zh) * | 2017-03-07 | 2020-02-21 | 华为技术有限公司 | 一种数据存储的方法及设备 |
CN107483893B (zh) * | 2017-09-08 | 2020-07-07 | 中国地质大学(武汉) | 一种智慧城市视频数据的多点协同更新存储方法及*** |
CN111241090B (zh) * | 2019-12-23 | 2023-11-10 | 华为技术有限公司 | 存储***中管理数据索引的方法和装置 |
CN114610232A (zh) | 2020-04-28 | 2022-06-10 | 华为技术有限公司 | 一种存储***、内存管理方法和管理节点 |
CN113791736A (zh) * | 2021-09-15 | 2021-12-14 | 京东科技信息技术有限公司 | 数据迁移方法、网卡设备、服务器及数据迁移*** |
CN115422098B (zh) * | 2022-02-15 | 2023-08-29 | 摩尔线程智能科技(北京)有限责任公司 | 基于扩展页表的gpu访存自适应优化方法及装置 |
WO2024113090A1 (zh) * | 2022-11-28 | 2024-06-06 | 华为技术有限公司 | 访存方法、装置及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008922A (zh) * | 2007-01-26 | 2007-08-01 | 浙江大学 | 面向异构多核体系的段页式存储空间管理方法 |
US7877524B1 (en) * | 2007-11-23 | 2011-01-25 | Pmc-Sierra Us, Inc. | Logical address direct memory access with multiple concurrent physical ports and internal switching |
US8443167B1 (en) * | 2009-12-16 | 2013-05-14 | Western Digital Technologies, Inc. | Data storage device employing a run-length mapping table and a single address mapping table |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440208B (zh) * | 2013-08-12 | 2016-02-03 | 华为技术有限公司 | 一种数据存储的方法及装置 |
-
2013
- 2013-08-12 CN CN201310350179.9A patent/CN103440208B/zh active Active
-
2014
- 2014-01-23 WO PCT/CN2014/071240 patent/WO2015021755A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008922A (zh) * | 2007-01-26 | 2007-08-01 | 浙江大学 | 面向异构多核体系的段页式存储空间管理方法 |
US7877524B1 (en) * | 2007-11-23 | 2011-01-25 | Pmc-Sierra Us, Inc. | Logical address direct memory access with multiple concurrent physical ports and internal switching |
US8443167B1 (en) * | 2009-12-16 | 2013-05-14 | Western Digital Technologies, Inc. | Data storage device employing a run-length mapping table and a single address mapping table |
Also Published As
Publication number | Publication date |
---|---|
CN103440208A (zh) | 2013-12-11 |
WO2015021755A1 (zh) | 2015-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103440208B (zh) | 一种数据存储的方法及装置 | |
US8909887B1 (en) | Selective defragmentation based on IO hot spots | |
CN107168657B (zh) | 一种基于分布式块存储的虚拟磁盘分层缓存设计方法 | |
CN104850358B (zh) | 一种磁光电混合存储***及其数据获取和存储方法 | |
CN108139902A (zh) | 用于提供混合模式来访问ssd驱动器的方法和装置 | |
CN107111452B (zh) | 应用于计算机***的数据迁移方法和装置、计算机*** | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
CN107807794A (zh) | 一种数据存储方法和装置 | |
CN103544269A (zh) | 目录的存储方法、查询方法及节点控制器 | |
CN104503703B (zh) | 缓存的处理方法和装置 | |
CN108399050B (zh) | 一种数据处理方法及装置 | |
CN103714013A (zh) | 一种文件***的存储空间的配置方法及装置 | |
KR20180086120A (ko) | 테일 레이턴시를 인식하는 포어그라운드 가비지 컬렉션 알고리즘 | |
CN102169460A (zh) | 变长数据管理方法及装置 | |
US20200133543A1 (en) | Locality-aware, memory-efficient, time-efficient hot data identification using count-min-sketch for flash or streaming applications | |
CN104035925A (zh) | 数据存储方法、装置和存储*** | |
CN109977078A (zh) | 一种数据的处理方法、装置、计算机设备和存储介质 | |
CN103019964B (zh) | 一种缓存数据访问方法及数据缓存*** | |
CN108920613A (zh) | 一种元数据管理方法、***及设备和存储介质 | |
CN108304142A (zh) | 一种数据管理方法和装置 | |
US20120137107A1 (en) | Method of decaying hot data | |
CN108132759B (zh) | 一种文件***中管理数据的方法和装置 | |
CN109947669A (zh) | Kv存储设备的地址转换方法与*** | |
CN101783814A (zh) | 海量存储***的元数据存储方法 | |
CN109213423A (zh) | 基于地址屏障无锁处理并发io命令 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |