CN113342265A - 缓存管理方法、装置、处理器及计算机装置 - Google Patents

缓存管理方法、装置、处理器及计算机装置 Download PDF

Info

Publication number
CN113342265A
CN113342265A CN202110508803.8A CN202110508803A CN113342265A CN 113342265 A CN113342265 A CN 113342265A CN 202110508803 A CN202110508803 A CN 202110508803A CN 113342265 A CN113342265 A CN 113342265A
Authority
CN
China
Prior art keywords
cache
write
read
space
available
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
CN202110508803.8A
Other languages
English (en)
Other versions
CN113342265B (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.)
Zhongtian Xingxing Shanghai Technology Co ltd
Original Assignee
Zhongtian Xingxing Shanghai Technology Co ltd
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 Zhongtian Xingxing Shanghai Technology Co ltd filed Critical Zhongtian Xingxing Shanghai Technology Co ltd
Priority to CN202110508803.8A priority Critical patent/CN113342265B/zh
Publication of CN113342265A publication Critical patent/CN113342265A/zh
Application granted granted Critical
Publication of CN113342265B publication Critical patent/CN113342265B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance

Landscapes

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

Abstract

本申请提供缓存管理方法、装置、处理器及计算机装置,通过监测缓存空间中的可用缓存状态;监测下级存储空间的忙碌状态;执行缓存替换操作,包括:基于所述下级存储空间的忙碌状态和可用缓存状态符合写回条件的情形,执行对缓存空间的需写回数据的写回操作。上述方法根据下级存储状态和缓存状态,以主动进行缓存替换的写回操作,既良好利用空余下级存储带宽,也避免因下级存储忙碌而造成写回阻塞引发读/写请求处理延迟,提升处理性能。此外,还可以结合读/写请求的需求情形来优化缓存配置;通过对写回机制进行优化,降低读写的切换,降低下级存储的页表冲突等造成的性能影响,改善存储访问性能。

Description

缓存管理方法、装置、处理器及计算机装置
技术领域
本申请涉及集成电路设计技术领域,尤其涉及缓存管理方法、装置、处理器及计算机装置。
背景技术
高速缓存(Cache)在图形处理单元(Graphics Processing Unit,GPU)设计中具有举足轻重的作用,通过合理的运用缓存,GPU可以有效的提升内部的有效带宽,从而大幅降低对于外部显存带宽的访问需求。
GPU中的可读/写类型的缓存,简称为可读/写缓存。读/写缓存相对于只读(Read-Only)缓存有其天然的复杂性,传统的GPU可读/写缓存主要用于处理深度和颜色信息,不过由于相对简单的访问结构其设计相对简单。但是,随着通用计算在GPU上的不断发展,用于通用计算数据的可读/写缓存也开始广泛地出现在GPU中,由于成千上万GPU线程的访问的地址的随机性,如何更好的提升访问的吞吐量,如何降低数据替换的延迟,以及如何提升GPU外部显存的访问效率是缓存设计的重点难题。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供缓存管理方法、装置、处理器及计算机装置,从而解决现有技术的问题。
为实现上述目标及其他相关目标,本申请第一方面提供一种缓存管理方法,应用于处理器;方法包括:响应于读/写请求,监测缓存空间中的可用缓存状态;监测下级存储空间的忙碌状态;执行缓存替换操作,包括:基于所述下级存储空间的忙碌状态和可用缓存状态符合写回条件的情形,执行对缓存空间的需写回数据的写回操作。
在第一方面的一些实施例中,所述缓存空间包括至少一个缓存单元;在执行缓存替换操作之前,还包括:根据所述读/写请求获取需访问的缓存单元及其未命中的信息;根据所获取的信息预测得到各缓存单元触发写回操作的写回条件参数。
在第一方面的一些实施例中,所述缓存单元为缓存组或缓存行;所述缓存组包括一或多个缓存行。
在第一方面的一些实施例中,所述写回条件参数至少包括:下级存储空间处于非忙碌状态,且剩余的无需写回的可用缓存行不足以满足读/写请求。
在第一方面的一些实施例中,所述写回条件参数还包括:各个缓存单元的写回操作的优先级。
在第一方面的一些实施例中,所述可用缓存状态包括:无需写回的可用缓存行的数目;所述写回条件包括:无需写回的可用缓存行数目不足以满足读/写请求。
在第一方面的一些实施例中,所述下级存储空间通过页表管理;所述执行对缓存空间的需写回数据的写回操作,包括:按逐个页表对相关的需写回数据执行写回。
为实现上述目标及其他相关目标,本申请第二方面提供一种缓存管理装置,应用于处理器;装置包括:可用缓存监测模块,用于响应于读/写请求,监测缓存空间中的可用缓存状态;下级状态监测模块,用于监测所述缓存空间的下级存储空间的忙碌状态;缓存替换模块,用于执行缓存替换操作,包括:基于所述下级存储空间的忙碌状态和可用缓存状态符合写回条件的情形,执行对缓存空间的需写回数据的写回操作。
在第二方面的一些实施例中,所述缓存空间包括至少一个缓存单元;所述缓存管理装置还包括:参数预测模块,用于根据所述读/写请求获取需访问的缓存单元和未命中的信息,并根据所获取的信息预测得到各缓存单元触发写回操作的写回条件参数。
在第二方面的一些实施例中,所述缓存单元为缓存组或缓存行;所述缓存组包括一或多个缓存行。
在第二方面的一些实施例中,所述写回条件参数至少包括:下级存储空间处于非忙碌状态,且剩余的无需写回的可用缓存行不足以满足读/写请求。
在第二方面的一些实施例中,所述写回条件参数还包括:各个缓存单元的写回操作的优先级。
在第二方面的一些实施例中,所述可用缓存状态包括:无需写回的可用缓存行的数目;所述写回条件包括:无需写回的可用缓存行数目不足以满足读/写请求。
在第二方面的一些实施例中,所述下级存储空间通过页表管理;所述执行对缓存空间的需写回数据的写回操作,包括:按逐个页表对相关的需写回数据执行写回。
为实现上述目标及其他相关目标,本申请第三方面提供一种处理器,包括:第二方面任一项所述的缓存管理装置。
在第三方面的一些实施例中,所述处理器为图形处理器。
为实现上述目标及其他相关目标,本申请第四方面提供一种计算机装置,包括如第三方面任一项所述的处理器。
综合上述,本申请提供缓存管理方法、装置、处理器及计算机装置,通过监测缓存空间中的可用缓存状态;监测下级存储空间的忙碌状态;执行缓存替换操作,包括:基于所述下级存储空间的忙碌状态和可用缓存状态符合写回条件的情形,执行对缓存空间的需写回数据的写回操作。上述方法根据下级存储状态和缓存状态,以主动进行缓存替换的写回操作,既良好利用空余下级存储带宽,也避免因下级存储忙碌而造成写回阻塞引发读/写请求处理延迟,提升处理性能。此外,还可以结合读/写请求的需求情形来优化缓存配置;通过对写回机制进行优化,降低读写的切换,降低下级存储的页表冲突等造成的性能影响,改善存储访问性能。
附图说明
图1显示为一示例中缓存替换的原理示意图。
图2显示为本申请实施例中的缓存管理方法的流程示意图。
图3显示为本申请一实施例中设置缓存单元的流程示意图。
图4显示为本申请一具体实施例中的缓存管理方法的流程示意图。
图5显示为本申请一实施例中的缓存管理装置的模块示意图。
图6显示为本申请又一实施例中的缓存管理装置的模块示意图。
图7显示为本申请一实施例中的处理器的结构示意图。
图8显示为本申请一种实施例中电子装置的结构示意图
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用系统,本说明书中的各项细节也可以基于不同观点与应用系统,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面以附图为参考,针对本申请的实施例进行详细说明,以便本申请所属技术领域的技术人员能够容易地实施。本申请可以以多种不同形态体现,并不限定于此处说明的实施例。
为了明确说明本申请,省略与说明无关的器件,对于通篇说明书中相同或类似的构成要素,赋予了相同的参照符号。
在通篇说明书中,当说某器件与另一器件“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种器件“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素排除在外,而是意味着可以还包括其它构成要素。
当说某器件在另一器件“之上”时,这可以是直接在另一器件之上,但也可以在其之间伴随着其它器件。当对照地说某器件“直接”在另一器件“之上”时,其之间不伴随其它器件。
虽然在一些实例中术语第一、第二等在本文中用来描述各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。例如,第一信号接口及第二信号接口等描述。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
此处使用的专业术语只用于言及特定实施例,并非意在限定本申请。此处使用的单数形态,只要语句未明确表示出与之相反的意义,那么还包括复数形态。在说明书中使用的“包括”的意义是把特定特性、区域、整数、步骤、作业、要素及/或成份具体化,并非排除其它特性、区域、整数、步骤、作业、要素及/或成份的存在或附加。
表示“下”、“上”等相对空间的术语可以为了更容易地说明在附图中图示的一器件相对于另一器件的关系而使用。这种术语是指,不仅是在附图中所指的意义,还包括使用中的装置的其它意义或作业。例如,如果翻转附图中的装置,曾说明为在其它器件“下”的某器件则说明为在其它器件“上”。因此,所谓“下”的示例性术语,全部包括上与下方。装置可以旋转90°或其它角度,代表相对空间的术语也据此来解释。
虽然未不同地定义,但包括此处使用的技术术语及科学术语,所有术语均具有与本申请所属技术领域的技术人员一般理解的意义相同的意义。普通使用的字典中定义的术语追加解释为具有与相关技术文献和当前提示的内容相符的意义,只要未进行定义,不得过度解释为理想的或非常公式性的意义。
缓存是为了调节速度不一致的两个或多个不同的物质的速度,在中间对速度较快的一方起到一个加速访问速度较慢的一方的作用。在处理器的数据存取中,缓存技术已有广泛应用。前述示例中的GPU配置缓存只是一种举例,并非以此为限。
以处理器可配置有多级缓存,以CPU为例,可以配置L1 cache,L2 cache,L3 cache等,等级越高对应的存取速度越快,缓存的下级是系统存储器(例如易失性存储器DDRSDRAM等),被称为“内存”,按其在计算机系统的地位也可被称为“主存”,内存再下级的存储介质为外部存储,例如硬盘等。对于GPU而言,GPU缓存的下级存储空间为显存。
缓存主要是为了协调其与存取速度更慢的存储介质之间的速度差异而设置,故拥有缓存的不止于上述两种举例。比如,硬盘也拥有缓存。
从距离处理器近到远的各级存储,缓存、内存、硬盘,或者缓存、显存等存储介质的相互关系,可被认为是上下级关系(也可以称为上下游关系)。各存储介质之间是按相邻上、下级之间进行数据相互的存取。
如图1所示,展示一示例中缓存使用的原理示意图。
对于配置有可读/写缓存的处理器101,接收到读/写请求时,会先到缓存102中去寻找所需读取的数据,如果数据因之前的操作已经读取而被暂存其中(比如要读取或写入的数据已在缓存中存在副本),则称为命中,就不需要再从下级存储空间103中读取数据,而改从缓存取得数据。如未命中(Miss),则需要将数据更新进缓存当中。在图1中,展示根据读请求在缓存102进行命中测试,缓存中的A数据命中,而B数据所存储数据未命中,则A数据可以被读/写请求使用。
缓存会策略性地淘汰(移出)其中的一些数据以腾出空间存放新调入的数据,这称为替换。确定替换的规则叫替换算法,常用的替换算法有最近最少使用算法(LRU)、最少使用算法(LFU)、先进先出法(FIFO)和随机法(RAND)等。
对于回写式(Write Back)缓存,当数据被写入到缓存时不会直接写入到内存中,而这样的在缓存和内存中不一致的数据会被标记而成为“脏数据”。当回收脏数据的缓存区域时,才会将脏数据写入至下级存储空间(比如下级缓存、内存、或显存)以保持数据一致性,这种行为被称为懒或延迟写回。在图1中,C数据标记为脏数据。当C数据占用的部分缓存要被回收以写入数据,或者对C进行读请求未命中而需要从下级存储空间更新数据以覆盖C占用的部分缓存时,会将C写回到下级存储空间103中。
缓存中的最小单位被称为缓存行(Cache line),其与下级存储空间中的一块区域之间存在映射关系。缓存的组织结构可以是按照例如缓存组进行划分,每个缓存组可以包含一或多个缓存行。例如,图1中的A、B可以分别对应一个缓存组或缓存行。
但是,上述方案在实际应用中仍然会遇到几类问题:
第一个是写回的阻塞问题:由于采用懒写回的方式,并不会考虑到下级存储空间的忙碌状况,经常会由于在下级存储空间忙碌时写回而排队产生阻塞,写回阻塞后就无法执行后续的上游请求处理,影响处理性能。
第二个是对于读请求增加了不必要的延迟的问题。需要访问两次下级存储空间才能满足读请求,第一次是将脏数据从缓存写回至下级存储空间,第二次是从下级存储空间获取需要的数据。由于需要等待脏数据写回后,才能读取数据到缓存而再满足读请求,故潜在地造成了数据读取的不连续问题,也有可能引起下级存储空间不必要的读写操作的切换。
第三个是替换散乱的问题。由于懒写回的写回触发机制随机性强,导致各写回操作对应的数据在下级存储空间中的分布往往是散乱无序的,造成对下级存储空间的读写效率下降。
鉴于此,本申请实施例中对传统的缓存替换进行了改进,以解决上述问题而提升缓存读写性能。
如图2所示,展示本申请实施例中的缓存管理方法的流程示意图。
在一些实施例中,所述缓存管理方法可以基于处理器(例如CPU或GPU,需说明的是,此处的CPU只是一种中央处理器的简单表示,可以是基于x86架构、ARM架构或FPGA等架构的处理器的硬件电路实现,或者通过硬件电路运行程序指令实现。
所述缓存管理方法包括:
步骤S201:响应于读/写请求,监测缓存空间中的可用缓存状态。
可以理解的是,当在缓存空间中能命中读/写请求所对应的数据时,就可以将读/写请求放入等待队列中,等待读/写操作。当未命中时,就需要使用可用缓存。在一些实施例中,所述可用缓存状态对应可以表示为缓存空间中无需写回的可用缓存状态的数量,对此可以实时监测。其中,无需写回的可用缓存指的是包含需写回数据(即脏数据),可以直接用于满足读/写请求。
步骤S202:监测下级存储空间的忙碌状态。
在一些实施例中,在下级存储空间为内存或显存时,可以通过CPU或GPU所包含的内存管理单元(MMU)或其它专用模块来获取下级存储空间的忙碌状态,以产生一个关于忙碌或非忙碌的信息,比如根据下级存储空间的相关读/写请求、读/写操作等中的一种或多种来统计出某个统计值(比如频率值),以根据该统计值与预设值或范围的比较来判断下级存储空间的忙碌状态为忙碌或非忙碌。
需说明的是,所述下级存储空间并不限于显存或内存,也可以是多级缓存中的下级缓存。例如,L2 Cache是L1 Cache的下级存储空间;L3 Cache是L2 Cache的下级存储空间等。在一些示例中,对于下级存储空间为缓存而言,也可以通过它的缓存控制器来获取其忙碌状态。
步骤S203:执行缓存替换操作,包括:基于所述下级存储空间的忙碌状态和可用缓存状态符合写回条件的情形,执行对缓存空间的需写回数据的写回操作。
在一些实施例中,可以在所述缓存和下级存储空间之间再增加一写回缓存,以用于暂存需写回数据,以进一步优化缓存读写效率。
在上述示例中,通过实时监测下级存储空间的忙碌状态作为写回操作的触发条件之一,能高效率地进行从所述写回缓存向下级存储空间写回数据的写回操作。在一些实施例中,当监测到下级存储空间处于忙碌状态时,可以延迟此写回操作;而在监测到下级存储空间处于非忙碌状态时,可根据可用缓存状态来判断是否符合写回条件参数。在一些实施例中,缓存空间划分成多个缓存组,每个缓存组包括一或多个缓存行。所述写回条件参数可以设置成是无需写回的可用缓存行(Cache line)数量同读/写请求未命中的缓存行数量的匹配情况来确定的。其中,无需写回的各个缓存行可以分布于不同的缓存组;当无需写回的可用缓存行数量大于读/写请求未命中的缓存行数量时,可以不用写回即能满足读/写请求;而当无需写回的可用缓存行数量小于读/写请求未命中的缓存行数量时,就需要腾出其它需写回的可用缓存行数量来满足读/写请求。
比如,某个读/写请求未命中的缓存行数量是7个,而缓存空间的可用缓存的缓存行数量是8个(可以分散在各个缓存组,或者属于一个缓存组),则可用缓存行数量可以满足未命中缓存行数量需求,无需执行写回操作。当某个读/写请求未命中的缓存行数量是7个,而缓存空间的可用缓存的缓存行数量是6个,则需要至少对一个需写回的可用缓存行中的数据进行写回。
可以理解的是,这是一种主动的缓存替换机制,与传统的写回操作的触发条件是回收缓存的被动缓存替换机制不同。
在具体实施的场景示例中,当上级的缓存是GPU的缓存而其下级存储空间为显存时,若显存用于帧渲染时,通过监测显存的忙碌状态是否忙碌,进而在帧渲染工作不忙碌时访问以进行写回,平衡显存的帧渲染工作中的显存瞬时访问不均衡问题。
另外,下级存储空间可能位于系统内存、显存或更下级的硬盘等。在系统内存或显存等中,一般会通过页表(Page Table)进行管理。通过对逻辑内存空间和其映射的物理内存空间进行分页面管理,即形成各个逻辑内存页和物理内存页,页表存放逻辑页的逻辑地址(也称虚拟地址)与物理页帧的物理地址的映射关系。也就是说,根据页表可以实现从对逻辑地址到物理地址的转换,以根据逻辑地址找到对应的物理地址来进行读/写。在GPU或CPU中,内存管理单元(MMU)会通过查询页表来实现这一过程。
在传统的缓存替换策略中,由于其写回操作的触发条件是需写回数据所占用的缓存需要被回收。这一触发条件发生的随意性较强,会导致多次访问下级存储空间以进行写回时,写回数据在下级存储空间的分布位置会很散乱,不利于下级存储空间的读写性能;尤其对于读请求而言,由于需要在脏数据写回下级存储空间之后才能继续执行,则造成了读的不连续问题,也容易引起下级存储空间的读、写强制切换。
在本申请的上述实施例中,由于将读/写请求的写回操作的触发条件改为下级存储空间的忙碌状态为非忙碌状态,且需写回数据会被收集到写回缓存中而在此触发条件下集中写回到下级存储空间,有利于使下级存储空间的写回数据散乱的情况得到改善。
在一些实施例中,可以按逐个页表对相关的需写回数据执行写回。具体的,可以根据需要写回的各个缓存组的数据所对应下级存储空间的页表进行分类,然后按页表的排列顺序(可以是自动排序或用户设置顺序),对每个页表相关的一或多个缓存组的需写回数据进行写回,在完成一个页表相关的各缓存组的需写回数据后,再进行下一个页表相关的各缓存组的需写回数据。
举例来说,某个读请求对应在可用缓存中的需写回的缓存组有A、B,两个缓存组的cache line分别有3个,比如缓存组A包含cache line A1、A2、A3,缓存组B包含cache lineB1、B2、B3。假设A1、A2、B2、B3中存储有需要写回的脏数据,A1、A2对应于显存在页表1中的地址,B1、B2对应于显存在页表2中的地址,B3对应于显存在页表3中的地址,且显存在物理地址间由接近至远满足页表1、页表2、页表3的排列顺序。在响应该读请求的的过程中A1、A2、B2、B3会被写出;当监测到下级存储空间非忙碌时,若此时写回缓存中有A1、A2、B2,则可以集中将A1、A2的数据写回至显存,集中将B1、B2的数据写回至显存,再将B3的数据写回至显存。在可能的示例中,在写回缓存中,需写回数据也可以根据相关的页表进行写回顺序的排列,以提高写回操作的效率,这样可以避免
在一些实施例中,为提高在执行缓存替换操作之前,还可以根据读/写请求的特征来对缓存空间进行相应参数的设置,以提升性能。为进一步说明原理,可以参考以下示例。
如图3所示,展示本申请一实施例中设置缓存单元的流程示意图。
所述流程具体包括:
步骤S301:根据所述读/写请求获取需访问的缓存单元和未命中的信息。
在一些实施例中,缓存空间可以包括多个缓存单元,所述缓存单元可以是缓存行或者缓存组(set),缓存组可以包含一或多个缓存行(cache line)。具体的,当接收到读/写请求时,CPU或GPU可以先从该读/写请求中提取所需访问的各缓存组的信息,比如根据需访问的缓存地址获取组号set index;还可以通过对所需访问的缓存组进行命中测试以获取未命中的情况,比如其中未命中的缓存组的信息。在具体实例中,所述信息可以是所需访问的各缓存组及相应未命中的分布信息等。
步骤S302:根据所获取的信息预测得到各缓存单元触发写回操作的写回条件参数。
在一些实施例中,所述写回条件参数可以与缓存的多维度的信息相关。比如,缓存中无需写回的可用缓存行的情况,下级存储空间的忙碌状态的情况等。在具体实施例中,可以对应于写回条件参数中的不同维度的子条件,设置各个缓存单元的阈值参数。具体的,所述阈值参数可以包含下限值(MIN)和上限值(MAX)。此外,可选的,还可以通过写回条件参数中这些不同信息维度的子条件的综合情况,产生对写回操作的优先级,以根据优先级高低来推动写回操作的执行,当达到优先级MAX时,即执行写回操作。
示例性的,所述多维度的阈值参数包括但不限于以下列举的一种或多种:
1)缓存中每个缓存组无需写回的可用缓存行的数目阈值(最小值/最大值,MIN/MAX)。可能的,一个缓存组中无需写回的可用缓存行的数目达到MIN(比如0)时,可以提升该缓存组中缓存行写回操作的优先级;或者,当可用缓存行的数目达到MAX时,可以降低对该缓存组的写回操作的优先级。
2)缓存中无需写回的可用的总缓存行数目阈值(MIN/MAX)。可能的,缓存中无需写回的总可用缓存行的数目达到MIN(比如0)时,可以提升该缓存组中缓存行写回操作的优先级;或者,当可用缓存行的数目达到MAX时,可以降低对该缓存组的写回操作的优先级。
3)下级存储空间忙碌状态的表示值的阈值(MIN/MAX)。可能的,若下级存储空间的忙碌状态的表示值下降到MIN时,表明下级存储空间处于“非忙碌状态”,属于不会产生阻塞的合适的写回操作的时机而可以对应提高写回操作的优先级。或者,下级存储空间的忙碌状态的表示值达到MAX,可以表明下级存储空间处于“忙碌状态”,属于不会产生阻塞的合适的写回操作的时机,而可以降低写回操作的优先级。
4)基于页面组的时间阈值(MIN/MAX),比如需要对应写入的下级存储空间的页面组的缓存中脏数据的存在时间,当达到MAX时可以触发写入操作。
在一些实施例中,阈值参数还可以包括对应于写回操作的优先级的参数,例如:
用于控制或调整缓存组的写回操作的优先级的一或多组阈值参数(每一组都具有MIN/MAX);
用于控制或调整缓存行的写回操作的优先级的一或多组阈值参数(每一组都具有MIN/MAX);
用于调整对应写回操作的脏数据的页面范围的参数等。例如,通过此参数可以优先将旧的脏数据所在的缓存行进行写回操作,从而可以避免太新的缓存行被过早地,产生不必要的重复读写。
在一些实施例中,缓存可以划分成多个区域,每个区域对应于不同的资源类型(resource type)划分区域,上述的阈值参数还可以是根据资源类型不同设置成不同阈值。比如,某种资源类型的缓存区域比较容易被占满,那么实际上就需要通过设置阈值参数来使此资源类型的缓存区域具有较大容量。
关于阈值参数预测的原理进行说明。具体来讲,一段时间读/写请求的未命中情况以及读/写请求所请求的缓存组的分布情况,会影响到阈值参数Min/Max的调整。例如,某种type的资源经常被一个缓存组占满,但是当前缓存组还分配有多余资源,则可以根据监测动态调整这些资源为共享或者扩大对此资源的独占范围,从而减少不必要的阻塞(blocking)。此动态调整的过程的计算,可以是基于海量数据的离线分析,从而得到使阻塞惩罚(penalty)最小化的阈值参数。在一些示例中,可以通过对机器学习模型进行训练来得到相应的预测模型。
其中,步骤S301~S302可以发生在接收到读/写请求之后,可以在步骤S201之前、S202之前、或S203之前。
缓存空间的参数是可以根据读/写请求的实际情况进行调整的,以提升。在图3中,展示了可以以读/写请求未命中的缓存组的分布情况为依据,从而产生相关于缓存单元的的阈值参数。
以上与相关于缓存单元的的阈值参数的几种示例,但并非以此为限。
如图4所示,展示本申请一具体实施例中的缓存管理方法的流程示意图。
所述方法包括:
步骤S401:响应于读/写请求,对读/写请求进行命中测试,获取其需访问的缓存单元(如缓存组或缓存行)和未命中的信息;
示例性地,还可将读/写请求放入等待队列;以及将相关的数据(比如写请求要写入的数据)存放在临时缓存中。
步骤S402:根据获取的信息预测得到相关于缓存单元的阈值参数;
从而,根据阈值参数可以进行写回操作是否执行的判断;
步骤S403:监测可用缓存状态;
步骤S404:监测下级存储介质的忙碌状态;
步骤S405:根据忙碌状态判断下级存储空间忙碌或非忙碌;当忙碌状态为忙碌时,执行步骤S406;当忙碌状态为非忙碌时,执行步骤S407;
步骤S406:延迟缓存替换操作;
步骤S407:判断可用缓存空间状态信息是否符合写回条件参数;若是,则执行步骤S408;若否,可以返回步骤S405,以待下一轮写回的触发;
步骤S408:触发对需写回数据的写回操作。
可选的,所述写回操作可能是将缓存中的需写回数据写入到写回缓存中;或者,也可能是将缓存中的需写回数据写入到下级存储介质中。
可选的,写回时可以按照逐个页表的顺序进行优化,以降低下游不必要的效率下降。
当完成步骤S407的写回之后,可以返回步骤S405,以待下一轮写回的触发。
应理解的是,上述各实施例的方法中的步骤的顺序并不受到序号的限制,实际上,某些步骤之间可以不分先后地并行,例如S403和S404之间,或其它步骤之间。
如图5所示,展示本申请一实施例中的缓存管理装置的模块示意图。
图5实施例与图2实施例对应,故本实施例中的技术原理可以参考图2实施例,此实施例中不再对技术特征进行重复赘述。
所述缓存管理装置500包括:
可用缓存监测模块501,用于响应于读/写请求,监测缓存空间中的可用缓存状态;
下级状态监测模块502,用于监测所述缓存空间的下级存储空间的忙碌状态;
缓存替换模块503,用于执行缓存替换操作,包括:基于所述下级存储空间的忙碌状态和可用缓存状态符合写回条件的情形,执行对缓存空间的需写回数据的写回操作。
如图6所示,展示本申请又一实施例中的缓存管理装置的模块示意图。图6实施例与图2实施例和图3实施例的结合相对应,故本实施例中的技术原理可以参考图2、图3实施例,此实施例中不再对技术特征进行重复赘述。
缓存管理装置600包括:
可用缓存监测模块601、下级状态监测模块602及缓存替换模块603,可分别与图5中的可用缓存监测模块501、下级状态监测模块502、缓存替换模块503相同。
参数预测模块604,用于根据所述读/写请求获取需访问的缓存单元和未命中的信息,并根据所获取的信息预测得到各缓存单元触发写回操作的写回条件参数。
在一些实施例中,所述缓存单元为缓存组或缓存行;所述缓存组包括一或多个缓存行。
在一些实施例中,所述下级存储空间通过页表管理;所述执行对缓存空间的需写回数据的写回操作,包括:按逐个页表对相关的需写回数据执行写回。
应该理解到,所揭露的缓存管理装置的各个实施例(例如图5、图6)仅仅是示意性的,例如各个模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
在本申请缓存管理装置实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件配合软件的功能模块的形式实现。例如,缓存管理装置中的各个功能模块可以全部通过CPU或GPU中的硬件电路实现。或者,缓存管理装置中的部分功能模块可以由CPU或GPU运行程序指令实现,另外部分功能模块通过硬件电路实现,比如参数预测模块可以是软件模块,也可以是硬件电路模块。再或者,缓存管理装置中的各个功能模块由CPU或GPU运行程序指令实现。
本申请实施例中的缓存管理方法、装置等方案优选应用在图像处理器即GPU,GPU包含大量的处理器核心,可以用于对处理器核心的例如共享缓存(尤其是可读/写类型的缓存)进行配置,以能使GPU性能得到巨大提升,以在成千上万GPU线程的访问的地址的随机性的情形下,也能良好提升访问的吞吐量,降低数据替换的延迟,提升GPU外部显存的访问效率。当然,本申请实施例中的缓存缓存管理方法、装置等方案也并非限制只能应用在GPU上,也可以是CPU(或FPGA、SoC等),也同样能实现性能提升。
如图7所示,展示本申请在一实施例中的处理器的结构示意图。所述处理器700中配置有缓存701,用于与处理器外部的下级存储介质(例如缓存、内存或显存等)交换数据。所述处理器700可以封装于处理器芯片中。所述处理器700还包括缓存管理装置701,其可以是图5或图6实施例中的缓存管理装置实现。
在一些示例中,所述处理器700可以包含多个处理器核,例如多个CPU核心和/或多个GPU核心。所述处理器700具体可实现为多核心的中央处理器,多核心的图形处理器,或兼具CPU核心和GPU核心的中央处理器(具有核显的处理器)。所述缓存701可以位于处理器核中或处理器核以外。其中,部分或全部处理器核可以包含所述缓存管理装置702。
如图8所示,展示本申请一种实施例中电子装置的结构示意图。
在图8中,电子装置800包括处理器801,以及存储器802。所述处理器801可以通过图7中的处理器700实现,所述存储器802可以是显存或内存等,作为处理器801中缓存的下级存储介质,提供下级存储空间。
在一些具体实例中,该电子装置800可以实现为服务器、智能手机、平板电脑、笔记本电脑、台式电脑、机顶盒、电子阅读器、智能手表、或智能手环等。
在一些具体实例中,所述处理器801可以是图形处理器,位于与电子装置中主板上图形接口连接的图形显示卡中。在另一些具体实例中,所述处理器801也可以是具有核显或不具有核显的中央处理器,与电子装置中包括主板(未图示)上的处理器接口连接。
本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可能可以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述方法的全部或部分步骤也是可以通过程序来指令的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
综合上述,本申请提供缓存管理方法、装置、处理器及计算机装置,通过监测缓存空间中的可用缓存状态以供执行缓存替换操作;其中,可用缓存中的需写回数据在缓存替换操作时会被写出;基于下级存储空间的忙碌状态处于非忙碌状态的情形,并在可用缓存状态符合写回条件参数时,执行对缓存空间的需写回数据的写回操作。通过监测下级存储空间的忙碌状态而选择时机主动主动进行缓存替换的写回操作,既良好利用空余下级存储带宽,也避免因下级存储忙碌而造成写回阻塞引发读/写请求处理延迟,提升处理性能。此外,还可以结合读/写请求的需求情形来优化缓存配置;通过对写回机制进行优化,降低读写的切换,降低下级存储的页表冲突等造成的性能影响,改善存储访问性能。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

Claims (17)

1.一种缓存管理方法,其特征在于,应用于处理器,所述方法包括:
响应于读/写请求,监测缓存空间中的可用缓存状态;
监测下级存储空间的忙碌状态;
执行缓存替换操作,包括:基于所述下级存储空间的忙碌状态和可用缓存状态符合写回条件的情形,执行对缓存空间的需写回数据的写回操作。
2.根据权利要求1所述的缓存管理方法,其特征在于,所述缓存空间包括至少一个缓存单元;在执行缓存替换操作之前,还包括:
根据所述读/写请求获取需访问的缓存单元及其未命中的信息;
根据所获取的信息预测得到各缓存单元触发写回操作的写回条件参数。
3.根据权利要求2所述的缓存管理方法,其特征在于,所述缓存单元为缓存组或缓存行;所述缓存组包括一或多个缓存行。
4.根据权利要求2所述的缓存管理方法,其特征在于,所述写回条件参数至少包括:下级存储空间处于非忙碌状态,且剩余的无需写回的可用缓存行不足以满足读/写请求。
5.根据权利要求2所述的缓存管理方法,其特征在于,所述写回条件参数还包括:各个缓存单元的写回操作的优先级。
6.根据权利要求1所述的缓存管理方法,其特征在于,所述可用缓存状态包括:无需写回的可用缓存行的数目;所述写回条件包括:无需写回的可用缓存行数目不足以满足读/写请求。
7.根据权利要求1所述的缓存管理方法,其特征在于,所述下级存储空间通过页表管理;所述执行对缓存空间的需写回数据的写回操作,包括:
按逐个页表对相关的需写回数据执行写回。
8.一种缓存管理装置,其特征在于,应用于处理器;所述装置包括:
可用缓存监测模块,用于响应于读/写请求,监测缓存空间中的可用缓存状态;
下级状态监测模块,用于监测所述缓存空间的下级存储空间的忙碌状态;
缓存替换模块,用于执行缓存替换操作,包括:基于所述下级存储空间的忙碌状态和可用缓存状态符合写回条件的情形,执行对缓存空间的需写回数据的写回操作。
9.根据权利要求8所述的缓存管理装置,其特征在于,所述缓存空间包括至少一个缓存单元;所述缓存管理装置还包括:
参数预测模块,用于根据所述读/写请求获取需访问的缓存单元和未命中的信息,并根据所获取的信息预测得到各缓存单元触发写回操作的写回条件参数。
10.根据权利要求9所述的缓存管理装置,其特征在于,所述缓存单元为缓存组或缓存行;所述缓存组包括一或多个缓存行。
11.根据权利要求9所述的缓存管理装置,其特征在于,所述写回条件参数至少包括:下级存储空间处于非忙碌状态,且剩余的无需写回的可用缓存行不足以满足读/写请求。
12.根据权利要求9所述的缓存管理装置,其特征在于,所述写回条件参数还包括:各个缓存单元的写回操作的优先级。
13.根据权利要求8所述的缓存管理装置,其特征在于,所述可用缓存状态包括:无需写回的可用缓存行的数目;所述写回条件包括:无需写回的可用缓存行数目不足以满足读/写请求。
14.根据权利要求8所述的缓存管理装置,其特征在于,所述下级存储空间通过页表管理;所述执行对缓存空间的需写回数据的写回操作,包括:
按逐个页表对相关的需写回数据执行写回。
15.一种处理器,其特征在于,包括:如权利要求8至14中任一项所述的缓存管理装置。
16.根据权利要求15所述的处理器,其特征在于,所述处理器为图形处理器。
17.一种计算机装置,其特征在于,包括如权利要求15或16所述的处理器。
CN202110508803.8A 2021-05-11 2021-05-11 缓存管理方法、装置、处理器及计算机装置 Active CN113342265B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110508803.8A CN113342265B (zh) 2021-05-11 2021-05-11 缓存管理方法、装置、处理器及计算机装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110508803.8A CN113342265B (zh) 2021-05-11 2021-05-11 缓存管理方法、装置、处理器及计算机装置

Publications (2)

Publication Number Publication Date
CN113342265A true CN113342265A (zh) 2021-09-03
CN113342265B CN113342265B (zh) 2023-11-24

Family

ID=77470513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110508803.8A Active CN113342265B (zh) 2021-05-11 2021-05-11 缓存管理方法、装置、处理器及计算机装置

Country Status (1)

Country Link
CN (1) CN113342265B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114297100A (zh) * 2021-12-28 2022-04-08 摩尔线程智能科技(北京)有限责任公司 用于缓存的写策略调整方法、缓存装置及计算设备
CN115794674A (zh) * 2023-01-19 2023-03-14 北京象帝先计算技术有限公司 一种缓存数据写回方法、装置、图形处理系统及电子设备
CN117608498A (zh) * 2024-01-22 2024-02-27 北京象帝先计算技术有限公司 一种dram的访问处理方法、缓存控制模块及dram控制器

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119205A (en) * 1997-12-22 2000-09-12 Sun Microsystems, Inc. Speculative cache line write backs to avoid hotspots
JP2004303232A (ja) * 2003-03-20 2004-10-28 Matsushita Electric Ind Co Ltd データメモリキャッシュ装置及びデータメモリキャッシュシステム
EP1758403A2 (en) * 1998-12-23 2007-02-28 Zoran Corporation Video memory management for MPEG video decode and display system
CN101149668A (zh) * 2007-11-02 2008-03-26 杭州华三通信技术有限公司 一种包括读写缓存的存储设备及缓存实现方法
CN101694639A (zh) * 2009-10-15 2010-04-14 清华大学 一种计算机数据的缓存方法
CN104268102A (zh) * 2014-10-10 2015-01-07 浪潮集团有限公司 一种存储服务器采用混合方式写缓存的方法
CN104991827A (zh) * 2015-06-26 2015-10-21 季锦诚 云游戏中gpu资源共享的方法
CN105095116A (zh) * 2014-05-19 2015-11-25 华为技术有限公司 缓存替换的方法、缓存控制器和处理器
US20160246723A1 (en) * 2015-02-23 2016-08-25 Intel Corporation Vector cache line write back processors, methods, systems, and instructions
CN107329696A (zh) * 2017-06-23 2017-11-07 华中科技大学 一种保证数据崩溃一致性的方法及系统
WO2018077292A1 (zh) * 2016-10-28 2018-05-03 北京市商汤科技开发有限公司 数据处理方法和系统、电子设备
CN108459972A (zh) * 2016-12-12 2018-08-28 中国航空工业集团公司西安航空计算技术研究所 一种多通道固态硬盘的高效缓存管理设计方法
CN109324979A (zh) * 2018-08-20 2019-02-12 华中科技大学 3d闪存固态盘系统的数据缓存划分方法及数据分配方法
CN110083548A (zh) * 2018-01-26 2019-08-02 华为技术有限公司 数据处理方法及相关网元、设备、系统
CN111311478A (zh) * 2020-03-23 2020-06-19 南京芯瞳半导体技术有限公司 一种gpu渲染核数据的预读取方法、装置及计算机存储介质

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119205A (en) * 1997-12-22 2000-09-12 Sun Microsystems, Inc. Speculative cache line write backs to avoid hotspots
EP1758403A2 (en) * 1998-12-23 2007-02-28 Zoran Corporation Video memory management for MPEG video decode and display system
JP2004303232A (ja) * 2003-03-20 2004-10-28 Matsushita Electric Ind Co Ltd データメモリキャッシュ装置及びデータメモリキャッシュシステム
CN101149668A (zh) * 2007-11-02 2008-03-26 杭州华三通信技术有限公司 一种包括读写缓存的存储设备及缓存实现方法
CN101694639A (zh) * 2009-10-15 2010-04-14 清华大学 一种计算机数据的缓存方法
CN105095116A (zh) * 2014-05-19 2015-11-25 华为技术有限公司 缓存替换的方法、缓存控制器和处理器
CN104268102A (zh) * 2014-10-10 2015-01-07 浪潮集团有限公司 一种存储服务器采用混合方式写缓存的方法
US20160246723A1 (en) * 2015-02-23 2016-08-25 Intel Corporation Vector cache line write back processors, methods, systems, and instructions
CN104991827A (zh) * 2015-06-26 2015-10-21 季锦诚 云游戏中gpu资源共享的方法
WO2018077292A1 (zh) * 2016-10-28 2018-05-03 北京市商汤科技开发有限公司 数据处理方法和系统、电子设备
CN108459972A (zh) * 2016-12-12 2018-08-28 中国航空工业集团公司西安航空计算技术研究所 一种多通道固态硬盘的高效缓存管理设计方法
CN107329696A (zh) * 2017-06-23 2017-11-07 华中科技大学 一种保证数据崩溃一致性的方法及系统
CN110083548A (zh) * 2018-01-26 2019-08-02 华为技术有限公司 数据处理方法及相关网元、设备、系统
CN109324979A (zh) * 2018-08-20 2019-02-12 华中科技大学 3d闪存固态盘系统的数据缓存划分方法及数据分配方法
CN111311478A (zh) * 2020-03-23 2020-06-19 南京芯瞳半导体技术有限公司 一种gpu渲染核数据的预读取方法、装置及计算机存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114297100A (zh) * 2021-12-28 2022-04-08 摩尔线程智能科技(北京)有限责任公司 用于缓存的写策略调整方法、缓存装置及计算设备
CN114297100B (zh) * 2021-12-28 2023-03-24 摩尔线程智能科技(北京)有限责任公司 用于缓存的写策略调整方法、缓存装置及计算设备
CN115794674A (zh) * 2023-01-19 2023-03-14 北京象帝先计算技术有限公司 一种缓存数据写回方法、装置、图形处理系统及电子设备
CN115794674B (zh) * 2023-01-19 2023-05-12 北京象帝先计算技术有限公司 一种缓存数据写回方法、装置、图形处理系统及电子设备
CN117608498A (zh) * 2024-01-22 2024-02-27 北京象帝先计算技术有限公司 一种dram的访问处理方法、缓存控制模块及dram控制器

Also Published As

Publication number Publication date
CN113342265B (zh) 2023-11-24

Similar Documents

Publication Publication Date Title
US11531617B2 (en) Allocating and accessing memory pages with near and far memory blocks from heterogenous memories
US10235290B2 (en) Hot page selection in multi-level memory hierarchies
CN113342265B (zh) 缓存管理方法、装置、处理器及计算机装置
US11086792B2 (en) Cache replacing method and apparatus, heterogeneous multi-core system and cache managing method
US6295582B1 (en) System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available
CN109791523B (zh) 支持巨页的内存管理
EP3414665B1 (en) Profiling cache replacement
US7430639B1 (en) Optimization of cascaded virtual cache memory
KR102521053B1 (ko) 하이브리드 dram/낸드 메모리에서 읽기-수정-쓰기 오버헤드를 감소시키기 위한 기술들
US10572378B2 (en) Dynamic memory expansion by data compression
US20230169011A1 (en) Adaptive Cache Partitioning
US11693775B2 (en) Adaptive cache
US20080294846A1 (en) Dynamic optimization of cache memory
JP7340326B2 (ja) メンテナンス動作の実行
US20170083444A1 (en) Configuring fast memory as cache for slow memory
US7702875B1 (en) System and method for memory compression
CN113138851B (zh) 一种数据管理方法、相关装置及系统
Bakhshalipour et al. Die-stacked dram: Memory, cache, or memcache?
JP2000250814A (ja) アドレススペース内にキャッシュページアドレスの均一な分布を維持するための動的なメモリ割り当て方法
Tan et al. APMigration: Improving performance of hybrid memory performance via an adaptive page migration method
US11755477B2 (en) Cache allocation policy
CN111183414A (zh) 基于服务级别协议的高速缓存方法和系统
CN114398298A (zh) 一种缓存流水线处理方法及装置
US11693778B2 (en) Cache grouping for increasing performance and fairness in shared caches
Bock Collaborative hardware-software management of hybrid main 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