CN119621603B - 一种缓存一致性维护方法、装置和多核系统 - Google Patents
一种缓存一致性维护方法、装置和多核系统 Download PDFInfo
- Publication number
- CN119621603B CN119621603B CN202510167855.1A CN202510167855A CN119621603B CN 119621603 B CN119621603 B CN 119621603B CN 202510167855 A CN202510167855 A CN 202510167855A CN 119621603 B CN119621603 B CN 119621603B
- Authority
- CN
- China
- Prior art keywords
- pointer
- eviction
- directory
- cache
- cache line
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0877—Cache access modes
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
技术领域
本申请属于信息技术领域,尤其涉及一种缓存一致性维护方法、装置和多核系统。
背景技术
在计算机系统中,缓存(Cache)是一种高速存储器,它存储了最近访问过的数据的副本。缓存的作用是减少处理器访问内存(速度较慢)的次数,从而提高系统的运行速度。然而,当多个处理器核(CPU核心)或多个处理器簇(一组核心)共享同一份数据时,保证每个核或簇看到的数据是一致的就是缓存一致性要解决的问题。
为了保持缓存一致性,系统通常采用监听式一致性协议,通过监听机制确保同一份内存数据在不同缓存中的状态一致。然而,随着处理器核数量的增加,监听请求会占据大量的系统总线带宽,导致效率下降。为了解决监听机制的低效问题,设计了一种一致性维护装置,它记录哪些处理器核共享了哪些数据,就不需要频繁地监听总线,而是直接查询一致性维护装置。但是,如果将共享信息记录在二级缓存中,会占用大量空间,而且这些空间在非共享时是闲置的。因此,用一致性维护装置来负责管理共享信息。但是,对于小系统来说,硬件资源有限,一致性维护装置的设计需要在硬件开销和查询效率之间找到平衡。
因此,缓存一致性管理中面临着硬件开销和查询效率无法权衡的问题。
发明内容
本申请公开了一种缓存一致性维护方法、装置和多核系统,通过设置动态阈值和优先级进行动态目录逐出,最大限度保证目录中的可用空间,且适用于小系统,在较小的硬件开销中实现同样的查询精度,提升查询效率降低查询功耗。
本申请的其他目的和优点可以从本申请所揭露的技术特征中得到进一步的了解。
为达上述之一或部分或全部目的或其他目的,第一方面,本申请提供了一种缓存一致性维护方法,方法包括:获取目录的写入指针和逐出指针,其中,写入指针指示目录当前写入的目录地址,逐出指针指示目录当前逐出的目录地址,目录包括缓存行共享信息;
配置紧急阈值和常规阈值,且紧急阈值小于常规阈值;
若写入指针与紧急阈值之和大于逐出指针,设为高优先级,并优先进行目录逐出;若写入指针与紧急阈值之和小于等于逐出指针,且写入指针与常规阈值之和大于逐出指针,设为低优先级,并进行目录逐出;其中,目录逐出表示将目录中最久未使用的缓存行共享信息逐出;
重复上述步骤,直至写入指针与常规阈值之和小于逐出指针。
在一种实现方式中,方法还包括:根据目录的空间大小确定目录地址的最大值,在写入指针与逐出指针达到最大值之后,从0重新开始计数;当逐出指针追上写入指针时,表示目录已全部逐出;当写入指针追上逐出指针时,表示目录被全部占用。
在一种实现方式中,确定目录中最久未使用的缓存行包括:定义已记录过的缓存行位于写入指针之前、逐出指针之后;
在处理器访问缓存行时,若本次使用的缓存行是在目录中已记录过的,将该缓存行共享信息提取并放置于最新写入指针位置,将其余缓存行共享信息的位置前移;若本次使用的缓存行是在目录中未记录过的,将该缓存行共享信息放置于最新写入指针位置,其余缓存行共享信息的位置不变;
确定逐出指针之后的位置为最久未使用的缓存行共享信息。
在一种实现方式中,方法用于维护多核处理器之间数据共享的一致性,在处理器访问缓存行时,目录查询先依据索引值进行匹配,匹配成功后再进行标记值匹配,以确认该缓存行在目录中的缓存行共享信息;其中,缓存行共享信息包括缓存行地址,将缓存行地址低n位展开作为索引值,将缓存行地址剩余高位作为标记值。
在一种实现方式中,每个索引值携带有标志信息,标志信息包括有效位、主机指示位和脏数据位;
在写入缓存行共享信息时,拉高有效位和对应主机指示位,并将处理器编号写入脏数据位,指示当前处理器拥有缓存行副本且存在修改状态;
在接收到读事务时,前往脏数据位指示处理器进行最新数据读取;
在接收到无效事务时,前往主机指示位指示处理器进行无效操作。
在一种实现方式中,在写入指针与紧急阈值之和大于逐出指针情况下,通过拉高仲裁清除位与优先级位,优先逐出;
在写入指针与紧急阈值之和小于等于逐出指针,且写入指针与常规阈值之和大于逐出指针的情况下,通过拉高仲裁清除位且拉低优先级位,进行逐出。
在一种实现方式中,在目录逐出时,继续写入缓存行,以预设逐出速度进行持续逐出,直至写入指针与常规阈值之和小于逐出指针。
第二方面,本申请提供了一种缓存一致性维护装置,所述装置通过上述第一方面任一项所述的缓存一致性维护方法,维护多核处理器之间共享数据的一致性。
第三方面,本申请提供一种多核系统,所述系统包括如第二方面所述的一种缓存一致性维护装置和多个处理器核,所述系统通过上述第一方面任一项所述的缓存一致性维护方法,维护多核处理器之间共享数据的一致性;
所述系统还包括用于同一处理器簇中不同处理器核之间共享的二级缓存、用于多个处理器簇之间共享的三级缓存;所述一致性维护装置包括核间一致性维护装置和簇间一致性维护装置,所述核间一致性维护装置用于在多个处理器核之间维护二级缓存实现核间共享时的数据一致性,所述簇间一致性维护装置用于在多个处理器簇之间维护三级缓存实现簇间共享时的数据一致性。
第四方面,本申请提供了一种电子设备,所述电子设备包括一个或多个处理器;存储器;一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行如第一方面任一项所述的一种缓存一致性维护方法。
上述缓存一致性维护方法、装置、多核系统和电子设备,通过设置动态阈值和优先级进行动态逐出,可以在读取数据和修改数据时,最大限度保证目录中有可用空间去存新的,使得存入目录可以按照目录记录去监听,从而提升查询效率,降低查询功耗;相比于以往以大面积为代价的大目录设计,本申请可以适用于小系统,同样也可以保证目录覆盖,即在较小的硬件开销中实现同样的查询精度,提升查询效率降低查询功耗。
为让本申请的上述和其他目的、特征和优点能更明显易懂,下文特举优选实施例,并配合附图,作详细说明如下。
附图说明
为了更清楚地说明本申请具体实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请缓存一致性维护方法的流程示意图。
图2为本申请多核系统的结构框图。
图3为本申请缓存一致性维护装置的结构框图。
图4为本申请缓存一致性维护方法的判断流程示意图。
具体实施方式
有关本申请的前述及其他技术内容、特点与功效,在以下配合参考图式的一优选实施例的详细说明中,将可清楚的呈现。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。
在相关技术中,一致性维护装置在处理器核以共享方式读取数据时进行标记,在处理器核逐出数据时同步清除标记。一致性维护装置查询方法主要包括分级查询与分组查询。其中,分级查询通过索引值匹配,然后在匹配的索引行中查找标记值进行匹配,在存入时优先选择将索引行中的空闲空间占满,再对同一标记值进行信息整合。该方法需要存储大量索引和标记值,硬件开销大,在目录占满且无相同数据时面临效率降低的问题,并且容易出现多命中的情形。分组查询将查询地址信息分为多块索引值,多块索引值均匹配才代表命中,将多块索引值的命中信息整合作为最终的查询信息,可以在较小的硬件开销下表示更多的缓存地址信息,但由于完整的地址信息之间关联性降低,随之而来的是假命中造成的无效访问。可见,该方法在低硬件开销成本下引入大量索引值,提高了查询效率,但相应的损失了查询精度。
为了在硬件开销和查询效率之间找到平衡,本申请实施例提供了一种缓存一致性维护方法,通过目录式一致性协议和分级查询,通过设置阈值和优先级来动态管理目录,优先淘汰最久未使用或最需要预留空间的位置,适用于多种场景,既能保证查询效率,又能兼顾硬件开销。
下面结合附图,对本申请进行详细描述。
参考图1,本申请实施例提供的一种缓存一致性维护方法,该方法包括:
步骤1:获取目录的写入指针和逐出指针,其中,写入指针指示目录当前写入的目录地址,逐出指针指示目录当前逐出的目录地址,目录地址即在目录中的位置,目录包括缓存行共享信息以表示缓存行的共享状态和位置,缓存行共享信息具体包括缓存行地址、参与共享的处理器主机信息等。
其中,指针计数值不是无限大的,而是一个循环。在本实施例中,根据目录中的空间大小确定目录地址的最大值,在写入指针与逐出指针达到最大值之后,从0重新开始计数。随着使用,当逐出指针追上写入指针时,视为目录已空,表示目录已全部逐出;当写入指针追上逐出指针时,视为目录已满,表示目录被全部占用,从而使得确定的写入指针和逐出指针更为精准。
步骤2:配置紧急阈值和常规阈值,且紧急阈值小于常规阈值,其中,紧急阈值和常规阈值在本文中统称为逐出阈值。
步骤3:若写入指针与紧急阈值之和大于逐出指针,设为高优先级,并优先进行目录逐出;若写入指针与紧急阈值之和小于等于逐出指针,且写入指针与常规阈值之和大于逐出指针,设为低优先级,并进行目录逐出;其中,目录包括缓存行的共享信息,目录逐出表示将目录中最久未使用的缓存行共享信息逐出,即将该缓存行共享信息移除目录。
步骤4:重复上述步骤,直至写入指针与常规阈值之和小于逐出指针。
具体的,在处理器需要读取数据时,首先会查询该数据是否在该缓存中,若数据在该缓存中,则从相应的缓存行中读取数据并返回给处理器。当处理器需要写入数据时,也需要先查询该数据是否在缓存中,若数据在缓存中,则将数据写入缓存行。在读取数据或写入数据时,需要考虑数据的共享一致性,若多个处理器同时写入同一个数据,则需要确保该数据在多个处理器的一致性。而目录则用于维护每个缓存行的一致性状态,跟踪哪些缓存拥有这个缓存行以及这个缓存行的所处状态。本方法通过获取目录的写入指针和逐出指针,配置动态逐出阈值,并实时判断写入指针、逐出阈值、逐出指针之间的关系,优先将目录中最长时间未使用的缓存行共享信息逐出,以提升缓存的性能并最大限度的确保目录中的可用空间。
根据以上说明,本申请实施例的缓存一致性维护方法,通过设置动态阈值和优先级,使得目录逐出的方式更加灵活,可以在读取数据和修改数据时,最大限度保证目录中有可用空间去存新的,存入目录就可以按照目录记录去监听,从而提升了查询效率,降低了查询功耗;相比于以往以大面积为代价的大目录设计,本申请可以适用于小系统,同样也可以保证目录覆盖,即在较小的硬件开销中实现同样的查询精度,提升查询效率降低查询功耗。同时,本申请能够优化动态管理缓存空间,确保缓存的高效利用,避免缓存溢出或数据丢失。
下面结合本申请提供的缓存一致性维护装置和多核系统,对本申请进行详细说明。
参考图2,为本申请实施例的缓存一致性维护装置应用的一种多核系统的结构框图。其中,该多核系统包括多个处理器簇,每个处理器簇包括多个处理器核,该多核系统采用多级缓存架构:每个处理器核使用一级缓存实现独立缓存,同一处理器簇使用二级缓存实现核间共享,多处理器簇使用三级缓存实现簇间共享。图中AXI、ACE和CHI是用于多核系统中互联协议的扩展接口。
本申请实施例的缓存一致性维护装置包括核间一致性维护装置、簇间一致性维护装置,核间一致性维护装置用于在多个处理器核之间确保二级缓存实现核间共享时的数据一致性,簇间一致性维护装置用于在多个处理器簇之间确保三级缓存实现簇间共享时的数据一致性。需要说明的是,为了方便描述,下文针对核间一致性维护装置、簇间一致性维护装置的详细描述,若未特别区分,统一简称为一致性维护装置,下文不再赘述。
本实施例的一致性维护装置为基于分级查询和目录式一致性的装置,同时采用逐出机制管理一致性维护装置的空间。本申请的一致性维护装置为均衡硬件开销,动态将长时间不使用的位置或当前最需要预留空间的位置进行逐出,实现一致性维护装置的高效维护。
具体的,该一致性维护装置在查找过程中,首先进行索引值匹配,成功后在该索引行查找标记值进行匹配。若匹配成功则视为命中,说明当前数据已被共享,需要对指定处理器核进行操作;若匹配失败则视为未命中,说明当前数据未被共享,若二级/三级缓存存在数据可以直接返回,在数据响应返回后,更新一致性维护装置有关该行共享处理器核的信息。同时,本实施例的一致性维护装置,允许用户配置逐出阈值与逐出优先级,在空间裕量小于设定阈值时,自发进行逐出或优先逐出,以适应不同的应用场景,且提高运行效率。
更具体的,参考图1,当处理器簇0中处理器核0需要读取并修改数据,首先查询自身的一级缓存,未命中则查询二级缓存与簇内一致性维护装置,查询是否共享于处理器核1至处理器核n-1中。
若仅二级缓存命中,代表当前数据未被处理器核共享,数据将由二级缓存返回至处理器核0并由簇内一致性维护装置记录独占核。
若全部未命中则查询三级缓存与簇间一致性维护装置,查询是否共享于处理器簇1至处理器簇n-1中。
若仅三级缓存命中,代表当前数据未被处理器簇共享,数据将由三级缓存返回至处理器簇0并由簇间一致性维护装置记录独占簇。
若三级缓存与簇间一致性维护装置均提示命中,代表有其他簇正在共享,需要先对该处理器簇(如处理器簇n-1)进行无效化并将处于修改状态(MESI协议中的Modified状态)缓存行写回主存。按照指示将无效化请求发送给处理器簇n-1,在接收到请求后,查询二级缓存以及簇内一致性维护装置,按照指示将二级/一级缓存中数据无效化并将修改状态数据写回主存,完成请求。
参考图3,为本实施例提供的一致性维护装置的结构框图,该一致性维护装置包括索引值、有效位、标记值、指示。本实施例的一致性维护装置通过分级查询目录,在索引值匹配成功后再进行标记值的匹配,以确认该缓存行在目录中的缓存行共享信息。缓存行共享信息除了携带地址信息的同时,带有三个标志信息(有效位、主机指示位和脏数据位)。其中,索引用于定位缓存行地址,每个缓存行都有一个索引,用于在一致性维护装置中定位该行。图中显示了多个索引值(索引0到索引n-1),每个索引值对应一个缓存行。有效位用于指示是否命中,当前地址行有共享信息记录则保持为高,提示一致性维护装置命中,即有效位能够表示缓存行是否有效,每个缓存行都有一个有效位,用于指示该行是否存储了有效的数据。例如,若有效位为1,则表示该行有效;若为0,则表示该行无效。标记值用于表示缓存行对应的主存块,当处理器访问该缓存行数据时,会使用缓存行地址的标记部分来匹配一致性维护装置中的标记值,以确定数据是否在缓存中。指示用于表示数据的共享状态和修改状态,指示包括主机指示位和脏数据位,主机指示位用于指示命中地址存在于哪几个处理器核/簇,即哪些处理器核或簇拥有该缓存行的副本,脏数据位用于指示命中地址修改状态副本存在于哪个处理器核/簇,即缓存行中的数据是否已被修改(即脏数据),例如,若脏数据位为1,则表示该行数据已被修改,需要在写回主存时更新主存中的数据。当面临脏数据写回事务时,仅需将请求转发至修改状态副本位置,无需转发至所有共享处理器核。
示例性的,当处理器访问数据时,会使用索引值来匹配一致性维护装置中的标记值。如果找到匹配的标记值,并且有效位为1,则表示数据在缓存中,可以直接从缓存中读取数据。通过主机指示位和脏数据位,一致性维护装置可以跟踪数据的共享状态和修改状态。当一个处理器修改了缓存行中的数据时,会设置脏数据位为1,并更新主机指示位以反映数据的共享状态。当缓存行需要被替换时,如果脏数据位为1,则需要将修改后的数据写回主存。一致性维护装置会指示将数据写回到主存中的正确位置。通过主机指示位,一致性维护装置可以跟踪哪些处理器核或簇拥有缓存行的副本。当一个处理器访问数据时,如果主机指示位显示其他处理器核或簇也拥有该缓存行的副本,则需要执行一致性协议来确保所有处理器核或簇看到的数据是一致的。
在一些实施例中,一致性维护装置包括m路,即每个索引值可以存储最多m个不同的标记值。系统进行一致性维护装置信息写入,将缓存行地址低n位展开作为索引值,并将剩余高位按索引值写入该行作为标记值,拉高有效位和对应主机指示位,并将处理器核编号写入脏数据位,指示当前处理器核/簇拥有副本且存在修改状态。当接收到读事务,将前往脏数据位指示处理器核进行最新数据读取;当接收到无效事务,将前往主机指示位指示处理器核进行无效操作。
随着地址不断写入,一致性维护装置最终会面临占满问题。参考图4,为一致性维护装置执行维护方法的判断流程图。一致性维护装置通过写入指针确认写入位置,通过逐出指针确认逐出位置,逐出的对象为最久未使用的缓存行共享信息。
在本实施例中,将每次使用的缓存行共享信息放置于最新写入指针位置,其余缓存行共享信息移动至最新写入指针位置之前,确定最前面的缓存行共享信息作为最久未使用,从而更快速准确的确定逐出对象进行逐出操作。具体地,数据存在的缓存行的共享信息位于写入指针之前、逐出指针之后,这里的之前和之后表示指针移动方向的前后。因此,定义已记录过的缓存行共享信息位于写入指针之前、逐出指针之后;若本次使用的缓存行共享信息是目录中已记录过的,将该缓存行共享信息提取并放置于最新写入指针位置,将其余缓存行共享信息的位置前移;若本次使用的缓存行共享信息是目录未记录过的,将该缓存行共享信息放置于最新写入指针位置,其余缓存行共享信息的位置不变;确定逐出指针之后的位置为最久未使用的缓存行共享信息,确定写入指针之前的位置为最新使用的缓存行共享信息。示例性地,假设目录中有10个缓存行共享信息空间:1-10,若当前写入指针位置为2,逐出指针位置为5,则数据存在于5、6、7、8、9、10、1,下一个数据将存于的位置为2,下一个数据将逐出的位置为5。
在使用开始时通过参数设置两个阈值,即常规阈值和紧急阈值。当处理器核访问缓存行时,判断写入指针与紧急阈值之和是否超出逐出指针,超出代表本索引行的数据写满风险较大,需要拉高仲裁清除位与优先级位,优先进行逐出,逐出数量为1,逐出的过程不影响写入新的,因此实际逐出数量可能大于1,即一直逐出到写入指针与紧急阈值之和小于逐出指针。如果未超出,则判断写入指针与常规阈值之和是否超出逐出指针,超出代表当前裕量(余量)小于常规阈值,需要拉高仲裁清除位,无效数据副本并将其中的修改状态数据写回主存,此时的逐出不设置优先级,同样逐出数量可能大于1,一直逐出到写入指针与常规阈值之和小于逐出指针。
由于存在实时维护功能,一致性维护装置可以保证在相对较小的硬件开销中实现同样的查询精度。同时读操作仅前往修改状态处理器核进行监听,使得访问次数进一步减少。而动态阈值的设置,使得一致性维护装置的逐出方式更加灵活。因此在保持了较少硬件开销的同时,在维护二级/三级缓存一致性带来的优势是更快的查询速度与更小的查询功耗。
综上,本申请的一致性维护装置和多核系统,可以记录缓存行共享信息,维护缓存一致性,降低查询功耗;相较传统分级查询一致性维护装置,保留了查询准确的优点同时兼顾低硬件开销,并允许调整逐出阈值、逐出优先级;相较分组查询一致性维护装置,具有无假命中的优点,对于读操作指示更加明确,减少了非必要的访问次数。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种缓存一致性维护装置,该装置通过上述任一实施例的缓存一致性维护方法,维护多核处理器之间共享数据的一致性。该缓存一致性维护装置解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的缓存一致性维护装置实施例中的具体限定可以参见上文中对于一种缓存一致性维护方法的限定,在此不再赘述。
在一个实施例中,本申请还提供了一种多核系统,该系统包括如上述实施例的一种缓存一致性维护装置和多个处理器核,该系统通过上述任一实施例的缓存一致性维护方法,维护多核处理器之间共享数据的一致性。该系统还包括用于同一处理器簇中不同处理器核之间共享的二级缓存、用于多个处理器簇之间共享的三级缓存;一致性维护装置包括核间一致性维护装置和簇间一致性维护装置,核间一致性维护装置用于在多个处理器核之间维护二级缓存实现核间共享时的数据一致性,簇间一致性维护装置用于在多个处理器簇之间维护三级缓存实现簇间共享时的数据一致性。
在一个实施例中,本申请还提供了一种电子设备,电子设备包括一个或多个处理器;存储器;一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行如上述任一实施例的一种缓存一致性维护方法。
应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求保护的范围内。应当理解,为了清楚起见而在单独实施例的上下文中描述的本公开的某些特征还可以通过组合提供在单个实施例中。相反地,为了清楚起见而在单个实施例的上下文中描述的本公开的各种特征也可以单独地或通过任何合适的组合或作为本公开的任何其它描述的实施例提供。
Claims (10)
1.一种缓存一致性维护方法,其特征在于,所述方法包括:
获取目录的写入指针和逐出指针,其中,所述写入指针指示所述目录当前写入的目录地址,所述逐出指针指示所述目录当前逐出的目录地址,所述目录包括缓存行共享信息,根据所述目录的空间大小确定目录地址的最大值,在所述写入指针与所述逐出指针达到最大值之后,从0重新开始计数;
配置紧急阈值和常规阈值,且所述紧急阈值小于所述常规阈值;
若所述写入指针与紧急阈值之和大于逐出指针,设为高优先级,并优先进行目录逐出;若所述写入指针与紧急阈值之和小于等于逐出指针,且所述写入指针与常规阈值之和大于逐出指针,设为低优先级,并进行目录逐出;其中,所述目录逐出表示将所述目录中最久未使用的缓存行共享信息逐出;
重复上述步骤,直至所述写入指针与所述常规阈值之和小于所述逐出指针。
2.根据权利要求1所述的一种缓存一致性维护方法,其特征在于,所述方法还包括:当所述逐出指针追上所述写入指针时,表示目录已全部逐出;当所述写入指针追上所述逐出指针时,表示目录被全部占用。
3.根据权利要求1所述的一种缓存一致性维护方法,其特征在于,确定所述目录中最久未使用的缓存行包括:定义已记录过的缓存行位于所述写入指针之前、所述逐出指针之后;
在处理器访问缓存行时,若本次使用的缓存行是在所述目录中已记录过的,将该缓存行共享信息提取并放置于最新写入指针位置,将其余缓存行共享信息的位置前移;若本次使用的缓存行是在所述目录中未记录过的,将该缓存行共享信息放置于最新写入指针位置,其余缓存行共享信息的位置不变;
确定所述逐出指针之后的位置为最久未使用的缓存行共享信息。
4.根据权利要求1所述的一种缓存一致性维护方法,其特征在于,所述方法用于维护多核处理器之间数据共享的一致性,在处理器访问缓存行时,目录查询先依据索引值进行匹配,匹配成功后再进行标记值匹配,以确认该缓存行在所述目录中的缓存行共享信息;其中,所述缓存行共享信息包括缓存行地址,将所述缓存行地址低n位展开作为索引值,将所述缓存行地址剩余高位作为标记值。
5.根据权利要求4所述的一种缓存一致性维护方法,其特征在于,每个索引值携带有标志信息,所述标志信息包括有效位、主机指示位和脏数据位;
在写入缓存行共享信息时,拉高有效位和对应主机指示位,并将处理器编号写入脏数据位,指示当前处理器拥有缓存行副本且存在修改状态;
在接收到读事务时,前往脏数据位指示处理器进行最新数据读取;
在接收到无效事务时,前往主机指示位指示处理器进行无效操作。
6.根据权利要求1所述的一种缓存一致性维护方法,其特征在于,在所述写入指针与紧急阈值之和大于逐出指针情况下,通过拉高仲裁清除位与优先级位,优先逐出;
在所述写入指针与紧急阈值之和小于等于逐出指针,且所述写入指针与常规阈值之和大于逐出指针的情况下,通过拉高仲裁清除位且拉低优先级位,进行逐出。
7.根据权利要求6所述的一种缓存一致性维护方法,其特征在于,在目录逐出时,继续写入缓存行,以预设逐出速度进行持续逐出,直至所述写入指针与所述常规阈值之和小于所述逐出指针。
8.一种缓存一致性维护装置,其特征在于,所述装置通过上述权利要求1-7任一项所述的缓存一致性维护方法,维护多核处理器之间共享数据的一致性。
9.一种多核系统,其特征在于,所述系统包括如权利要求8所述的一种缓存一致性维护装置和多个处理器核,所述系统通过上述权利要求1-7任一项所述的缓存一致性维护方法,维护多核处理器之间共享数据的一致性;
所述系统还包括用于同一处理器簇中不同处理器核之间共享的二级缓存、用于多个处理器簇之间共享的三级缓存;所述一致性维护装置包括核间一致性维护装置和簇间一致性维护装置,所述核间一致性维护装置用于在多个处理器核之间维护二级缓存实现核间共享时的数据一致性,所述簇间一致性维护装置用于在多个处理器簇之间维护三级缓存实现簇间共享时的数据一致性。
10.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器;存储器;一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行如权利要求1-7任一项所述的一种缓存一致性维护方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510167855.1A CN119621603B (zh) | 2025-02-17 | 2025-02-17 | 一种缓存一致性维护方法、装置和多核系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510167855.1A CN119621603B (zh) | 2025-02-17 | 2025-02-17 | 一种缓存一致性维护方法、装置和多核系统 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN119621603A CN119621603A (zh) | 2025-03-14 |
| CN119621603B true CN119621603B (zh) | 2025-07-11 |
Family
ID=94908917
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202510167855.1A Active CN119621603B (zh) | 2025-02-17 | 2025-02-17 | 一种缓存一致性维护方法、装置和多核系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN119621603B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120723314B (zh) * | 2025-08-22 | 2026-01-23 | 山东云海国创云计算装备产业创新中心有限公司 | 数据传输系统和方法 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118672942A (zh) * | 2024-08-23 | 2024-09-20 | 山东浪潮科学研究院有限公司 | 一种面向gpgpu多核系统的多级缓存系统及方法 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5404483A (en) * | 1990-06-29 | 1995-04-04 | Digital Equipment Corporation | Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills |
| TW388982B (en) * | 1995-03-31 | 2000-05-01 | Samsung Electronics Co Ltd | Memory controller which executes read and write commands out of order |
| US6934814B2 (en) * | 2002-11-05 | 2005-08-23 | Newisys, Inc. | Cache coherence directory eviction mechanisms in multiprocessor systems which maintain transaction ordering |
| JP2008293484A (ja) * | 2007-04-27 | 2008-12-04 | Panasonic Corp | バッファメモリ共有装置 |
| CN114741335B (zh) * | 2022-04-20 | 2025-06-24 | 腾讯科技(深圳)有限公司 | 缓存管理方法、装置、介质及设备 |
| CN116185886B (zh) * | 2022-12-13 | 2023-10-13 | 中国科学院声学研究所 | 一种匹配表系统 |
-
2025
- 2025-02-17 CN CN202510167855.1A patent/CN119621603B/zh active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118672942A (zh) * | 2024-08-23 | 2024-09-20 | 山东浪潮科学研究院有限公司 | 一种面向gpgpu多核系统的多级缓存系统及方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN119621603A (zh) | 2025-03-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9170946B2 (en) | Directory cache supporting non-atomic input/output operations | |
| US6704843B1 (en) | Enhanced multiprocessor response bus protocol enabling intra-cache line reference exchange | |
| US6601144B1 (en) | Dynamic cache management in a symmetric multiprocessor system via snoop operation sequence analysis | |
| 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 | |
| US10073776B2 (en) | Shadow tag memory to monitor state of cachelines at different cache level | |
| US20230100746A1 (en) | Multi-level partitioned snoop filter | |
| US7194586B2 (en) | Method and apparatus for implementing cache state as history of read/write shared data | |
| US20090300289A1 (en) | Reducing back invalidation transactions from a snoop filter | |
| US6629210B1 (en) | Intelligent cache management mechanism via processor access sequence analysis | |
| US6266743B1 (en) | Method and system for providing an eviction protocol within a non-uniform memory access system | |
| JP2000250812A (ja) | メモリ・キャッシュ・システムおよびその管理方法 | |
| CN113853589B (zh) | 高速缓冲存储器大小改变 | |
| JPH11506852A (ja) | 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減 | |
| US20070214321A1 (en) | Synchronizing recency information in an inclusive cache hierarchy | |
| JP2008525901A (ja) | 共有メモリコンピュータシステムにおける、所有されている複数のキャッシュブロックのライトバックの早期予測 | |
| US7281092B2 (en) | System and method of managing cache hierarchies with adaptive mechanisms | |
| US6721856B1 (en) | Enhanced cache management mechanism via an intelligent system bus monitor | |
| WO2013186694A2 (en) | System and method for data classification and efficient virtual cache coherence without reverse translation | |
| CN119621603B (zh) | 一种缓存一致性维护方法、装置和多核系统 | |
| US8694732B2 (en) | Enhanced coherency tracking with implementation of region victim hash for region coherence arrays | |
| US8473686B2 (en) | Computer cache system with stratified replacement | |
| US6615321B2 (en) | Mechanism for collapsing store misses in an SMP computer system | |
| US20070005899A1 (en) | Processing multicore evictions in a CMP multiprocessor | |
| US9442856B2 (en) | Data processing apparatus and method for handling performance of a cache maintenance operation | |
| KR20090053837A (ko) | 자기 조화형 데이터를 이용하여 멀티프로세서 시스템의 캐시 코히어런스 오버헤드를 저감시키는 메카니즘 및 방법 |
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 |