CN108845960A - 一种存储器资源优化方法和装置 - Google Patents
一种存储器资源优化方法和装置 Download PDFInfo
- Publication number
- CN108845960A CN108845960A CN201810316306.6A CN201810316306A CN108845960A CN 108845960 A CN108845960 A CN 108845960A CN 201810316306 A CN201810316306 A CN 201810316306A CN 108845960 A CN108845960 A CN 108845960A
- Authority
- CN
- China
- Prior art keywords
- program
- llc
- working set
- page
- partition strategy
- 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 50
- 238000005457 optimization Methods 0.000 title claims abstract description 20
- 238000005192 partition Methods 0.000 claims abstract description 141
- 238000004040 coloring Methods 0.000 claims abstract description 99
- 238000003860 storage Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims abstract description 15
- 239000003086 colorant Substances 0.000 claims description 25
- 238000009826 distribution Methods 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 abstract description 8
- 230000002452 interceptive effect Effects 0.000 abstract description 5
- 238000003066 decision tree Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 6
- 238000010606 normalization Methods 0.000 description 6
- 238000013480 data collection Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 2
- 238000000151 deposition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3471—Address tracing
-
- 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
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/282—Partitioned cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6042—Allocation of cache space to multiple users or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/653—Page colouring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
本发明的实施例提供一种存储器资源优化方法和装置,涉及计算机领域,解决了现有多级存储器资源之间存在的相互影响问题,优化了现有单一的划分机制。具体方案为:通过页着色技术获得工作集中各程序的性能数据,结合访存频度得到各程序的分类,根据各程序的分类选择工作集对应的页着色划分策略,并将页着色划分策略输入操作系统内核,完成相应的着色划分处理。本发明用于结合工作集特点消除或降低进程、线程在存储资源上的相互干扰,提高了计算机的整机性能。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种存储器资源优化方法和装置。
背景技术
如今多核高性能计算机(Multi-core High Performance Computer)的应用越来越广泛,但随着处理器上计算单元(核)数目的持续增多,多核间的访存竞争现象使得问题变的更加复杂。在并发执行的任意时间段内,来自不同核的访存请求将会在全局的存储资源上形成访存竞争,进而引发在内存控制器(Memory Controller,MC),带宽(Bandwidth),动态随机存取存储器内容库(DRAM Bank)等资源上的冲突,影响资源的利用率。
以主存上的访问为例,通常以单个晶体管作为存储单元,并以N乘M个存储单元组成存储矩阵,再以若干个存储矩阵构成内容库(Bank),每个Bank都有一个行缓冲(Row-Buffer),对数据的访问需要先将目标行中的数据移动到行缓冲中才能读取。现代的DRAM系统通常使用多个Bank,以并行的形式独立处理各自的访存请求。但如果有两个来自不同进程或线程的访存请求访问同一个DRAM Bank的不同行,则会产生DRAM Bank上的冲突(或称行缓冲冲突)加大访存延迟。高速缓存(Cache)用以缓解计算单元和主存储器之间的差距,由于它比主存储器更靠近计算单元,所以更容易影响计算性能。目前的处理器基本都采用了多核间最后一级高速缓存共享(Last Level Cache,LLC)的结构,但是,并发的多道程序、线程间对LLC也存在激烈的竞争,如果没有采用恰当的管理策略,很容易引发严重的性能下降。
现有技术采用页着色(Page-Coloring)对LLC或DRAM Bank进行划分:对LLC的页着色划分,通过对物理地址中高速缓存集(Cache Set)索引位进行页着色的方式将Cache资源划分为若干独立的部分,并分别赋予不同的线程,因此,线程间因对Cache的共享而引发的竞争就消失了。与LLC划分类似,DRAM Bank索引位也能反映在物理地址中,依据这些地址位进行着色同样能将DRAM Bank划分为互不影响的若干组,程序间在DRAM Bank上的竞争就消失了。对于某些工作集,能够实现较好的性能提升效果。
但是,传统页着色技术对某一个层次的资源进行划分时,对其它层次的资源利用造成了负影响,比如,与LLC划分相关的工作对DRAM Bank资源性能的提升产生了制约;反之,对DRAM Bank的划分工作也影响着LLC资源的性能;另一方面,由于现代计算机系统运行的工作集多种多样,现有对某一个层次资源的页着色划分机制难以针对不同的工作集特性进行相应的配合,无法实现最佳的划分效果,对计算机整机性能的提升产生了限制。
发明内容
本发明的实施例提供一种存储器资源优化方法和装置,提供了一种LLC与DRAMBank之间的协同划分策略,与工作集特性相结合,能够解决进程、线程在存储资源上的相互影响的问题,从而提高计算机的整机性能。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种存储器资源优化方法,所述方法包括:
获取工作集中各程序的性能数据,通过将所述各程序的性能数据和统计得到的所述各程序的访存频度与预设阈值进行比较,对所述各程序进行分类,所述各程序的性能数据为所述各程序预设性能指标随分配的最后一级高速缓存LLC资源容量变化而产生的变化量;
结合所述工作集中所述各程序所属的分类情况与预设决策策略,选择所述工作集对应的页着色划分策略,所述页着色划分策略包括同时对所述LLC与所述动态随机存取存储器内容库DRAM Bank进行页着色划分的页着色协同划分策略;
将所述工作集对应的页着色划分策略写入操作系统内核,并由所述操作系统内核进行相应页着色划分处理。
结合第一方面,在第一种可能的实现方式中,所述获取工作集中各程序的性能数据包括:
通过页着色技术将所述LLC资源划分为N份,以所述LLC资源最大容量的1/N为一级,起始时为所述各程序分配所述LLC资源的最大容量,每次调整将分配给所述各程序的所述LLC资源容量大小减小一级,直至减小为所述LLC资源最大容量的1/N;
监测调整过程中所述各程序预设性能指标随分配的所述LLC资源容量大小变化而产生的变化量,将所述变化量作为所述各程序的性能数据,所述预设性能指标为所述各程序的加速比。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述通过将所述各程序的性能数据和统计得到的所述各程序的访存频度与预设阈值进行比较,对所述各程序进行分类包括:
统计所述各程序在运行过程的预设阶段中访问主存的次数,得到所述各程序的访存频度;
将所述各程序的性能数据和统计得到的所述各程序的访存频度与所述预设阈值进行比较;其中,所述预设阈值包括第一阈值、第二阈值和第三阈值,所述第一阈值、所述第二阈值为性能数据阈值,所述第三阈值为访存频度阈值;
若一个程序的性能数据大于所述第一阈值,则所述程序为高需求型;
若一个程序的性能数据小于所述第一阈值且大于所述第二阈值,则所述程序为中需求型;
若一个程序的性能数据小于所述第二阈值且访存频度大于所述第三阈值,则所述程序为低需求密集型。
结合第一方面,在第三种可能的实现方式中,所述结合所述工作集中所述各程序所属的分类情况与预设决策策略,选择所述工作集对应的页着色划分策略包括:
所述预设决策策略为所述操作系统内核中的划分策略决策树,所述划分策略决策树在所述操作系统内核中以算法形式实现;
将所述工作集中所述各程序所属的分类情况输入所述操作系统内核,结合所述工作集中所述各程序的分类,在所述操作系统内核中的所述划分策略决策树上查找对应的节点以确定所述工作集对应的页着色划分策略。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述页着色划分策略包括所述页着色协同划分策略和页着色非协同划分策略;
所述页着色协同划分策略为使用索引重合地址位O-bits作为页着色划分索引位的划分策略,所述O-bits为物理页帧中所述LLC索引位与所述DRAM Bank索引位重合的地址位,用于同时索引对所述LLC与对所述DRAM Bank的页着色划分;
所述页着色协同划分策略包括:
A类多级存储器协同划分策略A-MMCP,使用所述O-bits作为划分索引位,将所述LLC和所述DRAM Bank划分为数量相同的等份;
B类多级存储器协同划分策略B-MMCP,使用所述O-bits与所述DRAM Bank的索引位作为划分索引位,将所述LLC和所述DRAM Bank划分为数量不相同的等份,且所述DRAM Bank划分的数量大于所述LLC划分的数量;
C类多级存储器协同划分策略C-MMCP,使用所述O-bits与所述LLC的索引位作为划分索引位,将所述LLC和所述DRAM Bank划分为数量不相同的等份,且所述DRAM Bank划分的数量小于所述LLC划分的数量;
所述页着色协同划分策略为不使用所述O-bits的划分策略,包括:
Cache-Only策略,使用所述LLC的索引位,对所述LLC着色划分且不对所述DRAMBank进行着色划分;
Bank-Only策略,使用所述DRAM Bank的索引位,对所述DRAM Bank着色划分且不对所述LLC进行着色划分。
结合第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述结合所述工作集中所述各程序的分类,在所述操作系统内核中的所述划分策略决策树上查找对应的节点以确定所述工作集对应的页着色划分策略包括:
若所述工作集中所述各程序所属的分类都为所述高需求型,则选用所述Bank-Only策略;
若所述工作集中所述各程序所属的分类中存在所述低需求密集型,则进一步判断所述工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用C-MMCP,其中,N为处理器的核心数;
若所述工作集中所述各程序所属的分类中存在所述中需求型且不存在所述低需求密集型,则进一步判断所述工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用B-MMCP,其中,N为处理器的核心数。
第二方面,提供一种存储器资源优化装置,所述装置包括:
前端单元,用于获取工作集中各程序的性能数据,通过将所述各程序的性能数据和统计得到的所述各程序的访存频度与预设阈值进行比较,对所述各程序进行分类,所述各程序的性能数据为所述各程序预设性能指标随分配的最后一级高速缓存LLC资源容量变化而产生的变化量;
决策单元,用于结合所述工作集中所述各程序所属的分类情况与预设决策策略,选择所述工作集对应的页着色划分策略,所述页着色划分策略包括同时对所述LLC与所述动态随机存取存储器内容库DRAM Bank进行页着色划分的页着色协同划分策略;
划分单元,用于将所述工作集对应的页着色划分策略写入操作系统内核,并由所述操作系统内核进行相应页着色划分处理。
结合第二方面,在第一种可能的实现方式中,所述前端单元包括数据收集单元,所述数据收集单元具体用于:
通过页着色技术将所述LLC资源划分为N份,以所述LLC资源最大容量的1/N为一级,起始时为所述各程序分配所述LLC资源的最大容量,每次调整将分配给所述各程序的所述LLC资源容量大小减小一级,直至减小为所述LLC资源最大容量的1/N;
监测调整过程中所述各程序预设性能指标随分配的所述LLC资源容量大小变化而产生的变化量,将所述变化量作为所述各程序的性能数据,所述预设性能指标为所述各程序的加速比。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述前端单元还包括分类单元,所述分类单元具体用于:
统计所述各程序在运行过程的预设阶段中访问主存的次数,得到所述各程序的访存频度;
将所述各程序的性能数据和统计得到的所述各程序的访存频度与所述预设阈值进行比较;其中,所述预设阈值包括第一阈值、第二阈值和第三阈值,所述第一阈值、所述第二阈值为性能数据阈值,所述第三阈值为访存频度阈值;
若一个程序的性能数据大于所述第一阈值,则所述程序为高需求型;
若一个程序的性能数据小于所述第一阈值且大于所述第二阈值,则所述程序为中需求型;
若一个程序的性能数据小于所述第二阈值且访存频度大于所述第三阈值,则所述程序为低需求密集型。
结合第二方面,在第三种可能的实现方式中,所述预设决策策略为所述操作系统内核中的划分策略决策树,所述划分策略决策树在所述操作系统内核中以算法形式实现,所述决策单元具体用于:
将所述工作集中所述各程序所属的分类情况输入所述操作系统内核,结合所述工作集中所述各程序的分类,在所述操作系统内核中的所述划分策略决策树上查找对应的节点以确定所述工作集对应的页着色划分策略。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述页着色划分策略包括所述页着色协同划分策略和页着色非协同划分策略;
所述页着色协同划分策略为使用索引重合地址位O-bits作为页着色划分索引位的划分策略,所述O-bits为物理页帧中所述LLC索引位与所述DRAM Bank索引位重合的地址位,用于同时索引对所述LLC与对所述DRAM Bank的页着色划分;
所述页着色协同划分策略包括:
A类多级存储器协同划分策略A-MMCP,使用所述O-bits作为划分索引位,将所述LLC和所述DRAM Bank划分为数量相同的等份;
B类多级存储器协同划分策略B-MMCP,使用所述O-bits与所述DRAM Bank的索引位作为划分索引位,将所述LLC和所述DRAM Bank划分为数量不相同的等份,且所述DRAM Bank划分的数量大于所述LLC划分的数量;
C类多级存储器协同划分策略C-MMCP,使用所述O-bits与所述LLC的索引位作为划分索引位,将所述LLC和所述DRAM Bank划分为数量不相同的等份,且所述DRAM Bank划分的数量小于所述LLC划分的数量;
所述页着色协同划分策略为不使用所述O-bits的划分策略,包括:
Cache-Only策略,使用所述LLC的索引位,对所述LLC着色划分且不对所述DRAMBank进行着色划分;
Bank-Only策略,使用所述DRAM Bank的索引位,对所述DRAM Bank着色划分且不对所述LLC进行着色划分。
结合第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述决策单元还具体用于:
若所述工作集中所述各程序所属的分类都为所述高需求型,则选用所述Bank-Only策略;
若所述工作集中所述各程序所属的分类中存在所述低需求密集型,则进一步判断所述工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用C-MMCP,其中,N为处理器的核心数;
若所述工作集中所述各程序所属的分类中存在所述中需求型且不存在所述低需求密集型,则进一步判断所述工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用B-MMCP,其中,N为处理器的核心数。
本发明的实施例提供一种存储器资源优化方法和装置,通过页着色技术对LLC进行划分获取工作集中各程序的性能数据,结合访存频度得到各程序的分类,根据各程序的分类选择工作集对应的页着色划分策略,并将页着色划分策略输入操作系统内核,完成相应的着色划分处理。这样,结合工作集的特点实现了LLC与DRAM Bank之间的协同划分策略,能够降低甚至消除进程、线程在存储资源上的相互干扰,提高了计算机的整机性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种存储器资源优化方法的流程示意图;
图2为本发明实施例提供的另一种存储器资源优化方法的流程示意图;
图3为本发明实施例提供的一种程序分类效果示意图;
图4为本发明实施例提供的一种存储器资源优化装置的结构示意图一;
图5为本发明实施例提供的一种存储器资源优化装置的结构示意图二;
图6为本发明实施例提供的一种存储器资源优化装置的结构示意图三。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例提供一种存储器资源优化方法,如图1所示,该方法包括:
S101、获取工作集中各程序的性能数据,通过将各程序的性能数据和统计得到的各程序的访存频度与预设阈值进行比较,对各程序进行分类,各程序的性能数据为各程序预设性能指标随分配的最后一级高速缓存LLC资源容量变化而产生的变化量。
S102、结合工作集中各程序所属的分类情况与预设决策策略,选择工作集对应的页着色划分策略,页着色划分策略包括同时对LLC与动态随机存取存储器内容库DRAM Bank进行页着色划分的页着色协同划分策略。
S103、将工作集对应的页着色划分策略写入操作系统内核,并由操作系统内核进行相应页着色划分处理。
本发明的实施例提供一种存储器资源优化方法,通过获取工作集中各程序的性能数据,结合访存频度得到各程序的分类,根据各程序的分类选择工作集的页着色划分策略,并将页着色划分策略输入操作系统内核,完成相应的着色划分处理。这样,结合工作集的特点实现了LLC与DRAM Bank之间的协同划分策略,能够降低甚至消除进程、线程在存储资源上的相互干扰,提高了计算机的整机性能。
为了使本领域技术人员能够更清楚地理解本发明实施例提供的技术方案,下面通过具体的实施例,对本发明实施例提供的另一种存储器资源优化方法进行详细说明,如图2所示,该方法包括:
S201、获取工作集中各程序的性能数据。
具体的,通过页着色技术对LLC资源进行划分,将LLC资源划分为N份,并以LLC资源最大容量的1/N为一级。起始时为各程序分配LLC资源的最大容量,每次调整将分配给各程序的LLC资源容量大小减小一级,直至分配给各程序的LLC资源减小为LLC资源最大容量的1/N;在调整过程中监测各程序预设性能指标随分配的LLC资源容量大小变化而产生的变化量,将变化量作为各程序的性能数据。
示例性的,在4核处理器中,N可以为8,以LLC资源最大容量的1/8为一级,调整分配给工作集中各程序的LLC资源容量,每次调整将分配给工作集中各程序的LLC资源容量减小一级,直至分配给各程序的LLC资源减小为LLC资源最大容量的1/8,监测上述调整过程中各程序的预设性能指标随分配的LLC资源容量大小变化而产生的变化量。
其中,各程序的预设性能指标可以为归一化加速比,获取在整个调整过程中,各程序归一化加速比随分配的LLC资源容量变化而产生的变化量,并将此变化量作为各程序的性能数据。
S202、结合统计得到的工作集中各程序的访存频度,确定各程序所属的分类。
具体的,通过硬件性能计数器统计各程序在运行过程的预设阶段或时间段中访问主存的次数,得到各程序的访存频度。
而后,结合各程序的性能数据与各程序的访存频度,根据预设阈值确定各程序所属的分类。
其中,预设阈值包括第一阈值、第二阈值和第三阈值;第一阈值、第二阈值为性能数据阈值,第三阈值为访存频度阈值;
示例性的,性能数据为各程序的归一化加速比随分配给各程序的LLC资源容量变化而产生的变化量,在调整分配给各程序的LLC容量从LLC最大容量减小到LLC最大容量1/N的过程,以四核计算机为例,N取8,如图3所示,获得各个程序的归一化加速比随分配给各程序的LLC资源容量变化的曲线。则可得主要分类方式如下:
若程序的归一化加速比大于第一阈值,可知此类程序性能随LLC资源容量的减小,降低幅度很大,即受分配的LLC资源容量影响很大,则将此类程序归类为高需求型031;
若程序的归一化加速比小于第一阈值且大于第二阈值,可知此类程序性能随LLC资源容量的减小,降低幅度适中,即受分配的LLC资源容量影响适中,则将此类程序归类为中需求型032;
若程序的归一化加速比小于第二阈值且访存频度大于第三阈值,可知此类程序性能随LLC资源容量的减小,变化幅度很小,但程序的访存频度高,即受分配的LLC资源容量影响较小,为低需求型033,但受主存容量的影响较大,为访存密集型,则将此类程序归类为低需求密集型。
示例性的,上述高需求031还可以具体包括:最后一级高速缓存高需求型(LLCFitting,LLCF)、最后一级高速缓存友好型(LLC Friendly,LLCFR);上述中需求型032可具体包括:最后一级高速缓存摇摆型(LLC Swing,LLCS);上述低需求型033可具体包括:低需求访存非密集型(Core Cache Fitting,CCS)、低需求访存密集型(LLC Thrashing,LLCT)。
S203、根据工作集中各程序所属的分类,选择工作集对应的页着色划分策略。
具体的,将工作集中各程序所属的分类,输入操作系统内核中,再根据预设决策策略选择工作集相应的页着色划分策略。
其中,工作集中各程序所属的分类可以通过/proc机制传入操作系统内核;预设决策策略可以为操作系统内核中的划分策略决策树,且划分策略决策树在操作系统内核中以算法形式实现。
具体的,将工作集中各程序所属的分类情况输入操作系统内核,结合工作集中各程序的分类,在操作系统内核中的划分策略决策树上查找对应的节点以确定工作集对应的页着色划分策略。页着色划分策略包括页着色协同划分策略和页着色非协同划分策略:
其中,页着色协同划分策略为使用索引重合地址位O-bits作为页着色划分索引位的划分策略,O-bits为物理页帧中LLC索引位与DRAM Bank索引位重合的地址位,用于同时索引对LLC与对DRAM Bank的页着色划分;
页着色协同划分策略包括:
A类多级存储器协同划分策略A-MMCP,使用O-bits作为划分索引位,将LLC和DRAMBank划分为数量相同的等份;
B类多级存储器协同划分策略B-MMCP,使用O-bits与DRAM Bank的索引位作为划分索引位,将LLC和DRAM Bank划分为数量不相同的等份,且DRAM Bank划分的数量大于LLC划分的数量;
C类多级存储器协同划分策略C-MMCP,使用O-bits与LLC的索引位作为划分索引位,将LLC和DRAM Bank划分为数量不相同的等份,且DRAM Bank划分的数量小于LLC划分的数量;
页着色协同划分策略为不使用O-bits的划分策略,包括:
Cache-Only策略,使用LLC的索引位,对LLC着色划分且不对DRAM Bank进行着色划分;
Bank-Only策略,使用DRAM Bank的索引位,对DRAM Bank着色划分且不对LLC进行着色划分。
示例性的,LLC与DRAM Bank索引重合地址位O-bits可以为物理页帧中的第{14,15}位,两位索引位可划分00、01、10、11四种颜色;且物理页帧中还存在LLC索引地址位{16,17,18}位及DRAM Bank索引地址位{21,22}位。
A-MMCP仅使用O-bits,即14位与15位两位进行着色划分,可将LLC划分为4个等份,将DRAM Bank划分为4个等份;
B-MMCP使用O-bits与DRAM Bank索引地址位中的一位,即14位、15位与21位三位进行着色划分,可将LLC划分为4个等份,将DRAM Bank划分为8个等份;
C-MMCP使用O-bits与LLC索引地址位中的一位,即14位、15位与16位三位进行着色划分,可将LLC划分为8个等份,将DRAM Bank划分为4个等份。
具体的,划分策略决策树在操作系统内核中以算法形式实现包括:
若工作集中各程序所属的分类都为高需求型031,则选用Bank-Only策略;
若工作集中各程序所属的分类中存在低需求密集型,则进一步判断工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用C-MMCP,其中,N为处理器的核心数;
若工作集中各程序所属的分类中存在中需求型032且不存在低需求密集型,则进一步判断工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用B-MMCP,其中,N为处理器的核心数。
S204、将工作集对应的页着色划分策略写入操作系统内核,并由操作系统内核进行相应页着色划分处理。
具体的,将选择的页着色划分策略可以通过/proc机制写入操作系统内核,由操作系统中的伙伴系统(Buddy System)对内存分配机制进行调整,完成着色划分操作。
示例性的,伙伴系统中管理机制与检索机制可完成对着色需求的页面进行管理与检索;且可调整内存分配机制在多种划分策略之间进行切换。
本发明的实施例提供一种存储器资源优化方法,通过页着色技术对LLC资源进行划分,获取工作集中各程序的性能数据,结合访存频度得到各程序的分类,根据各程序的分类选择工作集的页着色划分策略,并将页着色划分策略输入操作系统内核,完成相应的着色划分处理。这样,结合工作集的特点实现了LLC与DRAM Bank之间的协同划分策略,能够降低甚至消除进程、线程在存储资源上的相互干扰,提高了计算机的整机性能。
本发明的实施例提供一种存储器资源优化装置00,如图4所示,该装置包括:
前端单元001,用于获取工作集中各程序的性能数据,通过将各程序的性能数据和统计得到的各程序的访存频度与预设阈值进行比较,对各程序进行分类,各程序的性能数据为各程序预设性能指标随分配的最后一级高速缓存LLC资源容量变化而产生的变化量;
决策单元002,用于结合工作集中各程序所属的分类情况与预设决策策略,选择工作集对应的页着色划分策略,页着色划分策略包括同时对LLC与动态随机存取存储器内容库DRAM Bank进行页着色划分的页着色协同划分策略;
划分单元003,用于将工作集对应的页着色划分策略写入操作系统内核,并由操作系统内核进行相应页着色划分处理。
其中,如图5所示,前端单元001可以包括数据收集单元0011、分类单元0012。
可选的,数据收集单元0011用于通过页着色技术将LLC资源划分为N份,以LLC资源最大容量的1/N为一级,起始时为各程序分配LLC资源的最大容量,每次调整将分配给各程序的LLC资源容量大小减小一级,直至减小为LLC资源最大容量的1/N;
监测调整过程中各程序预设性能指标随分配的LLC资源容量大小变化而产生的变化量,将变化量作为各程序的性能数据,预设性能指标为各程序的加速比。
可选的,分类单元0012用于统计各程序在运行过程的预设阶段中访问主存的次数,得到各程序的访存频度;
将各程序的性能数据和统计得到的各程序的访存频度与预设阈值进行比较;其中,预设阈值包括第一阈值、第二阈值和第三阈值,第一阈值、第二阈值为性能数据阈值,第三阈值为访存频度阈值;
若一个程序的性能数据大于第一阈值,则程序为高需求型;
若一个程序的性能数据小于第一阈值且大于第二阈值,则程序为中需求型;
若一个程序的性能数据小于第二阈值且访存频度大于第三阈值,则程序为低需求密集型。
可选的,预设决策策略为操作系统内核中的划分策略决策树,划分策略决策树在操作系统内核中以算法形式实现,决策单元002具体用于:
将工作集中各程序所属的分类情况输入操作系统内核,结合工作集中各程序的分类,在操作系统内核中的划分策略决策树上查找对应的节点以确定工作集对应的页着色划分策略。
可选的,页着色划分策略包括页着色协同划分策略和页着色非协同划分策略,具体的:
页着色协同划分策略为使用索引重合地址位O-bits作为页着色划分索引位的划分策略,O-bits为物理页帧中LLC索引位与DRAM Bank索引位重合的地址位,用于同时索引对LLC与对DRAM Bank的页着色划分;
其中,页着色协同划分策略包括:
A类多级存储器协同划分策略A-MMCP,使用O-bits作为划分索引位,将LLC和DRAMBank划分为数量相同的等份;
B类多级存储器协同划分策略B-MMCP,使用O-bits与DRAM Bank的索引位作为划分索引位,将LLC和DRAM Bank划分为数量不相同的等份,且DRAM Bank划分的数量大于LLC划分的数量;
C类多级存储器协同划分策略C-MMCP,使用O-bits与LLC的索引位作为划分索引位,将LLC和DRAM Bank划分为数量不相同的等份,且DRAM Bank划分的数量小于LLC划分的数量;
其中,页着色协同划分策略为不使用O-bits的划分策略,包括:
Cache-Only策略,使用LLC的索引位,对LLC着色划分且不对DRAM Bank进行着色划分;
Bank-Only策略,使用DRAM Bank的索引位,对DRAM Bank着色划分且不对LLC进行着色划分。
可选的,决策单元002还具体用于:
若工作集中各程序所属的分类都为高需求型,则选用Bank-Only策略;
若工作集中各程序所属的分类中存在低需求密集型,则进一步判断工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用C-MMCP,其中,N为处理器的核心数;
若工作集中各程序所属的分类中存在中需求型且不存在低需求密集型,则进一步判断工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用B-MMCP,其中,N为处理器的核心数。
本发明的实施例提供一种存储器资源优化装置,通过页着色技术对LLC资源进行划分,获取工作集中各程序的性能数据,结合访存频度得到各程序的分类,根据各程序的分类选择工作集的页着色划分策略,并将页着色划分策略输入操作系统内核,完成相应的着色划分处理。这样,结合工作集的特点实现了LLC与DRAM Bank之间的协同划分策略,能够降低甚至消除进程、线程在存储资源上的相互干扰,提高了计算机的整机性能。
本发明实施例还提供了一种存储器资源优化装置01,如图6所示,该存储器资源优化装置01包括:
总线011、以及连接到总线011的处理器012、存储器013和接口014,其中接口014用于与外部设备进行通信;
该存储器013用于存储指令,该处理器012用于执行该指令用于获取工作集中各程序的性能数据,通过将各程序的性能数据和统计得到的各程序的访存频度与预设阈值进行比较,对各程序进行分类,各程序的性能数据为各程序预设性能指标随分配的最后一级高速缓存LLC资源容量变化而产生的变化量;
该处理器012执行该指令还用于结合工作集中各程序所属的分类情况与预设决策策略,选择工作集对应的页着色划分策略,页着色划分策略包括同时对LLC与动态随机存取存储器内容库DRAM Bank进行页着色划分的页着色协同划分策略;
该处理器012执行该指令还用于将工作集对应的页着色划分策略写入操作系统内核,并由操作系统内核进行相应页着色划分处理。
在本发明实施例中,可选的,该处理器012执行该指令可以具体用于:通过页着色技术将LLC资源划分为N份,以LLC资源最大容量的1/N为一级,起始时为各程序分配LLC资源的最大容量,每次调整将分配给各程序的LLC资源容量大小减小一级,直至减小为LLC资源最大容量的1/N;
并监测调整过程中各程序预设性能指标随分配的LLC资源容量大小变化而产生的变化量,将变化量作为各程序的性能数据,预设性能指标为各程序的加速比。
在本发明实施例中,可选的,该处理器012执行该指令可以具体用于:统计各程序在运行过程的预设阶段中访问主存的次数,得到各程序的访存频度;
将各程序的性能数据和统计得到的各程序的访存频度与预设阈值进行比较;其中,预设阈值包括第一阈值、第二阈值和第三阈值,第一阈值、第二阈值为性能数据阈值,第三阈值为访存频度阈值;
若一个程序的性能数据大于第一阈值,则程序为高需求型;
若一个程序的性能数据小于第一阈值且大于第二阈值,则程序为中需求型;
若一个程序的性能数据小于第二阈值且访存频度大于第三阈值,则程序为低需求密集型。
在本发明实施例中,可选的,预设决策策略为操作系统内核中的划分策略决策树,划分策略决策树在操作系统内核中以算法形式实现,该处理器012执行该指令可以具体用于:
将工作集中各程序所属的分类情况输入操作系统内核,结合工作集中各程序的分类,在操作系统内核中的划分策略决策树上查找对应的节点以确定工作集对应的页着色划分策略。
在本发明实施例中,可选的,页着色划分策略包括页着色协同划分策略和页着色非协同划分策略,具体的:
页着色协同划分策略为使用索引重合地址位O-bits作为页着色划分索引位的划分策略,O-bits为物理页帧中LLC索引位与DRAM Bank索引位重合的地址位,用于同时索引对LLC与对DRAM Bank的页着色划分;
其中,页着色协同划分策略包括:
A类多级存储器协同划分策略A-MMCP,使用O-bits作为划分索引位,将LLC和DRAMBank划分为数量相同的等份;
B类多级存储器协同划分策略B-MMCP,使用O-bits与DRAM Bank的索引位作为划分索引位,将LLC和DRAM Bank划分为数量不相同的等份,且DRAM Bank划分的数量大于LLC划分的数量;
C类多级存储器协同划分策略C-MMCP,使用O-bits与LLC的索引位作为划分索引位,将LLC和DRAM Bank划分为数量不相同的等份,且DRAM Bank划分的数量小于LLC划分的数量;
其中,页着色协同划分策略为不使用O-bits的划分策略,包括:
Cache-Only策略,使用LLC的索引位,对LLC着色划分且不对DRAM Bank进行着色划分;
Bank-Only策略,使用DRAM Bank的索引位,对DRAM Bank着色划分且不对LLC进行着色划分。
在本发明实施例中,可选的,该处理器012执行该指令可以具体用于:
若工作集中各程序所属的分类都为高需求型,则选用Bank-Only策略;
若工作集中各程序所属的分类中存在低需求密集型,则进一步判断工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用C-MMCP,其中,N为处理器的核心数;
若工作集中各程序所属的分类中存在中需求型且不存在低需求密集型,则进一步判断工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用B-MMCP,其中,N为处理器的核心数。
本发明的实施例提供一种存储器资源优化装置,通过页着色技术对LLC资源进行划分,获取工作集中各程序的性能数据,结合访存频度得到各程序的分类,根据各程序的分类选择工作集的页着色划分策略,并将页着色划分策略输入操作系统内核,完成相应的着色划分处理。这样,结合工作集的特点实现了LLC与DRAM Bank之间的协同划分策略,能够降低甚至消除进程、线程在存储资源上的相互干扰,提高了计算机的整机性能。
在本申请所提供的几个实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另一点,所显示或讨论的模块相互之间的连接可以是通过一些接口,可以是电性,机械或其它的形式。
所述各个模块可以是或者也可以不是物理上分开的,可以是或者也可以不是物理单元。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理包括,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能单元的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种存储器资源优化方法,其特征在于,包括:
获取工作集中各程序的性能数据,其中,所述各程序的性能数据为所述各程序预设性能指标随分配的最后一级高速缓存LLC资源容量变化而产生的变化量;
根据所述各程序的性能数据和统计得到的所述各程序的访存频度对所述各程序进行分类;
基于所述各程序所属的分类,选择所述工作集对应的页着色划分策略,所述页着色划分策略包括同时对所述LLC与动态随机存取存储器内容库DRAM Bank进行页着色划分的页着色协同划分策略;
按照页着色协同划分策略为所述工作集进行页着色划分处理。
2.根据权利要求1所述的方法,其特征在于,所述按照页着色协同划分策略为所述工作集进行页着色划分处理包括:
将所述工作集对应的页着色划分策略写入操作系统内核,并由所述操作系统内核进行相应页着色划分处理。
3.根据权利要求1或2所述的方法,其特征在于:
所述页着色协同划分策略为使用索引重合地址位O-bits作为页着色划分索引位的划分策略,所述O-bits为物理页帧中所述LLC索引位与所述DRAM Bank索引位重合的地址位,用于同时索引对所述LLC与对所述DRAM Bank的页着色划分;
所述页着色协同划分策略包括:
A类多级存储器协同划分策略A-MMCP,使用所述O-bits作为划分索引位,将所述LLC和所述DRAM Bank划分为数量相同的等份;
B类多级存储器协同划分策略B-MMCP,使用所述O-bits与所述DRAM Bank的索引位作为划分索引位,将所述LLC和所述DRAM Bank划分为数量不相同的等份,且所述DRAM Bank划分的数量大于所述LLC划分的数量;
C类多级存储器协同划分策略C-MMCP,使用所述O-bits与所述LLC的索引位作为划分索引位,将所述LLC和所述DRAM Bank划分为数量不相同的等份,且所述DRAM Bank划分的数量小于所述LLC划分的数量。
4.根据权利要求3任意一项所述的方法,其特征在于,所述根据所述各程序的性能数据和统计得到的所述各程序的访存频度对所述各程序进行分类包括:
若一个程序的性能数据大于预设的第一阈值,则所述程序为高需求型;
若一个程序的性能数据小于所述第一阈值且大于预设的第二阈值,则所述程序为中需求型;
若一个程序的性能数据小于所述第二阈值且所述程序的访存频度大于预设的访存频度阈值,则所述程序为低需求密集型,其中,各程序的访存频度根据所述各程序在运行过程的预设阶段中访问主存的次数获得。
5.根据权利要求4所述的方法,其特征在于,所述基于所述各程序所属的分类,选择所述工作集对应的页着色划分策略包括:
若所述工作集中所述各程序所属的分类中存在所述低需求密集型,且所述工作集中程序的数目小于等于N,则选用A-MMCP,其中,N为处理器的核心数。
6.根据权利要求4所述的方法,其特征在于,所述基于所述各程序所属的分类,选择所述工作集对应的页着色划分策略包括:
若所述工作集中所述各程序所属的分类中存在所述低需求密集型,且所述工作集中程序的数目大于N,则选用C-MMCP,其中,N为处理器的核心数。
7.根据权利要求4所述的方法,其特征在于,所述基于所述各程序所属的分类,选择所述工作集对应的页着色划分策略包括:
若所述工作集中所述各程序所属的分类中存在所述中需求型且不存在所述低需求密集型,且所述工作集中程序的数目小于等于N,则选用A-MMCP,其中,N为处理器的核心数。
8.根据权利要求4所述的方法,其特征在于,所述基于所述各程序所属的分类,选择所述工作集对应的页着色划分策略包括:
若所述工作集中所述各程序所属的分类中存在所述中需求型且不存在所述低需求密集型,且所述工作集中程序的数目大于N,则选用B-MMCP,其中,N为处理器的核心数。
9.根据权利要求1-8任意一项所述的方法,其特征在于,所述获取工作集中各程序的性能数据包括:
将所述LLC资源划分为N份,以所述LLC资源最大容量的1/N为一级,起始时为所述各程序分配所述LLC资源的最大容量,每次调整将分配给所述各程序的所述LLC资源容量大小减小一级,直至减小为所述LLC资源最大容量的1/N;
监测调整过程中所述各程序预设性能指标随分配的所述LLC资源容量大小变化而产生的变化量,将所述变化量作为所述各程序的性能数据,所述预设性能指标为所述各程序的加速比。
10.根据权利要求1-9任意一项所述的方法,其特征在于,所述页着色划分策略还包括页着色非协同划分策略,所述页着色非协同划分策略为不使用所述O-bits的划分策略,
所述页着色非协同划分策略包括:
Cache-Only策略,使用所述LLC的索引位,对所述LLC着色划分且不对所述DRAM Bank进行着色划分;
Bank-Only策略,使用所述DRAM Bank的索引位,对所述DRAM Bank着色划分且不对所述LLC进行着色划分;
所述基于所述各程序所属的分类,选择所述工作集对应的页着色划分策略还包括:
若所述工作集中所述各程序所属的分类都为所述高需求型,则选用所述Bank-Only策略。
11.一种存储器资源优化装置,其特征在于,包括:
内存,用于存储一个或多个计算机指令;
处理器,连接所述内存,并用于执行所述一个或多个计算机指令以执行上述权1-10任意一项所述的存储器资源优化方法。
12.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,当其在计算机上运行时,使得计算机执行上述权1-10任意一项所述的存储器资源优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810316306.6A CN108845960B (zh) | 2013-10-23 | 2014-10-22 | 一种存储器资源优化方法和装置 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310503238.1A CN104572493A (zh) | 2013-10-23 | 2013-10-23 | 一种存储器资源优化方法和装置 |
CN2013105032381 | 2013-10-23 | ||
PCT/CN2014/089194 WO2015058695A1 (zh) | 2013-10-23 | 2014-10-22 | 一种存储器资源优化方法和装置 |
CN201810316306.6A CN108845960B (zh) | 2013-10-23 | 2014-10-22 | 一种存储器资源优化方法和装置 |
CN201480037674.7A CN105359103B (zh) | 2013-10-23 | 2014-10-22 | 一种存储器资源优化方法和装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480037674.7A Division CN105359103B (zh) | 2013-10-23 | 2014-10-22 | 一种存储器资源优化方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108845960A true CN108845960A (zh) | 2018-11-20 |
CN108845960B CN108845960B (zh) | 2023-12-29 |
Family
ID=52992282
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310503238.1A Pending CN104572493A (zh) | 2013-10-23 | 2013-10-23 | 一种存储器资源优化方法和装置 |
CN201810316306.6A Active CN108845960B (zh) | 2013-10-23 | 2014-10-22 | 一种存储器资源优化方法和装置 |
CN201480037674.7A Active CN105359103B (zh) | 2013-10-23 | 2014-10-22 | 一种存储器资源优化方法和装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310503238.1A Pending CN104572493A (zh) | 2013-10-23 | 2013-10-23 | 一种存储器资源优化方法和装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480037674.7A Active CN105359103B (zh) | 2013-10-23 | 2014-10-22 | 一种存储器资源优化方法和装置 |
Country Status (12)
Country | Link |
---|---|
US (2) | US9857980B2 (zh) |
EP (2) | EP3040868B1 (zh) |
JP (1) | JP6143277B2 (zh) |
KR (1) | KR101761301B1 (zh) |
CN (3) | CN104572493A (zh) |
AU (1) | AU2014339450B2 (zh) |
BR (1) | BR112016007492B8 (zh) |
CA (1) | CA2927372C (zh) |
MX (1) | MX356304B (zh) |
RU (1) | RU2631767C1 (zh) |
SG (1) | SG11201602325VA (zh) |
WO (1) | WO2015058695A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540934A (zh) * | 2020-12-14 | 2021-03-23 | 山东师范大学 | 保证多个延迟关键程序共同执行时服务质量的方法及系统 |
CN112799817A (zh) * | 2021-02-02 | 2021-05-14 | 中国科学院计算技术研究所 | 一种微服务资源调度系统和方法 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572493A (zh) * | 2013-10-23 | 2015-04-29 | 华为技术有限公司 | 一种存储器资源优化方法和装置 |
CN105068940B (zh) * | 2015-07-28 | 2018-07-31 | 北京工业大学 | 一种基于Bank划分的自适应页策略确定方法 |
CN106919516B (zh) * | 2015-12-24 | 2020-06-16 | 辰芯科技有限公司 | Ddr地址映射系统和方法 |
CN107797941B (zh) * | 2016-09-06 | 2020-07-07 | 华为技术有限公司 | 针对查找树的缓存着色内存分配方法和装置 |
US10515017B2 (en) | 2017-02-23 | 2019-12-24 | Honeywell International Inc. | Memory partitioning for a computing system with memory pools |
US20190095329A1 (en) * | 2017-09-27 | 2019-03-28 | Intel Corporation | Dynamic page allocation in memory |
US10366007B2 (en) | 2017-12-11 | 2019-07-30 | Honeywell International Inc. | Apparatuses and methods for determining efficient memory partitioning |
US10679173B2 (en) | 2018-02-19 | 2020-06-09 | Rpmanetworks Holdings | End to end logistic chain tracking and control of shipping containers |
US10895985B1 (en) * | 2018-05-29 | 2021-01-19 | Amazon Technologies, Inc. | Real-time estimation of working sets |
KR102340444B1 (ko) | 2019-12-24 | 2021-12-16 | 고려대학교 산학협력단 | 모놀리식 3D 집적 기술 기반 NoC 구조를 활용한 GPU 캐시 바이패스 방법 및 장치 |
JP2021170241A (ja) * | 2020-04-16 | 2021-10-28 | 富士通株式会社 | 情報処理装置及び制御プログラム |
US12026393B2 (en) | 2020-12-17 | 2024-07-02 | Electronics And Telecommunications Research Institute | Apparatus and method for selecting storage location based on data usage |
CN112799809B (zh) * | 2021-01-26 | 2023-12-26 | 南京大学 | 基于高速缓存着色的资源共享和隔离的混合关键实时系统 |
KR102558935B1 (ko) * | 2021-08-09 | 2023-07-24 | (주)에스유지 | 블록체인을 이용한 수산물 이력관리 및 통계분석 시스템 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000339220A (ja) * | 1999-05-27 | 2000-12-08 | Nippon Telegr & Teleph Corp <Ntt> | キャッシュブロック予約方法およびキャッシュブロック予約機能付きコンピュータシステム |
US20080313420A1 (en) * | 2007-06-15 | 2008-12-18 | Microsoft Corporation | Managing working set use of a cache via page coloring |
US20090248976A1 (en) * | 2008-03-26 | 2009-10-01 | Rotithor Hemant G | Multi-core memory thermal throttling algorithms for improving power/performance tradeoffs |
CN101719105A (zh) * | 2009-12-31 | 2010-06-02 | 中国科学院计算技术研究所 | 一种多核系统中对内存访问的优化方法和系统 |
US20120059983A1 (en) * | 2010-09-03 | 2012-03-08 | David Wilkins Nellans | Predictor-based management of dram row-buffers |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6654859B2 (en) * | 2001-07-26 | 2003-11-25 | International Business Machines Corporation | NUMA page selection using coloring |
US6910106B2 (en) * | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
US8914606B2 (en) * | 2004-07-08 | 2014-12-16 | Hewlett-Packard Development Company, L.P. | System and method for soft partitioning a computer system |
US7664796B2 (en) * | 2004-10-13 | 2010-02-16 | Microsoft Corporation | Electronic labeling for offline management of storage devices |
US20060259733A1 (en) | 2005-05-13 | 2006-11-16 | Sony Computer Entertainment Inc. | Methods and apparatus for resource management in a logically partitioned processing environment |
US20070143315A1 (en) * | 2005-12-21 | 2007-06-21 | Alan Stone | Inter-partition communication in a virtualization environment |
US9390031B2 (en) | 2005-12-30 | 2016-07-12 | Intel Corporation | Page coloring to associate memory pages with programs |
US7581064B1 (en) * | 2006-04-24 | 2009-08-25 | Vmware, Inc. | Utilizing cache information to manage memory access and cache utilization |
US7434002B1 (en) * | 2006-04-24 | 2008-10-07 | Vmware, Inc. | Utilizing cache information to manage memory access and cache utilization |
US7512768B2 (en) * | 2006-07-21 | 2009-03-31 | Intel Corporation | Dynamically sharing a stack between different code segments |
WO2009075177A1 (ja) | 2007-12-12 | 2009-06-18 | Nec Corporation | メモリ再配置システムおよびメモリ再配置方法 |
US8274521B2 (en) | 2009-05-08 | 2012-09-25 | Oracle America, Inc. | System available cache color map |
US9063825B1 (en) * | 2009-09-21 | 2015-06-23 | Tilera Corporation | Memory controller load balancing with configurable striping domains |
US8880682B2 (en) * | 2009-10-06 | 2014-11-04 | Emc Corporation | Integrated forensics platform for analyzing IT resources consumed to derive operational and architectural recommendations |
US8327085B2 (en) * | 2010-05-05 | 2012-12-04 | International Business Machines Corporation | Characterizing multiple resource utilization using a relationship model to optimize memory utilization in a virtual machine environment |
CN101916230A (zh) * | 2010-08-11 | 2010-12-15 | 中国科学技术大学苏州研究院 | 基于划分感知和线程感知的末级高速缓存的性能优化方法 |
US20120079501A1 (en) * | 2010-09-27 | 2012-03-29 | Mark Henrik Sandstrom | Application Load Adaptive Processing Resource Allocation |
US8621649B1 (en) * | 2011-03-31 | 2013-12-31 | Emc Corporation | Providing a security-sensitive environment |
US8966171B2 (en) * | 2012-04-16 | 2015-02-24 | Renmin University Of China | Access optimization method for main memory database based on page-coloring |
CN102663115B (zh) * | 2012-04-16 | 2015-01-14 | 中国人民大学 | 基于页面染色技术的内存数据库访问优化方法 |
CN103077128B (zh) * | 2012-12-29 | 2015-09-23 | 华中科技大学 | 一种多核环境下的共享缓存动态划分方法 |
CN103136120B (zh) * | 2012-12-31 | 2016-01-27 | 北京北大众志微系统科技有限责任公司 | 行缓冲管理策略确定方法和装置、bank划分方法和装置 |
CN104572493A (zh) * | 2013-10-23 | 2015-04-29 | 华为技术有限公司 | 一种存储器资源优化方法和装置 |
-
2013
- 2013-10-23 CN CN201310503238.1A patent/CN104572493A/zh active Pending
-
2014
- 2014-10-22 CN CN201810316306.6A patent/CN108845960B/zh active Active
- 2014-10-22 WO PCT/CN2014/089194 patent/WO2015058695A1/zh active Application Filing
- 2014-10-22 KR KR1020167009977A patent/KR101761301B1/ko active IP Right Grant
- 2014-10-22 EP EP14856416.4A patent/EP3040868B1/en active Active
- 2014-10-22 CA CA2927372A patent/CA2927372C/en active Active
- 2014-10-22 MX MX2016005088A patent/MX356304B/es active IP Right Grant
- 2014-10-22 RU RU2016118773A patent/RU2631767C1/ru active
- 2014-10-22 JP JP2016525869A patent/JP6143277B2/ja active Active
- 2014-10-22 EP EP17192502.7A patent/EP3388947B1/en active Active
- 2014-10-22 BR BR112016007492A patent/BR112016007492B8/pt active IP Right Grant
- 2014-10-22 CN CN201480037674.7A patent/CN105359103B/zh active Active
- 2014-10-22 AU AU2014339450A patent/AU2014339450B2/en active Active
- 2014-10-22 SG SG11201602325VA patent/SG11201602325VA/en unknown
-
2016
- 2016-04-22 US US15/135,822 patent/US9857980B2/en active Active
-
2017
- 2017-09-22 US US15/712,296 patent/US9983793B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000339220A (ja) * | 1999-05-27 | 2000-12-08 | Nippon Telegr & Teleph Corp <Ntt> | キャッシュブロック予約方法およびキャッシュブロック予約機能付きコンピュータシステム |
US20080313420A1 (en) * | 2007-06-15 | 2008-12-18 | Microsoft Corporation | Managing working set use of a cache via page coloring |
US20090248976A1 (en) * | 2008-03-26 | 2009-10-01 | Rotithor Hemant G | Multi-core memory thermal throttling algorithms for improving power/performance tradeoffs |
CN101719105A (zh) * | 2009-12-31 | 2010-06-02 | 中国科学院计算技术研究所 | 一种多核系统中对内存访问的优化方法和系统 |
US20120059983A1 (en) * | 2010-09-03 | 2012-03-08 | David Wilkins Nellans | Predictor-based management of dram row-buffers |
Non-Patent Citations (1)
Title |
---|
严杰俊等: "多核处理器共享资源管理技术研究", 《电脑知识与技术》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540934A (zh) * | 2020-12-14 | 2021-03-23 | 山东师范大学 | 保证多个延迟关键程序共同执行时服务质量的方法及系统 |
CN112799817A (zh) * | 2021-02-02 | 2021-05-14 | 中国科学院计算技术研究所 | 一种微服务资源调度系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180011638A1 (en) | 2018-01-11 |
MX2016005088A (es) | 2016-08-03 |
AU2014339450A1 (en) | 2016-04-21 |
US9857980B2 (en) | 2018-01-02 |
MX356304B (es) | 2018-05-23 |
CA2927372C (en) | 2018-02-13 |
BR112016007492A8 (pt) | 2020-03-03 |
JP2016540290A (ja) | 2016-12-22 |
BR112016007492B1 (pt) | 2022-07-12 |
EP3388947A1 (en) | 2018-10-17 |
SG11201602325VA (en) | 2016-05-30 |
EP3040868A1 (en) | 2016-07-06 |
BR112016007492B8 (pt) | 2022-07-26 |
EP3388947B1 (en) | 2020-01-15 |
KR101761301B1 (ko) | 2017-07-25 |
CN108845960B (zh) | 2023-12-29 |
EP3040868A4 (en) | 2016-11-23 |
JP6143277B2 (ja) | 2017-06-07 |
AU2014339450B2 (en) | 2016-11-10 |
CA2927372A1 (en) | 2015-04-30 |
US9983793B2 (en) | 2018-05-29 |
BR112016007492A2 (pt) | 2017-08-01 |
WO2015058695A1 (zh) | 2015-04-30 |
CN104572493A (zh) | 2015-04-29 |
EP3040868B1 (en) | 2017-12-13 |
US20160239213A1 (en) | 2016-08-18 |
KR20160055273A (ko) | 2016-05-17 |
CN105359103A (zh) | 2016-02-24 |
RU2631767C1 (ru) | 2017-09-26 |
CN105359103B (zh) | 2018-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105359103B (zh) | 一种存储器资源优化方法和装置 | |
Liu et al. | Going vertical in memory management: Handling multiplicity by multi-policy | |
Cheng et al. | A study of main-memory hash joins on many-core processor: A case with intel knights landing architecture | |
CN108132834A (zh) | 多级共享高速缓冲存储器架构下的任务分配方法和系统 | |
Lira et al. | Hk-nuca: Boosting data searches in dynamic non-uniform cache architectures for chip multiprocessors | |
Cheng et al. | HASpGEMM: Heterogeneity-Aware Sparse General Matrix-Matrix Multiplication on Modern Asymmetric Multicore Processors | |
Liang et al. | Exploring cache bypassing and partitioning for multi-tasking on GPUs | |
Morari et al. | Efficient sorting on the tilera manycore architecture | |
Fang et al. | Research on cache partitioning and adaptive replacement policy for CPU-GPU heterogeneous processors | |
Cao et al. | Accelerating data shuffling in MapReduce framework with a scale-up NUMA computing architecture | |
Luo et al. | Superset: a non-uniform replica placement strategy towards high-performance and cost-effective distributed storage service | |
Zhang et al. | Exploring memory hierarchy to improve scientific data read performance | |
Hao et al. | A partition-merge based cache-conscious parallel sorting algorithm for CMP with shared cache | |
Noon et al. | Efficient Scheduling of Data Transfers in Multi-tiered Storage | |
Feng et al. | CAMAS: Static and dynamic hybrid cache management for CPU-FPGA platforms | |
TWI420311B (zh) | 基於集合分模組之快取記憶體之分割方法 | |
Ali et al. | CRITICAL ANALYSIS OF 3D MANYCORE MEMORY ARCHITECTURE USING MAPREDUCE | |
Wang et al. | micMR: An efficient MapReduce framework for CPU–MIC heterogeneous architecture | |
Liu | Tackling diversity and heterogeneity by vertical memory management | |
Ovant et al. | Last level cache partitioning via multiverse thread classification | |
Kim et al. | Analysis of micro-architecture resources interference on multicore numa systems | |
Liu | Novel Techniques for Graph Algorithm Acceleration | |
Bonacic et al. | Exploiting hybrid parallelism in web search engines | |
CN113505825A (zh) | 一种图计算装置 | |
Cao et al. | The key technologies of real-time processing large scale microblog data stream |
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 |