CN107168804A - 一种内存资源管理方法与系统 - Google Patents
一种内存资源管理方法与系统 Download PDFInfo
- Publication number
- CN107168804A CN107168804A CN201710402063.3A CN201710402063A CN107168804A CN 107168804 A CN107168804 A CN 107168804A CN 201710402063 A CN201710402063 A CN 201710402063A CN 107168804 A CN107168804 A CN 107168804A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory source
- request
- size
- resource
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Abstract
本发明公开了一种内存资源管理方法与系统。该方法可以包括以下步骤:将计算内存资源划分为一个或多个内存块,所述内存块大小为2N兆字节的整数倍;接收使用内存资源的请求;根据所述请求确定请求内存资源的大小;以及根据所述请求内存资源的大小分配所述可用内存资源。避免了计算使用内存资源与结果使用内存资源公用内存资源的情况,减少了以字节为单位进行内存资源管理容易出现内存资源碎片的问题,提高了内存资源的使用效率。
Description
技术领域
本发明涉及内存管理技术领域,尤其涉及计算组件的内存资源管理方法与系统。
背景技术
现场可编程门阵列(Field Programmable Gate Array,FPGA)是在可编程阵列逻辑(Programmable Array Logic,PAL)、门阵列逻辑(Gate Array Logic,GAL)、可编程逻辑器件(Programmable Logic Device,PLD)等可编程器件的基础上进一步发展的产物。FPGA具有逻辑资源、存储资源、算法模块和嵌入式硬核模块等丰富的资源,并具备高性能、高灵活性等特点。基于以上特点,利用FPGA实现快速准确的计算已经成为研究热点。除了FPGA,显卡上的图形处理器(Graphic Processing Unit,GPU)因其内部分布可应对并行高运算密度大问题的算术逻辑单元,已经被用来解决复杂的计算问题。
这些FPGA、显卡或专用高性能计算卡等计算组件都会配备一定容量的存储器为计算、逻辑处理等过程提供内存资源。上述存储容量通常是受限的,如何合理高效地进行内存资源的管理以满足大存储量的计算是上述计算组件面临的问题。
在现有技术中,内存资源管理多以字节(Byte)为单位进行分配与释放,且计算与结果公用内存资源。以字节为单位进行内存资源管理容易出现内存资源碎片,无形中降低了内存资源的使用效率。而计算使用内存资源与结果使用内存资源公用内存资源使得内存资源不能得到合理的管理和使用。
发明内容
针对上述问题,本发明的目的在于提高内存资源的使用效率,以及解决计算与结果公用内存资源的问题。
为达到上述发明目的,本发明提供的技术方案如下:
一种内存资源管理方法,所述方法由一个计算设备执行,所述计算设备包括至少一个处理器和至少一个存储媒介,其特征在于,所述方法包括:将计算内存资源划分为一个或多个内存块;接收使用所述计算内存资源的请求;根据所述请求确定请求内存资源的大小;以及根据所述请求内存资源的大小分配所述计算内存资源。
一种内存资源管理系统,其特征在于,所述内存资源管理系统包括:处理模块,用于作计算或逻辑处理;内存模块,用于为所述处理模块的所述计算或所述逻辑处理提供计算内存资源;内存管理模块,用于对所述内存模块的所述计算内存资源进行管理,所述对所述内存模块的所述计算内存资源进行管理包括:将所述计算内存资源划分为一个或多个内存块;接收使用所述计算内存资源的请求;根据所述请求确定请求内存资源的大小;以及根据所述请求内存资源的大小分配所述计算内存资源。
在本发明中,所述内存块大小为2N个兆字节,且N为大于或等于1的整数。
在本发明中,所述根据所述请求分配所述计算内存资源包括:确定所述计算内存资源中可用内存资源的大小大于或等于所述请求内存资源的大小,得到第一确定结果;根据所述第一确定结果,修改所述可用内存资源的大小;根据所述请求内存资源的大小以及所述可用内存资源,确定分配内存资源;以及发送所述分配内存资源地址。
在本发明中,所述内存资源管理方法进一步包括:确定所述分配内存资源已被释放,得到第二确定结果;以及根据所述第二确定结果,修改所述可用内存资源的大小。
在本发明中,所述根据所述请求分配所述计算内存资源包括:确定所述计算内存资源中的可用内存资源的大小小于所述请求内存资源的大小,得到第三确定结果;以及根据所述第三确定结果,发送请求失败通知。
在本发明中,所述请求内存资源的大小为所述内存块大小的整数倍。
在本发明中,所述计算设备包括现场可编辑逻辑门阵列(Field-ProgrammableGate Array,FPGA)。
与现有技术相比,本发明的有益效果表现如下:
一、内存资源管理以大字节(例如,2N兆字节,N为大于或等于1的整数)为单位进行分配与释放,减少了以单个字节为单位进行内存资源管理容易出现内存资源碎片的情况;
二、计算使用内存资源与结果使用资源采用分离管理方式,避免了计算使用内存资源与结果使用内存资源公用内存资源的情况;
三、一次释放使用完毕的内存资源,使得可用内存资源可以得到即时的更新,大幅度提高了内存资源的使用效率。
附图说明
图1为本发明实施例的内存资源管理系统结构示意图;
图2为本发明实施例的内存分配示例流程图;
图3为本发明实施例的内存释放示例流程图;以及
图4为本发明实施例内存资源管理系统的一种计算机设备的架构示例图。
具体实施方式
下面通过具体实施例并结合附图对本发明做进一步描述。
如图1所示,所述内存资源管理系统可以包括处理模块110、内存模块120和内存管理模块130。
所述处理模块110可以用于计算、逻辑处理等过程。
所述内存模块120可以包括计算内存资源。所述计算内存资源可以为计算过程提供内存资源。在一些实施例中,所述内存模块120中还可以包括结果内资源,所述结果内存资源可以为计算结果提供内存资源。在一些实施例中,计算内存资源与结果内存资源也可以分别存在于两个存储模块中。计算内存资源与结果内存资源采用分离管理方式,避免了计算内存资源与结果内存资源公用内存资源的情况。
所述内存管理模块130可用于管理所述内存模块120的计算内存资源。
图2为本发明的内存分配示例流程图。
在步骤210,内存管理模块130可以将内存模块120中的计算内存资源划分为一个或多个内存块。所述内存块的大小可以为256字节(Byte)的整数倍,例如,一个内存块的大小可以为512兆字节(Megabyte,M)。在一些实施例中,每个内存块的大小可以相等,也可以不等。
在步骤220,内存管理模块130可以接收使用计算内存资源的请求。所述使用计算内存资源的请求可以来自于处理模块110。
在步骤230,内存管理模块130可以根据所述请求,确定请求内存资源的大小。所述请求内存资源可以只处理模块110在进行计算时所需的内存资源。所述请求内存资源的大小可以为所述内存块大小的整数倍。
在步骤240,内存管理模块130可以判断计算内存资源中的可用内存资源的大小是否小于所述请求内存资源的大小。所述可用内存资源可以指没有被占用的空闲内存资源。如果内存管理模块130判断可用内存资源的大小小于所述请求内存资源的大小,则执行步骤250。如果内存管理模块130判断可用内存资源的大小大于或等于请求内存资源的大小,则执行步骤260。
在步骤250,内存资源管理模块130可以向处理模块110发送请求失败通知。
在步骤260,内存资源管理模块130可以根据请求内存资源的大小和可用内存资源,确定分配内存资源。所述分配内存资源可以包括从可用内存资源中确定的分配给处理模块110的内存资源。
在步骤270,内存资源管理模块130可以修改可用内存资源的大小。所述修改可用内存资源的大小可以包括将所述可用内存资源的大小减去分配内存资源的大小。例如,可用内存资源的大小为2G(Gigabyte),当2G的可用内存资源被分配占用1G后,可用内存资源的大小会被内存资源管理模块130修改为1G。
在步骤280,内存资源管理模块130可以向处理模块110发送分配内存资源地址。所述分配内存资源地址可以用于表示分配内存资源的位置。
在一些实施例中,内存资源管理模块130可以在步骤260之前执行步骤270,也可以在步骤260之后执行步骤270。在一些实施例中,内存资源管理模块130也可以同时执行步骤260和步骤270。
图3为本发明的内存释放示例流程图。
在步骤310,内存资源管理模块130可以确定分配内存资源已被释放。所述释放分配内存资源可以包括处理模块110在使用完毕分配内存资源后,将所述分配内存资源进行释放。
在步骤320,内存资源管理模块130可以修改可用内存资源的大小。所述修改可用内存资源的大小可以包括在可用内存资源的基础上加上释放的内存资源的大小。例如,可用内存资源的大小修为1G,当处理模块110将占用的1G的内存资源使用完毕释放后,内存资源管理模块130可以将可用内存资源的大小修改为2G。
图4为本发明内存资源管理系统的一种计算机设备的架构示例图。
所述计算机400可以是一个通用目的的计算机,或是一个有特定目的的计算机。本发明中的内存资源管理系统能够被所述计算机设备架构通过其硬件设备、软件程序、固件以及它们的组合所实现。为了方便起见,图4中只绘制了一台计算机设备的架构,但是内存资源管理系统所需要的信息的相关计算机功能是可以以分布的方式、由一组相似的平台所实施的,分散系统的处理负荷。
所述计算机设备架构可以包括通信端口440,与之相连的可以是实现数据通信的网络。所述计算机设备架构还可以包括一个处理器470用于执行程序指令。所述计算机设备架构包括一个内部通信总线410,不同形式的程序储存单元以及数据储存单元,例如硬盘420,只读存储器(ROM)460,随机存取存储器(RAM)450,能够被配置为存储所述计算机设备架构处理和/或通信使用的各种数据文件,以及处理器470所执行的可能的程序指令。所述计算机设备架构还可以包括一个输入/输出组件430,支持所述计算机设备架构与外部(例如,键盘)之间的数据和/或信息交互。所述计算机设备架构也可以通过通信网络接受程序及数据。
在一些实施例中,本发明中的内存资源管理系统可以包括FPGA。在一些实施例中,内存资源管理系统中的处理模块110和/或内存管理模块130可以由处理器470实现,存储模块120可以由硬盘420,只读存储器(ROM)460,或随机存取存储器(RAM)450实现。
在一些实施例中,FPGA内存资源总共12G内存,其中8G用于数据处理使用,4G用于存储生成的CT图像。将内存资源设为允许两个计算任务同时运行,每一个计算任务可以使用的内存资源为6G,其中4G用于数据处理,2G用于存储。在处理数据量较大时(超过1G时),该方式与现有技术常用的临时动态申请资源方式相比,性能有大幅提高,可减少大量资源申请和释放的操作。该方式可以减少的内存动态操作数量是非常可观的。其性能提升可以达到提升100%。
以上所述仅为本发明的优选实施而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种内存资源管理方法,所述方法由一个计算设备执行,所述计算设备包括至少一个处理器和至少一个存储媒介,其特征在于,所述方法包括:
将计算内存资源划分为一个或多个内存块;
接收使用所述计算内存资源的请求;
根据所述请求确定请求内存资源的大小;以及
根据所述请求内存资源的大小分配所述计算内存资源。
2.权利要求1所述的内存资源管理方法,其特征在于,所述内存块大小为2N个兆字节,且N为大于或等于1的整数。
3.权利要求1所述的内存资源管理方法,其特征在于,所述根据所述请求分配所述计算内存资源包括:
确定所述计算内存资源中可用内存资源的大小大于或等于所述请求内存资源的大小,得到第一确定结果;
根据所述第一确定结果,修改所述可用内存资源的大小;
根据所述请求内存资源的大小以及所述可用内存资源,确定分配内存资源;以及
发送所述分配内存资源地址。
4.权利要求3所述的内存资源管理方法,其特征在于,所述内存资源管理方法进一步包括:
确定所述分配内存资源已被释放,得到第二确定结果;以及
根据所述第二确定结果,修改所述可用内存资源的大小。
5.权利要求1所述的内存资源管理方法,其特征在于,所述根据所述请求分配所述计算内存资源包括:
确定所述计算内存资源中的可用内存资源的大小小于所述请求内存资源的大小,得到第三确定结果;以及
根据所述第三确定结果,发送请求失败通知。
6.权利要求1所述的内存资源管理方法,其特征在于,所述请求内存资源的大小为所述内存块大小的整数倍。
7.权利要求1所述的内存资源管理方法,其特征在于,所述计算设备包括现场可编辑逻辑门阵列(Field-Programmable Gate Array,FPGA)。
8.一种内存资源管理系统,其特征在于,所述内存资源管理系统包括:
处理模块,用于作计算或逻辑处理;
内存模块,用于为所述处理模块的所述计算或所述逻辑处理提供计算内存资源;
内存管理模块,用于对所述内存模块的所述计算内存资源进行管理,所述对所述内存模块的所述计算内存资源进行管理包括:
将所述计算内存资源划分为一个或多个内存块;
接收使用所述计算内存资源的请求;
根据所述请求确定请求内存资源的大小;以及
根据所述请求内存资源的大小分配所述计算内存资源。
9.权利要求8所述的内存资源管理系统,其特征在于,所述根据所述请求分配所述计算内存资源包括:
确定所述计算内存资源中的可用内存资源的大小大于或等于所述请求内存资源的大小,得到第一确定结果;
根据所述第一确定结果,修改所述可用内存资源的大小;
根据所述请求内存资源的大小以及所述可用内存资源,确定分配内存资源;以及
发送所述分配内存资源地址。
10.权利要求9所述的内存资源管理系统,其特征在于,所述所述根据所述请求分配所述可用内存资源进一步包括:
确定所述分配内存资源已被释放,得到第二确定结果;以及
根据所述第二确定结果,修改所述可用内存资源的大小;
确定所述计算内存资源中的可用内存资源的大小小于所述请求内存资源的大小,得到第三确定结果;以及
根据所述第三确定结果,发送请求失败通知。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710402063.3A CN107168804A (zh) | 2017-05-31 | 2017-05-31 | 一种内存资源管理方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710402063.3A CN107168804A (zh) | 2017-05-31 | 2017-05-31 | 一种内存资源管理方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107168804A true CN107168804A (zh) | 2017-09-15 |
Family
ID=59821281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710402063.3A Pending CN107168804A (zh) | 2017-05-31 | 2017-05-31 | 一种内存资源管理方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107168804A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111279313A (zh) * | 2018-12-18 | 2020-06-12 | 深圳市大疆创新科技有限公司 | Fpga芯片和具有该fpga芯片的电子设备 |
CN117493025A (zh) * | 2023-12-29 | 2024-02-02 | 腾讯科技(深圳)有限公司 | 资源分配方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1635482A (zh) * | 2003-12-29 | 2005-07-06 | 北京中视联数字系统有限公司 | 一种嵌入式系统内存管理的方法 |
CN1963788A (zh) * | 2005-11-08 | 2007-05-16 | 中兴通讯股份有限公司 | 一种内存管理方法 |
CN101221536A (zh) * | 2008-01-25 | 2008-07-16 | 中兴通讯股份有限公司 | 嵌入式系统的内存管理方法及装置 |
CN101499034A (zh) * | 2009-03-05 | 2009-08-05 | 北京中星微电子有限公司 | 内存管理方法 |
CN101799788A (zh) * | 2010-03-23 | 2010-08-11 | 中兴通讯股份有限公司 | 一种分级管理存储资源的方法及系统 |
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式系统的内存控制方法 |
CN104182356A (zh) * | 2014-09-19 | 2014-12-03 | 深圳市茁壮网络股份有限公司 | 一种内存管理方法、装置及终端设备 |
CN105700968A (zh) * | 2016-01-11 | 2016-06-22 | 厦门雅迅网络股份有限公司 | 一种嵌入式系统中内存泄漏诊断处理的方法和装置 |
-
2017
- 2017-05-31 CN CN201710402063.3A patent/CN107168804A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1635482A (zh) * | 2003-12-29 | 2005-07-06 | 北京中视联数字系统有限公司 | 一种嵌入式系统内存管理的方法 |
CN1963788A (zh) * | 2005-11-08 | 2007-05-16 | 中兴通讯股份有限公司 | 一种内存管理方法 |
CN101221536A (zh) * | 2008-01-25 | 2008-07-16 | 中兴通讯股份有限公司 | 嵌入式系统的内存管理方法及装置 |
CN101499034A (zh) * | 2009-03-05 | 2009-08-05 | 北京中星微电子有限公司 | 内存管理方法 |
CN101799788A (zh) * | 2010-03-23 | 2010-08-11 | 中兴通讯股份有限公司 | 一种分级管理存储资源的方法及系统 |
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式系统的内存控制方法 |
CN104182356A (zh) * | 2014-09-19 | 2014-12-03 | 深圳市茁壮网络股份有限公司 | 一种内存管理方法、装置及终端设备 |
CN105700968A (zh) * | 2016-01-11 | 2016-06-22 | 厦门雅迅网络股份有限公司 | 一种嵌入式系统中内存泄漏诊断处理的方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111279313A (zh) * | 2018-12-18 | 2020-06-12 | 深圳市大疆创新科技有限公司 | Fpga芯片和具有该fpga芯片的电子设备 |
CN117493025A (zh) * | 2023-12-29 | 2024-02-02 | 腾讯科技(深圳)有限公司 | 资源分配方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220179560A1 (en) | Distributed storage system and data processing method | |
CN102156665B (zh) | 一种虚拟化系统竞争资源差异化服务方法 | |
CN110941481A (zh) | 资源调度方法、装置及系统 | |
CN105049268A (zh) | 分布式计算资源分配系统和任务处理方法 | |
CN108519917A (zh) | 一种资源池分配方法和装置 | |
US10884667B2 (en) | Storage controller and IO request processing method | |
CN105808328A (zh) | 任务调度的方法、装置和系统 | |
CN102906726A (zh) | 协处理加速方法、装置及系统 | |
US11042414B1 (en) | Hardware accelerated compute kernels | |
CN114416352A (zh) | 算力资源分配方法、装置、电子设备及储存介质 | |
CN106959893A (zh) | 加速器、用于加速器的内存管理方法以及数据处理系统 | |
CN112783807B (zh) | 一种模型计算方法及系统 | |
CN113342498A (zh) | 并发请求处理方法、装置、服务器及存储介质 | |
CN107967175A (zh) | 一种基于多目标优化的资源调度系统及方法 | |
CN114861911A (zh) | 深度学习模型的训练方法、装置、系统、设备和介质 | |
CN107168804A (zh) | 一种内存资源管理方法与系统 | |
CN111767139A (zh) | 一种跨地域多数据中心资源云服务建模方法及系统 | |
CN116467082A (zh) | 一种基于大数据的资源分配方法及系统 | |
WO2022100365A1 (zh) | 人工智能应用任务的管理方法、系统、设备及存储介质 | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN112650577A (zh) | 内存管理方法和装置 | |
CN116069493A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
CN104281587B (zh) | 一种建立连接的方法及装置 | |
CN115658311A (zh) | 一种资源的调度方法、装置、设备和介质 | |
CN113703945B (zh) | 微服务集群的调度方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 201807 Shanghai City, north of the city of Jiading District Road No. 2258 Applicant after: Shanghai Lianying Medical Technology Co., Ltd Address before: 201807 Shanghai City, north of the city of Jiading District Road No. 2258 Applicant before: SHANGHAI UNITED IMAGING HEALTHCARE Co.,Ltd. |