CN107463510A - 一种面向高性能的异构多核共享cache缓冲管理方法 - Google Patents

一种面向高性能的异构多核共享cache缓冲管理方法 Download PDF

Info

Publication number
CN107463510A
CN107463510A CN201710717161.6A CN201710717161A CN107463510A CN 107463510 A CN107463510 A CN 107463510A CN 201710717161 A CN201710717161 A CN 201710717161A CN 107463510 A CN107463510 A CN 107463510A
Authority
CN
China
Prior art keywords
gpu
llc
buffer
message
cpu
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
Application number
CN201710717161.6A
Other languages
English (en)
Other versions
CN107463510B (zh
Inventor
方娟
张希蓓
陈欢欢
刘士建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
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 Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201710717161.6A priority Critical patent/CN107463510B/zh
Publication of CN107463510A publication Critical patent/CN107463510A/zh
Application granted granted Critical
Publication of CN107463510B publication Critical patent/CN107463510B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5044Allocation 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 hardware capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开一种面向高性能的异构多核共享cache缓冲管理方法,首先在共享末级缓存L2级Cache(LLC)的GPU侧建立一个与其结构相同的缓冲buffer,GPU消息首先访问buffer,从而达到过滤GPU流请求的目的,为CPU应用程序腾出LLC空间。在加入buffer的基础上,针对CPU应用程序和GPU应用程序不同的特性,采用合理的替换策略,增加cache命中率。最后,调整buffer的大小,根据IPC划分指标在运行前改变buffer大小,找到最优性能方案,从而达到提升系统性能的目的。

Description

一种面向高性能的异构多核共享cache缓冲管理方法
技术领域
本发明属于计算机体系缓存系统结构领域,具体涉及一种面向高性能的异构多核共享cache缓冲管理方法。
背景技术
随着半导体工艺的进步,以及单处理器所碰到的物理极限和功耗等无法逾越的障碍,体系结构技术发生了深刻的变革。经过最近几年的不断研究与发展,以多核处理器为代表的先进体系结构已经逐渐取代单核处理器成为提高处理器性能的主要途径。多核处理器在一个芯片中集成多个处理器核,这些处理器核具有相同或者不同的功能和结构,以一种有效的方式集成在同一个芯片中,并以有效的划分方式将应用程序分配给不同的微处理器核进行并行处理,从而提高微处理器系统的性能。多核体系结构强调结构的层次化、功能的模块化与分布化,它让每个功能部件都尽量简单,部件内部尽可能保持连线的局部性。较之单核处理器,多核处理器具有很多天然的优势。多核处理器可以在较低的时钟频率下提供单核处理器需要很高时钟频率才能达到的计算性能,而较低的时钟频率也可以很好地满足功耗、散热等方面的限制。此外,多核处理器的本质是采用相对较简单的多个计算内核并行工作,以提供较高的计算能力。因此,设计者在设计多核处理器时,只需设计相对较简单的计算内核,并通过一定的互连方式将其连接起来。与传统的设计单个内核的复杂处理器相比,这大大降低了设计的难度和成本,提高了设计的效率。
图形处理器(Graphics Processing Unit,GPU)具有相对简单的控制逻辑,集成有大量并行处理核心,具有较高的峰值效能(单位功耗的计算性能)。GPU技术发展迅速,随着GPU的计算能力和可编程性的不断提高,利用GPU进行通用计算逐渐成为研究的热点。Nvidia和AMD分别提出了自己的GPU通用计算技术CUDA和ATI Stream。使用CPU-GPU混合计算是一种简单、有效的方法,在把大量并行运算交给GPU的同时,CPU除了负责程序流程控制之外,也承担一部分计算任务,通过控制计算任务的比例分配,尽量减少计算过程中CPU和GPU的闲置资源,从而达到不浪费计算资源的目的。
最后一级共享缓存(The shared last-level Cache,简称LLC)在CPU与GPU之间形成一个共享的存储层次,可以加速它们之间的数据传输。LLC相对L1缓存有较大的空间,相对内存有更快的访问速度,其访问策略对异构系统的性能具有重大影响。与CPU相比,GPU线程数量更多,并行度高,GPU应用程序可以达到比CPU应用程序更多的数据访问速率,具有一定的访问延迟容忍性。由于GPU很高数目的并发线程和容忍访存延时特性,在当前的缓存管理方法下,LLC收到数千个来自GPU应用程序线程的内存访问支配,大量的LLC空间将被GPU应用程序所占据,而留给CPU的空间非常有限,导致现有的cache共享策略有利于GPU核心,而不利于CPU核心,CPU应用程序对于共享LLC的访问会明显降低。应用程序一旦发生高速缓存尤其是末级高速缓存缺失,则需要额外地去访问片外主存,造成不必要的开销,降低了系统的性能。因此,在异构多核架构中,共享LLC的管理对于系统性能的影响至关重要。
目前,已有一些研究致力于Cache缓存子系统,Chentao Wu等人提出进一步提高缓存预取的准确率的Hint-k策略。也有研究利用数据热度提高缓存命中率,罗德岛大学的杨等人提出了一种基于热点的LPU算法,将访问频率扩展到访问热度,优先保留与其他缓存块相似度高同时访问频率也高的缓存块,从而避免虚拟机或者云计算中的热点数据的重复读取。也有研究者利用缓存解决系统的某一方面问题,比如中国人民大学的柴等人提出了PLCCcache缓存算法,在重复数据删除的存储系统中,延长了固态盘的使用寿命,同时提高了性能。也有很多工作研究异构存储系统中的缓存算法,比如威斯康星大学麦迪逊分校的Forney等人根据累积延迟周期性调整缓存逻辑分区大小,实现不同设备之间的性能平衡。Chakraborty等人则进一步改进Forney的算法,通过一种基于有向无环图的方法实现缓存逻辑分区的实时分配。但是现有的缓存管理工作,主要用于同构多核系统环境中,无法适应于CPU与GPU结合的异构环境,更无法对来自CPU的请求和来自GPU的请求进行区分,导致共享末级缓存分配的不公平性,严重影响系统的性能和功耗。
发明内容
本发明提出了一种面向高性能的异构多核共享cache缓冲管理方法,首先在共享末级缓存L2级Cache(LLC)的GPU侧建立一个与其结构相同的缓冲Buffer,GPU消息首先访问Buffer,从而达到过滤GPU流请求的目的,为CPU应用程序腾出LLC空间。在加入Buffer的基础上,针对CPU应用程序和GPU应用程序不同的特性,采用合理的替换策略,增加cache命中率。最后,调整Buffer的大小,根据IPC划分指标在运行前改变Buffer大小,找到最优性能方案,从而达到提升系统性能的目的。
为达到上述目的,本发明采用以下技术方案。
一种面向高性能的异构多核LLC缓冲管理方法,其特征在于,包括以下步骤:
步骤1,实现CPU请求与GPU请求区分,跟踪访存请求,使用标志位CPUorGPU来区分不同核心的访存请求;
步骤2,在共享末级缓存L2级Cache(LLC)的GPU侧建立一个与其结构相同的缓冲Buffer,其大小为LLC大小的6%;
步骤3,根据不同核心访存请求的标志位CPUorGPU决定访存请求映射到L2Cache地址还是Buffer地址;
步骤4,实现GPU请求的过滤,包括以下步骤:
步骤4.1,缓冲过滤
在L2Cache的请求缓冲队列L1RequestToL2Cache中,判断CPUorGPU消息标志位,如果该请求是来自CPU核心的L1级Cache,将该访存请求映射到LLC,如果该请求是来自GPU核心的L1级Cache,将该访存请求先映射到Buffer,若未在Buffer中命中,再映射到LLC;
步骤4.2,静态调整
静态地改变Buffer大小,将其分别改为12%LLC大小、25%LLC大小和50%LLC大小,统计共享缓存CPU和GPU程序各自的单位周期内执行的指令数量(Instructions PerCycle简称IPC),找到性能最优的Buffer大小;
步骤5,将改进的LRU替换算法(PseudoLRU)应用于Buffer中,当请求访问Buffer时,使用PseudoLRU替换算法将不常用的块替换掉。
与现有技术相比,本发明具有以下优点:
GPU应用程序与CPU应用程序共享末级缓存,GPU应用程序独有的良好并行性和访存延迟容忍性,导致GPU应用程序占据大部分LLC空间,严重影响CPU程序的访存命中率,导致额外访问主存的开销,影响系统的性能。LLC缓冲管理方法,通过加入缓冲区过滤GPU应用程序的请求,有效地限制部分GPU的访问,避免GPU应用程序的不公平竞争,提高CPU应用程序对LLC的利用率,提高访存命中率,从而提高系统性能。
附图说明
为使本发明的目的,方案更加通俗易懂,下面将结合附图对本发明进一步说明。
图1为CPU-GPU异构多核系统架构图,该异构多核系统由2个CPU核心和4个GPU核心组成异构多核体系结构,每个核心包含一个私有的L1级Cache,所有CPU核心与GPU核心共享L2Cache即末级共享缓存(LLC)和主存控制器DRAM(MEMORY),所有核心间的通信片上网络NOC进行交流。
图2为SLICC运行机制图;
图3为Cache缓冲管理方法的示意图
图4为Cache缓冲管理方法的流程图。
图5为Cache缓冲管理方法使用前后CPU IPC对比图。
图6为Cache缓冲管理方法使用前后GPU IPC对比图。
图7为Cache缓冲管理方法使用前后LLC命中率对比图。
具体实施方式
为使本发明的目的,技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。
本发明所涉及的是一种面向高性能的异构多核cache缓冲管理方法,如图1所示,以一个具有两个CPU核心、四个GPU核心,每个核心均拥有各自的L1Cache,共享一个L2Cache的异构处理器为例。运行的CPU测试程序是单线程的SPEC CPU2006,GPU应用程序为Rodinia。每一个workload由一个CPU测试程序和一个GPU应用程序组成。在模拟器中,使用SLICC(specification language for implementing cache coherence)脚本语言来描述一致性协议。如图2所示,为SLICC运行机制图。具体步骤如下:
步骤1,区分CPU访存请求与GPU访存请求,添加标志位CPUorGPU标记L1Cache编号,区分当前L1Cache属于CPU核心还是GPU核心。
运行一个workload group(包含2个benchmark测试程序),其中CPU的benchmark即SPEC2006的一个测试程序运行在一个CPU核心,GPU的benchmark即GPU的rodinia测试程序运行在另外一个CPU核心,由CPU核心引导GPU测试程序rodinia运行在4个GPU核上。共计有6个来自不同核心的L1Cache消息。在每个L1Cache Controller上新增CPUorGPU标志位,若消息来自CPU则标志位值等于0,若消息来自GPU则标志位大于0,通过CPUorGPU区分来自不同核心的L1Cache消息。
步骤2,在共享末级缓存L2Cache(LLC)的GPU侧建立一个与其结构相同的缓冲Buffer,即在配置文件中定义两个L2Cache,在每个L2Cache Controller上新增BufID编号位,并规定BufID为0的L2Cache为LLC,BufID为1的L2Cache为Buffer,Buffer的大小为编LLC大小的6%。如图3所示,实现Buffer的添加。
步骤3,根据不同核心访存请求的标志位CPUorGPU决定访存请求映射到LLC地址还是Buffer地址。
步骤1中已经添加了标志位来区分不同核心的L1Cache消息,当L1CacheController中的访问请求消息到达L2Cache Controller时,在端口L1RequestL2Network_in中进行消息类型的判断,对来自CPU核心还是GPU核心的L1Cache请求消息进行不同的地址空间映射。
步骤4,实现GPU请求的过滤。
CPU应用程序和GPU应用程序在共享L2Cache空间地址的同时,将来自GPU应用程序的消息映射到Buffer中,使GPU应用程序同时享用LLC和Buffer,来自GPU应用程序的消息首先在Buffer中获取所需内容,若未命中,则再访问LLC;而来自CPU应用程序的消息,只访问LLC。Cache缓冲管理方法的流程如图4所示。缓冲管理方法有效地避免了GPU并行多线程对LLC的不公平占用,保证了CPU对于LLC的利用效率,提高了系统的性能。
步骤4.1,缓冲过滤。
L1RequestL2Network_in消息队列中存储来自CPU或者GPU L1Cache Controller消息,获得标志位CPUorGPU的值,通过getCacheEntry(in_msg.addr)函数根据in_msg.addr的地址将消息映射L2级Cache的相应cache_entry中。新增辨识L2Cache编号标志位L2_version,如果CPUorGPU值为0,则该消息来自CPU L1Cache,另L2_version设为0;如果CPUorGPU值大于0,则该消息来自GPU L1Cache,另L2_version设为1。将标志位L2_version传递给RubySlicc的组件映射函数中,在L2Cache接收来自L1Cache的消息时,先执行映射函数,将L2_version与BufID的值作对比,对于来自CPU L1Cache的消息,L2_version等于0,则将消息直接映射到BufID为0的L2Cache中,即LLC中;对于来自GPU L1Cache的消息,L2_version等于1,则将消息按照掩码计算优先命中的方法,将消息映射到BufID为0或1的L2Cache中,即LLC或Buffer中。为来自GPU应用程序的消息新增一块缓冲区域,减少GPU与CPU对LLC空间的抢占力,从而提高CPU应用的访存命中率,提高系统性能。
步骤4.2,静态调整。
考虑到增大Buffer的空间,有利于性能的提高,在配置文件中,改变BufID为1的L2Cache的大小,即调整Buffer的大小,使其分别改为12%LLC大小、25%LLC大小和50%LLC大小,统计共享缓存CPU和GPU程序各自的单位周期内执行的指令数量(Instructions PerCycle简称IPC),找到平均性能最优的buffer大小;
适当增大buffer大小,为GPU应用程序预留更大空间,同时可以减少GPU应用程序对于LLC的抢占,使CPU应用占据了大部分LLC,可以有效地提高访存命中率,使得系统的性能提高。
步骤5,将改进的LRU替换算法(PseudoLRU)应用于Buffer中,当请求访问Buffer时,使用PseudoLRU替换算法将不常用的块替换掉。
本发明的面向高性能的异构多核LLC缓冲管理方法,Intel的Sandy Bridge架构和AMD的Kaveri架构实现了在一个芯片中整合CPU和GPU核心,形成了异构多核处理器架构。异构多核处理器架构简化了CPU和GPU之间的通信,实现了CPU和GPU之间共享最后一级缓存(LLC)资源。与CPU相比,GPU线程数量更多,并行度高,GPU应用程序可以达到比CPU应用程序更多的数据访问速率,具有一定的访问延迟容忍性,导致GPU对访存延迟有掩盖效应,多数的缓存空间将被GPU应用程序占用,CPU应用程序对于共享LLC的访问会明显降低。因此,为了保证CPU应用程序获得缓存的公平共享,可以通过加入缓冲器(Buffer)来过滤部分GPU应用程序消息的方法,使来自GPU应用程序的消息不是直接访问与CPU共享的LLC,而是也可以在缓冲空间中读写所需内容,这样,buffer就分担了一部GPU应用程序对于LLC的压力,给CPU应用程序腾出了大量空间。本Cache管理方法使用Jason Lowe-Power研发的gem5-gpu模拟器进行实验对比,经过实验,得出相关数据。图5是系统原始状态和加入buffer后CPU的IPC对比图,图6是系统原始状态和加入buffer后GPU的IPC对比图,两个图都是不同GPU应用程序和当前CPU应用程序(横坐标)所运行而得出的平均IPC值(纵坐标),通过计算,异构多核环境下,使用缓冲管理方法比不使用时的CPU性能平均提高了0.82%,GPU的性能平均提高了5.50%。图7为系统原始状态和加入buffer后LLC命中率对比图,使用策略后,消息对于LLC的命中率平均提升了46.59%。Cache缓冲管理方法可有效地缓解CPU和GPU应用程序对共享缓存的争夺,保证了CPU对于LLC的利用效率,提高了系统的性能。

Claims (4)

1.一种面向高性能的异构多核LLC缓冲管理方法,其特征在于,包括以下步骤:
步骤1,实现CPU请求与GPU请求区分,跟踪访存请求,使用标志位CPUorGPU来区分不同核心的访存请求;
步骤2,在共享末级缓存L2级Cache(LLC)的GPU侧建立一个与其结构相同的缓冲buffer;
步骤3,根据不同核心访存请求的标志位CPUorGPU决定访存请求映射到L2Cache地址还是buffer地址;
步骤4,实现GPU请求的过滤,包括以下步骤:
步骤4.1,缓冲过滤
在L2Cache的请求缓冲队列L1RequestToL2Cache中,判断CPUorGPU消息标志位,如果该请求是来自CPU核心的L1级Cache,将该访存请求映射到LLC,如果该请求是来自GPU核心的L1级Cache,将该访存请求先映射到buffer,若未在buffer中命中,再映射到LLC;
步骤4.2,静态调整
改变buffer大小,将其分别改为12%LLC大小、25%LLC大小和50%LLC大小,统计共享缓存CPU和GPU程序各自的单位周期内执行的指令数量(Instructions Per Cycle简称IPC),找到性能最优的buffer大小;
步骤5,将合理的替换策略应用于buffer中,当请求访问buffer时,使用更适合GPU应用程序的改进的LRU替换算法(PseudoLRU)将不常用的块替换掉。
2.如权利要求1所述的面向高性能的异构多核LLC缓冲管理方法,其特征在于,步骤2具体为:在配置文件中定义两个L2Cache,在每个L2Cache Controller上新增BufID编号位,并规定BufID为0的L2Cache为LLC,BufID为1的L2Cache为Buffer,Buffer的大小为编LLC大小的6%。
3.如权利要求2所述的面向高性能的异构多核LLC缓冲管理方法,其特征在于,步骤3具体为:步骤1中已经添加了标志位来区分不同核心的L1Cache消息,当L1Cache Controller中的访问请求消息到达L2Cache Controller时,在端口L1RequestL2Network_in中进行消息类型的判断,对来自CPU核心还是GPU核心的L1Cache请求消息进行不同的地址空间映射。
4.如权利要求3所述的面向高性能的异构多核LLC缓冲管理方法,其特征在于,步骤4.1具体为:L1RequestL2Network_in消息队列中存储来自CPU或者GPU L1Cache Controller消息,获得标志位CPUorGPU的值,通过getCacheEntry(in_msg.addr)函数根据in_msg.addr的地址将消息映射L2级Cache的相应cache_entry中。新增辨识L2Cache编号标志位L2_version,如果CPUorGPU值为0,则该消息来自CPU L1Cache,另L2_version设为0;如果CPUorGPU值大于0,则该消息来自GPU L1Cache,另L2_version设为1;将标志位L2_version传递给RubySlicc的组件映射函数中,在L2Cache接收来自L1Cache的消息时,先执行映射函数,将L2_version与BufID的值作对比,对于来自CPU L1Cache的消息,L2_version等于0,则将消息直接映射到BufID为0的L2Cache中,即LLC中;对于来自GPU L1Cache的消息,L2_version等于1,则将消息按照掩码计算优先命中的方法,将消息映射到BufID为0或1的L2Cache中,即LLC或Buffer中。
CN201710717161.6A 2017-08-21 2017-08-21 一种面向高性能的异构多核共享cache缓冲管理方法 Active CN107463510B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710717161.6A CN107463510B (zh) 2017-08-21 2017-08-21 一种面向高性能的异构多核共享cache缓冲管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710717161.6A CN107463510B (zh) 2017-08-21 2017-08-21 一种面向高性能的异构多核共享cache缓冲管理方法

Publications (2)

Publication Number Publication Date
CN107463510A true CN107463510A (zh) 2017-12-12
CN107463510B CN107463510B (zh) 2020-05-08

Family

ID=60549050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710717161.6A Active CN107463510B (zh) 2017-08-21 2017-08-21 一种面向高性能的异构多核共享cache缓冲管理方法

Country Status (1)

Country Link
CN (1) CN107463510B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399145A (zh) * 2018-02-08 2018-08-14 山东大学 一种cpu-gpu异构平台共享末级缓存管理方法、架构及装置
CN109032964A (zh) * 2018-07-02 2018-12-18 京东方科技集团股份有限公司 缓存替换方法及其装置、异构多核系统
CN109189478A (zh) * 2018-08-27 2019-01-11 中国科学院计算技术研究所 针对应用程序的反馈优化方法
CN110489356A (zh) * 2019-08-06 2019-11-22 上海商汤智能科技有限公司 信息处理方法、装置、电子设备及存储介质
CN112540934A (zh) * 2020-12-14 2021-03-23 山东师范大学 保证多个延迟关键程序共同执行时服务质量的方法及系统
CN114817120A (zh) * 2022-06-29 2022-07-29 湖北芯擎科技有限公司 一种跨域数据共享方法、系统级芯片、电子设备及介质
CN116257463A (zh) * 2023-01-04 2023-06-13 格兰菲智能科技有限公司 混合存储方法、装置、计算机设备、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104471554A (zh) * 2012-08-17 2015-03-25 英特尔公司 共享虚拟存储器
CN106250348A (zh) * 2016-07-19 2016-12-21 北京工业大学 一种基于gpu访存特性的异构多核架构缓存管理方法
CN106708626A (zh) * 2016-12-20 2017-05-24 北京工业大学 一种面向低功耗的异构多核共享cache划分方法
US10217184B2 (en) * 2003-10-29 2019-02-26 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10217184B2 (en) * 2003-10-29 2019-02-26 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
CN104471554A (zh) * 2012-08-17 2015-03-25 英特尔公司 共享虚拟存储器
US20160328823A1 (en) * 2012-08-17 2016-11-10 Intel Corporation Shared virtual memory
CN106250348A (zh) * 2016-07-19 2016-12-21 北京工业大学 一种基于gpu访存特性的异构多核架构缓存管理方法
CN106708626A (zh) * 2016-12-20 2017-05-24 北京工业大学 一种面向低功耗的异构多核共享cache划分方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YU L等: "Buffer on last level cache for cpu and gpgpu data sharing", 《2014 IEEE INTL CONF ON HIGH PERFORMANCE COMPUTING AND COMMUNICATIONS, 2014 IEEE 6TH INTL SYMP ON CYBERSPACE SAFETY AND SECURITY, 2014 IEEE 11TH INTL CONF ON EMBEDDED SOFTWARE AND SYST (HPCC, CSS, ICESS)》 *
娄冕等: "一种面向包含式缓存的共享末级缓存管理策略", 《北京理工大学学报》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399145A (zh) * 2018-02-08 2018-08-14 山东大学 一种cpu-gpu异构平台共享末级缓存管理方法、架构及装置
CN108399145B (zh) * 2018-02-08 2021-07-30 山东大学 一种cpu-gpu异构平台共享末级缓存管理方法、架构及装置
CN109032964A (zh) * 2018-07-02 2018-12-18 京东方科技集团股份有限公司 缓存替换方法及其装置、异构多核系统
US11086792B2 (en) 2018-07-02 2021-08-10 Beijing Boe Optoelectronics Technology Co., Ltd. Cache replacing method and apparatus, heterogeneous multi-core system and cache managing method
CN109189478A (zh) * 2018-08-27 2019-01-11 中国科学院计算技术研究所 针对应用程序的反馈优化方法
CN109189478B (zh) * 2018-08-27 2020-12-29 中国科学院计算技术研究所 针对应用程序的反馈优化方法
CN110489356A (zh) * 2019-08-06 2019-11-22 上海商汤智能科技有限公司 信息处理方法、装置、电子设备及存储介质
CN112540934A (zh) * 2020-12-14 2021-03-23 山东师范大学 保证多个延迟关键程序共同执行时服务质量的方法及系统
CN114817120A (zh) * 2022-06-29 2022-07-29 湖北芯擎科技有限公司 一种跨域数据共享方法、系统级芯片、电子设备及介质
CN116257463A (zh) * 2023-01-04 2023-06-13 格兰菲智能科技有限公司 混合存储方法、装置、计算机设备、存储介质

Also Published As

Publication number Publication date
CN107463510B (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
CN107463510A (zh) 一种面向高性能的异构多核共享cache缓冲管理方法
Stuecheli et al. The virtual write queue: Coordinating DRAM and last-level cache policies
Kim et al. An adaptive, non-uniform cache structure for wire-delay dominated on-chip caches
US8904154B2 (en) Execution migration
US9251081B2 (en) Management of caches
US9075730B2 (en) Mechanisms to bound the presence of cache blocks with specific properties in caches
US10067872B2 (en) Memory speculation for multiple memories
CN106708626A (zh) 一种面向低功耗的异构多核共享cache划分方法
Kandemir et al. A novel migration-based NUCA design for chip multiprocessors
Kim et al. Hybrid DRAM/PRAM-based main memory for single-chip CPU/GPU
Syu et al. High-endurance hybrid cache design in CMP architecture with cache partitioning and access-aware policy
CN106383792B (zh) 一种基于缺失感知的异构多核缓存替换方法
Liu et al. MLCache: A space-efficient cache scheme based on reuse distance and machine learning for NVMe SSDs
Guz et al. Utilizing shared data in chip multiprocessors with the Nahalal architecture
Tian et al. Abndp: Co-optimizing data access and load balance in near-data processing
Herrero et al. Distributed cooperative caching: An energy efficient memory scheme for chip multiprocessors
CN116795767A (zh) 一种基于CHI协议的多核Cache共享一致性协议构建方法
Nedbailo Avoiding common scalability pitfalls in shared-cache chip multiprocessor design
Huang et al. Psa-nuca: A pressure self-adapting dynamic non-uniform cache architecture
CN109710563B (zh) 一种可重构系统的缓存分区划分方法
Lira et al. Replacement techniques for dynamic NUCA cache designs on CMPs
Li et al. Buffer filter: a last-level cache management policy for CPU-GPGPU heterogeneous system
Stuecheli et al. Coordinating DRAM and last-level-cache policies with the virtual write queue
Garcia-Guirado et al. DAPSCO: Distance-aware partially shared cache organization
Lira et al. Analysis of non-uniform cache architecture policies for chip-multiprocessors using the parsec benchmark suite

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