CN112612726B - 基于缓存一致性的数据存储方法、装置、处理芯片及服务器 - Google Patents
基于缓存一致性的数据存储方法、装置、处理芯片及服务器 Download PDFInfo
- Publication number
- CN112612726B CN112612726B CN202011425513.9A CN202011425513A CN112612726B CN 112612726 B CN112612726 B CN 112612726B CN 202011425513 A CN202011425513 A CN 202011425513A CN 112612726 B CN112612726 B CN 112612726B
- Authority
- CN
- China
- Prior art keywords
- target group
- probe
- probe filter
- transaction request
- filter
- 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/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- 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/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
Abstract
本发明一个或多个实施例公开了一种基于缓存一致性的数据存储方法、装置、处理芯片及服务器,其中,基于缓存一致性的数据存储方法包括:获取向第一探针过滤器发出的第一事务请求,其中,第一事务请求用于请求向第一探针过滤器中的第一目标组中写入第一缓存状态信息,第一缓存状态信息与第一目标组之间具有对应关系;响应于第一目标组中不存在空闲存储位置,向与第一探针过滤器相连的第二探针过滤器发送第一事务请求,以使第二探针过滤器根据第一事务请求将第一缓存状态信息写入第二探针过滤器中的第二目标组中,其中,第二目标组与第一目标组之间预先建立了对应关系。该方法可降低多处理器系统中缓存一致性维护过程中发生降级操作的概率。
Description
技术领域
本发明涉及处理器技术领域,尤其涉及一种基于缓存一致性的数据存储方法、装置、处理芯片及服务器。
背景技术
如今的多处理器和多高速缓存的计算机系统中,高速缓存可以缓存大量数据,这些数据可能是独占的也可能是在不同缓存中保存有相同地址的数据副本。当不同的高速缓存对所缓存的相同的地址的数据进行操作时,会产生一致性问题。为了解决这个问题,出现了众多技术来维护缓存一致性。例如,当多个缓存有相同数据副本时,其中某个处理器需修改某个缓存数据时,该数据在其他缓存的副本将被标记无效,以避免发生一致性错误。在多处理器系统中为了能提高缓存一致性维护的效率,产生了如探针过滤等技术。探针过滤可以帮助追踪多个高速缓存中的缓存状态,例如缓存中只有单一副本、有多个副本、或者该数据只存在主存中等状态。在多处理器和多高速缓存的计算机系统中,现有某些目录式探针过滤器会追踪处理器高速缓存的状态,并把追踪的状态信息存储在探针过滤器中。当一致性代理侦听总线发现一致性事务后,会查询探针过滤中追踪的信息并发出响应的探针完成一致性维护。但目前多处理器系统中缓存一致性维护过程中发生降级操作的概率较高。
发明内容
有鉴于此,本发明一个或多个实施例提供了一种基于缓存一致性的数据存储方法、装置、处理芯片及服务器,可降低多处理器系统中缓存一致性维护过程中发生降级操作的概率。
本发明一个或多个实施例提供了一种基于缓存一致性的数据存储方法,包括:获取向第一探针过滤器发出的存入缓存状态信息的第一事务请求,其中,所述第一事务请求用于请求向所述第一探针过滤器中的第一目标组中写入第一缓存状态信息,所述第一缓存状态信息与所述第一目标组之间具有对应关系;响应于所述第一事务请求映射的所述第一探针过滤器的第一目标组中不存在空闲存储位置,向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求,以使通过所述第二探针过滤器根据响应所述第一事务请求将所述第一缓存状态信息写入所述第二探针过滤器中的第二目标组中,其中,所述第二探针过滤器中的组与所述第一探针过滤器中的组具有映射关系。所述第二目标组与所述第一目标组之间预先建立了对应关系。
可选的,向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求,包括:向与所述第一探针过滤器相连的多个所述第二探针过滤器中的至少一个发送所述第一事务请求。
可选的,向与所述第一探针过滤器相连的多个第二探针过滤器中的至少一个发送所述第一事务请求,包括:根据预设优先级依次向所述多个第二探针过滤器发送所述第一事务请求,直至有所述第二探针过滤器接受所述第一事务请求,或者,直至与所述第一目标组预先建立了对应关系的多个第二目标组中均不存在空闲存储位置时,基于所述第一事务请求触发降级操作。
可选的,所述方法还包括:获取所述第二探针过滤器发送的第二事务请求,其中,所述第二事务请求用于请求向所述第二探针过滤器中的第三目标组中写入第二缓存状态信息,所述第三目标组中已不存在空闲存储位置;确定在所述第一探针过滤器中与所述第三目标组对应的第四目标组中是否存在空闲存储位置,响应于所述第四目标组中存在空闲存储位置,确定将所述第二缓存状态信息写入所述第四目标组中,响应于所述第四目标组中不存在空闲存储位置,拒绝所述第二事务请求。
可选的,所述方法还包括:在向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求之后,将所述第一探针过滤器中的所述第一目标组的共享标志位设置为有效。
可选的,所述方法还包括:获取向所述第一探针过滤器发出的数据查询请求,其中,所述数据查询请求用于请求查询所述第一探针过滤器中的第五目标组中的数据;响应于所述第五目标组的共享标志位有效,向多个所述第二探针过滤器中的至少一个发送所述数据查询请求。
本发明一个或多个实施例提供了一种基于缓存一致性的数据存储装置,包括:第一获取模块,被配置为获取向第一探针过滤器发出的第一事务请求,其中,所述第一事务请求用于请求向所述第一探针过滤器中的第一目标组中写入第一缓存状态信息,所述第一缓存状态信息与所述第一目标组之间具有对应关系;第一发送模块,被配置为响应于所述第一目标组中不存在空闲存储位置,向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求,以使所述第二探针过滤器根据所述第一事务请求将所述第一缓存状态信息写入所述第二探针过滤器中的第二目标组中,其中,所述第二目标组与所述第一目标组之间预先建立了对应关系
可选的,所述第一发送模块具体被配置为:向与所述第一探针过滤器相连的多个第二探针过滤器中的至少一个发送所述第一事务请求。
可选的,所述第一发送模块具体被配置为:根据预设优先级依次向所述多个第二探针过滤器发送所述第一事务请求,直至有所述第二探针过滤器接受所述第一事务请求,或者,直至与所述第一目标组预先建立了对应关系的多个第二目标组中均不存在空闲存储位置时,基于所述第一事务请求触发降级操作。
可选的,所述装置还包括:第二获取模块,被配置为获取所述第二探针过滤器发送的第二事务请求,其中,所述第二事务请求用于请求向所述第二探针过滤器中的第三目标组中写入第二缓存状态信息,所述第三目标组中已不存在空闲存储位置;确定模块,被配置为确定在所述第一探针过滤器中与所述第三目标组对应的第四目标组中是否存在空闲存储位置,响应于所述第四目标组中存在空闲存储位置,确定将所述第二缓存状态信息写入所述第四目标组中,响应于所述第四目标组中不存在空闲存储位置,拒绝所述第二事务请求。
可选的,所述装置还包括:设置模块,被配置为在向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求之后,将所述第一探针过滤器中的所述第一目标组的共享标志位设置为有效。
可选的,所述装置还包括:第三获取模块,被配置为获取向所述第一探针过滤器发出的数据查询请求,其中,所述数据查询请求用于请求查询所述第一探针过滤器中的第五目标组中的数据;第二发送模块,被配置为响应于所述第五目标组的共享标志位有效,向多个所述第二探针过滤器中的至少一个发送所述数据查询请求。
本发明一个或多个实施例提供了一种处理器芯片,包括:至少一个处理器核心、缓存;所述处理器核心,用于执行上述任意一种基于缓存一致性的数据存储方法。
本发明一个或多个实施例提供了一种服务器,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;所述处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行上述任意一种基于缓存一致性的数据存储方法。
本发明一个或多个实施例提供的基于缓存一致性的数据存储方法,在第一探针过滤器接收到用于请求向第一探针过滤器中的第一目标组中写入第一缓存状态信息的第一事务请求后,若第一目标组中不存在空闲存储位置时,可将第一事务请求发送至与第一探针过滤器相连的第二探针过滤器,第二探针过滤器可将第一缓存状态信息写入与第一目标组具有对应关系的第二探针过滤器的第二目标组中从而实现了不同探针过滤器之间存储器的共享,提高了探针过滤器中空闲组的利用率。基于此,在第一探针过滤器接收到第一事务请求后,即使该事务请求所请求写入的缓存状态信息所对应的第一目标组中已经不存在空闲存储位置,还可通过与第一探针过滤器相连的其他探针过滤器来响应该事务请求,而无需触发降级操作,从而可降低多处理器系统中缓存一致性维护过程中发生降级操作的概率,减少了由于降级操作带来的互联总线的带宽消耗和访问延时。在某些降级操作较为频繁的场景中,可以提高处理器的整体性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是根据相关技术示出的一种多处理器多缓存系统的示意图;
图2是根据本发明一个或多个实施例示出的一种基于缓存一致性的数据存储方法的流程图;
图3是根据本发明一个或多个实施例示出的一种多处理器多缓存系统的示意图
图4是根据本发明一个或多个实施例示出的探针过滤器中的组结构之间进行数据共享的示意图;
图5是根据本发明一个或多个实施例示出的一种基于缓存一致性的数据存储装置的框图;
图6是根据本发明一个或多个实施例示出的一种处理器芯片的结构示意图;
图7是根据本发明一个或多个实施例示出的一种服务器的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1是根据本发明一个或多个实施例示出的一种多处理器多缓存系统的示意图,在该系统中探针过滤器用于维护缓存一致性,探针过滤器以目录式探针过滤器为例进行说明,目录式探针过滤器中储存的追踪信息多以组相联模式存储,每一组含有多路数据。一个新的事务需要向探针过滤器中存入缓存状态信息时,探针过滤器将该事务的事务数据放入该事务映射的组中。如果此时,该组的各路都被缓存状态信息占用时,就需要将其中一个缓存状态信息从探针过滤器中驱逐出去,探针过滤器此时会向相应高速缓存发送探针,将相应缓存从高速缓存中驱逐出来写回内存中(该过程称为降级(downgrade))。但是,降级不是由处理器主动发出的,所以如果处理器可能需要访问被驱逐的缓存,此时又需要将该数据从内存中读出来,而重新从内存读取该数据还需要写入探针过滤器。这样的过程会增加访问延时并占用总线资源,并且可能会触发新的降级过程。
由于相关技术中,探针过滤器组相联存储模式中每组的存储容量有限,在存储信息不均匀的情况下容易出现降级问题。因此,本发明提出了一种基于缓存一致性的数据存储方法,图2是根据本发明一个或多个实施例示出的基于缓存一致性的数据存储方法的流程图,在本发明的一个或多个实施例中,探针过滤器之间可共享存储器,以图3所示的多处理器多缓存系统为例,探针过滤器1与探针过滤器2之间增加了访问接口,二者可通过该访问接口进行数据交互,本发明一个或多个实施例的基于缓存一致性的数据存储方法可由该系统中的探针过滤器1或探针过滤器2执行,或者,探针过滤器1以及探针过滤器2均可执行该方法,如图2所示,该方法包括:
步骤201:获取向第一探针过滤器发出的第一事务请求,其中,所述第一事务请求用于请求向所述第一探针过滤器中的第一目标组中写入第一缓存状态信息;
仍以图2所示为例,假设第一探针过滤器为图2中所示的探针过滤器1,该探针过滤器1接收到了第一事务请求,请求将第一缓存状态信息写入探针过滤器1相应的组中。以组相联式目录探针器为例,在组相联式目录探针过滤器中,将Cache分成2^u组,每组包含2^v块,主存块存放到哪个组是固定的,至于存到该组哪一块则是灵活的。即主存的某块只能映射到Cache的特定组中的任意一块。主存的某块b与Cache的组k之间满足以下关系:k=b%(2^u)。故在上述步骤201中第一缓存状态信息与第一探针过滤器中的某一组对应,以下称该组为第一目标组。步骤202:响应于所述第一目标组中不存在空闲存储位置,向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求,以使所述第二探针过滤器根据所述第一事务请求将所述第一缓存状态信息写入所述第二探针过滤器中的第二目标组中,其中,所述第二目标组与所述第一目标组之间预先建立了对应关系。
仍以图2所示为例,假设第二探针过滤器为图2中所示的探针过滤器2,当探针过滤器1确定出第一缓存状态信息对应的第一目标组为探针过滤器1中的组0。假设该组0中已无空闲存储位置,则将第一事务请求发送至探针过滤器2。探针过滤器2中的组与探针过滤器1中的组之间预先建立了对应关系,假设探针过滤器2中与探针过滤器1中的组0具有对应关系的组为组1,则在探针过滤器2接收到该第一事务请求后,首先需确定探针过滤器2中的组1中是否存在空闲存储位置,若存在空闲存储位置,则探针过滤器2接收探针过滤器1发送的第一事务请求,并将该第一事务请求对应的事务数据写入探针过滤器2的组1中,若探针过滤器的组1中不存在空闲存储位置,则拒绝探针过滤器1发送的第一事务请求。探针过滤器1接收到探针过滤器2的拒绝第一事务请求的消息后,可向与探针过滤器1相连的其他探针过滤器中的至少一个发送该第一事务请求,以通过与探针过滤器1相连的其他探针过滤器来响应该第一事务请求。需要说明的是,图3中仅示出了与探针过滤器1相连的一个探针过滤器2的一种情况。而在本发明的一个或多个实施例中第一探针过滤器可与多个第二探针过滤器相连。
可选的,可预先建立第一探针过滤器中的各组与第二探针过滤器中的各组之间的对应关系,其中,一个组可与不同探针过滤器中的多个组之间建立映射关系。或者,在第一探针过滤器中的组的个数与第二探针过滤器中的组的个数一致时,还可默认相同编号的组之间具有对应关系。
本发明一个或多个实施例提供的基于缓存一致性的数据存储方法,在第一探针过滤器接收到用于请求向第一探针过滤器中的第一目标组中写入第一缓存状态信息的第一事务请求后,若第一目标组中不存在空闲存储位置时,可将第一事务请求发送至与第一探针过滤器相连的第二探针过滤器,第二探针过滤器可将第一缓存状态信息写入与第一目标组具有对应关系的第二探针过滤器的第二目标组中从而实现了不同探针过滤器之间存储器的共享,提高了探针过滤器中空闲组的利用率。基于此,在第一探针过滤器接收到第一事务请求后,即使该事务请求所请求写入的缓存状态信息所对应的第一目标组中已经不存在空闲存储位置,还可通过与第一探针过滤器相连的其他探针过滤器来响应该事务请求,而无需触发降级操作,从而可降低多处理器系统中缓存一致性维护过程中发生降级操作的概率,减少了由于降级操作带来的互联总线的带宽消耗和访问延时。在某些降级操作较为频繁的场景中,可以提高处理器的整体性能。
在本发明的一个或多个实施例中,向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求,可包括:向多个所述第二探针过滤器中的至少一个发送所述第一事务请求。例如,第一探针过滤器中可设置有一个控制模块,在向与第一探针过滤器相连的多个第二探针过滤器中的至少一个发送第一事务请求时,可由该控制模块根据预先设置的多个第二探针过滤器的优先级将第一事务请求发送给优先级最高的第二探针过滤器。假设与第一缓存状态信息对应的第一探针过滤器中的组为组0,该组0与第二探针过滤器中的组0具有对应关系。若第二探针过滤器中的组0中仍不存在空闲存储位置,则控制模块根据上述优先级将第一事务请求发送至优先级次高的第二探针过滤器,依次类推,直到某一第二探针过滤器中与第一探针过滤器的组0对应的组中具有空闲存储位置。
在本发明的一个或多个实施例中,探针过滤器之间相连指的是探针过滤器之间具有访问接口,以使得探针过滤器之间可以进行数据交互,例如,可通过在探针过滤器之间增加访问接口对应的电路来建立探针过滤器之间的访问接口,由于访问接口对应的电路结构较为简单,故,对已有电路的改造较小,所需操作较为简单。
在本发明的一个或多个实施例中,根据预设优先级依次向所述多个第二探针过滤器发送所述第一事务请求,直至有所述第二探针过滤器接受所述第一事务请求,或者,直至与所述第一目标组预先建立了对应关系的多个第二目标组中均不存在空闲存储位置时,基于所述第一事务请求触发降级操作。举例说明,假设与所述第一缓存状态信息对应的组为第一探针过滤器中的组1,而与该组1具有对应关系组可以是上述多个第二探针过滤器中所有与该组1具有对应关系的组,故,在本实施例中,在这些组中均不存在空闲存储位置,即均存储满了之后,再基于第一事务请求触发降级操作,可见,降级操作的触发概率较低。
在本发明的一个或多个实施例中,上述基于缓存一致性的数据存储方法还可包括:获取所述第二探针过滤器发送的第二事务请求,其中,所述第二事务请求用于请求向所述第二探针过滤器中的第三目标组中写入第二缓存状态信息,所述第三目标组中已不存在空闲存储位置;确定在所述第一探针过滤器中与所述第三目标组对应的第四目标组中是否存在空闲存储位置,响应于所述第四目标组中存在空闲存储位置,确定将所述第二缓存状态信息写入所述第四目标组中,响应于所述第四目标组中不存在空闲存储位置,拒绝所述第二事务请求。在本实施例中,是第二探针过滤器在接收到用于向该第二探针过滤器存入缓存状态信息的第二事务请求后,发现该第二缓存状态信息对应的的第三目标组中不存在空闲存储位置,从而将第二事务请求发送至第一探针过滤器,以经过第一探针过滤器响应该第二事务请求,若第一探针过滤器中的第四目标组中不存在空闲存储位置,拒绝所述第二事务请求,则第二探针过滤器可继续向与其相连的其他探针过滤器发送该第二事务请求,直到成功将第二事务请求对应的缓存状态信息写入与所述第二探针过滤器相连的某一探针过滤器,或者,直到与其他第二探针过滤器中与第三目标组具有映射关系组中均不存在空闲存储位置,触发降级操作。
在本发明的一个或多个实施例中,上述基于缓存一致性的数据存储方法还可包括:在向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求之后,将所述第一探针过滤器中的所述第一目标组的共享标志位设置为有效。在第一探针过滤器中,可预先增加了用于表示第一探针过滤器是否有数据存储在其他探针过滤器的共享标志位,例如,当需要查询第一探针过滤器中的组0中的信息时发现该组的共享标志位有效,则说明有数据存储于与第一探针过滤器相连的第二探针过滤器中。
在本发明的一个或多个实施例中,上述基于缓存一致性的数据存储方法还可包括:获取向所述第一探针过滤器发出的数据查询请求,其中,所述数据查询请求用于请求查询所述第一探针过滤器中的第五目标组中的数据;以图4所示为例,在图4中,探针过滤器0(为上述第一探针过滤器的一个示例)与探针过滤器1(为上述第二探针过滤器的一个示例)之间具有访问接口,二者的组之间预先建立有对应关系,该对应关系例如可以存储于各自的映射模块中,例如,获取的数据查询请求用于查询探针过滤器0中的组0中的数据。响应于所述第五目标组的共享标志位有效,向多个所述第二探针过滤器中的至少一个发送所述数据查询请求,例如,可以以预设优先级依次向优先级由高到低的第二探针过滤器发送数据查询请求,直至有第二探针过滤器返回所需查询的数据。仍以图4为例,组0的共享标志位有效,则说明需要查询的数据被存储于探针过滤器1中与探针过滤器0的组0具有对应关系的组中,如图4所示,本该存储于探针过滤器0的组0数据存储于探针过滤器1的组0中,基于此,可将该数据查询请求发送至探针过滤器1,探针过滤器1在接收到该数据查询请求后,返回对应于该数据查询请求的共享数据,需要说明的是,在本发明的一个或多个实施例中,原本应该存储于某一探针过滤器的组中的数据由于该组中不存在空闲存储位置而被存储于其他探针过滤器中的数据被称为共享数据。
在本发明的一个或多个实施例中,对于某一事务请求,该事务请求用于请求将事务数据写入第一探针过滤器中的第一目标组,若该第一目标组中不存在空闲存储位置,且与该组具有对应关系的第二探针过滤器中的组中都不存在空闲存储位置时,该事务请求则进行降级操作,其中,降级操作所涉及的数据包括共享数据。
本发明一个或多个实施例的基于缓存一致性的数据存储方法,由于探针过滤器存储的缓存信息通常不会完全填满探针过滤器所有的组,发生容量冲突导致降级的组属于少数组,所以将探针过滤器的存储器进行共享可以有效减少由于组的容量限制发生的降级操作,且减少降级带来的访问延时和互联资源占用。
在本发明的一个或多个实施例的基于缓存一致性的数据存储方法中,是否启用探针过滤器之间的存储器的共享功能是可以设置的,例如,可通过设置命令的内容,确定启用或不启用存储器的共享功能,在根据设置命令确定不启用存储器的共享功能时,探针过滤器按照其原有的方式进行数据存储,不影响探针过滤器原有的功能,在根据设置命令确定启用额外存储器之间的共享功能时,即可按照上述记载数据存储方法执行。
图5是根据本发明一个或多个实施例示出的一种基于缓存一致性的数据存储装置的结构示意图,如图5所示,该装置50包括:
第一获取模块51,被配置为获取向第一探针过滤器发出的第一事务请求,其中,所述第一事务请求用于请求向所述第一探针过滤器中的第一目标组中写入第一缓存状态信息,所述第一缓存状态信息与所述第一目标组之间具有对应关系;
第一发送模块52,被配置为响应于所述第一目标组中不存在空闲存储位置,向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求,以使所述第二探针过滤器根据所述第一事务请求将所述第一缓存状态信息写入所述第二探针过滤器中的第二目标组中,其中,所述第二目标组与所述第一目标组之间预先建立了对应关系。
在本发明的一个或多个实施例中,所述第一发送模块具体可被配置为:根据预设优先级依次向所述多个第二探针过滤器发送所述第一事务请求,直至有所述第二探针过滤器接受所述第一事务请求,或者,直至与所述第一目标组预先建立了对应关系的多个第二目标组中均不存在空闲存储位置时,基于所述第一事务请求触发降级操作。在本发明的一个或多个实施例中,所述基于缓存一致性的数据存储装置还可包括:第二获取模块,被配置为获取所述第二探针过滤器发送的第二事务请求,其中,所述第二事务请求用于请求向所述第二探针过滤器中的第三目标组中写入第二缓存状态信息,所述第三目标组中已不存在空闲存储位置;确定模块,被配置为确定在所述第一探针过滤器中与所述第三目标组对应的第四目标组中是否存在空闲存储位置,响应于所述第四目标组中存在空闲存储位置,确定将所述第二缓存状态信息写入所述第四目标组中,响应于所述第四目标组中不存在空闲存储位置,拒绝所述第二事务请求。
在本发明的一个或多个实施例中,所述基于缓存一致性的数据存储装置还可包括:
设置模块,被配置为在向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求之后,将所述第一探针过滤器中的所述第一目标组的共享标志位设置为有效。
在本发明的一个或多个实施例中,所述基于缓存一致性的数据存储装置还可包括:第三获取模块,被配置为获取向所述第一探针过滤器发出的数据查询请求,其中,所述数据查询请求用于请求查询所述第一探针过滤器中的第五目标组中的数据;第二发送模块,被配置为响应于所述第五目标组的共享标志位有效,向多个所述第二探针过滤器中的至少一个发送所述数据查询请求。
本发明一个或多个实施例还提供了一种处理器芯片,图6是根据本发明一个或多个实施例示出的一种处理芯片的示意图,如图6所示,该处理芯片60包括:至少一个处理器核心61以及缓存62;所述处理器核心61,用于执行上述任意一种基于缓存一致性的数据存储方法。
本发明一个或多个实施例还提供了一种服务器,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为所述服务器的各个电路或器件供电;存储器用于存储可执行程序代码;所述处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行上述任意一种基于缓存一致性的数据存储方法。
相应的,如图7所示,本发明一个或多个实施例提供的服务器,可以包括:壳体71、处理器72、存储器73、电路板74和电源电路75,其中,电路板74安置在壳体71围成的空间内部,处理器72和存储器73设置在电路板74上;电源电路75,用于为所述服务器的各个电路或器件供电;存储器73用于存储可执行程序代码;处理器72通过读取存储器73中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述实施例提供的任一种基于缓存一致性的数据存储方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种基于缓存一致性的数据存储方法,其特征在于,包括:
获取向第一探针过滤器发出的第一事务请求,其中,所述第一事务请求用于请求向所述第一探针过滤器中的第一目标组中写入第一缓存状态信息,所述第一缓存状态信息与所述第一目标组之间具有对应关系;
响应于所述第一目标组中不存在空闲存储位置,向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求,以使所述第二探针过滤器根据所述第一事务请求将所述第一缓存状态信息写入所述第二探针过滤器中的第二目标组中,其中,所述第二目标组与所述第一目标组之间预先建立了对应关系。
2.根据权利要求1所述的方法,其特征在于,向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求,包括:
向与所述第一探针过滤器相连的多个所述第二探针过滤器中的至少一个发送所述第一事务请求。
3.根据权利要求2所述的方法,其特征在于,向与所述第一探针过滤器相连的多个第二探针过滤器中的至少一个发送所述第一事务请求,包括:
根据预设优先级依次向所述多个第二探针过滤器发送所述第一事务请求,直至有所述第二探针过滤器接受所述第一事务请求,或者,直至与所述第一目标组预先建立了对应关系的多个第二目标组中均不存在空闲存储位置时,基于所述第一事务请求触发降级操作。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述第二探针过滤器发送的第二事务请求,其中,所述第二事务请求用于请求向所述第二探针过滤器中的第三目标组中写入第二缓存状态信息,所述第三目标组中已不存在空闲存储位置;
确定在所述第一探针过滤器中与所述第三目标组对应的第四目标组中是否存在空闲存储位置,响应于所述第四目标组中存在空闲存储位置,确定将所述第二缓存状态信息写入所述第四目标组中,响应于所述第四目标组中不存在空闲存储位置,拒绝所述第二事务请求。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求之后,将所述第一探针过滤器中的所述第一目标组的共享标志位设置为有效。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取向所述第一探针过滤器发出的数据查询请求,其中,所述数据查询请求用于请求查询所述第一探针过滤器中的第五目标组中的数据;
响应于所述第五目标组的共享标志位有效,向多个所述第二探针过滤器中的至少一个发送所述数据查询请求。
7.一种基于缓存一致性的数据存储装置,其特征在于,包括:
第一获取模块,被配置为获取向第一探针过滤器发出的第一事务请求,其中,所述第一事务请求用于请求向所述第一探针过滤器中的第一目标组中写入第一缓存状态信息,所述第一缓存状态信息与所述第一目标组之间具有对应关系;
第一发送模块,被配置为响应于所述第一目标组中不存在空闲存储位置,向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求,以使所述第二探针过滤器根据所述第一事务请求将所述第一缓存状态信息写入所述第二探针过滤器中的第二目标组中,其中,所述第二目标组与所述第一目标组之间预先建立了对应关系。
8.根据权利要求7所述的装置,其特征在于,所述第一发送模块具体被配置为:
向与所述第一探针过滤器相连的多个第二探针过滤器中的至少一个发送所述第一事务请求。
9.根据权利要求8所述的装置,其特征在于,所述第一发送模块具体被配置为:
根据预设优先级依次向所述多个第二探针过滤器发送所述第一事务请求,直至有所述第二探针过滤器接受所述第一事务请求,或者,直至与所述第一目标组预先建立了对应关系的多个第二目标组中均不存在空闲存储位置时,基于所述第一事务请求触发降级操作。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二获取模块,被配置为获取所述第二探针过滤器发送的第二事务请求,其中,所述第二事务请求用于请求向所述第二探针过滤器中的第三目标组中写入第二缓存状态信息,所述第三目标组中已不存在空闲存储位置;
确定模块,被配置为确定在所述第一探针过滤器中与所述第三目标组对应的第四目标组中是否存在空闲存储位置,响应于所述第四目标组中存在空闲存储位置,确定将所述第二缓存状态信息写入所述第四目标组中,响应于所述第四目标组中不存在空闲存储位置,拒绝所述第二事务请求。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
设置模块,被配置为在向与所述第一探针过滤器相连的第二探针过滤器发送所述第一事务请求之后,将所述第一探针过滤器中的所述第一目标组的共享标志位设置为有效。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第三获取模块,被配置为获取向所述第一探针过滤器发出的数据查询请求,其中,所述数据查询请求用于请求查询所述第一探针过滤器中的第五目标组中的数据;
第二发送模块,被配置为响应于所述第五目标组的共享标志位有效,向多个所述第二探针过滤器中的至少一个发送所述数据查询请求。
13.一种处理器芯片,其特征在于,包括:至少一个处理器核心、缓存;
所述处理器核心,用于执行权利要求1-6中任一项所述的基于缓存一致性的数据存储方法。
14.一种服务器,其特征在于,包括:
壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为所述服务器的各个电路或器件供电;存储器用于存储可执行程序代码;所述处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行权利要求1-6中任一项所述的基于缓存一致性的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011425513.9A CN112612726B (zh) | 2020-12-08 | 2020-12-08 | 基于缓存一致性的数据存储方法、装置、处理芯片及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011425513.9A CN112612726B (zh) | 2020-12-08 | 2020-12-08 | 基于缓存一致性的数据存储方法、装置、处理芯片及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112612726A CN112612726A (zh) | 2021-04-06 |
CN112612726B true CN112612726B (zh) | 2022-09-27 |
Family
ID=75229354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011425513.9A Active CN112612726B (zh) | 2020-12-08 | 2020-12-08 | 基于缓存一致性的数据存储方法、装置、处理芯片及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612726B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227674A (zh) * | 2015-06-01 | 2016-12-14 | Arm 有限公司 | 缓存一致性 |
CN109154911A (zh) * | 2016-06-23 | 2019-01-04 | 超威半导体公司 | 用于监视高速缓存行在不同的高速缓存级下的状态的阴影标签存储器 |
CN111669786A (zh) * | 2020-04-20 | 2020-09-15 | 北京捷通华声科技股份有限公司 | 一种数据缓存方法和装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6810467B1 (en) * | 2000-08-21 | 2004-10-26 | Intel Corporation | Method and apparatus for centralized snoop filtering |
US6934814B2 (en) * | 2002-11-05 | 2005-08-23 | Newisys, Inc. | Cache coherence directory eviction mechanisms in multiprocessor systems which maintain transaction ordering |
US7305524B2 (en) * | 2004-10-08 | 2007-12-04 | International Business Machines Corporation | Snoop filter directory mechanism in coherency shared memory system |
US7577794B2 (en) * | 2004-10-08 | 2009-08-18 | International Business Machines Corporation | Low latency coherency protocol for a multi-chip multiprocessor system |
US7376793B2 (en) * | 2005-07-21 | 2008-05-20 | Sun Microsystems, Inc. | Cache coherence protocol with speculative writestream |
US8185695B2 (en) * | 2008-06-30 | 2012-05-22 | Advanced Micro Devices, Inc. | Snoop filtering mechanism |
CN101692229B (zh) * | 2009-07-28 | 2012-06-20 | 武汉大学 | 基于数据内容的三维空间数据自适应多级缓存系统 |
CN103229152B (zh) * | 2010-11-26 | 2016-10-19 | 国际商业机器公司 | 高速缓存一致性控制方法、系统和程序 |
US8732410B2 (en) * | 2010-12-07 | 2014-05-20 | Advanced Micro Devices, Inc. | Method and apparatus for accelerated shared data migration |
US11237965B2 (en) * | 2014-12-31 | 2022-02-01 | Arteris, Inc. | Configurable snoop filters for cache coherent systems |
US9864687B2 (en) * | 2015-07-01 | 2018-01-09 | Samsung Electronics Co., Ltd. | Cache coherent system including master-side filter and data processing system including same |
US10157133B2 (en) * | 2015-12-10 | 2018-12-18 | Arm Limited | Snoop filter for cache coherency in a data processing system |
US10282297B2 (en) * | 2017-02-08 | 2019-05-07 | Arm Limited | Read-with overridable-invalidate transaction |
US10789175B2 (en) * | 2017-06-01 | 2020-09-29 | Mellanox Technologies Ltd. | Caching policy in a multicore system on a chip (SOC) |
US10671148B2 (en) * | 2017-12-21 | 2020-06-02 | Advanced Micro Devices, Inc. | Multi-node system low power management |
CN110221985B (zh) * | 2019-06-06 | 2021-04-23 | 成都海光集成电路设计有限公司 | 跨芯片维护缓存一致性策略的装置与方法 |
-
2020
- 2020-12-08 CN CN202011425513.9A patent/CN112612726B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227674A (zh) * | 2015-06-01 | 2016-12-14 | Arm 有限公司 | 缓存一致性 |
CN109154911A (zh) * | 2016-06-23 | 2019-01-04 | 超威半导体公司 | 用于监视高速缓存行在不同的高速缓存级下的状态的阴影标签存储器 |
CN111669786A (zh) * | 2020-04-20 | 2020-09-15 | 北京捷通华声科技股份有限公司 | 一种数据缓存方法和装置 |
Non-Patent Citations (2)
Title |
---|
共享存储可重构计算机软硬件通信的优化实现;荀长庆等;《计算机研究与发展》;20130815(第08期);全文 * |
多核处理器验证中存储数据错误快速定位机制;周宏伟等;《国防科技大学学报》;20121228(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112612726A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10402327B2 (en) | Network-aware cache coherence protocol enhancement | |
US8015365B2 (en) | Reducing back invalidation transactions from a snoop filter | |
US7434008B2 (en) | System and method for coherency filtering | |
US6826651B2 (en) | State-based allocation and replacement for improved hit ratio in directory caches | |
US20150058570A1 (en) | Method of constructing share-f state in local domain of multi-level cache coherency domain system | |
US7502895B2 (en) | Techniques for reducing castouts in a snoop filter | |
CN111143244B (zh) | 计算机设备的内存访问方法和计算机设备 | |
US6560681B1 (en) | Split sparse directory for a distributed shared memory multiprocessor system | |
CN107341114B (zh) | 一种目录管理的方法、节点控制器和系统 | |
CN103744799A (zh) | 一种内存数据访问方法、装置和系统 | |
JPH10154100A (ja) | 情報処理システム及び装置及びその制御方法 | |
KR101087811B1 (ko) | 캐시 라인 소유권 이전 방법 및 캐시 라인 소유권 이전 장치 | |
US7325102B1 (en) | Mechanism and method for cache snoop filtering | |
WO2016131175A1 (zh) | 多核系统中数据访问者目录的访问方法及设备 | |
CN112463652B (zh) | 基于缓存一致性的数据处理方法、装置、处理芯片及服务器 | |
CN112612726B (zh) | 基于缓存一致性的数据存储方法、装置、处理芯片及服务器 | |
CN114238171B (zh) | 电子设备、数据处理方法和装置、计算机系统 | |
US8799587B2 (en) | Region coherence array for a mult-processor system having subregions and subregion prefetching | |
US6813694B2 (en) | Local invalidation buses for a highly scalable shared cache memory hierarchy | |
CN110221985B (zh) | 跨芯片维护缓存一致性策略的装置与方法 | |
US6826655B2 (en) | Apparatus for imprecisely tracking cache line inclusivity of a higher level cache | |
CN114238165B (zh) | 数据处理方法、数据处理装置以及存储介质 | |
US20230100746A1 (en) | Multi-level partitioned snoop filter | |
CN116049031A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
JP3340047B2 (ja) | マルチプロセッサシステムおよび複製タグの制御方法 |
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 |