CN112433961B - 复合缓存目录***及其管理方法 - Google Patents
复合缓存目录***及其管理方法 Download PDFInfo
- Publication number
- CN112433961B CN112433961B CN202011413443.5A CN202011413443A CN112433961B CN 112433961 B CN112433961 B CN 112433961B CN 202011413443 A CN202011413443 A CN 202011413443A CN 112433961 B CN112433961 B CN 112433961B
- Authority
- CN
- China
- Prior art keywords
- cache
- directory
- cache line
- address block
- specified
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供了一种复合缓存目录***及其管理方法、设备和存储介质。其中该复合缓存目录***包括:缓存行缓存目录子***,包括缓存行缓存目录及其控制模块,其中缓存行缓存目录包括用于存放一部分缓存行的属性信息的多个缓存行目录项,其控制模块用于在缓存行缓存目录中查找指定的缓存行并对缓存行目录项进行更新;地址块缓存目录子***,包括地址块缓存目录及其控制模块,其中地址块缓存目录包括用于以地址块的形式存放另一部分缓存行的属性信息的多个地址块目录项,其控制模块用于在地址块缓存目录中查找指定的缓存行并对地址块目录项进行更新;以及结果综合模块,用于对查找结果进行综合并确定是否为指定的缓存行分配地址块目录项。
Description
技术领域
本公开涉及缓存目录技术,更具体地,涉及复合缓存目录***及其管理方法、设备和存储介质。
背景技术
处理器访问主存储器的地址轨迹通常可分为两类,第一类是相对离散的访问,此类访问的地址轨迹较为随机,第二类是相对连续的访问,由于处理器操作***在分配主存储器时通常以页为单位,同时由于软件操作的空间局部性,此类访问在一定范围内访问的来源(发起访问的处理器)和访问的顺序都较为固定。当前主流的缓存目录主要有以缓存行为监测粒度的单级缓存目录,以较大地址范围(地址块)为监测粒度的单级缓存目录,或将缓存行缓存目录和地址块缓存目录进行结合的多级缓存目录。对于第一类访问,通常使用缓存行缓存目录,其监测精度高但占用芯片面积大,而对于第二类访问通常使用地址块缓存目录,其具有更大容量且扩展性更优,但其监测精度低且会导致大量不必要探测,因此,出现了将缓存行缓存目录和地址块缓存目录进行结合的多级缓存目录。但是,目前的多级缓存目录仅是对于这两种单级缓存目录的简单组合,并不能实现对两种单级缓存目录的结合优化以取长补短。
因此,需要一种监测精度高、容量大、占用芯片面积小且减少不必要探测的复合缓存目录***。
发明内容
为了解决上述问题,通过基于主存访问的地址轨迹来确定两种缓存目录各要监测的缓存行,并根据主存访问实时地更新相应的缓存目录,以利用两种缓存目录的特性实现对其的优化结合。
本公开的实施例提供了一种复合缓存目录***,包括:缓存行缓存目录子***,包括缓存行缓存目录和缓存行缓存目录控制模块,其中,所述缓存行缓存目录包括用于存放缓存***中的至少一部分缓存行的属性信息的多个缓存行目录项,所述缓存行缓存目录控制模块用于在所述缓存行缓存目录中查找指定的缓存行所对应的缓存行目录项,并基于查找结果来确定是否对所述缓存行目录项进行更新;地址块缓存目录子***,包括地址块缓存目录和地址块缓存目录控制模块,其中,所述地址块缓存目录包括用于以地址块的形式存放关于缓存***中的另一部分缓存行的属性信息的多个地址块目录项,所述地址块缓存目录控制模块用于在所述地址块缓存目录中查找所述指定的缓存行所对应的地址块目录项,并基于查找结果来确定是否对所述地址块目录项进行更新;以及结果综合模块,用于对所述缓存行缓存目录子***和所述地址块缓存目录子***的查找结果进行综合以得到综合查找结果,并基于所述综合查找结果来确定是否为所述指定的缓存行分配地址块目录项。
根据本公开的实施例,其中,所述综合查找结果包括在所述缓存行缓存目录中命中所述指定的缓存行,在所述地址块缓存目录中命中所述指定的缓存行,或在所述缓存行缓存目录和所述地址块缓存目录中缺失所述指定的缓存行中的一个;其中,所述缓存行缓存目录控制模块基于查找结果来确定是否对所述缓存行目录项进行更新,包括响应于在所述缓存行缓存目录中命中所述指定的缓存行,对所述缓存行目录项进行更新;其中,所述地址块缓存目录控制模块基于查找结果来确定是否对所述地址块目录项进行更新,包括响应于在所述地址块缓存目录中命中所述指定的缓存行,对所述地址块目录项进行更新;其中,基于所述综合查找结果来确定是否为所述指定的缓存行分配地址块目录项,包括:响应于在所述缓存行缓存目录和所述地址块缓存目录中缺失所述指定的缓存行,为所述指定的缓存行分配地址块目录项;其中,为所述指定的缓存行分配地址块目录项包括:若所述地址块缓存目录中存在空地址块目录项,则分配该空地址块目录项用于存放所述指定的缓存行的属性信息;若所述地址块缓存目录中不存在空地址块目录项,则指示所述地址块缓存目录控制模块从第一数量的地址块目录项中选择一个地址块目录项用于存放所述指定的缓存行的属性信息。
根据本公开的实施例,其中,所述空地址块目录项包括与所述指定的缓存行的地址同类的空地址块目录项,所述第一数量的地址块目录项包括与所述指定的缓存行的地址同类的第一数量的地址块目录项,其中与所述指定的缓存行的地址同类是指与所述指定的缓存行的地址中的某些位完全相同。
根据本公开的实施例,其中,从第一数量的地址块目录项中选择一个地址块目录项用于存放所述指定的缓存行的属性信息包括:
基于对所述第一数量的地址块目录项中的每个地址块目录项所对应的所有缓存行的访问的离散程度,选择其中访问更离散的地址块目录项用于存放所述指定的缓存行的属性信息。
根据本公开的实施例,所述***还包括回填引擎,用于响应于从第一数量的地址块目录项中选择一个地址块目录项用于存放所述指定的缓存行的属性信息,将所述地址块目录项中的原信息进行回填;其中,将所述地址块目录项中的原信息进行回填包括:每次从所述原信息中的一个缓存行的属性信息和所述缓存行缓存目录中的第二数量的缓存行目录项所存放的缓存行的属性信息中,选出第二数量的缓存行的属性信息;将所选的第二数量的缓存行的属性信息存入所述第二数量的缓存行目录项。
根据本公开的实施例,其中,所述第二数量的缓存行目录项包括与所述指定的缓存行的地址同类的第二数量的缓存行目录项,其中与所述指定的缓存行的地址同类是指与所述指定的缓存行的地址中的某些位完全相同。
根据本公开的实施例,其中,在所述缓存行缓存目录中查找指定的缓存行所对应的缓存行目录项以及在所述地址块缓存目录中查找所述指定的缓存行所对应的地址块目录项是同时进行的。
根据本公开的实施例,其中,所述缓存行缓存目录与所述地址块缓存目录中不存在相同的缓存行的属性信息,它们共同组成对于缓存***中的至少一部分缓存行的缓存目录。
本公开的实施例提供了一种用于复合缓存目录***的管理方法,包括:在缓存行缓存目录中查找指定的缓存行所对应的缓存行目录项,并基于查找结果来确定是否对所述缓存行目录项进行更新;在地址块缓存目录中查找所述指定的缓存行所对应的地址块目录项,并基于查找结果来确定是否对所述地址块目录项进行更新;以及对所述缓存行缓存目录子***和所述地址块缓存目录子***的查找结果进行综合以得到综合查找结果,并基于所述综合查找结果来确定是否为所述指定的缓存行分配地址块目录项。
根据本公开的实施例,其中,所述综合查找结果包括在所述缓存行缓存目录中命中所述指定的缓存行,在所述地址块缓存目录中命中所述指定的缓存行,或在所述缓存行缓存目录和所述地址块缓存目录中缺失所述指定的缓存行中的一个;其中,基于查找结果来确定是否对所述缓存行目录项进行更新,包括响应于在所述缓存行缓存目录中命中所述指定的缓存行,对所述缓存行目录项进行更新;其中,基于查找结果来确定是否对所述地址块目录项进行更新,包括响应于在所述地址块缓存目录中命中所述指定的缓存行,对所述地址块目录项进行更新;其中,基于所述综合查找结果来确定是否为所述指定的缓存行分配地址块目录项,包括:响应于在所述缓存行缓存目录和所述地址块缓存目录中缺失所述指定的缓存行,为所述指定的缓存行分配地址块目录项;其中,为所述指定的缓存行分配地址块目录项包括:若所述地址块缓存目录中存在空地址块目录项,则分配该空地址块目录项用于存放所述指定的缓存行的属性信息;若所述地址块缓存目录中不存在空地址块目录项,则从第一数量的地址块目录项中选择一个地址块目录项用于存放所述指定的缓存行的属性信息。
根据本公开的实施例,其中,所述空地址块目录项包括与所述指定的缓存行的地址同类的空地址块目录项,所述第一数量的地址块目录项包括与所述指定的缓存行的地址同类的第一数量的地址块目录项,其中与所述指定的缓存行的地址同类是指与所述指定的缓存行的地址中的某些位完全相同。
根据本公开的实施例,其中,从第一数量的地址块目录项中选择一个地址块目录项用于存放所述指定的缓存行的属性信息包括:基于对所述第一数量的地址块目录项中的每个地址块目录项所对应的所有缓存行的访问的离散程度,选择其中访问更离散的地址块目录项用于存放所述指定的缓存行的属性信息。
根据本公开的实施例,所述方法还包括:响应于从第一数量的地址块目录项中选择一个地址块目录项用于存放所述指定的缓存行的属性信息,将所述地址块目录项中的原信息进行回填;其中,将所述地址块目录项中的原信息进行回填包括:每次从所述原信息中的一个缓存行的属性信息和所述缓存行缓存目录中的第二数量的缓存行目录项所存放的缓存行的属性信息中,选出第二数量的缓存行的属性信息;将所选的第二数量的缓存行的属性信息存入所述第二数量的缓存行目录项。
根据本公开的实施例,其中,所述第二数量的缓存行目录项包括与所述指定的缓存行的地址同类的第二数量的缓存行目录项,其中与所述指定的缓存行的地址同类是指与所述指定的缓存行的地址中的某些位完全相同。
根据本公开的实施例,其中,在所述缓存行缓存目录中查找指定的缓存行所对应的缓存行目录项以及在所述地址块缓存目录中查找所述指定的缓存行所对应的地址块目录项是同时进行的。
根据本公开的实施例,其中,所述缓存行缓存目录与所述地址块缓存目录中不存在相同的缓存行的属性信息,它们共同组成对于缓存***中的至少一部分缓存行的缓存目录。
本公开的实施例提供了一种用于复合缓存目录***的管理设备,包括:处理器;和存储器,其上存储有计算机可执行指令,所述指令在被处理器执行时用于实现如上所述的方法。
本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机可执行指令,所述指令在被处理器执行时用于实现如上所述的方法。
本公开的实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行根据本公开实施例的用于复合缓存目录***的管理方法。
本公开的实施例提供了一种复合缓存目录***及其管理方法、设备和存储介质。本公开的实施例提供的***通过基于主存访问的地址轨迹和缓存目录的特性来确定两种缓存目录各要监测的缓存行,将缓存行缓存目录用于监测主存访问地址轨迹较离散的缓存行,将地址块缓存目录用于监测主存访问地址轨迹较连续的缓存行,并根据主存访问来实时更新两种缓存目录,既保留了两种缓存目录的优势,使得监测精度高、容量大且可扩展性强,又使其劣势互补,减小了占用芯片面积且减少了不必要探测,实现了对两种缓存目录的优化结合。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本公开的一些示例性实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了根据本公开实施例的复合缓存目录***的示意性框图。
图2示出了根据本公开实施例的复合缓存目录***200的框图。
图3示出了根据本公开实施例的缓存行缓存目录的示意图。
图4示出了根据本公开实施例的地址块缓存目录的示意图。
图5示出了根据本公开实施例的基于读/写请求的处理器对应的缓存子***中的缓存行状态转移图。
图6示出了根据本公开实施例的计算***的示意性框图。
图7示出了根据本公开实施例的用于复合缓存目录***的管理方法700的流程图。
图8示出了根据本公开实施例的用于复合缓存目录***的管理设备800的示意图。
具体实施方式
为了使得本公开的目的、技术方案和优点更为明显,下面将参考附图详细描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
在本说明书和附图中,基本上相同或相似的步骤和元素用相同或相似的附图标记来表示,并且对这些步骤和元素的重复描述将被省略。同时,在本公开的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性或排序。
在本说明书和附图中,根据实施例,元素以单数或复数的形式来描述。然而,单数和复数形式被适当地选择用于所提出的情况仅仅是为了方便解释而无意将本公开限制于此。因此,单数形式可以包括复数形式,并且复数形式也可以包括单数形式,除非上下文另有明确说明。
处理器***通常使用低成本、高密度和高延迟的动态随机存取存储器(DRAM)作为其主存储器的存储介质,而在享有其成本和容量的优势时,为了解决高延迟的缺陷,处理器***普遍引入低延迟、高成本和低密度的缓存***来缓解主存储器到处理器处理单元的高延迟。在多核处理器***中,每个处理器核具有一个缓存子***,包括每个处理器核各自私有的一级缓存,以及被多个处理器核共享的其他下级缓存。由于同一主存储器单元的数据可能在多个缓存子***中都存在备份,而各处理器核的操作可能会改变其缓存子***中的备份数据,造成该数据与其他缓存子***中的数据不一致,引起后续对该数据的诸如读、写等操作的混乱。因此为了维护各缓存子***中的数据的一致性,通常在所有缓存子***中实现一种一致性协议(例如,MESI协议、MOESI协议等),按照该一致性协议来随时监测所有缓存子***中的数据的状态。
由于缓存***以缓存行为单位来缓存来自主存储器的数据,缓存行是监测数据状态的最小单位,也就是多核处理器***中维护数据一致性的最小单位。缓存目录是用来监测所有缓存子***中的缓存行以及缓存行状态的,其通常包括对应的缓存子***中的至少一部分的缓存行的状态信息。缓存目录监测数据状态的粒度可以是单个缓存行,或地址连续的多个缓存行组成的地址块,同时缓存目录可以包括单级缓存目录或多级缓存目录,其中各级缓存目录可以使用不同粒度类型的缓存目录。由于各种粒度类型的缓存目录各有优劣,本公开基于主存访问的地址轨迹和各种缓存目录的特性来确定对不同粒度类型的缓存目录的组合使用及管理方法。
下面将结合附图对本公开的实施例进行进一步地描述。
图1示出了根据本公开实施例的复合缓存目录***的示意性框图。
如图1所示,复合缓存目录***可以包括缓存行缓存目录子***、地址块缓存目录子***和结果综合模块。
缓存行缓存目录子***可以包括缓存行缓存目录和缓存行缓存目录控制模块,其中缓存行缓存目录可以包括用于存放缓存***中的至少一部分缓存行的属性信息的多个缓存行目录项,缓存行缓存目录控制模块用于在缓存行缓存目录中查找指定的缓存行所对应的缓存行目录项,并基于查找结果来确定是否对缓存行目录项进行更新。其中,每个缓存行目录项对应于一个缓存行的属性信息,该属性信息可以包括诸如缓存行的地址信息、状态信息、访问信息等。
根据本公开的实施例,响应于在缓存行缓存目录中命中指定的缓存行,对缓存行目录项进行更新。如果在缓存行缓存目录中找到了指定的缓存行,则根据访问发起者(例如,任一处理器)及其访问目的(例如,读、写操作等),对指定的缓存行在缓存行缓存目录中的属性信息进行更新,包括但不限于更新缓存行缓存目录中该缓存行在各缓存子***中的状态。
地址块缓存目录子***可以包括地址块缓存目录和地址块缓存目录控制模块,其中,地址块缓存目录包括用于以地址块的形式存放关于缓存***中的另一部分缓存行的属性信息的多个地址块目录项,地址块缓存目录控制模块用于在地址块缓存目录中查找指定的缓存行所对应的地址块目录项,并基于查找结果来确定是否对地址块目录项进行更新。
根据本公开的实施例,缓存行缓存目录与地址块缓存目录中不存在相同的缓存行的属性信息,它们共同组成对于缓存***中的至少一部分缓存行的缓存目录。缓存行缓存目录与地址块缓存目录相对于缓存行没有交集,其分别对应的缓存行集合是互斥的,并且分别对应的缓存行集合的并集可以是缓存***中的所有缓存行,即复合缓存目录***中可以包含缓存***中所有缓存行的属性信息,对于缓存***中的任何缓存行,都能在该复合缓存目录***中找到其属性信息。此外,根据本公开的实施例,缓存行缓存目录与地址块缓存目录分别对应的缓存行集合的并集还可以是缓存***中的部分缓存行,缓存***中的剩余缓存行的属性信息可以由另一缓存目录***进行记录,该缓存目录***可以是本公开提出的复合缓存目录***,也可以是其他缓存目录***。
根据本公开的实施例,响应于在地址块缓存目录中命中指定的缓存行,对地址块目录项进行更新。如果在地址块缓存目录中找到了指定的缓存行,则根据访问发起者(例如,任一处理器)及其访问目的(例如,读、写操作等),对指定的缓存行在地址块缓存目录中的属性信息进行更新,包括但不限于更新地址块缓存目录中该缓存行在各缓存子***中的状态。
根据本公开的实施例,在缓存行缓存目录中查找指定的缓存行所对应的缓存行目录项以及在地址块缓存目录中查找指定的缓存行所对应的地址块目录项是同时进行的。例如,在接收到来自访问发起者(例如,任一处理器)的数据请求之后,同时在缓存行缓存目录和地址块缓存目录中并行查找该数据对应的缓存行。
结果综合模块可以用于对缓存行缓存目录子***和地址块缓存目录子***的查找结果进行综合以得到综合查找结果,并基于综合查找结果来确定是否为指定的缓存行分配地址块目录项。
根据本公开的实施例,综合查找结果包括在缓存行缓存目录中命中指定的缓存行,在地址块缓存目录中命中指定的缓存行,或在缓存行缓存目录和地址块缓存目录中缺失指定的缓存行中的一个。如前文所述,缓存行缓存目录与地址块缓存目录所包含的属性信息对应的缓存行集合互斥,因此在两个缓存目录中查找指定的缓存行时,至多只能在两个缓存目录中的一个中命中,或者在两个缓存目录中都缺失该缓存行。
根据本公开的实施例,响应于在缓存行缓存目录和地址块缓存目录中缺失指定的缓存行,为指定的缓存行分配地址块目录项。对于复合缓存目录***包含缓存***中所有缓存行的属性信息的情况,当在两个缓存目录中都缺失该缓存行时,可以确定此时该缓存行不存在于缓存***中,需将其读入,同时考虑到软件操作的空间局部性以及主存储器分配时通常以页为单位,可以从主存储器中将该缓存行及其周围连续地址的缓存行一并读入缓存***中并且相应地将对应的属性信息记录在地址块缓存目录中,其中,所读入的缓存行的个数等于地址块所包含的缓存行的固定数量。因此,需要为这些缓存行分配用于记录其属性信息的地址块目录项。
具体地,图2示出了根据本公开实施例的复合缓存目录***200的框图。
如图2所示,复合缓存目录***200可以包括缓存行缓存目录子***201、地址块缓存目录子***202、结果综合模块203和回填引擎204。其中,缓存行缓存目录子***201可以包括缓存行缓存目录205、读组内容寄存器206和缓存行缓存目录控制模块207;地址块缓存目录子***202可以包括地址块缓存目录208、读组内容寄存器209和地址块缓存目录控制模块210。
其中,缓存行缓存目录205的结构可以参考图3所示,图3示出了根据本公开实施例的缓存行缓存目录的示意图。
如图3所示,缓存行缓存目录可以包括多个组,每个组可以包括多个路,其中,每个组中的各个路可以称为缓存行目录项,用于存放一个缓存行的属性信息。根据本公开的实施例,缓存行缓存目录中的缓存行目录项可以是组相联结构,即缓存行缓存目录中每个组中所有路所对应的缓存行地址中的某些位相同。
根据本公开的实施例,每个缓存行目录项所存放的属性信息可以包括对应缓存行的标识地址、缓存行聚合状态、访问有效向量和缓存行所有者。
其中,根据本公开的实施例,标识地址可以是将缓存行中的数据的物理地址中除去组的索引和缓存行内偏移的地址部分。
根据本公开的实施例,缓存行聚合状态用于指示当前缓存行在所有缓存子***中的所有状态的聚合状态,对于状态的聚合需遵从在所有缓存子***中实现的一致性协议,该聚合状态可以是属于该一致性协议的完备状态集中的任一状态,例如属于MESI协议的状态集{MESI}中的状态,其中,M(modified)表示修改状态,即当前缓存行已被修改并且为一个缓存子***专有,E(exclusive)表示专有状态,即当前缓存行与主存储器中的数据一致并且为一个缓存子***专有,S(shared)表示共享状态,即当前缓存行与主存储器中的数据一致并且存在于多个缓存***中,I(invalid)表示无效状态,即当前缓存行数据无效(表示空缓存行,未存放主存储器中的数据)。根据本公开的实施例,在缓存行缓存目录中,缓存行聚合状态可以是根据一致性协议所确定的最能代表其在所有缓存子***中所处状态的一种状态,例如该缓存行在某一缓存子***中状态为M(或E),在其余缓存子***中状态为I,则缓存行目录项中将该缓存行聚合状态记录为M(或E)。
根据本公开的实施例,访问有效向量可以是位向量,其中每一位对应于一个或多个缓存子***,位值为1表示其对应的缓存子***中存在当前缓存行,而位值为0则表示其对应的缓存子***中不存在当前缓存行。
根据本公开的实施例,缓存行所有者用于指示可提供当前缓存行数据的缓存子***的标识号,例如,当前缓存行聚合状态为M或E时,缓存行所有者即为存在属于该状态的缓存行的唯一缓存子***,而当前缓存行聚合状态为S时,缓存行所有者可以是存在属于该状态的缓存行的多个缓存子***中的任一缓存子***。
类似地,地址块缓存目录208的结构可以参考图4所示,图4示出了根据本公开实施例的地址块缓存目录的示意图。
如图4所示,地址块缓存目录可以包括多个组,每个组可以包括多个路,其中,每个组中的各个路可以称为地址块目录项,用于存放一个地址块的属性信息。根据本公开的实施例,地址块缓存目录中的地址块目录项可以是组相联结构,即地址块缓存目录中每个组中的各路可以存放属于该组的地址范围的任一地址块,其中,每一地址块目录项对应一个内部缓存行地址连续的地址块,该地址块的大小通常与主存储器分配时页的大小相同(例如,4KB、2MB、4MB等)。
根据本公开的实施例,每个地址块目录项所存放的属性信息可以包括地址块标识地址、地址块聚合状态、地址块访问有效向量和地址块访问次数。
其中,根据本公开的实施例,地址块标识地址可以是将地址块所包含的多个缓存行中的第一个缓存行中的数据的物理地址除去组的索引和地址块内偏移的地址部分。
根据本公开的实施例,可以通过将当前地址块内所有缓存行划分为不同的段来记录这些缓存行的聚合状态,分段的粒度可以从最小的单个缓存行到最大的整个地址块。因此,地址块聚合状态可以包括当前地址块中的各个地址块段的聚合状态,其分别是对各自所包含的所有缓存行在缓存***中的所有状态的聚合,其中,对于状态的聚合需遵从在所有缓存子***中实现的一致性协议,各地址块段的聚合状态可以是属于该一致性协议的完备状态集中的任一状态,例如属于MESI协议的状态集{MESI}中的状态。
根据本公开的实施例,对应于上述地址块的分段,地址块访问有效向量可以包括当前地址块中的各个地址块段的访问有效向量,其中,每个地址块段的访问有效向量可以是位向量,其中每一位对应于一个或多个缓存子***,位值为1表示其对应的缓存子***中存在当前地址块段所包含的缓存行中的一个或多个,而位值为0则表示其对应的缓存子***中不存在当前地址块段所包含的任何缓存行。
根据本公开的实施例,地址块访问次数用于指示当前地址块被所有缓存子***缓存的次数,即当前缓存了地址块所包含的缓存行的缓存子***的数量。对应于上述地址块的分段,地址块访问次数可包括各个地址块段的访问次数。地址块段的访问次数的计数方式可以是例如当前地址块段所包含的一个缓存行被一个缓存子***缓存时,访问次数加一,而当此缓存子***不再缓存该缓存行时,访问次数减一,当访问次数重新等于零时,表示当前地址块段所包含的任何缓存行都未被任何缓存子***缓存。因此,地址块段的访问次数可以表示地址块段所包含的所有缓存行在缓存***中存在的备份的总数。
回到图2,在接收到有一致性需求的内存访问请求之后,在缓存行缓存目录子***201和地址块缓存目录子***202中同时对指定的缓存行进行查找。其中,根据本公开的实施例,可以基于该缓存行的物理地址,将其所对应的缓存行缓存目录205中的组与地址块缓存目录208中的组分别读入读组内容寄存器206和209中。然后分别由缓存行缓存目录控制模块207和地址块缓存目录控制模块210在其对应的读组内容寄存器中查找指定的缓存行,再将查找结果送至结果综合模块203进行综合。若确定在缓存行缓存目录205中或在地址块缓存目录208中命中该缓存行,则相应地由缓存行缓存目录控制模块207或地址块缓存目录控制模块210来更新该缓存行的属性信息;若确定在缓存行缓存目录205和地址块缓存目录208中都缺失该缓存行,则为该缓存行分配用于记录其属性信息的地址块目录项。
在确定复合缓存目录***200中不存在该指定的缓存行的属性信息之后,优先考虑为该缓存行分配无效的地址块目录项。根据本公开的实施例,为指定的缓存行分配地址块目录项可以包括若地址块缓存目录208中存在空地址块目录项,则分配该空地址块目录项用于存放指定的缓存行的属性信息;若地址块缓存目录208中不存在空地址块目录项,则指示地址块缓存目录控制模块210从第一数量的地址块目录项中选择一个地址块目录项用于存放指定的缓存行的属性信息。对于组相联的缓存目录结构,为指定的缓存行分配地址块目录项可以根据该缓存行的地址来确定其应属的地址块缓存目录208中的组,为该缓存行分配该组中的地址块目录项。其中,根据本公开的实施例,空地址块目录项包括与指定的缓存行的地址同类的空地址块目录项,第一数量的地址块目录项包括与指定的缓存行的地址同类的第一数量的地址块目录项,其中,与指定的缓存行的地址同类是指与指定的缓存行的地址中的某些位完全相同。其中,如上所述,与指定的缓存行的地址同类的地址块目录项可以是该缓存行应属的地址块缓存目录208中的组中的地址块目录项,相应地,第一数量可以是组中的路的数量。根据本公开的实施例,从第一数量的地址块目录项中选择一个地址块目录项用于存放指定的缓存行的属性信息可以基于对第一数量的地址块目录项中的每个地址块目录项所对应的所有缓存行的访问的离散程度,选择其中访问更离散的地址块目录项用于存放指定的缓存行的属性信息。
访问的离散程度可以基于上述地址块访问次数来确定。根据本公开的实施例,可以通过计算组中各地址块目录项的冗余探测个数来确定对每个地址块目录项的访问的离散程度,具体地,地址块目录项的冗余探测个数计算如下:
假设当前地址块目录项可以分段为地址块段0-n,其中每个地址块段所包含的缓存行个数为m,相应地,各个地址块段的访问有效向量中的位值为1的个数可分别表示为ValidNum0至ValidNumn,各个地址块段的访问次数分别表示为AccessNum0和AccessNumn,对缓存***进行实际探测时,由于一个地址块段对应于m个缓存行,同时一个地址块段对应于一个访问有效向量,访问有效向量中的位值为1所对应的缓存子***需要对该地址块段对应的所有缓存行进行探测,因此当前地址块目录项所对应的对缓存***进行实际探测的总数量Nr可以计算为:
而理论上对缓存***进行探测的数量Nt等于当前地址块目录项所包含的所有缓存行在缓存***中存在的备份的总数,即:
因此,当前地址块目录项的冗余探测个数ΔN可以表示为实际探测的总数量Nr与理论上对缓存***进行探测的数量Nt的差值,即ΔN=Nr-Nt,越大的冗余探测个数说明在进行内存访问时,对当前地址块目录项所包含的缓存行的访问越离散。考虑到地址块缓存目录的特性,可以选择将对应组中离散程度最高的地址块目录项用来存放指定的缓存行的属性信息,而该目录项中原本存放的缓存行的属性信息可以选择性地释放或回填入缓存行缓存目录中。
根据本公开的实施例,回填引擎204可以用于响应于从第一数量的地址块目录项中选择一个地址块目录项用于存放指定的缓存行的属性信息,将地址块目录项中的原信息进行回填。其中,根据本公开的实施例,将地址块目录项中的原信息进行回填可以包括每次从该原信息中的一个缓存行的属性信息和缓存行缓存目录中的第二数量的缓存行目录项所存放的缓存行的属性信息中,选出第二数量的缓存行的属性信息,并将所选的第二数量的缓存行的属性信息存入第二数量的缓存行目录项。根据本公开的实施例,所选的第二数量的缓存行的属性信息可以包括或不包括原信息中的该缓存行的属性信息。
将所选目录项中的原信息读入读组内容寄存器209中,由回填引擎204控制每次从读组内容寄存器209中将一个缓存行的属性信息读入读组内容寄存器206中,其中,当前缓存行的属性信息是根据其所属地址块段的属性信息而确定的,并且根据该缓存行的地址,将缓存行缓存目录205中与该缓存行对应的组中的所有目录项读入读组内容寄存器206(此时上述第二数量等于缓存行缓存目录205中每个组中的路的数量)。根据本公开的实施例,根据所属地址块段的属性信息来确定缓存行的属性信息可以包括:标识地址可根据当前缓存行的物理地址来确定,缓存行聚合状态对应于所属地址块段的聚合状态,访问有效向量对应于所属地址块段的访问有效向量,缓存行所有者可设置为表示无效所有者的特定值。然后由缓存行缓存目录控制模块207从这些缓存行的属性信息中选择第二数量的缓存行的属性信息,并将其存入缓存行缓存目录205中的对应组中。由于对应组内可存的目录项的数量有限,需要保证要存入的缓存行的属性信息的数量等于组内可存的目录项的数量,因此当前缓存行的属性信息可能被选择回填入缓存行缓存目录205,也可能被选择从缓存目录***中释放。
根据实际的访问请求、上述命中或缺失结果、以及分配和回填操作,可以对缓存***发起探测,以更新缓存***中的对应缓存行及其状态信息。
对于命中的情况,图5示出了根据本公开实施例的基于读/写请求的处理器对应的缓存子***中的缓存行状态转移图。如图5所示,对于任一处理器,图5示出了在当前处理器对其所包含的缓存行进行读/写请求时,以及当其他处理器对当前处理器所包含的缓存行进行读/写请求时,当前处理器中该缓存行的相应状态转移过程。例如,在当前处理器对其所包含的缓存行进行写请求时,如果该缓存行原状态为E,则将其状态更新为M。此外,如果该缓存行原状态为S,即此时可能还存在其他缓存子***中也包含该缓存行并且状态同样为S,则将当前缓存子***中该缓存行的状态更新为M,而其他缓存子***中该缓存行的状态由S更新为I。
对于缺失的情况,将分配的地址块目录项所对应的缓存行从主存储器读入发起访问的缓存子***中,如果存在缓存行的属性信息被选择从缓存目录***中释放,则从缓存***中不再缓存该缓存行的数据及诸如状态等相关信息。
图6示出了根据本公开实施例的计算***的示意性框图。
如图6所示,计算***可以包括多个处理器,每个处理器可以包括其缓存子***,各缓存子***分别与对应的一致性主设备相连,并通过数据总线连接至一致性主代理,其中,一致性主代理可以包括缓存目录***,一致性主代理可通过访存控制器与主存储器相连。在完成本公开对缓存目录***的所述操作之后,一致性主代理可以通过访存控制器来控制对主存储器数据的读写等操作,并且经由数据总线向一致性主设备分发探测信息,再由各一致性主设备向其对应的缓存子***发起探测以更新缓存***中的缓存行及其状态信息。
图7示出了根据本公开实施例的用于复合缓存目录***的管理方法700的流程图。
如图7所述,在步骤701中,在缓存行缓存目录中查找指定的缓存行所对应的缓存行目录项,并基于查找结果来确定是否对缓存行目录项进行更新。
如果在缓存行缓存目录中命中指定的缓存行,则对该缓存行对应的缓存行目录项进行更新,其中,更新包括对该缓存行的属性信息进行更新。
在步骤702中,在地址块缓存目录中查找指定的缓存行所对应的地址块目录项,并基于查找结果来确定是否对地址块目录项进行更新。
如果在地址块缓存目录中命中指定的缓存行,则对该缓存行对应的地址块目录项进行更新,其中,更新包括对该缓存行所属的地址块的属性信息进行更新。
缓存行缓存目录与地址块缓存目录分别对应的缓存行集合互斥,并且其并集可以包括缓存***中的所有缓存行,即复合缓存目录***中可以包含缓存***中所有缓存行的属性信息。
在步骤703中,对缓存行缓存目录子***和地址块缓存目录子***的查找结果进行综合以得到综合查找结果,并基于综合查找结果来确定是否为指定的缓存行分配地址块目录项。
由于缓存行缓存目录与地址块缓存目录所对应的缓存行集合互斥,在两个缓存目录中查找指定的缓存行时,至多只能在两个缓存目录中的一个中命中,或者在两个缓存目录中都缺失该缓存行。因此综合查找结果包括在缓存行缓存目录中命中指定的缓存行,在地址块缓存目录中命中指定的缓存行,或在缓存行缓存目录和地址块缓存目录中缺失指定的缓存行中的一个。如果复合缓存目录***中缺失指定的缓存行,则为该缓存行分配用于记录其属性信息的地址块目录项。
图8示出了根据本公开实施例的用于复合缓存目录***的管理设备800的示意图。
如图8所示,根据本公开实施例的用于复合缓存目录***的管理设备800可以包括处理器801以及存储器802,其可以通过总线803进行互联。
处理器801可以根据存储在存储器802中的程序或代码执行各种动作和处理。具体地,处理器801可以是一种集成电路芯片,具有信号的处理能力。上述处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中公开的各种方法、步骤、流程及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是X86架构或者是ARM架构等。
存储器802存储有可执行指令,该指令在被处理器801执行时用于实现根据本公开实施例的用于复合缓存目录***的管理方法。存储器802可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接主存总线随机存取存储器(DR RAM)。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本公开的实施例还提供了一种计算机可读存储介质,其上存储有计算机可执行指令,该计算机指令被处理器执行时可以实现根据本公开实施例的用于复合缓存目录***的管理方法。类似地,本公开实施例中的计算机可读存储介质可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本公开的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行根据本公开实施例的用于复合缓存目录***的管理方法。
本公开的实施例提供了一种复合缓存目录***及其管理方法、设备和存储介质。本公开的实施例提供的***通过基于主存访问的地址轨迹和缓存目录的特性来确定两种缓存目录各要监测的缓存行,将缓存行缓存目录用于监测主存访问地址轨迹较离散的缓存行,将地址块缓存目录用于监测主存访问地址轨迹较连续的缓存行,并根据主存访问来实时更新两种缓存目录,既保留了两种缓存目录的优势,使得监测精度高、容量大且可扩展性强,又使其劣势互补,减小了占用芯片面积且减少了不必要探测,实现了对两种缓存目录的优化结合。
需要说明的是,附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、***、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
在上面详细描述的本公开的示例实施例仅仅是说明性的,而不是限制性的。本领域技术人员应该理解,在不脱离本公开的原理和精神的情况下,可对这些实施例或其特征进行各种修改和组合,这样的修改应落入本公开的范围内。
Claims (18)
1.一种复合缓存目录***,包括:
缓存行缓存目录子***,包括缓存行缓存目录和缓存行缓存目录控制模块,其中,所述缓存行缓存目录包括用于存放缓存***中的至少一部分缓存行的属性信息的多个缓存行目录项,所述缓存行缓存目录控制模块用于在所述缓存行缓存目录中查找指定的缓存行所对应的缓存行目录项,并基于查找结果来确定是否对所述缓存行目录项进行更新;
地址块缓存目录子***,包括地址块缓存目录和地址块缓存目录控制模块,其中,所述地址块缓存目录包括用于以地址块的形式存放关于缓存***中的另一部分缓存行的属性信息的多个地址块目录项,所述地址块缓存目录控制模块用于在所述地址块缓存目录中查找所述指定的缓存行所对应的地址块目录项,并基于查找结果来确定是否对所述地址块目录项进行更新;以及
结果综合模块,用于对所述缓存行缓存目录子***和所述地址块缓存目录子***的查找结果进行综合以得到综合查找结果,并基于所述综合查找结果来确定是否为所述指定的缓存行分配地址块目录项。
2.如权利要求1中所述的***,其中所述综合查找结果包括在所述缓存行缓存目录中命中所述指定的缓存行,在所述地址块缓存目录中命中所述指定的缓存行,或在所述缓存行缓存目录和所述地址块缓存目录中缺失所述指定的缓存行中的一个;
其中,所述缓存行缓存目录控制模块基于查找结果来确定是否对所述缓存行目录项进行更新,包括响应于在所述缓存行缓存目录中命中所述指定的缓存行,对所述缓存行目录项进行更新;
其中,所述地址块缓存目录控制模块基于查找结果来确定是否对所述地址块目录项进行更新,包括响应于在所述地址块缓存目录中命中所述指定的缓存行,对所述地址块目录项进行更新;
其中,基于所述综合查找结果来确定是否为所述指定的缓存行分配地址块目录项,包括:
响应于在所述缓存行缓存目录和所述地址块缓存目录中缺失所述指定的缓存行,为所述指定的缓存行分配地址块目录项;
其中,为所述指定的缓存行分配地址块目录项包括:
若所述地址块缓存目录中存在空地址块目录项,则分配该空地址块目录项用于存放所述指定的缓存行的属性信息;
若所述地址块缓存目录中不存在空地址块目录项,则指示所述地址块缓存目录控制模块从第一数量的地址块目录项中选择一个地址块目录项用于存放所述指定的缓存行的属性信息。
3.如权利要求2中所述的***,其中,所述空地址块目录项包括与所述指定的缓存行的地址同类的空地址块目录项,所述第一数量的地址块目录项包括与所述指定的缓存行的地址同类的第一数量的地址块目录项,其中与所述指定的缓存行的地址同类是指与所述指定的缓存行的地址中的某些位完全相同。
4.如权利要求2中所述的***,其中,从第一数量的地址块目录项中选择一个地址块目录项用于存放所述指定的缓存行的属性信息包括:
基于对所述第一数量的地址块目录项中的每个地址块目录项所对应的所有缓存行的访问的离散程度,选择其中访问更离散的地址块目录项用于存放所述指定的缓存行的属性信息。
5.如权利要求2中所述的***,还包括:
回填引擎,用于响应于从第一数量的地址块目录项中选择一个地址块目录项用于存放所述指定的缓存行的属性信息,将所述地址块目录项中的原信息进行回填;
其中,将所述地址块目录项中的原信息进行回填包括:
每次从所述原信息中的一个缓存行的属性信息和所述缓存行缓存目录中的第二数量的缓存行目录项所存放的缓存行的属性信息中,选出第二数量的缓存行的属性信息;
将所选的第二数量的缓存行的属性信息存入所述第二数量的缓存行目录项。
6.如权利要求5中所述的***,其中,所述第二数量的缓存行目录项包括与所述指定的缓存行的地址同类的第二数量的缓存行目录项,其中与所述指定的缓存行的地址同类是指与所述指定的缓存行的地址中的某些位完全相同。
7.如权利要求1中所述的***,其中,在所述缓存行缓存目录中查找指定的缓存行所对应的缓存行目录项以及在所述地址块缓存目录中查找所述指定的缓存行所对应的地址块目录项是同时进行的。
8.如权利要求1中所述的***,其中,所述缓存行缓存目录与所述地址块缓存目录中不存在相同的缓存行的属性信息,它们共同组成对于缓存***中的至少一部分缓存行的缓存目录。
9.一种用于复合缓存目录***的管理方法,包括:
在缓存行缓存目录中查找指定的缓存行所对应的缓存行目录项,并基于查找结果来确定是否对所述缓存行目录项进行更新;
在地址块缓存目录中查找所述指定的缓存行所对应的地址块目录项,并基于查找结果来确定是否对所述地址块目录项进行更新;以及
对所述缓存行缓存目录子***和所述地址块缓存目录子***的查找结果进行综合以得到综合查找结果,并基于所述综合查找结果来确定是否为所述指定的缓存行分配地址块目录项。
10.如权利要求9中所述的管理方法,其中所述综合查找结果包括在所述缓存行缓存目录中命中所述指定的缓存行,在所述地址块缓存目录中命中所述指定的缓存行,或在所述缓存行缓存目录和所述地址块缓存目录中缺失所述指定的缓存行中的一个;
其中,基于查找结果来确定是否对所述缓存行目录项进行更新,包括响应于在所述缓存行缓存目录中命中所述指定的缓存行,对所述缓存行目录项进行更新;
其中,基于查找结果来确定是否对所述地址块目录项进行更新,包括响应于在所述地址块缓存目录中命中所述指定的缓存行,对所述地址块目录项进行更新;
其中,基于所述综合查找结果来确定是否为所述指定的缓存行分配地址块目录项,包括:
响应于在所述缓存行缓存目录和所述地址块缓存目录中缺失所述指定的缓存行,为所述指定的缓存行分配地址块目录项;
其中,为所述指定的缓存行分配地址块目录项包括:
若所述地址块缓存目录中存在空地址块目录项,则分配该空地址块目录项用于存放所述指定的缓存行的属性信息;
若所述地址块缓存目录中不存在空地址块目录项,则指示所述地址块缓存目录控制模块从第一数量的地址块目录项中选择一个地址块目录项用于存放所述指定的缓存行的属性信息。
11.如权利要求10中所述的管理方法,其中,所述空地址块目录项包括与所述指定的缓存行的地址同类的空地址块目录项,所述第一数量的地址块目录项包括与所述指定的缓存行的地址同类的第一数量的地址块目录项,其中与所述指定的缓存行的地址同类是指与所述指定的缓存行的地址中的某些位完全相同。
12.如权利要求10中所述的管理方法,其中,从第一数量的地址块目录项中选择一个地址块目录项用于存放所述指定的缓存行的属性信息包括:
基于对所述第一数量的地址块目录项中的每个地址块目录项所对应的所有缓存行的访问的离散程度,选择其中访问更离散的地址块目录项用于存放所述指定的缓存行的属性信息。
13.如权利要求10中所述的管理方法,还包括:
响应于从第一数量的地址块目录项中选择一个地址块目录项用于存放所述指定的缓存行的属性信息,将所述地址块目录项中的原信息进行回填;
其中,将所述地址块目录项中的原信息进行回填包括:
每次从所述原信息中的一个缓存行的属性信息和所述缓存行缓存目录中的第二数量的缓存行目录项所存放的缓存行的属性信息中,选出第二数量的缓存行的属性信息;
将所选的第二数量的缓存行的属性信息存入所述第二数量的缓存行目录项。
14.如权利要求13中所述的管理方法,其中,所述第二数量的缓存行目录项包括与所述指定的缓存行的地址同类的第二数量的缓存行目录项,其中与所述指定的缓存行的地址同类是指与所述指定的缓存行的地址中的某些位完全相同。
15.如权利要求9中所述的管理方法,其中,在所述缓存行缓存目录中查找指定的缓存行所对应的缓存行目录项以及在所述地址块缓存目录中查找所述指定的缓存行所对应的地址块目录项是同时进行的。
16.如权利要求9中所述的管理方法,其中,所述缓存行缓存目录与所述地址块缓存目录中不存在相同的缓存行的属性信息,它们共同组成对于缓存***中的至少一部分缓存行的缓存目录。
17.一种用于复合缓存目录***的管理设备,包括:
处理器;和
存储器,其上存储有计算机可执行指令,所述指令在被处理器执行时用于实现如权利要求9-16中任一项所述的方法。
18.一种计算机可读存储介质,其上存储有计算机可执行指令,所述指令在被处理器执行时用于实现如权利要求9-16中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011413443.5A CN112433961B (zh) | 2020-12-02 | 2020-12-02 | 复合缓存目录***及其管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011413443.5A CN112433961B (zh) | 2020-12-02 | 2020-12-02 | 复合缓存目录***及其管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112433961A CN112433961A (zh) | 2021-03-02 |
CN112433961B true CN112433961B (zh) | 2022-07-08 |
Family
ID=74692536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011413443.5A Active CN112433961B (zh) | 2020-12-02 | 2020-12-02 | 复合缓存目录***及其管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112433961B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115809207B (zh) * | 2023-01-19 | 2023-04-18 | 北京象帝先计算技术有限公司 | Cache中地址标记方法、装置、图形处理***及电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5369753A (en) * | 1990-06-15 | 1994-11-29 | Compaq Computer Corporation | Method and apparatus for achieving multilevel inclusion in multilevel cache hierarchies |
CN1652092A (zh) * | 2003-12-09 | 2005-08-10 | 国际商业机器公司 | 不同高速缓存级上具有关联集重叠同余组的多级高速缓存 |
CN101042678A (zh) * | 2006-03-23 | 2007-09-26 | 国际商业机器公司 | 数据处理的单元、***和方法 |
CN103955435A (zh) * | 2014-04-09 | 2014-07-30 | 上海理工大学 | 一种融合多级缓存目录建立访问方法 |
CN104346294A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 基于多级缓存的数据读/写方法、装置和计算机*** |
CN104978283A (zh) * | 2014-04-10 | 2015-10-14 | 华为技术有限公司 | 一种内存访问控制方法,及装置 |
CN108351835A (zh) * | 2015-11-23 | 2018-07-31 | 英特尔公司 | 用于高速缓存控制操作的指令和逻辑 |
CN110955512A (zh) * | 2018-09-27 | 2020-04-03 | 阿里巴巴集团控股有限公司 | 缓存处理方法、装置、存储介质、处理器及计算设备 |
CN111078592A (zh) * | 2019-12-27 | 2020-04-28 | 无锡中感微电子股份有限公司 | 一种低功耗片上***的多级指令缓存 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6813633B2 (en) * | 2001-06-19 | 2004-11-02 | Foedero Technologies, Inc. | Dynamic multi-level cache manager |
US7451277B2 (en) * | 2006-03-23 | 2008-11-11 | International Business Machines Corporation | Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation |
US20140082252A1 (en) * | 2012-09-17 | 2014-03-20 | International Business Machines Corporation | Combined Two-Level Cache Directory |
-
2020
- 2020-12-02 CN CN202011413443.5A patent/CN112433961B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5369753A (en) * | 1990-06-15 | 1994-11-29 | Compaq Computer Corporation | Method and apparatus for achieving multilevel inclusion in multilevel cache hierarchies |
CN1652092A (zh) * | 2003-12-09 | 2005-08-10 | 国际商业机器公司 | 不同高速缓存级上具有关联集重叠同余组的多级高速缓存 |
CN101042678A (zh) * | 2006-03-23 | 2007-09-26 | 国际商业机器公司 | 数据处理的单元、***和方法 |
CN104346294A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 基于多级缓存的数据读/写方法、装置和计算机*** |
CN103955435A (zh) * | 2014-04-09 | 2014-07-30 | 上海理工大学 | 一种融合多级缓存目录建立访问方法 |
CN104978283A (zh) * | 2014-04-10 | 2015-10-14 | 华为技术有限公司 | 一种内存访问控制方法,及装置 |
CN108351835A (zh) * | 2015-11-23 | 2018-07-31 | 英特尔公司 | 用于高速缓存控制操作的指令和逻辑 |
CN110955512A (zh) * | 2018-09-27 | 2020-04-03 | 阿里巴巴集团控股有限公司 | 缓存处理方法、装置、存储介质、处理器及计算设备 |
CN111078592A (zh) * | 2019-12-27 | 2020-04-28 | 无锡中感微电子股份有限公司 | 一种低功耗片上***的多级指令缓存 |
Non-Patent Citations (1)
Title |
---|
Pmfs中目录项索引的实现;杨顺等;《计算机应用》;20170510;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112433961A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107102955B (zh) | 用于存储子***的关联和原子回写高速缓冲存储***和方法 | |
US10126964B2 (en) | Hardware based map acceleration using forward and reverse cache tables | |
TWI522802B (zh) | 確保微處理器之快取記憶體層級之資料一致性的裝置與方法 | |
US6901483B2 (en) | Prioritizing and locking removed and subsequently reloaded cache lines | |
US9086991B2 (en) | Solid state drive cache recovery in a clustered storage system | |
US9489239B2 (en) | Systems and methods to manage tiered cache data storage | |
JP4447580B2 (ja) | 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ | |
CN109582214B (zh) | 数据访问方法以及计算机*** | |
US20170192886A1 (en) | Cache management for nonvolatile main memory | |
CN109952565B (zh) | 内存访问技术 | |
US10366011B1 (en) | Content-based deduplicated storage having multilevel data cache | |
US20140237186A1 (en) | Filtering snoop traffic in a multiprocessor computing system | |
US20140372673A1 (en) | Information processing apparatus, control circuit, and control method | |
US20140149685A1 (en) | Memory management using dynamically allocated dirty mask space | |
US7117312B1 (en) | Mechanism and method employing a plurality of hash functions for cache snoop filtering | |
CN111406253A (zh) | 基于存储器结构的一致性目录缓存 | |
US7356650B1 (en) | Cache apparatus and method for accesses lacking locality | |
CN115617709A (zh) | 缓存管理方法及装置、缓存装置、电子装置和介质 | |
JP3929872B2 (ja) | キャッシュメモリ、プロセッサ及びキャッシュ制御方法 | |
CN112433961B (zh) | 复合缓存目录***及其管理方法 | |
KR20220062629A (ko) | 하이브리드 dimm에서의 비휘발성 메모리를 위한 낮은 레이턴시 캐시 | |
US10489300B1 (en) | Increasing caching efficiency using cache data patterns | |
CN112805692A (zh) | 混合式双列直插式存储器模块中的高速缓存操作 | |
US7290106B2 (en) | Method for processor to use locking cache as part of system memory | |
US10740231B2 (en) | Data access in data storage device including storage class 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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40047527 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |