买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】转发对监听请求的响应_ARM 有限公司_201810101403.3 

申请/专利权人:ARM 有限公司

申请日:2018-02-01

公开(公告)日:2024-03-22

公开(公告)号:CN108415873B

主分类号:G06F15/163

分类号:G06F15/163;G06F11/30

优先权:["20170208 US 15/427,384"]

专利状态码:有效-授权

法律状态:2024.03.22#授权;2020.02.28#实质审查的生效;2018.08.17#公开

摘要:本公开涉及转发对监听请求的响应。提供了一种数据处理装置,其包括用于接收关于代表请求节点的所请求的数据的监听请求的接收电路。监听请求包括对关于是否将要发生转发的指示。发送电路发送对监听请求的响应,并且缓存电路缓存至少一个数据值。当将要发生转发并且该至少一个数据值包括所请求的数据时,该响应包括所请求的数据并且发送电路将响应发送至请求节点。

主权项:1.一种数据处理装置,包括:接收电路,所述接收电路接收关于代表请求节点的所请求的数据的监听请求,所述监听请求包括对关于是否要发生转发的指示;发送电路,所述发送电路发送对所述监听请求的响应;以及缓存电路,所述缓存电路用于与所述所请求的数据的缓存状态相关联地缓存所述所请求的数据,其中当转发要发生时,所述响应包括所述所请求的数据并且所述发送电路将所述响应发送至所述请求节点;所述监听请求是从与所述请求节点不同的归属节点接收的;当转发要发生时,所述发送电路还向所述归属节点发送完成通知以指示已经完成所述监听请求;以及不管所述所请求的数据的缓存状态是否是无效,不管所述所请求的数据的缓存状态是否是共享,不管所述所请求的数据的缓存状态是否是自身,不管所述所请求的数据的缓存状态是否是独占,并且不管所述所请求的数据的缓存状态是否是修改,所述转发都会发生。

全文数据:转发对监听请求的响应技术领域[0001]本公开涉及数据处理。更具体地,本公开涉及缓存。背景技术[0002]在多处理器系统中,可能具有许多节点或处理器,每个节点或处理器具有它们自己的(一个或多个缓存。这些节点可连接至一个或多个共享缓存或存储器。因此,特定数据值可位于共享缓存或存储器之一中或位于处理器之一的本地缓存中。因此,当节点想要访问数据值时,获得来自另一节点的数据有时为必要的。这通过请求器向所谓的归属节点发送请求来实现,这维持了整个系统中数据的一致性。随后归属节点向可能具有所请求的数据的节点发送一或多个监听请求。若那些节点中的一个具有数据,则它们可将数据返回至归属节点,该归属节点将数据返回至请求器。然而,此过程涉及若干通信的交换,其可能花费时间来解决。发明内容[0003]从第一示例性配置来看,提供了一种数据处理装置,包括:接收电路,用于接收关于代表请求节点的所请求的数据的监听请求,该监听请求包括对关于是否将要发生转发的指示;发送电路,用于发送对该监听请求的响应;以及缓存电路,用于缓存至少一个数据值,其中当将要发生转发并且该至少一个数据值包括该所请求的数据时,该响应包括该所请求的数据并且该发送电路将该响应发送至该请求节点。[0004]从第二示例性配置来看,提供了一种数据处理装置,包括:接收电路,用于接收来自请求节点的关于所请求的数据的数据请求;以及发送电路,用于向另一节点发送监听请求,其中该监听请求包括:该请求节点的标识符、对该所请求的数据的引用、以及对当该所请求的数据被缓存在该另一节点处时,是否将直接从该另一节点到该请求节点发生转发的指示。[0005]从第三示例性配置来看,提供了一种数据处理方法,包括:缓存至少一个数据值;接收关于代表请求节点的所请求的数据的监听请求,该监听请求包括关于是否将要发生转发的指示;以及发送对该监听请求的响应,其中当将要发生转发并且该至少一个数据值包括该所请求的数据时,该响应包括该所请求的数据并且将该响应发送至该请求节点。附图说明[0006]本发明将参照如附图所示的本发明的实施例来仅通过示例的方式进一步描述,在附图中:[0007]图1示出了根据一个实施例的包括数据处理装置的系统;[0008]图2示出了根据一个实施例的归属节点及两个请求器节点;[0009]图3示出了根据一个实施例的归属节点与两个请求器节点之间的一系列事务;[0010]图4示出了根据一个实施例的归属节点与两个请求器节点之间的一系列事务;[0011]图5示出了根据一个实施例的归属节点与两个请求器节点之间的一系列事务;以及[0012]图6以流程图形式示出了根据一个实施例的通过请求器节点进行数据处理的方法。具体实施方式[0013]在参照附图讨论实施例之前,提供了对实施例的以下描述。[0014]根据一个示例性配置,提供了一种数据处理装置,包括:接收电路,用于接收关于代表请求节点的所请求的数据的监听请求,该监听请求包括对关于是否将要发生转发的指示;发送电路,用于发送对该监听请求的响应;以及缓存电路,用于缓存至少一个数据值,其中当将要发生转发并且该至少一个数据值包括该所请求的数据时,该响应包括该所请求的数据并且该发送电路将该响应发送至该请求节点。[0015]根据上文,监听请求自身包括对是否将要发生转发过程的指示。此可以是将要发生转发若默认为不执行转发的指示或者将不发生转发若默认为执行转发的指示。当转发发生时,数据处理装置其可以是另一主请求节点并且在此描述中还称作响应节点将所请求的数据若存在直接转发至发布对该数据的请求的请求节点。因此,若数据在响应节点处可用,则数据不需要被发送回归属节点并从归属节点前进到请求节点。因此,这使得可以减少当请求节点发布对由响应节点持有的数据的请求时所涉及的延迟。监听请求由归属节点响应于请求节点请求访问数据而生成。归属节点可以生成监听请求以确定数据是否由系统内的另一节点(诸如响应节点)持有。例如,从响应节点访问数据可能比经由主系统存储器来访问数据更快。[0016]在一些实施例中,从归属节点接收该监听请求;并且当禁止发生转发时,该响应包括该所请求的数据并且该发送电路将该响应发送至该归属节点。当将不发生转发通过默认或者通过指示时,不是向请求节点转发响应,而是响应节点将响应发送至归属节点。[0017]在一些实施例中,从归属节点接收该监听请求;并且当将要发生转发并且该至少一个数据值包括该所请求的数据时,该发送电路另外向该归属节点发送完成通知以指示已经完成该监听请求。除了将响应发送至请求节点之外,响应节点还可以向归属节点发送完成通知以指示已经通过由响应节点执行的转发动作完成了该监听请求。结果,归属节点不需要继续发布监听请求,并且可以避免需要访问主系统存储器以取回由请求节点初始请求的数据。[0018]在一些实施例中,该监听请求包括对该请求节点的指示。通过在监听请求中包括对请求节点的指示,响应节点能够确定系统内的各个节点中的哪个节点最初请求了该数据。这使得在需要任意中间节点的情况下,响应节点可以直接将对监听请求的响应发送至相关的请求节点。所提议的方案允许互连例如,归属节点)来使用其自己的标识符不同于从请求节点120发送的标识符),以便与监听目标例如,响应节点130进行通信。为了使转发起作用,除其自身生成之标识符外,归属节点还必须包括由请求节点120生成的标识符。[0019]在一些实施例中,从归属节点接收到该监听请求;该监听请求包括事务标识符以标识从该请求节点到该归属节点的使得生成该监听请求的事务;并且该响应包括该事务标识符。通过包括在监听请求中提供的事务标识符该事务标识符进而包括来自由请求节点对归属节点做出的初始请求的事务标识符),由响应节点产生的响应可以与初始数据请求相关联。以这种方式,请求节点可以确定返回的数据与任意所请求的数据之间的关系。[0020]在一些实施例中,该缓存电路包括与该至少一个数据值中的每一个相关联的缓存状态;并且该缓存状态指示数据值是下列项中的至少一项:无效、共享、自身、独占以及修改。提供各种缓存状态以便实现互连系统的各个节点之间的一致性。例如,缓存内的每个条目被提供有状态,该状态可用于指示整个系统内的数据的共享及或修改的程度。例如,状态“无效”可用于指示缓存线不再无效并且可自由重写。缓存状态“共享”可指示数据值正在许多不同节点之间共享,但不可修改。状态“自身”可指示相关的缓存线在本地缓存中被修改。若数据尚未在存储器中更新,则此经修改的数据可与系统中的其他节点共享。状态“独占”可指以下事实:节点为系统中具有线的副本的唯一节点,但线尚未修改。最后,状态“修改”可指示节点具有系统中的缓存列的唯一副本,并且与系统中的主存储器相比,已经对该副本进行了修改。应理解,此处给出的状态仅为当前实施例能够使用的权限分配的示例。在其他实施例中,相同的权限分配可通过使用不同的缓存状态名称及或标志来提供。例如,由英国剑桥ARM有限公司创造的AMBA规范描述了不同的分类,例如,“无效”、“原始变更cleandirty”、以及“唯一共享”。这最后两个选项可组合成任意组合以提供总共五种不同的状态。在本描述的其余部分通篇,将使用AMBA缓存状态。然而,本领域普通技术人员将理解的是,还可使用替代等效的缓存状态。[0021]在一些实施例中,该监听请求指示是否将要发生转发,而不管与该所请求的数据相关联地储存在该数据处理装置处的状态。通过指示是否将要发生由响应节点执行的转发动作,并且通过这样做而不管与所请求的数据相关联地储存的状态,可以在不需要额外的储存条件的情况下执行转发操作。具体地,在一些实施例中,该监听请求指示是否将要发生转发,而不管与该所请求的数据相关联地储存在该缓存电路中的缓存状态。在这些实施例中,不需要添加另外的缓存状态以指示转发为可允许的或者己经发生。因此,由响应节点执行的转发操作与任何缓存状态无关。[0022]在一些实施例中,该监听请求通过编码一种类型的该监听请求来指示是否将要发生转发。因此,作为由响应节点接收之该一种或多种监听请求的结果,此指示若数据存在于响应节点处则将要发生转发。[0023]在其他实施例中,该监听请求通过该监听请求中的位来指示是否将要发生转发。通过在监听请求中使用位来指示若所请求的数据在响应节点处可用时是否将要发生转发,可提供高效的编码以便实现转发而不显著增加跨系统的流量。在包括许多节点的系统中或在频繁发送大量数据的情况下,这可能是重要的。[0024]在一些实施例中,从归属节点接收到该监听请求;并且当该发送电路不能将该响应发送至该请求节点时,该发送电路将该响应发送至该归属节点。通过通知归属节点响应节点不能将对监听请求的响应发送至请求节点,归属节点能够采取额外动作以将所请求的数据提供至请求节点。例如,这可通过将额外的监听请求发送至系统内的其他节点,或通过将对该数据的请求发送至主存储器来实现。在一些其他实施例中,提供超时timeout,以便归属节点将推断监听请求已失败,除非归属节点被通知与此相反。然而,在此种实施例中,在可以获得关于监听请求的成功的任意结论之前,需要等待最小时间段即超时时间)。[0025]在一些实施例中,当将要发生转发并且该缓存电路缺乏该所请求的数据时,该发送电路将该响应发送至该请求节点以指示该所请求的数据不存在。此外,通过向归属下点提供响应节点不能通过将所请求的数据提供至请求节点来对监听请求做出响应的指示符,归属节点能够采取一些替代动作,例如,转发额外的监听请求或通过向主存储器发布对要提供的数据的请求。[0026]在一些实施例中,除了将包括该所请求的数据的该响应发送至该请求节点之外,还根据该缓存状态中的至少一个以及一种类型的该监听请求来调整与该缓存电路中的该所请求的数据相关联的缓存状态。在一些情况下,监听请求可能导致与储存在响应节点的缓存电路中的所请求的数据相关联的缓存状态的变化。具体地,缓存数据的变化可取决于与接收监听请求之前的数据相关联的初始缓存状态以及进入监听请求的类型中的任一者或两者。可考虑这些因素中的每一个,以确定当发送对监听请求的响应时,与缓存电路中的所请求的数据相关联的新的缓存状态。[0027]在一些实施例中,该种类型的该监听请求指示该请求节点用于缓存该所请求的数据的期望缓存状态。因此,监听请求可包括对输入数据的共享和修改的期望程度的指示。具体地,请求节点可能期望特定的数据段由请求节点唯一地持有,或请求节点可能对在共享状态下持有的数据感到满意。在任一情况下,所期望的缓存状态可以是确定如何修改与响应节点的缓存电路中的所请求的数据相关联的缓存状态的因素。[0028]在一些实施例中,该响应指示该请求节点用于缓存该所请求的数据的所要求的缓存状态。对于监听请求所提供的响应可指示当所请求的数据被提供回请求节点时将针对该所请求的数据所使用的缓存状态。可以基于与请求节点处的数据相关联的初始缓存状态、与请求节点处的数据相关联的新的缓存状态、及由请求节点提供的任意所要求的缓存状态,来确定这样的所要求的缓存状态。[0029]在一些实施例中,共享该所要求的缓存状态。换言之,由于转发,由响应节点提供的数据将由请求节点在共享状态下持有。因此,数据可由请求节点读取,但不能由该节点修改。[0030]在一些实施例中,从归属节点接收到该监听请求;当该所请求的数据在该缓存电路中指示修改的缓存状态时,该所要求的缓存状态为原始clean并且该发送电路将另一响应发送至该归属节点;并且该另一响应包括该所请求的数据并且指示该所请求的数据被修改。响应节点处理其中它接收到关于数据的指示“修改”的缓存状态的监听请求的情况的一种有效方式,是响应节点使用先前提及的转发过程来对监听请求进行响应,以便将数据转发至请求节点。这可以使用所要求的“原始”的缓存状态来发送,以便请求节点不知道数据已被更改。在类似的时间,响应节点还可将另一响应发送至归属节点,以提供所请求的数据并还指示所请求的数据己经被修改。通常,这将导致归属节点尽力将经修改的数据写回至例如主系统存储器。因此,这可被实现而不必涉及请求节点,或者不必在数据可被提供至请求节点之前将数据写回至主系统存储器。因此,可以改善整个请求操作的延迟。[0031]根据另一示例性配置,提供了:接收电路,用于接收来自请求节点的关于所请求的数据的数据请求;以及发送电路,用于向另一节点发送监听请求,其中该监听请求包括:该请求节点的标识符、对该所请求的数据的引用、以及对当该所请求的数据被缓存在该另一节点处时,是否将直接从该另一节点到该请求节点发生转发的指示。[0032]当归属节点接收到来自请求节点的对数据的请求时,归属节点向系统内的一个或多个其他节点发布监听请求。被发送的监听请求包括对是否将要发生转发的指示。由此,监听请求的接收器可通过将所请求的数据若存在发至请求节点来对监听请求直接进行响应,而不是将数据发回至归属节点以发送至请求节点。[0033]现将参照附图描述特定的实施例。[0034]图1示出了数据处理系统100。在数据处理系统100内,具有归属节点110、第一请求节点120和第二请求节点130。第一请求节点120和第二请求节点130可以是互连内的归属节点。在此实施例中,第一请求节点120将称作请求节点,而第二请求节点130将称作响应节点。数据处理系统100中的节点110、120、130中的每一个都包括缓存。每个缓存被示出为具有三列。第一列表示数据值的地址,第二列表示数据值本身,并且第三列表示与该数据值相关联的缓存状态。在此实施例中,缓存状态符合在由英国剑桥ARM有限公司创造的AMBA规范中使用的那些缓存状态。这种缓存状态包括:“I”,指示特定条目为无效且可重写;“SD”,指示特定条目为共享并且变更dirty两者(即在更通用术语中,特定条目是该节点“自身”的,以使得该条目由其他节点共享但已经被本地地修改);“SC”,指示条目为共享且原始的亦在更通用术语中,特定条目被“共享”,以使得该条目由系统中的其他节点共享且不可修改);以及“UC”,指示条目为唯一且原始的(即在更通用术语中,特定条目为“独占”的,以使得该条目由节点唯一地所有并且尚未被修改)。[0035]如图1的实施例所示,节点120、130中的一个或多个可以访问其他节点不能访问的数据值。例如,请求节点120不能访问数据值0x0094,该数据值由响应节点130持有。类似地,响应节点130不能访问数据值0x0090,该数据值由请求节点120持有。因此,请求节点120期望访问数据值0x0094,则它必须向归属节点110发送请求,这维持在整个数据处理系统100的一致性以获得对该数据值的访问。[0036]尽管未在图1中示出,但数据处理系统100还可包括经由归属节点110连接的主系统存储器。可以根据来自归属节点110的请求来从主系统存储器取回数据。然而,此过程可能是费时的,因为访问主系统存储器通常将比访问一个缓存更慢。[0037]图2示意性地示出了数据处理系统100。在数据处理系统100内,具有归属节点110、第一请求节点120和第二请求节点响应节点130。这些节点中的每一个都包括缓存140A、140B、140C;接收电路150A、150B、150C;及发送电路160A、160B、160C。[0038]如前面提及的,请求节点120向归属节点110发布关于在请求节点120的本地缓存140A中未找到的一些期望的数据的请求消息。该请求消息由请求节点120的发送电路160A发送,并且由归属节点11〇的接收电路150B接收。在此时,归属节点110确定在哪里可以找到所请求的数据的最新版本。它确定该数据的最新版本可在响应节点130处找到。因此,它向响应节点130发布针对要提供的数据的监听转发请求消息。这由归属节点110的发送电路160B发送并且由响应节点130的接收电路150C接收。监听转发请求的细节将在下面参照图3更详细地讨论。当接收到监听转发请求时,响应节点130针对所请求的数据搜索其本地缓存140C。若找到所请求的数据,则作为指示将执行转发的转发指示的结果,请求节点130将尝试将该数据以响应的形式直接转发至第一请求节点120。该响应由响应节点130的发送电路160C发送并且由请求节点120的接收电路150A接收。[0039]因此,来自请求节点12〇的所请求的数据可由响应节点130直接提供。具体地,在此实施例中,不需要将响应或所请求的数据提供回归属节点110,并且不需要归属节点110随后将数据返回第一请求节点120。以此方式,由于仅需要一个响应消息而不是需要两个响应消息,则可以改善延迟。[0040]图3示出了数据处理系统100的三个节点之间的事务序列。X轴表示每个节点并且Y轴表示时间。初始地,请求节点120向归属节点110发布ReadShared消息。此指示请求节点120期望对特定数据值进行共享读取访问。当由归属节点110接收时,归属节点110向响应节点130发布SnpSharedFwd消息。该消息为监听转发请求消息,其首先指示请求节点120期望对特定数据值进行共享服务,并且其次指示将由响应节点130执行转发。消息包括指示初始请求的来源请求节点120的转发节点id。消息还包括与由请求节点120发布的初始请求消息相关联的事务id。具体地,由请求节点120发布的初始ReadShared消息与特定事务idA相关联。该事务id被包括作为监听请求转发消息的第二参数。最后,监听请求转发消息还包括其自身的事务id,B。当在响应节点130处接收到时,响应节点130确定是否存在所请求的数据。在此实施例中,假设存在数据值。由于请求节点120期望对数据值进行共享读取访问,因此与数据值相关联的缓存状态从唯一原始UC变为共享原始SC。此外,响应节点130将SnpResp_SC_Fwded_SC消息发布回归属节点110。第一SC指示响应节点130将副本保留为SC,并且第二SC指示SC副本已经被发送到请求节点120。该消息指示己经或将对监听请求进行响应,并且该监听请求已经以共享原始SC缓存状态被请求和提供。类似地,响应节点130发布对监听请求的响应。在此实施例中,响应以CompData_SC消息的形式被从响应节点130发送至请求节点120。响应节点130通过从归属节点110接收到的SnpSharedFwd消息而知道请求节点120的id的标识,该id的标识标识请求节点120。此响应消息包括归属节点110的标识符和正被响应的监听请求的事务id⑻作为参数。[0041]因此,当请求节点120接收到此响应时,请求节点120己经成功地获得数据值。随后,请求节点12〇使用确认来对归属节点11〇作出响应。此确认包括由归属节点11〇发布的监听请求的事务id⑻以及归属节点110的标识符作为参数。一旦归属节点接收到此确认,则它知道数据已经由请求节点120成功地获取并且不需要采取另外动作来获取所请求的数据。若由响应节点13〇发布的该确认或监听响应未被归属节点110接收到,则归属节点110可推断所请求的数据尚未由请求节点120获得并且可能采取另外的动作。具体地,归属节点11〇可使用额外的监听请求来查询网络中的其他节点,或可以访问主系统存储器以获得正请求的数据。[0042]为了维持一致性,提供了关于响应节点必须如何对接收到的不同类型的监听请求进行响应的许多规则。具体地,根据监听请求的类型其指示请求节点想要一旦己经获取到数据就与数据相关联的缓存状态)以及由响应节点持有的数据的当前缓存状态,可以采取不同的动作或一系列动作。具体地,这些动作可以指定由响应节点持有的数据的缓存状态的变化。这些规则描述如下。此外,如已叙述的,基于由英国剑桥ARM有限公司创造的AMBA规范来提供这些规则。然而,本领域普通技术人员将认识到,可以使用其他等同的状态来设计等同的一组规则。[0043]用于在响应节点130处处理转发类型监听的一般规则为:[0044]•若线处于UD傩一变更)、UC滩一原始)、SD共享变更)、或SC共享原始状态,则将副本转发至请求节点。[0045]•不允许转换至相应的非转发类型监听。[0046]•不响应于非无效监听类型转发处于唯一状态的数据。[0047]•接收具有DoNotGoToSD位的监听请求的响应节点130不转换至SD共享变更),即使一致性允许它这么做。[0048]S叩SharedFwd[0049]除了由接收SnpSharedFwd的响应节点130遵循的先前列出的一般规则之外的规则为:[0050]•允许响应节点130转发处于SD共享变更)、UC傩一原始)、UD傩一变更或者SC共享原始状态的线。[0051]•响应节点13〇将其数据的副本转换至SD共享变更)、SC供享原始或者I无效)状态。[0052]SnpCleanFwd[0053]除了由接收SnpCleanFwd的响应节点130遵循的先前列出的一般规则之外的规则为:[0054]•响应节点130转发处于SC供享原始或UC傩一原始状态的缓存线。[0055]•响应节点130将其数据的副本转换至SD供享变更)、SC共享原始或者I无效)状态。[0056]SnpUniqueFwd[0057]除了由接收SnpUniqueFwd的响应节点130遵循的先前列出的一般规则之外的规则为:[0058]•响应节点130转发处于唯一状态的缓存线。[0059]•具有处于任意变更状态诸如UD唯一变更或SD共享变更)的数据的响应节点130将变更数据发送至请求器而不是归属。[0060]•响应节点130将其数据的副本转换至I无效状态。[0061]•响应节点130不将数据返回至归属节点110。[0062]SnpNotSharedDirtyFwd[0063]除了由接收SnpNotSharedDirtyFwd的响应节点130遵循的先前列出的一般规则之外的规则为:[0064]•响应节点130转发处于SC供享原始)、UC傩一原始和UD傩一变更状态的数据。[0065]•响应节点130将其数据的副本转换至SD、SC或I状态。[0066]SnpOnceFwd[0067]除了由接收SnpOnceFwd的响应节点130遵循的先前列出的一般规则之外的规则为:[0068]•响应节点130转发处于I¾效状态的数据。[0069]•综上所述,响应节点130不将变更数据转发至请求节点120。[0070]•当数据状态从UD唯一变更或SD共享变更变为UC唯一原始或SC共享原始时,响应节点130将数据返回至归属节点110。[0071]图4示出了事务图,其中请求节点120与响应节点130之间的连接己断开。具体地,一系列事务按照与之前相同的方式进行,其中请求节点120替代地请求数据的唯一副本。然而,一旦SnpUniqueFwd消息由响应节点130接收到并且响应节点130试图将数据转发至请求节点120,就确定请求节点120与响应节点130之间的连接已断开。因此,响应节点130替代地使用包括所请求的数据的常规监听响应消息来对归属节点110进行响应。在此时,归属节点110可按照典型的监听请求监听响应过程来将数据转发至请求节点120。[0072]图5示出了在请求节点120、响应节点130和归属节点140之间的事务图。事务按照图3所示的实施例进行。然而,在此情况下,请求节点120所请求的由响应节点130储存的数据为变更的。换言之,数据已经在响应节点130的本地缓存中被修改。在此情况下,仍然通过响应节点130将数据转发至请求节点120。此外,响应节点130向请求节点120指示数据为原始的。换言之,请求节点120能够以共享原始SC的缓存状态来将数据储存在其缓存中。然而,当响应节点130将响应发布回归属节点140时,这以SnpResp_SC_Fwded_SC消息的形式完成,该消息包括经修改变更的数据并且指示数据以共享原始状态被转发至请求节点120。响应于此,归属节点140将使得数据写回至系统缓存或者主存储器。因此,请求节点120快速地接收最新的数据。这可以在不需要将数据发送至归属节点140、写回、以及随后提供至请求节点120这些可能引起显著的延迟的情况下实现。[0073]图6是示出了根据一个实施例的数据处理方法的流程图170。该处理在步骤180处开始,其中接收监听转发请求。在步骤190处,确定本地节点是否在其本地缓存中具有所请求的数据。若不具有,则在步骤200处,可将否定响应发回至归属节点并且过程返回至步骤180。替代地,在步骤210处,根据已经被发布的监听请求的类型和本地缓存中的数据的当前缓存状态,修改与本地缓存中的数据关联的缓存状态。一旦此步骤完成,在适当的情况下,则在步骤22〇处,确定节点是否具有至请求器的连接。如不具有,则在步骤230处,将监听响应发送回至归属节点,并且该处理返回至步骤18〇。若节点具有至请求器的连接,则在步骤240处,将响应发送至请求器。该处理随后进行至步骤250,其中确定与数据相关联的先前的缓存状态是否是“修改”。例如,这可以等同于表示本地节点已经修改了数据的共享变更状态。若不是“修改”,则该处理返回至步骤180。否则,在步骤260,将经修改的数据发送回至归属节点。随后该处理返回至步骤180。[0074]因此,所描述的实施例使得可以直接对监听请求快速地响应。此外,这可以在无需对任意所提供的系统中的缓存状态进行任何扩充的情况下来实现。[0075]在本申请中,词语“被配置为…”用于表示装置的元件具有能够执行所定义的操作的配置。在该上下文中,“配置”表示硬件或软件的互连的布置或方式。例如,装置可以具有提供所定义的操作的专用硬件,或者可被编程为执行功能的处理器或其他处理设备。“被配置为”并不意味着装置元件需要以任意方式被改变以提供所定义的操作。[0076]尽管本文已经参考附图详细描述了本发明的说明性实施例,但将理解的是,本发明不限I这些精确的实施例,并且可以由本领域技术人员实现各种改变、添加、以及修改,而不脱离如所附权利要求限定的本发明的范围和精神。例如,从属权利要求的特征的各种组合可以与独立权利要求的特征相一致,而不脱离本发明的范围。

权利要求:1.一种数据处理装置,包括:接收电路,所述接收电路接收关于代表请求节点的所请求的数据的监听请求,所述监听请求包括对关于是否将要发生转发的指示;发送电路,所述发送电路发送对所述监听请求的响应;以及缓存电路,所述缓存电路缓存至少一个数据值,其中当将要发生转发并且所述至少一个数据值包括所述所请求的数据时,所述响应包括所述所请求的数据并且所述发送电路将所述响应发送至所述请求节点。2.根据权利要求1所述的数据处理装置,其中,从归属节点接收到所述监听请求;并且i^当禁止发生转发时,所述响应包括所述所请求的数据并且所述发送电路将所述响应发送至所述归属节点。3.根据权利要求1所述的数据处理装置,其中,从归属节点接收到所述监听请求;并且当将要发生转发并且所述至少一个数据值包括所述所请求的数据时,所述发送电路另外向所述归属节点发送完成通知以指示已经完成所述监听请求。4.根据权利要求1所述的数据处理装置,其中,所述监听请求包括对所述请求节点的指示。5.根据权利要求1所述的数据处理装置,其中,从归属节点接收到所述监听请求;所述监听请求包括事务标识符以标识从所述请求节点到所述归属节点的使得生成所述监听请求的事务;并且所述响应包括所述事务标识符。6.根据权利要求1所述的数据处理装置,其中,、、所述缓存电路包括与所述至少一个数据值中的每一个相关联的缓存状态;并且所述缓存状态指示数据值是下列项中的至少一项:无效、共享、自身、独占、修改。7.根据如权利要求1所述的数据处理装置,其中,所述监听请求指示是否将要发生转发,而不管与所述所请求的数据相关联地储存在所述数据处理装置处的状态。8.根据权利要求6所述的数据处理装置,其中,、、,、、所述监听请求指示是否将要发生转发,而不管与所述所请求的数据相关联地储存在所述缓存电路中的缓存状态。9.根据权利要求1所述的数据处理装置,其中,—、、所述监听请求通过编码一种类型的所述监听请求来指示是否将要发生转发。10.根据权利要求1所述的数据处理装置,其中,、、所述监听请求通过所述监听请求中的位来指示是否将要发生转发。11.根据权利要求1所述的数据处理装置,其中,从归属节点接收到所述监听请求;并且、、、当所述发送电路不能将所述响应发送至所述请求节点时,所述发送电路将所述响应发送至所述归属节点。12.根据权利要求1所述的数据处理装置,其中,当将要发生转发并且所述缓存电路缺乏所述所请求的数据时,所述发送电路将所述响应发送至所述请求节点以指示所述所请求的数据不存在。13.根据权利要求6所述的数据处理装置,其中,除了将包括所述所请求的数据的所述响应发送至所述请求节点之外,还根据所述缓存状态中的至少一个以及一种类型的所述监听请求来调整与所述缓存电路中的所述所请求的数据相关联的缓存状态。14.根据权利要求13所述的数据处理装置,其中,所述类型的所述监听请求指示所述请求节点用于缓存所述所请求的数据的期望缓存状态。15.根据权利要求1所述的数据处理装置,其中,所述响应指示所述请求节点用于缓存所述所请求的数据的所要求的缓存状态。16.根据权利要求15所述的数据处理装置,其中,所述所要求的缓存状态被共享。17.根据权利要求16所述的数据处理装置,其中,从归属节点接收到所述监听请求;当所述所请求的数据在所述缓存电路中指示修改的缓存状态时,所述所要求的缓存状态为原始并且所述发送电路将另一响应发送至所述归属节点;并且所述另一响应包括所述所请求的数据并且指示所述所请求的数据被修改。18.—种数据处理装置,包括:接收电路,所述接收电路接收来自请求节点的关于所请求的数据的数据请求;以及发送电路,所述发送电路向另一节点发送监听请求,、。其中所述监听请求包括:所述请求节点的标识符、对所述所请求的数据的引用、以及对当所述所请求的数据被缓存在所述另一节点处时,是否将直接从所述另一节点到所述请求节点发生转发的指不。19.一种数据处理方法,包括:缓存至少一个数据值;、接收关于代表请求节点的所请求的数据的监听请求,所述监听请求包括关于是否将要发生转发的指示;以及发送对所述监听请求的响应,其中、当将要发生转发并且所述至少一个数据值包括所述所请求的数据时,所述响应包括所述所请求的数据并且将所述响应发送至所述请求节点。

百度查询: ARM 有限公司 转发对监听请求的响应

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。