CN106844232A - 一种面向多核处理器的共享末级高速缓存访存方法和装置 - Google Patents

一种面向多核处理器的共享末级高速缓存访存方法和装置 Download PDF

Info

Publication number
CN106844232A
CN106844232A CN201611208885.XA CN201611208885A CN106844232A CN 106844232 A CN106844232 A CN 106844232A CN 201611208885 A CN201611208885 A CN 201611208885A CN 106844232 A CN106844232 A CN 106844232A
Authority
CN
China
Prior art keywords
level cache
last level
data
access
memory access
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.)
Withdrawn
Application number
CN201611208885.XA
Other languages
English (en)
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.)
BEIDA ZHONGZHI MICROSYSTEM SCIENCE AND TECHNOLOGY Co Ltd BEIJING
Original Assignee
BEIDA ZHONGZHI MICROSYSTEM SCIENCE AND TECHNOLOGY Co Ltd BEIJING
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 BEIDA ZHONGZHI MICROSYSTEM SCIENCE AND TECHNOLOGY Co Ltd BEIJING filed Critical BEIDA ZHONGZHI MICROSYSTEM SCIENCE AND TECHNOLOGY Co Ltd BEIJING
Priority to CN201611208885.XA priority Critical patent/CN106844232A/zh
Publication of CN106844232A publication Critical patent/CN106844232A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

Abstract

一种面向多核处理器的共享末级高速缓存访存方法和装置,包括:步骤A、在多核处理器多进程并发执行环境中,统计每个进程中每个数据区域的末级高速缓存访问信息的数量;步骤B、根据所述访问信息的数量,判断每个进程中每个数据区域的末级高速缓存的访存模式;步骤C、根据所述访存模式,决定并发执行的每个进程中每个数据区域的数据是否访问共享末级高速缓存。本发明采用旁路技术并调整数据进入末级高速缓存的插入位置可以限制局部性差数据区域的末级高速缓存访问空间,可以减少对其他数据高速缓存空间的抢占,进而在高速缓存中保护局部性良好的数据,提高末级高速缓存的利用率。

Description

一种面向多核处理器的共享末级高速缓存访存方法和装置
技术领域
本发明涉及计算机系统中的处理器高速缓存管理,特别涉及一种面向多核处理器的共享末级高速缓存访存方法和装置。
背景技术
多核处理器是将多个处理器封装在一个芯片内部,因此又被称为单芯片多处理器(single-chip multiprocessors,简称CMP)。多核处理器中每个处理器核都具有独立的微体系结构资源。多核处理器技术具有高度的可扩展性、设计可复用、软件优势明显、功耗低以及容忍线延迟等优点。
在现有多核处理器中,末级高速缓存大体可分为私有末级高速缓存和共享末级高速缓存两种基本组织形式。采用私有末级高速缓存结构,每个处理器核具有独立的末级高速缓存,处理器核同末级高速缓存紧密耦合。每个私有末级高速缓存只处理来自本地的处理器访存交易。私有末级高速缓存具有访存延迟较小、性能隔离和易于扩展等优点。但是,由于每个处理器核拥有的私有末级高速缓存大小是固定的,不能根据运行程序的访存行为动态调整,因此存在末级高速缓存利用率低等缺点。采用私有末级高速缓存结构可能会出现一个处理器核由于私有末级高速缓存空间不足导致大量失效、频繁访问主存,而另一个处理器核的部分私有末级高速缓存空间却处于空间状态。共享末级高速缓存结构是指由多个不同的处理器核共享一个容量较大的末级高速缓存。采用该结构可以方便、灵活地在多个处理器核之间共享公共数据,更能适应负载不均衡的情况,从而提高末级高速缓存的利用率并加速处理器核间通信速度。基于上述考虑,现代多核处理器多倾向于采用共享末级高速缓存结构。
但是,采用共享末级高速缓存结构也会带来并发进程间冲突和干扰等问题,对多核系统的整体性能和公平性造成损害。在多进程并发执行环境下,由于不同处理器核所运行程序的访存行为和局部性特征并不一致,来自不同进程的数据相互抢占共享末级高速缓存空间。
当前处理器末级高速缓存作为存储层次中的重要一级设备,目前普遍由硬件采用LRU替换算法进行管理,但LRU(Least Recently Used最近最少使用)替换算法过度依赖硬件实现,无法区分数据的局部性强度和级别,将会把局部性良好、被经常使用到的数据替换出末级高速缓存,从而引发高速缓存污染问题。末级高速缓存污染会增加系统的访存交易数量。随着处理器和存储器之间性能差距的逐渐扩大,末级高速缓存污染造成更加严重的性能损失,对系统整体性能造成较大的负面影响。由于并发进程相互之间存在共享资源冲突和争用,在多核处理器平台采用共享末级高速缓存结构会加剧高速缓存污染问题。该问题已经成为制约多核处理器整体性能提升的主要瓶颈之一。
在多进程并发执行环境中,当前解决方案是采用进程间共享末级高速缓存划分方法为每个进程分配适当的、相互隔离的末级高速缓存空间,以降低进程间的末级高速缓存冲突。但是进程间末级高速缓存划分结束后,同单独运行时相比,单个进程能够访问到的末级高速缓存空间减少。在这种情况下,单个进程内局部性良好的数据被替换出末级高速缓存的可能性显著增加,进一步加重了进程内的数据访问冲突和末级高速缓存污染。
发明内容
本发明要解决的技术问题是:如何有效管理共享末级高速缓存,提高多进程并发执行环境下多核处理器的访存性能。
为了解决上述技术问题,本发明提供了一种面向多核处理器的共享末级高速缓存访存方法,包括:
步骤A、在多核处理器多进程并发执行环境中,统计每个进程中每个数据区域的末级高速缓存访问信息的数量;
步骤B、根据所述访问信息的数量,判断每个进程中每个数据区域的末级高速缓存的访存模式;
步骤C、根据所述访存模式,决定并发执行的每个进程中每个数据区域的数据是否访问共享末级高速缓存。
优选地,所述步骤B还包括,根据所述访问信息的数量,判断每个进程中每个数据区域的末级高速缓存的局部性强度。
优选地,所述方法还包括:
步骤D、对于判断结果为访问共享末级高速缓存的,根据所述局部性强度,决定并发执行的每个进程中每个数据区域的数据进入共享末级高速缓存使得插入位置。
优选地,在步骤A之前还包括:配置每个进程中每个数据区域的范围。
优选地,对于判断结果为不访问共享末级高速缓存的数据,直接访问主存储器。
优选地,所述访问信息包括访问命中信息和访问失效信息;访存模式包括最近最少使用访存模式、颠簸访存模式、流访存模式以及混合访存模式。
优选地,所述步骤B通过设置计数器统计访问信息的数量,根据步骤D中插入位置确定前和插入位置确定后,访问信息数量的变化,决定所述访存模式。
优选地,所述步骤C通过设置计数器统计结果,将失效率达到预定程度的数据设定为旁路数据,并不将所述旁路数据存放在高速缓存中;
根据所述旁路数据存放在高速缓存前和存放在高速缓存后高速缓存失效率变化,确定数据是否访问共享末级高速缓存;如果高速缓存失效率减小,则所述数据区域被旁路;否则,所述数据区域应该被缓存。。
为了解决上述技术问题,本发明还提供了一种面向多核处理器的共享末级高速缓存访存装置,包括监视器、控制器和旁路控制接口;
所述监视器,用于在多核处理器多进程并发执行环境中,统计每个进程中每个数据区域的末级高速缓存访问信息的数量;
所述控制器,用于根据所述访问信息的数量,判断每个进程中每个数据区域的末级高速缓存的访存模式;并根据所述访存模式,决定并发执行的每个进程中每个数据区域的数据是否访问共享末级高速缓存;
所述旁路控制接口,用于为判断结果为访问共享末级高速缓存的数据提供访问共享末级高速缓存的通路。
优选地,所述控制器,还用于根据所述访问信息的数量,判断每个进程中每个数据区域的末级高速缓存的局部性强度,并根据所述局部性强度,决定并发执行的每个进程中每个数据区域的数据进入共享末级高速缓存使得插入位置。
优选地,所述访存装置,还包括插入控制接口,用于为访问共享末级高速缓存的数据提供到达所述插入位置的通路。
优选地,所述控制器,还用于在监视器开始统计访问信息的数量之前,配置每个进程中每个数据区域的范围。。
与现有技术相比,本发明采用旁路技术并调整数据进入末级高速缓存的插入位置可以限制局部性差数据区域的末级高速缓存访问空间,可以减少对其他数据高速缓存空间的抢占,进而在高速缓存中保护局部性良好的数据,提高末级高速缓存的利用率。以数据区域为单位调整旁路和插入策略可以比现有分进程的优化方法更细粒度地管理末级高速缓存,进一步提升多核处理器的访存性能。
附图说明
图1为本发明提出的面向多核处理器的共享末级高速缓存访存装置的结构示意图;
图2是本发明提出的面向多核处理器的共享末级高速缓存访存方法的工作流程图;
图3是实施例一中的高速缓存访存的工作流程图;
图4是实施例一中的数据区域的访存行为配置结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示,本发明实施例的一种面向多核处理器的共享末级高速缓存访存装置,包括监视器、控制器和旁路控制接口;
所述监视器,用于在多核处理器多进程并发执行环境中,统计每个进程中每个数据区域的末级高速缓存访问信息的数量;
所述控制器,用于根据所述访问信息的数量,判断每个进程中每个数据区域的末级高速缓存的访存模式;并根据所述访存模式,决定并发执行的每个进程中每个数据区域的数据是否访问共享末级高速缓存;
所述旁路控制接口,用于为判断结果为访问共享末级高速缓存的数据提供访问共享末级高速缓存的通路。
本发明实施例在多核处理器中设计共享末级缓存分区域性能监视器,该监视器可以在线统计多核处理器多进程并发执行环境中不同进程内多个数据区域的共享末级高速缓存访问计数;
所述控制器,还用于根据所述访问信息的数量,判断每个进程中每个数据区域的末级高速缓存的局部性强度,并根据所述局部性强度,决定并发执行的每个进程中每个数据区域的数据进入共享末级高速缓存使得插入位置。
所述访存装置,还包括插入控制接口,用于为访问共享末级高速缓存的数据提供到达所述插入位置的通路。
所述访问信息包括访问命中信息和访问失效信息;访存模式包括最近最少使用访存模式、颠簸访存模式、流访存模式以及混合访存模式。
颠簸访存模式是反复循环访问一片较大的内存区域,该内存区域大小大于高速缓存的容量,使得数据频繁地高速缓存;
流访存被认为是一组大量数据仅被访问一次的情况;
不同访存模式的数据组合在一起构成混合访存模式。
本发明实施例共享末级高速缓存分区域的插入控制接口,通过配置上述插入控制接口可以控制单个进程内不同数据区域中的数据进入末级高速缓存后的插入位置,从而可以间接影响数据在共享末级高速缓存中的分布和停留时间。
所述控制器,还用于在监视器开始统计访问信息的数量之前,配置每个进程中每个数据区域的范围。
如图2所示,本发明实施例的一种面向多核处理器的共享末级高速缓存访存方法,
步骤A、在多核处理器多进程并发执行环境中,统计每个进程中每个数据区域的末级高速缓存访问信息的数量;
步骤B、根据所述访问信息的数量,判断每个进程中每个数据区域的末级高速缓存的访存模式;
步骤C、根据所述访存模式,决定并发执行的每个进程中每个数据区域的数据是否访问共享末级高速缓存。
本发明实施例的方法可以在分区域性能监视器的支持下,根据多核计算机系统整体性能变化,确定单个进程中不同数据区域的访存行为,并利用相应接口为其配置合理的共享末级高速缓存管理策略。
步骤B可以进一步根据所述访问信息的数量,判断每个进程中每个数据区域的末级高速缓存的局部性强度。
步骤B通过设置计数器统计访问信息的数量,根据步骤D中插入位置确定前和插入位置确定后,访问信息数量的变化,决定所述访存模式。
步骤C通过设置计数器统计结果,将失效率达到预定程度的数据设定为旁路数据,并不将所述旁路数据存放在高速缓存中;
根据所述旁路数据存放在高速缓存前和存放在高速缓存后高速缓存失效率变化,确定数据是否访问共享末级高速缓存;如果高速缓存失效率减小,则所述数据区域被旁路;否则,所述数据区域应该被缓存。
根据统计结果,失效率达到预定程度的局部性较弱;失效率低于预定程度的局部性较高。
程序的局部性原理:是指程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行可能仅限于程序中的某一部分。相应地,执行所访问的存储空间也局限于某个内存区域内。
但是,程序的访存行为日趋复杂,有些数据被访问一次后可能很长时间内都不会再被访问,这种数据被认为局部性强度较低。
对于判断结果为访问共享末级高速缓存的,根据所述局部性强度,决定并发执行的每个进程中每个数据区域的数据进入共享末级高速缓存使得插入位置。
插入到高速缓存的不同位置,对性能影响很大,判定方法同前面,根据设置不同插入位置的前后变化,决定插入位置判定是否正确。失效率高的一般插入到高速缓存的即将被替换的位置;失效率低的,插入到高速缓存的最远替换位置,具体判定需根据前后两个时间片段的失效率变化决定。
不同访存模式具有不同的局部性强度。本发明实施例提出的方法通过判断改变末级高速缓存管理策略前后的访问计数变化,确定不同进程以及进程内不同数据区域的访存模式。
高速缓存的目标是存放经常被访问到的数据,数据属于局部性差的访存模式,则不需要放入到高速缓存中,以保证高速缓存存放局部性更高的数据。
对于具有颠簸模式的数据区域,应采用BIP(Bimodal Insertion Policy双态插入策略);其他数据区域应该采用LRU。
插入位置是指数据进入末级高速缓存时,其所在的末级高速缓存行在替换链表中的位置。
通过控制每个进程每个数据区域的的数据进入共享末级高速缓存使得插入位置,可以影响共享末级高速缓存的数据分布。
在步骤A之前还包括:配置每个进程中每个数据区域的范围。
所述访问信息包括访问命中信息和访问失效信息。
本实施方式中,访问信息的数量包括命中次数和失效次数;本发明实施例提出的方法通过判断改变末级高速缓存管理策略前后的访问计数变化,确定不同进程以及进程内不同数据区域的访存模式。
利用本发明实施例的装置和方法一方面可以在共享末级高速缓存中保护局部性良好的数据,减少末级高速缓存污染造成的失效,降低多核处理器访存延迟;另一方面可以减少多进程并发执行环境中不同进程间的共享末级高速缓存访问冲突和干扰,提高多核处理器的整体性能。并且本发明实施例的装置可以应用于任何具有共享末级高速缓存结构,同时采用虚拟存储机制的多核处理器计算机系统中,具有实现简单、硬件代价低等优点。
实施例一
在实际运行过程中,对于采用共享末级高速缓存结构的多核处理器而言,每个处理器高层次私有高速缓存失效后的数据在进入共享末级高速缓存前会被判断其所在进程的相应区域是否被设置旁路位。如果该区域旁路位已经被置为1,则该次数据访问会被旁路,直接访问主存储器而不进入共享末级高速缓存中。此外,本发明实施例还设计了多核处理器共享末级高速缓存分区域插入策略控制位,用于设置共享末级高速缓存失效后从内存中读取到的数据在替换链表中的插入位置。
在图3所示的工作流程图中,在多核系统中当单个处理器核出访存操作时,会首先访问自身私有高速缓存。当私有高速缓存失效,没有查找到相应数据时,处理器核会通过片内总线将处理器核编号和访存地址发送到共享末级高速缓存中,对共享末级高速缓存发出访问请求。在访问共享末级高速缓存前,本发明实施例会查询分区域性能监视器及共享末级高速缓存控制器,通过比较该数据的处理器核编号和地址范围确定该数据所在区域的对应表相。如果该表项的旁路位被设置,则该次访存操作不再访问共享末级高速缓存,直接对内存设备发出访问操作。否则,系统将继续访问共享末级高速缓存,并在性能监视器中记录该次数据访问的状态计数。当访问共享末级高速缓存失效后,系统将从内存中读取所需要的数据。新的数据在进入共享末级高速缓存时,其在替换链表中的插入位置由其所在区域表项的插入策略控制位决定。
对于单个进程而言,每个数据区域的旁路和插入策略通过在线剖视分析的方法进行配置。本发明实施例将访存密集型程序虚拟地址空间划分为若干内存区域,并通过读取分区域性能监视器获得不同数据区域的访存信息。同时,本发明实施例根据单个数据区域选择不同的旁路和插入策略前后共享末级高速缓存失效率的变化,决定单个数据区域的访存行为和局部性特征,并为其选择合理地旁路和插入策略。程序地址空间由代码段、数据段、堆和栈组成。不同段之间的访存行为具有较大差异。本发明实施例首先以段为单位划分为四个大的区域;然后,将每个段又进一步划分为多个大小相等的区域,每个区域的大小、起始地址和结束地址由所在段决定。在程序运行过程中,堆和栈的大小会发生动态变化。操作系统等系统软件可以通过监控调整堆空间变化变化的系统调用获得堆的大小变化信息,而通过定时读取栈指针寄存器获得栈的变化信息。当堆或栈的大小发生变化时,需要计算每个区域的起始地址和地址,并重新配置分区域性能监视及末级高速缓存控制器,以适应程序运行状态的变化。同时,程序执行具有阶段性的特点,不同运行阶段的访存行为存在较大差异。本发明实施例将程序运行过程划分为若干片段。每个片段由预热、检测和执行三个阶段组成。在预热阶段,本发明实施例将每个区域的旁路控制位和插入策略控制位置零,统计每个区域的末级高速缓存访问信息;在检测阶段,分别判断每个数据区域设置旁路控制位和插入策略控制位后系统整体性能的变化。本发明将共享末级高速缓存失效率作为衡量系统性能的指标,通过判断失效率是否减少,作为评价旁路和插入策略是否设置成功的标准。单位时间内的指令数可以通过读取指令高速缓存性能监视器的访问计数获得。在执行阶段,根据检测阶段的分析结果确定每个区域的旁路和插入策略,并配置分区域性能监视及末级高速缓存控制器。设置每个阶段的时间长度需要权衡精度和时间代价。相关研究表明统计周期设置为500万个时钟周期可以在准确性和开销之间达到较好的平衡。因此,在本发明实施例中执行阶段设置为500万个时钟周期,而预热和检测阶段设置为50万个时钟周期。
分区域性能监视及共享末级高速缓存控制器主要用于记录不同并发进程内多个数据区域在末级高速缓存中的访问信息,并提供旁路和插入策略控制位由软件根据单个数据区域的访存行为进行配置。具体结构如图4所示。该设备由多个数据行组成。每个行表示一个数据区域,主要由以下七个域组成:
1)PID:处理器核编号;
2)S_Addr:标识该数据区域的起始地址;
3)e_addr:标识该数据区域的结束地址;
4)Hit:共享末级高速缓存命中计数器;
5)Miss:共享末级高速缓存失效计数器;
6)B_bit:旁路控制位;
7)I_bit:插入策略控制位。
在系统运行过程中,每次共享末级高速缓存访问操作会同时访问该控制器。通过比较处理器核编号和每个数据行起始地址及结束地址之间的大小关系,可以确定该地址所在的数据区域。如果该区域所在行的旁路控制位没有置1,说明该区域中的数据可以访问共享末级高速缓存,并根据访问状态更新共享末级高速缓存命中或失效计数器。否则,该次访问将被旁路。本发明实施例提出的分区域性能监视及共享末级高速缓存控制器不在末级高速缓存访问的关键路径上,可以和末级高速缓存访问并发执行。因此,本发明实施例的方法不增加末级高速缓存访问时延。
分区域旁路和插入策略控制,由分区域性能监视及共享末级高速缓存控制器所在行的旁路和插入策略控制位决定。当旁路位置1时,表示该区域中的数据将会被旁路。插入策略控制由该数据所在区域的插入策略控制位位决定。当该位为1时执行LRU替换算法,将进入共享末级高速缓存的数据放入到替换链表的最近最多使用MRU(Most Recently Used最近最多使用)位置;否则执行BIP插入策略,该策略通过引入一个较大的概率判断是否将新插入的数据行放入LRU位置,从而可以在两个插入位置之间进行切换,以适应更大的工作集范围。
本发明的有益效果是:第一,可以有效降低多核处理器多进程并发执行环境下的共享末级高速缓存冲突和污染,减少末级高速缓存失效造成的性能损失,提高多核处理器的访存性能;第二,仅需要添加少量存储单元和控制逻辑,就能够实现本发明提出的访存方法和访存装置,具有较少的硬件开销;第三,本发明提出的共享末级高速缓存分区域性能监视及控制器不在处理器访存的关键路径上,可以和共享末级高速缓存访问并发执行,因此,不增加多核处理器的访存延迟;最后,本发明对局部性差、不经常被访问到的数据进行限制和隔离时不需要调整现有操作系统的内存管理机制,仅需要在剖视信息的指导下有选择地设置区域一级的旁路或插入位置,软件开销和改动较小。
以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

Claims (12)

1.一种面向多核处理器的共享末级高速缓存访存方法,包括:
步骤A、在多核处理器多进程并发执行环境中,统计每个进程中每个数据区域的末级高速缓存访问信息的数量;
步骤B、根据所述访问信息的数量,判断每个进程中每个数据区域的末级高速缓存的访存模式;
步骤C、根据所述访存模式,决定并发执行的每个进程中每个数据区域的数据是否访问共享末级高速缓存。
2.如权利要求1所述的访存方法,其特征在于:
所述步骤B还包括,根据所述访问信息的数量,判断每个进程中每个数据区域的末级高速缓存的局部性强度。
3.如权利要求2所述的访存方法,其特征在于:所述方法还包括:
步骤D、对于判断结果为访问共享末级高速缓存的,根据所述局部性强度,决定并发执行的每个进程中每个数据区域的数据进入共享末级高速缓存使得插入位置。
4.如权利要求1所述的访存方法,其特征在于:在步骤A之前还包括:配置每个进程中每个数据区域的范围。
5.如权利要求1所述的访存方法,其特征在于:对于判断结果为不访问共享末级高速缓存的数据,直接访问主存储器。
6.如权利要求1所述的访存方法,其特征在于:所述访问信息包括访问命中信息和访问失效信息;访存模式包括最近最少使用访存模式、颠簸访存模式、流访存模式以及混合访存模式。
7.如权利要求4所述的访存方法,其特征在于:所述步骤B通过设置计数器统计访问信息的数量,根据步骤D中插入位置确定前和插入位置确定后,访问信息数量的变化,决定所述访存模式。
8.如权利要求4所述的访存方法,其特征在于:所述步骤C通过设置计数器统计结果,将失效率达到预定程度的数据设定为旁路数据,并不将所述旁路数据存放在高速缓存中;
根据所述旁路数据存放在高速缓存前和存放在高速缓存后高速缓存失效率变化,确定数据是否访问共享末级高速缓存;如果高速缓存失效率减小,则所述数据区域被旁路;否则,所述数据区域应该被缓存。
9.一种面向多核处理器的共享末级高速缓存访存装置,其特征在于:所述访存装置包括监视器、控制器和旁路控制接口;
所述监视器,用于在多核处理器多进程并发执行环境中,统计每个进程中每个数据区域的末级高速缓存访问信息的数量;
所述控制器,用于根据所述访问信息的数量,判断每个进程中每个数据区域的末级高速缓存的访存模式;并根据所述访存模式,决定并发执行的每个进程中每个数据区域的数据是否访问共享末级高速缓存;
所述旁路控制接口,用于为判断结果为访问共享末级高速缓存的数据提供访问共享末级高速缓存的通路。
10.如权利要求9所述的访存装置,其特征在于:所述控制器,还用于根据所述访问信息的数量,判断每个进程中每个数据区域的末级高速缓存的局部性强度,并根据所述局部性强度,决定并发执行的每个进程中每个数据区域的数据进入共享末级高速缓存使得插入位置。
11.如权利要求10所述的访存装置,其特征在于:所述访存装置,还包括插入控制接口,用于为访问共享末级高速缓存的数据提供到达所述插入位置的通路。
12.如权利要求9所述的访存装置,其特征在于:所述控制器,还用于在监视器开始统计访问信息的数量之前,配置每个进程中每个数据区域的范围。
CN201611208885.XA 2016-12-23 2016-12-23 一种面向多核处理器的共享末级高速缓存访存方法和装置 Withdrawn CN106844232A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611208885.XA CN106844232A (zh) 2016-12-23 2016-12-23 一种面向多核处理器的共享末级高速缓存访存方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611208885.XA CN106844232A (zh) 2016-12-23 2016-12-23 一种面向多核处理器的共享末级高速缓存访存方法和装置

Publications (1)

Publication Number Publication Date
CN106844232A true CN106844232A (zh) 2017-06-13

Family

ID=59136678

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611208885.XA Withdrawn CN106844232A (zh) 2016-12-23 2016-12-23 一种面向多核处理器的共享末级高速缓存访存方法和装置

Country Status (1)

Country Link
CN (1) CN106844232A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108132893A (zh) * 2017-12-06 2018-06-08 中国航空工业集团公司西安航空计算技术研究所 一种支持流水的常量Cache
CN108399145A (zh) * 2018-02-08 2018-08-14 山东大学 一种cpu-gpu异构平台共享末级缓存管理方法、架构及装置
CN109117388A (zh) * 2018-07-19 2019-01-01 浙江大学 针对内存端缓存的数据动态旁路装置及方法
CN109144685A (zh) * 2017-06-16 2019-01-04 通用汽车环球科技运作有限责任公司 支持多处理系统中的可重新配置同步的架构和服务
CN110059482A (zh) * 2019-04-26 2019-07-26 海光信息技术有限公司 独占缓存空间单元的独占更新方法及相关装置
CN110442612A (zh) * 2019-06-20 2019-11-12 上海赜睿信息科技有限公司 一种数据查询方法、电子设备及计算机可读存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1679006A (zh) * 2002-08-23 2005-10-05 皇家飞利浦电子股份有限公司 处理器预取以匹配存储器总线协议特性
CN101916230A (zh) * 2010-08-11 2010-12-15 中国科学技术大学苏州研究院 基于划分感知和线程感知的末级高速缓存的性能优化方法
CN102110073A (zh) * 2011-02-01 2011-06-29 中国科学院计算技术研究所 一种片上共享高速缓存的替换装置和方法以及相应处理器
US20120137075A1 (en) * 2009-06-09 2012-05-31 Hyperion Core, Inc. System and Method for a Cache in a Multi-Core Processor
CN103198026A (zh) * 2012-01-09 2013-07-10 辉达公司 指令高速缓存功耗降低
CN104145252A (zh) * 2012-03-05 2014-11-12 国际商业机器公司 两级高速缓存系统中的自适应高速缓存提升
CN104781753A (zh) * 2012-12-14 2015-07-15 英特尔公司 功率选通高速缓存存储器的一部分
CN105264501A (zh) * 2013-06-19 2016-01-20 英派尔科技开发有限公司 定位多核处理器中的被高速缓存的数据
CN105556488A (zh) * 2013-09-19 2016-05-04 谷歌公司 存储器高速缓存的动态大小调整

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1679006A (zh) * 2002-08-23 2005-10-05 皇家飞利浦电子股份有限公司 处理器预取以匹配存储器总线协议特性
US20120137075A1 (en) * 2009-06-09 2012-05-31 Hyperion Core, Inc. System and Method for a Cache in a Multi-Core Processor
CN101916230A (zh) * 2010-08-11 2010-12-15 中国科学技术大学苏州研究院 基于划分感知和线程感知的末级高速缓存的性能优化方法
CN102110073A (zh) * 2011-02-01 2011-06-29 中国科学院计算技术研究所 一种片上共享高速缓存的替换装置和方法以及相应处理器
CN103198026A (zh) * 2012-01-09 2013-07-10 辉达公司 指令高速缓存功耗降低
CN104145252A (zh) * 2012-03-05 2014-11-12 国际商业机器公司 两级高速缓存系统中的自适应高速缓存提升
CN104781753A (zh) * 2012-12-14 2015-07-15 英特尔公司 功率选通高速缓存存储器的一部分
CN105264501A (zh) * 2013-06-19 2016-01-20 英派尔科技开发有限公司 定位多核处理器中的被高速缓存的数据
CN105556488A (zh) * 2013-09-19 2016-05-04 谷歌公司 存储器高速缓存的动态大小调整

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄涛: ""采用分区域管理的软硬件协作高能效末级高速缓存设计"", 《计算机辅助设计与图形学学报》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144685A (zh) * 2017-06-16 2019-01-04 通用汽车环球科技运作有限责任公司 支持多处理系统中的可重新配置同步的架构和服务
CN109144685B (zh) * 2017-06-16 2022-04-26 通用汽车环球科技运作有限责任公司 支持多处理系统中的可重新配置同步的架构和服务
CN108132893A (zh) * 2017-12-06 2018-06-08 中国航空工业集团公司西安航空计算技术研究所 一种支持流水的常量Cache
CN108399145A (zh) * 2018-02-08 2018-08-14 山东大学 一种cpu-gpu异构平台共享末级缓存管理方法、架构及装置
CN108399145B (zh) * 2018-02-08 2021-07-30 山东大学 一种cpu-gpu异构平台共享末级缓存管理方法、架构及装置
CN109117388A (zh) * 2018-07-19 2019-01-01 浙江大学 针对内存端缓存的数据动态旁路装置及方法
CN109117388B (zh) * 2018-07-19 2020-10-16 浙江大学 针对内存端缓存的数据动态旁路装置及方法
CN110059482A (zh) * 2019-04-26 2019-07-26 海光信息技术有限公司 独占缓存空间单元的独占更新方法及相关装置
CN110442612A (zh) * 2019-06-20 2019-11-12 上海赜睿信息科技有限公司 一种数据查询方法、电子设备及计算机可读存储介质
CN110442612B (zh) * 2019-06-20 2022-04-15 上海赜睿信息科技有限公司 一种数据查询方法、电子设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN106844232A (zh) 一种面向多核处理器的共享末级高速缓存访存方法和装置
Subramanian et al. BLISS: Balancing performance, fairness and complexity in memory access scheduling
US10210092B1 (en) Managing cache access and streaming data
CN110178124A (zh) 划分tlb或缓存分配
US9176913B2 (en) Coherence switch for I/O traffic
CN101218569B (zh) 用于控制dma任务的执行的装置
CN110140111A (zh) 存储器系统资源或性能监测的划分
CN110168502A (zh) 存储器划分
CN110168501A (zh) 存储器系统资源或性能监测的划分
CN110168500A (zh) 存储器系统资源或性能监测的划分
CN106708626A (zh) 一种面向低功耗的异构多核共享cache划分方法
US9727465B2 (en) Self-disabling working set cache
JP2019096309A (ja) メンテナンス動作の実行
US7032068B2 (en) Disk cache management method of disk array device
WO2013101138A1 (en) Identifying and prioritizing critical instructions within processor circuitry
US10042659B1 (en) Caching virtual contexts for sharing of physical instances of a hardware resource
CN106294192A (zh) 内存分配方法、内存分配装置及服务器
US10705985B1 (en) Integrated circuit with rate limiting
CN110235113B (zh) 存储器控制器和用于数据处理的系统和方法
Jia et al. Coordinate channel-aware page mapping policy and memory scheduling for reducing memory interference among multimedia applications
Chung et al. Enforcing last-level cache partitioning through memory virtual channels
CN102662861B (zh) 末级高速缓存插入策略软件控制方法
CN106874106A (zh) 一种主存bank划分方法及装置
CN106844231A (zh) 末级高速缓存软硬件协作分区域管理系统及管理方法
Dai Reverse Engineering the Intel Cascade Lake Mesh Interconnect

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
WW01 Invention patent application withdrawn after publication

Application publication date: 20170613

WW01 Invention patent application withdrawn after publication