CN117149447A - 带宽调整方法、装置、设备及存储介质 - Google Patents
带宽调整方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117149447A CN117149447A CN202311426613.7A CN202311426613A CN117149447A CN 117149447 A CN117149447 A CN 117149447A CN 202311426613 A CN202311426613 A CN 202311426613A CN 117149447 A CN117149447 A CN 117149447A
- Authority
- CN
- China
- Prior art keywords
- bandwidth
- memory
- thread
- target
- current
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000015654 memory Effects 0.000 claims abstract description 391
- 238000013500 data storage Methods 0.000 abstract description 2
- 238000013459 approach Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101001116314 Homo sapiens Methionine synthase reductase Proteins 0.000 description 1
- 102100024614 Methionine synthase reductase Human genes 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及数据存储技术领域,公开了带宽调整方法、装置、设备及存储介质,本发明获取多个目标内存,并为多个线程中每个线程分别分配线程对应目标内存;基于目标带宽和线程的数量,确定每个线程对应的目标线程带宽;每隔预设时间,确定线程的当前线程带宽;基于目标线程带宽和当前线程带宽,调整线程访问目标内存的访问设置,以调整多个线程产生的当前带宽。如此,可以根据线程的当前线程带宽和目标线程带宽,调整线程访问目标内存的访问设置,从而动态调整当前线程带宽,使当前线程带宽趋近于目标线程带宽,从而能够提供应用程序需求的带宽,避免内存带宽对应用程序性能的影响。
Description
技术领域
本发明涉及数据存储技术领域,具体涉及带宽调整方法、装置、设备及存储介质。
背景技术
计算机系统中往往同时运行着众多应用程序,而每个应用程序在运行时都需要到内存中加载待处理数据或者存储处理完成的数据,因此,内存带宽会影响应用程序的性能。
发明内容
有鉴于此,本发明提供了一种带宽调整方法、装置、设备及存储介质,以解决内存带宽影响应用程序性能的问题。
第一方面,本发明提供了一种带宽调整方法,该方法包括:
获取多个目标内存,并为多个线程中每个线程分别分配线程对应目标内存;
基于目标带宽和线程的数量,确定每个线程对应的目标线程带宽;
每隔预设时间,确定线程的当前线程带宽;
基于目标线程带宽和当前线程带宽,调整线程访问目标内存的访问设置,以调整多个线程产生的当前带宽。
如此,可以根据线程的当前线程带宽和目标线程带宽,调整线程访问目标内存的访问设置,从而动态调整当前线程带宽,使当前线程带宽趋近于目标线程带宽,从而能够提供应用程序需求的带宽,避免内存带宽对应用程序性能的影响。
在一种可选的实施方式中,获取多个目标内存,并为多个线程中每个线程分别分配线程对应的目标内存,包括:
申请待分配内存,并确定待分配内存所在的内存通道;
将所在的内存通道与目标内存通道一致的待分配内存,确定为目标内存;
按照预设分配规则,为每个线程分别分配线程对应的目标内存。
如此,可以为指定的目标内存配置带宽,从而能够为应用程序访问的目标内存配置带宽,向应用程序提供需求的带宽。
在一种可选的实施方式中,申请待分配内存,并确定待分配内存所在的内存通道,包括:
申请待分配内存,并获取待分配内存对应的虚拟地址;
基于待分配内存对应的虚拟地址,确定待分配内存对应的物理地址;
对待分配内存对应的物理地址进行解析,确定待分配内存所在的内存通道。
在一种可选的实施方式中,基于待分配内存对应的虚拟地址,确定待分配内存对应的物理地址,包括:
基于待分配内存对应的虚拟地址,确定待分配内存对应的虚拟页和页内偏移;
基于待分配内存对应的虚拟页,确定待分配内存对应的物理页;
基于待分配内存对应的物理页和页内偏移,确定待分配内存对应的物理地址。
在一种可选的实施方式中,预设分配规则为多个线程访问不同的目标内存;按照预设分配规则,为每个线程分别分配线程对应的目标内存,包括:
将多个目标内存分为多个内存集合;内存集合的数量与线程的数量一致;
将多个内存集合,分别分配给多个线程。
如此,可以使不同的线程访问不同的目标内存,线程之间互不干扰。
在一种可选的实施方式中,预设分配规则为多个线程共享目标内存;按照预设分配规则,为每个线程分别分配线程对应的目标内存,包括:
将多个目标内存分配给每个线程。
如此,可以使各个线程访问相同的目标内存。
在一种可选的实施方式中,每隔预设时间,确定线程的当前线程带宽,包括:
获取线程每次访问目标内存的数据量,以及预设时间内线程访问目标内存的访问次数;
基于数据量、访问次数和预设时间,确定线程的当前线程带宽。
在一种可选的实施方式中,基于目标线程带宽和当前线程带宽,调整线程访问所述目标内存的访问规则,以调整多个所述线程产生的当前带宽,包括:
当当前线程带宽小于目标线程带宽时,将线程的数量增加预设数量,得到调整后的数量;
基于调整后的数量和目标带宽,更新目标线程带宽和当前带宽。
如此,可以在当前线程带宽小于目标线程带宽时增加线程的数量,从而通过增加线程的方式增加线程的总带宽,使最终在目标内存中产生的带宽趋近于目标带宽。
在一种可选的实施方式中,基于目标线程带宽和当前线程带宽,调整线程访问所述目标内存的访问规则,以调整多个所述线程产生的当前带宽,包括:
当当前线程带宽大于目标线程带宽时,将访问时间间隔设置为预设时间间隔,以调整所述当前线程带宽和所述当前带宽。
如此,可以在当前线程带宽大于目标线程带宽时使线程间隔一定时间访问目标内存,从而通过降低访问次数的方式降低当前线程带宽,使当前线程带宽趋近于目标线程带宽。
在一种可选的实施方式中,将访问时间间隔设置为预设时间间隔,以调整所述当前线程带宽和所述当前带宽之后,还包括:
将访问时间间隔作为第一历史时间间隔;
获取预设时间内线程访问目标内存的访问次数;
基于线程每次访问目标内存的数据量、访问次数和预设时间,更新当前线程带宽;
当当前线程带宽大于目标线程带宽时,基于第一历史时间间隔确定当前访问时间间隔;
将访问时间间隔设置为当前访问时间间隔,以调整当前线程带宽和当前带宽。
如此,可以在设置访问时间间隔对当前线程带宽进行调整后,当前线程带宽依然大于目标线程带宽的情况下,根据上一次设置的访问时间间隔进一步确定新的访问时间间隔,从而进一步降低访问次数以降低当前线程带宽,使当前线程带宽趋近于目标线程带宽。
在一种可选的实施方式中,将访问时间间隔设置为当前访问时间间隔,以调整当前线程带宽和当前带宽之后,还包括:
将第一历史时间间隔作为第二历史时间间隔,将当前访问时间间隔作为第一历史时间间隔;
获取预设时间内线程访问目标内存的访问次数;
基于线程每次访问目标内存的数据量、访问次数和预设时间,更新当前线程带宽;
当当前线程带宽小于目标线程带宽时,基于第一历史时间间隔和第二历史时间间隔确定当前访问时间间隔;
将访问时间间隔设置为当前访问时间间隔,以调整当前线程带宽和当前带宽。
如此,可以在设置访问时间间隔对当前线程带宽进行调整后,当前线程带宽小于目标线程带宽的情况下,根据前两次设置的访问时间间隔进一步确定新的访问时间间隔,从而提高访问次数以提高当前线程带宽,使当前线程带宽趋近于目标线程带宽。
在一种可选的实施方式中,该方法还包括:
将目标内存的物理地址写入内存类型范围寄存器中;
通过内存类型范围寄存器,将目标内存中的数据设置为不能被高速缓存保存。
如此,可以使目标内存中的数据不能被高速缓存保护,只能通过主存进行加载或者存储,从而使线程访问目标内存的数据流量都能够用来生成目标内存的带宽。
第二方面,本发明提供了一种带宽调整装置,该装置包括:
目标内存分配模块,用于获取多个目标内存,并为多个线程中每个线程分别分配线程对应的目标内存;
目标线程带宽确定模块,用于基于目标带宽和线程的数量,确定每个线程对应的目标线程带宽;
当前线程带宽确定模块,用于每隔预设时间,确定每个线程的对应当前线程带宽;
当前带宽调整模块,用于基于目标线程带宽和当前线程带宽,调整线程访问目标内存的访问设置,以调整多个线程产生的当前带宽。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的带宽调整方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的带宽调整方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是计算机存储系统中存储设备的层级示意图;
图2是根据本发明实施例的带宽调整方法的流程图;
图3是根据本发明实施例的另一带宽调整方法的流程图;
图4是计算机系统中内存插槽的分布示意图;
图5是根据本发明实施例的带宽调整方法中获取目标内存的流程示意图;
图6是根据本发明实施例的又一带宽调整方法的流程图;
图7是根据本发明实施例的带宽调整方法的当前线程带宽调整示意图;
图8是根据本发明实施例的带宽调整装置的结构框图;
图9是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
计算机存储系统由不同层级的存储设备组成,图1是计算机存储系统中存储设备的层级示意图,如图1所示,图1中每一层级的存储设备都比其下一层级的存储设备拥有更高的速度、更低的延迟以及更小的容量。目前,计算机系统中中央处理器的速度都非常快,往往需要等待待处理的数据从主存中提取到中央处理器中处理或等待处理完成的数据存储到主存中,因而计算机中加载和存储数据的速度已经成为影响计算机发挥计算能力、提升应用程序性能的因素。同时,计算机系统中往往同时运行着众多应用程序,而每个应用程序在运行时都需要到主存中加载待处理数据或者存储处理完成的数据。主存需要服务于众多的应用程序,其实时提供的带宽处于不断变化中,而性能要求较高的应用程序对带宽的变化即为敏感,不能灵活控制内存带宽,不能提供应用程序需求的带宽,就会影响应用程序的性能。同样的,在应用研发阶段,如何灵活控制内存带宽,以测试不同带宽情况下应用程序的性能表现,也是一个需要解决的问题。
基于此,本发明实施例提供了一种带宽调整方法,该方法获取多个目标内存,并为多个线程中每个线程分别分配线程对应目标内存;基于目标带宽和线程的数量,确定每个线程对应的目标线程带宽;每隔预设时间,确定线程的当前线程带宽;基于目标线程带宽和当前线程带宽,调整线程访问目标内存的访问设置,以调整多个线程产生的当前带宽。如此,可以根据线程的当前线程带宽和目标线程带宽,调整线程访问目标内存的访问设置,从而动态调整当前线程带宽,使当前线程带宽趋近于目标线程带宽,从而能够提供应用程序需求的带宽,避免内存带宽对应用程序性能的影响。
根据本发明实施例,提供了一种带宽调整方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种带宽调整方法,可用于上述的计算机系统,图2是根据本发明实施例的带宽调整方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,获取多个目标内存,并为多个线程中每个线程分别分配线程对应的目标内存。
本发明实施例中,目标内存为指定内存通道的内存,是应用程序加载或者存储数据对应的内存。为了将带宽配置给应用程序,就需要申请并获取得到应用程序对应的目标内存,同时将目标内存分配给线程,使线程能够访问这些目标内存,从而通过线程访问带来的数据流量形成带宽。
在一种可选的实施方式中,由上述图1可知,计算机系统由不同存储层次的存储设备组成,高速缓存会将主存中的一部分数据预先加载进来供处理器使用,当该部分数据大小不超过高速缓存容量,且处理器中不同核心不共享该部分数据时,数据会在高速缓存中存留供处理器访问,而不再访问主存,这就不利于线程访问主存,也就是目标内存生成带宽,因此需要限制数据在高速缓存中的保存。具体的,将目标内存的物理地址写入内存类型范围寄存器中;通过内存类型范围寄存器,将目标内存中的数据设置为不能被高速缓存保存。内存类型范围寄存器(Memory Type Range Registers,MTRR)用于确定系统中内存的类型,在内存类型范围寄存器将目标内存对应的物理地址设置为uncachable,从而将目标内存中的数据设置为不被高速缓存保存,只能写入目标内存。由此,使目标内存中的数据不能被高速缓存保存,只能通过主存进行加载或者存储,从而使线程访问目标内存的数据流量都能够用来生成目标内存的带宽。
步骤S202,基于目标带宽和线程的数量,确定每个线程对应的目标线程带宽。
本发明实施例中,目标带宽即为应用程序需求的带宽,或者需要用来测试应用程序性能的指定带宽。目标带宽实际上是由访问目标内存的众多线程分别形成的带宽汇总而成的,那么根据目标带宽和线程的数量,就可以确定每个线程需要生成的带宽,也就是目标线程带宽。
步骤S203,每隔预设时间,确定每个线程对应的当前线程带宽。
本发明实施例中,当前线程带宽为线程在实际运行过程中访问目标内存产生的带宽,每隔预设时间,确定每个线程产生的当前线程带宽,从而根据当前线程带宽来确定目标内存中实际产生的带宽与预期的目标带宽之间的差距,由此动态调整当前线程带宽,使目标内存中的带宽趋近于目标带宽,从而满足应用程序的带宽需求。
步骤S204,基于目标线程带宽和当前线程带宽,调整线程访问目标内存的访问设置,以调整多个线程产生的当前带宽。
本发明实施例中,线程访问目标内存的访问设置可以包括线程的具体数量以及线程每次访问其对应的目标内存的时间间隔,通过调整线程访问目标内存的访问设置,对当前线程带宽进行调整,使当前线程带宽趋近于目标线程带宽,从而多个线程产生的当前带宽趋近于目标带宽。
本发明实施例的带宽调整方法,可以根据线程的当前线程带宽和目标线程带宽,调整线程访问目标内存的访问设置,从而动态调整当前线程带宽,使当前线程带宽趋近于目标线程带宽,从而是多个线程产生的当前带宽趋近于目标带宽,从而能够提供应用程序需求的带宽。
在本实施例中提供了一种带宽调整方法,可用于上述的计算机系统,图3是根据本发明实施例的另一带宽调整方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,获取多个目标内存,并为多个中每个线程分别分配线程对应的目标内存。
具体的,步骤S301,包括:
步骤S3011,申请待分配内存,并确定待分配内存所在的内存通道。
本发明实施例中,图4是计算机系统中内存插槽的分布示意图,如图4所示,计算机系统中内存可以分布在不同的内存插槽上,不同的内存插槽通过不同的内存通道连接到处理器。不同应用程序所使用的内存可能存在于不同的内存通道连接的内存插槽上,为了获取到应用程序对应的目标内存,就需要对申请得到的待分配内存所在的内存通道进行确定。
在一种可选的实施方式中,上述步骤S3011,可以包括如下步骤:
步骤a1,申请待分配内存,并获取待分配内存对应的虚拟地址。
本发明实施例中,在申请得到待分配内存之后,可以获取到系统返回给应用程序的虚拟地址。通常情况下,系统一般以4kb为单位为应用程序分配内存,内存控制器管理内存的最小粒度为64字节,应用程序首先通过malloc()函数以4kb为大小向操作系统申请待分配内存,操作系统分配4kb大小内存作为待分配内存,并返回该待分配内存的虚拟地址。
步骤a2,基于待分配内存对应的虚拟地址,确定待分配内存对应的物理地址。
本发明实施例中,步骤a1中得到的待分配内存的虚拟地址是该段内存的首地址,如上所述,由于内存控制器管理内存的最小粒度为64字节,在从虚拟地址转换得到物理地址的过程中,以64字节为粒度进行转换,也就是分别以该虚拟地址、该虚拟地址+64*1、该虚拟地址+64*2、……、该虚拟地址+64*n为参数进行物理地址的转换。
在一种可选的实施方式中,上述步骤a2,可以包括如下步骤:
步骤a21,基于待分配内存对应的虚拟地址,确定待分配内存对应的虚拟页和页内偏移。
本发明实施例中,针对上述转换得到的各个虚拟地址,分别确定其对应的虚拟页和页内偏移。由于硬件系统一般以分页的方式管理内存,一个虚拟页对应一个物理页,同时考虑到在虚拟地址中连续的地址,在物理地址上可能是分散分布在内存上的,但在一个页内虚拟地址和物理地址是连续地一一对应的,那么就可以通过虚拟地址所在的虚拟页对应的物理页,来确定物理地址。对于一个虚拟地址而言,其低12位对应于页内偏移,其余高位对应于虚拟页的页号,以4kb的页大小为例,一个64位长的虚拟地址,其高52位为虚拟页的页号,低12位为页内偏移。
步骤a22,基于待分配内存对应的虚拟页,确定待分配内存对应的物理页。
本发明实施例中,Linux为每一个进程都维护了一个页表,放在内存中,页表的每一项就是一个虚拟页的页号对应的物理页的页号。通过内存中存储的页表来确定虚拟页对应的物理页。页表中,每一个页对应一个64位,也就是8字节的字段,将虚拟页的页号与8字节相乘就能够得到页表中该虚拟页的信息在页表中的偏移量,根据该偏移量从页表中读取8字节的字段,那么该8字节的字段第0至54位就是该虚拟页对应的物理页的页号。
步骤a23,基于待分配内存对应的物理页和页内偏移,确定待分配内存对应的物理地址。
本发明实施例中,将步骤a22中得到物理页的页号右移12位后与页内偏移相加,就能够得到该虚拟地址对应的物理地址。
通过上述步骤a21至步骤a22,对上述待分配内存转换得到的所有虚拟地址都进行物理地址的转换,得到待分配内存对应的物理地址。
步骤a3,对待分配内存对应的物理地址进行解析,确定待分配内存所在的内存通道。
本发明实施例中,通过源地址解码(source address decode,SAD)以及目标地址解码(target address decode,TAD),对待分配内存对应的物理地址进行解析,确定待分配内存所在的内存通道。
步骤S3012,将所在的内存通道与目标内存通道一致的待分配内存,确定为目标内存。
本发明实施例中,目标内存通道为目标内存所在的内存通道。当待分配内存所在的内存通道与目标内存通道一致时,表明待分配内存是满足应用程序的内存,将其确定为目标内存。
在一种可选的实施方式中,当待分配内存所在的内存通道与目标内存通道不一致时,将该待分配内存释放。当需要获取多个目标内存时,可以重复执行上述步骤S3011至步骤S3012,将内存通道与目标内存通道一致的待分配内存作为目标内存保留,将内存通道与目标内存通道不一致的待分配内存释放,重复申请内存,直到目标内存的数量达到需求数量。
图5是根据本发明实施例的带宽调整方法中获取目标内存的流程示意图,以下结合图5,对本发明实施例中获取目标内存的流程作进一步阐述:
当需求n块64字节长度对齐的目标内存时,以4kb为单位申请内存,得到待分配内存;对于得到的待分配内存,以64字节为单位,获得64个虚拟地址;通过pagemap文件,也就是页表,获取这64个虚拟地址对应的物理页,进一步得到其对应的物理地址;然后通过EDAC(Error Detection And Correction,错误检测和纠正)模块对物理地址进行源地址解码以及目标地址解码,得到该待分配内存所在的内存通道的通道号,将其与需求的目标内存所在的目标内存通道的通道号进行比对,当两者一致时,保存待分配内存的虚拟地址,将该待分配内存作为目标内存保留,当两者不一致时,将待分配内存释放。重复上述步骤,直到获取到n块目标内存。
步骤S3013,按照预设分配规则,为每个线程分别分配线程对应的目标内存。
本发明实施例中,预设分配规则包括多个线程访问不同的目标内存和多个线程共享目标内存两种。当将预设分配规则设置为多个线程访问不同的目标内存时,将多个目标内存分为多个内存集合;内存集合的数量与线程的数量一致将多个内存集合,分别分配给多个线程;在该种分配规则下,不同线程访问不同的目标内存,线程之间互不干扰。当将预设分配规则设置为多个线程共享目标内存时,将多个目标内存分配给多个线程中的每个线程;在该种分配规则下,各个线程访问相同的目标内存。
在一种可选的实施方式中,在为线程分配目标内存之前,还会将每个线程与处理器核心进行绑定,一个线程对应一个处理器核心,不同线程对应不同的处理器核心,通过处理器核心运行线程,以充分发挥处理器核心的性能。
步骤S302,基于目标带宽和线程的数量,确定每个线程对应的目标线程带宽。详细请参见图2所示实施例的步骤S202,在此不再赘述。
步骤S303,每隔预设时间,确定每个线程对应的当前线程带宽。详细请参见图2所示实施例的步骤S203,在此不再赘述。
步骤S304,基于目标线程带宽和当前线程带宽,调整线程访问目标内存的访问设置,以调整多个线程产生的当前带宽。详细请参见图2所示实施例的步骤S204,在此不再赘述。
在本实施例中提供了一种带宽调整方法,可用于上述的计算机系统,图6是根据本发明实施例的又一带宽调整方法的流程图,如图6所示,该流程包括如下步骤:
步骤S601,获取多个目标内存,并为多个线程中每个线程分别分配线程对应目标内存。详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S602,基于目标带宽和线程的数量,确定每个线程对应的目标线程带宽。详细请参见图2所示实施例的步骤S202,在此不再赘述。
步骤S603,每隔预设时间,确定每个线程对应的当前线程带宽。
具体的,步骤S603,包括:
步骤S6031,获取线程每次访问目标内存的数据量,以及预设时间内线程访问目标内存的访问次数。
本发明实施例中,线程每次访问目标内存的数据量的大小是固定的,在预设时间内,统计线程访问目标内存的访问次数。
步骤S6032,基于数据量、访问次数和预设时间,确定线程的当前线程带宽。
本发明实施例中,线程的当前线程带宽可以通过以下公式(1)计算得到:
公式(1)
其中,为线程的当前线程带宽,/>为预设时间内线程访问目标内存的访问次数,/>为预设时间。
步骤S604,基于目标线程带宽和当前线程带宽,调整线程访问目标内存的访问设置,以调整多个线程产生的当前带宽。
本发明实施例中,图7是根据本发明实施例的带宽调整方法的当前线程带宽调整示意图,以下结合图7对步骤S604做进一步解释说明。根据目标线程带宽和当前线程带宽之间的大小关系,对当前线程带宽的调整分为以下两种情况:
第一种情况,在为线程分配好目标内存后,首次计算得到的当前线程带宽小于目标线程带宽,此时对线程的数量进行调整,具体如下:
步骤b1,当当前线程带宽小于目标线程带宽时,将线程的数量增加预设数量,得到调整后的数量。
步骤b2,基于调整后的数量和目标带宽,更新目标线程带宽和当前带宽。
本发明实施例中,当当前线程带宽小于目标线程带宽时,表明仅依靠现有的线程数量,不能提供足够的带宽,此时将线程的数量增加预设数量,以降低对单个线程的带宽要求,同时,基于调整后的数量和目标带宽,重新计算每个线程的目标线程带宽,以更新目标线程带宽;同时,由于线程的数量增加,线程产生的当前带宽也会随之增加,由此对当前带宽进行更新。
在一种可选的实施方式中,当在更新目标线程带宽后,当前线程带宽依然小于目标线程带宽时,则继续增加线程的数量,以进一步降低对单个现成的带宽要求,同时线程的数量控制在小于等于处理器核心数量的范围内,以充分发挥处理器核心的性能。由此通过增加线程的方式增加线程的总带宽,即当前带宽,使最终在目标内存中产生的当前带宽趋近于目标带宽。
第二种情况,在为线程分配好目标内存后,首次计算得到的当前线程带宽大于目标线程带宽,也就是通过调整线程的数量使当前线程带宽大于目标线程带宽时,此时对线程的访问时间间隔进行调整,具体如下:
步骤c1,当当前线程带宽大于目标线程带宽时,将访问时间间隔设置为预设时间间隔,以调整所述当前线程带宽和所述当前带宽。
本发明实施例中,在当前线程带宽大于目标线程带宽时,使线程间隔一定时间访问目标内存,以降低预设时间内线程访问目标内存的访问次数,从而降低当前线程带宽,使当前线程带宽趋近于目标线程带宽,使当前带宽趋近于目标带宽。
在一种可选的实施方式中,在步骤c1之后还包括在当前线程带宽依然大于目标线程带宽的情况下进一步增大访问时间间隔的步骤c2,以进一步降低访问次数,降低当前线程带宽,具体的步骤c2如下:
步骤c21,将访问时间间隔作为第一历史时间间隔。
步骤c22,获取预设时间内线程访问目标内存的访问次数。
步骤c23,基于线程每次访问目标内存的数据量、访问次数和预设时间,更新当前线程带宽。
步骤c24,当当前线程带宽大于目标线程带宽时,基于第一历史时间间隔确定当前访问时间间隔。
步骤c25,将访问时间间隔设置为当前访问时间间隔,以调整当前线程带宽和当前带宽。
其中,当前访问时间间隔可以通过如下公式(2)计算获得:
公式(2)
其中,为当前访问时间间隔,/>为第一历史时间间隔。
由此,通过上述步骤c21至步骤c25,在设置访问时间间隔对当前线程带宽进行调整后,当前线程带宽依然大于目标线程带宽的情况下,根据上一次设置的访问时间间隔进一步确定新的访问时间间隔,从而进一步降低访问次数以降低当前线程带宽,使当前线程带宽趋近于目标线程带宽,使当前带宽趋近于目标带宽。
在一种可选的实施方式中,在上述步骤c2之后,还包括在当前线程带宽小于目标线程带宽的情况下减小访问时间间隔的步骤c3,以增加访问次数,增大当前线程带宽,具体的,步骤c3如下:
步骤c31,将第一历史时间间隔作为第二历史时间间隔,将当前访问时间间隔作为第一历史时间间隔。
步骤c32,获取预设时间内线程访问目标内存的访问次数。
步骤c33,基于线程每次访问目标内存的数据量、访问次数和预设时间,更新当前线程带宽。
步骤c34,当当前线程带宽小于目标线程带宽时,基于第一历史时间间隔和第二历史时间间隔确定当前访问时间间隔。
步骤c35,将访问时间间隔设置为当前访问时间间隔,以调整当前线程带宽和当前带宽。
其中,当前访问时间间隔可以通过如下公式(3)计算获得:
公式(3)
其中,为当前访问时间间隔,/>为第一历史时间间隔,/>为第二历史时间间隔。
由此,通过上述步骤c31至步骤c35,在设置访问时间间隔对当前线程带宽进行调整后,当前线程带宽小于目标线程带宽的情况下,根据前两次设置的访问时间间隔进一步确定新的访问时间间隔,从而提高访问次数以提高当前线程带宽,使当前线程带宽趋近于目标线程带宽,使当前带宽趋近于目标带宽。
本发明实施例中,如图7所示,在通过调整线程的数量使当前线程带宽大于目标线程带宽之后,通过上述步骤c1至步骤c3,不断调整访问时间间隔,从而不断调整当前线程带宽,使其趋近于目标线程带宽,使得最终在目标内存中生成的当前带宽趋近于目标带宽。
在本实施例中还提供了一种带宽调整装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种带宽调整装置,如图8所示,包括:
目标内存分配模块801,用于获取多个目标内存,并为多个线程中每个线程分别分配线程对应目标内存;
目标线程带宽确定模块802,用于基于目标带宽和线程的数量,确定每个线程对应的目标线程带宽;
当前线程带宽确定模块803,用于每隔预设时间,确定每个线程对应的当前线程带宽;
当前带宽调整模块804,用于基于目标线程带宽和当前线程带宽,调整访问目标内存的访问设置,以调整多个线程产生的当前带宽。
在一种可选的实施方式中,目标内存分配模块801,包括:
内存通道确定单元,用于申请待分配内存,并确定待分配内存所在的内存通道;
目标内存确定单元,用于将所在的内存通道与目标内存通道一致的待分配内存,确定为目标内存;
目标内存分配单元,用于按照预设分配规则,为每个线程分别分配线程对应的目标内存。
在一种可选的实施方式中,内存通道确定单元,包括:
虚拟地址确定子单元,用于申请待分配内存,并获取待分配内存对应的虚拟地址;
物理地址确定子单元,用于基于待分配内存对应的虚拟地址,确定待分配内存对应的物理地址;
物理地址解析单元,用于对待分配内存对应的物理地址进行解析,确定待分配内存所在的内存通道。
在一种可选的实施方式中,物理地址确定子单元,包括:
虚拟页确定子模块,用于基于待分配内存对应的虚拟地址,确定待分配内存对应的虚拟页和页内偏移;
物理页确定子模块,用于基于待分配内存对应的虚拟页,确定待分配内存对应的物理页;
物理地址确定子模块,用于基于待分配内存对应的物理页和页内偏移,确定待分配内存对应的物理地址。
在一种可选的实施方式中,预设分配规则为多个线程访问不同的目标内存;目标内存分配单元,包括:
内存集合确定子单元,用于将多个目标内存分为多个内存集合;内存集合的数量与线程的数量一致;
内存集合分配子单元,用于将多个内存集合,分别分配给多个线程。
在一种可选的实施方式中,预设分配规则为多个线程共享目标内存;目标内存分配单元,包括:
内存分配子单元,用于将多个目标内存分配给每个线程。
在一种可选的实施方式中,当前线程带宽确定模块803,包括:
访问次数确定单元,用于获取线程每次访问目标内存的数据量,以及预设时间内线程访问目标内存的访问次数;
当前线程带宽确定单元,用于基于数据量、访问次数和预设时间,确定线程的当前线程带宽。
在一种可选的实施方式中,当前带宽调整模块804,包括:
线程数量调整单元,用于当当前线程带宽小于目标线程带宽时,将线程的数量增加预设数量,得到调整后的数量;
目标线程带宽更新单元,用于基于调整后的数量和目标带宽,更新目标线程带宽和当前带宽。
在一种可选的实施方式中,当前带宽调整模块804,包括:
访问时间间隔设置单元,用于当当前线程带宽大于目标线程带宽时,将访问时间间隔设置为预设时间间隔,以调整所述当前线程带宽和所述当前带宽。
在一种可选的实施方式中,当前带宽调整模块804,还包括:
历史时间间隔确定单元,用于将访问时间间隔作为第一历史时间间隔;
访问次数确定单元,用于获取预设时间内线程访问目标内存的访问次数;
当前线程带宽更新单元,用于基于线程每次访问目标内存的数据量、访问次数和预设时间,更新当前线程带宽;
当前访问时间间隔确定单元,用于当当前线程带宽大于目标线程带宽时,基于第一历史时间间隔确定当前访问时间间隔;
访问时间间隔设置单元,还用于将访问时间间隔设置为当前访问时间间隔,以调整当前线程带宽和当前带宽。
在一种可选的实施方式中,当前带宽调整模块804,还包括:
历史时间间隔确定单元,还用于将第一历史时间间隔作为第二历史时间间隔,将当前访问时间间隔作为第一历史时间间隔;
访问次数确定单元,还用于获取预设时间内线程访问目标内存的访问次数;
当前线程带宽更新单元,还用于基于线程每次访问目标内存的数据量、访问次数和预设时间,更新当前线程带宽;
当前访问时间间隔确定单元,还用于当当前线程带宽小于目标线程带宽时,基于第一历史时间间隔和第二历史时间间隔确定当前访问时间间隔;
访问时间间隔设置单元,还用于将访问时间间隔设置为当前访问时间间隔,以调整当前线程带宽和当前带宽。
在一种可选的实施方式中,该装置还包括:
寄存器写入模块,用于将目标内存的物理地址写入内存类型范围寄存器中;
数据设置模块,用于通过内存类型范围寄存器,将目标内存中的数据设置为不能被高速缓存保存。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的带宽调整装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路),执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图8所示的带宽调整装置。
请参阅图9,图9是本发明可选实施例提供的一种计算机设备的结构示意图,如图9所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (15)
1.一种带宽调整方法,其特征在于,所述方法包括:
获取多个目标内存,并为多个线程中每个所述线程分别分配所述线程对应的目标内存;
基于目标带宽和所述线程的数量,确定每个所述线程对应的目标线程带宽;
每隔预设时间,确定每个所述线程对应的当前线程带宽;
基于所述目标线程带宽和所述当前线程带宽,调整所述线程访问所述目标内存的访问设置,以调整多个所述线程产生的当前带宽。
2.根据权利要求1所述的方法,其特征在于,所述获取多个目标内存,并为多个线程中每个所述线程分别分配所述线程对应的目标内存,包括:
申请待分配内存,并确定所述待分配内存所在的内存通道;
将所在的内存通道与目标内存通道一致的待分配内存,确定为所述目标内存;
按照预设分配规则,为每个所述线程分别分配所述线程对应的目标内存。
3.根据权利要求2所述的方法,其特征在于,所述申请待分配内存,并确定所述待分配内存所在的内存通道,包括:
申请待分配内存,并获取所述待分配内存对应的虚拟地址;
基于所述待分配内存对应的虚拟地址,确定所述待分配内存对应的物理地址;
对所述待分配内存对应的物理地址进行解析,确定所述待分配内存所在的内存通道。
4.根据权利要求2所述的方法,其特征在于,所述基于所述待分配内存对应的虚拟地址,确定所述待分配内存对应的物理地址,包括:
基于所述待分配内存对应的虚拟地址,确定所述待分配内存对应的虚拟页和页内偏移;
基于所述待分配内存对应的虚拟页,确定所述待分配内存对应的物理页;
基于所述待分配内存对应的物理页和页内偏移,确定所述待分配内存对应的物理地址。
5.根据权利要求2所述的方法,其特征在于,所述预设分配规则为多个所述线程访问不同的所述目标内存;所述按照预设分配规则,为每个所述线程分别分配所述线程对应的目标内存,包括:
将多个所述目标内存分为多个内存集合;所述内存集合的数量与所述线程的数量一致;
将多个所述内存集合,分别分配给多个所述线程。
6.根据权利要求2所述的方法,其特征在于,所述预设分配规则为多个所述线程共享所述目标内存;所述按照预设分配规则,为每个所述线程分别分配所述线程对应的目标内存,包括:
将多个所述目标内存分配给每个所述线程。
7.根据权利要求1所述的方法,其特征在于,所述每隔预设时间,确定所述线程的当前线程带宽,包括:
获取所述线程每次访问所述目标内存的数据量,以及所述预设时间内所述线程访问所述目标内存的访问次数;
基于所述数据量、所述访问次数和所述预设时间,确定所述线程的当前线程带宽。
8.根据权利要求1所述的方法,其特征在于,所述基于所述目标线程带宽和所述当前线程带宽,调整所述线程访问所述目标内存的访问规则,以调整多个所述线程产生的当前带宽,包括:
当所述当前线程带宽小于所述目标线程带宽时,将所述线程的数量增加预设数量,得到调整后的数量;
基于所述调整后的数量和所述目标带宽,更新所述目标线程带宽和所述当前带宽。
9.根据权利要求1所述的方法,其特征在于,所述基于所述目标线程带宽和所述当前线程带宽,调整所述线程访问所述目标内存的访问设置,以调整多个所述线程产生的当前带宽,包括:
当所述当前线程带宽大于所述目标线程带宽时,将访问时间间隔设置为预设时间间隔,以调整所述当前线程带宽和所述当前带宽。
10.根据权利要求9所述的方法,其特征在于,所述将所述访问时间间隔设置为预设时间间隔,以调整所述当前线程带宽和所述当前带宽之后,还包括:
将所述访问时间间隔作为第一历史时间间隔;
获取预设时间内所述线程访问所述目标内存的访问次数;
基于所述线程每次访问所述目标内存的数据量、所述访问次数和所述预设时间,更新所述当前线程带宽;
当所述当前线程带宽大于所述目标线程带宽时,基于所述第一历史时间间隔确定当前访问时间间隔;
将所述访问时间间隔设置为所述当前访问时间间隔,以调整所述当前线程带宽和所述当前带宽。
11.根据权利要求10所述的方法,其特征在于,所述将所述访问时间间隔设置为所述当前访问时间间隔,以调整所述当前线程带宽和所述当前带宽之后,还包括:
将所述第一历史时间间隔作为第二历史时间间隔,将所述当前访问时间间隔作为所述第一历史时间间隔;
获取所述预设时间内所述线程访问所述目标内存的访问次数;
基于所述线程每次访问所述目标内存的数据量、所述访问次数和所述预设时间,更新所述当前线程带宽;
当所述当前线程带宽小于所述目标线程带宽时,基于所述第一历史时间间隔和所述第二历史时间间隔确定当前访问时间间隔;
将所述访问时间间隔设置为所述当前访问时间间隔,以调整所述当前线程带宽和所述当前带宽。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述目标内存的物理地址写入内存类型范围寄存器中;
通过所述内存类型范围寄存器,将所述目标内存中的数据设置为不能被高速缓存保存。
13.一种带宽调整装置,其特征在于,所述装置包括:
目标内存分配模块,用于获取多个目标内存,并为多个线程中每个所述线程分别分配所述线程对应的目标内存;
目标线程带宽确定模块,用于基于目标带宽和所述线程的数量,确定每个所述线程对应的目标线程带宽;
当前线程带宽确定模块,用于每隔预设时间,确定每个所述线程对应的当前线程带宽;
当前带宽调整模块,用于基于所述目标线程带宽和所述当前线程带宽,调整所述线程访问所述目标内存的访问设置,以调整多个所述线程产生的当前带宽。
14.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至12中任一项所述的带宽调整方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至12中任一项所述的带宽调整方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311426613.7A CN117149447B (zh) | 2023-10-31 | 2023-10-31 | 带宽调整方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311426613.7A CN117149447B (zh) | 2023-10-31 | 2023-10-31 | 带宽调整方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117149447A true CN117149447A (zh) | 2023-12-01 |
CN117149447B CN117149447B (zh) | 2024-02-13 |
Family
ID=88908482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311426613.7A Active CN117149447B (zh) | 2023-10-31 | 2023-10-31 | 带宽调整方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149447B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020008392A2 (en) * | 2018-07-03 | 2020-01-09 | Tata Consultancy Services Limited | Predicting execution time of memory bandwidth intensive batch jobs |
CN111324461A (zh) * | 2020-02-20 | 2020-06-23 | 西安芯瞳半导体技术有限公司 | 内存分配方法、装置、计算机设备和存储介质 |
CN115016894A (zh) * | 2022-06-02 | 2022-09-06 | 北京东土军悦科技有限公司 | 一种线程的内存访问方法、装置、设备及存储介质 |
US20230137769A1 (en) * | 2021-11-03 | 2023-05-04 | Intel Corporation | Software thread-based dynamic memory bandwidth allocation |
CN116954874A (zh) * | 2022-04-14 | 2023-10-27 | 中国联合网络通信集团有限公司 | 资源分配方法、装置、设备及存储介质 |
-
2023
- 2023-10-31 CN CN202311426613.7A patent/CN117149447B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020008392A2 (en) * | 2018-07-03 | 2020-01-09 | Tata Consultancy Services Limited | Predicting execution time of memory bandwidth intensive batch jobs |
CN111324461A (zh) * | 2020-02-20 | 2020-06-23 | 西安芯瞳半导体技术有限公司 | 内存分配方法、装置、计算机设备和存储介质 |
US20230137769A1 (en) * | 2021-11-03 | 2023-05-04 | Intel Corporation | Software thread-based dynamic memory bandwidth allocation |
CN116954874A (zh) * | 2022-04-14 | 2023-10-27 | 中国联合网络通信集团有限公司 | 资源分配方法、装置、设备及存储介质 |
CN115016894A (zh) * | 2022-06-02 | 2022-09-06 | 北京东土军悦科技有限公司 | 一种线程的内存访问方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117149447B (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9952788B2 (en) | Method and apparatus for providing a shared nonvolatile memory system using a distributed FTL scheme | |
WO2017050064A1 (zh) | 共享内存数据库的内存管理方法及装置 | |
US9389997B2 (en) | Heap management using dynamic memory allocation | |
JP2021510222A (ja) | データ処理方法、装置、およびコンピューティングデバイス | |
CN105242879A (zh) | 一种数据存储方法以及协议服务器 | |
US20210149804A1 (en) | Memory Interleaving Method and Apparatus | |
US9229891B2 (en) | Determining a direct memory access data transfer mode | |
KR101823983B1 (ko) | 메모리 디바이스들 및 방법들 | |
JP2021033845A (ja) | メモリシステムおよび制御方法 | |
US11275683B2 (en) | Method, apparatus, device and computer-readable storage medium for storage management | |
CN113535087A (zh) | 数据迁移过程中的数据处理方法、服务器及存储系统 | |
CN117687569A (zh) | 磁盘性能优化方法、系统、电子设备及存储介质 | |
CN117149447B (zh) | 带宽调整方法、装置、设备及存储介质 | |
CN114281516A (zh) | 一种基于numa属性的资源分配方法及装置 | |
US11860783B2 (en) | Direct swap caching with noisy neighbor mitigation and dynamic address range assignment | |
US12008248B2 (en) | Systems, methods, and devices for utilization aware memory allocation | |
US10254961B2 (en) | Dynamic load based memory tag management | |
CN111190550B (zh) | 一种元数据加速方法、装置及存储设备 | |
CN117331858B (zh) | 存储装置及数据处理系统 | |
JP2019114197A (ja) | コンピュータシステム | |
CN107688494B (zh) | 一种内存分配方法和装置 | |
WO2023172319A1 (en) | Direct swap caching with noisy neighbor mitigation and dynamic address range assignment | |
CN117348794A (zh) | 在具有高并行度的系统中管理队列的系统和方法 | |
CN118035039A (zh) | 内存信息确定方法、装置、设备、存储介质及程序产品 | |
CN118159953A (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 |