CN117349198A - 缓存行替换方法及装置 - Google Patents

缓存行替换方法及装置 Download PDF

Info

Publication number
CN117349198A
CN117349198A CN202311634767.5A CN202311634767A CN117349198A CN 117349198 A CN117349198 A CN 117349198A CN 202311634767 A CN202311634767 A CN 202311634767A CN 117349198 A CN117349198 A CN 117349198A
Authority
CN
China
Prior art keywords
node
data block
partition
target
replacement
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.)
Pending
Application number
CN202311634767.5A
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.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads 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 Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202311634767.5A priority Critical patent/CN117349198A/zh
Publication of CN117349198A publication Critical patent/CN117349198A/zh
Pending 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/0893Caches characterised by their organisation or structure
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及内存管理技术领域,尤其涉及一种缓存行替换方法及装置。该方法用于实现数据块分区中缓存行的替换查找,该方法包括:接收替换请求,将数据块分区对应的二叉树结构中的根节点确定为第一个目标节点并获取其节点信息;若目标节点为非叶节点,则将当前目标节点的处理状态所指示的替换方向上的目标节点的子节点确定为下一目标节点以及更新目标节点的目标计数器,直至确定出的目标节点为叶节点,则基于叶节点确定出待查数据块;采用PLRU算法查找出待查数据块中的可替换缓存行;根据待查数据块的数据块ID和可替换缓存行的缓存行ID生成查找结果。在增加缓存存储容量的同时减少命中测试所需的时间,并且同时实现均衡的缓存行替换。

Description

缓存行替换方法及装置
技术领域
本公开涉及内存管理技术领域,尤其涉及一种缓存行替换方法及装置。
背景技术
图形处理器(Graphic Process Unit,GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。图形处理器运算工作相关的数据可以存储在片上或片外的存储单元中。其中,外部全局存储器(Global Memory)作为片外存储单元,设置在离GPU核心处理器较远的地方,访问速度慢。为了解决外部全局存储器访问速度慢的问题,通常在处理器核心内部增加片上缓存(cache),其先对读写数据进行缓存,方便后续GPU读写时访问到缓存,可快速获得,无需再从外部全局存储器中获取。缓存包括多个缓存行(Cache line),访问时通过行地址(line address)进行该缓存行的访问。但相关技术中,对缓存的管理方式存在缓存行命中次数不一致,部分缓存行的数据被频繁替换等亟待解决的问题。
发明内容
有鉴于此,本公开提出了一种缓存行替换方法及装置。
根据本公开的一方面,提供了一种缓存行替换方法,用于实现数据块分区中缓存行的替换查找,所述数据块分区包括至少一个数据块,各所述数据块包括多个缓存行,各数据块分区设置有对应的管理组织结构,所述管理组织结构包括对应于所述数据块分区的二叉树结构和所述二叉树结构中各节点的节点信息,所述节点信息包括:处理状态、左分区计数器和右分区计数器,所述方法包括:
在接收到替换请求的情况下,将数据块分区对应的二叉树结构中的根节点确定为第一个目标节点并获取所述目标节点的节点信息;
在所述目标节点为非叶节点的情况下,将当前所述目标节点的处理状态所指示的替换方向上的所述目标节点的子节点确定为下一目标节点以及更新所述目标节点的对应于替换方向的目标计数器,直至确定出的目标节点为叶节点,则基于所述叶节点确定出待查数据块;
采用PLRU算法查找出所述待查数据块中的可替换缓存行;
根据所述待查数据块的数据块ID和所述可替换缓存行的缓存行ID生成查找结果;
其中,所述目标计数器为所述目标节点的左分区计数器和右分区计数器中对应于所述目标节点的处理状态所指示的替换方向的计数器,各节点的处理状态所指示的替换方向为节点的左侧分支或右侧分支。
在一种可能的实现方式中,基于所述叶节点确定出待查数据块,包括:
将所述叶节点的处理状态所指示的替换方向对应的数据块确定为待查数据块;或者
将所述叶节点对应的数据块确定为待查数据块。
在一种可能的实现方式中,所述节点信息还包括左分区权重和右分区权重,所述方法还包括:
在所述目标计数器的数值为预设值的情况下,重置所述目标计数器为初始值以及更改所述目标节点的处理状态所指示的替换方向;
其中,所述初始值为对应于所述目标计数器所在分支方向的分区权重、所述预设值为0;或者,所述初始值为0、所述预设值为对应于所述目标计数器所在分支方向的分区权重;左分区计数器所在分支方向的分区权重为左分区权重,右分区计数器所在分支方向的分区权重为右分区权重。
在一种可能的实现方式中,所述方法还包括:
在确定所述目标节点的目标计数器为无效和/或所述目标节点对应于处理状态所指示的替换方向的分区权重为0的情况下,确定所述目标节点为叶节点;
其中,所述目标节点对应于处理状态所指示的替换方向的分区权重为左分区权重或右分区权重。
在一种可能的实现方式中,所述节点信息还包括左指针和右指针,所述方法还包括:
根据当前所述目标节点的处理状态所指示的替换方向对应的目标指针查找到下一目标节点;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则所述目标指针为左指针;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则所述目标指针为右指针。
在一种可能的实现方式中,所述叶节点的节点信息还包括:右地址索引和左地址索引,
其中,将所述叶节点的处理状态所指示的替换方向对应的数据块确定为待查数据块,包括:将所述叶节点的处理状态所指示的替换方向对应的目标地址索引所指向的数据块确定为待查数据块;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则所述目标地址索引为所述左地址索引;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则所述目标地址索引为所述右地址索引。
在一种可能的实现方式中,所述节点信息还包括:左有效索引标识和右有效索引标识,将所述叶节点的处理状态所指示的替换方向对应的地址索引所指向的数据块确定为待查数据块,包括:
在所述叶节点的处理状态所指示的替换方向对应的有效索引标识为有效的情况下,将所述叶节点的处理状态所指示的替换方向对应的地址索引所指向的数据块确定为待查数据块;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则指向待查数据块的地址索引为所述左有效索引标识;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则指向待查数据块的地址索引为所述右有效索引标识。
在一种可能的实现方式中,所述叶节点的节点信息还包括右地址索引和左地址索引中的一个,
其中,将所述叶节点对应的数据块确定为待查数据块,包括:将所述叶节点的节点信息中存在的地址索引所指向的数据块确定为待查数据块。
在一种可能的实现方式中,所述叶节点的节点信息还包括左有效索引标识和右有效索引标识中的一个,
其中,将所述叶节点对应的数据块确定为待查数据块,包括:
在所述叶节点的节点信息中存在的左有效索引标识或右有效索引标识为有效的情况下,将所述叶节点的节点信息中存在的地址索引所指向的数据块确定为待查数据块。
在一种可能的实现方式中,各节点的左分区权重、右分区权重与所述节点的左侧分支中数据块的左侧数量、所述节点的右侧分支中数据块的右侧数量相关,
在所述节点的左侧数量和右侧数量均不为零的情况下,所述节点的左分区权重、右分区权重的值,根据节点的左侧数量和右侧数量的最简整数比确定;
在所述节点的左侧数量和/或右侧数量为零的情况下,所述节点的左分区权重、右分区权重的值分别设置为节点的左侧数量和右侧数量。
在一种可能的实现方式中,所述方法还包括:
响应于重构请求,根据配置信息设置所述数据块分区中的数据块的块数量以及各所述数据块中缓存行的行数量,并设置各所述数据块的数据块ID、缓存行的缓存行ID;
根据所述数据块分区中数据块的块数量,创建对应所述数据块分区的二叉树结构,以及确定所述二叉树结构中各节点的节点信息,完成所述数据块分区的管理组织结构配置。
在一种可能的实现方式中,各所述数据块中包括个缓存行,n为正整数。
根据本公开的另一方面,提供了一种缓存行替换装置,用于实现数据块分区中缓存行的替换查找,所述数据块分区包括至少一个数据块,各所述数据块包括多个缓存行,各数据块分区设置有对应的管理组织结构,所述管理组织结构包括对应于所述数据块分区的二叉树结构和所述二叉树结构中各节点的节点信息,所述节点信息包括:处理状态、左分区计数器和右分区计数器,所述装置包括:
替换请求接收模块,用于在接收到替换请求的情况下,将数据块分区对应的二叉树结构中的根节点确定为第一个目标节点并获取所述目标节点的节点信息;
待查数据块确定模块,用于在所述目标节点为非叶节点的情况下,将当前所述目标节点的处理状态所指示的替换方向上的所述目标节点的子节点确定为下一目标节点以及更新所述目标节点的对应于替换方向的目标计数器,直至确定出的目标节点为叶节点,则基于所述叶节点确定出待查数据块;
缓存行替换模块,用于采用PLRU算法查找出所述待查数据块中的可替换缓存行;
查找结果生成模块,用于根据所述待查数据块的数据块ID和所述可替换缓存行的缓存行ID生成查找结果;
其中,所述目标计数器为所述目标节点的左分区计数器和右分区计数器中对应于所述目标节点的处理状态所指示的替换方向的计数器,各节点的处理状态所指示的替换方向为节点的左侧分支或右侧分支。
在一种可能的实现方式中,所述待查数据块确定模块,包括:
第一确定子模块,用于将所述叶节点的处理状态所指示的替换方向对应的数据块确定为待查数据块;或者
第二确定子模块,用于将所述叶节点对应的数据块确定为待查数据块。
在一种可能的实现方式中,所述节点信息还包括左分区权重和右分区权重,所述装置还包括:
重置更新模块,用于在所述目标计数器的数值为预设值的情况下,重置所述目标计数器为初始值以及更改所述目标节点的处理状态所指示的替换方向;
其中,所述初始值为对应于所述目标计数器所在分支方向的分区权重、所述预设值为0;或者,所述初始值为0、所述预设值为对应于所述目标计数器所在分支方向的分区权重;左分区计数器所在分支方向的分区权重为左分区权重,右分区计数器所在分支方向的分区权重为右分区权重。
在一种可能的实现方式中,所述装置还包括:
叶节点确定模块,用于在确定所述目标节点的目标计数器为无效和/或所述目标节点对应于处理状态所指示的替换方向的分区权重为0的情况下,确定所述目标节点为叶节点;
其中,所述目标节点对应于处理状态所指示的替换方向的分区权重为左分区权重或右分区权重。
在一种可能的实现方式中,所述节点信息还包括左指针和右指针,所述装置还包括:
目标节点查找模块,用于根据当前所述目标节点的处理状态所指示的替换方向对应的目标指针查找到下一目标节点;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则所述目标指针为左指针;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则所述目标指针为右指针。
在一种可能的实现方式中,所述叶节点的节点信息还包括:右地址索引和左地址索引,
其中,将所述叶节点的处理状态所指示的替换方向对应的数据块确定为待查数据块,包括:将所述叶节点的处理状态所指示的替换方向对应的目标地址索引所指向的数据块确定为待查数据块;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则所述目标地址索引为所述左地址索引;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则所述目标地址索引为所述右地址索引。
在一种可能的实现方式中,所述节点信息还包括:左有效索引标识和右有效索引标识,将所述叶节点的处理状态所指示的替换方向对应的地址索引所指向的数据块确定为待查数据块,包括:
在所述叶节点的处理状态所指示的替换方向对应的有效索引标识为有效的情况下,将所述叶节点的处理状态所指示的替换方向对应的地址索引所指向的数据块确定为待查数据块;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则指向待查数据块的地址索引为所述左有效索引标识;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则指向待查数据块的地址索引为所述右有效索引标识。
在一种可能的实现方式中,所述叶节点的节点信息还包括右地址索引和左地址索引中的一个,
其中,将所述叶节点对应的数据块确定为待查数据块,包括:将所述叶节点的节点信息中存在的地址索引所指向的数据块确定为待查数据块。
在一种可能的实现方式中,所述叶节点的节点信息还包括左有效索引标识和右有效索引标识中的一个,
其中,将所述叶节点对应的数据块确定为待查数据块,包括:
在所述叶节点的节点信息中存在的左有效索引标识或右有效索引标识为有效的情况下,将所述叶节点的节点信息中存在的地址索引所指向的数据块确定为待查数据块。
在一种可能的实现方式中,各节点的左分区权重、右分区权重与所述节点的左侧分支中数据块的左侧数量、所述节点的右侧分支中数据块的右侧数量相关,
在所述节点的左侧数量和右侧数量均不为零的情况下,所述节点的左分区权重、右分区权重的值,根据节点的左侧数量和右侧数量的最简整数比确定;
在所述节点的左侧数量和/或右侧数量为零的情况下,所述节点的左分区权重、右分区权重的值分别设置为节点的左侧数量和右侧数量。
在一种可能的实现方式中,所述装置还包括:
配置模块,用于响应于重构请求,根据配置信息设置所述数据块分区中的数据块的块数量以及各所述数据块中缓存行的行数量,并设置各所述数据块的数据块ID、缓存行的缓存行ID;根据所述数据块分区中数据块的块数量,创建对应所述数据块分区的二叉树结构,以及确定所述二叉树结构中各节点的节点信息,完成所述数据块分区的管理组织结构配置。
在一种可能的实现方式中,各所述数据块中包括个缓存行,n为正整数。
根据本公开的另一方面,提供了一种缓存行替换装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
通过本公开实施例提供的一种缓存行替换方法及装置。将缓存划分为多个数据块分区,不同数据块分区中设置有至少一个数据块,每个数据块中包括多个缓存行,并为每个数据块分区设置对应的管理组织结构,而后基于该管理组织结构进行缓存行替换,在增加缓存存储容量的同时减少命中测试所需的时间,并且同时实现均衡的缓存行替换。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出相关技术中基于满二叉树进行缓存行替换的示意图。
图2示出相关技术中缓存行对应的一种非满二叉树结构示意图。
图3示出本公开实施例的一种缓存行替换方法中缓存分配的示意图。
图4示出本公开实施例的一种缓存行替换方法中示例一数据块分区对应的二叉树结构的示意图。
图5示出本公开实施例的一种缓存行替换方法中二叉树结构的节点信息的示意图。
图6示出本公开实施例的一种缓存行替换方法中示例二数据块分区对应的二叉树结构的示意图。
图7示出本公开实施例的一种缓存行替换方法的一示例的板块分组的管理组织结构中的二叉树结构的示意图。
图8示出本公开实施例的一种缓存行替换方法中替换步骤的流程图。
图9示出本公开实施例的一种缓存行替换装置的框图。
图10是根据一示例性实施例示出的一种用于缓存行替换的装置1900的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
缓存(cache)是设置在主存(main memory,也称内存)与GPU、CPU等处理器之间的,用于作为主存数据的缓存。根据速度的不同,缓存可以分为一级缓存(L1 Cache)、二级缓存(L2 Cache)、三级缓存(L3 Cache),速度不断降低。
相关技术中,针对cache中缓存行的访问通过以下方式实现:当确定需要访问的缓存行的行地址之后,先进行Hit/MissTest(命中/未命中测试、命中测试),当命中(hit)时,可以直接访问该缓存行;当未命中(miss)时,则会通过替换算法(如伪最近最少使用算法(Pseudo Least Recently Used,PLRU)),选择最近最少使用的缓存行进行替换,完成替换后再进行访问。在这过程中,使用Tag Ram(标记随机访问存储器)对每个缓存行的tag(标签)、valid(有效位),dirty mask(脏数据标记)、contextid(上下文编号)等信息进行存储管理。
其中,当未命中(miss)时,会通过PLRU算法选择出需要被替换的缓存行进而得到 该缓存行的缓存行ID(cacheline id),然后从Tag Ram中查询该缓存行的dirty mask是否 为dirty,若是dirty则将该缓存行中的数据存储到下一级缓存中的对应位置后再访问该缓 存行。若不是dirty,则直接将该缓存行中存储的数据替换成新的数据、或待该缓存行存储 了请求返回的数据后读取该数据,并更新Tag Ram中存储的该缓存行对应的信息。PLRU算法 简单迅速,对于如图1所示的满二叉树结构,可以实现均衡的替换管理。但是,PLRU算法存在 限制,需要缓存中缓存行的数量为(n为整数),才能保证各缓存行的命中率都相同。但是, 在一些情况下,尤其是一些可配置存储环境中,缓存中缓存行的数量往往不是,所形成的 二叉树结构左右两边是不均衡的,可能一边多、另一边少。例如,假如缓存中缓存行的数量 为如图2所示的3个,形成了非满二叉树结构,则通过PLRU算法做替换,最右侧叶子节点命中 率为50%,而左侧两个叶子节点均为25%,显然无法保证所有缓存行被命中的次数相等,而且 还会导致部分缓存行数据会被频繁替换出去,导致程序执行不稳定的情况发生。另外,针对 tag做Hit/Miss Test命中测试时,n条缓存行的访问等待时间基本始终为n/2,也即缓存行 的数量越多,比较次数越多,查找和替换速度就会下降。
为解决上述技术问题,本公开提供了一种缓存行替换方法及装置。将缓存划分为多个数据块分区,不同数据块分区中设置有至少一个数据块,每个数据块中包括多个缓存行,并为每个数据块分区设置对应的管理组织结构,而后基于该管理组织结构进行缓存行替换,在增加缓存存储容量的同时减少命中测试所需的时间,并且同时实现均衡的缓存行替换。
本公开所提供的缓存行替换方法用于对图3所示的存储区域2进行替换。存储区域 2中可以包括多个数据块分区(Data Block Partition,亦可称DB区域、DB分区)30,每个数 据块分区30中包括多个数据块301。每个数据块301包括(n为正整数)个缓存行(cache line)。其中,图3中仅示意性给出缓存的设置,本领域技术人员可以根据实际需要对缓存中 数据块分区的数量、数据块分区中数据块的数量、数据块中包含的缓存行的数量进行设置, 本公开对此不作限制。该存储区域2可以是缓存,例如一级缓存(L1 Cache)、二级缓存(L2 Cache)、三级缓存(L3 Cache)等,本公开对此不作限制。
本公开所提供的缓存行替换方法,包括:“初始化配置步骤”和“替换步骤”,以下分别对这两个步骤进行解释说明。
在本实施例中,“初始化配置步骤”完成对各所述数据块分区30的管理组织结构配置。其中,“初始化配置步骤”可以包括:分配步骤和结构创建步骤。
在“分配步骤”中,响应于重构请求(重构请求可以是用户发出的;也可以是在检测到满足预设条件后产生的,如检测到程序启动则可以形成重构请求),根据配置信息对数据块分区30进行使用配置。该配置信息可以指示以下信息中的部分或全部:数据块分区30当前可用的存储量(也可以为当前可用缓存行的数量)、数据块分区中数据块的块数量(DataBlock Partition number)、每个数据块的大小(size)。对数据块分区30进行使用配置可以包括:根据各数据块分区对应的块数量,为各数据块分区配置数据块;根据各数据块对应的行数量,为各数据块配置缓存行。在一些实施例中,该“分配步骤”中配置信息来源于存储区域2的配置信息,存储区域2的配置信息还可以指示存储区域2当前可用的板块分组(BankGroup)数量、每个板块分组的大小,每个板块分组中设置哪些数据块分区。
在本实施例中,根据各数据块分区对应的块数量,为各数据块分区配置数据块,可以包括:根据各数据块分区对应的块数量为各数据块分区分配数据块DB;以及确定出各数据块DB的数据块ID(DB id)。其中,根据各数据块对应的行数量,为各数据块配置缓存行,包括:为各数据块DB分配缓存行,并确定各缓存行的缓存行ID(cacheline id)和缓存行标签(cacheline tag)。
在“结构创建步骤”中,根据数据块分区30中数据块301的块数量,创建对应各数据块分区30的二叉树结构,以及确定二叉树结构中各节点的节点信息,完成数据块分区30的管理组织结构配置。而后存储二叉树结构及其各节点的节点信息。在一些实施例中,可以将二叉树结构及其各节点的节点信息存储至对应的存储器中,如对应的缓冲器。
在本实施例中,各数据块分区对应的二叉树结构中节点的层数和数量与该数据块分区中数据块的块数量相关,二叉树结构中各叶节点最多能够对应该数据块分区中的一个数据块或两个数据块。叶节点最多所能够对应的数据块的数量的不同,二叉树结构存在两种不同的实现方式。
示例一:若叶节点最多所能够对应的数据块的数量为2。如图4、图5所示,在该示例中数据块分区1包括6个数据块,对应的二叉树有3层、5个节点,其中叶节点有3个,每个叶节点对应两个数据块。每个节点确定有对应该节点的节点信息。
示例二:若叶节点最多所能够对应的数据块的数量为1。如图6所示,在该示例中数据块分区1包括6个数据块,对应的二叉树有4层、11个节点,其中叶节点有6个,每个叶节点对应一个数据块。每个节点确定有对应该节点的节点信息。
在一些实施例中,节点信息包括以下信息中的部分或全部:处理状态(ProcessingStatus,S)、左分区权重(Left Partition weight,LW)、左分区计数器(Left Partitioncounter,LC)、左指针(Left Pointer,LP)、左有效索引标识(Left VldIdx_flag,LVF)、左地址索引(Left AddrIndex,LAI)、右分区权重(Right Partition weight,RW)、右分区计数器(Right Partition counter,RC)、右指针(Right Pointer,RP)、右有效索引标识(RightVldIdx_flag,RVF)、右地址索引(Right AddrIndex,RAI)。
处理状态S,用于指示当前该对节点左右两侧分支中对应的数据块进行处理的状态,指示替换方向,各节点的处理状态所指示的替换方向为该节点的左侧分支或右侧分支。在一些实施例中,处理状态可以指示当前可以替换该节点的左侧分支中数据块的缓存行还是右侧分支中数据块的缓存行。可以设置不同的处理状态标识以表示不同的替换方向,例如,可以设置“0”表示处理状态S为替换左侧分支,设置“1”表示处理状态S为替换右侧分支。其中,示例一中各节点的节点信息中均设置有处理状态。示例二中,仅非叶节点的节点信息中设置有处理状态,叶节点的节点信息中不含有处理状态或处理状态位为无效。
左分区权重LW,用于表示该节点左侧分支的对应权重。左分区权重LW是与该节点 左侧分支中数据块的数量(也即左侧数量)、该节点左右两侧分支中数据块的数量(也即右 侧数量)相关的。右分区权重RW,用于表示该节点右侧分支的对应权重。右分区权重RW是与 该节点右侧分支中数据块的数量、该节点左右两侧分支中数据块的数量相关的。左分区权 重LW:右分区权重RW=该节点左侧分支中数据块的数量LN:该节点右侧分支中数据块的数量 RN。在一些示例中,可以根据的最简整数比确定LW、RW。以图4、图5、图6所示的示例为 例,其根节点的,则根节点的LW、RW可以分别设置为2、1。其中,在示例 一中若叶节点的LN和/或RN为0,则节点的LW、RW分别设置为LN、RN。在示例二中叶节点的LW、 RW均设置为0、或者也可以设置为其他可以指示该节点为叶节点的特定数值,本公开对此不 作限制。
左分区计数器LC,用于进行计数。不断根据节点左侧分支中数据块的使用情况对左分区计数器LC的数值进行更新。在一些实施例中,可根据左分区计数器LC表示的含义设置左分区计数器LC的初始值、以及结束计数的预设值。若左分区计数器LC当前的数值与该节点左侧分支中剩余未被替换使用的数据块的比例存在对应关系(也即,LC/LW=节点左侧未被替换使用的数据块的数量/节点左侧全部数据块的数量),则该左分区计数器LC的初始值等于左分区权重LW、最小值为0(也即预设值为0)。举例来说,假如某节点的左分区计数器LC初始值是LW,若当前该节点的处理状态为处理左侧节点(例如设置为0)且左分区权重值LW大于0,则数据流向左侧分支,同时左分区计数器LC值减1;直至左分区计数器LC值为0时,则将其重置为左分区权重LW,同时需将该节点的处理状态改为处理右侧节点(例如设置为1)。或者,若左分区计数器LC当前的数值与该节点左侧分支中已经被替换使用的数据块的比例存在对应关系(也即,LC/LW=该节点左侧已经被替换使用的数据块的数量/该节点左侧全部数据块的数量),则该左分区计数器LC的初始值等于0、最大值为左分区权重LW(也即预设值为左分区权重LW)。
右分区计数器RC,用于进行计数。不断根据节点右侧分支中数据块的使用情况对右分区计数器RC的数值进行更新。在一些实施例中,可根据右分区计数器RC表示的含义设置右分区计数器RC的初始值、以及结束计数的预设值。若右分区计数器RC当前的数值与该节点右侧分支中剩余未被替换使用的数据块的比例存在对应关系(也即,RC/RW=节点右侧未被替换使用的数据块的数量/节点右侧全部数据块的数量),则该右分区计数器RC的初始值等于右分区权重RW、最小值为0(也即预设值为0)。举例来说,假如某节点的右分区计数器RC的初始值是RW,当前该节点的处理状态为处理右侧节点(例如设置为0)且右分区权重值大于0时,数据流向右侧分支,同时右分区计数器RC值减1。直至右分区计数器RC值为0时,则将其重置为右分区权重RW,同时需将该节点的处理状态改为处理右侧节点(例如设置为1)。或者,若右分区计数器RC当前的数值与该节点右侧分支中已经被替换使用的数据块的比例存在对应关系(也即,RC/RW=该节点右侧已经被替换使用的数据块的数量/该节点右侧全部数据块的数量),则该右分区计数器RC的初始值等于0、最大值为右分区权重RW(也即预设值为右分区权重RW)。
其中,示例二中,叶节点的节点信息中并不包括左分区计数器LC和右分区计数器RC,或者,叶节点的节点信息中左分区计数器LC和右分区计数器RC为无效。
左地址索引LAI用于指向对应的数据块。左有效索引标识LVF用于表示左地址索引LAI是否有效(例如,1表示有效,0表示无效)。其中,在示例一中,若当前节点的左分区权重LW为0且左有效索引标识LVF为有效时,则该节点为叶节点且该节点的左地址索引LAI指向该叶节点对应的某一个数据块。若当前节点的左分区权重LW为非0和/或左有效索引标识LVF为无效时,则该节点为非叶节点且该节点的左地址索引LAI无效。在示例二中,若当前节点的左分区权重LW为0且左有效索引标识LVF为有效时,则该节点为叶节点且该节点的左地址索引LAI指向该叶节点一一对应的一个数据块。若当前节点的左分区权重LW为非0和/或左有效索引标识LVF为无效时,则该节点为非叶节点且该节点的左地址索引LAI无效。
左指针LP指向该节点左侧的子节点的位置,硬件用硬连线表示,如图5中左指针LP为图中指向左节点箭头表示。其中,非叶节点的节点信息中包括左指针LP,叶节点的节点信息中不包括左指针LP、或节点信息中该左指针LP位为无效。
右地址索引RAI用于指向对应的数据块。右有效索引标识RVF用于表示右地址索引RAI是否有效(例如,1表示有效,0表示无效)。其中,在示例一中,若当前节点的右分区权重RW为0且右有效索引标识RVF为有效时,则该节点为叶节点且该节点的右地址索引RAI指向该叶节点对应的某一个数据块。若当前节点的右分区权重RW为非0和/或右有效索引标识RVF为无效时,则该节点为非叶节点且该节点的右地址索引RAI无效。在示例二中,若当前节点的右分区权重RW为0且右有效索引标识RVF为有效时,则该节点为叶节点且该节点的右地址索引RAI指向该叶节点一一对应的一个数据块。若当前节点的右分区权重RW为非0和/或右有效索引标识RVF为无效时,则该节点为非叶节点且该节点的右地址索引RAI无效。其中,在示例二中,叶节点的节点信息仅有“右地址索引RAI、右有效索引标识RVF”或“左有效索引标识LVF、左地址索引LAI”。
右指针RP表示该节点右侧的子节点的位置,硬件用硬连线表示,如图5中右指针RP为图中指向右节点箭头表示。其中,非叶节点的节点信息中包括右指针RP,叶节点的节点信息中不包括右指针RP、或节点信息中该右指针RP位为无效。
举例来说,假定管理组织结构按照上述“示例一”方式进行设置,某示例中需要配置的存储区域2为L1 Data Cache,该L1 Data Cache分配到4个板块分组中,可支持动态配置大小,其中每个数据块(Data Block)的大小(Size)为8KB。则L1 Data Cache的不同配置状态如下表1所示,不同配置状态下L1 Data Cache具有相对应的配置信息。
表1L1 Data Cache 配置状态表
则,基于表1可知,L1 Data Cache具有32KB、64KB、96KB、128KB、160 KB和192KB六种不同的配置状态,分到4个板块分组,每个板块分组分别包括6个数据块分区,且每个数据块分区的块数量分别为1、2、3、4、5、6,通过“初始化配置步骤”针对每个板块分组可以创建出图7所示的多个二叉树结构,每个二叉树结构对应不同的数据块分区。
而针对具有不同块数量的数据块分区,其对应的二叉树结构中节点的左分区权重 LW和右分区权重RW的设置存在不同选择。举例来说,如下表2所示,对于三层结构、6个数据 块的二叉树的根节点,其左右两侧分支中数据块的数量之比,则根节 点的LW、RW可以分别设置为4、2,而为简化替换的查找过程可以将根节点的LW、RW可以分别 设置为2、1。同样,对于两层结构、4个数据块的二叉树的根节点的LW、RW可以分别设置为2、 2,而为简化替换的查找过程可以将根节点的LW、RW可以分别设置为1、1。
表 2根节点权重示意表
这样,通过上述管理组织结构(二叉树结构及其节点信息)的设置,在进行替换的过程中,由于对应于数据块分区的二叉树结构使得替换中各数据块之间的替换概率相同,而进一步对于每一个数据块中的缓存行采用PLRU算法进行替换查找能够实现同数据块中缓存行之间的替换概率相同,这样从整体上就可以使得各数据块分区中各缓存行具有相同的替换概率。
在本实施例中,“替换步骤”可以包括:在接收到替换请求的情况下,将数据块分区对应的二叉树结构中的根节点确定为第一个目标节点并获取所述目标节点的节点信息;在所述目标节点为非叶节点的情况下,将当前所述目标节点的处理状态所指示的替换方向上的目标节点的子节点确定为下一目标节点以及更新目标节点的对应于替换方向的目标计数器,直至确定出的目标节点为叶节点。其中,若确定目标节点为叶节点则基于所述叶节点确定出待查数据块;采用PLRU算法查找出所述待查数据块中的可替换缓存行;根据所述待查数据块的数据块ID和所述可替换缓存行的缓存行ID生成查找结果。这样,替换过程中,先寻找到待查数据块缩小缓存行查找范围,再从待查数据块中寻找到可替换缓存行,可以提高缓存行替换的效率,避免逐条查找。
而因管理组织结构的差异,替换步骤也存在一定区别,以下结合图8对基于“上述示例一所提供的管理组织结构”的“替换步骤”进行说明。
如图8所示,“替换步骤”是基于“上述示例一所提供的管理组织结构”进行缓存行替换查找的步骤,“替换步骤”可以包括步骤S201-步骤S213。
如图8所示,在步骤S201中,接收替换请求。并将其所控制的数据块分区所对应的二叉树结构中的根节点确定为第一个目标节点。
如图8所示,在步骤S202中,在确定出目标节点后,获取到该目标节点的节点信息。
如图8所示,在步骤S203中,在得到目标节点的节点信息之后,根据目标节点的节点信息中的处理状态S的指示将目标节点的左侧分支或右侧分支确定为替换方向。例如,若“0”表示左侧分支、“1”表示右侧分支,则在处理状态S为0时,替换方向即为目标节点的左侧分支;在处理状态为1时,替换方向即为目标节点的右侧分支。
如图8所示,在步骤S204中,确定出替换方向之后,确定该替换方向对应的权重(也即目标节点的左分区权重LW或右分区权重RW),例如,若替换方向为目标节点的左侧分支,则替换方向对应的权重即为左分区权重LW;若替换方向为目标节点的右侧分支,则替换方向对应的权重即为右分区权重RW。其中,若替换方向对应的权重为0和/或者对应的目标计数器为无效,则继续执行步骤S205。若替换方向对应的权重不为0且目标计数器有效,则继续执行步骤S209。其中,目标计数器为左分区计数器右分区计数器中与替换方向对应的计数器。
如图8所示,在步骤S205中,确定出替换方向对应的有效索引标识(也即目标节点的左有效索引标识LVF或右有效索引标识RVF),并进一步确定替换方向对应的有效索引标识是否为有效。例如,若替换方向为目标节点的左侧分支,则替换方向对应的有效索引标识即为左有效索引标识LVF;若替换方向为目标节点的右侧分支,则替换方向对应的有效索引标识即为右有效索引标识RVF。其中,若替换方向对应的有效索引标识为有效,则继续执行步骤S207。若替换方向对应的有效索引标识为无效,则继续执行步骤S206。其中,如图8所示,在步骤S206中,若替换方向对应的有效索引标识为无效,则可以确定目标节点的替换方向上的各数据块均不符合查找条件,丢弃该替换请求、停止查找,生成替换失败异常并上报异常寄存器,以使得后续可以针对该异常进行处理。
如图8所示,在步骤S207中,若替换方向对应的有效索引标识为有效,则可以确定当前该目标节点为叶节点,则将该叶节点的与替换方向对应的右地址索引RAI或左地址索引LAI确定为目标地址索引。例如,若替换方向为目标节点的左侧分支,则替换方向对应的有效索引标识即为左有效索引标识LVF,此时若左有效索引标识LVF有效就可以将左地址索引LAI确定为目标地址索引。
如图8所示,在步骤S208中,在确定出目标地址索引之后,进一步基于目标地址索引确定出对应的待查数据块,而后基于PLRU算法查找出该待查数据块中能够作为替换的缓存行。若能够查找到能够作为替换的缓存行,则将该缓存行作为可替换缓存行,进而生成查找结果。
如图8所示,在步骤S209中,继续确定出替换方向对应的目标计数器(也即目标节点的左分区计数器LC或右分区计数器RC)当前的数值,若目标计数器当前的数值为预设值(如0),则继续执行步骤S211。若目标计数器当前的数值不是预设值,则执行步骤S210。在一些实施例中,也可以先更新目标计数器的值后,再确定目标计数器当前的数值是否为预设值,若目标计数器当前的数值为预设值(如0),则继续执行步骤S211;若不是预设值则执行步骤S212,本公开对此不作限制。
如图8所示,在步骤S210中,更新目标计数器的值,而后执行步骤S212。其中,若目标节点的目标计数器(也即目标节点的左分区计数器LC或右分区计数器RC)的初始值为对该目标节点的左分区权重LW或右分区权重RW、预设值为0,则“更新目标计数器的值”就可以为使得目标计数器的值减1。若目标节点的目标计数器(也即目标节点的左分区计数器LC或右分区计数器RC)的初始值为0、预设值为该目标节点的左分区权重LW或右分区权重RW,则“更新目标计数器的值”就可以为使得目标计数器的值加1。
如图8所示,在步骤S211中,重置目标计数器的数值,并更改该目标节点的处理状态S。而后执行步骤S212。其中,若目标节点的目标计数器的初始值为对该目标节点的左分区权重LW或右分区权重RW、预设值为0,则“重置目标计数器的数值”就可以为使得目标计数器的值重新设置为左分区权重LW或右分区权重RW。若目标节点的目标计数器的初始值为0、预设值为该目标节点的左分区权重LW或右分区权重RW,则“重置目标计数器的数值”就可以为使得目标计数器的值重新设置为0。其中,“更改该目标节点的处理状态S”可以为:若目标节点的处理状态S指示替换方向为左侧分支,则将目标节点的处理状态S修改为指示替换方向为右侧分支,例如,将处理状态S由“0”修改为“1”。或者,若目标节点的处理状态S指示替换方向为右侧分支,则将目标节点的处理状态S修改为指示替换方向为左侧分支,例如,将处理状态S由“1”修改为“0”。
如图8所示,在步骤S212中,更新所存储的目标节点的节点信息。更新所存储的目标节点的节点信息可以包括:将目标计数器的值从原数值替换为当前数值、更新目标节点的处理状态S;或者,将目标计数器的值从原数值替换为当前数值。以保证所存储的各节点的节点信息始终与数据块的访问情况对应,保证缓存行替换的均衡性。
如图8所示,在步骤S213中,确定出指示下一目标节点的目标指针,其中,该目标指针可以为目标节点的替换方向所对应的指针,为左指针LP或右指针RP。例如,若替换方向为目标节点的左侧分支,则替换方向对应的目标指针即为左指针LP。而后执行步骤S202,进一步根据目标指针确定出下一目标节点的节点信息的存储地址,进而根据存储地址获取到下一目标节点的节点信息。
其中,步骤S212和步骤S213的执行顺序可如图8所示,也可以步骤S212在步骤S213之后、或者同步执行,本公开对此不作限制。
在本实施例中,若“替换步骤”是基于“上述示例二所提供的管理组织结构”进行缓存行替换查找的步骤,则基于“示例二所提供的管理组织结构”的“替换步骤”与图8所示的替换步骤仅部分步骤存在区别,为简明仅对区别步骤进行说明。其中,因为基于“示例二所提供的管理组织结构”中叶节点与数据块是一一对应的,则基于“示例二所提供的管理组织结构”的“替换步骤”与图8所示的替换步骤的区别在于:
在步骤S206之后,在确定目标节点为叶节点的情况下,直接将该目标节点中存储的左地址索引或右地址索引确定为目标地址索引,而后继续执行步骤S208。
为简明示意“替换步骤”的实现方式,以下通过简单示例进行说明。其中,处理状态指示的替换方向均为先左后右。
假设“替换步骤”是如图4所示的基于“示例一所提供的管理组织结构”或如图6所示的基于“示例二所提供的管理组织结构”进行缓存行替换查找,若根节点的左分区权重和右分区权重分别为4和2、根节点的左子节点的左分区权重和右分区权重均为2,则会按照“数据块DB_a、数据块DB_b、数据块DB_c、数据块DB_d、数据块DB_e、数据块DB_f、数据块DB_a……”这样的循环顺序确定出待查数据块。
假设“替换步骤”是如图4所示的基于“示例一所提供的管理组织结构”或如图6所示的基于“示例二所提供的管理组织结构”进行缓存行替换查找,若根节点的左分区权重和右分区权重分别为2和1、根节点的左子节点的左分区权重和右分区权重均为1,则会按照“数据块DB_a、数据块DB_c、数据块DB_e、数据块DB_b、数据块DB_d、数据块DB_f、数据块DB_a……”这样的循环顺序确定出待查数据块。
如图9所示,本公开还提供一种缓存行替换装置,该缓存行替换装置用于实现数据块分区中缓存行的替换查找,所述数据块分区包括至少一个数据块,各所述数据块包括多个缓存行,各数据块分区设置有对应的管理组织结构,所述管理组织结构包括对应于所述数据块分区的二叉树结构和所述二叉树结构中各节点的节点信息,所述节点信息包括:处理状态、左分区计数器和右分区计数器,所述装置包括:
替换请求接收模块41,用于在接收到替换请求的情况下,将数据块分区对应的二叉树结构中的根节点确定为第一个目标节点并获取所述目标节点的节点信息;
待查数据块确定模块42,用于在所述目标节点为非叶节点的情况下,将当前所述目标节点的处理状态所指示的替换方向上的所述目标节点的子节点确定为下一目标节点以及更新所述目标节点的对应于替换方向的目标计数器,直至确定出的目标节点为叶节点,则基于所述叶节点确定出待查数据块;
缓存行替换模块43,用于采用PLRU算法查找出所述待查数据块中的可替换缓存行;
查找结果生成模块44,用于根据所述待查数据块的数据块ID和所述可替换缓存行的缓存行ID生成查找结果;
其中,所述目标计数器为所述目标节点的左分区计数器和右分区计数器中对应于所述目标节点的处理状态所指示的替换方向的计数器,各节点的处理状态所指示的替换方向为节点的左侧分支或右侧分支。
在一种可能的实现方式中,所述待查数据块确定模块,包括:
第一确定子模块,用于将所述叶节点的处理状态所指示的替换方向对应的数据块确定为待查数据块;或者
第二确定子模块,用于将所述叶节点对应的数据块确定为待查数据块。
在一种可能的实现方式中,所述节点信息还包括左分区权重和右分区权重,所述装置还包括:
重置更新模块,用于在所述目标计数器的数值为预设值的情况下,重置所述目标计数器为初始值以及更改所述目标节点的处理状态所指示的替换方向;
其中,所述初始值为对应于所述目标计数器所在分支方向的分区权重、所述预设值为0;或者,所述初始值为0、所述预设值为对应于所述目标计数器所在分支方向的分区权重;左分区计数器所在分支方向的分区权重为左分区权重,右分区计数器所在分支方向的分区权重为右分区权重。
在一种可能的实现方式中,所述装置还包括:
叶节点确定模块,用于在确定所述目标节点的目标计数器为无效和/或所述目标节点对应于处理状态所指示的替换方向的分区权重为0的情况下,确定所述目标节点为叶节点;
其中,所述目标节点对应于处理状态所指示的替换方向的分区权重为左分区权重或右分区权重。
在一种可能的实现方式中,所述节点信息还包括左指针和右指针,所述装置还包括:
目标节点查找模块,用于根据当前所述目标节点的处理状态所指示的替换方向对应的目标指针查找到下一目标节点;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则所述目标指针为左指针;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则所述目标指针为右指针。
在一种可能的实现方式中,所述叶节点的节点信息还包括:右地址索引和左地址索引,
其中,将所述叶节点的处理状态所指示的替换方向对应的数据块确定为待查数据块,包括:将所述叶节点的处理状态所指示的替换方向对应的目标地址索引所指向的数据块确定为待查数据块;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则所述目标地址索引为所述左地址索引;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则所述目标地址索引为所述右地址索引。
在一种可能的实现方式中,所述节点信息还包括:左有效索引标识和右有效索引标识,将所述叶节点的处理状态所指示的替换方向对应的地址索引所指向的数据块确定为待查数据块,包括:
在所述叶节点的处理状态所指示的替换方向对应的有效索引标识为有效的情况下,将所述叶节点的处理状态所指示的替换方向对应的地址索引所指向的数据块确定为待查数据块;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则指向待查数据块的地址索引为所述左有效索引标识;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则指向待查数据块的地址索引为所述右有效索引标识。
在一种可能的实现方式中,所述叶节点的节点信息还包括右地址索引和左地址索引中的一个,其中,将所述叶节点对应的数据块确定为待查数据块,包括:将所述叶节点的节点信息中存在的地址索引所指向的数据块确定为待查数据块。
在一种可能的实现方式中,所述叶节点的节点信息还包括左有效索引标识和右有效索引标识中的一个,
其中,将所述叶节点对应的数据块确定为待查数据块,包括:
在所述叶节点的节点信息中存在的左有效索引标识或右有效索引标识为有效的情况下,将所述叶节点的节点信息中存在的地址索引所指向的数据块确定为待查数据块。
在一种可能的实现方式中,各节点的左分区权重、右分区权重与所述节点的左侧分支中数据块的左侧数量、所述节点的右侧分支中数据块的右侧数量相关,
在所述节点的左侧数量和右侧数量均不为零的情况下,所述节点的左分区权重、右分区权重的值,根据节点的左侧数量和右侧数量的最简整数比确定;
在所述节点的左侧数量和/或右侧数量为零的情况下,所述节点的左分区权重、右分区权重的值分别设置为节点的左侧数量和右侧数量。
在一种可能的实现方式中,所述装置还包括:
配置模块,用于响应于重构请求,根据配置信息设置所述数据块分区中的数据块的块数量以及各所述数据块中缓存行的行数量,并设置各所述数据块的数据块ID、缓存行的缓存行ID;根据所述数据块分区中数据块的块数量,创建对应所述数据块分区的二叉树结构,以及确定所述二叉树结构中各节点的节点信息,完成所述数据块分区的管理组织结构配置。
在一种可能的实现方式中,各所述数据块中包括个缓存行,n为正整数。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现以及相关有益效果可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
需要说明的是,尽管以上述实施例作为示例介绍了缓存行替换方法及装置如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定各步骤、模块,只要符合本公开的技术方案即可。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
图10是根据一示例性实施例示出的一种用于缓存行替换的装置1900的框图。例如,装置1900可以被提供为一服务器或终端设备。参照图10,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出接口1958(I/O接口)。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM, LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由装置1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (26)

1.一种缓存行替换方法,其特征在于,用于实现数据块分区中缓存行的替换查找,所述数据块分区包括至少一个数据块,各所述数据块包括多个缓存行,各数据块分区设置有对应的管理组织结构,所述管理组织结构包括对应于所述数据块分区的二叉树结构和所述二叉树结构中各节点的节点信息,所述节点信息包括处理状态、左分区计数器和右分区计数器,所述方法包括:
在接收到替换请求的情况下,将数据块分区对应的二叉树结构中的根节点确定为第一个目标节点并获取所述目标节点的节点信息;
在所述目标节点为非叶节点的情况下,将当前所述目标节点的处理状态所指示的替换方向上的所述目标节点的子节点确定为下一目标节点以及更新所述目标节点的对应于替换方向的目标计数器,直至确定出的目标节点为叶节点,则基于所述叶节点确定出待查数据块;
采用PLRU算法查找出所述待查数据块中的可替换缓存行;
根据所述待查数据块的数据块ID和所述可替换缓存行的缓存行ID生成查找结果;
其中,所述目标计数器为所述目标节点的左分区计数器和右分区计数器中对应于所述目标节点的处理状态所指示的替换方向的计数器,各节点的处理状态所指示的替换方向为节点的左侧分支或右侧分支。
2. 根据权利要求1所述的方法,其特征在于,基于所述叶节点确定出待查数据块,包括:
将所述叶节点的处理状态所指示的替换方向对应的数据块确定为待查数据块;或者
将所述叶节点对应的数据块确定为待查数据块。
3.根据权利要求1所述的方法,其特征在于,所述节点信息还包括左分区权重和右分区权重,所述方法还包括:
在所述目标计数器的数值为预设值的情况下,重置所述目标计数器为初始值以及更改所述目标节点的处理状态所指示的替换方向;
其中,所述初始值为对应于所述目标计数器所在分支方向的分区权重、所述预设值为0;或者,所述初始值为0、所述预设值为对应于所述目标计数器所在分支方向的分区权重;左分区计数器所在分支方向的分区权重为左分区权重,右分区计数器所在分支方向的分区权重为右分区权重。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在确定所述目标节点的目标计数器为无效和/或所述目标节点对应于处理状态所指示的替换方向的分区权重为0的情况下,确定所述目标节点为叶节点;
其中,所述目标节点对应于处理状态所指示的替换方向的分区权重为左分区权重或右分区权重。
5.根据权利要求1所述的方法,其特征在于,所述节点信息还包括左指针和右指针,所述方法还包括:
根据当前所述目标节点的处理状态所指示的替换方向对应的目标指针查找到下一目标节点;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则所述目标指针为左指针;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则所述目标指针为右指针。
6.根据权利要求2所述的方法,其特征在于,所述叶节点的节点信息还包括:右地址索引和左地址索引,
其中,将所述叶节点的处理状态所指示的替换方向对应的数据块确定为待查数据块,包括:将所述叶节点的处理状态所指示的替换方向对应的目标地址索引所指向的数据块确定为待查数据块;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则所述目标地址索引为所述左地址索引;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则所述目标地址索引为所述右地址索引。
7.根据权利要求6所述的方法,其特征在于,所述节点信息还包括:左有效索引标识和右有效索引标识,将所述叶节点的处理状态所指示的替换方向对应的地址索引所指向的数据块确定为待查数据块,包括:
在所述叶节点的处理状态所指示的替换方向对应的有效索引标识为有效的情况下,将所述叶节点的处理状态所指示的替换方向对应的地址索引所指向的数据块确定为待查数据块;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则指向待查数据块的地址索引为所述左有效索引标识;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则指向待查数据块的地址索引为所述右有效索引标识。
8.根据权利要求2所述的方法,其特征在于,所述叶节点的节点信息还包括右地址索引和左地址索引中的一个,
其中,将所述叶节点对应的数据块确定为待查数据块,包括:将所述叶节点的节点信息中存在的地址索引所指向的数据块确定为待查数据块。
9.根据权利要求8所述的方法,其特征在于,所述叶节点的节点信息还包括左有效索引标识和右有效索引标识中的一个,
其中,将所述叶节点对应的数据块确定为待查数据块,包括:
在所述叶节点的节点信息中存在的左有效索引标识或右有效索引标识为有效的情况下,将所述叶节点的节点信息中存在的地址索引所指向的数据块确定为待查数据块。
10.根据权利要求3所述的方法,其特征在于,各节点的左分区权重、右分区权重与所述节点的左侧分支中数据块的左侧数量、所述节点的右侧分支中数据块的右侧数量相关,
在所述节点的左侧数量和右侧数量均不为零的情况下,所述节点的左分区权重、右分区权重的值,根据节点的左侧数量和右侧数量的最简整数比确定;
在所述节点的左侧数量和/或右侧数量为零的情况下,所述节点的左分区权重、右分区权重的值分别设置为节点的左侧数量和右侧数量。
11.根据权利要求1-10任意一项所述的方法,其特征在于,所述方法还包括:
响应于配置信号请求,根据配置信息设置所述数据块分区中的数据块的块数量以及各所述数据块中缓存行的行数量,并设置各所述数据块的数据块ID、缓存行的缓存行ID;
根据所述数据块分区中数据块的块数量,创建对应所述数据块分区的二叉树结构,以及确定所述二叉树结构中各节点的节点信息,完成所述数据块分区的管理组织结构配置。
12.根据权利要求1-10任意一项所述的方法,其特征在于,各所述数据块中包括个缓存行,n为正整数。
13.一种缓存行替换装置,其特征在于,用于实现数据块分区中缓存行的替换查找,所述数据块分区包括至少一个数据块,各所述数据块包括多个缓存行,各数据块分区设置有对应的管理组织结构,所述管理组织结构包括对应于所述数据块分区的二叉树结构和所述二叉树结构中各节点的节点信息,所述节点信息包括:处理状态、左分区计数器和右分区计数器,所述装置包括:
替换请求接收模块,用于在接收到替换请求的情况下,将数据块分区对应的二叉树结构中的根节点确定为第一个目标节点并获取所述目标节点的节点信息;
待查数据块确定模块,用于在所述目标节点为非叶节点的情况下,将当前所述目标节点的处理状态所指示的替换方向上的所述目标节点的子节点确定为下一目标节点以及更新所述目标节点的对应于替换方向的目标计数器,直至确定出的目标节点为叶节点,则基于所述叶节点确定出待查数据块;
缓存行替换模块,用于采用PLRU算法查找出所述待查数据块中的可替换缓存行;
查找结果生成模块,用于根据所述待查数据块的数据块ID和所述可替换缓存行的缓存行ID生成查找结果;
其中,所述目标计数器为所述目标节点的左分区计数器和右分区计数器中对应于所述目标节点的处理状态所指示的替换方向的计数器,各节点的处理状态所指示的替换方向为节点的左侧分支或右侧分支。
14. 根据权利要求13所述的装置,其特征在于,所述待查数据块确定模块,包括:
第一确定子模块,用于将所述叶节点的处理状态所指示的替换方向对应的数据块确定为待查数据块;或者
第二确定子模块,用于将所述叶节点对应的数据块确定为待查数据块。
15.根据权利要求13所述的装置,其特征在于,所述节点信息还包括左分区权重和右分区权重,所述装置还包括:
重置更新模块,用于在所述目标计数器的数值为预设值的情况下,重置所述目标计数器为初始值以及更改所述目标节点的处理状态所指示的替换方向;
其中,所述初始值为对应于所述目标计数器所在分支方向的分区权重、所述预设值为0;或者,所述初始值为0、所述预设值为对应于所述目标计数器所在分支方向的分区权重;左分区计数器所在分支方向的分区权重为左分区权重,右分区计数器所在分支方向的分区权重为右分区权重。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
叶节点确定模块,用于在确定所述目标节点的目标计数器为无效和/或所述目标节点对应于处理状态所指示的替换方向的分区权重为0的情况下,确定所述目标节点为叶节点;
其中,所述目标节点对应于处理状态所指示的替换方向的分区权重为左分区权重或右分区权重。
17.根据权利要求13所述的装置,其特征在于,所述节点信息还包括左指针和右指针,所述装置还包括:
目标节点查找模块,用于根据当前所述目标节点的处理状态所指示的替换方向对应的目标指针查找到下一目标节点;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则所述目标指针为左指针;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则所述目标指针为右指针。
18.根据权利要求14所述的装置,其特征在于,所述叶节点的节点信息还包括:右地址索引和左地址索引,
其中,将所述叶节点的处理状态所指示的替换方向对应的数据块确定为待查数据块,包括:将所述叶节点的处理状态所指示的替换方向对应的目标地址索引所指向的数据块确定为待查数据块;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则所述目标地址索引为所述左地址索引;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则所述目标地址索引为所述右地址索引。
19.根据权利要求18所述的装置,其特征在于,所述节点信息还包括:左有效索引标识和右有效索引标识,将所述叶节点的处理状态所指示的替换方向对应的地址索引所指向的数据块确定为待查数据块,包括:
在所述叶节点的处理状态所指示的替换方向对应的有效索引标识为有效的情况下,将所述叶节点的处理状态所指示的替换方向对应的地址索引所指向的数据块确定为待查数据块;
其中,若当前所述目标节点的处理状态所指示的替换方向为左侧分支,则指向待查数据块的地址索引为所述左有效索引标识;若当前所述目标节点的处理状态所指示的替换方向为右侧分支,则指向待查数据块的地址索引为所述右有效索引标识。
20.根据权利要求14所述的装置,其特征在于,所述叶节点的节点信息还包括右地址索引和左地址索引中的一个,
其中,将所述叶节点对应的数据块确定为待查数据块,包括:将所述叶节点的节点信息中存在的地址索引所指向的数据块确定为待查数据块。
21.根据权利要求20所述的装置,其特征在于,所述叶节点的节点信息还包括左有效索引标识和右有效索引标识中的一个,
其中,将所述叶节点对应的数据块确定为待查数据块,包括:
在所述叶节点的节点信息中存在的左有效索引标识或右有效索引标识为有效的情况下,将所述叶节点的节点信息中存在的地址索引所指向的数据块确定为待查数据块。
22.根据权利要求15所述的装置,其特征在于,各节点的左分区权重、右分区权重与所述节点的左侧分支中数据块的左侧数量、所述节点的右侧分支中数据块的右侧数量相关,
在所述节点的左侧数量和右侧数量均不为零的情况下,所述节点的左分区权重、右分区权重的值,根据节点的左侧数量和右侧数量的最简整数比确定;
在所述节点的左侧数量和/或右侧数量为零的情况下,所述节点的左分区权重、右分区权重的值分别设置为节点的左侧数量和右侧数量。
23.根据权利要求13-22任意一项所述的装置,其特征在于,所述装置还包括:
配置模块,用于响应于重构请求,根据配置信息设置所述数据块分区中的数据块的块数量以及各所述数据块中缓存行的行数量,并设置各所述数据块的数据块ID、缓存行的缓存行ID;根据所述数据块分区中数据块的块数量,创建对应所述数据块分区的二叉树结构,以及确定所述二叉树结构中各节点的节点信息,完成所述数据块分区的管理组织结构配置。
24.根据权利要求13-22任意一项所述的装置,其特征在于,各所述数据块中包括个缓存行,n为正整数。
25.一种缓存行替换装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求1至12中任意一项所述的方法。
26.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至12中任意一项所述的方法。
CN202311634767.5A 2023-11-30 2023-11-30 缓存行替换方法及装置 Pending CN117349198A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311634767.5A CN117349198A (zh) 2023-11-30 2023-11-30 缓存行替换方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311634767.5A CN117349198A (zh) 2023-11-30 2023-11-30 缓存行替换方法及装置

Publications (1)

Publication Number Publication Date
CN117349198A true CN117349198A (zh) 2024-01-05

Family

ID=89361709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311634767.5A Pending CN117349198A (zh) 2023-11-30 2023-11-30 缓存行替换方法及装置

Country Status (1)

Country Link
CN (1) CN117349198A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363958A (zh) * 2020-11-12 2021-02-12 上海兆芯集成电路有限公司 高速缓存替换的方法及装置
CN112379929A (zh) * 2020-11-13 2021-02-19 海光信息技术股份有限公司 一种指令替换方法、装置、处理器、电子设备及存储介质
CN115809028A (zh) * 2023-01-19 2023-03-17 北京象帝先计算技术有限公司 一种缓存数据替换方法、装置、图形处理系统及电子设备
CN116107932A (zh) * 2023-04-13 2023-05-12 摩尔线程智能科技(北京)有限责任公司 一种数据队列更新方法、装置、存储介质及电子设备
CN116340205A (zh) * 2022-12-15 2023-06-27 格兰菲智能科技有限公司 访问请求处理方法以及缓存装置
CN116737609A (zh) * 2022-03-04 2023-09-12 格兰菲智能科技有限公司 选择替换缓存行的方法及其装置
CN116897335A (zh) * 2021-02-26 2023-10-17 华为技术有限公司 一种缓存替换方法和装置
CN117130663A (zh) * 2023-09-19 2023-11-28 摩尔线程智能科技(北京)有限责任公司 一种指令读取方法及l2指令缓存、电子设备和存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363958A (zh) * 2020-11-12 2021-02-12 上海兆芯集成电路有限公司 高速缓存替换的方法及装置
CN112379929A (zh) * 2020-11-13 2021-02-19 海光信息技术股份有限公司 一种指令替换方法、装置、处理器、电子设备及存储介质
CN116897335A (zh) * 2021-02-26 2023-10-17 华为技术有限公司 一种缓存替换方法和装置
CN116737609A (zh) * 2022-03-04 2023-09-12 格兰菲智能科技有限公司 选择替换缓存行的方法及其装置
CN116340205A (zh) * 2022-12-15 2023-06-27 格兰菲智能科技有限公司 访问请求处理方法以及缓存装置
CN115809028A (zh) * 2023-01-19 2023-03-17 北京象帝先计算技术有限公司 一种缓存数据替换方法、装置、图形处理系统及电子设备
CN116107932A (zh) * 2023-04-13 2023-05-12 摩尔线程智能科技(北京)有限责任公司 一种数据队列更新方法、装置、存储介质及电子设备
CN117130663A (zh) * 2023-09-19 2023-11-28 摩尔线程智能科技(北京)有限责任公司 一种指令读取方法及l2指令缓存、电子设备和存储介质

Similar Documents

Publication Publication Date Title
US10241924B2 (en) Reducing over-purging of structures associated with address translation using an array of tags
US10445248B2 (en) Host page management using active guest page table indicators
US10146685B2 (en) Garbage collection and other management of memory heaps
US10222985B2 (en) Autonomous dynamic optimization of platform resources
US10180909B2 (en) Host-based resetting of active use of guest page table indicators
US10515020B2 (en) Marking storage keys to indicate memory used to back address translation structures
US10802986B2 (en) Marking to indicate memory used to back address translation structures
US10169243B2 (en) Reducing over-purging of structures associated with address translation
US10162764B2 (en) Marking page table/page status table entries to indicate memory used to back address translation structures
TW201841118A (zh) 採用映射記憶體提供多重命名空間的方法及設備
US11119942B2 (en) Facilitating access to memory locality domain information
WO2019081322A1 (en) BASIC PARTITIONING OF DATA
CN116028388A (zh) 高速缓存方法、装置、电子设备、存储介质和程序产品
CN111694992B (zh) 一种数据处理方法和装置
CN116563089B (zh) 一种图形处理器的内存管理方法、装置、设备及存储介质
US9734089B2 (en) Memory management unit and method for accessing data
CN117349198A (zh) 缓存行替换方法及装置
CN117349199B (zh) 缓存管理装置及系统
US10684951B2 (en) Minimizing cache latencies using set predictors
US20220050792A1 (en) Determining page size via page table cache
CN117331858B (zh) 存储装置及数据处理系统
US10652351B2 (en) Lock-free weak-reference hybrid cache
CN118159953A (zh) 提供动态随机存取存储器高速缓存作为每个应用进程的第二类型存储器
US10318415B2 (en) Garbage collection facility grouping infrequently accessed data units in designated transient memory area
TW202431100A (zh) 快取記憶體方法、裝置、電子設備和電腦可讀儲存媒體

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