CN110221985A - 跨芯片维护缓存一致性策略的装置与方法 - Google Patents

跨芯片维护缓存一致性策略的装置与方法 Download PDF

Info

Publication number
CN110221985A
CN110221985A CN201910493282.6A CN201910493282A CN110221985A CN 110221985 A CN110221985 A CN 110221985A CN 201910493282 A CN201910493282 A CN 201910493282A CN 110221985 A CN110221985 A CN 110221985A
Authority
CN
China
Prior art keywords
chip
main equipment
memory
address
caching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910493282.6A
Other languages
English (en)
Other versions
CN110221985B (zh
Inventor
王海洋
姜莹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Haiguang Integrated Circuit Design Co Ltd
Original Assignee
Chengdu Haiguang Integrated Circuit Design 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 Chengdu Haiguang Integrated Circuit Design Co Ltd filed Critical Chengdu Haiguang Integrated Circuit Design Co Ltd
Priority to CN201910493282.6A priority Critical patent/CN110221985B/zh
Publication of CN110221985A publication Critical patent/CN110221985A/zh
Application granted granted Critical
Publication of CN110221985B publication Critical patent/CN110221985B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

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所示共享内存的芯片0和芯片1的硬件框图,图1中芯片0上有两个需要做缓存一致性的主设备CM0和CM1,芯片1上也有两个需要做缓存一致性的主设备CM2和CM3。同时,芯片0和芯片1上各有一个内存内存0、内存1。假设CM1缓存了内存1的地址,当CM0要读内存1地址时,CM0会将读请求发到芯片1上内存1的控制装置DDRC。DDRC发现CM0要访问的地址在CM1中有缓存,那么DDRC会给CM1发探测信息,让CM1把数据写给CM0。从上述进行缓存一致性操作的过程可发现存在以下不足:
1)探测信息跨越了芯片1,因而会增加探测信息响应的延时;
2)跨芯片的探测信息会占用其他数据的带宽,影响整个***的性能。
发明内容
有鉴于此,本发明的目的在于提供一种跨芯片维护缓存一致性策略的装置与方法,能减少跨芯片维护缓存一致性策略时探测信息响应的延时,并且减少芯片间总线上探测信息的带宽。
第一方面,本发明实施例提供了一种跨芯片维护缓存一致性策略的装置,包括:
第一探测过滤器模块,设置在第一芯片的接口处,用于在监测到第二芯片的第一主设备发送的读所述第一芯片的内存的请求时,若判断获知所述第一芯片的内存的地址存储在所述第二芯片的任一第二主设备的缓存中,则通过所述第二芯片的第二探测过滤器模块向该任一第二主设备发送探测信息,以使该任一第二主设备根据所述探测信息将所述第一芯片的内存的地址写入所述第一主设备的缓存中,其中,所述第一芯片和第二芯片共享内存,所述第一主设备和第二主设备需要维护缓存一致性策略。
第二方面,本发明实施例还提供了一种跨芯片维护缓存一致性策略的装置,包括:
第二探测过滤器模块,设置在第二芯片中,用于接收设置在第一芯片的接口处的第一探测过滤器模块发送的探测信息,并将所述探测信息发送给相应的主设备,记该主设备为第二主设备,以使该第二主设备根据所述探测信息将所述第一芯片的内存的地址写入第一主设备的缓存中,其中,所述第一芯片和第二芯片共享内存,所述第一主设备和该第二主设备为所述第二芯片的需要维护缓存一致性策略的主设备,该第二主设备的缓存中存储有所述第一芯片的内存的地址。
第三方面,本发明实施例还提供了一种跨芯片维护缓存一致性策略的方法,包括:
第一探测过滤器模块在监测到第二芯片的第一主设备发送的读第一芯片的内存的请求时,判断所述第一芯片的内存的地址是否存储在所述第二芯片的任一第二主设备的缓存中,其中,所述第一探测过滤器模块设置在所述第一芯片的接口处,所述第一芯片和第二芯片共享内存;以及
所述第一探测过滤器模块若确定所述第一芯片的内存的地址存储在所述第二芯片的任一第二主设备的缓存中,则通过所述第二芯片的第二探测过滤器模块向该任一第二主设备发送探测信息,以使该任一第二主设备根据所述探测信息将所述第一芯片的内存的地址写入所述第一主设备的缓存中,其中,所述第一主设备和第二主设备需要维护缓存一致性策略。
第四方面,本发明实施例还提供了一种跨芯片维护缓存一致性策略的方法,包括:
第二芯片的第二探测过滤器模块接收设置在第一芯片的接口处的第一探测过滤器模块发送的探测信息,其中,所述第一芯片和第二芯片共享内存;以及
所述第二探测过滤器模块将所述探测信息发送给相应的主设备,记该主设备为第二主设备,以使该第二主设备根据所述探测信息将所述第一芯片的内存的地址写入第一主设备的缓存中,其中,所述第一主设备和该第二主设备为所述第二芯片的需要维护缓存一致性策略的主设备,该第二主设备的缓存中存储有所述第一芯片的内存的地址。
该装置和方法至少能实现如下效果:第二芯片的第一主设备向第一芯片发送读所述第一芯片的内存的请求时,第一探测过滤器模块若判断获知所述第一芯片的内存的地址存储在所述第二芯片的任一第二主设备的缓存中,则向所述第二芯片的第二探测过滤器模块发送探测信息,由所述第二探测过滤器模块将所述探测信息发送给该任一第二主设备,该任一第二主设备接收到所述探测信息后,将所述第一芯片的内存的地址写入所述第一主设备的缓存中,整个方案中由于第一探测过滤器模块设置在第一芯片的接口处,这就使得由第一探测过滤器模块发送的探测信息不需要穿过第一芯片,因而能减少跨芯片维护缓存一致性策略时探测信息响应的延时,并且减少芯片间总线上探测信息的带宽。
附图说明
本公开可以通过参考下文中结合附图所给出的描述而得到更好的理解,附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分。在附图中:
图1为共享内存的芯片0和芯片1的硬件框图;
图2为本发明跨芯片维护缓存一致性策略的装置一实施例的结构示意图;
图3为图1中芯片0和芯片1应用图2所示装置的硬件框图;
图4为本发明跨芯片维护缓存一致性策略的装置一实施例的结构示意图;
图5为图1中芯片0和芯片1应用图4所示装置后的数据流向框图;
图6为本发明跨芯片维护缓存一致性策略的装置另一实施例的缓存状态转换图;
图7为本发明跨芯片维护缓存一致性策略的方法一实施例的流程示意图;
图8为图7中S70一实施例的部分流程图;
图9为本发明跨芯片维护缓存一致性策略的方法一实施例的流程示意图;
图10为本发明跨芯片维护缓存一致性策略的方法另一实施例的流程示意图。
具体实施方式
在下文中将结合附图对本公开内容的示例性实施方式进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施方式的过程中可以做出很多特定于实施方式的决定,以便实现开发人员的具体目标,并且这些决定可能会随着实施方式的不同而有所改变。
在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本公开,在附图中仅仅示出了与根据本公开内容的方案密切相关的装置结构,而省略了与本公开关系不大的其他细节。
应理解的是,本公开内容并不会由于如下参照附图的描述而只限于所描述的实施形式。在本文中,在可行的情况下,实施方式可以相互组合、不同实施方式之间的特征替换或借用、在一个实施方式中省略一个或多个特征。
需要说明的是,本文中的芯片(包括第一芯片和第二芯片)可以是裸芯片,也可以是封装好的芯片。
参看图2,本发明公开一种跨芯片维护缓存一致性策略的装置,包括:
第一探测过滤器模块20,设置在第一芯片的接口处,用于在监测到第二芯片的第一主设备发送的读所述第一芯片的内存的请求时,若判断获知所述第一芯片的内存的地址存储在所述第二芯片的任一第二主设备的缓存中,则通过所述第二芯片的第二探测过滤器模块向该任一第二主设备发送探测信息,以使该任一第二主设备根据所述探测信息将所述第一芯片的内存的地址写入所述第一主设备的缓存中,其中,所述第一芯片和第二芯片共享内存,所述第一主设备和第二主设备需要维护缓存一致性策略。
本实施例中,如图3所示为图1中芯片0和芯片1应用图2所示装置的硬件框图。芯片1的PF(即第一探测过滤器模块)设置在芯片1的接口处,当CM0要读内存1地址时,CM0会将读请求发到芯片1的接口处,芯片1的PF在监测到CMO发送的读请求时,发现CM0要访问的地址在CM1中有缓存,会向芯片0的PF(即第二探测过滤器模块)发送探测信息,芯片0的PF接收到探测信息后,会将探测信息发送给CM1,让CM1把芯片1的内存的地址写给CM0。
本发明实施例提供的跨芯片维护缓存一致性策略的装置,其第一探测过滤器模块在监测到第二芯片的第一主设备发送的读第一芯片的内存的请求时,若判断获知所述第一芯片的内存的地址存储在所述第二芯片的任一第二主设备的缓存中,则向该任一第二主设备发送探测信息,整个方案中由于第一探测过滤器模块设置在第一芯片的接口处,这就使得由第一探测过滤器模块发送的探测信息不需要穿过第一芯片,因而能减少跨芯片维护缓存一致性策略时探测信息响应的延时,并且减少芯片间总线上探测信息的带宽。
在前述装置实施例的基础上,所述第一探测过滤器模块,具体可以用于:
从所述第二探测过滤器模块中获取所述第二主设备对所述第一芯片的内存的地址的存储状态;
对于每一第二主设备,若该第二主设备对所述第一芯片的内存的地址的存储状态为有效,则确定所述第一芯片的内存的地址存储在该第二主设备的缓存中。
本实施例中,需要说明的是,所述第二主设备对所述第一芯片的内存的地址的存储状态存储在所述第二探测过滤器模块中。所述第一探测过滤器模块在判断所述第一芯片的内存的地址是否存储在所述第二芯片的任一第二主设备的缓存中时,需要从所述第二探测过滤器模块中获取所述第二主设备对所述第一芯片的内存的地址的存储状态。对于每一第二主设备,若该第二主设备对所述第一芯片的内存的地址的存储状态为有效,则说明所述第一芯片的内存的地址存储在该第二主设备的缓存中。
参看图4,本发明公开一种跨芯片维护缓存一致性策略的装置,包括:
第二探测过滤器模块40,设置在第二芯片中,用于接收设置在第一芯片的接口处的第一探测过滤器模块发送的探测信息,并将所述探测信息发送给相应的主设备,记该主设备为第二主设备,以使该第二主设备根据所述探测信息将所述第一芯片的内存的地址写入第一主设备的缓存中,其中,所述第一芯片和第二芯片共享内存,所述第一主设备和该第二主设备为所述第二芯片的需要维护缓存一致性策略的主设备,该第二主设备的缓存中存储有所述第一芯片的内存的地址。
本实施例中,如图5所示为图1中芯片0和芯片1应用图4所示装置后的数据流向框图。CM0要读内存1地址时,可以通过芯片0的PF向芯片1发送读内存1地址的请求,之后芯片0的PF等待接收芯片1的PF发送的探测信息。芯片0的PF接收到芯片1的PF发送的探测信息后,将探测信息发送给CM1,CM1根据探测信息会将芯片1的内存的地址写入CM0的缓存中。
本发明实施例提供的跨芯片维护缓存一致性策略的装置,第二芯片的第二探测过滤器模块在接收到第一芯片的第一探测过滤器模块发送的探测信息时,执行跨第一芯片和第二芯片的缓存一致性操作,整个方案中由于第一探测过滤器模块设置在第一芯片的接口处,这就使得由第一探测过滤器模块发送的探测信息不需要穿过第一芯片,因而能减少跨芯片维护缓存一致性策略时探测信息响应的延时,并且减少芯片间总线上探测信息的带宽。
在前述装置实施例的基础上,所述第二探测过滤器模块存储有所述第二芯片的需要维护缓存一致性策略的主设备对所述第一芯片的内存的地址的存储状态。
在前述装置实施例的基础上,对于所述第二芯片的需要维护缓存一致性策略的主设备中的任一主设备,记该主设备为第三主设备,所述第三主设备对所述第一芯片的内存的地址的存储状态可以按照如下方式更新:
所述第二探测过滤器模块在监测到所述第三主设备发送的读所述第一芯片的内存的请求或写所述第一芯片的内存的请求时,若判断获知所述第一芯片的内存的地址未存储在所述第二芯片的需要维护缓存一致性策略的任一个主设备的缓存中,且所述第一芯片的内存的地址是可缓存的,则设置所述第三主设备对所述第一芯片的内存的地址的存储状态为有效;
所述第二探测过滤器模块在监测到所述第三主设备发送的写所述第一芯片的内存的请求时,若判断获知所述第一芯片的内存的地址存储在所述第二芯片的需要维护缓存一致性策略的主设备中除所述第三主设备外的一个主设备的缓存中,则将该缓存中存储有所述第一芯片的内存的地址的主设备对所述第一芯片的内存的地址的存储状态修改为所述第三主设备对所述第一芯片的内存的地址的存储状态为有效;
所述第二探测过滤器模块在监测到所述第一芯片的主设备发送的写所述第二芯片的内存的请求时,若判断获知所述第二芯片的内存的地址存储在所述第三主设备的缓存中,则将所述第三主设备对所述第一芯片的内存的地址的存储状态修改为无效。
本实施例中,如图6所示为本发明跨芯片维护缓存一致性策略的装置另一实施例的缓存状态转换图。所述第二芯片的需要维护缓存一致性策略的主设备对所述第一芯片的内存的地址的存储状态可以通过包括地址、状态(有效/无效)和主设备标识CM id三个字段的表项表示,该表项表示CMid标识的主设备对地址标识的所述第一芯片的内存的地址的存储状态为状态(有效/无效)指示的有效或无效。需要说明的是,所述第三主设备对所述第一芯片的内存的地址的存储状态按照图6所示的函数更新:
第一函数:所述第三主设备发送读所述第一芯片的内存的请求时,若所述第一芯片的内存的地址在所述第二芯片的需要维护缓存一致性策略的任一个主设备中均没有缓存,且所述第一芯片的内存的地址是可缓存的,则设置所述第三主设备对所述第一芯片的内存的地址的存储状态为有效,具体可以通过为所述第一芯片的内存的地址创建一个新表项,设置新表项的地址字段为所述第一芯片的内存的地址,状态(有效/无效)字段为有效,主设备标识CM id字段为所述第三主设备的标识实现,或者若所述第一芯片的内存的地址在所述第二芯片的需要维护缓存一致性策略的任一个主设备中均没有缓存,且所述第一芯片的内存的地址是不可缓存的,则不执行任何操作;
第二函数:所述第三主设备发送写所述第一芯片的内存的请求时,若所述第一芯片的内存的地址在所述第二芯片的需要维护缓存一致性策略的任一个主设备中均没有缓存,且所述第一芯片的内存的地址是可缓存的,则设置所述第三主设备对所述第一芯片的内存的地址的存储状态为有效,具体操作同第一函数一致,此处不再赘述,或者若所述第一芯片的内存的地址在所述第二芯片的需要维护缓存一致性策略的任一个主设备中均没有缓存,且所述第一芯片的内存的地址是不可缓存的,则不执行任何操作;
第三函数:所述第三主设备发送写所述第一芯片的内存的请求时,若所述第一芯片的内存的地址在所述第二芯片的需要维护缓存一致性策略的主设备中除所述第三主设备外的一个主设备中有缓存,则将该缓存有所述第一芯片的内存的地址的主设备对所述第一芯片的内存的地址的存储状态修改为所述第三主设备对所述第一芯片的内存的地址的存储状态为有效,具体可以通过将该缓存有所述第一芯片的内存的地址的主设备对应的表项中的主设备标识CM id字段修改为所述第三主设备的标识实现;
第四函数:所述第三主设备发送读所述第一芯片的内存的请求时,若所述第一芯片的内存的地址在所述第二芯片的需要维护缓存一致性策略的主设备中除所述第三主设备外的一个主设备中有缓存,则不执行任何操作;
第五函数:所述第一芯片的主设备发送的写所述第二芯片的内存的请求时,若所述第二芯片的内存的地址在所述第三主设备中有缓存,则将所述第三主设备对所述第一芯片的内存的地址的存储状态修改为无效,具体可以通过将所述第三主设备对应的表项中的状态(有效/无效)字段修改为无效实现;
第六函数:所述第一芯片的主设备发送的写所述第二芯片的内存的请求时,若所述第二芯片的内存的地址在所述第三主设备中有缓存,则不执行任何操作。
另外,需要说明的是,所述第二探测过滤器模块判断所述第一芯片的内存的地址是否存储在所述第二芯片的需要维护缓存一致性策略的某一主设备的缓存中是根据该主设备对应的表项判断,当该主设备对应的表项指示该主设备对所述第一芯片的内存的地址的存储状态为有效,则说明所述第一芯片的内存的地址存储在该主设备的缓存中,否则,则说明所述第一芯片的内存的地址未存储在该主设备的缓存中。
在前述装置实施例的基础上,所述第二探测过滤器模块,还可以用于将该第二主设备对所述第一芯片的内存的地址的存储状态修改为所述第一主设备对所述第一芯片的内存的地址的存储状态为有效。
本实施例中,所述第二探测过滤器模块将该第二主设备对所述第一芯片的内存的地址的存储状态修改为所述第一主设备对所述第一芯片的内存的地址的存储状态为有效,具体可以通过将该第二主设备对应的表项中的主设备标识CM id字段修改为所述第一主设备的标识实现。
在前述装置实施例的基础上,所述第二探测过滤器模块,还可以用于接收所述第一探测过滤器模块发送的缓存清空消息,根据所述缓存清空消息将所述第二芯片的需要维护缓存一致性策略的主设备中对应的主设备对所述第一芯片的内存的地址的存储状态修改为无效。
本实施例中,所述第二探测过滤器模块根据所述第一探测过滤器模块发送的缓存清空消息将所述第二芯片的需要维护缓存一致性策略的主设备中对应的主设备对所述第一芯片的内存的地址的存储状态修改为无效,因而可代替CPU的缓存清空指令对CPU的缓存发出flush信息,从而节省了CPU等待缓存清空指令完成的时间,提高了CPU的效率。
参看图7,本发明公开一种跨芯片维护缓存一致性策略的方法,包括:
S70、第一探测过滤器模块在监测到第二芯片的第一主设备发送的读第一芯片的内存的请求时,判断所述第一芯片的内存的地址是否存储在所述第二芯片的任一第二主设备的缓存中,其中,所述第一探测过滤器模块设置在所述第一芯片的接口处,所述第一芯片和第二芯片共享内存;以及
S71、所述第一探测过滤器模块若确定所述第一芯片的内存的地址存储在所述第二芯片的任一第二主设备的缓存中,则通过所述第二芯片的第二探测过滤器模块向该任一第二主设备发送探测信息,以使该任一第二主设备根据所述探测信息将所述第一芯片的内存的地址写入所述第一主设备的缓存中,其中,所述第一主设备和第二主设备需要维护缓存一致性策略。
本发明实施例提供的跨芯片维护缓存一致性策略的方法,第一探测过滤器模块在监测到第二芯片的第一主设备发送的读第一芯片的内存的请求时,若判断获知所述第一芯片的内存的地址存储在所述第二芯片的任一第二主设备的缓存中,则向该任一第二主设备发送探测信息,整个方案中由于第一探测过滤器模块设置在第一芯片的接口处,这就使得由第一探测过滤器模块发送的探测信息不需要穿过第一芯片,因而能减少跨芯片维护缓存一致性策略时探测信息响应的延时,并且减少芯片间总线上探测信息的带宽。
图8为图7中S70一实施例的部分流程图,参看图8,在前述方法实施例的基础上,所述判断所述第一芯片的内存的地址是否存储在所述第二芯片的任一第二主设备的缓存中,可以包括:
S80、所述第一探测过滤器模块从所述第二探测过滤器模块中获取所述第二主设备对所述第一芯片的内存的地址的存储状态;
S81、对于每一第二主设备,所述第一探测过滤器模块若确定该第二主设备对所述第一芯片的内存的地址的存储状态为有效,则确定所述第一芯片的内存的地址存储在该第二主设备的缓存中。
本实施例中,需要说明的是,所述第二主设备对所述第一芯片的内存的地址的存储状态存储在所述第二探测过滤器模块中。所述第一探测过滤器模块在判断所述第一芯片的内存的地址是否存储在所述第二芯片的任一第二主设备的缓存中时,需要从所述第二探测过滤器模块中获取所述第二主设备对所述第一芯片的内存的地址的存储状态。对于每一第二主设备,若该第二主设备对所述第一芯片的内存的地址的存储状态为有效,则说明所述第一芯片的内存的地址存储在该第二主设备的缓存中。
参看图9,本发明公开一种跨芯片维护缓存一致性策略的方法,包括:
S90、第二芯片的第二探测过滤器模块接收设置在第一芯片的接口处的第一探测过滤器模块发送的探测信息,其中,所述第一芯片和第二芯片共享内存;以及
S91、所述第二探测过滤器模块将所述探测信息发送给相应的主设备,记该主设备为第二主设备,以使该第二主设备根据所述探测信息将所述第一芯片的内存的地址写入第一主设备的缓存中,其中,所述第一主设备和该第二主设备为所述第二芯片的需要维护缓存一致性策略的主设备,该第二主设备的缓存中存储有所述第一芯片的内存的地址。
本发明实施例提供的跨芯片维护缓存一致性策略的方法,第二芯片的第二探测过滤器模块在接收到第一芯片的第一探测过滤器模块发送的探测信息时,执行跨第一芯片和第二芯片的缓存一致性操作,整个方案中由于第一探测过滤器模块设置在第一芯片的接口处,这就使得由第一探测过滤器模块发送的探测信息不需要穿过第一芯片,因而能减少跨芯片维护缓存一致性策略时探测信息响应的延时,并且减少芯片间总线上探测信息的带宽。
在前述方法实施例的基础上,所述第二探测过滤器模块存储有所述第二芯片的需要维护缓存一致性策略的主设备对所述第一芯片的内存的地址的存储状态。
在前述方法实施例的基础上,对于所述第二芯片的需要维护缓存一致性策略的主设备中的任一主设备,记该主设备为第三主设备,所述第三主设备对所述第一芯片的内存的地址的存储状态可以按照如下方式更新:
所述第二探测过滤器模块在监测到所述第三主设备发送的读所述第一芯片的内存的请求或写所述第一芯片的内存的请求时,若判断获知所述第一芯片的内存的地址未存储在所述第二芯片的需要维护缓存一致性策略的任一个主设备的缓存中,且所述第一芯片的内存的地址是可缓存的,则设置所述第三主设备对所述第一芯片的内存的地址的存储状态为有效;
所述第二探测过滤器模块在监测到所述第三主设备发送的写所述第一芯片的内存的请求时,若判断获知所述第一芯片的内存的地址存储在所述第二芯片的需要维护缓存一致性策略的主设备中除所述第三主设备外的一个主设备的缓存中,则将该缓存中存储有所述第一芯片的内存的地址的主设备对所述第一芯片的内存的地址的存储状态修改为所述第三主设备对所述第一芯片的内存的地址的存储状态为有效;
所述第二探测过滤器模块在监测到所述第一芯片的主设备发送的写所述第二芯片的内存的请求时,若判断获知所述第二芯片的内存的地址存储在所述第三主设备的缓存中,则将所述第三主设备对所述第一芯片的内存的地址的存储状态修改为无效。
本实施例中,所述第二芯片的需要维护缓存一致性策略的主设备对所述第一芯片的内存的地址的存储状态可以通过包括地址、状态(有效/无效)和主设备标识CM id三个字段的表项表示,该表项表示CM id标识的主设备对地址标识的所述第一芯片的内存的地址的存储状态为状态(有效/无效)指示的有效或无效。需要说明的是,所述第三主设备对所述第一芯片的内存的地址的存储状态按照图6所示的函数更新:
第一函数:所述第三主设备发送读所述第一芯片的内存的请求时,若所述第一芯片的内存的地址在所述第二芯片的需要维护缓存一致性策略的任一个主设备中均没有缓存,且所述第一芯片的内存的地址是可缓存的,则设置所述第三主设备对所述第一芯片的内存的地址的存储状态为有效,具体可以通过为所述第一芯片的内存的地址创建一个新表项,设置新表项的地址字段为所述第一芯片的内存的地址,状态(有效/无效)字段为有效,主设备标识CM id字段为所述第三主设备的标识实现,或者若所述第一芯片的内存的地址在所述第二芯片的需要维护缓存一致性策略的任一个主设备中均没有缓存,且所述第一芯片的内存的地址是不可缓存的,则不执行任何操作;
第二函数:所述第三主设备发送写所述第一芯片的内存的请求时,若所述第一芯片的内存的地址在所述第二芯片的需要维护缓存一致性策略的任一个主设备中均没有缓存,且所述第一芯片的内存的地址是可缓存的,则设置所述第三主设备对所述第一芯片的内存的地址的存储状态为有效,具体操作同第一函数一致,此处不再赘述,或者若所述第一芯片的内存的地址在所述第二芯片的需要维护缓存一致性策略的任一个主设备中均没有缓存,且所述第一芯片的内存的地址是不可缓存的,则不执行任何操作;
第三函数:所述第三主设备发送写所述第一芯片的内存的请求时,若所述第一芯片的内存的地址在所述第二芯片的需要维护缓存一致性策略的主设备中除所述第三主设备外的一个主设备中有缓存,则将该缓存有所述第一芯片的内存的地址的主设备对所述第一芯片的内存的地址的存储状态修改为所述第三主设备对所述第一芯片的内存的地址的存储状态为有效,具体可以通过将该缓存有所述第一芯片的内存的地址的主设备对应的表项中的主设备标识CM id字段修改为所述第三主设备的标识实现;
第四函数:所述第三主设备发送读所述第一芯片的内存的请求时,若所述第一芯片的内存的地址在所述第二芯片的需要维护缓存一致性策略的主设备中除所述第三主设备外的一个主设备中有缓存,则不执行任何操作;
第五函数:所述第一芯片的主设备发送的写所述第二芯片的内存的请求时,若所述第二芯片的内存的地址在所述第三主设备中有缓存,则将所述第三主设备对所述第一芯片的内存的地址的存储状态修改为无效,具体可以通过将所述第三主设备对应的表项中的状态(有效/无效)字段修改为无效实现;
第六函数:所述第一芯片的主设备发送的写所述第二芯片的内存的请求时,若所述第二芯片的内存的地址在所述第三主设备中有缓存,则不执行任何操作。
另外,需要说明的是,所述第二探测过滤器模块判断所述第一芯片的内存的地址是否存储在所述第二芯片的需要维护缓存一致性策略的某一主设备的缓存中是根据该主设备对应的表项判断,当该主设备对应的表项指示该主设备对所述第一芯片的内存的地址的存储状态为有效,则说明所述第一芯片的内存的地址存储在该主设备的缓存中,否则,则说明所述第一芯片的内存的地址未存储在该主设备的缓存中。
在前述方法实施例的基础上,所述方法还可以包括:
所述第二探测过滤器模块将该第二主设备对所述第一芯片的内存的地址的存储状态修改为所述第一主设备对所述第一芯片的内存的地址的存储状态为有效。
本实施例中,所述第二探测过滤器模块将该第二主设备对所述第一芯片的内存的地址的存储状态修改为所述第一主设备对所述第一芯片的内存的地址的存储状态为有效,具体可以通过将该第二主设备对应的表项中的主设备标识CM id字段修改为所述第一主设备的标识实现。
图10为本发明跨芯片维护缓存一致性策略的方法另一实施例的流程示意图,参看图10,在前述方法实施例的基础上,所述方法还可以包括:
S100、所述第二探测过滤器模块接收所述第一探测过滤器模块发送的缓存清空消息,根据所述缓存清空消息将所述第二芯片的需要维护缓存一致性策略的主设备中对应的主设备对所述第一芯片的内存的地址的存储状态修改为无效。
本实施例中,所述第二探测过滤器模块根据所述第一探测过滤器模块发送的缓存清空消息将所述第二芯片的需要维护缓存一致性策略的主设备中对应的主设备对所述第一芯片的内存的地址的存储状态修改为无效,因而所以可代替CPU的缓存清空指令对CPU的缓存发出flush信息,从而节省了CPU等待缓存清空指令完成的时间,提高了CPU的效率。
上文已经参考附图描述了本公开的优选实施例,当然,本公开并不限于上面的示例。在所附的权利要求的范围内,本领域的技术人员可以进行各种改变和修改,并且应当明白,这些改变和修改自然落入本公开的技术范围内。

Claims (14)

1.一种跨芯片维护缓存一致性策略的装置,其特征在于,包括:
第一探测过滤器模块,设置在第一芯片的接口处,用于在监测到第二芯片的第一主设备发送的读所述第一芯片的内存的请求时,若判断获知所述第一芯片的内存的地址存储在所述第二芯片的任一第二主设备的缓存中,则通过所述第二芯片的第二探测过滤器模块向该任一第二主设备发送探测信息,以使该任一第二主设备根据所述探测信息将所述第一芯片的内存的地址写入所述第一主设备的缓存中,其中,所述第一芯片和第二芯片共享内存,所述第一主设备和第二主设备需要维护缓存一致性策略。
2.根据权利要求1所述的装置,其特征在于,所述第一探测过滤器模块,具体用于:
从所述第二探测过滤器模块中获取所述第二主设备对所述第一芯片的内存的地址的存储状态;
对于每一第二主设备,若该第二主设备对所述第一芯片的内存的地址的存储状态为有效,则确定所述第一芯片的内存的地址存储在该第二主设备的缓存中。
3.一种跨芯片维护缓存一致性策略的装置,其特征在于,包括:
第二探测过滤器模块,设置在第二芯片中,用于接收设置在第一芯片的接口处的第一探测过滤器模块发送的探测信息,并将所述探测信息发送给相应的主设备,记该主设备为第二主设备,以使该第二主设备根据所述探测信息将所述第一芯片的内存的地址写入第一主设备的缓存中,其中,所述第一芯片和第二芯片共享内存,所述第一主设备和该第二主设备为所述第二芯片的需要维护缓存一致性策略的主设备,该第二主设备的缓存中存储有所述第一芯片的内存的地址。
4.根据权利要求3所述的装置,其特征在于,所述第二探测过滤器模块存储有所述第二芯片的需要维护缓存一致性策略的主设备对所述第一芯片的内存的地址的存储状态。
5.根据权利要求4所述的装置,其特征在于,对于所述第二芯片的需要维护缓存一致性策略的主设备中的任一主设备,记该主设备为第三主设备,所述第三主设备对所述第一芯片的内存的地址的存储状态按照如下方式更新:
所述第二探测过滤器模块在监测到所述第三主设备发送的读所述第一芯片的内存的请求或写所述第一芯片的内存的请求时,若判断获知所述第一芯片的内存的地址未存储在所述第二芯片的需要维护缓存一致性策略的任一个主设备的缓存中,且所述第一芯片的内存的地址是可缓存的,则设置所述第三主设备对所述第一芯片的内存的地址的存储状态为有效;
所述第二探测过滤器模块在监测到所述第三主设备发送的写所述第一芯片的内存的请求时,若判断获知所述第一芯片的内存的地址存储在所述第二芯片的需要维护缓存一致性策略的主设备中除所述第三主设备外的一个主设备的缓存中,则将该缓存中存储有所述第一芯片的内存的地址的主设备对所述第一芯片的内存的地址的存储状态修改为所述第三主设备对所述第一芯片的内存的地址的存储状态为有效;
所述第二探测过滤器模块在监测到所述第一芯片的主设备发送的写所述第二芯片的内存的请求时,若判断获知所述第二芯片的内存的地址存储在所述第三主设备的缓存中,则将所述第三主设备对所述第一芯片的内存的地址的存储状态修改为无效。
6.根据权利要求4所述的装置,其特征在于,所述第二探测过滤器模块,还用于将该第二主设备对所述第一芯片的内存的地址的存储状态修改为所述第一主设备对所述第一芯片的内存的地址的存储状态为有效。
7.根据权利要求3所述的装置,其特征在于,所述第二探测过滤器模块,还用于接收所述第一探测过滤器模块发送的缓存清空消息,根据所述缓存清空消息将所述第二芯片的需要维护缓存一致性策略的主设备中对应的主设备对所述第一芯片的内存的地址的存储状态修改为无效。
8.一种跨芯片维护缓存一致性策略的方法,其特征在于,包括:
第一探测过滤器模块在监测到第二芯片的第一主设备发送的读第一芯片的内存的请求时,判断所述第一芯片的内存的地址是否存储在所述第二芯片的任一第二主设备的缓存中,其中,所述第一探测过滤器模块设置在所述第一芯片的接口处,所述第一芯片和第二芯片共享内存;以及
所述第一探测过滤器模块若确定所述第一芯片的内存的地址存储在所述第二芯片的任一第二主设备的缓存中,则通过所述第二芯片的第二探测过滤器模块向该任一第二主设备发送探测信息,以使该任一第二主设备根据所述探测信息将所述第一芯片的内存的地址写入所述第一主设备的缓存中,其中,所述第一主设备和第二主设备需要维护缓存一致性策略。
9.根据权利要求8所述的方法,其特征在于,所述判断所述第一芯片的内存的地址是否存储在所述第二芯片的任一第二主设备的缓存中,包括:
所述第一探测过滤器模块从所述第二探测过滤器模块中获取所述第二主设备对所述第一芯片的内存的地址的存储状态;
对于每一第二主设备,所述第一探测过滤器模块若确定该第二主设备对所述第一芯片的内存的地址的存储状态为有效,则确定所述第一芯片的内存的地址存储在该第二主设备的缓存中。
10.一种跨芯片维护缓存一致性策略的方法,其特征在于,包括:
第二芯片的第二探测过滤器模块接收设置在第一芯片的接口处的第一探测过滤器模块发送的探测信息,其中,所述第一芯片和第二芯片共享内存;以及
所述第二探测过滤器模块将所述探测信息发送给相应的主设备,记该主设备为第二主设备,以使该第二主设备根据所述探测信息将所述第一芯片的内存的地址写入第一主设备的缓存中,其中,所述第一主设备和该第二主设备为所述第二芯片的需要维护缓存一致性策略的主设备,该第二主设备的缓存中存储有所述第一芯片的内存的地址。
11.根据权利要求10所述的方法,其特征在于,所述第二探测过滤器模块存储有所述第二芯片的需要维护缓存一致性策略的主设备对所述第一芯片的内存的地址的存储状态。
12.根据权利要求11所述的方法,其特征在于,对于所述第二芯片的需要维护缓存一致性策略的主设备中的任一主设备,记该主设备为第三主设备,所述第三主设备对所述第一芯片的内存的地址的存储状态按照如下方式更新:
所述第二探测过滤器模块在监测到所述第三主设备发送的读所述第一芯片的内存的请求或写所述第一芯片的内存的请求时,若判断获知所述第一芯片的内存的地址未存储在所述第二芯片的需要维护缓存一致性策略的任一个主设备的缓存中,且所述第一芯片的内存的地址是可缓存的,则设置所述第三主设备对所述第一芯片的内存的地址的存储状态为有效;
所述第二探测过滤器模块在监测到所述第三主设备发送的写所述第一芯片的内存的请求时,若判断获知所述第一芯片的内存的地址存储在所述第二芯片的需要维护缓存一致性策略的主设备中除所述第三主设备外的一个主设备的缓存中,则将该缓存中存储有所述第一芯片的内存的地址的主设备对所述第一芯片的内存的地址的存储状态修改为所述第三主设备对所述第一芯片的内存的地址的存储状态为有效;
所述第二探测过滤器模块在监测到所述第一芯片的主设备发送的写所述第二芯片的内存的请求时,若判断获知所述第二芯片的内存的地址存储在所述第三主设备的缓存中,则将所述第三主设备对所述第一芯片的内存的地址的存储状态修改为无效。
13.根据权利要求11所述的方法,其特征在于,还包括:
所述第二探测过滤器模块将该第二主设备对所述第一芯片的内存的地址的存储状态修改为所述第一主设备对所述第一芯片的内存的地址的存储状态为有效。
14.根据权利要求10所述的方法,其特征在于,还包括:
所述第二探测过滤器模块接收所述第一探测过滤器模块发送的缓存清空消息,根据所述缓存清空消息将所述第二芯片的需要维护缓存一致性策略的主设备中对应的主设备对所述第一芯片的内存的地址的存储状态修改为无效。
CN201910493282.6A 2019-06-06 2019-06-06 跨芯片维护缓存一致性策略的装置与方法 Active CN110221985B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910493282.6A CN110221985B (zh) 2019-06-06 2019-06-06 跨芯片维护缓存一致性策略的装置与方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910493282.6A CN110221985B (zh) 2019-06-06 2019-06-06 跨芯片维护缓存一致性策略的装置与方法

Publications (2)

Publication Number Publication Date
CN110221985A true CN110221985A (zh) 2019-09-10
CN110221985B CN110221985B (zh) 2021-04-23

Family

ID=67816115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910493282.6A Active CN110221985B (zh) 2019-06-06 2019-06-06 跨芯片维护缓存一致性策略的装置与方法

Country Status (1)

Country Link
CN (1) CN110221985B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112612726A (zh) * 2020-12-08 2021-04-06 海光信息技术股份有限公司 基于缓存一致性的数据存储方法、装置、处理芯片及服务器
CN118113631A (zh) * 2024-04-30 2024-05-31 山东海量信息技术研究院 一种数据处理***、方法、设备、介质及计算机程序产品

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020138698A1 (en) * 2001-03-21 2002-09-26 International Business Machines Corporation System and method for caching directory information in a shared memory multiprocessor system
US20030046495A1 (en) * 2001-08-28 2003-03-06 Venkitakrishnan Padmanabha I. Streamlined cache coherency protocol system and method for a multiple processor single chip device
CN103902502A (zh) * 2014-04-09 2014-07-02 上海理工大学 一种可扩展的分离式异构千核***
CN103955435A (zh) * 2014-04-09 2014-07-30 上海理工大学 一种融合多级缓存目录建立访问方法
CN105740164A (zh) * 2014-12-10 2016-07-06 阿里巴巴集团控股有限公司 支持缓存一致性的多核处理器、读写方法、装置及设备
CN107844433A (zh) * 2017-11-24 2018-03-27 郑州云海信息技术有限公司 一种异构混合内存服务器架构
CN109814927A (zh) * 2018-12-19 2019-05-28 成都海光集成电路设计有限公司 一种机器学习推理协处理器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020138698A1 (en) * 2001-03-21 2002-09-26 International Business Machines Corporation System and method for caching directory information in a shared memory multiprocessor system
US20030046495A1 (en) * 2001-08-28 2003-03-06 Venkitakrishnan Padmanabha I. Streamlined cache coherency protocol system and method for a multiple processor single chip device
CN103902502A (zh) * 2014-04-09 2014-07-02 上海理工大学 一种可扩展的分离式异构千核***
CN103955435A (zh) * 2014-04-09 2014-07-30 上海理工大学 一种融合多级缓存目录建立访问方法
CN105740164A (zh) * 2014-12-10 2016-07-06 阿里巴巴集团控股有限公司 支持缓存一致性的多核处理器、读写方法、装置及设备
CN107844433A (zh) * 2017-11-24 2018-03-27 郑州云海信息技术有限公司 一种异构混合内存服务器架构
CN109814927A (zh) * 2018-12-19 2019-05-28 成都海光集成电路设计有限公司 一种机器学习推理协处理器

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112612726A (zh) * 2020-12-08 2021-04-06 海光信息技术股份有限公司 基于缓存一致性的数据存储方法、装置、处理芯片及服务器
CN118113631A (zh) * 2024-04-30 2024-05-31 山东海量信息技术研究院 一种数据处理***、方法、设备、介质及计算机程序产品
CN118113631B (zh) * 2024-04-30 2024-07-02 山东海量信息技术研究院 一种数据处理***、方法、设备、介质及计算机程序产品

Also Published As

Publication number Publication date
CN110221985B (zh) 2021-04-23

Similar Documents

Publication Publication Date Title
US9792210B2 (en) Region probe filter for distributed memory system
KR101497002B1 (ko) 스누프 필터링 메커니즘
KR100970229B1 (ko) 원격 캐시 존재 정보를 저장하는 프로세서 캐시를 구비한 컴퓨터 시스템
CN105740164B (zh) 支持缓存一致性的多核处理器、读写方法、装置及设备
US7373466B1 (en) Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer
US7814279B2 (en) Low-cost cache coherency for accelerators
KR101014394B1 (ko) 통합 디렉토리 및 프로세서 캐시를 구비한 컴퓨터 시스템
KR20170069149A (ko) 데이터 처리 시스템의 캐시 일관성을 위한 스누프 필터
CN103294612B (zh) 在多级缓存一致性域***局部域构造Share-F状态的方法
US9208091B2 (en) Coherent attached processor proxy having hybrid directory
CN103076992B (zh) 一种内存数据缓冲方法及装置
WO2010100679A1 (ja) コンピュータシステム、制御方法、記録媒体及び制御プログラム
KR20160099722A (ko) 캐시-코히어런시를 갖춘 집적 회로들
CN107341114B (zh) 一种目录管理的方法、节点控制器和***
US10360158B2 (en) Snoop filter with stored replacement information, method for same, and system including victim exclusive cache and snoop filter shared replacement policies
CN110221985A (zh) 跨芯片维护缓存一致性策略的装置与方法
US20140229678A1 (en) Method and apparatus for accelerated shared data migration
CN106155922A (zh) 失效处理方法、***、sfb及访存失效装置
JP4295815B2 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法
JP2007241601A (ja) マルチプロセッサシステム
CN113435153B (zh) 一种gpu缓存子***互联的数字电路设计方法
US11561900B1 (en) Targeting of lateral castouts in a data processing system
KR101446924B1 (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