CN112955877A - 修改存储数据的装置和方法 - Google Patents

修改存储数据的装置和方法 Download PDF

Info

Publication number
CN112955877A
CN112955877A CN201980065855.3A CN201980065855A CN112955877A CN 112955877 A CN112955877 A CN 112955877A CN 201980065855 A CN201980065855 A CN 201980065855A CN 112955877 A CN112955877 A CN 112955877A
Authority
CN
China
Prior art keywords
data
processing device
request
recipient
cache storage
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
CN201980065855.3A
Other languages
English (en)
Other versions
CN112955877B (zh
Inventor
J·兰德尔
J·A·若昂
R·W·恩肖
A·R·卡罗
A·格兰特
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.)
ARM Ltd
Original Assignee
ARM 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 ARM Ltd filed Critical ARM Ltd
Publication of CN112955877A publication Critical patent/CN112955877A/zh
Application granted granted Critical
Publication of CN112955877B publication Critical patent/CN112955877B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory

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

本发明公开了一种请求方主处理设备(205),该请求方主处理设备具有相关联的私有高速缓存存储装置(215),该相关联的私有高速缓存存储装置用于存储供请求方主处理设备访问的数据。请求方主处理设备被布置成发出用于修改数据的请求,该数据与给定存储器地址相关联并存储在与接收方主处理设备(210)相关联的私有高速缓存存储装置(220)中。与接收方主处理设备相关联的私有高速缓存存储装置被布置成存储供接收方主处理设备访问的数据。接收方主处理设备及其相关联的私有高速缓存存储装置中的一者被布置成在数据被存储在与接收方主处理设备相关联的高速缓存存储装置中的同时执行数据的请求修改。

Description

修改存储数据的装置和方法
本技术涉及处理设备领域,并且更具体地讲,涉及在包括多个此类处理设备的系统中处理数据修改请求。
一些数据处理系统,例如多核处理器,包括多个处理设备诸如处理核,该多个处理设备可在同一芯片内实现。此类多个处理设备可并行操作,从而改善处理性能。
至少一些示例提供了一种装置,该装置包括:
请求方主处理设备,该请求方主处理设备具有相关联的私有高速缓存存储装置,该相关联的私有高速缓存存储装置用于存储供该请求方主处理设备访问的数据,该请求方主处理设备被布置成发出用于修改数据的请求,该数据与给定存储器地址相关联并存储在与接收方主处理设备相关联的私有高速缓存存储装置中,与接收方主处理设备相关联的私有高速缓存存储装置被布置成存储供该接收方主处理设备访问的数据;和
接收方主处理设备,该接收方主处理设备具有其私有高速缓存存储装置,该接收方主处理设备及其相关联的私有高速缓存存储装置中的一者被布置成在数据被存储在与接收方主处理设备相关联的高速缓存存储装置中的同时执行该数据的请求修改。
另外的示例提供了主节点装置,该主节点装置包括:
接收电路,该接收电路用于从请求方主处理设备接收用于修改与给定存储器地址相关联的数据的请求;
转发电路,该转发电路用于将请求转发到与接收方主处理设备相关联的私有高速缓存存储装置,以用于在数据以唯一一致性状态存储在与接收方主处理设备相关联的私有高速缓存存储装置中的同时,对数据执行的请求修改。
另外的示例提供了一种装置,该装置包括:
接收方主处理设备;和
私有高速缓存存储装置,该私有高速缓存存储装置用于存储供该接收方主处理设备访问的数据,其中:
私有高速缓存存储装置被布置成从主节点设备接收用于修改与给定存储器地址相关联的数据的转发请求,该转发请求源自请求方主处理设备;并且
当数据以唯一一致性状态存储在私有高速缓存存储装置中时,接收方主处理设备和私有高速缓存存储装置中的一者被布置成执行高速缓存存储装置中的数据的请求修改。
另外的示例提供了一种主节点设备中的方法,该方法包括:
从请求方主处理设备接收用于修改与给定存储器地址相关联的数据的请求;以及
将请求转发到与接收方主处理设备相关联的私有高速缓存存储装置,以用于在数据以唯一一致性状态存储在与接收方主处理设备相关联的私有高速缓存存储装置中的同时,对数据执行的请求修改。
本技术的另外的方面、特征和优点将从结合附图阅读的示例的以下描述中显而易见;其中:图1示意性地示出了比较处理系统。
图2示意性地示出了根据本公开的示例的处理系统。
图3是根据本公开的示例的方法的流程图。
图4是示出根据本公开的示例的主节点设备中的方法的流程图。
如上所述,一些数据处理系统包括并行操作的多个处理设备。在一些此类系统中,每个此类处理设备具有相关联的私有高速缓存存储装置,该相关联的私有高速缓存存储装置用于存储供该处理设备访问的数据。与访问私有高速缓存中的数据相关联的延迟通常低于与访问存储在其他存储设备(例如,共享高速缓存和/或所有处理设备可访问的主存储器)中的数据相关联的延迟。因此,给定处理设备可将所需数据提取到其私有高速缓存中,并且在该数据被存储在私有高速缓存中时对该数据执行处理操作,从而在执行处理操作期间比在数据被保持在共享存储装置中的情况下引起更低的延迟。
然而,虽然使用私有高速缓存确实提供了提高的性能,但如果要由第二处理设备修改存储在第一处理设备的私有高速缓存中的数据,则会出现问题。如果通过第一设备放弃对数据的控制并向共享存储装置或第二设备的私有高速缓存提供该数据来使数据可用,则数据不再对第一设备立即可用。如果第一设备随后再次修改数据,则这导致更高的延迟。此外,这可能导致效率低下的“乒乓”效应,数据通过该效应在第一设备的高速缓存和第二设备的高速缓存之间有规律地传递。
此外,由于等待第一设备放弃对数据的控制的时间,以及由于等待数据在共享存储装置或第二存储装置的私有高速缓存中可用的时间,都会导致性能损失。如果数据至少间歇地被第一处理设备和第二处理设备修改,则该效应被放大:每当要改变对数据的控制时,其必须在私有高速缓存之间传递(由于在高速缓存之间传递数据所需的时间而导致前述“乒乓”性能效率低下)或保持在共享高速缓存中(防止使用私有高速缓存,从而不提供其伴随的优点)。
本公开的示例通过包括请求方主处理设备和接收方主处理设备的装置来解决这个问题,该请求方主处理设备和接收方主处理设备中的每一者具有相关联的私有高速缓存存储装置,该相关联的私有高速缓存存储装置被布置成存储供对应的主处理设备访问的数据。“请求方”和“接收方”是关于本文所述的特定功能的标签:两个设备通常可以是一组类似设备中的特定设备,使得任何一对设备可以在给定时间承担“请求方”和“接收方”的角色。
请求方主处理设备被布置成发出用于修改数据的请求,该数据与给定存储器地址相关联并存储在与接收方主处理设备相关联的私有高速缓存存储装置中。该请求可具体地向接收方主处理设备的私有高速缓存存储装置发出。另选地,该请求可被广播,然后由接收方主处理设备检测。在示例中,请求修改是可在不将数据高速缓存在与请求方主设备相关联的私有高速缓存存储装置中的情况下执行的修改。
接收方主处理设备及其相关联的私有高速缓存存储装置中的一者被布置成在数据被存储在与接收方主处理设备相关联的高速缓存存储装置中的同时执行数据的请求修改。
在其中未实现本公开的各方面的比较系统中,请求修改将通过向请求方设备的私有高速缓存提供所考虑的数据来执行,在该私有高速缓存内将执行修改,或者通过向共享位置诸如共享高速缓存或主存储器提供所考虑的数据,在该共享位置内将执行修改。数据的这种移动可能是相对耗时的,特别是在片上网络拥塞的情况下。数据的这种移动也增加了功率需求。当前描述的装置通过在不向请求方主处理设备的私有高速缓存提供所考虑的数据或向共享存储装置提供所考虑的数据的情况下允许执行请求修改来避免对数据的这种耗时移动的需要。
一些系统提供以不同一致性状态存储的数据。例如,给定数据项可以唯一一致性状态存储在设备的私有高速缓存中,在该私有高速缓存中该设备能够本地修改数据,而不通知主节点或可已从同一地址缓存数据的其他设备。另选地,给定数据项可以共享一致性状态存储在私有高速缓存中,在该私有高速缓存中对私有高速缓存中的数据的修改将被发信号通知可从同一地址缓存数据的其他设备,使得那些其他设备在必要时可使数据的现在过期版本无效。一致性状态可由与主处理设备通信地耦接的另一设备来管理。以这种方式提供一致性状态允许在设备之间共享对数据的访问时保持数据的一致性。
在实现此类一致性状态的比较系统中,如果要修改的数据以独占一致性状态位于接收方设备的私有高速缓存中,则执行请求设备请求的修改将需要放弃唯一状态。然后将需要将数据移动到请求方设备的私有高速缓存,或移动到共享位置。如上所述,此类移动可能是耗时的并且增加了功率需求。
在本公开的示例中,接收方主处理设备及其相关联的私有高速缓存存储装置中的一者被布置成在数据以唯一一致性状态存储在与接收方主处理设备相关联的高速缓存存储装置中的同时执行数据的请求修改。因此,可在接收方设备不必放弃独占一致性状态的情况下执行修改,使得数据可保留在接收方设备的私有高速缓存中。因此改善了性能,例如当接收方设备接下来访问数据时。
在一个示例中,该请求是用于执行包括请求修改的原子更新操作的请求。原子更新是作为单个不间断操作执行的不可分的一组动作,例如读取然后写入,其中要写入的数据和/或写入是否发生取决于读取数据。以举例的方式,原子操作可以包括对读取值的比较和/或算术运算,基于该运算确定要写入的值。由于作为单个操作执行读取和写入,防止了对所考虑的数据的其他访问,同时执行原子更新。在接收方设备的私有高速缓存中基于单个请求来执行这些动作可提供相比于其中必须使用多个请求和/或其中动作在中心位置中执行的比较系统而言的性能提高。
在该示例中,与接收方主处理设备相关联的私有高速缓存存储装置可包括用于执行所请求的原子操作的算术逻辑单元。因此,该操作可完全在接收方设备的私有高速缓存内执行,而不是由接收方设备本身执行。因此改善了处理效率。另选地,接收方设备本身(而不是其相关联的私有高速缓存)可包括用于执行所请求的原子操作的算术逻辑单元。例如,接收方设备本身的数据路径或处理流水线内的算术单元可用于执行在原子操作中使用的算术运算以计算要写入的值。
在另选的示例中,该请求是用于执行包括请求修改的非时间存储操作的请求。非时间存储操作是包括请求方设备在不久的将来将不再需要所考虑的数据的“提示”的存储指令。在不执行此类无效的本技术中,避免了由于使接收方设备的私有高速缓存中的数据副本无效而导致的性能降低。
在一些示例中,该装置包括主节点设备。主节点设备被配置为从所请求的主处理设备接收请求,并且将该请求转发到与接收方主处理设备相关联的私有高速缓存存储装置。因此,对数据访问的控制(例如,用于保持高速缓存一致性)可由中央主节点设备管理。因此,请求方设备可向主节点设备发出请求,而无需任何需求来具体地识别接收方设备。因此,请求方设备不需要保持其他设备实际存储给定数据的记录。例如,主节点设备可被配置为响应于确定数据以唯一一致性状态存储在与接收方主处理设备相关联的私有高速缓存存储装置中来执行转发。
该装置可包括与主节点设备相关联的共享高速缓存,该共享高速缓存用于存储供请求方主处理设备和接收方主处理设备访问的数据。因此,除了允许在接收方的高速缓存处执行修改之外,系统还可允许在共享高速缓存中执行修改。
另选地或除此之外,与接收方主设备相关联的私有高速缓存存储装置可被布置成基于与请求相关的信息来确定是否向主节点设备提供数据并将该数据转变到非唯一一致性状态。当确定向主节点设备提供数据时,与接收方主处理设备相关联的私有高速缓存存储装置可被配置为抑制在私有高速缓存存储装置处执行请求修改。然后,可在上述共享高速缓存中执行请求修改。
另选地,与接收方主处理设备相关联的私有高速缓存存储装置可被配置为在执行请求修改之后执行确定。
类似地,主节点设备可被布置成基于与请求相关的信息来确定是在接收方主处理设备的私有高速缓存存储装置处触发请求修改的执行还是在请求方主处理设备与接收方存储设备之间共享的共享存储位置(诸如前述共享高速缓存)处触发请求修改的执行。
这些确定允许在这样的情况下向共享存储装置诸如共享高速缓存提供数据,其中这样做将是总体有利的,即使当接收方处理设备仍然需要访问数据时也是如此。
以例示的方式,为了在接收方设备的私有高速缓存中执行修改:请求从请求方设备发送到主节点,并且从该主节点发送到接收方设备;然后执行修改,之后将响应从接收方发送到请求方设备。从接收方设备的角度来看,该方法更有效,因为这意味着即使数据如请求方设备所请求的那样被修改,数据也可以唯一一致性状态保持在接收方设备处。
相反,在本具体实施中:如果要在共享存储装置中执行修改(这在数据未以唯一一致性状态存储在接收方设备的私有高速缓存中的情况下是可能的),则请求从请求方设备发送到主节点;然后执行修改,之后将响应发送到请求方设备。因此,执行的传输少于在接收方设备的私有高速缓存中执行修改的情况,因此(从请求方设备的角度来看)在请求方设备发出请求与接收响应之间存在较低时间延迟。
因此,在执行接收方设备的私有高速缓存中的修改(如果接收方设备比系统的请求方设备或其他处理设备更可能再次需要数据,则更好地实现总体性能)以及执行共享存储装置中的修改(如果请求方设备或其他处理设备比接收方设备更可能再次需要数据,则更好地实现总体性能)之间可能存在权衡。在下面的示例中,关于接收方设备和其他处理设备对数据的潜在使用的信息可用于决定接收方设备是否优选地本地执行请求修改,或者放弃控制并允许在共享位置中执行修改。
可以各种方式执行确定在何处执行给定的请求修改。例如,与前述确定所基于的与请求相关的信息可包括从主节点设备接收的关于数据的修改请求的数量的计数。计数器可以是单个位,使得在从不同处理设备接收的单个请求之后将数据返回到共享高速缓存,以修改该数据。另选地,可使用多位计数器来跟踪修改请求的数量。如果指定同一地址的修改请求的数量达到阈值(例如,在1位计数器的情况下为1),则修改请求可触发接收方放弃唯一一致性状态(如果需要)并向共享位置或请求方设备的高速缓存提供控制以执行修改。
另选地或除此之外,与请求相关的信息可包括对于修改从主节点设备接收的数据的未决请求的队列的占用率。类似于所接收的请求的计数器,可采用高于阈值的队列占用率来指示通过将所考虑的数据返回到共享高速缓存将更有效地服务请求。
另选地或除此之外,与请求相关的信息可包括高速缓存替换策略信息,诸如访问所考虑的数据项的新近度。例如,如果数据项最近被接收方设备访问,则其可被保持在接收方设备的私有高速缓存存储装置中。相反,如果数据项最近未被接收方设备访问,则其可返回到共享高速缓存或被提供给请求方设备的高速缓存。这利用了以下事实:最近由接收方设备访问的数据在不久的将来可能更可能被接收方设备再次需要,使得如果接收方设备可以本地执行请求修改使得其可以保持唯一一致性状态,则这可以是总体系统性能可能更大的指示,即使这从请求方设备的角度来看将更慢地服务于修改请求。
在另一个示例中,如果期望请求方设备和接收方设备在不久的将来都不使用数据项,则数据项可返回到共享设备。
在示例中,与接收方主处理设备相关联的私有高速缓存存储装置包括第一级高速缓存和第二级高速缓存,使得较低的访问延迟与第一级高速缓存相关联而不是与第二级高速缓存相关联。然后,与请求相关的前述信息可包括数据是在第一级高速缓存中还是在第二级高速缓存中的指示。例如,当数据在第一级高速缓存中时,可假设数据可能被接收方设备再次需要,并且请求修改可在接收方设备的私有高速缓存中执行。相反地,当数据在第二级高速缓存中时,可假设数据不太可能被接收方设备再次需要(例如,通过已从第一级高速缓存逐出),因此,将与在共享高速缓存中执行修改(和类似的未来修改请求)相关联的请求方设备的性能增益将胜过将与在其私有高速缓存中执行修改相关联的接收方设备中的性能增益。因此,数据可返回到共享高速缓存。
在一个示例中,接收方主处理设备被配置为在包括数据的高速缓存行无效同时请求未决时,缓冲无效请求以在执行请求之后执行。如果要立即接受这种无效,则在一些示例中,将数据置于中间一致性状态下,从而指示其处于更新和无效状态。
向主节点发出关于请求的失败通知。然后,可例如通过在共享高速缓存中执行修改或将失败通知转发到请求设备来视情况处理失败请求。
在另一个示例中,不发出失败通知,而是缓冲无效,直到已经执行请求。另选地,接收方设备可使用无效来确定应将数据项返回到共享高速缓存以用于执行请求。
在一个示例中,与接收方主设备相关联的私有高速缓存存储装置被配置为在执行请求修改之后更新与包括经修改的数据的高速缓存行相关联的替换策略信息,以增加高速缓存行被选择用于在未来高速缓存逐出中逐出的概率。更新替换策略可包括将高速缓存行指示为最近最少使用的高速缓存行。然后,后续高速缓存丢失可导致该数据从高速缓存逐出,从而如果接收方设备不频繁需要数据,则将该数据返回到共享高速缓存。
在一个示例中,与接收方主处理设备相关联的私有高速缓存存储装置被布置成响应于请求而向请求方主处理设备和主节点设备中的至少一者提供返回值。如果发送到主节点设备,则主节点设备可将返回值转发到请求方主处理设备并且/或者将对应的高速缓存行指示为不处于脏状态。请求修改可以例如是操作的一部分,诸如需要返回值的原子操作。返回值可在传输中提供,该传输的大小小于所述私有高速缓存存储装置的高速缓存行大小。因此,相对于其中向请求访问数据的设备提供包括数据的高速缓存行的比较系统,带宽减小。
现在将参考附图描述本公开的示例。
图1示意性地示出了不实现本公开的上述示例的比较处理系统100。系统100包括请求主处理设备105和接收方主处理设备110。系统100可例如为多核处理器,其中设备105、110为处理核。每个设备105、110具有相关联的私有高速缓存存储装置115、120。私有高速缓存是具有第一级高速缓存L1和第二级高速缓存L2的多级高速缓存。
系统100还包括主节点设备125,该主节点设备经由接口130(例如片上网络接口)与设备105、110及其相关联的私有高速缓存115、120通信。主节点设备125具有相关联的共享高速缓存135。可从主存储器140检索数据并将其高速缓存在共享高速缓存135中,以供请求设备105和接收方设备110访问。
如上所述,如果设备105、110中的仅一者需要访问特定地址的高速缓存数据,则可通过授权该设备105、110独占访问所考虑的数据并将数据的副本存储在该设备105、110的私有高速缓存115、120中来减少开销。当数据以独占一致性状态被高速缓存时,不必由通信到主节点或其他设备的该设备对数据进行修改,直到从该设备的私有高速缓存逐出数据。相比之下,当数据以共享一致性状态被高速缓存时,由一个设备105、110进行的修改被发信号通知主节点设备125,该主节点设备可触发可正在高速缓存同一数据的其他设备,以使来自同一地址的数据的任何本地(现已过期)副本无效。
现在将描述操作流程,请求设备105可通过该操作流程请求对接收方设备110已被授予独占访问的数据执行操作,该数据存储在其私有高速缓存120中。
请求设备105向其私有高速缓存115发出关于操作的请求。确定数据不存在于其私有高速缓存115中,并且该请求经由接口130转发到主节点设备125。
在主节点设备处,确定数据被存储在接收方设备110的私有高速缓存120中(或者另选地,如果主节点不保留哪些高速缓存正在存储哪些地址的记录,则主节点可简单地将无效请求广播到可从所请求的地址高速缓存数据的所有其他设备)。从主节点设备125向接收方设备110的私有高速缓存120发出关于数据的无效请求。然后,包含数据的高速缓存行在私有高速缓存120中无效,并且(如果脏的话)回写到共享高速缓存135。
然后,由主节点设备125的算术逻辑单元145对共享高速缓存135中的数据执行所请求的操作。最后,将操作的返回值传输到请求设备105。另选地,可将数据传输到请求设备105的私有高速缓存115,以供请求设备105执行操作。
如上所述,系统100内的所述操作流程通过在可执行操作之前使来自接收方设备110的私有高速缓存120的数据无效并回写该数据导致性能损失。在接收方设备110稍后需要访问数据的情况下,这些损失被加剧,使得数据必须返回到其私有高速缓存120或保留在共享高速缓存135中(从而在接收方主设备110再次需要同一数据时,导致该接收方主设备的访问延迟增加)。如上所述,这可能导致效率低下的“乒乓”效应,其中数据在请求设备105的私有高速缓存120与接收方设备110的私有高速缓存120之间来回传递。
图2示意性地示出了根据本公开的示例的示例性系统200,其中减轻了上述性能损失。
系统200包括请求主处理设备205、接收方主处理设备210、与其相关联的私有高速缓存215、220、与共享高速缓存235相关联的主节点设备225、接口230和主存储器240,它们中的每一者以与上述系统100的同名部件类似的方式操作,不同之处如下所述。
现在将描述操作流程,请求设备205可通过该操作流程请求对接收方设备210已被授予独占访问的数据执行操作,该数据存储在其私有高速缓存220中。可以看出,该流程减轻了与系统100相关联的上述性能损失。
请求设备205向其私有高速缓存215发出关于操作的请求。确定所考虑的数据未存储在私有高速缓存215中,并且该请求因此经由接口230转发到主节点设备225,如上文相对于图1所述。
主节点设备确定数据被存储在接收方设备的私有高速缓存220中。然后,将该请求转发到该私有高速缓存220,在该私有高速缓存处,所请求的操作由私有高速缓存220的算术逻辑单元245执行。转发功能可通过使用被配置为支持此类转发的片上网络或互连通信协议来实现。然后,操作的返回值经由接口230返回到请求设备205。
如上所述,系统200允许请求方主处理设备请求关于存储在接收方主处理设备的私有高速缓存中的数据的操作,然后在接收方主处理设备的私有高速缓存中执行。因此,减轻了与系统100中的所考虑的数据的无效和回写相关联的上述性能损失。具体地讲,避免了前述“乒乓”效率低下。在请求主设备205需要间歇访问数据并且接收方主设备210需要更频繁访问数据的情况下,当前描述的布置特别有效。
此外,主节点设备225必须仅转发请求,而不执行所请求的操作,也不处理返回值的返回。由此改善了主节点设备225的性能。该方法是不寻常的,因为通常当数据以唯一一致性状态高速缓存在特定主设备210的私有高速缓存220内时,将被允许修改该数据的唯一设备将是主设备210本身,但是在图2所示的该操作流程中,请求主设备205能够触发数据的修改,同时数据以唯一一致性状态保留在接收方主设备210中。该方法不仅可用于原子请求,而且可用于非时间存储操作,或其中请求主设备205请求修改与特定地址相关联的数据但不需要将数据返回到其自身的私有高速缓存215的其他操作。
图3是示出根据本公开的示例的方法的流程图。
在框305处,用于修改数据的请求从请求方设备发送到其私有高速缓存。
在框310处,确定私有高速缓存中是否存在关于数据的高速缓存命中,如果存在,则确定数据是否具有唯一一致性状态。如上所述,唯一一致性状态是这样的一致性状态,其中保持高速缓存数据的设备能够本地修改数据,而不通知系统的主节点或其他设备,该主节点或其他设备可能保持同一地址的高速缓存的数据。如果存在高速缓存命中并且数据具有唯一一致性状态,则在框315处在私有高速缓存中执行请求修改。
否则,流程前进至框320,在此处将请求转发到主节点设备。
在框325处,确定数据是否以唯一一致性状态存储在与接收方设备相关联的私有高速缓存中。如果否,则流程前进至框330,在此处对与主节点设备相关联的共享高速缓存中的数据执行请求修改。
否则,流程前进至框335,在此处将请求转发到接收方设备。
在框340处,确定是在接收方设备处执行修改,还是将数据返回到中心位置,诸如前述主节点。如上所述,该确定可基于各种因素,诸如所接收的请求的计数器的值和/或请求队列的占用率。
如果确定在中心位置处执行请求,则流程前进至框345,在此处将数据返回到中心位置。
如果确定在接收方设备处执行修改,则流程前进至框350,在此处在接收方设备的私有高速缓存中执行请求修改。
图4是示出根据本公开的示例的主节点设备中的方法的流程图。如上所述,主节点设备与各种主处理设备通信地耦接。
在框405处,接收用于修改数据的请求,该请求已从请求方主处理设备转发。
在框420处,确定与请求相关联的信息。该信息可包括接收的关于数据的修改请求的数量的计数、对于修改数据的未决请求的队列的占用率以及高速缓存替换策略信息(诸如访问所考虑的数据项的新近度)中的一者或多者。
在框425处,基于与请求相关联的前述信息,确定是在共享高速缓存中执行请求还是在数据被存储在其中的私有高速缓存中执行请求。例如,如上所述,确定在共享高速缓存中执行请求可响应于所接收的请求的计数超过阈值。另选地或除此之外,该确定可响应于未决请求的队列的占用率超过阈值。该确定可响应于最后一次访问所考虑的数据不是最近的。该确定可响应于数据被存储在其中的特定高速缓存级,例如第一级高速缓存或第二级高速缓存。
如果确定在共享高速缓存中执行请求,则流程前进至框430,在此处将数据带到共享高速缓存,例如包括使数据被存储在其中的私有高速缓存中的该数据无效。然后,在共享高速缓存中执行该请求。
如果确定在私有高速缓存中执行请求,则流程前进至框435,在此处转发该请求以在私有高速缓存中执行。例如,该请求可被单播到该私有高速缓存。另选地,该请求可被广播到所有主处理设备的私有高速缓存,并且被除数据被存储在其处的设备之外的所有设备忽略。
在本申请中,字词“被配置为…”用于意指装置的元件具有能够执行所限定的操作的配置。在该上下文中,“配置”意指硬件或软件的互连的布置或方式。例如,该装置可具有提供所限定的操作的专用硬件,或者可对处理器或其他处理设备进行编程以执行该功能。“被配置为”并不意味着装置元件需要以任何方式改变以便提供所限定的操作。
虽然本文已结合附图详细描述了本发明的示例性实施方案,但应当理解,本发明并不限于那些精确的实施方案,并且在不脱离所附权利要求书所限定的本发明的范围和实质的前提下,本领域的技术人员可在其中实现各种变化和修改。

Claims (22)

1.一种装置,包括:
请求方主处理设备,所述请求方主处理设备具有相关联的私有高速缓存存储装置,所述相关联的私有高速缓存存储装置用于存储供所述请求方主处理设备访问的数据,所述请求方主处理设备被布置成发出用于修改数据的请求,所述数据与给定存储器地址相关联并存储在与接收方主处理设备相关联的私有高速缓存存储装置中,与所述接收方主处理设备相关联的所述私有高速缓存存储装置被布置成存储供所述接收方主处理设备访问的数据;和
所述接收方主处理设备,所述接收方主处理设备具有其私有高速缓存存储装置,
所述接收方主处理设备及其相关联的私有高速缓存存储装置中的一者被布置成在所述数据被存储在与所述接收方主处理设备相关联的所述高速缓存存储装置中的同时执行所述数据的请求修改。
2.根据权利要求1所述的装置,其中所述接收方主处理设备及其相关联的私有高速缓存存储装置中的所述一者被布置成在所述数据以唯一一致性状态存储在与所述接收方主处理设备相关联的所述高速缓存存储装置中的同时执行所述数据的所述请求修改。
3.根据权利要求1或权利要求2所述的装置,其中所述请求修改是能够在不将所述数据高速缓存在与所述请求方主设备相关联的所述私有高速缓存存储装置中的情况下执行的修改。
4.根据任一前述权利要求所述的装置,其中所述请求是用于执行包括所述请求修改的原子更新操作的请求。
5.根据权利要求4所述的装置,其中与所述接收方主处理设备相关联的所述私有高速缓存存储装置包括用于执行所请求的原子操作的算术逻辑单元。
6.根据权利要求1至3中任一项所述的装置,其中所述请求是用于执行包括所述请求修改的非时间存储操作的请求。
7.根据任一前述权利要求所述的装置,包括主节点设备,所述主节点设备用于:
从所述请求方主处理设备接收所述请求;以及
将所述请求转发到与所述接收方主处理设备相关联的所述私有高速缓存存储装置。
8.根据权利要求7所述的装置,包括与所述主节点设备相关联的共享高速缓存,所述共享高速缓存用于存储供所述请求方主处理设备和所述接收方主处理设备访问的数据。
9.根据权利要求7或权利要求8所述的装置,其中与所述接收方主处理设备相关联的所述私有高速缓存存储装置被布置成基于与所述请求相关的信息来确定是否向所述主节点设备提供所述数据并将所述数据转变到非唯一一致性状态。
10.根据权利要求9所述的装置,其中当确定向所述主节点设备提供所述数据时,与所述接收方主处理设备相关联的所述私有高速缓存存储装置被布置成抑制在所述私有高速缓存存储装置处执行所述请求修改。
11.根据权利要求9或权利要求10所述的装置,其中与所述接收方主处理设备相关联的所述私有高速缓存存储装置被布置成在执行所述请求修改之后执行所述确定。
12.根据权利要求7至11中任一项所述的装置,其中所述主节点设备被布置成基于与所述请求相关的信息来确定是在所述接收方主处理设备的所述私有高速缓存存储装置处触发所述请求修改的执行还是在所述请求方主处理设备与所述接收方存储设备之间共享的共享存储位置处触发所述请求修改的执行。
13.根据权利要求12所述的装置,其中与所述请求相关的所述信息包括以下项中的至少一者:
从所述主节点设备接收的关于所述数据的修改请求的数量的计数;
对于修改从所述主节点设备接收的数据的未决请求的队列的占用率;和
高速缓存替换策略信息。
14.根据权利要求12或权利要求13所述的装置,其中:
与所述接收方主设备相关联的所述私有高速缓存存储装置包括第一级高速缓存和第二级高速缓存;并且
与所述请求相关的所述信息包括数据是在所述第一级高速缓存中还是在所述第二级高速缓存中的指示。
15.根据权利要求7至14中任一项所述的装置,其中所述接收方主处理设备被配置为在包括所述数据的高速缓存行失效同时所述请求未决时:
缓冲所述无效;
将所述数据置于中间一致性状态;或者
向所述主节点发出关于所述请求的失败通知。
16.根据权利要求7至15中任一项所述的装置,其中所述主节点设备被布置成:
确定所述数据以唯一一致性状态存储在与所述接收方主处理设备相关联的所述私有高速缓存存储装置中;以及
响应于确定,执行所述转发。
17.根据任一前述权利要求所述的装置,其中与所述接收方主设备相关联的所述私有高速缓存存储装置被配置为在执行所述请求修改之后更新与包括经修改的数据的高速缓存行相关联的替换策略信息,以增加所述高速缓存行被选择用于在未来高速缓存逐出中逐出的概率。
18.根据权利要求17所述的装置,其中所述更新所述替换策略包括将所述高速缓存行指示为最近最少使用的高速缓存行。
19.根据任一前述权利要求所述的装置,其中与所述接收方主处理设备相关联的所述私有高速缓存存储装置被布置成响应于所述请求而向所述请求方主处理设备和主节点设备中的至少一者提供返回值。
20.根据权利要求19所述的装置,其中与所述接收方主处理设备相关联的所述私有高速缓存存储装置被布置成在传输中提供所述返回值,所述传输的大小小于所述私有高速缓存存储装置的高速缓存行大小。
21.一种主节点装置,包括:
接收电路,所述接收电路用于从请求方主处理设备接收用于修改与给定存储器地址相关联的数据的请求;
转发电路,所述转发电路用于将所述请求转发到与接收方主处理设备相关联的私有高速缓存存储装置,以用于在所述数据以唯一一致性状态存储在与所述接收方主处理设备相关联的所述私有高速缓存存储装置中的同时,对所述数据执行的请求修改。
22.一种装置,包括:
接收方主处理设备;和
私有高速缓存存储装置,所述私有高速缓存存储装置用于存储供所述接收方主处理设备访问的数据,其中:
所述私有高速缓存存储装置被布置成从主节点设备接收用于修改与给定存储器地址相关联的数据的转发请求,所述转发请求源自请求方主处理设备;并且
当所述数据以唯一一致性状态存储在所述私有高速缓存存储装置中时,所述接收方主处理设备和所述私有高速缓存存储装置中的一者被布置成执行所述高速缓存存储装置中的所述数据的所述请求修改。
CN201980065855.3A 2018-11-07 2019-08-27 修改存储数据的装置和方法 Active CN112955877B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/182,741 US10776266B2 (en) 2018-11-07 2018-11-07 Apparatus and method of modification of stored data
US16/182,741 2018-11-07
PCT/GB2019/052384 WO2020095018A1 (en) 2018-11-07 2019-08-27 Apparatus and method of modification of stored data

Publications (2)

Publication Number Publication Date
CN112955877A true CN112955877A (zh) 2021-06-11
CN112955877B CN112955877B (zh) 2024-07-02

Family

ID=67777363

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980065855.3A Active CN112955877B (zh) 2018-11-07 2019-08-27 修改存储数据的装置和方法

Country Status (5)

Country Link
US (1) US10776266B2 (zh)
JP (1) JP2022509735A (zh)
CN (1) CN112955877B (zh)
GB (1) GB2591049B (zh)
WO (1) WO2020095018A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101004710A (zh) * 2006-01-17 2007-07-25 国际商业机器公司 数据处理系统、高速缓存系统和方法
CN102016790A (zh) * 2008-04-30 2011-04-13 飞思卡尔半导体公司 数据处理系统中的高速缓存一致性协议
US20110202726A1 (en) * 2010-02-12 2011-08-18 Arm Limited Apparatus and method for handling data in a cache
US20130282952A1 (en) * 2012-04-18 2013-10-24 Fujitsu Limited Storage system, storage medium, and cache control method
CN105579978A (zh) * 2013-10-31 2016-05-11 英特尔公司 用于动态控制高速缓存存储器的寻址模式的方法、设备和系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6601144B1 (en) * 2000-10-26 2003-07-29 International Business Machines Corporation Dynamic cache management in a symmetric multiprocessor system via snoop operation sequence analysis
US7363462B2 (en) * 2003-04-04 2008-04-22 Sun Microsystems, Inc. Performing virtual to global address translation in processing subsystem
US7984244B2 (en) * 2007-12-28 2011-07-19 Intel Corporation Method and apparatus for supporting scalable coherence on many-core products through restricted exposure
WO2010096263A2 (en) * 2009-02-17 2010-08-26 Rambus Inc. Atomic-operation coalescing technique in multi-chip systems
CN102270180B (zh) 2011-08-09 2014-04-02 清华大学 一种多核处理器系统的管理方法
US9235519B2 (en) 2012-07-30 2016-01-12 Futurewei Technologies, Inc. Method for peer to peer cache forwarding
US10157133B2 (en) 2015-12-10 2018-12-18 Arm Limited Snoop filter for cache coherency in a data processing system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101004710A (zh) * 2006-01-17 2007-07-25 国际商业机器公司 数据处理系统、高速缓存系统和方法
CN102016790A (zh) * 2008-04-30 2011-04-13 飞思卡尔半导体公司 数据处理系统中的高速缓存一致性协议
US20110202726A1 (en) * 2010-02-12 2011-08-18 Arm Limited Apparatus and method for handling data in a cache
US20130282952A1 (en) * 2012-04-18 2013-10-24 Fujitsu Limited Storage system, storage medium, and cache control method
CN105579978A (zh) * 2013-10-31 2016-05-11 英特尔公司 用于动态控制高速缓存存储器的寻址模式的方法、设备和系统

Also Published As

Publication number Publication date
GB2591049A (en) 2021-07-14
US20200142826A1 (en) 2020-05-07
GB2591049B (en) 2022-11-09
CN112955877B (zh) 2024-07-02
WO2020095018A1 (en) 2020-05-14
JP2022509735A (ja) 2022-01-24
GB202103846D0 (en) 2021-05-05
US10776266B2 (en) 2020-09-15

Similar Documents

Publication Publication Date Title
US8015365B2 (en) Reducing back invalidation transactions from a snoop filter
US8806148B2 (en) Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration
US7827354B2 (en) Victim cache using direct intervention
US9176876B2 (en) Selective cache-to-cache lateral castouts
US8499124B2 (en) Handling castout cache lines in a victim cache
US7467323B2 (en) Data processing system and method for efficient storage of metadata in a system memory
US8117397B2 (en) Victim cache line selection
US7281092B2 (en) System and method of managing cache hierarchies with adaptive mechanisms
US8225045B2 (en) Lateral cache-to-cache cast-in
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US20060184743A1 (en) Cache memory direct intervention
US20070136535A1 (en) System and Method for Reducing Unnecessary Cache Operations
US7454577B2 (en) Data processing system and method for efficient communication utilizing an Tn and Ten coherency states
US20100235584A1 (en) Lateral Castout (LCO) Of Victim Cache Line In Data-Invalid State
US6345341B1 (en) Method of cache management for dynamically disabling O state memory-consistent data
US20140006716A1 (en) Data control using last accessor information
US8230178B2 (en) Data processing system and method for efficient coherency communication utilizing coherency domain indicators
US7366844B2 (en) Data processing system and method for handling castout collisions
US6397303B1 (en) Data processing system, cache, and method of cache management including an O state for memory-consistent cache lines
US8489822B2 (en) Providing a directory cache for peripheral devices
US6356982B1 (en) Dynamic mechanism to upgrade o state memory-consistent cache lines
CN112955877B (zh) 修改存储数据的装置和方法
US6349368B1 (en) High performance mechanism to support O state horizontal cache-to-cache transfers
US11748280B2 (en) Broadcast scope selection in a data processing system utilizing a memory topology data structure

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