CN115934364B - 内存管理方法、装置及电子设备 - Google Patents

内存管理方法、装置及电子设备 Download PDF

Info

Publication number
CN115934364B
CN115934364B CN202310220264.7A CN202310220264A CN115934364B CN 115934364 B CN115934364 B CN 115934364B CN 202310220264 A CN202310220264 A CN 202310220264A CN 115934364 B CN115934364 B CN 115934364B
Authority
CN
China
Prior art keywords
storage
memory
shared
space
interactive object
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
Application number
CN202310220264.7A
Other languages
English (en)
Other versions
CN115934364A (zh
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202310220264.7A priority Critical patent/CN115934364B/zh
Publication of CN115934364A publication Critical patent/CN115934364A/zh
Application granted granted Critical
Publication of CN115934364B publication Critical patent/CN115934364B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

本申请公开了一种内存管理方法、装置及电子设备。该内存管理装置包括内存、通信模块和内存控制模块。内存包括供各交互对象专用的独享存储空间和供所有交互对象共用的共享存储空间。通信模块被配置成接收来自一交互对象的存储请求。内存控制模块被配置成:获取共享存储空间的大小和配置给交互对象的独享存储空间的大小;响应于所述存储请求,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作。根据本申请的内存管理方法、装置及电子设备,能更合理地为各对象分配内存资源,实现内存资源的高效利用。

Description

内存管理方法、装置及电子设备
技术领域
本申请涉及存储领域,特别涉及内存管理方法、装置及电子设备。
背景技术
为了保证内存的使用秩序,需要对内存进行管理。例如,在面临多个对象的内存使用需求时,现有的内存管理方法会为每个对象分配供其独享的存储空间。这虽然能保证每个对象均能分到一定的存储空间,但会因各对象存储需求的变化而造成内存资源无法实时地合理配置,例如一些对象的独享存储空间不足以满足其存储需求但另一些对象的独享存储空间却大部分闲置。
因此,在本领域中一直期望能够提出一种能使得内存资源被高效利用的内存管理装置。
发明内容
鉴于此,本申请提供了一种内存管理方法、装置及电子设备,其能够缓解或克服上面提到的部分或全部缺陷以及其他可能的缺陷。
根据本申请的一个方面,提供了一种内存管理装置,该内存管理装置包括:内存,其包括供各交互对象专用的独享存储空间和供所有交互对象共用的共享存储空间;通信模块,其被配置成接收存储请求,存储请求来自一交互对象;以及,内存控制模块,其被配置成:获取共享存储空间的大小和配置给交互对象的独享存储空间的大小;响应于存储请求,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作。
根据本申请的一些实施例的内存管理装置,其中基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作包括:响应于交互对象的独享存储空间未被占满,优先为交互对象分配独享存储空间中的存储单元。
根据本申请的一些实施例的内存管理装置,其中存储请求包括存储单元请求数量;为交互对象优先分配独享存储空间中的存储单元包括:响应于存储单元请求数量小于或等于独享存储空间的剩余存储单元数量,从独享存储空间中为交互对象分配存储单元请求数量个存储单元。
根据本申请的一些实施例的内存管理装置,其中基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作还包括:响应于独享存储空间已被占满,确定共享存储空间的剩余可用空间;响应于剩余可用空间的存储单元数量大于存储单元请求数量,从共享存储空间中为交互对象分配存储单元请求数量个存储单元。
根据本申请的一些实施例的内存管理装置,其中基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作还包括:响应于独享存储空间的剩余存储单元数量小于存储单元请求数量,确定共享存储空间的剩余可用空间;响应于剩余存储单元数量与剩余可用空间的存储单元数量之和大于或等于存储单元请求数量,将独享存储空间的剩余存储单元全部分配给交互对象,以及将共享存储空间中的第一数量个存储单元分配给交互对象,第一数量指存储单元请求数量与剩余存储单元数量之差。
根据本申请的一些实施例的内存管理装置,其中基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作还包括:响应于剩余存储单元数量与剩余可用空间的存储单元数量之和小于存储单元请求数量,反压或丢弃存储请求。
根据本申请的一些实施例的内存管理装置,其中剩余可用空间包括共享存储空间中未被占用且未被预定为安全空闲存储单元的存储单元。
根据本申请的一些实施例的内存管理装置,其中共享存储空间包括多个共享存储子空间,交互对象与多个共享存储子空间中的一个对应,剩余可用空间包括交互对象对应的共享存储子空间中未被占用的存储单元。
根据本申请的一些实施例的内存管理装置,其中交互对象具有优先级;交互对象与多个共享存储子空间中的一个对应包括:交互对象基于所具有的优先级与多个共享存储子空间中的一个对应。
根据本申请的一些实施例的内存管理装置,其中交互对象的优先级基于交互对象的内存访问频次和/或内存大小需求来确定。
根据本申请的一些实施例的内存管理装置,其中内存控制模块还被配置成:获取交互对象已占用存储单元的数量和针对交互对象设置的存储空间阈值;并且,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作包括:响应于交互对象已占用存储单元的数量与存储单元请求数量之和大于存储空间阈值,反压或丢弃存储请求。
根据本申请的一个方面,提供了一种内存管理方法,内存包括供各交互对象专用的独享存储空间和供所有交互对象共用的共享存储空间,内存管理方法包括:接收存储请求,存储请求来自一交互对象;获取共享存储空间的大小和配置给交互对象的独享存储空间的大小;以及,响应于存储请求,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作。
根据本申请的一些实施例的内存管理方法,其中基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作包括:响应于交互对象的独享存储空间未被占满,为交互对象优先分配独享存储空间中的存储单元。
根据本申请的一些实施例的内存管理方法,其中存储请求包括存储单元请求数量;为交互对象优先分配独享存储空间中的存储单元包括:响应于存储单元请求数量小于或等于独享存储空间的剩余存储单元数量,从独享存储空间中为交互对象分配存储单元请求数量个存储单元。
根据本申请的一些实施例的内存管理方法,其中基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作还包括:响应于独享存储空间已被占满,确定共享存储空间的剩余可用空间;响应于剩余可用空间的存储单元数量大于存储单元请求数量,从共享存储空间中为交互对象分配存储单元请求数量个存储单元。
根据本申请的一些实施例的内存管理方法,其中基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作还包括:响应于独享存储空间的剩余存储单元数量小于存储单元请求数量,确定共享存储空间的剩余可用空间;响应于剩余存储单元数量与剩余可用空间的存储单元数量之和大于或等于存储单元请求数量,将独享存储空间的剩余存储单元全部分配给交互对象,以及将共享存储空间中的第一数量个存储单元分配给交互对象,第一数量指存储单元请求数量与剩余存储单元数量之差。
根据本申请的一些实施例的内存管理方法,其中基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作还包括:响应于剩余存储单元数量与剩余可用空间的存储单元数量之和小于存储单元请求数量,反压或丢弃存储请求。
根据本申请的一些实施例的内存管理方法,其中剩余可用空间包括共享存储空间中未被占用且未被预定为安全空闲存储单元的存储单元。
根据本申请的一些实施例的内存管理方法,其中共享存储空间包括多个共享存储子空间,交互对象与多个共享存储子空间中的一个对应,剩余可用空间包括交互对象对应的共享存储子空间中未被占用的存储单元。
根据本申请的一些实施例的内存管理方法,其中交互对象具有优先级;交互对象与多个共享存储子空间中的一个对应包括:交互对象基于所具有的优先级与多个共享存储子空间中的一个对应。
根据本申请的一些实施例的内存管理方法,其中交互对象的优先级基于交互对象的内存访问频次和/或内存大小需求来确定。
根据本申请的一些实施例的内存管理方法,还包括:获取交互对象已占用存储单元的数量和针对交互对象设置的存储空间阈值;并且,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作包括:响应于交互对象已占用存储单元的数量与存储单元请求数量之和大于存储空间阈值,反压或丢弃存储请求。
根据本申请的一个方面,提供了一种电子设备,该电子设备包括根据本申请一些实施例的内存管理装置。
因此,利用本申请公开的内存管理装置能更合理地为各对象分配内存资源,实现内存资源的高效利用。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。应理解的是,下面描述中的附图仅仅是本申请的一些示例性实施例,其仅仅用于对本公开的原理进行描述,并不旨在将本公开的范围局限于此。本领域的技术人员基于这些附图的教导,能够认识到其他的示例性实施例,这些示例性实施例也应当被认为落在本公开的范围内。在附图中:
图1是示出了根据本申请的一些实施例的内存管理方法的示例性流程图;
图2是进一步示出了图1所示的内存管理方法的细节的示例性流程图;
图3是进一步示出了图1所示的内存管理方法的细节的示例性流程图;
图4是示出了根据本申请的一些实施例的内存管理装置的示意图;
图5是示出了根据本申请的一些实施例的内存管理装置的示意图;以及,
图6是示出了根据本申请的一些实施例的电子设备的示意图。
具体实施方式
下面将参考附图更全面地描述示例性实施例。应理解的是,示例性实施例能够以多种形式实施,因此不应被理解为仅限于在此阐述的实施例;相反,提供这些实施例能够使得本申请变得全面和完整,并将本公开的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性或者所描述的结构的任何部分可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组件、装置、步骤等。此外,本领域中已知的方法、装置、实现或者操作不会被描述,以避免本申请变得冗长。
应理解,虽然本文中可能使用术语“第一”、“第二”、“第三”等来描述各种特征,但这些特征不应受这些术语限制。这些术语仅用于区分一特征与另一特征。因此,下文论述的第一特征可称为第二特征而不偏离本申请概念的教示。如本文中所使用,术语“和/或”及类似术语包括相关联的列出项目中的任一个、多个和全部的所有组合。
在详细介绍本申请的实施例之前,首先对一些术语进行解释,以有利于对本公开原理的更好的理解。
存储空间:通过物理存储介质存储、管理数据的一个载体空间。物理存储介质可以包括具有存储单元的内存等。
内存:内存是许多存储单元的集合,按单元号顺序排列。每个存储单元由若干二进制位构成,以表示存储单元中存放的数值。内存是用来存储程序和各种数据信息的记忆部件。
存储单元:内存中具有大量的存储元,这些存储元按相同的地址被划分为组,组内所有的存储元同时进行读出或写入操作,这样的一组存储元称为一个存储单元。一个存储单元通常可以存放一个字节。
反压:指在接收到数据、信号或指令等信息后,并不立即根据这些信息进行对应的操作,而是对其进行暂存以备后期使用。
在一些实施例中,内存包括供各交互对象专用的独享存储空间和供所有交互对象共用的共享存储空间。图1示出了根据本申请的一些实施例的内存管理方法100的示例性流程图。如图1所示,方法100包括步骤S110、步骤S120和步骤S130。
在步骤S110中,接收来自一交互对象的存储请求。作为示例,交互对象可以是访问内存的设备、任务等。例如,接收来自交互对象的存储请求可以包括接收来自对象1的存储请求,对象1是一个访问内存的设备;接收来自交互对象的存储请求可以包括接收来自对象2的存储请求,对象2是一个访问内存的任务。
在步骤S120中,获取共享存储空间的大小和配置给交互对象的独享存储空间的大小。例如,共享存储空间的大小为80MB,配置给对象1的独享存储空间的大小为1MB。共享存储空间和独享存储空间是对内存包括的存储单元的划分。应理解的是,在根据本申请的一些示例性实施例中,共享存储空间和独享存储空间可以是对多个内存包括的存储单元的划分。
在步骤S130中,响应于存储请求,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作。例如,响应于对象1的存储请求,并且基于对象1的独享存储空间的大小和共享存储空间的大小,针对对象1执行对应的内存操作,例如为对象1分配其对应的独享存储空间或共享存储空间中的存储单元。
因此,方法100根据独享存储空间和共享存储空间的大小,针对对象执行相应的内存操作,从而能更合理地为各对象分配内存资源,实现对内存资源的高效利用。
在一些实施例中,在方法100中的步骤130,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作可以包括:响应于交互对象的独享存储空间未被占满,为交互对象优先分配独享存储空间中的存储单元。
例如对象1的独享存储空间总共有20×220个的存储单元,已占用15×220个的存储单元。由于对象1的存储空间未被占满,响应于对象1的存储请求,为对象1优先分配独享存储空间中的存储单元。
在一些实施例中,存储请求可以包括存储单元请求数量,交互对象的存储单元请求数量指交互对象请求分配的存储单元的数量,例如对象1请求分配5个存储单元,那么对象1的存储单元请求数量是5。为交互对象优先分配独享存储空间中的存储单元可以包括:响应于存储单元请求数量小于或等于独享存储空间的剩余存储单元数量,从独享存储空间中为交互对象分配存储单元请求数量个存储单元。例如,对象1的独享存储空间的剩余存储单元数量为5×220个,对象1的存储单元请求数量是5个。响应于存储单元请求数量小于独享存储空间的剩余存储单元数量,从独享存储空间中为对象1分配5个存储单元。
在一些实施例中,方法100中的步骤130(即,响应于存储请求,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作)可以包括如图2所示的各步骤。具体而言,如图2所示,方法100中的步骤130包括步骤S210和步骤S220。
在步骤S210,响应于独享存储空间已被占满,确定共享存储空间的剩余可用空间。例如,共享存储空间的大小为10MB,已被占用2MB,则共享存储空间的剩余可用空间是8MB。
在步骤S220,响应于剩余可用空间的存储单元数量大于存储单元请求数量,从共享存储空间中为交互对象分配存储单元请求数量个存储单元。例如,对象2的存储单元请求数量为10,剩余可用空间的存储单元数量为8×220个(即剩余可用空间是8MB),则从共享存储空间中为对象2分配10个存储单元。
在一些实施例中,方法100中的步骤130(即,响应于存储请求,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作)可以包括如图3所示的各步骤。具体而言,如图所示,方法100中的步骤130包括步骤S310和步骤S320。
在步骤S310,响应于独享存储空间的剩余存储单元数量小于存储单元请求数量,确定共享存储空间的剩余可用空间。例如,对象3的存储单元请求数量为2×220个、独享存储空间的剩余存储单元数量为1×220个(对应于1MB存储空间),则确定共享存储空间的剩余可用空间,例如确定剩余可用空间为5MB的存储空间。
在步骤S320,响应于剩余存储单元数量与剩余可用空间的存储单元数量之和大于或等于存储单元请求数量,将独享存储空间的剩余存储单元全部分配给交互对象,以及将共享存储空间中的第一数量个存储单元分配给交互对象,第一数量指存储单元请求数量与剩余存储单元数量之差。例如,独享存储空间中剩余存储单元数量为1×220个(对应于1MB存储空间),共享存储空间的剩余可用空间的存储单元数量为5×220个(对应于5MB存储空间),则响应于剩余存储单元数量与剩余可用空间的存储单元数量之和大于对象3的存储单元请求数量(即2×220个),将独享存储空间的剩余存储单元(即1×220个存储单元)全部分配给对象3,以及将共享存储空间中的第一数量个(即1×220个)存储单元分配给对象3。
在一些实施例中,在方法100中的步骤130,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作可以包括:响应于剩余存储单元数量与剩余可用空间的存储单元数量之和小于存储单元请求数量,反压或丢弃存储请求。例如,对象4的存储单元请求数量为10×220个,独享存储空间中剩余存储单元数量为1×220个(对应于1MB存储空间),共享存储空间的剩余可用空间的存储单元数量为4×220个(对应于4MB存储空间),由于剩余存储单元数量与剩余可用空间的存储单元数量之和小于存储单元请求数量,反压或丢弃对象4的存储请求。
在一些实施例中,剩余可用空间包括共享存储空间中未被占用且未被预定为安全空闲存储单元的存储单元。例如,共享存储空间包括10×220个存储单元,已被占用6×220个存储单元,500个存储单元被预定为安全空闲存储单元,则剩余可用空间包括10×220-6×220-500个存储单元。
在一些实施例中,共享存储空间包括多个共享存储子空间,交互对象与多个共享存储子空间中的一个对应,剩余可用空间包括交互对象对应的共享存储子空间中未被占用的存储单元。例如,共享存储空间包括第一共享存储子空间和第二共享存储子空间,对象1、对象2和对象3与第一共享存储子空间对应,对象4和对象5与第二共享存储子空间对应。作为示例,共享存储空间除第一共享存储子空间和第二共享存储子空间外,还可以包括其他多个共享存储子空间,此处不做限制。
在一些实施例中,交互对象具有优先级;交互对象与多个共享存储子空间中的一个对应包括:交互对象基于所具有的优先级与多个共享存储子空间中的一个对应。例如,对象1、对象2和对象3的优先级高,因此与第一共享存储子空间对应。对象4和对象5的优先级低,因此与第二共享存储子空间对应。
在一些实施例中,交互对象的优先级基于所述交互对象的内存访问频次和/或内存大小需求来确定。例如,对象1的内存访问频次高,因此将其优先级确定为高。对象2的内存大小需求小,因此其优先级也被确定为高。对象3的内存访问频次高并且内存大小需求小,因此其优先级被确定为高。
在一些实施例中,方法100还包括:获取交互对象已占用存储单元的数量和针对所述交互对象设置的存储空间阈值。并且,在步骤S130,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作包括:响应于交互对象已占用存储单元的数量与存储单元请求数量之和大于存储空间阈值,反压或丢弃存储请求。例如,对象6已占用的存储单元数量为5×220个,存储单元请求数量为3×220个,针对对象6设置的存储空间阈值为6MB。由于对象6已占用存储单元的数量与存储单元请求数量之和大于存储空间阈值,反压或丢弃存储请求。
图4是示出了根据本申请的一些实施例的内存管理装置400的示意图。如图4所示,装置400包括内存410、通信模块420和内存控制装置430。
内存410包括供各交互对象专用的独享存储空间和供所有交互对象共用的共享存储空间。作为示例,交互对象可以是访问内存的设备、任务等。例如,接收来自交互对象的存储请求可以包括接收来自对象7的存储请求,对象7是一个访问内存的设备;接收来自交互对象的存储请求可以包括接收来自对象8的存储请求,对象8是一个访问内存的任务。
通信模块420被配置成接收存储请求,存储请求来自一交互对象。例如,共享存储空间的大小为80MB,配置给对象7的独享存储空间的大小为1MB。共享存储空间和独享存储空间是对内存包括的存储单元的划分。应理解的是,在根据本申请的一些示例性实施例中,共享存储空间和独享存储空间可以是对多个内存包括的存储单元的划分。
内存控制模块430被配置成:获取共享存储空间的大小和配置给交互对象的独享存储空间的大小;响应于存储请求,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作。例如,响应于对象7的存储请求,并且基于对象7的独享存储空间的大小和共享存储空间的大小,针对对象7执行对应的内存操作,例如为对象7分配其对应的独享存储空间或共享存储空间中的存储单元。
因此,内存管理装置400能够更合理地为各对象分配内存资源,实现内存资源的高效利用。
在一些实施例中,内存管理装置400还可以包括内存配置装置。内存配置装置可以被配置成:存储关于共享存储空间的大小的设置以及关于分配给交互对象的独享存储空间的大小的设置。
在一些实施例中,内存配置装置可以被进一步配置成:存储关于交互对象的存储空间阈值的设置,存储空间包括独享存储空间和共享存储空间。例如对象1的存储空间阈值设置为10MB,对象1的独享存储空间大小设置为2MB,则对象1最多能再占用8MB大小的共享存储空间。
在一些实施例中,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作包括:响应于交互对象的独享存储空间未被占满,优先为交互对象分配独享存储空间中的存储单元。例如,在独享存储空间411中,对象8的独享存储空间总共有20×220个的存储单元,并且对象8已占用其中的15×220个的存储单元。由于对象8的存储空间未被占满,响应于对象8的存储请求,内存控制模块430会为对象8优先分配独享存储空间中的存储单元。
在一些实施例中,存储请求包括存储单元请求数量,交互对象的存储单元请求数量指交互对象请求分配的存储单元的数量,例如对象8请求分配5个存储单元,那么对象8的存储单元请求数量是5。为交互对象优先分配独享存储空间中的存储单元包括:响应于存储单元请求数量小于或等于独享存储空间的剩余存储单元数量,从独享存储空间中为交互对象分配存储单元请求数量个存储单元。例如,对象8的独享存储空间的剩余存储单元数量为5×220个,对象8的存储单元请求数量是5个。响应于存储单元请求数量小于独享存储空间的剩余存储单元数量,内存控制模块430将从独享存储空间中为对象8分配5个存储单元。
在一些实施例中,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作还包括:响应于独享存储空间已被占满,确定共享存储空间的剩余可用空间。例如,共享存储空间412的大小为10MB,已被占用2MB,则共享存储空间412的剩余可用空间是8MB。响应于剩余可用空间的存储单元数量大于存储单元请求数量,从共享存储空间中为交互对象分配存储单元请求数量个存储单元。例如,对象9的存储单元请求数量为10,剩余可用空间的存储单元数量为8×220个(即剩余可用空间是8MB),则从共享存储空间中为对象9分配10个存储单元。
在一些实施例中,基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作还包括:响应于独享存储空间的剩余存储单元数量小于存储单元请求数量,确定共享存储空间的剩余可用空间;响应于剩余存储单元数量与剩余可用空间的存储单元数量之和大于或等于存储单元请求数量,将独享存储空间的剩余存储单元全部分配给交互对象,以及将共享存储空间中的第一数量个存储单元分配给交互对象,第一数量指存储单元请求数量与剩余存储单元数量之差。
作为示例,独享存储空间411里对象10的独享存储空间的剩余存储单元数量为1×220个(对应于1MB存储空间),共享存储空间412的剩余可用空间的存储单元数量为5×220个(对应于5MB存储空间),则响应于剩余存储单元数量与剩余可用空间的存储单元数量之和大于对象10的存储单元请求数量(即2×220个),将对象10的独享存储空间的剩余存储单元(即1×220个存储单元)全部分配给对象10,以及将共享存储空间412中的第一数量个(即1×220个)存储单元分配给对象10。
在一些实施例中,基于所述独享存储空间和所述共享存储空间的大小,针对所述交互对象执行对应的内存操作还包括:响应于剩余存储单元数量与剩余可用空间的存储单元数量之和小于存储单元请求数量,反压或丢弃所述存储请求。
例如,对象11的存储单元请求数量为10×220个,在独享存储空间411里对象11的独享存储空间的剩余存储单元数量为1×220个(对应于1MB存储空间),共享存储空间412的剩余可用空间的存储单元数量为4×220个(对应于4MB存储空间),由于剩余存储单元数量与剩余可用空间的存储单元数量之和小于存储单元请求数量,内存控制模块130将反压或丢弃对象11的存储请求。
在一些实施例中,剩余可用空间包括共享存储空间中未被占用且未被预定为安全空闲存储单元的存储单元。
例如,共享存储空间412包括10×220个存储单元,已被占用6×220个存储单元,500个存储单元被预定为安全空闲存储单元,则剩余可用空间包括10×220-6×220-500个存储单元。
在一些实施例中,共享存储空间包括多个共享存储子空间,交互对象与多个共享存储子空间中的一个对应,剩余可用空间包括交互对象对应的共享存储子空间中未被占用的存储单元。例如,共享存储空间412包括第一共享存储子空间和第二共享存储子空间,对象8、对象9和对象10与第一共享存储子空间对应,对象11和对象12与第二共享存储子空间对应。
在一些实施例中,交互对象具有优先级。交互对象与多个共享存储子空间中的一个对应包括:交互对象基于所具有的优先级与多个共享存储子空间中的一个对应。例如,对象8、对象9和对象10的优先级高,因此与第一共享存储子空间对应。对象11和对象12的优先级低,因此与第二共享存储子空间对应。
在一些实施例中,交互对象的优先级基于交互对象的内存访问频次和/或内存大小需求来确定。例如,对象8的内存访问频次高,因此将其优先级确定为高。对象9的内存大小需求小,因此其优先级也被确定为高。对象10的内存访问频次高并且内存大小需求小,因此其优先级被确定为高。
在一些实施例中,内存控制模块还被配置成:获取交互对象已占用存储单元的数量和针对交互对象设置的存储空间阈值。基于独享存储空间和共享存储空间的大小,针对交互对象执行对应的内存操作包括:响应于交互对象已占用存储单元的数量与存储单元请求数量之和大于存储空间阈值,反压或丢弃存储请求。例如,对象13已占用的存储单元数量为5×220个,存储单元请求数量为3×220个,针对对象13设置的存储空间阈值为6MB。由于对象13已占用存储单元的数量与存储单元请求数量之和大于存储空间阈值,反压或丢弃存储请求。
图5是示出了根据本申请的一些实施例的内存管理装置500的示意图。如图5所示,内存管理装置500包括内存510、通信模块520和内存控制装置530。
内存510包括分别配置给多个对象的独享存储空间,例如对象0的独享存储空间、对象1的独享存储空间等。独享存储空间的大小可以基于对象的数据量来设计。例如,独享存储空间的最小值可以根据过冲值确定,独享存储空间的最大值可以基于对象可能的最大数据存储量来确定。
内存510还包括共享存储空间,共享存储空间可以包括多个共享存储子空间,例如第一共享存储子空间、第二共享存储子空间等。各个共享存储子空间可以被预先分配给交互对象,并且各个共享存储子空间的大小基于各自对应的交互对象的数量和交互对象的数据量的大小来确定。例如,内存510的总存储空间为20MB,它可以包含大小为9.5MB的第一共享存储子空间、大小为9.5MB的第二共享存储子空间和1024个独享存储空间,其中每个独享存储空间对应于一个对象,每个独享存储空间的大小为1024B。
作为示例,第一共享存储子空间可以被分配给第一类对象,第二共享存储子空间可以被分配给第二类对象。第一类对象的优先级比第二类对象的优先级低。第一共享存储子空间的大小可以基于第一类对象的数量和第一类对象中各对象的数据量的大小来确定。第二共享存储子空间的大小可以基于第二类对象的数量和第二类对象中各对象的数据量的大小来确定。例如,第一类对象主要包括多个访问频次低、数据量大的对象,第二类对象主要包括少数访问频次高、数据量小的对象,此时可以将第一共享存储子空间的大小设置得较大,第二共享存储子空间的大小设置得较小。这不仅使得数据量大的对象能有更充足的存储空间,也保证了优先级高的对象不会面临内存资源短缺。因此,不会出现共享存储空间全被优先级低但数据量大的对象占用导致优先级高、数据量小的对象无共享存储空间可用的情况。
在一些实施例中,内存管理装置还可以包括内存配置装置。内存配置装置可以被配置成:存储关于各个共享存储子空间的大小的设置,关于各个共享存储子空间与交互对象之间的分配关系的设置,以及关于交互对象的存储空间阈值的设置,存储空间包括独享存储空间和共享存储子空间。例如,内存配置装置可以被配置成:存储共享存储空间中共享存储子空间(例如第一共享存储子空间、第二共享存储子空间等)的大小的设置,关于各个共享存储子空间与交互对象之间的分配关系的设置,例如第一共享存储子空间分配给第一类对象、第二共享存储子空间配给第二类对象等,以及关于交互对象的存储空间阈值的设置。
作为示例,内存配置装置可以存储如下设置:内存510包含80MB大小的共享存储空间和20个1MB大小的独享存储空间,这些独享存储空间分别对应于对象0、对象1、对象2……对象19。内存配置装置还可以存储关于各个共享存储子空间的大小的设置,例如第一共享存储子空间的大小为70MB,第二共享存储子空间的大小为10MB。内存配置装置还可以存储关于各个共享存储子空间与交互对象之间的分配关系的设置。例如,分配关系包括:第一共享存储子空间被分配给对象0、对象3和对象5等优先级低、数据量大的对象,第二共享存储子空间被分配给对象1、对象4和对象4等优先级高、数据量小的对象。内存配置装置还可以存储关于交互对象的存储空间阈值的设置,存储空间包括独享存储空间和共享存储子空间。作为示例,对象1的存储空间阈值的设置是10MB,则对象1所能占用的独享存储空间和共享存储空间的总和不会超过10MB大小。内存配置装置可以采用静态配置,例如在内存控制装置530进行内存管理之前完成配置。
通信模块520被配置成获取共享存储空间的大小和配置给交互对象的独享存储空间的大小。作为示例,通信模块520可以从内存配置装置获取共享存储空间的大小和配置给交互对象的独享存储空间的大小,以及从对象n获取其存储请求。
内存控制装置530包括多个逻辑电路,逻辑电路用于执行如上文所述的内存管理方法。作为示例,内存控制装置530在收到对象n申请1个存储单元的请求时,会首先获取对象n已占用内存510中存储单元的数量,并从内存配置装置读取对象n的独享存储空间的大小、存储空间阈值和对应的共享存储子空间,例如对应于第一共享存储子空间。
响应于对象n已占用存储单元的数量小于对象n的独享存储空间的大小,内存控制装置530将从对象n的独享存储空间中为对象n分配一个存储单元。
响应于对象n已占用存储单元的数量大于或等于对象n的独享存储空间的大小且对象n已占用存储单元的数量小于对象n的存储空间阈值,内存控制装置530将从对象n对应的共享存储子空间中为对象n分配一个存储单元。例如,对象n已占用存储单元的数量为2×220个(即对象n已存储数据的数据量为2MB),对象n的独享存储空间的大小为1MB,对象n对应的共享存储子空间是第一共享存储子空间,第一共享存储子空间中未被占用的存储单元数量是5×220个,安全空闲存储单元的数量是50个,此时,内存控制装置530将从第一共享存储子空间中为对象n分配一个存储单元。
图6是示出了根据本申请的一些实施例的电子设备的示意图。如图6所示,电子设备600包括内存管理装置610。可选地,内存管理装置610可以是上文实施例中提出的任意内存管理装置,例如内存管理装置400、内存管理装置500等。电子设备600可以是包含内存管理装置610的任意电子设备,例如GPU(图形处理器)设备、CPU(中央处理器)设备、内存设备等,常见的如显卡、板卡、服务器、计算机等,此处不做限制。
尽管已经结合一些实施例描述了本申请,但是其不旨在被限于在本文中所阐述的特定形式。相反,本申请的范围仅由所附权利要求来限制。

Claims (21)

1.一种用于GPU的内存管理装置,其特征在于,包括:
内存配置装置,其上存储有各交互对象对应的独享存储空间的大小的设置、共享存储空间的大小的设置、共享存储子空间的大小的设置、各交互对象的优先级的设置、各优先级对应的共享存储子空间的设置,所述各交互对象对应的独享存储空间的大小的设置和各交互对象的优先级的设置根据所述各交互对象相应的内存访问频次和内存大小需求确定;
内存,其包括被设置成供各交互对象专用的独享存储空间和供所有交互对象共用的共享存储空间;
通信模块,其被配置成接收存储请求,所述存储请求来自所述各交互对象中的一个交互对象;以及,
内存控制模块,其被配置成:
获取所述交互对象的优先级、所述优先级对应的共享存储子空间的大小和配置给所述交互对象的独享存储空间的大小;
响应于所述存储请求,基于所述独享存储空间和所述共享存储子空间的大小,针对所述交互对象执行对应的内存操作。
2.根据权利要求1所述的内存管理装置,其特征在于,所述基于所述独享存储空间和所述共享存储子空间的大小,针对所述交互对象执行对应的内存操作包括:
响应于所述交互对象的独享存储空间未被占满,优先为所述交互对象分配所述独享存储空间中的存储单元。
3.根据权利要求2所述的内存管理装置,其特征在于,所述存储请求包括存储单元请求数量;所述为所述交互对象优先分配所述独享存储空间中的存储单元包括:
响应于所述存储单元请求数量小于或等于所述独享存储空间的剩余存储单元数量,从所述独享存储空间中为所述交互对象分配所述存储单元请求数量个存储单元。
4.根据权利要求3所述的内存管理装置,其特征在于,所述基于所述独享存储空间和所述共享存储子空间的大小,针对所述交互对象执行对应的内存操作还包括:
响应于所述独享存储空间已被占满,确定所述共享存储子空间的剩余可用空间;
响应于所述剩余可用空间的存储单元数量大于所述存储单元请求数量,从所述共享存储子空间中为所述交互对象分配所述存储单元请求数量个存储单元。
5.根据权利要求3所述的内存管理装置,其特征在于,所述基于所述独享存储空间和所述共享存储子空间的大小,针对所述交互对象执行对应的内存操作还包括:
响应于所述独享存储空间的剩余存储单元数量小于所述存储单元请求数量,确定所述共享存储子空间的剩余可用空间;
响应于所述剩余存储单元数量与所述剩余可用空间的存储单元数量之和大于或等于所述存储单元请求数量,将所述独享存储空间的剩余存储单元全部分配给所述交互对象,以及将所述共享存储子空间中的第一数量个存储单元分配给所述交互对象,所述第一数量指所述存储单元请求数量与所述剩余存储单元数量之差。
6.根据权利要求5所述的内存管理装置,其特征在于,所述基于所述独享存储空间和所述共享存储子空间的大小,针对所述交互对象执行对应的内存操作还包括:
响应于所述剩余存储单元数量与所述剩余可用空间的存储单元数量之和小于所述存储单元请求数量,反压或丢弃所述存储请求。
7.根据权利要求4-6中任一项所述的内存管理装置,其特征在于,所述共享存储空间包括多个共享存储子空间,所述交互对象与所述多个共享存储子空间中的一个对应,所述剩余可用空间包括所述交互对象对应的共享存储子空间中未被占用的存储单元。
8.根据权利要求4-6中任一项所述的内存管理装置,其特征在于,所述共享存储空间包括多个共享存储子空间,所述交互对象与所述多个共享存储子空间中的一个对应,所述剩余可用空间包括所述交互对象对应的共享存储子空间中未被占用且未被预定为安全空闲存储单元的存储单元。
9.根据权利要求7所述的内存管理装置,其特征在于,所述交互对象具有优先级;所述交互对象与所述多个共享存储子空间中的一个对应包括:所述交互对象基于所具有的优先级与所述多个共享存储子空间中的一个对应。
10.根据权利要求1所述的内存管理装置,其特征在于,所述内存控制模块还被配置成:获取所述交互对象已占用存储单元的数量和针对所述交互对象设置的存储空间阈值;
并且,所述基于所述独享存储空间和所述共享存储子空间的大小,针对所述交互对象执行对应的内存操作包括:响应于所述交互对象已占用存储单元的数量与所述存储单元请求数量之和大于所述存储空间阈值,反压或丢弃所述存储请求。
11.一种电子设备,其特征在于,包括如权利要求1-10中任一项所述的内存管理装置。
12.一种用于GPU的内存管理方法,其特征在于,所述内存包括被设置成供各交互对象专用的独享存储空间和供所有交互对象共用的共享存储空间,所述各交互对象具有其相应的内存访问频次和内存大小需求,所述方法包括:
接收存储请求,所述存储请求来自一交互对象;
从内存配置装置获取所述交互对象的优先级、所述优先级对应的共享存储子空间的大小和配置给所述交互对象的独享存储空间的大小,在所述内存配置装置上存储有各交互对象对应的独享存储空间的大小的设置、共享存储空间的大小的设置、共享存储子空间的大小的设置、各交互对象的优先级的设置、各优先级对应的共享存储子空间的设置,所述各交互对象对应的独享存储空间的大小的设置和各交互对象的优先级的设置根据所述各交互对象相应的内存访问频次和内存大小需求确定;以及,
响应于所述存储请求,基于所述独享存储空间和所述共享存储子空间的大小,针对所述交互对象执行对应的内存操作。
13.根据权利要求12所述的方法,其特征在于,所述基于所述独享存储空间和所述共享存储子空间的大小,针对所述交互对象执行对应的内存操作包括:响应于所述交互对象的独享存储空间未被占满,为所述交互对象优先分配所述独享存储空间中的存储单元。
14.根据权利要求13所述的方法,其特征在于,所述存储请求包括存储单元请求数量;所述为所述交互对象优先分配所述独享存储空间中的存储单元包括:
响应于所述存储单元请求数量小于或等于所述独享存储空间的剩余存储单元数量,从所述独享存储空间中为所述交互对象分配所述存储单元请求数量个存储单元。
15.根据权利要求14所述的方法,其特征在于,所述基于所述独享存储空间和所述共享存储子空间的大小,针对所述交互对象执行对应的内存操作还包括:
响应于所述独享存储空间已被占满,确定所述共享存储子空间的剩余可用空间;
响应于所述剩余可用空间的存储单元数量大于所述存储单元请求数量,从所述共享存储子空间中为所述交互对象分配所述存储单元请求数量个存储单元。
16.根据权利要求14所述的方法,其特征在于,所述基于所述独享存储空间和所述共享存储子空间的大小,针对所述交互对象执行对应的内存操作还包括:
响应于所述独享存储空间的剩余存储单元数量小于所述存储单元请求数量,确定所述共享存储子空间的剩余可用空间;
响应于所述剩余存储单元数量与所述剩余可用空间的存储单元数量之和大于或等于所述存储单元请求数量,将所述独享存储空间的剩余存储单元全部分配给所述交互对象,以及将所述共享存储子空间中的第一数量个存储单元分配给所述交互对象,所述第一数量指所述存储单元请求数量与所述剩余存储单元数量之差。
17.根据权利要求16所述的方法,其特征在于,所述基于所述独享存储空间和所述共享存储子空间的大小,针对所述交互对象执行对应的内存操作还包括:
响应于所述剩余存储单元数量与所述剩余可用空间的存储单元数量之和小于所述存储单元请求数量,反压或丢弃所述存储请求。
18.根据权利要求15-17中任一项所述的方法,其特征在于,所述共享存储空间包括多个共享存储子空间,所述交互对象与所述多个共享存储子空间中的一个对应,所述剩余可用空间包括所述交互对象对应的共享存储子空间中未被占用的存储单元。
19.根据权利要求15-17中任一项所述的方法,其特征在于,所述共享存储空间包括多个共享存储子空间,所述交互对象与所述多个共享存储子空间中的一个对应,所述剩余可用空间包括所述交互对象对应的共享存储子空间中未被占用且未被预定为安全空闲存储单元的存储单元。
20.根据权利要求18所述的方法,其特征在于,所述交互对象具有优先级;所述交互对象与所述多个共享存储子空间中的一个对应包括:所述交互对象基于所具有的优先级与所述多个共享存储子空间中的一个对应。
21.根据权利要求12所述的方法,其特征在于,所述方法还包括:获取所述交互对象已占用存储单元的数量和针对所述交互对象设置的存储空间阈值;
并且,所述基于所述独享存储空间和所述共享存储子空间的大小,针对所述交互对象执行对应的内存操作包括:
响应于所述交互对象已占用存储单元的数量与所述存储单元请求数量之和大于所述存储空间阈值,反压或丢弃所述存储请求。
CN202310220264.7A 2023-03-09 2023-03-09 内存管理方法、装置及电子设备 Active CN115934364B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310220264.7A CN115934364B (zh) 2023-03-09 2023-03-09 内存管理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310220264.7A CN115934364B (zh) 2023-03-09 2023-03-09 内存管理方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN115934364A CN115934364A (zh) 2023-04-07
CN115934364B true CN115934364B (zh) 2023-10-31

Family

ID=86649371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310220264.7A Active CN115934364B (zh) 2023-03-09 2023-03-09 内存管理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN115934364B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062693A (zh) * 2018-07-26 2018-12-21 郑州云海信息技术有限公司 一种内存管理方法及相关设备
CN109871335A (zh) * 2018-12-28 2019-06-11 努比亚技术有限公司 终端及其内存分配控制方法、计算机可读存储介质
CN113467939A (zh) * 2021-06-24 2021-10-01 深圳前海微众银行股份有限公司 一种容量管理方法、装置、平台和存储介质
CN115658328A (zh) * 2022-12-07 2023-01-31 摩尔线程智能科技(北京)有限责任公司 用于管理存储空间的装置及方法、计算设备、芯片

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4049525B2 (ja) * 2000-08-16 2008-02-20 富士通株式会社 分散処理システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062693A (zh) * 2018-07-26 2018-12-21 郑州云海信息技术有限公司 一种内存管理方法及相关设备
CN109871335A (zh) * 2018-12-28 2019-06-11 努比亚技术有限公司 终端及其内存分配控制方法、计算机可读存储介质
CN113467939A (zh) * 2021-06-24 2021-10-01 深圳前海微众银行股份有限公司 一种容量管理方法、装置、平台和存储介质
CN115658328A (zh) * 2022-12-07 2023-01-31 摩尔线程智能科技(北京)有限责任公司 用于管理存储空间的装置及方法、计算设备、芯片

Also Published As

Publication number Publication date
CN115934364A (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
US10152501B2 (en) Rollover strategies in a n-bit dictionary compressed column store
CN108231109B (zh) 动态随机存取存储器dram的刷新方法、设备以及系统
CN110096221B (zh) 存储器系统及其控制方法
US11151155B2 (en) Memory use in a distributed index and query system
US20070274303A1 (en) Buffer management method based on a bitmap table
CN114356223B (zh) 存储器的访问方法及装置、芯片、电子设备
CN114185818B (zh) 基于扩展页表的gpu访存自适应优化方法及装置
US10789170B2 (en) Storage management method, electronic device and computer readable medium
CN112269656A (zh) 一种基于多核处理器的应用配置方法、装置和系统
CN114385089B (zh) 一种基于交叉编址的动态bank存储方法、装置及电子设备
CN115421924A (zh) 一种内存分配方法、装置及设备
US7035988B1 (en) Hardware implementation of an N-way dynamic linked list
CN110674051A (zh) 一种数据存储方法及装置
CN115934364B (zh) 内存管理方法、装置及电子设备
US20230222058A1 (en) Zoned namespaces for computing device main memory
CN112513824B (zh) 一种内存交织方法及装置
CN114327862B (zh) 一种内存分配方法、装置、电子设备及存储介质
CN111782561B (zh) 一种sram的存储空间分配方法、装置及芯片
CN114356796A (zh) 快闪存储器卡、快闪存储器卡的预分配方法及系统
CN115712581A (zh) 数据访问方法、存储系统及存储节点
CN116107843B (zh) 确定操作系统性能的方法、任务调度方法、设备
CN109344093B (zh) 缓存结构、读写数据的方法和装置
CN111949414B (zh) 一种存储控制器性能优化方法、系统、终端及存储介质
CN117389483B (zh) 一种内存管理方法、装置、电子设备及可读存储介质
CN111966294B (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
GR01 Patent grant
GR01 Patent grant