CN102541465B - 利用回写排序的连贯性控制电路及设备 - Google Patents

利用回写排序的连贯性控制电路及设备 Download PDF

Info

Publication number
CN102541465B
CN102541465B CN201110302096.3A CN201110302096A CN102541465B CN 102541465 B CN102541465 B CN 102541465B CN 201110302096 A CN201110302096 A CN 201110302096A CN 102541465 B CN102541465 B CN 102541465B
Authority
CN
China
Prior art keywords
write
transactions requests
starter
data item
continuity
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
Application number
CN201110302096.3A
Other languages
English (en)
Other versions
CN102541465A (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.)
Anne science and Technology (China) Co., Ltd.
ARM Ltd
Original Assignee
Advanced Risc Machines 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 Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN102541465A publication Critical patent/CN102541465A/zh
Application granted granted Critical
Publication of CN102541465B publication Critical patent/CN102541465B/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/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
    • 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
    • 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/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • 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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

利用回写排序的连贯性控制电路及设备
技术领域
本发明涉及数据处理领域,并且具体地涉及维持由经由互连(interconnect)连接到用于存储数据的至少一个存储器的多个主控装置(master)组成的系统中的数据的连贯性(coherency),该系统具有用于一个或多个主控装置以及有可能互连中的数据的子集的副本的本地存储装置。
背景技术
存在与如下系统相关联的连贯性问题,在这些系统中,多个启动器设备或主控装置经由互连电路被连接到存储器并且存在被提供用于该互连和/或启动器设备中的数据的子集的本地存储装置。
为了解决这些问题,已设计出了连贯互连,在这些连贯互连中具有用于维持经过它们的事务请求的排序并且用于确保数据项的当前版本被返回(如果该数据项被请求的话)的连贯性控制电路。该连贯性控制电路通过生成探听事务(由探听请求、探听响应以及可选地,探听数据形成)来进行动作,探听事务用于查询诸如缓存之类的本地储存装置的状态以及存储在其中的值并且确保所请求数据的最新版本被返回。当本地储存装置中的副本被覆写以新值时,该本地副本被标记为脏的(dirty)以使得当探听被执行时将会清楚这是该数据项的最近版本。在稍后的某时刻处,该系统将执行回写(writeback)以将该新值写入存储器,于是该本地副本不再被标记为脏的,并且存储器也保存了最近的版本。
该技术认识到,由于与通常在复杂的当代电路上执行的事务相关联的可变延迟,所发出的探听请求和其它事务可能以它们被发出的排序不同的排序来完成。
该技术还认识到,重要的是,对同一地址的回写会以它们被发出的排序完成。如果这不是这样的情况:较早的回写将覆写较晚的回写,并且数据项的过期值将被存储在存储器中。这先前已通过拖延针对访问回写处于未决状态的地址的探听请求的任何响应并请求在稍后再次发送该请求而得到了解决。如果这被实现,则到该地址的任何其它事务不能完成,并且因此,可以保证回写将按正确的排序发生。该技术的缺点包括:在需要完成被拖延的探听以便使另外的请求完成时有发生死锁情形的可能、以及与重新发送探听请求相关联的增加的能耗和延迟。
本发明的实施例力图解决与不按排序进行的回写相关联的问题,且不会不当地增加能耗或降低性能。
发明内容
从第一方面看,本发明提供了一种用于数据处理装置的互连电路,一种用于数据处理装置的互连电路,该互连电路被配置为提供用于将多个启动器设备与至少一个接收设备互连的路线,所述至少一个接收设备中的至少一个包括用于存储将由该处理装置处理的至少一个数据项的至少一个存储器,所述多个启动器设备中的至少一个包括用于存储在所述至少一个存储器中存储的所述数据项的子集的本地副本的缓存,该互连电路包括:多个输入端口,用于接收来自所述多个启动器设备的事务请求;至少一个输出端口,用于将事务请求输出到所述至少一个接收设备;多条路径,用于在所述多个输入与所述至少一个输出之间传送所述事务请求;连贯性控制电路,用于维持去往相同数据存储位置的所述事务请求中的至少一些事务请求行进通过该互连电路的顺序,以便维持由该数据处理装置处理的数据项的连贯性;该互连电路被配置为不利用该连贯性控制电路来控制回写事务请求,以使得所述回写事务请求独立于被路由通过该连贯性控制电路的事务请求而行进,所述回写事务请求是从包括所述缓存的所述至少一个启动器设备接收的写事务请求并且用于利用所述数据项之一的本地存储更新值来更新所述至少一个存储器。
本发明认识到,在具有同一数据项的多个副本的系统中,存在该数据项因为较老版本覆写较新版本而被损坏的可能性。就此而言,系统被设立为使得数据项的最新版本如此被标记,并且如果其被存储在本地,则使得回写功能被提供,其中,在某点时,该数据项的该新版本被写入存储器中以使得该存储器具有更新后的版本。虽然存储器和本地储存装置具有不同版本,但是,重要的是,本地储存装置中的版本被标记为是最新近版本以使得不正确版本不被使用。
该值到存储器的写回不是瞬时事务,而是可能要花费一些时间。例如在如下情况中这本身可能导致问题:一启动器设备正在处理其值的更新版本到存储器的写回,同时另一启动器设备执行到同一地址的读唯一(readunique)。读唯一要求进行读取的设备具有该数据的唯一本地副本。因此,读唯一导致查询或探听被发送给具有本地储存装置的任何其它主控装置,以查看它们是否具有该数据的副本,并且如果具有,则返回该副本(如果是比该读唯一正读取的副本更新近的副本的话)并且使该行无效。如果执行读唯一的主控装置然后修改该数据,则其需要以其修改后的形式被写回到存储器。如果该回写立即被执行,则存在的风险在于其将在较早回写完成之前到达该存储器。如果这发生了,则在后一回写完成之后,该较早的如今过期了的更新值可能被写回到存储器,并且其随后将覆写新的最新值,从而导致所储存数据项的损坏。本发明通过对回写进行排列以使得它们独立于连贯性控制而行进来解决这个问题,并且以这种方式,回写将不会被连贯性电路可能以其他方式排列在在它们前面的其它动作所阻碍。因此,诸如拖延查询请求之类的动作可以安全地被执行,而不会有这些动作导致永远拖延以等待不能完成的某事件的系统的风险。
此外,通过提供不受连贯性控制电路控制的回写路径,这些路径中的延迟被减小并且回写肯定能完成,因此,一回写被另一回写超过的机会减少。
连贯性控制电路被用来控制回写以外的一些事务请求,以维持系统内的连贯性。其可被用来控制一些或所有读取。一般地,可能导致连贯性问题的所有读取受连贯性控制电路控制,因此对未被缓存的或者不可共享的数据的读取不需要连贯性控制,而所有其它读取应当具有连贯性控制。
在一些实施例中,所有读事务受连贯性控制电路控制,并且在其它实施例中,写事务中的至少一些受控制,但是回写事务请求从不受其控制。在一些实施例中,不受控制的写是回写以及针对未被缓存和不可共享的数据项的写。
在一些实施例中,所述事务请求还包括缓存维护请求,所述缓存维护请求通过所述连贯性控制电路被发送。
除了读事务和写事务以外,还可以存在通过互连被发送的缓存维护请求。这些请求帮助维持存储在不同缓存中的数据的连贯性并且需要由连贯性控制电路控制。这些缓存维护请求包括诸如干净唯一之类的事项,当其被发出给缓存时,将所有脏数据返回给互连并且将存储位置更新为无效的。互连负责更新存储器。
互连可以具有专用于读得路径和专用于写的路径。如果是这种情况,则这些可以通过互连独立地被发送并且这使得回写能够在不受任何读干扰的情况下行进。
在一些实施例中,所述缓存维护请求沿着所述读路径被发送。
缓存维护请求可以沿着可用路径中的任何路径被发送,但是在一些实施例中,它们沿着读路径被发送。读路径经过缓存连贯性控制电路,因此,如果缓存维护操作沿着这些路径,则它们可受该电路控制。这是有利的,因为这些请求对连贯性有影响并且应当受互连控制。
在一些实施例中,经过所述连贯性控制电路的所述写和读路径经过至少一点的序列(atleastonepointofserialisation)中的一点。
连贯性控制电路控制事务被执行的定时和顺序来维持连贯性。进入该电路的事务请求可以经过序列的点,因此,在此点处在它们之前的任何事务将影响这些事务请求被执行的时间。可以在序列的该点之后存在一些用于对事务重新排序的装置,但是由于经过序列的点这一本质,它们将在一定程度上被在它们之前的事务请求延迟。
在一些实施例中,所述连贯性控制电路被配置为通过生成查询事务来维持由所述数据处理装置处理的数据项的连贯性,所述查询事务用于避免所述多个启动器设备中的任一个上的缓存内的本地存储数据与从所述多个启动器设备中的另一个接收的事务请求之间的任何连贯性冲突。
连贯性控制电路可以生成查询事务,查询事务查询本地储存装置以查看它们是否储存了事务请求所请求的数据项的本地副本。
在一些实施例中,所述输入端口中的至少一个输入端口包括与之相关联的数据储存装置,用于存储由连接到该至少一个输入端口的所述启动器处理的数据项的本地副本,所述数据项的所述本地副本的连贯性由所述连贯性控制电路控制。
使得端口具有与之相关联的用于储存数据项的本地副本的数据储存装置可以是有利的。例如,在不具有其自己的数据储存装置的老式组件被连接到该互连的情况中,在互连上提供它们可使用的本地数据储存装置可以使得它们能够以与其它设备兼容的方式来工作。此外,在设备具有缓存的情况中,在互连上提供数据储存装置允许数据项被写入该设备而无需分配该缓存内的行。然而应注意,从启动器设备到该数据储存装置的写入要经过端口,因此,将延迟由启动器设备发出的其它写,例如回写。因此,在系统正使用这样的互连的情况中,在由启动器设备发出的任何写在该数据存储装置中待决时,启动器设备可能需要限制其回写功能。
应注意,当对该本地数据储存装置写入时,写唯一被使用。写唯一是这样的写,其要求只存在将要写的数据项的一个本地副本,以使得在任何其它数据储存装置中没有该数据项的老旧副本。因此,响应于写唯一,查询请求被发送给其它本地储存装置以确保使得该数据项的任何副本无效。如果数据项的最新近值被储存在本地,则该值在其被使得无效之前被返回。应注意,虽然每个端口可以具有其自己的数据储存装置,但是可以使单个数据储存装置在多个端口之间被共享,以使得每个端口可以使用该数据储存装置来储存待决(pending)的写唯一。这显然具有面积优点,但可能具有性能牵连。
虽然该数据储存装置可以采取多种形式,但是在一些实施例中,其包括诸如单行缓存之类的小型缓存。
在一些实施例中,所述输入端口中的至少一个输入端口包括用于保持所接收的事务请求的装置,该至少一个输入端口被配置为向所述其它启动器设备中的至少一个发送与所保持的事务请求有关的至少一个查询,并且响应于接收到响应,将所述响应于所保持的事务请求相关联并且进一步发送它们。
在一些实施例中,不是具有用于存储将被处理的数据项的数据储存装置,而是该系统可以仅仅在查询被发送时保持待决的事务请求。查询的结果和事务请求随后可以进一步被发送。这意味着数据不必本地地被存储并且这减少了门数,但是可能增加延迟。
在一些实施例中,所述至少一个接收设备被配置为接收写事务请求和读事务请求两者并且按照由存储器控制器确定的顺序来处理所述读事务请求和写事务请求,所述连贯性控制电路被配置为不进一步发送读事务请求直到所述连贯性控制电路能够保证所述读事务请求完成为止。
一些接收设备可以不独立地处理读和写,从而使得一种类型的事务阻碍了另一类型的事务。如果互连不接受在飞行中的读取,则这可以导致从存储器控制器施加反压力,并且可以导致接收设备不再对写作出响应。如果是这样情况,则存在的危险在于已被发送给存储器设备的回写可能被读阻挡。如果想要能够确保回写在执行另一事务之前完成,则使得回写不被其它事务阻挡是重要的。因此,在本发明的实施例中,连贯性控制电路被配置为不进一步发送读事务请求直到可以保证其能完成为止。因此,如果存在可能对读的完成有影响的未解决事务请求,则其将不被进一步发送,因此,其在接收设备中不能位于回写请求之前直到得知其将完成为止。
在一些实施例中,所述连贯性控制电路被配置为响应于向一存储位置写入的写唯一事务的接收,向所述启动器设备中的可能存储有存储在该存储位置中的数据项的本地副本的至少一个启动器设备发出至少一个查询,并且仅当其从针对所述至少一个查询的响应中清楚了所述数据将被所述写事务检索时才进一步发送所述写事务。
由于在接收设备中回写可能被阻挡在读和写两者之后,因此重要的是,在这两者被发出给接收设备之前得知它们能够完成,以使得不会出现如下状况:系统在执行其他动作之前要等待回写完成,然而其它动作的不执行又阻止了回写的完成。
本发明的第二方面提供了一种启动器设备,一种启动器设备,包括:缓存,用于存储存储器中所存储的数据项中的至少一个数据项的本地副本,所述至少一个启动器被配置为通过响应于本地存储的数据项被更新,将所述本地存储的数据项标记为脏的直到所述至少一个启动器执行了回写操作并将更新数据项写入所述存储器为止,从而维持本地存储的所述至少一个数据项的连贯性;至少一个端口,用于向至少一个接收设备发送事务请求并且用于接收查询所述缓存的数据和查询请求;其中所述启动器设备被配置为:如果到所述缓存内的存储位置的回写事务待决则不发出对用于查询该存储位置的状态的请求的接收的响应,并且在待决的所述回写事务已完成时发出所述响应,回写事务请求是由所述启动器设备发出的用于利用存储在所述缓存中的自身已被更新的数据项的值来更新所述存储器的请求,以使得所述存储器存储所述数据项的当前值。
如前面提到的,到存储器的回写要在对该数据的后一版本的另一回写到达存储器之前完成是很重要的。解决此的一种方式可以是拖延去往针对其的回写当前正被执行的数据项的存储位置的任何查询事务。如果这被执行,则到该存储位置的任何其它事务无法完成,因此,可以确保回写将以正确的顺序发生。其的一个潜在缺点在于,回写本身完不成,这是因为它被事务请求阻挡,而该事务请求本身因为等待来自正在拖延直到回写完成为止的启动器的结果而处于待决的状态中。然而,如果互连被设计为使得回写必须完成,则为启动器设备提供如下能力可以提供确保回写的连贯性的高效节能的快速方式:该能力为在到该位置的回写待决时不对任何查询进行回复。应注意,以前对此的处理方式是通过告知某个东西现在不能回复并且该请求应当在稍后再次被发送来对查询或探听进行回复。其缺点是需要稍后发送该请求所需的电能以及要考虑与稍后发送该请求相关联的时序。
在一些实施例中,所述启动器设备被配置为发出写唯一事务,写唯一事务是到存储位置的写事务,其中,写唯一事务确保使得存储在所述存储位置的数据项的任何本地副本无效,所述启动器被配置为当写唯一事务待决时不发出回写事务。
写唯一事务要求它们是对数据项的唯一本地副本的写,因此,查询请求响应于写唯一事务被发送出,以确保数据的任何其它本地副本被检索到并适当地被标记为无效或者仅被标记为无效。从启动器设备的端口发出的、被拖延以等待来自其查询的响应的写唯一事务可以将回写请求拖延到其后面。因此,为了避免回写请求响应于查询被拖延的任何可能性,启动器设备可被配置为如果存在待决的写唯一请求,则不启动回写请求。回写请求不必在任何特定时间被发出,因为如果另一启动器需要该数据项的副本,则其将总是查询其它本地数据储存装置并且在任何情况中将找到它。
在一些实施例中,所述启动器设备包括缓存并且被配置为发出写唯一事务,写唯一事务是到一位置的写事务,其中所述位置存储数据项的唯一本地副本,所述启动器被配置为响应于所述缓存中的任何行是脏的,来发出所述写唯一事务。
在一些情形中,缓存可被设计为使得如果查询请求查询被标记为脏的储存位置,则该缓存将该值写入存储器而不是响应于该查询返回数据值。这确保了查询该数据项的设备随后可以从存储器检索到它。虽然该实现方式较慢,但是与脏数据被发送给发出该查询的设备相比,其需要更少的数据路径用于从一个缓存向另一缓存发送数据的。在此实现方式中,当存在脏的任何缓存行时,启动器设备不应当发出写唯一事务。这是因为对于该实现方式来说,对脏的行的访问将触发回写,并且当写唯一待决时回写事务不被允许,但是在此情况中,回写事务被需要并且不能被延迟,因此在此情况中写唯一不应被允许。
本发明的第三方面提供了一种数据处理装置,包括:多个启动器,被配置为发出多个事务请求;至少一个接收器,被配置为接收所述多个事务请求,所述至少一个接收器中的至少一个包括用于存储由所述数据处理装置处理的数据项的存储器;所述多个驱动器中的至少一个包括根据本发明第二方面所述的启动器;以及根据本发明第一方面所述的互连电路。
提供保证回写能完成的系统允许去往回写待决的存储位置的任何查询被延迟直到回写完成为止,并且避免回写以不正确排序完成的任何可能性。这允许具有拖延查询请求的启动器设备被连接到互连。
在一些实施例中,当互连电路具有本地数据储存装置,使得写唯一能够由启动器设备写入互连而被执行时,则使用如下这样的启动器是有利的:如果设计为使得回写通过查询请求被触发时,当写唯一待决时其不允许回写发生或者当缓存中存在脏的行时其不允许写唯一发生。
应注意,虽然在一些实施例中,启动器可以都具有缓存,但是在其它实施例中,可以存在没有缓存的至少一些启动器。
本发明的第四方面提供了一种维持连贯性的方法,包括以下步骤:从包括缓存的启动器经由互连向存储器发出回写请求,所述回写事务请求是用于利用所述缓存上本地存储的数据项的更新值来更新所述存储器的写事务请求;响应于在所述启动器处接收到用于查询所述缓存中的、所述回写事务针对其待决的存储位置的状态的请求,允许所述回写请求独立于被路由通过连贯性控制电路的事务请求而行进通过所述互连,在待决的所述回写事务已完成之前不对所述查询请求作出响应。
从结合附图阅读的说明性实施例的以下详细描述中将清楚本发明的以上的和其它目标特征和优点。
附图说明
图1示意性地示出了根据本发明实施例的数据处理装置。
图2示意性地示出了具有连贯性控制电路的互连电路;
图3示意性地示出了连接到两个主控装置的互连电路。
图4示意性地示出了具有缓存的主控装置;
图5示意性地示出了具有与图4的缓存不同配置的缓存的主控装置;
图6示出了图示出根据本发明实施例的用于确保回写请求的排序将被维持的方法中的步骤的流程图;以及
图7示出了图示出根据本发明实施例的在启动器设备内执行的方法中的步骤的流程图。
具体实施方式
图1示出了根据本发明实施例的数据处理装置5。数据处理装置5包括两个启动器设备10和15、互连50以及存储器30。启动器设备10具有用于存储数据的本地副本的缓存12并且经由输入端口40与互连50通信。输入端口40接收来自启动器设备10的事务请求和数据并且将这些发送给互连,输入端口40还接收来自互连50的查询或探听请求并将这些发送给启动器设备10。启动器设备15经由输入端口42与互连50通信,并且通过该端口将事务请求发送给互连50。互连50包括连贯性控制电路55,连贯性控制电路55维持所接收的事务请求的排序并且执行操作以确保数据项的连贯性得到维持。
应注意,启动器是一种经由输入端口将事务请求发送给互连的设备。启动器可以经由输入端口接收来自互连的查询请求或探听请求形式的请求。接收方是接收请求的诸如存储器之类的设备。
该系统中的缓存是回写缓存,即这样的缓存,其将响应于写而使得行被取回到该缓存中并且在本地被修改,从而使得状态被更新为脏,脏指示:比存储器中所存储的该数据项目的版本更新近的数据项目版本被存储在该缓存中。稍后,回写被执行以将该值写入存储器,于是该状态被更新为干净的(clean)(意味着其保存了与存储器中的值相同的值)。干净的缓存条目不负责更新存储器,因此可以安全地默默地转变为无效状态。脏的缓存条目不能转变为无效的,其首先需要将其数据回写到存储器中,并且当这完成时,该状态可以转变为干净的,并且然后可选地,其可以转变为无效的。替代地,同一缓存条目接收到探听,更新存储器的责任可利用探听响应而被传递给互连,于是该缓存条目的状态可以转变为无效。
在此实施例中,所有启动器发出作为读唯一(readunique)的读取,这意味着该数据项的仅一个副本被存储。因此,响应于读唯一,最新版本的数据项被取回并且所有其它本地版本被标记为无效。如果数据值是从另一缓存读取的,则该缓存中的该条目的脏/干净状态将随着该数据迁徙。
当启动器在大约与另一启动器执行读唯一相同时间来执行回写时,读唯一可能出现潜在问题。这可能在连贯互连首先进行处理哪一个上导致竞争。如果回写是在读唯一探听被该回写所来自于的缓存看到之前被发出的,则可在回写命中存储器之前由该读唯一检索数据。这是一种潜在的坏情形,因为所读取数据随后可能被修改并且启动器可能执行其自己的回写,该回写可能会与来自第一启动器的回写竞争。如果该后者先完成,则先发出的回写将利用旧值来毁坏存储器中的数据。
该潜在问题通过附图1中的设备来解决。
在图1的数据处理装置中,响应于来自启动器设备15的读唯一事务请求,连贯性控制电路55将经由端口40向启动器设备10发送探听信号形式的查询请求。应注意,尽管在此实施例中端口40被示为单端口,但是本领域技术人员将明白,可以存在用于接收这些信号的多个端口。例如,一个端口用于接收来自启动器10的读写信道并且一分开的端口用于处理探听信道。该查询将查询缓存12的状态并且判断作为读取对象的数据项是否被存储在那里。如果是,则其将检索该数据并且将该位置标记为无效,除非该行正经历当前回写,在此情况中,探听响应将被拖延直到该回写已完成为止。如果数据被检索到,则该数据被返回缓存17,并且如果缓存12中的存储位置已被标记为脏的,则缓存17被标记为脏的。在稍后的某个时刻,存储在缓存17中的任何脏值可能需要被写入存储器30以使得存储器30保存该数据项的最近值。因此,在某个时刻时,启动器设备15将发出回写事务请求并且这将不经由连贯性控制电路55而直接被路由至存储器30。这样做是为了确保其通过互连进入输出端口48并且其前进不受来自连贯性控制电路55的任何连贯性控制操作的阻碍。这样做是为了使得如果当一回写待决时在启动器设备之一中接收到查询或探听请求,则该查询或探听请求可以安全地被拖延直到该回写已完成。仅当确保该回写将完成这才是可能的。使得探听或查询请求以这种方式被拖延意味着在如下情况中发生的问题得到避免:例如假如读唯一要在缓存正在执行一数据项的回写的同时从该缓存检索该数据,并且随后其自己执行该数据项到存储器的回写。
除了不将回写发送给连贯性控制电路以外,还存在互连所遵循的用以肯定回写被保证能完成的其它规则。
参看存储器30可见,尽管存储器控制器33内存在去往该存储器的分离的读和写路径,但是它们也可以相组合以形成单条路径。
因此,读和写将按照由存储器定义的顺序被执行,并且将需要等待彼此完成。因此,连贯性控制电路55被配置来仅当其知道读事务肯定能完成时,向存储器30发出读事务。类似地,仅当其还可以肯定写事务将完成时,其发出写事务。这确保了回写事务不会被无限期地搁置于在可以完成之前正在等待某事的另一事务之后。
图2示出了根据本发明第二实施例的互连150。在此实施例中,存在用于连接到启动器设备的输入端口140、142和144。连接到输入端口140的启动器设备没有缓存并且因此没有到此端口的探听行。还存在到接收设备或存储器的输出端口148。
在此互连中,在该互连本身中有一些本地存储装置。本地存储装置157在此实施例中包含单行储存装置并且其使得启动器设备140和142能够执行写而不用在它们自己的缓存中分配行。应注意,在一些实施例中,可以存在被提供用于每个启动器设备的单独本地存储装置,而在其它实施例中,例如在本实施例中,可以存在共享本地存储装置,而在另外的实施例中,本地存储装置将不被提供。
该互连上的本地存储装置还可以用于没有它们自己的缓存的启动器设备。
在输入端口140和142处接收到的写事务可以写入单行储存装置157并且可以经过生成探听请求的连贯性控制电路155。在输入端口140和142处从启动器设备接收到的回写事务被转移并且不经由连贯性控制电路155被发送,而是直接被发送给连接到存储器的输出148。连贯性控制电路155响应于其接收到的读和写事务来执行连贯性操作。因此,响应于发送给单行储存装置157的写事务,连贯性控制电路155通过执行探听操作来判断已被写入的数据项是否存在于任何本地存储装置中,如果存在,则其将存储位置标记为无效。
图3示出了图2的互连的替代实施例。在此实施例中,互连250具有控制逻辑257而非单行储存装置157。该控制逻辑不响应于来自启动器设备210的写事务的接收而立即向启动器设备210发送回就绪信号,从而使得启动器设备在其引脚上保持该写事务直到就绪信号被发送为止。因此,该写事务经由输入端口240连续地被输出,并且所需要的任何探听动作可由控制电路257执行,并且当结果被获得时,该结果以及该写事务可以进一步被发送。此时,控制电路257向启动器设备210发送就绪信号,该就绪信号用于告诉启动器设备210继续进行并输出下一事务。这节省了互连上的储存空间,但有延迟牵连。再次地,在此实施例中,在该互连内存在单独的回写信道以使得回写能够独立于连贯性控制而发生。应注意,写事务可以作为多个数据拍(databeat)被发送,因此地址在地址写信道上,并且当就绪信号被接收到时,后续数据拍被发送。
在本发明实施例中使用的缓存可以具有不同类型,例如,MEI或MOESI。MEI缓存是那些仅支持经修改(唯一脏的)、排他的(唯一干净的)和无效状态(参见图5)的缓存。而MOESI缓存还支持所拥有(共享脏的)和所共享(共享干净的)状态。
图4示出了示出具有MOESI缓存13的主控装置或启动器设备10的一个实施例。该缓存13存储多个数据项以及与每个数据项相关联的指示符,指示符指示所存储项为有效的、脏的还是共享的。缓存13还具有用于控制在该缓存处接收到的写事务、读事务和探听事务的控制电路14。
有效指示符指示缓存内的数据是有效的,而无效指示符指示其不应被使用。脏指示符指示这是数据的更新版本并且是比存储器中的数据更新近的版本,并且指示该缓存负责将数据写回到存储器。共享指示符指示其是否是数据的唯一副本或者其它地方是否存在另一本地副本。
控制电路14被配置为控制所接收的事务,并且具体地,响应于接收到去往特定存储位置的探听事务,判断是否存在针对该存储位置的待决的回写(一般地,相同存储位置是具有相同地址的存储位置,因此可能存在相同存储位置的多个存储位置,因为存储在特定地址处的数据项的多个版本被保持,一些是可能存储在缓存中的本地副本并且其它的是保存在存储器中的副本。回写将总是朝着存储器写回,其可以到存储器本身或者其可以到在连贯互连下游的缓存)。如果存在待决的回写,则控制电路14拖延该探听并且不允许其继续进行直到该回写完成了为止。以这种方式,可能由于不按排序发生的回写而产生的连贯性问题得到避免,因为去往回写待决的地址的任何后面的事务不继续进行。一旦回写完成,则探听被允许继续进行。
控制电路14还动作来防止启动器设备10在写唯一事务待决时发出回写。这是因为,由于存在可能由写唯一生成的缓存维护操作和探听请求,因此写唯一事务可能干扰回写并妨碍其完成。
应注意,回写一般不必在某个时间处被执行,因为尽管它们使存储器保持最新,但是如果存储器不是最新的,则任何其它写或读事务将探听保存了最新值的缓存并且将从脏标志确定其是最新近值。此时,其将响应于事务请求来发送最新值并且在一些情况中将把该行标记为无效。在其它情况中,探听可能不需要使该行被无效,在该情况中,其可以转送该数据并且使该行保持在共享状态。因此,一般地,回写可以在方便时被执行并且当写唯一待决时不允许回写被发出是可接受的。
图5示出了具有缓存413和控制电路414的启动器设备400的替代实施例。在该设备中没有单独的探听数据信道,但是,具有探听地址和响应信道。此外,在此实施例中,尽管未示出,不存在用于从此启动器向另一启动器发送数据的信道,因此,响应于探听信号,任何所探听到的脏项必须被写入存储器,以使得该项的最新值可通过生成了探听的事务从该存储器被检索到。这意味着,在此实施例中,当缓存中存在脏项时写唯一不能被发出,因为到脏项的探听将生成回写,这可能导致写唯一被困在被拖延探听之后的队列中。
应注意,在一些实施例中,当指示其已到达某个点的信号被接收到时认为回写完成,该点是所有回写都将经过的点并且其中存在用于维持该点以外的排序的电路。
图6示出了根据本发明实施例的方法。在此实施例中,回写请求从启动器被发出给互连。该互连允许回写请求独立于任何连贯性控制而通过该互连继续行进。启动器设备接收用于查询回写请求发出所针对的存储位置的请求。启动器设备判断回写请求是否已完成。如果尚未完成,则其拖延该查询请求。如果已完成,则假如此时另一回写未被发出,则其对该查询请求作出响应。如果回写随后被发出,则该回写被允许在查询请求被响应之前继续进行(尽管这未被示出)。以这种方式,在不按排序发生的回写中不会产生连贯性问题。
在启动器内而非在整个数据处理系统中发生的方法步骤在图7中示出。首先,启动器发出回写请求并且然后其接收到用于查询回写请求发出所针对的存储位置的请求。然后其判断回写请求是否完成。如果尚未完成,则其拖延该查询请求并且当其确定回写完成时,其对该查询请求作出响应。
虽然这里已参考附图详细描述了本发明的说明性实施例,但是将明白,本发明不限于这些精确实施例,并且本领域技术人员可以在不脱离如所附权利要求限定的本发明的范围和精神的情况下在其中实现各种改变和修改。

Claims (21)

1.一种用于数据处理装置的互连电路,所述互连电路被配置为提供用于将多个启动器设备与至少一个接收设备互连的路线,所述至少一个接收设备中的至少一个包括用于存储将由所述处理装置处理的至少一个数据项的至少一个存储器,所述多个启动器设备中的至少一个包括用于存储在所述至少一个存储器中存储的所述数据项的子集的本地副本的缓存,所述互连电路包括:
多个输入端口,用于接收来自所述多个启动器设备的事务请求;
至少一个输出端口,用于将事务请求输出到所述至少一个接收设备;
多条路径,用于在所述多个输入与所述至少一个输出之间传送所述事务请求;
连贯性控制电路,用于维持去往相同数据存储位置的所述事务请求中的至少一些事务请求行进通过所述互连电路的顺序,以便维持由所述数据处理装置处理的数据项的连贯性;
所述互连电路被配置为不利用所述连贯性控制电路来控制回写事务请求,以使得所述回写事务请求独立于被路由通过所述连贯性控制电路的事务请求而行进,所述回写事务请求是从包括所述缓存的所述至少一个启动器设备接收的写事务请求并且用于利用所述数据项之一的本地存储更新值来更新所述至少一个存储器。
2.根据权利要求1所述的互连电路,其中,所述事务请求包括读事务请求和写事务请求,所述读事务请求中的至少一些受所述连贯性控制电路控制。
3.根据权利要求2所述的互连电路,其中,所有的所述读事务请求受所述连贯性控制电路控制。
4.根据权利要求2所述的互连电路,其中,所述写事务请求中的至少一些受所述连贯性控制电路控制,而所述回写事务请求不受所述连贯性控制电路控制。
5.根据权利要求2所述的互连电路,其中,所述事务请求还包括缓存维护请求,所述缓存维护请求通过所述连贯性控制电路被发送。
6.根据权利要求1所述的互连电路,其中,所述多条路径包括用于发送读事务请求的读路径和用于发送写事务请求的写路径。
7.根据权利要求6所述的互连电路,其中,所述事务请求还包括缓存维护请求,所述缓存维护请求通过所述连贯性控制电路被发送,其中所述缓存维护请求沿着所述读路径被发送。
8.根据权利要求1所述的互连电路,其中,经过所述连贯性控制电路的写路径和读路径经过至少一点的序列中的一点。
9.根据权利要求1所述的互连电路,其中,所述连贯性控制电路被配置为通过生成查询事务来维持由所述数据处理装置处理的数据项的连贯性,所述查询事务用于避免所述多个启动器设备中的任一个上的缓存内的本地存储数据与从所述多个启动器设备中的另一个接收的事务请求之间的任何连贯性冲突。
10.根据权利要求1所述的互连电路,其中,所述输入端口中的至少一个输入端口包括与之相关联的数据储存装置,用于存储由连接到所述至少一个输入端口的所述启动器处理的数据项的本地副本,所述数据项的所述本地副本的连贯性受所述连贯性控制电路控制。
11.根据权利要求10所述的互连电路,其中,所述数据储存装置包括小型缓存。
12.根据权利要求1所述的互连电路,其中,所述输入端口中的至少一个输入端口包括用于保持所接收的事务请求的装置,所述至少一个输入端口被配置为向其它启动器设备中的至少一个发送与所保持的事务请求有关的至少一个查询,并且响应于接收到响应,将所述响应与所保持的事务请求相关联并且进一步发送它们。
13.根据权利要求1所述的互连电路,其中,所述至少一个接收设备被配置为接收写事务请求和读事务请求两者并且按照由存储器控制器确定的顺序来处理所述读事务请求和所述写事务请求,所述连贯性控制电路被配置为在所述连贯性控制电路能够保证所述读事务请求完成之前,不进一步发送读事务请求。
14.根据权利要求1所述的互连电路,其中,所述连贯性控制电路被配置为在向所述启动器中的可能存储有一存储位置中所存储的数据项的本地副本的至少一个启动器发出至少一个查询之前,不向该存储位置发送写唯一事务,并且被配置为仅当从针对所述至少一个查询的响应中清楚了所述数据将通过所述写唯一事务被检索时才进一步发送所述写唯一事务,其中,写唯一事务是去往存储位置的、确保使得存储在所述存储位置的数据项的任意本地副本无效的写事务。
15.一种启动器设备,包括:
缓存,用于存储存储器中所存储的数据项中的至少一个数据项的本地副本,所述至少一个启动器被配置为通过响应于本地存储的数据项被更新,将所述本地存储的数据项标记为脏的直到所述至少一个启动器执行了回写操作并将更新数据项写入所述存储器为止,从而维持本地存储的所述至少一个数据项的连贯性;
至少一个端口,用于向至少一个接收设备发送事务请求并且用于接收查询所述缓存的数据和查询请求;其中
所述启动器设备被配置为:如果到所述缓存内的存储位置的回写事务待决则不发出对查询该存储位置的状态的请求的接收的响应,并且在待决的所述回写事务已完成时发出所述响应,回写事务请求是由所述启动器设备发出的用于利用存储在所述缓存中的自身已被更新的数据项的值来更新所述存储器的请求,以使得所述存储器存储所述数据项的当前值。
16.根据权利要求15所述的启动器设备,所述启动器设备被配置为发出写唯一事务,写唯一事务是到存储位置的写事务,其中,写唯一事务确保使得存储在所述存储位置的数据项的任何本地副本无效,所述启动器被配置为当写唯一事务待决时不发出回写事务。
17.根据权利要求15所述的启动器设备,所述启动器设备包括缓存并且被配置为发出写唯一事务,写唯一事务是到一位置的写事务,其中所述位置存储数据项的唯一本地副本,所述启动器被配置为响应于所述缓存中的任何行是脏的而不发出所述写唯一事务。
18.一种数据处理装置,包括:
多个启动器,被配置为发出多个事务请求;
至少一个接收器,被配置为接收所述多个事务请求,所述至少一个接收器中的至少一个包括用于存储由所述数据处理装置处理的数据项的存储器;
所述多个启动器中的至少一个包括根据权利要求15所述的启动器;以及
根据权利要求1所述的互连电路。
19.根据权利要求18所述的数据处理装置,所述互连电路是这样的互连电路,其中,所述输入端口中的至少一个输入端口包括与之相关联的用于存储由连接到所述至少一个输入端口的所述启动器处理的数据项的本地副本的数据储存装置,所述数据项的所述本地副本的连贯性由所述连贯性控制电路控制,连接到所述至少一个端口的所述启动器包括与被配置为发出写唯一事务的所述启动器设备相应的启动器设备,写唯一事务是到存储位置的写事务,其中,写唯一事务确保使得存储在所述存储位置的数据项的任何本地副本无效,所述启动器被配置为在写唯一事务待决时不发出回写事务。
20.根据权利要求18所述的数据处理装置,其中,所述启动器中的至少一个启动器不包括缓存。
21.一种维持连贯性的方法,包括以下步骤:
从包括缓存的启动器经由互连向存储器发出回写请求,所述回写事务请求是用于利用所述缓存上本地存储的数据项的已更新值来更新所述存储器的写事务请求;
响应于在所述启动器处接收到用于查询所述缓存中的、所述回写事务针对其待决的存储位置的状态的请求,允许所述回写请求独立于被路由通过连贯性控制电路的事务请求而行进通过所述互连,在待决的所述回写事务已完成之前不对所述查询请求作出响应。
CN201110302096.3A 2010-09-28 2011-09-28 利用回写排序的连贯性控制电路及设备 Active CN102541465B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1016326.9 2010-09-28
GB1016326.9A GB2484088B (en) 2010-09-28 2010-09-28 Coherency control with writeback ordering

Publications (2)

Publication Number Publication Date
CN102541465A CN102541465A (zh) 2012-07-04
CN102541465B true CN102541465B (zh) 2016-02-03

Family

ID=43128111

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110302096.3A Active CN102541465B (zh) 2010-09-28 2011-09-28 利用回写排序的连贯性控制电路及设备

Country Status (4)

Country Link
US (1) US8589631B2 (zh)
JP (1) JP5815349B2 (zh)
CN (1) CN102541465B (zh)
GB (1) GB2484088B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015424B2 (en) * 2012-08-15 2015-04-21 Arm Limited Write transaction management within a memory interconnect
GB2529148B (en) 2014-08-04 2020-05-27 Advanced Risc Mach Ltd Write operations to non-volatile memory
CN105183791A (zh) * 2015-08-21 2015-12-23 中国人民解放军装备学院 一种基于事务的数据整合方法
US10248565B2 (en) * 2016-09-19 2019-04-02 Qualcomm Incorporated Hybrid input/output coherent write
US10489323B2 (en) * 2016-12-20 2019-11-26 Arm Limited Data processing system for a home node to authorize a master to bypass the home node to directly send data to a slave
US11221767B2 (en) * 2017-10-16 2022-01-11 Vmware, Inc. Cache line persistence indicator for non-volatile memory using coherence states
US10621103B2 (en) 2017-12-05 2020-04-14 Arm Limited Apparatus and method for handling write operations
GB2569304B (en) * 2017-12-12 2020-05-13 Advanced Risc Mach Ltd Regulation for atomic data access requests
US10917198B2 (en) * 2018-05-03 2021-02-09 Arm Limited Transfer protocol in a data processing network
GR20180100189A (el) 2018-05-03 2020-01-22 Arm Limited Δικτυο επεξεργασιας δεδομενων με συμπυκνωση ροης για μεταφορα δεδομενων μεσω streaming
GB2578600B (en) * 2018-10-31 2021-10-13 Advanced Risc Mach Ltd Memory transaction request management
US11556478B2 (en) * 2020-10-30 2023-01-17 Hewlett Packard Enterprise Development Lp Dirty cache line write-back tracking

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1910560A (zh) * 2004-06-03 2007-02-07 索尼计算机娱乐公司 用于在回写高速缓存中同时窥探推入或窥探取消操作过程中取消回写操作的系统和方法
CN101563677A (zh) * 2006-12-20 2009-10-21 国际商业机器公司 使用回写式高速缓存单元管理数据的系统、方法和计算机程序产品
CN101593160A (zh) * 2008-05-30 2009-12-02 英特尔公司 减少来自侦听过滤器的后无效事务
CN101802796A (zh) * 2007-06-22 2010-08-11 密普斯技术股份有限公司 防止多核处理器中的写回竞争
CN101828173A (zh) * 2007-10-18 2010-09-08 Nxp股份有限公司 具有多个处理器、缓存电路和共享存储器的数据处理系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684977A (en) * 1995-03-31 1997-11-04 Sun Microsystems, Inc. Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system
US5634068A (en) * 1995-03-31 1997-05-27 Sun Microsystems, Inc. Packet switched cache coherent multiprocessor system
US6038644A (en) * 1996-03-19 2000-03-14 Hitachi, Ltd. Multiprocessor system with partial broadcast capability of a cache coherent processing request
US5893160A (en) * 1996-04-08 1999-04-06 Sun Microsystems, Inc. Deterministic distributed multi-cache coherence method and system
JP3210590B2 (ja) * 1996-11-29 2001-09-17 株式会社日立製作所 マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
JPH10222423A (ja) * 1997-02-07 1998-08-21 Nec Corp キャッシュメモリ制御方式
JPH10320274A (ja) * 1997-03-19 1998-12-04 Toshiba Corp キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
JP4806959B2 (ja) * 2005-05-17 2011-11-02 株式会社日立製作所 主記憶共有型マルチプロセッサシステムの高性能化技術
JP4572169B2 (ja) * 2006-01-26 2010-10-27 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム及びその動作方法
US20080320233A1 (en) * 2007-06-22 2008-12-25 Mips Technologies Inc. Reduced Handling of Writeback Data
JP4474570B2 (ja) * 2008-01-28 2010-06-09 エヌイーシーコンピュータテクノ株式会社 キャッシュコヒーレンシ制御方法
JP4767361B2 (ja) * 2008-03-31 2011-09-07 パナソニック株式会社 キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム
US8996812B2 (en) * 2009-06-19 2015-03-31 International Business Machines Corporation Write-back coherency data cache for resolving read/write conflicts
US8756377B2 (en) * 2010-02-02 2014-06-17 Arm Limited Area and power efficient data coherency maintenance

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1910560A (zh) * 2004-06-03 2007-02-07 索尼计算机娱乐公司 用于在回写高速缓存中同时窥探推入或窥探取消操作过程中取消回写操作的系统和方法
CN101563677A (zh) * 2006-12-20 2009-10-21 国际商业机器公司 使用回写式高速缓存单元管理数据的系统、方法和计算机程序产品
CN101802796A (zh) * 2007-06-22 2010-08-11 密普斯技术股份有限公司 防止多核处理器中的写回竞争
CN101828173A (zh) * 2007-10-18 2010-09-08 Nxp股份有限公司 具有多个处理器、缓存电路和共享存储器的数据处理系统
CN101593160A (zh) * 2008-05-30 2009-12-02 英特尔公司 减少来自侦听过滤器的后无效事务

Also Published As

Publication number Publication date
JP2012074036A (ja) 2012-04-12
GB2484088B (en) 2019-08-07
CN102541465A (zh) 2012-07-04
JP5815349B2 (ja) 2015-11-17
US8589631B2 (en) 2013-11-19
GB2484088A (en) 2012-04-04
US20120079211A1 (en) 2012-03-29
GB201016326D0 (en) 2010-11-10

Similar Documents

Publication Publication Date Title
CN102541465B (zh) 利用回写排序的连贯性控制电路及设备
CN100495361C (zh) 维护存储器一致性的方法和系统
US8176259B2 (en) System and method for resolving transactions in a cache coherency protocol
KR100567099B1 (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치
US7177987B2 (en) System and method for responses between different cache coherency protocols
US7856534B2 (en) Transaction references for requests in a multi-processor network
KR100704089B1 (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치
CN108153683A (zh) 用于在存储器中的地址范围之间传输数据的装置和方法
US6260117B1 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
JP3086779B2 (ja) メモリ状態復元装置
US8468307B2 (en) Information processing apparatus and order guarantee method
US20050160232A1 (en) System and method for conflict responses in a cache coherency protocol with ordering point migration
JP2000250881A (ja) 不均等メモリ・アクセス・システム内で書き戻しの衝突によって生じるライブロックを避けるための方法およびシステム
US7533223B1 (en) System and method for handling memory requests in a multiprocessor shared memory system
KR20050074310A (ko) 캐시 라인 소유권 이전 방법 및 장치
US8145847B2 (en) Cache coherency protocol with ordering points
EP3800555B1 (en) An apparatus and method for handling cache maintenance operations
US7620696B2 (en) System and method for conflict responses in a cache coherency protocol
US20050160233A1 (en) System and method to facilitate ordering point migration to memory
EP3580661B1 (en) Data processing
US11016902B2 (en) Generating recovery data for an initial state of status data for a data handling transaction and predicting a revised state of the status data applicable to resolution of the data handling transaction
US6636948B2 (en) Method and system for a processor to gain assured ownership of an up-to-date copy of data
TW201626236A (zh) 互連及互連的運作的方法
CN109791521A (zh) 提供数据访问的原子集的装置及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180528

Address after: cambridge

Co-patentee after: Anne science and Technology (China) Co., Ltd.

Patentee after: Advanced Risc Machines Ltd.

Address before: cambridge

Patentee before: Advanced Risc Machines Ltd.

TR01 Transfer of patent right