CN103617125A - 内存空间的管理方法和装置 - Google Patents
内存空间的管理方法和装置 Download PDFInfo
- Publication number
- CN103617125A CN103617125A CN201310618123.7A CN201310618123A CN103617125A CN 103617125 A CN103617125 A CN 103617125A CN 201310618123 A CN201310618123 A CN 201310618123A CN 103617125 A CN103617125 A CN 103617125A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory space
- space
- internal memory
- contiguous
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
- Memory System (AREA)
Abstract
本发明公开了一种内存空间的管理方法和装置,其中,该方法包括:接收用户侧发送的内存申请请求,并根据该内存申请请求,确定用户侧所期望的内存容量;根据预定策略,确定系统的可用内存空间中满足内存容量的连续内存空间;根据预先配置的标识信息,对连续内存空间进行标识,促使系统根据标识信息保留连续内存空间;在接收到用户侧发送的空间映射请求后,将系统保留的连续内存空间映射至系统的用户空间中。本发明能够在任意系统架构下保证用户侧能够申请到满足其所期望的内存容量的连续内存空间,有效的满足了零拷贝功能执行时的内存需求。
Description
技术领域
本发明涉及网络存储技术领域,具体来说,涉及一种内存空间的管理方法和装置。
背景技术
目前,要实现零拷贝功能,需要软硬件进行密切配合,而软件需要完成的工作包含但不限于如下内容:在驱动程序中申请连续的内存空间,将此申请的内存空间首地址通过某种机制传递到用户空间应用程序中;应用程序在获得此内存空间首地址后,调用MMAP系统函数接口,将内核空间的内存映射到用户空间中,这样,在用户空间的应用程序中,就可以直接访问此内存空间数据,从而达到了零拷贝的功能。
然而,在实际应用过程中,虽然上述的方法可行,但并不是在所有环境中都使用,比如在非X86架构下,就很难保证能申请到足够大的连续内存空间,而且即便申请到了足够大的连续内存空间,此内存空间也未必能够满足设备的功能需求,比如DMA功能要求,这是由于系统体系架构的差异造成的。
针对现有相关技术中,在非X86架构下,很难为零拷贝功能申请到足够大的连续内存空间的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的上述问题,本发明提出一种内存空间的管理方法和装置,能够在任意系统架构下保证用户侧能够申请到满足其所期望的内存容量的连续内存空间,进而有效的满足了零拷贝功能执行时的内存需求。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种内存空间的管理方法。
该内存空间的管理方法包括:
接收用户侧发送的内存申请请求,并根据该内存申请请求,确定用户侧所期望的内存容量;
根据预定策略,确定系统的可用内存空间中满足内存容量的连续内存空间;
根据预先配置的标识信息,对连续内存空间进行标识,促使系统根据标识信息保留连续内存空间;
在接收到用户侧发送的空间映射请求后,将系统保留的连续内存空间映射至系统的用户空间中。
此外,该内存空间的管理方法还包括:在根据预定策略,确定系统的可用内存空间内满足内存容量的连续内存空间之后,对系统的架构进行分析,确定系统执行空间映射操作所需满足的功能需求条件;并根据确定出的功能需求条件,在连续内存空间中,确定出满足功能需求条件的连续内存空间;此时,在根据预先配置的标识信息,对连续内存空间进行标识时,则是根据预先配置的标识信息,对确定出满足功能需求条件的连续内存空间进行标识。
可选地,功能需求条件包括DMA条件。
其中,在根据预定策略,确定系统的可用内存空间内满足内存容量的连续内存空间时,可根据内存容量,确定系统可用内存空间的内存地址范围内满足内存容量的所有内存起始地址和与该内存起始地址对应的内存长度;并根据内存长度确定出的内存末位地址之间是连续性的内存起始地址和内存长度;以及根据满足连续的内存起始地址和内存长度,确定对应的内存空间。
另外,该内存空间的管理方法还包括:在根据预定策略,确定系统的可用内存空间内满足内存容量的连续内存空间之前,对系统的可用内存空间的内存容量进行验证,确定系统的可用内存空间的内存容量满足于用户侧所期望的内容容量。
根据本发明的一个方面,提供了一种内存空间的管理装置。
该内存空间的管理装置包括:
第一确定模块,用于接收用户侧发送的内存申请请求,并根据内存申请请求,确定用户侧所期望的内容容量;
第二确定模块,用于根据预定策略,确定系统的可用内存空间中满足内存容量的连续内存空间;
信息标识模块,用于根据预先配置的标识信息,对连续内存空间进行标识,促使系统根据标识信息保留连续内存空间;
空间映射模块,用于在接收到用户侧发送的空间映射请求后,将系统保留的连续内存空间映射至系统的用户空间中。
此外,该内存空间的管理装置还包括:分析模块,用于在根据预定策略,确定系统的可用内存空间内满足内存容量的连续内存空间之后,对系统的架构进行分析,确定系统执行空间映射操作所要满足的功能需求条件;第三确定模块,用于根据确定出的功能需求条件,在连续内存空间中,确定出满足功能需求条件的连续内存空间;
并且,信息标识模块还用于根据预先配置的标识信息,对确定出满足功能需求条件的连续内存空间进行标识。
可选地,功能需求条件包括DMA条件。
其中,第二确定模块包括:第一确定子模块,用于根据内存容量,确定系统可用内存空间的内存地址范围内满足内存容量的所有内存起始地址和与该内存起始地址对应的内存长度;查找模块,用于在确定出的内存起始地址和内存长度中,查找出内存起始地址和根据内存长度确定出的内存末位地址之间是连续性的内存起始地址和内存长度;第二确定子模块,用于根据满足连续的内存起始地址和内存长度,确定对应的内存空间。
另外,该内存空间的管理装置还包括:验证模块,用于在根据预定策略,确定系统的可用内存空间内满足内存容量的连续内存空间之前,对系统的可用内存空间的内存容量进行验证,确定系统的可用内存空间的内存容量满足于用户侧所期望的内容容量。
本发明通过根据用户侧发送的内存申请请求,在系统的可用内存空间中确定出对应的连续内存空间,并通过预先配置的标识信息对确定出的连续内存空间进行标识,促使系统根据标识信息将确定出的连续内存空间进行保留,防止系统上的其他设备占用用户侧申请的该连续内存空间,进而保证了在任意系统架构下用户侧申请的内存空间均能满足零拷贝功能执行时的内存需求。
此外,本发明还通过在确定出连续内存空间之后,对系统的架构进行分析,确定系统执行空间映射操作所要满足的功能需求条件,并根据该功能需求条件对确定出的连续内存空间进行进一步的剔除,从而确保了最终的分配的连续内存空间满足该功能需求条件,进而保证了系统执行空间映射操作的成功率,防止了为用户侧分配的连续内存空间无法满足系统执行零拷贝功能的设备要求的情况发生。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的内存空间的管理方法的流程示意图;
图2是根据本发明实施例的内存空间的管理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种内存空间的管理方法。
如图1所示,根据本发明实施例的内存空间的管理方法包括:
步骤S101,接收用户侧发送的内存申请请求,并根据该内存申请请求,确定用户侧所期望的内存容量;
步骤S103,根据预定策略,确定系统的可用内存空间中满足内存容量的连续内存空间;
步骤S105,根据预先配置的标识信息,对连续内存空间进行标识,促使系统根据标识信息保留连续内存空间;
步骤S107,在接收到用户侧发送的空间映射请求后,将系统保留的连续内存空间映射至系统的用户空间中。
此外,该内存空间的管理方法还包括:在根据预定策略,确定系统的可用内存空间内满足内存容量的连续内存空间之后,对系统的架构进行分析,确定系统执行空间映射操作所需满足的功能需求条件;并根据确定出的功能需求条件,在连续内存空间中,确定出满足功能需求条件的连续内存空间;此时,在根据预先配置的标识信息,对连续内存空间进行标识时,则是根据预先配置的标识信息,对确定出满足功能需求条件的连续内存空间进行标识。
可选地,功能需求条件包括DMA条件。
其中,在根据预定策略,确定系统的可用内存空间内满足内存容量的连续内存空间时,可根据内存容量,确定系统可用内存空间的内存地址范围内满足内存容量的所有内存起始地址和与该内存起始地址对应的内存长度;并根据内存长度确定出的内存末位地址之间是连续性的内存起始地址和内存长度;以及根据满足连续的内存起始地址和内存长度,确定对应的内存空间。
另外,该内存空间的管理方法还包括:在根据预定策略,确定系统的可用内存空间内满足内存容量的连续内存空间之前,对系统的可用内存空间的内存容量进行验证,确定系统的可用内存空间的内存容量满足于用户侧所期望的内容容量。
下面结合一具体实施例对本发明的上述技术方案进行详细说明。
以Linux系统为例,在Linux内核执行过程时可得到BIOS的描述内存容量相关信息,在此基础上,可根据得到的内存容量信息、设备应用场景环境信息等,确定零拷贝功能正常工作所需的内存最小值与最大值;同时根据具体系统架构,确定内存地址范围中满足各种要求(例如,DMA功能要求)的内存起始地址和长度,依此确定分配给零拷贝功能内存起始地址和长度。然后,对此段内存进行标记,标记为被占用,被占用的状态会在用户空间的属性中被标记出,其他设备也不能再申请占用此段内存。
成功分配了内存之后,在DMA功能的支持下,内存物理地址可通过函数接口转换为DMA地址和/或虚拟地址,允许应用程序获得此内存起始地址的和终止地址的物理地址,并依此得到保留内存的长度信息。使用将对象映射进内存的方法(例如,C环境中的mmap命令)可将内核空间的保留内存地址空间映射到用户空间中,应用程序就可以直接访问存储在此内存地址里的数据了。
根据本发明的实施例,还提供了一种内存空间的管理装置。
如图2所示,根据本发明实施例的内存空间的管理装置包括:
第一确定模块21,用于接收用户侧发送的内存申请请求,并根据内存申请请求,确定用户侧所期望的内容容量;
第二确定模块22,用于根据预定策略,确定系统的可用内存空间中满足内存容量的连续内存空间;
信息标识模块23,用于根据预先配置的标识信息,对连续内存空间进行标识,促使系统根据标识信息保留连续内存空间;
空间映射模块24,用于在接收到用户侧发送的空间映射请求后,将系统保留的连续内存空间映射至系统的用户空间中。
此外,该内存空间的管理装置还包括:分析模块(未示出),用于在根据预定策略,确定系统的可用内存空间内满足内存容量的连续内存空间之后,对系统的架构进行分析,确定系统执行空间映射操作所要满足的功能需求条件;第三确定模块(未示出),用于根据确定出的功能需求条件,在连续内存空间中,确定出满足功能需求条件的连续内存空间;
并且,信息标识模块23还用于根据预先配置的标识信息,对确定出满足功能需求条件的连续内存空间进行标识。
可选地,功能需求条件包括DMA条件。
其中,第二确定模块22包括:第一确定子模块(未示出),用于根据内存容量,确定系统可用内存空间的内存地址范围内满足内存容量的所有内存起始地址和与该内存起始地址对应的内存长度;查找模块(未示出),用于在确定出的内存起始地址和内存长度中,查找出内存起始地址和根据内存长度确定出的内存末位地址之间是连续性的内存起始地址和内存长度;第二确定子模块(未示出),用于根据满足连续的内存起始地址和内存长度,确定对应的内存空间。
另外,该内存空间的管理装置还包括:验证模块(未示出),用于在根据预定策略,确定系统的可用内存空间内满足内存容量的连续内存空间之前,对系统的可用内存空间的内存容量进行验证,确定系统的可用内存空间的内存容量满足于用户侧所期望的内容容量。
综上所述,借助于本发明的上述技术方案,通过根据用户侧发送的内存申请请求,在系统的可用内存空间中确定出对应的连续内存空间,并通过预先配置的标识信息对确定出的连续内存空间进行标识,促使系统根据标识信息将确定出的连续内存空间进行保留,防止系统上的其他设备占用用户侧申请的该连续内存空间,进而保证了在任意系统架构下用户侧申请的内存空间均能满足零拷贝功能执行时的内存需求。
此外,本发明还通过在确定出连续内存空间之后,对系统的架构进行分析,确定系统执行空间映射操作所要满足的功能需求条件,并根据该功能需求条件对确定出的连续内存空间进行进一步的剔除,从而确保了最终的分配的连续内存空间满足该功能需求条件,进而保证了系统执行空间映射操作的成功率,防止了为用户侧分配的连续内存空间无法满足系统执行零拷贝功能的设备要求的情况发生。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种内存空间的管理方法,其特征在于,包括:
接收用户侧发送的内存申请请求,并根据所述内存申请请求,确定所述用户侧所期望的内存容量;
根据预定策略,确定系统的可用内存空间中满足所述内存容量的连续内存空间;
根据预先配置的标识信息,对所述连续内存空间进行标识,促使所述系统根据所述标识信息保留所述连续内存空间;
在接收到所述用户侧发送的空间映射请求后,将所述系统保留的所述连续内存空间映射至所述系统的用户空间中。
2.根据权利要求1所述的管理方法,其特征在于,进一步包括:
在根据预定策略,确定系统的可用内存空间内满足所述内存容量的连续内存空间之后,对所述系统的架构进行分析,确定所述系统执行空间映射操作所需满足的功能需求条件;
根据确定出的功能需求条件,在所述连续内存空间中,确定出满足所述功能需求条件的连续内存空间;
并且,根据预先配置的标识信息,对所述连续内存空间进行标识包括:
根据预先配置的标识信息,对确定出满足所述功能需求条件的连续内存空间进行标识。
3.根据权利要求2所述的管理方法,其特征在于,所述功能需求条件包括DMA条件。
4.根据权利要求1至3中任意一项所述的管理方法,其特征在于,根据预定策略,确定系统的可用内存空间内满足所述内存容量的连续内存空间包括:
根据所述内存容量,确定所述系统可用内存空间的内存地址范围内满足所述内存容量的所有内存起始地址和与该内存起始地址对应的内存长度;
在确定出的所述内存起始地址和所述内存长度中,查找出内存起始地址和根据所述内存长度确定出的内存末位地址之间是连续性的内存起始地址和内存长度;
根据所述满足连续的内存起始地址和内存长度,确定对应的内存空间。
5.根据权利要求1至3中的任意一项所述的管理方法,其特征在于,进一步包括:
在根据预定策略,确定系统的可用内存空间内满足所述内存容量的连续内存空间之前,对所述系统的可用内存空间的内存容量进行验证,确定所述系统的可用内存空间的内存容量满足于所述用户侧所期望的内容容量。
6.一种内存空间的管理装置,其特征在于,包括:
第一确定模块,用于接收用户侧发送的内存申请请求,并根据所述内存申请请求,确定所述用户侧所期望的内容容量;
第二确定模块,用于根据预定策略,确定系统的可用内存空间中满足所述内存容量的连续内存空间;
信息标识模块,用于根据预先配置的标识信息,对所述连续内存空间进行标识,促使所述系统根据所述标识信息保留所述连续内存空间;
空间映射模块,用于在接收到所述用户侧发送的空间映射请求后,将所述系统保留的所述连续内存空间映射至所述系统的用户空间中。
7.根据权利要求6所述的管理装置,其特征在于,进一步包括:
分析模块,用于在根据预定策略,确定系统的可用内存空间内满足所述内存容量的连续内存空间之后,对所述系统的架构进行分析,确定所述系统执行空间映射操作所要满足的功能需求条件;
第三确定模块,用于根据确定出的功能需求条件,在所述连续内存空间中,确定出满足所述功能需求条件的连续内存空间;
并且,所述信息标识模块还用于根据预先配置的标识信息,对确定出满足所述功能需求条件的连续内存空间进行标识。
8.根据权利要求7所述的管理装置,其特征在于,所述功能需求条件包括DMA条件。
9.根据权利要求6至8中任意一项所述的管理装置,其特征在于,所述第二确定模块包括:
第一确定子模块,用于根据所述内存容量,确定所述系统可用内存空间的内存地址范围内满足所述内存容量的所有内存起始地址和与该内存起始地址对应的内存长度;
查找模块,用于在确定出的所述内存起始地址和所述内存长度中,查找出内存起始地址和根据所述内存长度确定出的内存末位地址之间是连续性的内存起始地址和内存长度;
第二确定子模块,用于根据所述满足连续的内存起始地址和内存长度,确定对应的内存空间。
10.根据权利要求6至8中任意一项所述的管理装置,其特征在于,进一步包括:
验证模块,用于在根据预定策略,确定系统的可用内存空间内满足所述内存容量的连续内存空间之前,对所述系统的可用内存空间的内存容量进行验证,确定所述系统的可用内存空间的内存容量满足于所述用户侧所期望的内容容量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310618123.7A CN103617125A (zh) | 2013-11-27 | 2013-11-27 | 内存空间的管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310618123.7A CN103617125A (zh) | 2013-11-27 | 2013-11-27 | 内存空间的管理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103617125A true CN103617125A (zh) | 2014-03-05 |
Family
ID=50167828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310618123.7A Pending CN103617125A (zh) | 2013-11-27 | 2013-11-27 | 内存空间的管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103617125A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105450986A (zh) * | 2015-11-12 | 2016-03-30 | 厦门雅迅网络股份有限公司 | 一种Linux下视频处理方法 |
CN108304259A (zh) * | 2017-01-11 | 2018-07-20 | 中兴通讯股份有限公司 | 内存管理方法及系统 |
CN110728773A (zh) * | 2019-10-15 | 2020-01-24 | 百度在线网络技术(北京)有限公司 | 一种图像存储的方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707565A (zh) * | 2009-12-04 | 2010-05-12 | 曙光信息产业(北京)有限公司 | 零拷贝网络报文发送、接收方法和装置 |
CN102082698A (zh) * | 2009-11-26 | 2011-06-01 | 上海大学 | 基于改进型零拷贝技术的高性能内核的网络数据处理系统 |
US20110258337A1 (en) * | 2008-08-04 | 2011-10-20 | Zte Corporation | Method and system for enabling zero-copy transmission of streaming media data |
CN102253898A (zh) * | 2011-07-22 | 2011-11-23 | 杭州海康威视数字技术股份有限公司 | 一种图像数据的内存管理方法及装置 |
-
2013
- 2013-11-27 CN CN201310618123.7A patent/CN103617125A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110258337A1 (en) * | 2008-08-04 | 2011-10-20 | Zte Corporation | Method and system for enabling zero-copy transmission of streaming media data |
CN102082698A (zh) * | 2009-11-26 | 2011-06-01 | 上海大学 | 基于改进型零拷贝技术的高性能内核的网络数据处理系统 |
CN101707565A (zh) * | 2009-12-04 | 2010-05-12 | 曙光信息产业(北京)有限公司 | 零拷贝网络报文发送、接收方法和装置 |
CN102253898A (zh) * | 2011-07-22 | 2011-11-23 | 杭州海康威视数字技术股份有限公司 | 一种图像数据的内存管理方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105450986A (zh) * | 2015-11-12 | 2016-03-30 | 厦门雅迅网络股份有限公司 | 一种Linux下视频处理方法 |
CN105450986B (zh) * | 2015-11-12 | 2020-02-07 | 厦门雅迅网络股份有限公司 | 一种Linux下视频处理方法 |
CN108304259A (zh) * | 2017-01-11 | 2018-07-20 | 中兴通讯股份有限公司 | 内存管理方法及系统 |
CN108304259B (zh) * | 2017-01-11 | 2023-04-14 | 中兴通讯股份有限公司 | 内存管理方法及系统 |
CN110728773A (zh) * | 2019-10-15 | 2020-01-24 | 百度在线网络技术(北京)有限公司 | 一种图像存储的方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102402487B (zh) | 一种零拷贝接收报文的方法和系统 | |
WO2018035856A1 (zh) | 实现硬件加速处理的方法、设备和系统 | |
CN105446813B (zh) | 一种资源分配的方法及装置 | |
US9229751B2 (en) | Apparatus and method for managing virtual memory | |
CN101150488B (zh) | 一种零拷贝网络报文接收方法 | |
EP2472412B1 (en) | Explicitly regioned memory organization in a network element | |
BR112017009045B1 (pt) | Método de acesso de recurso de armazenamento suportado por virtualização de entrada/saída de raiz única sr-iov, controlador de armazenamento suportado por virtualização de entrada/saída de raiz única e dispositivo de armazenamento | |
CN105335309B (zh) | 一种数据传输方法及计算机 | |
CN111679921A (zh) | 内存共享方法、内存共享装置及终端设备 | |
US20160070475A1 (en) | Memory Management Method, Apparatus, and System | |
WO2005055053A3 (en) | Mobile device programming system and method | |
US10310759B2 (en) | Use efficiency of platform memory resources through firmware managed I/O translation table paging | |
CN114281484B (zh) | 数据传输方法、装置、设备及存储介质 | |
US9424114B2 (en) | Input/output (I/O) processing via a page fault doorbell mechanism | |
CN105138481A (zh) | 存储数据的处理方法、装置和系统 | |
CN103617125A (zh) | 内存空间的管理方法和装置 | |
US20110225387A1 (en) | Unified Virtual Contiguous Memory Manager | |
CN106776013A (zh) | 多系统的资源调度方法及装置 | |
KR20180041037A (ko) | 멀티 코어 솔리드 스테이트 드라이브의 공유 분산 메모리 관리 방법 | |
US20160070666A1 (en) | Method of controlling direct memory access of a peripheral memory of a peripheral by a master, an associated circuitry, an associated device and an associated computer program product | |
US9547590B2 (en) | Managing memory | |
CN112306693B (zh) | 数据包的处理方法和设备 | |
CN115114042A (zh) | 存储数据访问方法、装置、电子设备和存储介质 | |
CN107491342A (zh) | 一种基于fpga的多虚拟卡使用方法及系统 | |
CN111813384A (zh) | 系统集成方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140305 |
|
RJ01 | Rejection of invention patent application after publication |