CN111897651B - 一种基于标签的内存系统资源管理方法 - Google Patents
一种基于标签的内存系统资源管理方法 Download PDFInfo
- Publication number
- CN111897651B CN111897651B CN202010739405.2A CN202010739405A CN111897651B CN 111897651 B CN111897651 B CN 111897651B CN 202010739405 A CN202010739405 A CN 202010739405A CN 111897651 B CN111897651 B CN 111897651B
- Authority
- CN
- China
- Prior art keywords
- resource
- application program
- memory system
- access request
- resource allocation
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 29
- 238000013468 resource allocation Methods 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims description 42
- 230000008569 process Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000012360 testing method Methods 0.000 claims description 3
- 238000003672 processing method Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 8
- 238000002955 isolation Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000004040 coloring Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000003090 exacerbative effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000013519 translation Methods 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
Abstract
本发明属于计算机存储技术领域,具体公开了一种基于标签的内存系统资源管理方法,方法包括:基于运行在内存系统的各应用程序的标签信息和资源需求信息,创建内存系统资源分配统计表;将该统计表中每个应用程序的标签信息写入该应用程序所在CPU核,用于对该CPU核待发出的访存请求采用标签信息标记,得到标签化访存请求;将资源分配统计表的信息加载到各层共享硬件缓存设备的控制器控制的硬件资源分配表,用于在标签化访存请求到达各层缓存设备时,该层缓存设备控制器在其管理的硬件资源分配表中查找该标签化访存请求对应的标签信息及资源区域信息,实现资源管理。本发明能够保证应用程序服务质量,减少存储层次间的数据移动,提高系统性能。
Description
技术领域
本发明属于计算机存储技术领域,更具体地,涉及一种基于标签的内存系统资源管理方法。
背景技术
内存系统组织结构与不断变化的硬件生态系统密切相关。现有的一些与内存相关的硬件技术,例如动态随机存取存储器(DRAM)、基于闪存的固态磁盘(SSD)和非易失性存储器(NVM)等已经被引入内存系统来满足各种应用程序的存储和性能需求,同时也使得内存系统的存储层次结构变得更加复杂。
由于当前体系结构在共享硬件层次的应用语义信息缺失,使得其在硬件层次无法区分不同的应用程序需求,造成在硬件层次很难实现硬件资源的管理。现有的内存系统在处理来自CPU的访存请求时,系统中共享的异构资源会统一和逐层地向请求提供资源,同时也存在着局限性。一方面,由于内存系统中的资源有限,运行在同一平台的不同应用程序之间的干扰会产生共享的硬件资源竞争,这种竞争带来了不可预测的性能波动,影响高优先级任务的服务质量(QoS),增加额外的数据移动;另一方面,内存系统中异构资源的增多增加了数据移动的复杂度,从而导致应用程序的响应延迟增加,服务性能下降。为了实现高效的资源利用和具有服务质量保证的内存系统,需要解决两个重要问题:共享的硬件资源竞争问题和存储层次结构中复杂的数据移动问题。
(1)共享硬件资源竞争问题。由于异构硬件设备的广泛使用(例如DRAM和NVM),增加了内存系统层次结构中共享硬件资源的数量,加剧了共享资源竞争。现有的多核处理器开始成为了为高性能服务器系统提供更高性能和吞吐量的规范,但是由于共享资源的竞争问题,多核系统面临着许多问题:(i)并行执行的应用程序性能不可预测地下降;(ii)不公平地共享硬件资源,这种不公平性可能打乱服务质量的需求;(iii)高优先级的应用程序因为获取太少地内存资源导致频繁地放弃处理器,从而更少地被调度执行。为了缓解资源竞争问题,保证应用程序的服务质量需求,现有的基于缓存的路和页着色的划分技术被用来缓解资源竞争问题。但是,基于缓存路的划分技术很容易导致性能下降;基于页着色的方法需要重划分技术,增加了系统额外的开销。
(2)复杂的数据移动问题。内存系统层次结构的显著变化增加了层次结构间数据移动的复杂度。为了弥补内存和CPU之间的I/O性能差距,存储系统在层次结构中通过添加新的硬件设备来满足性能需求。然而,这样的行为增加了异构硬件设备之间复杂且昂贵的数据移动。同时,内存系统中每一层存储器件都是独立的,需要分别进行管理。数据可以在一个或多个缓存层中进行缓存或复制操作,也可以只存储在任何一个内存层次中。因此,层次之间的数据移动对系统的性能来说变得十分重要。为了减少内存和CPU之间不必要的数据移动,3D堆叠存储技术将多层DRAM堆叠而成的新型内存,可以进行许多内存计算(PIM)的设计,比如改变整个系统,或者实现简单的功能卸载,通过在数据所在的位置进行计算来减少数据移动。然而,当我们将计算逻辑添加到内存设备时,会出现一系列问题。例如,PIM应用和软件的功能性、缓存一致性和虚拟内存等问题。
总的来说,现有的内存系统无法很好的缓解存储层次间复杂的数据移动,保证内存系统的执行性能。
发明内容
本发明提供一种基于标签的内存系统资源管理方法,用以解决现有内存系统资源管理方法中存在的存储层次间数据移动较为复杂的技术问题。
本发明解决上述技术问题的技术方案如下:一种基于标签的内存系统资源管理方法,包括:
基于共同运行在目标内存系统的各应用程序的标签信息和资源需求信息,为各应用程序分配资源,以创建该目标内存系统的资源分配统计表;
将所述资源分配统计表中每个应用程序的标签信息写入该应用程序所在CPU核内,用于对该CPU核待发出的访存请求,采用该标签信息进行标记,得到标签化访存请求以发出;
将所述资源分配统计表的信息加载到各层共享硬件缓存设备的控制器所控制的硬件资源分配表中,用于在所述标签化访存请求到达各层缓存设备时,该层缓存设备控制器在其管理的硬件资源分配表中查找该标签化访存请求对应的标签信息及其对应的资源区域信息,实现内存系统资源管理。
本发明的有益效果是:本发明提出一种基于标签的内存系统资源管理方法,首先创建内存系统的资源分配统计表,然后每个应用程序的标签信息写入应用程序所在CPU核内,当该CPU核接收到该应用程序的访存请求时,对该访存请求添加对应的标签信息,利用标签化的访存请求作为表达应用程序高级语义的基本单元,以将应用程序的资源需求从应用层传递到内存系统中的硬件层中。进一步,根据资源分配统计表,往共享的硬件缓存设备控制器中添加私有的硬件资源分配表(PRAT表),PRAT表用于接收上层标签化的访存请求,控制地址映射的缓存区域,实现资源的按需分配和跨存储层次的资源访问,进而实现基于标签的共享硬件缓存资源的隔离和管理。因此,本发明能够保证应用程序的服务质量,减少存储层次间的数据移动,提高系统性能。
上述技术方案的基础上,本发明还可以做如下改进。
进一步,采用DiffServ服务策略对各应用程序分配资源。
本发明的进一步有益效果是:在应用程序的资源需求总和大于内存系统可用的资源下,采用DiffServ服务策略来管理内存系统中共享的硬件缓存资源和访存调度策略,根据当前内存系统中可提供的资源状况和应用程序的优先级高低进行资源分配,保证高优先级应用的服务质量,防止高优先级的应用程序因为获取太少的资源导致频繁地放弃处理器。当系统中的资源不够使用时,为低优先级的请求提供跨存储层次访问功能,减少存储层次间的数据移动。
进一步,在为每个应用程序分配资源时,具体是基于way-based的方式进行资源划分,每个way作为一个资源单位,并基于每个应用程序对应的所述资源需求信息,将一个或多个way的资源分配给该应用程序。
本发明的进一步有益效果是:利用way-based的方式对共享的硬件资源进行划分,保证不同应用程序的资源相互隔离,避免不同应用程序请求之间的相互干扰,减少因为干扰而产生的性能下降和数据移动。
进一步,在所述采用DiffServ服务策略分配资源时,所述方法还包括:
测试每个应用程序访问缓存资源的缓存缺失曲线,通过对所有所述缓存缺失曲线进行层次聚类,将每个聚类对应的所有应用程序分为一组以共享通过所述DiffServ服务策略所分配的资源,据此来创建所述资源分配统计表。
本发明的进一步有益效果是:利用聚类方法将具有相似的访问模式的应用程序分为同一组,共享同一块资源,提高了资源的利用率,同时缓解了共享同一块资源区域的应用程序之间的相互干扰。
进一步,不同的应用程序绑定在不同的CPU核上。
本发明的进一步有益效果是:内存系统中运行的应用程序分别绑定到不同的CPU核中,每个应用程序的请求在对应的CPU核中进行标签化,从而利用系统中所有的CPU核,提高CPU的利用率。
进一步,所述将所述资源分配统计表的信息加载到各层共享硬件缓存设备的控制器所控制的硬件资源分配表中,具体用于:
在所述共享硬件缓存设备中按照由上往下的顺序,当前层缓存设备控制器在其所管理的硬件资源分配表中查找所述标签化访存请求对应的标签信息及其对应的资源区域信息,若查找到,则根据查找到的所述资源区域信息,获取和释放为该应用程序已分配的资源,否则,将所述标签化访存请求转至下一层缓存设备控制器并重复上述搜索过程。
进一步,采用ISA指令,执行所述写入、所述加载以及所述获取和释放的操作。
本发明的进一步有益效果是:利用与LaMemLib库函数对应的ISA指令支持底层硬件操作,保证标签化的内存系统的正确执行。
进一步,所述查找过程与读取所述标签化访存请求的过程同步进行。
本发明的进一步有益效果是:查找过程与读取标签化访存请求的过程同步进行,避免产生额外的延迟而影响系统的执行性能,实现PRAT表的并行查询。
本发明还提供一种应用程序访存请求处理方法,采用如上所述的一种基于标签的内存系统资源管理方法所设计得到的内存系统,处理应用程序访存请求。
本发明的有益效果是:采用上述内存系统资源管理方法所设计得到的内存系统处理访存请求,能够保证应用程序的有效运行。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序被处理器运行时控制所述存储介质所在设备执行如上述所述的一种基于标签的内存系统资源管理方法。
附图说明
图1为本发明实施例提供的一种基于标签的内存系统资源管理方法流程示意图;
图2为本发明实施例提供的一种基于标签的内存系统资源管理方法示意图;
图3为本发明实施例提供的现有内存系统层次结构示意图;
图4为本发明实施例提供的资源分配策略示意图;
图5为本发明实施例提供的根据应用程序访问模式进行聚类的示意图;
图6为本发明实施例提供的标签机制示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例一
一种基于标签的内存系统资源管理方法,如图1所示,包括:
S1、基于共同运行在目标内存系统的各应用程序的标签信息和资源需求信息,为各应用程序分配资源,创建该目标内存系统的资源分配统计表;
S2、将资源分配统计表中每个应用程序的标签信息写入该应用程序所在CPU核的标签寄存器,用于对该CPU核待发出的访存请求,采用该标签信息进行标记,得到标签化访存请求以发出;
S3、将资源分配统计表的信息加载到各层共享硬件缓存设备的控制器所控制的硬件资源分配表中,用于在标签化访存请求到达各层缓存设备时,该层缓存设备控制器在其管理的硬件资源分配表中查找该标签化访存请求对应的标签信息及其对应的资源区域,实现内存系统资源管理。
具体的,可如图2所示的示意图,在编译时,根据应用程序提供的标签信息和资源需求信息,编译器调用LaMemLib中CREATE函数创建与标签对应的资源分配统计表。在加载时,调用LaMemLib中LABEL_SET函数将统计表中的标签ID分别写入对应的CPU核的标签寄存器中,同时将统计表中的资源分配信息加载到由操作系统所管理的全局的资源分配表GRAT中,并将GRAT中的信息经过硬件翻译加载到由每个硬件缓存设备控制器管理的私有的硬件资源分配表(简称为PRAT表)。在此基础上,在运行时,当CPU中发出的标签化访存请求到达共享的硬件资源时,可请求调用LaMemLib的LABEL_MAP函数,利用依附的标签ID查找PRAT表中对应的资源区域,实现共享缓存层的资源划分。
需要说明的是,资源分配统计表包括每个应用程序对应的标签信息及资源区域或范围信息。其次,上述S2和S3没有先后顺序限制,可同步进行。外,LABEL_SET函数和LABEL_MAP函数如下:
传统的基于DRAM内存的硬件层次结构如图3中的左图所示,面临着容量以及成本等问题,基于NVM内存的硬件层次结构如图3中的中间图所示,有望构建一个高性能、大容量和低能耗开销的内存系统;与此同时,NVM存储器件的引入增加了内存系统的存储层次。本发明面向的多存储层次内存系统结构如图3的右图所示,分别为应用层(userapplications)、高速缓存层次结构(cache hierarchies)、DRAM缓存层(DRAM cachelayer)和主存(NVM)。为了缓解存储层次间数据移动的复杂度和提高系统的执行性能,本方法提出一种基于标签的内存系统资源管理方法,分别在应用程序的编译和加载阶段,基于标签实现共享的硬件缓存资源的隔离,通过往共享的硬件缓存设备控制器中添加资源分配表PRAT来管理共享的缓存层资源。对于缓存设备控制器而言,PRAT表用于接收上层标签化的访存请求,控制地址映射的缓存区域,实现资源的按需分配和跨存储层次的资源访问。因此,本方法能够保证应用程序的服务质量,减少存储层次间的数据移动,提高系统性能。另外,利用标签化的请求作为表达应用程序高级语义的基本单元,将应用程序的优先级和资源需求从应用层传递到内存系统中的硬件层,使得硬件层可以区分不同的应用程序需求,实现共享的硬件缓存资源的管理。
优选的,在编译时,根据应用程序提供的标签信息和资源需求信息,在DiffServ服务策略下,编译器调用LaMemLib中CREATE函数创建与标签对应的资源分配统计表。
在内存系统资源管理中,如图4所示,可以利用Best-effort服务策略和DiffServ服务策略相结合的方法分配内存系统中共享的硬件资源:当应用程序的资源需求总和小于内存系统可用的资源时,采用Best-effort服务策略,即所有应用程序的请求以公平的方式获得对应的资源。当应用程序的资源需求总和大于内存系统可用的资源时,采用DiffServ服务策略,根据应用程序的优先级高低依次分配资源,满足高优先级应用程序的资源需求,当资源不够用时,低优先级的应用程序直接访问成本较低的主存资源,跨过高成本的缓存资源。
本实施例方法在应用程序的资源需求总和大于内存系统可用的资源下,采用DiffServ服务策略来管理内存系统中共享的硬件缓存资源和访存调度策略,根据当前内存系统中可提供的资源状况和应用程序的优先级高低进行资源分配,保证高优先级应用的服务质量,防止高优先级的应用程序因为获取太少的资源导致频繁地放弃处理器。当系统中的资源不够使用时,为低优先级的请求提供跨存储层次访问功能,减少存储层次间的数据移动。
优选的,在为每个应用程序分配资源时,具体是基于way-based的方式进行资源划分,每个way作为一个资源单位,并基于每个应用程序对应的所述资源需求信息,将一个或多个way的资源分配给该应用程序或者一个CPU核,在所述资源分配统计表中体现为分配给该应用程序对应的标签信息,每个应用程序被映射到不同的资源区域,每个被划分的资源区域相互隔离。
本方法利用way-based的方式对共享的硬件资源进行划分,保证不同应用程序的资源相互隔离,避免不同应用程序请求之间的相互干扰,减少因为干扰而产生的性能下降和数据移动。
优选的,在上述采用DiffServ服务策略分配资源时,如图5所示,上述方法还包括:
对所述各应用程序进行访问模式的离线分析。测试每个应用程序访问缓存资源的缓存缺失曲线,通过对所有所述缓存缺失曲线进行层次聚类,应用程序的聚类方法是对DiffServ服务策略的优化,将每个聚类对应的所有应用程序分为一组以共享通过所述DiffServ服务策略所分配的资源,不同组的应用程序之间依然保持着资源隔离,据此来创建所述资源分配统计表。
本方法利用聚类方法将具有相似的访问模式的应用程序分为同一组,共享同一块资源,提高了资源的利用率,同时缓解了共享同一块资源区域的应用程序之间的相互干扰。
优选的,各应用程序之间所绑定的CPU核不同。
内存系统中运行的应用程序分别绑定到不同的CPU核中,每个应用程序的请求在对应的CPU核中进行标签化,从而利用系统中所有的核,提高CPU的利用率。
优选的,上述将资源分配统计表的信息加载到各层共享硬件缓存设备的控制器所控制的硬件资源分配表中,具体用于:
当该内存系统的任一CPU核接收到一应用程序的访存请求时,对该访存请求添加该CPU核的寄存器内所寄存的该应用程序的标签信息,得到标签化访存请求并将其发送至共享硬件缓存设备,在硬件缓存设备中按照由上往下的顺序,当前缓存层控制器在其所管理的PRAT控制表中查找该标签化访存请求对应的标签信息及其对应的资源区域或资源范围,若查找到,则根据查找到的资源区域或资源范围,获取和释放为该应用程序已分配的资源,否则,将标签化访存请求转至下一层缓存层并重复上述搜索过程。
例如,当CPU执行一个读内存字word的请求时,请求经由标签寄存器标记标签ID,它首先向最上层的缓存设备请求这个字;当缓存未命中时,则向下一层缓存层请求包含字word的块的一个副本;如果下一层缓存层有word的一个缓存的副本,那么就得到了缓存命中,并抽取出字word返回给上一层缓存层。上述访问每一层共享缓存层的过程中,请求都会调用LaMemLib的LABEL_MAP函数,利用依附的标签ID查找PRAT表中对应的资源区域,实现共享缓存层的资源划分。
优选的,上述查找过程与读取标签化访存请求的过程同步进行。
利用依附的标签ID查找硬件资源控制器中的PRAT表,获取和释放为应用程序分配的资源区域,具体的,该查找过程的计算逻辑可隐藏到执行每个硬件控制器的管道中,使得内存映射过程远离系统执行的关键路径,避免产生额外的延迟而影响系统的执行性能,实现PRAT表的并行查询。
优选的,基于LaMemLib的LABEL_SET函数,通过ISA指令,执行所述写入和所述加载的操作;并基于LaMemLib的LABEL_MAP函数,通过ISA指令,执行所述获取和释放的操作。
具体的,添加与LaMemLib中的库函数相对应的ISA指令,与底层共享的硬件缓存资源进行交互,如图2所示,包括:
(F1)CREATE(label_id,bit_waymask_partitions)用于在编译阶段创建资源与标签ID对应的表,不需要对应的ISA指令。
(F2)LABEL_SET(labelid)用于在加载阶段向CPU核中的寄存器写入标签信息。对应的ISA指令为:
LabelSet LabelID,Reg
(F3)LABEL_MAP(labelid,address,bit_waymask_partitions)用于在运行阶段实现标签化的请求访问分配的存储资源。对应的ISA指令为:
LabelMap LabelID,Bit_waymask_partitions
LabelUnmap LabelID,Bit_waymask_partitions
本方法利用与LaMemLib库函数对应的ISA指令支持底层硬件操作,保证标签化的内存系统的正确执行。
其中,需要说明的是,对访存请求进行标签化即是为应用程序的请求添加标签位,如图6所示的标签化访存请求的组织结构(图6的左图),包含的字段为:
Label field(标签字段):[n位比特]应用程序请求的标签ID。
Access request field(请求字段):[可变字节]应用程序发出请求的内容,包括请求的地址、请求的长度、线程号、读写类型、锁与缓存状态等其它一些标志位。
如图6所示的标签化访存请求在内存系统层次中的执行过程(图6的右图);CPU的核发出请求时,存储在标签寄存器中的标签将被附加到请求中,随着请求一起在内存层次中传递,直到请求完成为止。
本方法利用标签化的请求作为表达应用程序高级语义的基本单元,将应用程序的优先级和资源需求从应用层传递到内存系统中的硬件层,使得硬件层可以区分不同的应用程序需求,实现共享的硬件缓存资源的管理。
实施例二
一种应用程序访存请求处理方法,采用如上实施例一所述的一种基于标签的内存系统资源管理方法所设计得到的内存系统,处理应用程序访存请求。
采用上述内存系统资源管理方法所设计得到的内存系统处理访存请求,能够保证应用程序的有效运行。相关技术方案同实施例一,在此不再赘述。
实施例三
一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序被处理器运行时控制所述存储介质所在设备执行如上实施例一所述的一种基于标签的内存系统资源管理方法。相关技术方案同实施例一,在此不再赘述。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于标签的内存系统资源管理方法,其特征在于,包括:
基于共同运行在目标内存系统的各应用程序的标签信息和资源需求信息,为各应用程序分配资源,以创建该目标内存系统的资源分配统计表;
将所述资源分配统计表中每个应用程序的标签信息写入该应用程序所在CPU核,用于对该CPU核待发出的访存请求,采用该标签信息进行标记,得到标签化访存请求以发出;
将所述资源分配统计表的信息加载到各层共享硬件缓存设备的控制器所控制的硬件资源分配表中,用于在所述标签化访存请求到达各层缓存设备时,各层缓存设备的控制器在其管理的硬件资源分配表中查找该标签化访存请求对应的标签信息及其对应的资源区域信息,实现内存系统资源管理;
不同的应用程序绑定在不同的CPU核上。
2.根据权利要求1所述的一种基于标签的内存系统资源管理方法,其特征在于,采用DiffServ服务策略对各应用程序分配资源。
3.根据权利要求2所述的一种基于标签的内存系统资源管理方法,其特征在于,在为每个应用程序分配资源时,具体是基于way-based的方式进行资源划分,每个way作为一个资源单位,并基于每个应用程序对应的所述资源需求信息,将一个或多个way的资源分配给该应用程序。
4.根据权利要求2所述的一种基于标签的内存系统资源管理方法,其特征在于,在所述采用DiffServ服务策略分配资源时,所述方法还包括:
测试每个应用程序访问缓存资源的缓存缺失曲线,通过对所有所述缓存缺失曲线进行层次聚类,将每个聚类对应的所有应用程序分为一组以共享通过所述DiffServ服务策略所分配的资源,据此来创建所述资源分配统计表。
5.根据权利要求1至4任一项所述的一种基于标签的内存系统资源管理方法,其特征在于,所述将所述资源分配统计表的信息加载到各层共享硬件缓存设备的控制器所控制的硬件资源分配表中,具体用于:
在所述共享硬件缓存设备中按照由上往下的顺序,当前层缓存设备控制器在其所管理的硬件资源分配表中查找所述标签化访存请求对应的标签信息及其对应的资源区域信息,若查找到,则根据查找到的所述资源区域信息,获取和释放为该应用程序已分配的资源,否则,将所述标签化访存请求转至下一层缓存设备控制器并重复上述查找过程。
6.根据权利要求5所述的一种基于标签的内存系统资源管理方法,其特征在于,采用ISA指令,执行所述写入、所述加载以及所述获取和释放的操作。
7.根据权利要求5所述的一种基于标签的内存系统资源管理方法,其特征在于,所述查找过程与读取所述标签化访存请求的过程同步进行。
8.一种应用程序访存请求处理方法,其特征在于,采用如权利要求1至7任一项所述的一种基于标签的内存系统资源管理方法所设计得到的内存系统,处理应用程序访存请求。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序被处理器运行时控制所述存储介质所在设备执行如权利要求1至7任一项所述的一种基于标签的内存系统资源管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010739405.2A CN111897651B (zh) | 2020-07-28 | 2020-07-28 | 一种基于标签的内存系统资源管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010739405.2A CN111897651B (zh) | 2020-07-28 | 2020-07-28 | 一种基于标签的内存系统资源管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111897651A CN111897651A (zh) | 2020-11-06 |
CN111897651B true CN111897651B (zh) | 2024-03-19 |
Family
ID=73182477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010739405.2A Active CN111897651B (zh) | 2020-07-28 | 2020-07-28 | 一种基于标签的内存系统资源管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111897651B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113485789B (zh) * | 2021-06-30 | 2023-03-21 | 海光信息技术股份有限公司 | 资源配置方法、装置及计算机架构 |
CN115858083A (zh) * | 2021-09-26 | 2023-03-28 | 中兴通讯股份有限公司 | 容器cpu资源调度与隔离方法和装置、存储介质及电子设备 |
CN114979131B (zh) * | 2022-04-07 | 2024-04-19 | 中国科学院深圳先进技术研究院 | 面向云计算的标签化冯诺依曼体系结构通信方法及装置 |
CN115168248B (zh) * | 2022-09-02 | 2022-11-25 | 北京登临科技有限公司 | 支持simt架构的高速缓冲存储器及相应处理器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1617101A (zh) * | 2003-10-24 | 2005-05-18 | 微软公司 | 操作系统资源保护 |
CN101025699A (zh) * | 2006-02-21 | 2007-08-29 | 三星电子株式会社 | 在包容框架环境中管理资源的设备和方法 |
CN102662879A (zh) * | 2012-03-15 | 2012-09-12 | 北京视博云科技有限公司 | 基于Windows操作系统对多路外部设备的输入的处理方法及系统 |
CN104375899A (zh) * | 2014-11-21 | 2015-02-25 | 北京应用物理与计算数学研究所 | 高性能计算机numa感知的线程和内存资源优化方法与系统 |
CN107615243A (zh) * | 2015-07-28 | 2018-01-19 | 华为技术有限公司 | 一种调用操作系统库的方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10936490B2 (en) * | 2017-06-27 | 2021-03-02 | Intel Corporation | System and method for per-agent control and quality of service of shared resources in chip multiprocessor platforms |
-
2020
- 2020-07-28 CN CN202010739405.2A patent/CN111897651B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1617101A (zh) * | 2003-10-24 | 2005-05-18 | 微软公司 | 操作系统资源保护 |
CN101025699A (zh) * | 2006-02-21 | 2007-08-29 | 三星电子株式会社 | 在包容框架环境中管理资源的设备和方法 |
CN102662879A (zh) * | 2012-03-15 | 2012-09-12 | 北京视博云科技有限公司 | 基于Windows操作系统对多路外部设备的输入的处理方法及系统 |
CN104375899A (zh) * | 2014-11-21 | 2015-02-25 | 北京应用物理与计算数学研究所 | 高性能计算机numa感知的线程和内存资源优化方法与系统 |
CN107615243A (zh) * | 2015-07-28 | 2018-01-19 | 华为技术有限公司 | 一种调用操作系统库的方法、装置及系统 |
Non-Patent Citations (2)
Title |
---|
Set Utilization Based Dynamic Shared Cache Partitioning;Peter Deayton 等;《2011 IEEE 17th International Conference on Parallel and Distributed Systems》;全文 * |
多核处理器共享资源管理技术研究;严杰俊;黄皓;;电脑知识与技术(13);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111897651A (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111897651B (zh) | 一种基于标签的内存系统资源管理方法 | |
US7437517B2 (en) | Methods and arrangements to manage on-chip memory to reduce memory latency | |
US6851030B2 (en) | System and method for dynamically allocating associative resources | |
US7356655B2 (en) | Methods, systems, and media for managing dynamic storage | |
US6625710B2 (en) | System, method, and apparatus for providing linearly scalable dynamic memory management in a multiprocessing system | |
US9977609B2 (en) | Efficient accesses of data structures using processing near memory | |
US10824555B2 (en) | Method and system for flash-aware heap memory management wherein responsive to a page fault, mapping a physical page (of a logical segment) that was previously reserved in response to another page fault for another page in the first logical segment | |
US6629111B1 (en) | Memory allocation system | |
US20110153978A1 (en) | Predictive Page Allocation for Virtual Memory System | |
US7574562B2 (en) | Latency-aware thread scheduling in non-uniform cache architecture systems | |
US8566532B2 (en) | Management of multipurpose command queues in a multilevel cache hierarchy | |
US7689993B2 (en) | Assigning tasks to processors based at least on resident set sizes of the tasks | |
US20140289739A1 (en) | Allocating and sharing a data object among program instances | |
US8185693B2 (en) | Cache-line aware collection for runtime environments | |
US20220206839A1 (en) | Address mapping-aware tasking mechanism | |
US20140304485A1 (en) | Embedded memory management scheme for real-time applications | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
CN113535392B (zh) | 基于cma实现支持大内存连续分配的内存管理方法及系统 | |
CN115794368A (zh) | 业务系统、内存管理方法及装置 | |
CN114035980A (zh) | 基于便笺存储器来共享数据的方法和电子装置 | |
Wu et al. | Hydrafs: an efficient numa-aware in-memory file system | |
US11379380B2 (en) | Systems and methods for managing cache replacement | |
US20230077933A1 (en) | Supporting processing-in-memory execution in a multiprocessing environment | |
CN115185860B (zh) | 一种缓存访问系统 | |
US20240126680A1 (en) | Apparatuses, Devices, Methods and Computer Programs for Allocating Memory |
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 |