CN108139969B - 一种内存配置方法、装置及系统 - Google Patents
一种内存配置方法、装置及系统 Download PDFInfo
- Publication number
- CN108139969B CN108139969B CN201580083925.XA CN201580083925A CN108139969B CN 108139969 B CN108139969 B CN 108139969B CN 201580083925 A CN201580083925 A CN 201580083925A CN 108139969 B CN108139969 B CN 108139969B
- Authority
- CN
- China
- Prior art keywords
- memory pool
- memory
- local memory
- pool
- idle state
- 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
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
一种内存配置方法、装置及系统,涉及数据存储领域,提高多制式的操作场景下存储块的共享率,使整个内存中存储资源的利用率升高。该方法包括:待配置本地内存池中包含N个存储块,每个存储块中包含M个缓冲区,内存配置装置统计该待配置本地内存池内处于空闲状态的J个缓冲区;若J小于第一阈值,该内存配置装置则从公共内存池中申请至少一个存储块至该待配置本地内存池,直至该待配置本地内存池中处于空闲状态的缓冲区个数等于或大于该第一阈值;若J大于第二阈值,该内存配置装置则从该待配置本地内存池中释放至少一个存储块至该公共内存池,直至该待配置本地内存池内处于空闲状态的缓冲区个数等于或小于该第二阈值。
Description
技术领域
本发明涉及数据存储领域,尤其涉及一种内存配置方法、装置及系统。
背景技术
目前,通用的内存配置方法是将内存,例如DDR(Double Data Rate SDRAM,双倍速率同步动态随机存储器)划分为若干个内存池(Memory Pool),每个内存池内部放置若干相同长度的存储块,在申请内存和释放内存的过程中,最小单位为一块“存储块”。
以处理器、DDR、BMU(buffer management unit,缓冲区管理单元)以及其他功能模块组成的操作系统为例,处理器和其他功能模块在某种制式下(例如2G网络)分别使用的内存大小通常是在一定范围内变化不大的,因此,BMU可以预先配置各个内存池中的存储块之间的比例关系,使内存池中的存储块可以分时或同时的被处理器或其他功能模块使用。
例如,如图1所示,在使用内存前,BMU配置Y块的存储块供处理器以及其他功能模块使用,每个内存块的大小为4X字节(即以X字节为粒度配置Pool A、Pool B、Pool C中存储块大小的比例关系),那么,在向处理器、功能模块1和功能模块2分配内存时,BMU分别从Pool A、Pool B、Pool C中申请相应大小的存储块,设Pool A的存储块长度为X字节、Pool B的存储块长度为2X字节、Pool C的存储块长度为4X字节,则Pool A、Pool B、Pool C的存储块大小比例为1∶2∶4,也就是说,不同内存池中存储块的大小需要尽量接近一定的比例关系。
而在3G网络下工作时,由于处理器、功能模块1和功能模块2在处理数据时粒度可能发生改变,例如,处理器、功能模块1和功能模块2在处理数据时粒度为Y(Y>X)字节,处理器、功能模块1和功能模块2所需的存储块大小的比例关系为1∶3∶5,但是,此时Pool A、PoolB、Pool C中存储块大小的比例关系仍然为1∶2∶4,BMU只能按照配置好的存储块大小的比例关系分配存储块,进而导致在多制式的操作场景下存储块的共享率降低,并使整个内存中存储资源的利用率降低。
发明内容
本发明的实施例提供一种内存配置方法、装置及系统,可提高多制式的操作场景下存储块的共享率,使整个内存中存储资源的利用率升高。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明的实施例提供一种内存配置方法,该内存中包含公共内存池以及至少一个本地内存池,该方法包括:至少一个本地内存池中的待配置本地内存池中包含N个存储块,每个存储块中包含M个缓冲区,该内存配置装置统计该待配置本地内存池内处于空闲状态的缓冲区的个数为J,N≥0,M>0,0≤J≤N*M;若J小于第一阈值,该内存配置装置则从该公共内存池中申请至少一个存储块至该待配置本地内存池,直至该待配置本地内存池中处于空闲状态的缓冲区个数等于或大于该第一阈值;若J大于第二阈值,该内存配置装置则从该待配置本地内存池中释放至少一个存储块至该公共内存池,直至该待配置本地内存池内处于空闲状态的缓冲区个数等于或小于该第二阈值,其中,该第二阈值大于该第一阈值。
可以看出,待配置本地内存池可以通过内存配置装置从公共内存池中申请其他内存池释放的内存块,并将自身空闲的内存块释放至公共内存池,这样,被释放的内存块还可以根据其他本地内存池的申请,被其他本地内存池循环利用,可避免分配内存时对内存中各个缓冲区大小的比例关系限制,同时,由于不同内存池可分别用于不同制式的操作场景,因此,本发明方案还可以提高多制式的操作场景下存储块的共享率,使整个内存中存储资源的利用率升高。
结合第一方面,在第一方面的第一种可能的实现方式中,该内存配置装置则从该公共内存池中申请至少一个存储块至该待配置本地内存池,直至该待配置本地内存池中处于空闲状态的缓冲区个数等于或大于该第一阈值,包括:A、该内存配置装置从公共内存池中申请第一存储块至该待配置本地内存池,该第一存储块为该公共内存池中的任意存储块;B、该内存配置装置将该第一存储块划分为M个缓冲区;C、该内存配置装置统计当前的该待配置本地内存池内处于空闲状态的缓冲区个数;若当前的该待配置本地内存池内处于空闲状态的缓冲区个数小于该第一阈值,则该内存配置装置循环执行步骤A、B和C,直至该待配置本地内存池中处于空闲状态的缓冲区个数等于或大于该第一阈值。
结合第一方面,在第一方面的第二种可能的实现方式中,该内存配置装置则从该待配置本地内存池中释放至少一个存储块至该公共内存池,直至该待配置本地内存池内处于空闲状态的缓冲区个数等于或小于该第二阈值,包括:D、该内存配置装置从该待配置本地内存池中释放第二存储块至该公共内存池,该第二存储块为该待配置本地内存池中的处于空闲状态的存储块;E、该内存配置装置统计当前的该待配置本地内存池内处于空闲状态的缓冲区个数;若当前的该待配置本地内存池内处于空闲状态的缓冲区个数大于该第二阈值,则该内存配置装置循环执行步骤D和E,直至该待配置本地内存池中处于空闲状态的缓冲区个数等于或小于该第二阈值。
结合第一方面以及第一方面的第一至第二种可能的实现方式中的任一种实现方式,在第一方面的第三种可能的实现方式中,该内存配置装置中存储有该待配置本地内存池中处于空闲状态的W个缓冲区的标识,W≤J;其中,该内存配置装置统计该待配置本地内存池内处于空闲状态的J个缓冲区,包括:该内存配置装置计算在该内存配置装置中的缓冲区的个数W,与在该内存中该待配置本地内存池内处于空闲状态的缓冲区的个数Q之和,其中,J=W+Q。
这样一来,当内存配置装置为某软件从该待配置本地内存池中分配空闲的缓冲区时,内存配置装置可以直接将自身存储的处于空闲状态的缓冲区的标识分配给该软件,而无需从内存中的该待配置本地内存池中查询并确定处于空闲状态的缓冲区,进而加速内存配置装置申请缓冲区的速度。
结合第一方面的第三种可能的实现方式中的任一种实现方式,在第一方面的第四种可能的实现方式中,该内存配置装置则从该待配置本地内存池中释放至少一个存储块至该公共内存池,直至该待配置本地内存池内处于空闲状态的缓冲区个数等于或小于该第二阈值,包括:该内存配置装置根据该W个缓冲区中至少一个第一缓冲区的标识,将该至少一个第一缓冲区释放至该待配置本地内存池中该第一缓冲区所处的第三存储块中,该至少一个第一缓冲区与该第三存储块内的缓冲区均处于空闲状态;该内存配置装置从该待配置本地内存池中释放该第三存储块至该公共内存池。
结合第一方面的第四种可能的实现方式中的任一种实现方式,在第一方面的第五种可能的实现方式中,在该内存配置装置根据该W个缓冲区中第一缓冲区的标识,将该第一缓冲区释放至该内存中与该第一缓冲区对应的第三存储块之前,还包括:该内存配置装置统计在该待配置本地内存池中与第二缓冲区对应的存储块内,除该第二缓冲区外的其他缓冲区是否处于空闲状态,该第二缓冲区为该W个缓冲区中的任一个;若该其他缓冲区均处于空闲状态,该内存配置装置则将该第二缓冲区确定为该第一缓冲区。
结合第一方面以及第一方面的第一至第五种可能的实现方式中的任一种实现方式,在第一方面的第六种可能的实现方式中,在内存配置装置统计内存中待配置本地内存池内处于空闲状态的J个缓冲区之前,还包括:该内存配置装置将该内存中预定大小的存储空间划分为该公共内存池,该公共内存池包含Z个存储块,Z≥N。
第二方面,本发明的实施例提供一种内存配置装置,该内存配置装置与内存相连,该内存中包含公共内存池以及至少一个待配置本地内存池,该装置包括:统计单元,用于统计该至少一个本地内存池中的待配置本地内存池内处于空闲状态的缓冲区的个数为J,该待配置本地内存池中包含N个存储块,每个存储块中包含M个缓冲区,N≥0,M>0,0≤J≤N*M;;申请单元,用于若J小于第一阈值,则从该公共内存池中申请至少一个存储块至该待配置本地内存池,直至该待配置本地内存池中处于空闲状态的缓冲区个数等于或大于该第一阈值;释放单元,用于若J大于第二阈值,则从该待配置本地内存池中释放至少一个存储块至该公共内存池,直至该待配置本地内存池内处于空闲状态的缓冲区个数等于或小于该第二阈值,该第二阈值大于该第一阈值。
可以看出,待配置本地内存池可以通过内存配置装置从公共内存池中申请其他内存池释放的内存块,并将自身空闲的内存块释放至公共内存池,这样,被释放的内存块还可以根据其他本地内存池的申请,被其他本地内存池循环利用,可避免分配内存时对内存中各个缓冲区大小的比例关系限制,同时,由于不同内存池可分别用于不同制式的操作场景,因此,本发明方案还可以提高多制式的操作场景下存储块的共享率,使整个内存中存储资源的利用率升高。
结合第二方面,在第二方面的第一种可能的实现方式中,该申请单元,具体用于:A、从公共内存池中申请第一存储块至该待配置本地内存池,该第一存储块为该公共内存池中的任意存储块;B、将该第一存储块划分为M个缓冲区;C、统计当前的该待配置本地内存池内处于空闲状态的缓冲区个数;若当前的该待配置本地内存池内处于空闲状态的缓冲区个数小于该第一阈值,则循环执行步骤A、B和C,直至该待配置本地内存池中处于空闲状态的缓冲区个数等于或大于该第一阈值。
结合第二方面,在第二方面的第二种可能的实现方式中,该释放单元,具体用于:D、从该待配置本地内存池中释放第二存储块至该公共内存池,该第二存储块为该待配置本地内存池中的处于空闲状态的存储块;E、统计当前的该待配置本地内存池内处于空闲状态的缓冲区个数;若当前的该待配置本地内存池内处于空闲状态的缓冲区个数大于该第二阈值,则循环执行步骤D和E,直至该待配置本地内存池中处于空闲状态的缓冲区个数等于或小于该第二阈值。
结合第二方面以及第二方面的第一至第二种可能的实现方式中的任一种实现方式,在第二方面的第三种可能的实现方式中,该装置中存储有该待配置本地内存池中处于空闲状态的W个缓冲区的标识,W≤J;其中,该统计单元,具体用于计算在该内存配置装置中的缓冲区的个数W,与在该内存中该待配置本地内存池内处于空闲状态的缓冲区的个数Q之和,其中,J=W+Q。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,该释放单元,具体用于:根据该W个缓冲区中至少一个第一缓冲区的标识,将该至少一个第一缓冲区释放至该待配置本地内存池中该第一缓冲区所处的第三存储块中,该至少一个第一缓冲区与该第三存储块内的缓冲区均处于空闲状态;从该待配置本地内存池中释放该第三存储块至该公共内存池。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,该装置还包括确定单元,其中,该统计单元,还用于统计在该待配置本地内存池中与第二缓冲区对应的存储块内,除该第二缓冲区外的其他缓冲区是否处于空闲状态,该第二缓冲区为该W个缓冲区中的任一个;该确定单元,用于若该其他缓冲区均处于空闲状态,则将该第二缓冲区确定为该第一缓冲区。
结合第二方面以及第二方面的第一至第五种可能的实现方式中的任一种实现方式,在第二方面的第六种可能的实现方式中,该装置还包括:配置单元,用于将该内存中预定大小的存储空间划分为该公共内存池,该公共内存池包含Z个存储块,Z≥N。
结合第二方面以及第二方面的第一至第六种可能的实现方式中的任一种实现方式,在第二方面的第七种可能的实现方式中,该装置可以为BMU。
第三方面,本发明的实施例还提供一种内存配置装置,其中,该内存配置装置包括:处理器、存储器、总线和通信接口;该存储器用于存储计算机执行指令,该处理器与该存储器通过该总线连接,当该内存配置装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该内存配置装置执行如第一方面中任意之一所述的内存配置方法。
第四方面,本发明的实施例还提供一种内存配置系统,包括第二方面中任一项所述的内存配置装置,以及与该内存配置装置相连的内存,该内存中包含公共内存池以及至少一个本地内存池。
本发明的实施例提供一种内存配置方法、装置及系统,其中,内存配置装置统计待配置本地内存池内处于空闲状态的J个缓冲区,该待配置本地内存池中包含N个存储块,每个存储块中包含M个缓冲区,N≥0,M>0,0≤J≤N*M;若J小于第一阈值,内存配置装置则从公共内存池中申请至少一个存储块至待配置本地内存池,直至待配置本地内存池中处于空闲状态的缓冲区个数等于或大于第一阈值;若J大于第二阈值,内存配置装置则从待配置本地内存池中释放至少一个存储块至公共内存池,直至待配置本地内存池内处于空闲状态的缓冲区个数等于或小于第二阈值。可以看出,待配置本地内存池可以通过内存配置装置从公共内存池中申请其他内存池释放的内存块,并将自身空闲的内存块释放至公共内存池,这样,被释放的内存块还可以根据其他本地内存池的申请,被其他本地内存池循环利用,可避免分配内存时对内存中各个缓冲区大小的比例关系限制,同时,由于不同内存池可分别用于不同制式的操作场景,因此,本发明方案还可以提高多制式的操作场景下存储块的共享率,使整个内存中存储资源的利用率升高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为现有技术中BMU进行内存分配的示意图;
图2为本发明实施例提供的内存配置系统的系统架构图;
图3为本发明实施例提供的存储块的结构示意图一;
图4为本发明实施例提供的一种内存配置方法的流程示意图;
图5为本发明实施例提供的存储块的结构示意图二;
图6为本发明实施例提供的一种内存配置装置的结构示意图一;
图7为本发明实施例提供的一种内存配置装置的结构示意图二;
图8为本发明实施例提供的一种内存配置装置的结构示意图三。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
另外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
具体的,本发明实施例提供的内存配置方法可应用于内存配置系统,如图2所示,该内存配置系统中可以包括内存配置装置01,该内存配置装置01可以为BMU等硬件设备,并且,该内存配置装置01与内存02相连,该内存02中包含公共内存池以及至少一个本地内存池,另外,该内存配置系统中还可以包括处理器03,例如至少一个CPU等,内存配置装置01、内存02以及处理器03通过总线04通信,这样,内存配置装置01可以专门用于管理内存02中存储空间的申请和释放,减轻处理器03的负载。
另外需要说明的是,该内存02中包含的公共内存池和至少一个本地内存池可以为逻辑内存池或者物理内存池,本发明实施例对此不做限定,其中,该公共内存池和每个本地内存池中内可以包含多个存储块,每个存储块均为固定大小。例如,在内存配置装置01在管理内存02中存储空间的申请和释放之前,可以先将内存02中预定大小的存储空间(例如,Z个存储块大小,Z>0)划分为公共内存池。
进一步地,如图3所示,一个存储块(block)中可以包含多个缓冲区(buffer),不同本地内存池中的buffer的大小可能不一,所以不同存储块中装的缓冲区的个数不同,那么,存储块的尾部可以有少许空闲内存无法被利用,即形成尾部碎片。
另外,不同的本地内存池,可以分别对应不同的制式(例如,本地内存池1对应2G网络制式,本地内存池2对应3G网络制式,本地内存池3对应4G网络制式等),或者,不同的本地内存池,也可以分别对应不同类型的软件(例如,本地内存池1对应视频类软件,本地内存池2对应即时通信类软件等),这是由于,不同本地内存池中存储块的缓冲区的大小可能不一致,而不同制式或不同类型软件所使用的内存的粒度也存在差别,例如,在2G网络制式下通常用于处理语音包等小包数据,而本地内存池1中存储块内的缓冲区的大小比较小,因此,在2G网络制式下使用本地内存池1中的存储块可提高内存的利用率。
具体的,为方便描述,以下以至少一个本地内存池中的任一个本地内存池(即待配置本地内存池)举例进行说明,如图4所示,本发明实施例提供的一种内存配置方法,包括下述步骤101-103。
步骤101、内存配置装置统计待配置本地内存池内处于空闲状态的J个缓冲区,该待配置本地内存池中包含N个存储块,每个存储块中包含M个缓冲区,N≥0,M>0,0≤J≤N*M。
步骤102、若J小于第一阈值,内存配置装置则从公共内存池中申请至少一个存储块至该待配置本地内存池,直至待配置本地内存池中处于空闲状态的缓冲区个数等于或大于第一阈值。
步骤103、若J大于第二阈值,内存配置装置则从待配置本地内存池中释放至少一个存储块至该公共内存池,直至待配置本地内存池内处于空闲状态的缓冲区个数等于或小于第二阈值。
在步骤101中,由于各个本地内存池内包含有N个存储块,而每个存储块可划分为大小一定的M个缓冲区,当不同软件在运行时会向相应的本地内存池(例如待配置本地内存池)中申请若干个缓冲区进行数据处理等任务,此时,待配置本地内存池内的部分缓冲区被占用,而未被占用的缓冲区即为处于空闲状态的缓冲区。
而内存配置装置可以定期的统计待配置本地内存池(例如本地内存池1)内处于空闲状态的缓冲区的个数,得到待配置本地内存池1内处于空闲状态的J个缓冲区。
需要说明的是,待配置本地内存池中的各个存储块都有自己的标识,例如存储块的地址,用于表示每个存储块在内存中的位置。相应的,每个存储块的缓冲区也有自己的标识,例如缓冲区的地址,用于表示每个缓冲区在相应存储块中的位置,或者,直接用于指示该缓冲区在内存中的位置。
在步骤102中,若步骤101中得到的处于空闲状态的缓冲区的个数J小于第一阈值,即说明该待配置本地内存池中未被占用的缓冲区的个数较少,而大多数缓冲区已经被占用,此时,内存配置装置可以从公共内存池中申请至少一个存储块至该待配置本地内存池,直至该待配置本地内存池中处于空闲状态的缓冲区个数等于或大于第一阈值。
具体的,若J小于第一阈值时,内存配置装置可首先从公共内存池中申请第一存储块至该待配置本地内存池,该第一存储块为公共内存池中的任意一个存储块;此时,内存配置装置按照预置的缓冲区的大小,将该第一存储块划分为M个缓冲区;进而,内存配置装置统计当前的待配置本地内存池内处于空闲状态的缓冲区个数;若当前的待配置本地内存池内处于空闲状态的缓冲区个数仍小于该第一阈值,则内存配置装置可循环执行上述步骤,直至待配置本地内存池中处于空闲状态的缓冲区个数等于或大于第一阈值,以保证该待配置本地内存池中有足够的处于空闲状态的缓冲区可提供给各个软件使用,从而提高存储资源的利用率。
相应的,在步骤103中,若步骤101中得到的处于空闲状态的缓冲区的个数J大于第二阈值,即说明该待配置本地内存池中未被占用的缓冲区的个数较多,为了避免存储资源浪费,此时,内存配置装置可以从该待配置本地内存池中释放至少一个存储块至该公共内存池,直至该待配置本地内存池内处于空闲状态的缓冲区个数等于或小于第二阈值,其中,该第二阈值大于上述第一阈值。
具体的,若J大于第二阈值时,内存配置装置首先从该待配置本地内存池中释放第二存储块至公共内存池,该第二存储块为待配置本地内存池中的处于空闲状态的存储块;进而,内存配置装置统计当前的待配置本地内存池内处于空闲状态的缓冲区个数;若当前的待配置本地内存池内处于空闲状态的缓冲区个数仍大于第二阈值,则内存配置装置循环执行上述步骤,直至该待配置本地内存池中处于空闲状态的缓冲区个数等于或小于第二阈值。这样一来,从该待配置本地内存池中释放至公共内存池的第二存储块可以被其他待配置本地内存池申请使用,从而提高存储资源的利用率。
例如,待配置本地内存池1内处于空闲状态的缓冲区的个数J大于第二阈值,内存配置装置从该待配置本地内存池1中释放存储块1至公共内存池后,待配置本地内存池1内处于空闲状态的缓冲区的个数J小于该第二阈值,此时,待配置本地内存池2内处于空闲状态的缓冲区的个数J小于第一阈值,那么,内存配置装置可以从公共内存池中取出该存储块1至待配置本地内存池2中,进而将该存储块1划分为P(P>0)个缓冲区进行使用,若待配置本地内存池1对应于2G网络制式的操作场景,而待配置本地内存池2对应于3G网络制式的操作场景,那么可以看出,被释放至公共内存池的存储块1可以跨制式实现内存共享,并且不需要对缓冲区的大小做特定的比例限制。
需要说明的是,本发明实施例中涉及的第一阈值和第二阈值均可由本领域技术人员根据实际经验或特定算法进行预先设置,本发明实施例对此不做限定。
至此,本发明的实施例提供一种内存配置方法,其中,内存配置装置统计待配置本地内存池内处于空闲状态的J个缓冲区,该待配置本地内存池中包含N个存储块,每个存储块中包含M个缓冲区,N≥0,M>0,0≤J≤N*M;若J小于第一阈值,内存配置装置则从公共内存池中申请至少一个存储块至待配置本地内存池,直至待配置本地内存池中处于空闲状态的缓冲区个数等于或大于第一阈值;若J大于第二阈值,内存配置装置则从待配置本地内存池中释放至少一个存储块至公共内存池,直至待配置本地内存池内处于空闲状态的缓冲区个数等于或小于第二阈值。可以看出,待配置本地内存池可以通过内存配置装置从公共内存池中申请其他内存池释放的内存块,并将自身空闲的内存块释放至公共内存池,这样,被释放的内存块还可以根据其他本地内存池的申请,被其他本地内存池循环利用,可避免分配内存时对内存中各个缓冲区大小的比例关系限制,同时,由于不同内存池可分别用于不同制式的操作场景,因此,本发明方案还可以提高多制式的操作场景下存储块的共享率,使整个内存中存储资源的利用率升高。
进一步地,在内存配置装置中还可以设有存储区,可将待配置本地内存池中处于空闲状态的W(W≤J)个缓冲区的标识存储在内存配置装置内的存储区中,例如,内存配置装置可将若干个空闲的缓冲区的标识放置在LIFO(Last In First Out,后进先出)堆栈中,这样一来,当内存配置装置为某软件从该待配置本地内存池中分配空闲的缓冲区时,内存配置装置可以直接将自身存储的处于空闲状态的缓冲区的标识分配给该软件,并标记该分配后的缓冲区为已占用状态,而无需从内存中的该待配置本地内存池中查询并确定处于空闲状态的缓冲区,进而加速内存配置装置申请缓冲区的速度。
然而,在上述过程中,由于待配置本地内存池中处于空闲状态的W个缓冲区的标识存储在内存配置装置内的存储区中,因此,对于内存来说,这W个缓冲区已经被占用了,但这W个缓冲区实质上只是被内存配置装置暂时占用,而并非真正被该软件使用,该软件仍然可以使用这W个缓冲区。
这样一来,在执行上述步骤101-103的内存配置方法时,在步骤101中,内存配置装置在统计待配置本地内存池内处于空闲状态的J个缓冲区时,具体包括:统计位于内存配置装置内的缓冲区的标识个数,即W个,以及在内存中的该待配置本地内存池内处于空闲状态的缓冲区的个数Q(Q≥0)之和,其中,J=W+Q。
进而,与步骤102相同的,若J小于第一阈值,内存配置装置则从公共内存池中申请至少一个存储块至该待配置本地内存池,直至待配置本地内存池中处于空闲状态的缓冲区个数等于或大于第一阈值。
而在步骤103中,若J大于第二阈值,内存配置装置则从待配置本地内存池中释放至少一个存储块至该公共内存池,此时,若该待配置本地内存池中某个存储块内所有的M个缓冲区的标识均不在该内存配置装置,且这M个缓冲区均处于空闲状态是时,内存配置装置可直接将该存储块释放至该公共内存池中。
但是,在经过多次存储块申请和存储块释放后,LIFO堆栈内的W个缓冲区的标识往往属于多个不同的存储块,如图5所示,对于内存中待配置本地内存池内的存储块1来说,缓冲区101-108均为空闲状态,而缓冲区109和110位于内存配置装置的LIFO堆栈内,即存储块1中的所有缓冲区为空闲状态,但是对于内存中的该待配置本地内存池内而言,其认为缓冲区109和110已被占用,由于本发明实施例中内存配置装置需要以存储块为单位进行存储块的申请和释放,因此会导致存储块1在步骤103中无法被释放至公共内存池,并共享给其他制式的待配置本地内存池。
为解决上述问题,在执行步骤103时,若J大于第二阈值,内存配置装置可以先根据该W个缓冲区中的至少一个第一缓冲区的标识,将该至少一个第一缓冲区释放至待配置本地内存池中该第一缓冲区所处的第三存储块中,其中,该第一缓冲区与该第三存储块内的其他缓冲区均处于空闲状态;进而,内存配置装置再从该待配置本地内存池中释放该第三存储块至公共内存池。
具体的,内存配置装置可以先统计该LIFO堆栈中W个缓冲区的标识所对应的每一个缓冲区在待配置本地内存池中所处的存储块的占用情况,以W个缓冲区中的第二缓冲区为例,若在该待配置本地内存池中与第二缓冲区对应的存储块3内,除该第二缓冲区外的其他缓冲区均处于空闲状态,内存配置装置则将该第二缓冲区确定为上述第一缓冲区,进而,内存配置装置根据该第一缓冲区的标识,将该第一缓冲区释放至内存中与该第一缓冲区对应的存储块3中,再从该待配置本地内存池中释放该存储块3至公共内存池。
示例性的,如图5所示,内存配置装置可统计该LIFO堆栈中每一个缓冲区的标识所对应的存储块的占用情况,若确定缓冲区109和缓冲区110所对应的存储块1中,缓冲区101-108均为空闲状态,内存配置装置则可以将该缓冲区109和缓冲区110确定为上述第一缓冲区,进而,内存配置装置根据缓冲区109的标识和缓冲区110的标识,将该缓冲区109和缓冲区110释放至内存中的存储块1中,再从待配置本地内存池中释放该存储块3至公共内存池。这样一来,从该待配置本地内存池中释放至公共内存池的存储块3可以被其他待配置本地内存池申请使用,从而提高多制式的操作场景下存储块的共享率,使整个内存中存储资源的利用率升高。
至此,本发明的实施例提供一种内存配置方法,其中,内存配置装置统计待配置本地内存池内处于空闲状态的J个缓冲区,该待配置本地内存池中包含N个存储块,每个存储块中包含M个缓冲区,N≥0,M>0,0≤J≤N*M;若J小于第一阈值,内存配置装置则从公共内存池中申请至少一个存储块至待配置本地内存池,直至待配置本地内存池中处于空闲状态的缓冲区个数等于或大于第一阈值;若J大于第二阈值,内存配置装置则从待配置本地内存池中释放至少一个存储块至公共内存池,直至待配置本地内存池内处于空闲状态的缓冲区个数等于或小于第二阈值。可以看出,待配置本地内存池可以通过内存配置装置从公共内存池中申请其他内存池释放的内存块,并将自身空闲的内存块释放至公共内存池,这样,被释放的内存块还可以根据其他本地内存池的申请,被其他本地内存池循环利用,可避免分配内存时对内存中各个缓冲区大小的比例关系限制,同时,由于不同内存池可分别用于不同制式的操作场景,因此,本发明方案还可以提高多制式的操作场景下存储块的共享率,使整个内存中存储资源的利用率升高。
另外,图6为本发明实施例提供的一种内存配置装置的结构示意图,本发明实施例提供的内存配置装置可以用于实施上述图1-图5所示的本发明各实施例实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照图1-图5所示的本发明各实施例。
其中,该内存配置装置可以为BMU等硬件设备,本发明对此不作任何限制,可满足运算能力需求的所有硬件产品都适用。
具体的,如图6所示,该内存配置装置包括:
统计单元11,用于统计待配置本地内存池内处于空闲状态的缓冲区的个数为J,所述待配置本地内存池中包含N个存储块,每个存储块中包含M个缓冲区,N≥0,M>0,0≤J≤N*M;
申请单元12,用于若J小于第一阈值,则从所述公共内存池中申请至少一个存储块至所述待配置本地内存池,直至所述待配置本地内存池中处于空闲状态的缓冲区个数等于或大于所述第一阈值;
释放单元13,用于若J大于第二阈值,则从所述待配置本地内存池中释放至少一个存储块至所述公共内存池,直至所述待配置本地内存池内处于空闲状态的缓冲区个数等于或小于所述第二阈值,所述第二阈值大于所述第一阈值。
进一步地,所述申请单元12,具体用于:A、从公共内存池中申请第一存储块至所述待配置本地内存池,所述第一存储块为所述公共内存池中的任意存储块;B、将所述第一存储块划分为M个缓冲区;C、统计当前的所述待配置本地内存池内处于空闲状态的缓冲区个数;若当前的所述待配置本地内存池内处于空闲状态的缓冲区个数小于所述第一阈值,则循环执行步骤A、B和C,直至所述待配置本地内存池中处于空闲状态的缓冲区个数等于或大于所述第一阈值。
进一步地,所述释放单元13,具体用于:D、从所述待配置本地内存池中释放第二存储块至所述公共内存池,所述第二存储块为所述待配置本地内存池中的处于空闲状态的存储块;E、统计当前的所述待配置本地内存池内处于空闲状态的缓冲区个数;若当前的所述待配置本地内存池内处于空闲状态的缓冲区个数大于所述第二阈值,则循环执行步骤D和E,直至所述待配置本地内存池中处于空闲状态的缓冲区个数等于或小于所述第二阈值。
进一步地,所述装置中存储有所述待配置本地内存池中处于空闲状态的W个缓冲区的标识,W≤J;其中,
所述统计单元11,具体用于计算在所述内存配置装置中的缓冲区的个数W,与在所述内存中所述待配置本地内存池内处于空闲状态的缓冲区的个数Q之和,其中,J=W+Q。
进一步地,所述释放单元13,具体用于:根据所述W个缓冲区中至少一个第一缓冲区的标识,将所述至少一个第一缓冲区释放至所述待配置本地内存池中所述第一缓冲区所处的第三存储块中,所述至少一个第一缓冲区与所述第三存储块内的缓冲区均处于空闲状态;从所述待配置本地内存池中释放所述第三存储块至所述公共内存池。
进一步地,如图7所示,所述装置还包括确定单元14,其中
所述统计单元11,还用于统计在所述待配置本地内存池中与第二缓冲区对应的存储块内,除所述第二缓冲区外的其他缓冲区是否处于空闲状态,所述第二缓冲区为所述W个缓冲区中的任一个;
所述确定单元14,用于若所述其他缓冲区均处于空闲状态,则将所述第二缓冲区确定为所述第一缓冲区。
进一步地,如图8所示,所述装置还包括:
配置单元15,用于将所述内存中预定大小的存储空间划分为所述公共内存池,所述公共内存池包含Z个存储块,Z≥N。
相应的,本发明的实施例提供还一种内存配置装置01,该内存配置装置可以为BMU等硬件设备,其中,该内存配置装置01包括:处理器、存储器、总线和通信接口;该存储器用于存储计算机执行指令,该处理器与该存储器通过该总线连接,当该内存配置装置01运行时,该处理器执行该存储器存储的该计算机执行指令,以使该内存配置装置01执行如图2-图5任意之一所述的内存配置方法。具体的内存配置方法可参见上述如图2-图5任意之一所示的实施例中的相关描述,此处不再赘述。
进一步地,本发明实施例还提供的一种内存配置系统的结构示意图,具体可参见图2,该系统包括上述任一种内存配置装置01,以及与该内存配置装置01相连的内存02,该内存02中包含公共内存池以及至少一个待配置本地内存池,本发明实施例提供的内存配置系统可以用于实施上述图1-图5所示的本发明各实施例实现的方法,故此处不再赘述。
至此,本发明的实施例提供一种内存配置装置及系统,其中,内存配置装置统计待配置本地内存池内处于空闲状态的J个缓冲区,该待配置本地内存池中包含N个存储块,每个存储块中包含M个缓冲区,N≥0,M>0,0≤J≤N*M;若J小于第一阈值,内存配置装置则从公共内存池中申请至少一个存储块至待配置本地内存池,直至待配置本地内存池中处于空闲状态的缓冲区个数等于或大于第一阈值;若J大于第二阈值,内存配置装置则从待配置本地内存池中释放至少一个存储块至公共内存池,直至待配置本地内存池内处于空闲状态的缓冲区个数等于或小于第二阈值。可以看出,待配置本地内存池可以通过内存配置装置从公共内存池中申请其他内存池释放的内存块,并将自身空闲的内存块释放至公共内存池,这样,被释放的内存块还可以根据其他本地内存池的申请,被其他本地内存池循环利用,可避免分配内存时对内存中各个缓冲区大小的比例关系限制,同时,由于不同内存池可分别用于不同制式的操作场景,因此,本发明方案还可以提高多制式的操作场景下存储块的共享率,使整个内存中存储资源的利用率升高。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种内存配置方法,其特征在于,所述内存中包含公共内存池以及至少一个本地内存池,所述方法包括:
内存配置装置统计所述至少一个本地内存池中的待配置本地内存池内处于空闲状态的缓冲区的个数为J;所述内存配置装置中存储有所述待配置本地内存池中处于空闲状态的W个缓冲区的标识,所述标识用于指示所述W个缓冲区中每个缓冲区在相应存储块中的位置,W≤J,所述J为所述内存配置装置中的缓冲区的个数W与在所述内存中所述待配置本地内存池内处于空闲状态的缓冲区的个数Q之和,所述待配置本地内存池中包含N个存储块,每个存储块中包含M个缓冲区,N≥0,M>0,0≤J≤N*M;
若J小于第一阈值,所述内存配置装置则从所述公共内存池中申请至少一个存储块至所述待配置本地内存池,直至所述待配置本地内存池中处于空闲状态的缓冲区个数等于或大于所述第一阈值;
若J大于第二阈值,所述内存配置装置则从所述待配置本地内存池中释放至少一个存储块至所述公共内存池,直至所述待配置本地内存池内处于空闲状态的缓冲区个数等于或小于所述第二阈值,所述第二阈值大于所述第一阈值;
所述内存配置装置则从所述待配置本地内存池中释放至少一个存储块至所述公共内存池,直至所述待配置本地内存池内处于空闲状态的缓冲区个数等于或小于所述第二阈值,包括:
所述内存配置装置根据所述W个缓冲区中至少一个第一缓冲区的标识,将所述至少一个第一缓冲区释放至所述待配置本地内存池中所述第一缓冲区所处的第三存储块中,所述至少一个第一缓冲区与所述第三存储块内的缓冲区均处于空闲状态;
所述内存配置装置从所述待配置本地内存池中释放所述第三存储块至所述公共内存池。
2.根据权利要求1所述的方法,其特征在于,所述内存配置装置则从所述公共内存池中申请至少一个存储块至所述待配置本地内存池,直至所述待配置本地内存池中处于空闲状态的缓冲区个数等于或大于所述第一阈值,包括:
A.所述内存配置装置从公共内存池中申请第一存储块至所述待配置本地内存池,所述第一存储块为所述公共内存池中的任意存储块;
B.所述内存配置装置将所述第一存储块划分为M个缓冲区;
C.所述内存配置装置统计当前的所述待配置本地内存池内处于空闲状态的缓冲区个数;
若当前的所述待配置本地内存池内处于空闲状态的缓冲区个数小于所述第一阈值,则所述内存配置装置循环执行步骤A、B和C,直至所述待配置本地内存池中处于空闲状态的缓冲区个数等于或大于所述第一阈值。
3.根据权利要求1所述的方法,其特征在于,所述内存配置装置则从所述待配置本地内存池中释放至少一个存储块至所述公共内存池,直至所述待配置本地内存池内处于空闲状态的缓冲区个数等于或小于所述第二阈值,包括:
D.所述内存配置装置从所述待配置本地内存池中释放第二存储块至所述公共内存池,所述第二存储块为所述待配置本地内存池中的处于空闲状态的存储块;
E.所述内存配置装置统计当前的所述待配置本地内存池内处于空闲状态的缓冲区个数;
若当前的所述待配置本地内存池内处于空闲状态的缓冲区个数大于所述第二阈值,则所述内存配置装置循环执行步骤D和E,直至所述待配置本地内存池中处于空闲状态的缓冲区个数等于或小于所述第二阈值。
4.根据权利要求1所述的方法,其特征在于,在所述内存配置装置根据所述W个缓冲区中至少一个第一缓冲区的标识,将所述至少一个第一缓冲区释放至所述待配置本地内存池中所述第一缓冲区所处的第三存储块之前,还包括:
所述内存配置装置统计在所述待配置本地内存池中与第二缓冲区对应的存储块内,除所述第二缓冲区外的其他缓冲区是否处于空闲状态,所述第二缓冲区为所述W个缓冲区中的任一个;
若所述其他缓冲区均处于空闲状态,所述内存配置装置则将所述第二缓冲区确定为所述第一缓冲区。
5.根据权利要求1-4中任一项所述的方法,其特征在于,在内存配置装置统计内存中待配置本地内存池内处于空闲状态的J个缓冲区之前,还包括:
所述内存配置装置将所述内存中预定大小的存储空间划分为所述公共内存池,所述公共内存池包含Z个存储块,Z≥N。
6.一种内存配置装置,其特征在于,所述内存中包含公共内存池以及至少一个本地内存池,所述装置包括:
统计单元,用于统计所述至少一个本地内存池中的待配置本地内存池内处于空闲状态的缓冲区的个数为J;所述内存配置装置中存储有所述待配置本地内存池中处于空闲状态的W个缓冲区的标识,所述标识用于指示所述W个缓冲区中每个缓冲区在相应存储块中的位置,W≤J,所述J为所述内存配置装置中的缓冲区的个数W与在所述内存中所述待配置本地内存池内处于空闲状态的缓冲区的个数Q之和,所述待配置本地内存池中包含N个存储块,每个存储块中包含M个缓冲区,N≥0,M>0,0≤J≤N*M;
申请单元,用于若J小于第一阈值,则从所述公共内存池中申请至少一个存储块至所述待配置本地内存池,直至所述待配置本地内存池中处于空闲状态的缓冲区个数等于或大于所述第一阈值;
释放单元,用于若J大于第二阈值,则从所述待配置本地内存池中释放至少一个存储块至所述公共内存池,直至所述待配置本地内存池内处于空闲状态的缓冲区个数等于或小于所述第二阈值,所述第二阈值大于所述第一阈值;
所述释放单元,具体用于:根据所述W个缓冲区中至少一个第一缓冲区的标识,将所述至少一个第一缓冲区释放至所述待配置本地内存池中所述第一缓冲区所处的第三存储块中,所述至少一个第一缓冲区与所述第三存储块内的缓冲区均处于空闲状态;从所述待配置本地内存池中释放所述第三存储块至所述公共内存池。
7.根据权利要求6所述的装置,其特征在于,
所述申请单元,具体用于:A.从公共内存池中申请第一存储块至所述待配置本地内存池,所述第一存储块为所述公共内存池中的任意存储块;B.将所述第一存储块划分为M个缓冲区;C.统计当前的所述待配置本地内存池内处于空闲状态的缓冲区个数;若当前的所述待配置本地内存池内处于空闲状态的缓冲区个数小于所述第一阈值,则循环执行步骤A、B和C,直至所述待配置本地内存池中处于空闲状态的缓冲区个数等于或大于所述第一阈值。
8.根据权利要求6所述的装置,其特征在于,
所述释放单元,具体用于:D.从所述待配置本地内存池中释放第二存储块至所述公共内存池,所述第二存储块为所述待配置本地内存池中的处于空闲状态的存储块;E.统计当前的所述待配置本地内存池内处于空闲状态的缓冲区个数;若当前的所述待配置本地内存池内处于空闲状态的缓冲区个数大于所述第二阈值,则循环执行步骤D和E,直至所述待配置本地内存池中处于空闲状态的缓冲区个数等于或小于所述第二阈值。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括确定单元,其中,
所述统计单元,还用于统计在所述待配置本地内存池中与第二缓冲区对应的存储块内,除所述第二缓冲区外的其他缓冲区是否处于空闲状态,所述第二缓冲区为所述W个缓冲区中的任一个;
所述确定单元,用于若所述其他缓冲区均处于空闲状态,则将所述第二缓冲区确定为所述第一缓冲区。
10.根据权利要求6-9中任一项所述的装置,其特征在于,所述装置还包括:
配置单元,用于将所述内存中预定大小的存储空间划分为所述公共内存池,所述公共内存池包含Z个存储块,Z≥N。
11.根据权利要求6-9中任一项所述的装置,其特征在于,所述装置为缓冲区管理单元BMU。
12.一种内存配置系统,其特征在于,包括权利要求6-11中任一项所述的内存配置装置,以及与所述内存配置装置相连的内存,所述内存中包含公共内存池以及至少一个本地内存池。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2015/093113 WO2017070869A1 (zh) | 2015-10-28 | 2015-10-28 | 一种内存配置方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108139969A CN108139969A (zh) | 2018-06-08 |
CN108139969B true CN108139969B (zh) | 2021-06-08 |
Family
ID=58630464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580083925.XA Active CN108139969B (zh) | 2015-10-28 | 2015-10-28 | 一种内存配置方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108139969B (zh) |
WO (1) | WO2017070869A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023035694A1 (zh) * | 2021-09-11 | 2023-03-16 | 华为技术有限公司 | 业务系统、内存管理方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992347B (zh) * | 2019-04-10 | 2022-03-25 | Oppo广东移动通信有限公司 | 界面显示方法、装置、终端及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6898679B2 (en) * | 2001-09-28 | 2005-05-24 | Intel Corporation | Method and apparatus for reordering memory requests for page coherency |
US6918021B2 (en) * | 2001-05-10 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | System of and method for flow control within a tag pipeline |
CN101739354A (zh) * | 2009-12-14 | 2010-06-16 | 浙江大学 | 基于内存池技术的brew手机h.264解码优化方法 |
CN101834796A (zh) * | 2010-05-06 | 2010-09-15 | 中兴通讯股份有限公司 | 一种双控制器通信系统和方法 |
CN102662891A (zh) * | 2012-03-22 | 2012-09-12 | 北京北大众志微系统科技有限责任公司 | 基于亲和性感知的dma缓冲区管理方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS593567A (ja) * | 1982-06-29 | 1984-01-10 | Fujitsu Ltd | ツリ−構造のバツフア数設定方式 |
US6848033B2 (en) * | 2001-06-07 | 2005-01-25 | Hewlett-Packard Development Company, L.P. | Method of memory management in a multi-threaded environment and program storage device |
CN101122883A (zh) * | 2006-08-09 | 2008-02-13 | 中兴通讯股份有限公司 | 一种避免内存碎片化的内存分配方法 |
CN102156675B (zh) * | 2010-02-12 | 2014-03-19 | 中兴通讯股份有限公司 | 一种内存分配方法及装置 |
CN101847127B (zh) * | 2010-06-18 | 2012-01-25 | 福建星网锐捷网络有限公司 | 一种内存管理方法及装置 |
CN103810115B (zh) * | 2012-11-15 | 2017-10-13 | 深圳市腾讯计算机系统有限公司 | 一种内存池的管理方法和装置 |
CN103077126B (zh) * | 2012-12-24 | 2016-08-03 | 中兴通讯股份有限公司 | 一种内存管理方法和装置 |
CN103399821A (zh) * | 2013-06-28 | 2013-11-20 | 贵阳朗玛信息技术股份有限公司 | jitterbuf内存处理方法及装置 |
CN103761192B (zh) * | 2014-01-20 | 2016-08-17 | 华为技术有限公司 | 一种内存分配的方法和装置 |
CN103885569B (zh) * | 2014-04-11 | 2017-05-24 | 珠海全志科技股份有限公司 | 内存的管理方法及装置 |
-
2015
- 2015-10-28 WO PCT/CN2015/093113 patent/WO2017070869A1/zh active Application Filing
- 2015-10-28 CN CN201580083925.XA patent/CN108139969B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6918021B2 (en) * | 2001-05-10 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | System of and method for flow control within a tag pipeline |
US6898679B2 (en) * | 2001-09-28 | 2005-05-24 | Intel Corporation | Method and apparatus for reordering memory requests for page coherency |
CN101739354A (zh) * | 2009-12-14 | 2010-06-16 | 浙江大学 | 基于内存池技术的brew手机h.264解码优化方法 |
CN101834796A (zh) * | 2010-05-06 | 2010-09-15 | 中兴通讯股份有限公司 | 一种双控制器通信系统和方法 |
CN102662891A (zh) * | 2012-03-22 | 2012-09-12 | 北京北大众志微系统科技有限责任公司 | 基于亲和性感知的dma缓冲区管理方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023035694A1 (zh) * | 2021-09-11 | 2023-03-16 | 华为技术有限公司 | 业务系统、内存管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2017070869A1 (zh) | 2017-05-04 |
CN108139969A (zh) | 2018-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107241281B (zh) | 一种数据处理方法及其装置 | |
JP5510556B2 (ja) | 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム | |
CN105183565A (zh) | 计算机、服务质量控制方法及装置 | |
CN113485822A (zh) | 内存管理方法、系统、客户端、服务器及存储介质 | |
CN112905342B (zh) | 资源调度方法、装置、设备及计算机可读存储介质 | |
US10614542B2 (en) | High granularity level GPU resource allocation method and system | |
CN112214313A (zh) | 内存分配方法及相关设备 | |
CN112925607A (zh) | 一种系统扩缩容方法及装置、电子设备 | |
CN111245732A (zh) | 一种流量控制方法、装置及设备 | |
CN111597040A (zh) | 一种资源分配方法、装置、存储介质和电子设备 | |
CN114155026A (zh) | 一种资源分配方法、装置、服务器及存储介质 | |
WO2016202154A1 (zh) | 一种gpu资源的分配方法及系统 | |
CN108139969B (zh) | 一种内存配置方法、装置及系统 | |
CN112260962B (zh) | 一种带宽控制方法及装置 | |
CN111857992B (zh) | 一种Radosgw模块中线程资源分配方法和装置 | |
CN116069493A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
CN104778125A (zh) | 一种内存管理方法及系统 | |
CN110731109B (zh) | 一种资源指示方法、设备和计算机存储介质 | |
CN114371945A (zh) | 报文的传输方法、装置、电子设备及计算机存储介质 | |
CN110891033A (zh) | 网络资源处理方法、装置、网关、控制器及存储介质 | |
CN115344350A (zh) | 云服务系统的节点设备及资源处理方法 | |
CN115878309A (zh) | 资源分配方法、装置、处理核、设备和计算机可读介质 | |
US9182941B2 (en) | Flow control with buffer reclamation | |
KR20150048028A (ko) | 데이터 전송 관리 방법 | |
US20180174592A1 (en) | Spatial audio resource management utilizing minimum resource working sets |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |