CN101635679B - 路由表的动态更新 - Google Patents

路由表的动态更新 Download PDF

Info

Publication number
CN101635679B
CN101635679B CN200910159869XA CN200910159869A CN101635679B CN 101635679 B CN101635679 B CN 101635679B CN 200910159869X A CN200910159869X A CN 200910159869XA CN 200910159869 A CN200910159869 A CN 200910159869A CN 101635679 B CN101635679 B CN 101635679B
Authority
CN
China
Prior art keywords
port
node
message
logic
response
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.)
Expired - Fee Related
Application number
CN200910159869XA
Other languages
English (en)
Other versions
CN101635679A (zh
Inventor
S·S·常
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN101635679A publication Critical patent/CN101635679A/zh
Application granted granted Critical
Publication of CN101635679B publication Critical patent/CN101635679B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/021Ensuring consistency of routing table updates, e.g. by using epoch numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

本文描述了用于在无需静止的情况下动态修改互连架构中的路由选择信息的方法和设备。各代理/节点保存与互连架构中的目标代理/节点有关的、可包含路由选择优选的路由选择信息。当节点要被热拆除时,它生成到邻居的端口停用消息。邻居将在其上接收到停用消息的端口停用,并且生成回到要去除的节点的完成消息。要去除的节点继续路由消息,直至它接收到完成;这时它停用对应节点。当所述节点被停用时,可去除该装置。互连架构中的其它节点通过使用在所尝试的循环路由期间消息到达尽头时的返回循环来了解代理去除。此外,节点的热添加包括启用消息向启用节点的广播以便向所添加节点进行路由。

Description

路由表的动态更新
技术领域
本发明涉及高速点对点互连链路,具体来说,涉及点对点互连架构中的路由选择。
背景技术
随着计算机发展,它们已经从简单算术计算领域转移到任何数量的媒体和非媒体应用的媒体中心。因此,计算机系统往往包括任何数量的外围或输入/输出装置。此外,半导体处理和计算机设计的发展使计算机系统能够在单个物理处理器上包括更多晶体管和处理能力,同时还允许多个物理处理器驻留在单个系统中。以前,在断电时将这些处理器和其它装置加入计算机系统,以便允许计算机正确初始化和处理新组件。
但是,近来,设计人员已经使用户能够在机器的运行时间期间对组件/装置进行添加或去除(remove)。这种类型的去除往往称作装置/组件的“热添加”或“热去除”。然而,组件的热添加或去除并不局限于对系统的物理添加或去除。实际上,软件设计人员、如操作系统(OS)设计人员还已经支持从软件的角度的热添加或去除。换言之,热去除的装置仍然可以在物理上存在、断电、软件不识别、虚拟去除或者它们的任何组合。
作为集成电路及其处理能力发展的必然结果,装置之间的互连也发展为向高功率组件提供足够带宽。一种类型的互连架构包括基于相关(coherent)链路的架构。作为一个具体示例,架构中的组件可利用点对点链路进行耦合,在点对点链路中将装置/代理被视为相互路由消息的节点。
目前,在对这种类型的互连架构“热添加”或“热去除”组件、代理和/或节点时,相应地暂停整个系统以更新路由选择信息从而加入或解除分配热添加或热去除的装置。这种暂停或静止(quiescence)引起所有当前消息的清除,因为新的路由选择信息可导致:相对于这些消息的路由选择差错,系统的暂停或静止,以及由某个外部软件或固件、如基本输入输出软件(BIOS)对路由选择表的更新。可以设想,用于添加或去除代理的这种静止过程可能是昂贵的,它引起可能更慢的终端用户体验。
发明内容
本发明的第一方面提供一种互连代理,包括:多个端口,能够通过点对点链路与多个代理耦合;以及,第一逻辑,保存包含目标条目的路由选择表,所述目标条目按照优先顺序将所述多个端口与目标代理相关联。
本发明的第二方面提供另一种互连代理,包括:在第一节点中用于在点对点链路上与接收节点进行通信的部件;用于响应于确定要把所述第一节点热去除而生成停用消息的部件,所述停用消息将通过用于在点对点链路上与所述接收节点进行通信的所述部件传送给所述第二节点;以及,用于保存将目标节点与用于在点对点链路上与所述接收节点进行通信的所述部件的启用字段相关联的表的部件,其中,响应于在用于在点对点链路上与所述接收节点进行通信的所述部件上接收到与所述停用消息相关联的完成消息,将用于在点对点链路上与所述接收节点进行通信的所述部件的所述启用字段更新为停用值。
本发明的第三方面提供一种设备,包括第一代理,所述第一代理包含:多个端口,其中,所述多个端口的第一端口将接收到端口停用消息;以及,第一逻辑,保存含有与多个目标代理相关联的多个条目的表,所述多个条目中每个条目保存与所述多个端口对应的多个启用字段,以及其中,所述第一逻辑响应于所述第一端口接收到所述端口停用消息而将与所述第一端口对应的多个条目的每个条目中保存的启用字段更新为停用值。
本发明的第四方面提供一种系统,包括:第一代理,包括响应于与第二代理相关联的热添加事件而生成至所述第二代理的启用端口消息;第二代理,包括第一端口、第二端口和第一逻辑,所述第一逻辑将所述第一代理的目标标识符与用于所述第一端口的第一启用字段以及用于所述第二端口的第二启用字段相关联,其中,所述第一逻辑响应于在所述第二端口上接收到来自所述第一代理的所述启用端口消息而将所述第二启用字段更新为启用值。
本发明的第五方面提供一种方法,包括:响应于与第一节点相关联的热去除事件而在所述第一节点生成停用端口消息;响应于在所述第一节点的第一端口上接收到与所述停用端口消息相关联的完成消息而在所述第一节点内所保存的多个路由选择条目中停用所述第一端口;以及,响应于将所述第一节点中包括所述第一端口的所有端口停用而去除所述第一节点。
附图说明
附图中的各图以举例而不是限定的方式来说明本发明。
图1示出协议架构的一个实施例。
图2示出包括利用点对点互连耦合到芯片组的多个处理器的系统的一个实施例。
图3示出利用分层输入/输出(I/O)栈的双向互连架构的框图的一个实施例。
图4示出包括逻辑的多个代理的一个实施例,所述逻辑保存具有与多个端口关联的目标条目的表。
图5示出代理的热去除的协议/流程图的一个实施例。
图6示出用于执行返回循环(cycle)以将用于目标代理的端口停用的协议/流程图的一个实施例。
图7示出代理的热添加的协议/流程图的一个实施例。
具体实施方式
在以下描述中,提出例如具体互连架构、具体消息、具体路由选择表实现、具体互连架构层等的示例的许多具体细节,以便提供对本发明的透彻理解。然而,本领域的技术人员会清楚地知道,这些具体细节不一定要用于实施本发明。在其它情况下,没有详细描述例如具体互连层架构细节/逻辑、具体非相关消息和协议、处理器和高速缓存的具体操作细节等的众所周知的组件或方法,以免不必要地混淆本发明。
本文所述的方法和设备用于在无需静止的情况下提供对路由选择信息的动态修改的支持。具体来说,主要参照在下文更详细描述的说明性的基于高速缓存相关链路的互连架构来论述路由选择信息的动态修改。但是,用于修改在互连架构中没有相关性的路由选择信息的方法和设备并不局限于此,因为它们可采用任何已知的互连架构来实现。
说明性互连架构的实施例
图1示出高级简化协议架构的一个实施例。在一个实施例中,协议架构将在正常事务期间以及在冲突请求期间保持架构内高速缓存中的数据之间的数据一致性。另外,在一个实施例中,协议架构还提供各请求的转发进度,使得满足并引退/完成各请求。
协议架构可包括任何数量的节点或代理。在一个实施例中,节点包括与内部高速缓冲存储器、外部高速缓冲存储器和/或外部存储器相关联的处理器。但是,在互连架构中,节点或代理可表示任何装置或者它们的集合,例如处理器、存储控制器中心(hub)和I/O中心、通用控制器中心、I/O装置、I/O装置的集合或者能够访问存储器的任何其它装置/组件。在另一个实施例中,节点是与其它电子系统互连的电子系统(例如计算机系统、移动装置)。也可使用其它类型的节点配置。
如图所示,架构100包括高速缓存节点/代理105-106和归属代理(home agent)110-112。在一个实施例中,归属代理110-112将保护作为相关存储器空间的存储库(repository)的存储器存储单元(location)。换言之,代理110是归属代理,负责用于相关存储器空间的数据的多个原始物理存储器存储单元。归属代理110-112可执行如下任务的任何组合:跟踪来自高速缓存代理105-106的高速缓存状态转移、管理高速缓存代理105-106之间的冲突、与存储器接口、提供数据和/或所有权以及任何其它已知的与归属代理有关的任务。
在一个实施例中,高速缓存代理105-106包括与高速缓冲存储器关联的代理,例如包括高速缓冲存储器和高速缓存I/O代理实体的处理器。高速缓存代理105-106可执行以下任务的任何组合以及任何其它任务:例如执行对相关存储器空间的读写请求,保存来自相关存储器空间的数据的缓存副本,以及将缓存副本提供给其它对等高速缓存代理。高速缓存代理或节点相对于另一个高速缓存代理又可称作对等代理/节点。虽然图1中没有具体示出,但是协议架构还可包括非高速缓存代理,例如代表输入/输出(I/O)装置参与或见证事务的输入/输出(I/O)中心。
在一个实施例中,高速缓存代理105-106和归属代理110-112保持数据一致性,并且通过在网络结构101上交换消息来提供转发进度。在一个实施例中,结构101帮助消息通过点对点互连网络从一个代理/节点到另一个代理/节点的传输。通常说,图1示出基础网络的高速缓存相关协议的概要视图。
在一个实施例中,互连架构100可结合如以下共同未决申请中所述的新特征的任何组合。例如,标题为“Forward State for Use in CacheCoherency in a Multi-Node System”的美国专利号6922756描述了利用转发高速缓存相关性状态(F状态)。此外,在以下申请中论述了各种情形下的相关协议的示例:2004年4月27日提交的标题为“ATwo-Hop Cache Coherency Protocol”的申请序号10/833963(案号P15925);2004年4月27日提交的标题为“A Messaging Protocol”的申请序号10/833965(案号P18890);2004年4月27日提交的标题为“ACache Coherence Protocol”的申请序号10/833977(案号P18891);2006年1月11日提交的标题为“A Two-Hop Source Snoop Based CacheCoherence Protocol”的申请序号11/330977(案号P22376);以及2006年1月11日提交的标题为“A Two-Hop Source Snoop MessagingProtocol”的申请序号11/331301(案号P23106)。
其它示例包括:2002年12月19日的标题为“SpeculativeDistributed Conflict Resolution for a Cache Coherency Protocol”的申请号10/325427(案号P13923);2002年12月19日提交的标题为“Hierarchical Directories for Cache Coherency in a MultiprocessorSystem”的申请号10/326234(案号P13984);2002年12月19日提交的标题为“Hierarchical Virtual Model of a Cache Hierarchy in aMultiprocessor System”的申请号10/324711(案号P13985);2002年12月19日提交的标题为“Non-speculative Distributed Conflict Resolutionfor a Cache Coherency Protocol”的申请号10/326232(案号P13986)。
注意,上述共同未决申请中所述的特征可结合到本文所述的实施例中;但是,本文所述的实施例并不局限于此,因为它们可包括附加特征以及可能没有包括上述特征。
图2示出包括利用点对点互连架构耦合到芯片组的多个处理器的系统的一个实施例。图2的系统还可包括若干处理器,为了简洁起见,仅示出其中两个处理器205、210。如图所示,处理器205、210各自包括两个处理元件206-207、211-212;但是在处理器205、210中可包含任何数量的处理元件。
处理元件表示线程单元、进程单元、上下文、逻辑处理器、硬件线程、核心和/或能够保存处理器的状态、如执行状态或架构状态的任何其它元件。换言之,在一个实施例中,处理元件表示能够与例如软件线程、操作系统、应用程序或其它代码的代码单独关联的任何硬件。作为一个示例,物理处理器通常表示集成电路,它可能包括任何数量的其它处理元件、如核心或硬件线程。
核心通常表示设置在集成电路上、能够保持独立架构状态的逻辑,其中各独立保持的架构状态与至少某些专用执行资源相关联。与核心相比,又可称作物理线程的硬件线程通常表示设置在集成电路上、能够保持独立架构状态的任何逻辑,其中独立保持的架构状态共享对执行资源的访问。因此,可以看到,在一个实施例中,多个软件线程、如单线程应用程序的多个复制本(replication)能够在多个处理元件上并行运行,所述多个处理元件可包括例如核心或硬件线程的上述处理元件中任一个的组合。
在处理器205、210中还示出资源208、213,它们通常包括寄存器、单元、逻辑、固件、存储器以及运行代码或者与其它装置接口的其它资源。如上所述,资源110中的某些可部分或全部专用于处理元件,而其它资源在处理元件之间共享。例如,可对物理线程复制诸如指令指针和重命名逻辑等较小资源。例如重排序/引退单元中的重排序缓冲器、指令后备转换缓冲器(instruction liikaside translation buffer:ILTB)、加载/存储缓冲器和队列的某些资源可通过分区(partitioning)来共享。例如通用内部寄存器、页表基址寄存器、低级数据高速缓存、数据TLB、执行单元和无序单元的其它资源可能完全在线程之间进行共享。相比之下,核心可具有专用执行资源,同时还共享例如第二级高速缓存(L2)的高级高速缓存的至少一部分。
在一个实施例中,资源208、213包括处理器流水线,它们可包括任何数量的流水线阶段(stage)。流水线阶段的常见示例包括指令指针阶段、取阶段、解码阶段、驱动阶段和分配阶段、重命名阶段、队列阶段、重排序阶段、调度阶段、分发阶段、执行阶段、存储器访问阶段以及寄存器访问阶段。注意,这些阶段的这个列表包括处理器流水线阶段的示范性非详尽列表,因为在处理器100中可包含任何已知的流水线阶段。
相应地,处理器205、210还可各自包括与存储器209、214接口的存储控制器或本地存储控制器中心(memory controller hub:MCH)。存储器209、214包括任何存储器装置,例如随机存取存储器(RAM)、高速缓冲存储器、闪速存储器或者其它存储器装置。在一个实施例中,存储器214包括高级高速缓冲存储器,而资源213包括低级高速缓冲存储器。在另一个实施例中,存储器209包括与处理器205关联的动态随机存取存储器(DRAM),其中处理器205包括高速缓存来自DRAM 209的数据的高速缓冲存储器。注意,这是一个说明性实施例,因为存储器209、214可能包括任何类型的存储器装置。
在一个实施例中,存储器209、214包括包含如图所示在处理器205、210之内或者处理器205、210外部的高速缓冲存储器,处理器205、210能够作为归属节点以及作为对等高速缓存节点。例如,当事务引用(reference)存储器209中的存储器存储单元时,相对于事务和存储器存储单元将负责存储器209的代理、即处理器205确定为归属代理。类似地,随着事务引用另一存储器存储单元、如存储器214中的存储单元,将处理器205确定为对等高速缓存代理。
可以看到,点对点链路220-224以点对点方式将组件耦合在一起。在一个实施例中,物理链路220-224各自包括双向差分信令互连,例如与以下参照图3所述的物理层相关联的物理链路。因此,处理器205、210和芯片组230能够相互直接通信。
芯片组230往往是例如与输入/输出(I/O)集线器耦合的存储控制器的多个集成电路的一般表示。但是,在一个其中代理各自包括与存储器接口的存储控制器中心的一种形式的实施例中,芯片组230表示I/O中心或其它控制器中心。在一个实施例中,如上所述,芯片组230是参与或见证事务的非高速缓存代理。但是,芯片组230并不局限于此,因为在其它实施例中,芯片组230是包括高速缓冲存储器的高速缓存代理和/或包括具有数据的原始存储器存储单元存储库的存储器的归属代理。
如图所示,芯片组230还与多个互连和I/O装置接口,例如外设部件互连(PCI)或PCI Express(PCI-E)装置261、集成设备电路(IDE)或高级传输附件(ATA)装置262、通用串行总线(USB)装置263、局域网(LAN)或无线LAN(WLAN)装置264、音频装置265以及也可包括用于按照本文所述耦合I/O装置的其它互连架构的其它I/O装置266。
参照图3,示出利用分层互连栈的双向互连架构的框图的一个实施例。对图3的层、如物理层302的参照包括对可在不同代理中实现的通用层、如物理层302a和物理层302b的论述。如图所示,互连栈分为五层,其中之一或多个根据设计实现可能是可选的。例如,在一个实施例中,路由选择层304嵌入链路层303的功能性中;因此,在一个实施例中,路由选择层不是独立的不同层。
在一个实施例中,物理层302负责信息在物理介质上的电传输。例如,在链路层实体303a与303b之间使用物理点对点链路。作为一个说明性示例,物理链路包括差分信令方案,其包括双向差分信令对351和352。在这里,物理层可能在逻辑上分为电气子块和逻辑子块,使得物理层将栈的其余部分与信息的电传输隔离,并且将与链路层303进行通信。
在一个实施例中,链路层303从栈的上层对物理层302进行抽象(abstract),并且提供与链路相关的服务,例如已连接代理/实体之间的数据传输和流程控制以及物理信道/接口到多个虚拟信道和消息类的虚拟化。在这里,虚拟信道可看作是供栈的上层使用的多个虚拟网络。例如,协议层306可能依靠链路层303所提供的抽象来将协议消息映射到消息类并因此映射到一个或多个虚拟信道。
在一个实施例中,路由选择层304提供一种用于将分组从来源路由到目的地的灵活方法。如上所述,在极简单的拓扑结构中,路由选择层304可以不是显式的,而是集成到链路层303的功能性中。例如,路由选择层304可依靠链路层303的抽象来指定要路由分组的<端口,虚拟网络>对。
在一个实施例中,路由选择层304或者通过它的功能性与其关联的逻辑将保存路由选择信息、如路由选择表。作为一个具体示例,路由选择表可包括互连架构中的各目标的条目。在这里,条目可保存任何类型的信息,例如路由与目标代理关联的分组所经过的端口。下面更详细地论述路由选择表及关联信息。
在一个实施例中,传输层305提供端对端可靠传输服务。与路由选择层304相似,传输层305根据设计实现也是可选的。作为一个示例,传输层305依靠路由选择层304的服务来提供对协议层306的可靠传输支持。在一个实施例中,在互连架构中,组件子集包括传输层305。因此,该组件子集定义与传输层305有关的分组的子字段,而其它组件可能不定义那些子字段。
在一个实施例中,协议层306将在节点/代理之间实现较高级通信协议,例如高速缓存相关性、排序、对等通信、中断传递等。换言之,协议层306相应地为例如归属节点、对等节点、高速缓存节点和非高速缓存节点的节点或代理定义可允许的消息、请求、响应、阶段(phase)、相关状态等。下面论述例如归属节点消息、监听(snoop)消息、响应消息等消息的示例。
注意,对这些层以及与这些层关联的逻辑的论述可通过任何方式进行耦合。例如,可以说,协议逻辑与物理层、即传送或接收逻辑耦合。在这里,从图3可以看到,在一个实施例中,协议逻辑可以不直接与物理层逻辑耦合,而是通过其它层逻辑进行耦合。此外,在一个实施例中,互连栈与内组件逻辑、如高速缓存控制或高速缓冲存储器逻辑耦合,以便发起适当的高速缓存相关动作。
MESIF协议的实施例的概述
在一个实施例中,基本改进型排它性共享无效转发(ModifiedExclusive Shared Invalid Forward:MESIF)协议在没有单一串行总线的潜在限制的情况下提供与监听协议相似的协议。与监听高速缓存协议相似,MESIF依靠具有数据的缓存副本的节点来保持相关性。点对点链路而不是同步集中广播的使用带来时间异常(time-warp)的问题、即事件从不同节点的角度看来好像以不同顺序出现的事实。作为一个示例,MESIF协议通过识别因时间异常而引起的可能误差并向其提供协议或软件解决方案来处理时间异常。
归属节点往往与数据的未缓存副本相关联。因此,归属节点可参与有关与归属节点关联的数据的事务。但是,归属节点并不一定包含在与事务关联的“关键路径”中,而是归属节点可插入事务中,以便解决冲突和时间异常问题。由于方案的并发广播性质,在一个实施例中,MESIF实现与监听协议关联的低等待时间,同时在某些情况下以最小可能的等待时间、单个往返请求-响应获取数据的可缓存副本。
在一个实施例中,与MESIF协议有关的基本事务涉及向所有对等节点以及归属节点广播初始请求。如果副本以状态E、F或M相关性状态进行高速缓存,则将其包含在响应中。然后,将第二消息发送给归属节点,通知它已经满足了该请求。如果所请求线未被缓存,或者如果仅存在S状态副本,则发送给归属节点的第二请求用于确认归属节点这时可能已经从其存储器中取出的前一个请求。在任一种情况下,为了同步和冲突解决,归属节点响应第二请求(并可能响应第一请求,但它们有时可以结合)。注意,归属节点可具有一个或多个高速缓存,因此它可响应初始请求,就像任何其它节点那样。
在一个实施例中,以分布方式处理冲突。时间异常问题使得难以检测到冲突,因为各个请求可能被延迟任意长的时间。但是,如果每个节点在进行请求之后监测冲突,则将会检测到冲突。多个节点可能检测到冲突,但是作为一个示例,这些节点中至少之一将检测到冲突。因此,在一个实施例中,来自节点的响应可能包含冲突信息。
在一个实施例中,允许接收来自响应的数据副本的节点在接收时立即在内部使用该数据,但是不令使用该数据的效果为系统的其余部分可见、即全局可见,直到节点已经接收到确认为止。确认也可包含请求节点必须将其副本转发给另一个节点以及也许从其自身的高速缓存中逐出(evict)该节点的指令。
最后,当节点通过提供缓存数据来响应来自另一个节点的请求时,在一个实施例中,该节点推迟它对相同高速缓存线接收的其它请求,直到该节点从归属节点接收到确认节点转发了该数据的事实的响应为止,因而确保所有节点观察到(可能可写的)高速缓存线的相同顺序的传输。
如上所述,归属节点是未缓存数据的存储库,但是归属节点也可包括处理器和高速缓存。在这里,当归属节点处理器漏掉高速缓存时,则归属节点向所有其它(对等)节点广播请求,且归属节点在内部处理该请求,好像它是到达归属节点的任何其它请求那样。注意,这是一种特例,因为归属节点没有显式向其本身(归属节点)发送消息。另外,在对本地缓存的数据的外部请求到达时,归属节点适当地进行响应。
所公开的消息协议定义相关(高速缓存和归属)代理、非高速缓存代理以及其它代理(存储控制器、处理器等)之间的容许消息集合。相关协议使用消息作为算法中的词和语法来表示相关想法(thought)。这种算法明智地对请求排序、解决冲突并描述高速缓存代理之间的交互。虽然上文描述了MESIF协议,但是不要求使用MESIF高速缓存相关协议。例如,可以不使用转发状态,这引起使用已知的MESI协议。此外,注意,以上论述包括MESIF协议的一个实施例的示范概述。因此,以上所述的各种组件在单独实施例中可有所不同。下文包括在消息传递和/或相关协议中使用的可能消息的非详尽示范列表。
参照图4,示出包括保存具有与多个端口关联的目标条目的表的逻辑的多个代理的一个实施例。如上所述,又可称作节点的代理410、420、430、440、450和460(410-460)可以是任何类型的代理或节点,例如处理器、控制器中心、I/O装置或者任何其它已知代理/节点。
在一个实施例中,代理410-460包含在基于链路的相关互连架构中。如图所示,代理410-460以点对点方式相互耦合,使得代理410在端口411向代理420传送送往代理450的消息,代理420在端口421接收该消息,并且通过端口422将该消息路由到代理450。如下文所述,可存在到代理450的任何其它数量的路径,例如通过代理460、440再通过420到450。虽然主要参照点对点链路架构来论述路由选择信息的动态修改,但是本文所述的方法和设备并不局限于此。
此外,在一个实施例中,代理410-460的至少一部分将实现互连栈,例如上文所述的互连栈。注意,在一些实施例中,在互连栈的层在逻辑中实现的情况下,各层的边界可以没有明确定义,还部分重叠。例如,如上所述,路由选择层逻辑可能在链路层逻辑中实现或者与其部分重叠。
在一个实施例中,代理410-460中的每个包括保存路由选择信息的逻辑,例如逻辑415、425、435、445和455。例如,逻辑415将保存代理410的路由选择表416。通常,在传送可具有分组形式的消息时,所述消息引用某个目标、目的地或者其它标识符(ID)。因此,在一个实施例中,路由选择表416相应地包括与多个目的地或目标代理/节点、即代理420-460相关联的多个条目,如条目416a-e。在这里,多个条目416a-e提供引用目标或目的地ID的分组/消息的路由选择信息。
例如,假定代理410从代理430接收到引用与代理450关联的目标ID的分组。在一个实施例中,利用目标代理的目标ID或者其表示来对表416进行索引。因此,确定代理450的条目,并且从关联端口列表确定要在其上路由分组的端口。在这里,确定分组将在端口411上进行路由。类似地,当代理420接收消息时,路由选择逻辑425用于在端口422上向代理450路由分组。以前,各目标代理仅与用于路由的单个端口关联,例如端口411用于代理440。但是,如果从系统去除代理420,则将使用静止状态来把用于代理440的端口从411更新到413或412,这可能引起由BIOS或其它软件进行的长的昂贵的更新过程。
因此,在一个实施例中,目标条目以优先顺序或方式与多个端口关联。换言之,目标代理的路由选择条目可在用于向目标代理进行路由的代理的可用端口之间提供优选(reference)。注意,优选可基于任何数量的因素,例如端口被启用(enable)/停用(disable)、与到目标代理的端口关联的传输时间、从端口到目标代理的跳数或者中间代理/节点的数量、在端口上路由的丢失分组的数量或者任何其它已知的路由选择优选因素。此外,优选可通过任何方式来表示,例如表示优选哪些端口的比特编码,或者其中列在另一个端口之前的一个端口根据实现指明更高或更低优选的简单有序列表。
作为一个示例,代理420在条目416a中与代理410的所有三个端口411-413关联。在这里,优选列表用于对端口排序,即,端口411具有比端口412更高的优选,如通过在列表中排位更高来表示。此外,对于条目416a,端口412具有比端口413更高的优先级。但是要注意,在不同的条目中,可存在不同的优先级/优选,例如在条目416e中,端口413是最高优选。因此,当代理410接收到消息以便将其路由到代理420时,在一个实施例中,消息在“优选的”端口、即根据条目416a中的端口的优选顺序的最高优先级端口411上进行路由。
此外,在一个实施例中,多个端口也与启用字段相关联。例如,代理430中的逻辑435将保存路由表436。路由表436包含条目436a-e。各条目、如条目436a将保存与代理430中的多个端口的多个启用/停用字段相关联的目标标识符、即代理410或者其表示。在这里,条目436a包含对于目标代理410具有最高优先级的端口431以及启用的端口433,而端口432被停用。注意,端口432被停用,因为它没有与任何其它代理/节点连接。
在一个实施例中,启用/停用字段包含与代理430的端口关联的比特矢量,其中设置的比特表示对应端口被启用,而清除的比特表示对应端口被停用。如图所示,比特矢量可与端口ID对齐,以便在各条目中将启用字段与各个端口相关联。因此,在这里,将启用字段更新为启用或停用值分别包括设置比特或清除比特。但是要注意,术语“更新”的使用不一定包括状态或值的变更。例如,如果端口在条目中已经停用,则在该条目中将该端口更新为停用值可能没有包括动作,因为该比特已经清除。另外,启用字段并不局限于设置或清除比特。在一个实施例中,可使用用于启用或停用端口或者其它逻辑的任何已知的硬件或逻辑实现。
端口的停用可因为任何数量的原因而发生。例如,如图所示,端口432因在物理上未连接或断开连接、即没有代理或装置与端口432耦合而停用。但是,在一个实施例中,端口还响应接收到该端口的端口停用消息而停用。在另一个实施例中,端口响应接收到返回循环消息而停用。下面分别参照图5和图7更详细地论述端口停用和返回循环消息传递。因此,虽然没有具体示出,但是端口可在目标代理的一个路由选择条目中启用,而在另一个目标代理的另一个路由选择条目中停用。
来看图5,示出代理的热去除的协议/框图的一个实施例。注意,图5-7示出图4的互连架构中所示的代理的子集之间的协议。此外,图5-7采用具体说明性消息以实质串行方式示出协议流程的具体实施例。但是,消息可按照不同顺序来生成/传送,以及如上所述,按照互连架构中可能的时间异常,消息可按照完全不同的顺序来接收。此外,这些消息、流程和框可串行以及并行执行。
在框405,对代理430检测到热去除事件。在一个实施例中,热去除事件包括代理或装置从系统物理的去除。例如,如果代理430包括USB存储钥匙(key),则可从系统拔出存储钥匙。这种热拔往往通过操作系统通常将它称作安全和不安全抽出(ejection)的两种方式中之一来进行。在安全抽出情形下,通知软件关于该抽出、即用户选择抽出装置,以及一旦软件删除装置的抽象,则该装置被安全去除。在另一种情形下,执行物理去除,并且软件稍后删除该装置。因此,热去除事件可包括软件有关事件或者物理去除事件。作为利用互连栈的相关架构中的软件相关事件的一个示例,高级层、如应用层可通过栈来下传软件有关事件,以便指明热去除事件。
但是,代理的物理去除可能不是装置的唯一热去除。实际上,在一个实施例中,代理的热去除包括将装置去除、停用、断电或者通过使用硬件、软件、固件或者它们的组合简单地对系统的其余部分隐藏该装置。因此,作为第一说明性示例,热去除可在代理想要进入低功率状态时发生。注意,根据设计实现,代理的热去除可通过包括上述示例或者从系统或OS的角度去除装置的其它已知方法的任何方式来定义。
响应于检测到热去除事件505,代理430生成停用端口消息451。停用端口消息包括向接收代理指明端口将被停用的任何消息。在一个实施例中,该消息包括指明哪个端口将被停用的端口标识符。备选地,该消息只指明某个端口将被停用,并且接收代理在其上接收消息的端口就是要停用的端口。
在一个实施例中,该消息利用例如与协议层关联的协议逻辑的逻辑来生成。在这里,规则可能规定消息451将响应于检测到所定义去除事件而生成。在一个实施例中,将停用端口消息451传送到相邻代理410、440。作为一个示例,在互连栈中,在生成之后,利用要传送消息的逻辑、如物理层逻辑来传送消息。
从图4中注意到,保存在代理430的逻辑435中的表436的条目436a指明要被路由到目标代理410的消息优选地在端口431、即目标代理410的最高优选端口上转发。类似地,条目436c指明该消息应当在端口433上转发给代理440。在这里,代理410和440分别在端口412和442上接收停用端口消息451。
在一个实施例中,代理430立即停用它在其上转发停用端口消息451的端口、即端口431、433。备选地,如图所示,代理430等待与该停用端口消息关联的完成消息以便停用对应端口。因此,在这个实施例中,当代理430在停用端口消息被发送之后但在完成消息被接收之前由接收到消息时,代理430继续在启用端口上路由消息。例如,代理410向代理430转发以代理440为目标的消息(MSG)。由于代理430尚未接收到完成453以便停用端口433,所以代理430在端口433上向代理440转发消息。
此外,在一个实施例中,接收停用端口消息、向其传送完成或者它们的组合引起代理清除通过端口的任何排队循环。例如,代理410令Msg(消息)1、Msg2和Msg3排队以便转发给代理430。在这里,由于接收到停用端口消息451,代理410从队列中清除送往代理430的这些消息。注意,经由端口412的循环的清除示出在端口412的停用和完成的传送之前;但是,可按照任何顺序来清除循环。
响应于在端口412和442上接收到停用端口消息,代理410和440分别停用那些端口。换言之,代理410在端口412上接收到停用端口消息,因此它停用端口412。在一个实施例中,停用端口412包括在路由选择表416的各条目中停用端口412。例如,回到图4,注意在所有条目416a-e中停用端口412。在另一个实施例中,仅在与生成该停用端口消息的源代理对应的条目中停用端口412。以类似方式在代理440的路由选择逻辑445中停用端口442。在另一个实施例中,响应于接收到停用端口消息而从表416的参与者列表中删除代理430。
代理410和440分别生成完成消息452、453并将其传送给代理430。响应于在端口433上接收到来自代理440的完成消息453,代理430停用端口433。在一个实施例中,如图4所示,响应完成消息、如来自代理440的完成453,在表436的各条目中停用端口433。换言之,在条目436a-e中停用端口433。以类似方式在表436中停用端口431,即,如图所示,在路由选择表436的各条目436a-e中停用端口431。
在一个实施例中,响应于停用所有端口、即接收到所有完成,将该装置去除。从以上所述注意到,去除可包括任何数量的动作,例如从软件的去除、从硬件的去除、断电或者其它去除动作。
来看图6,示出说明返回循环的协议/框图的一个实施例。在一个实施例中,向邻居传送停用端口消息,以及其它节点通过至停用代理和/或端口的正常尝试循环来学习以便向其进行路由。换言之,在这里,停用端口消息将热去除的装置的邻居的端口停用。如下文所述,在该邻居的路由选择逻辑中停用接收到那个消息的端口。正常业务引起下文进行描述的返回循环,所述返回循环最终将在与热去除的装置关联的其它组件中的端口停用。因此,通过停用端口消息以及正常业务和返回循环交换,互连架构从热去除接近稳定的路由选择信息。
作为一个示例,代理450生成并传送送往代理430的消息。根据节点450中的路由选择逻辑455,通过端口451将该消息路由到代理420。根据代理420中的路由选择表425,该消息还通过端口421被路由到代理410。在这里,在一个实施例中,响应于端口停用消息,代理410停用端口412。但是,在当前优选列表中,对代理430启用节点413和411。因此,代理410可尝试通过那些端口向代理430进行路由。但是,如下文更详细描述,返回循环流程应当最终在代理410的路由选择逻辑415中停用用于代理430的所有端口。在下文所述的另一个实施例中,立即从表416的参与者列表中删除代理430。
无论哪种方式,最终,当代理430在路由选择逻辑415中停用、即对于代理430没有启用条目中的端口或者用于代理430的条目不存在时,消息都到达代理410。在这里,当代理410因代理430在路由选择逻辑415中停用而不能转发该消息时,在一个实施例中,代理410生成/执行返回循环。在一个实施例中,返回循环消息包括具有为了将其标识为返回循环而设置的字段或其它标志的原始消息。但是,在其它实施例中,指明不可转发消息的任何方法被确定为返回循环。作为第一示例,将返回循环提供回消息的原始源、如代理450。作为另一个示例,将返回循环提供回传输路径中在当前节点之前的传送节点。
在这里,将返回循环消息提供回代理420。在一个实施例中,当在端口421上接收到该返回循环消息时,在代理420的逻辑425中停用用于代理430的端口421。作为一个示例,除了停用端口421之外,代理420还可尝试在用于代理430的另一个启用端口、如端口423上重新路由消息,其中端口423通过代理440、代理460(因为在代理440中端口442被停用)再次向代理410进行路由。代理410通过代理460的路径将使用于代理430的端口停用的类似返回循环消息提供回代理440并提供回代理420。当该消息返回到代理420时,在路由选择逻辑425中对代理430去除端口423,因为在端口423接收到了送往代理430的消息的返回循环。在这里,在一个实施例中,通过在逻辑425中所有端口对代理430停用,可以说,从表416的参与者列表中删除代理430。代理从路由选择表中的删除可包括删除条目。但是,在另一个实施例中,条目的删除包括给该条目留下被停用的所有关联端口。
可以看到,代理420可能没有立即知道已经从系统去除了代理430,但它通过尝试的消息路由来了解到代理430已被去除。换言之,代理420的路由选择表425通过正常业务的路由来了解到代理430已被去除。在这里,如果循环到达尽头(dead end),则通过接收到来自正常循环的所返回消息,路由选择逻辑425能够识别代理430不可达。类似地,在以上所述的一个实施例中,代理410可以仅停用在其上接收到停用消息的端口,并在以后通过返回循环协议可将用于代理430的其它启用端口停用,以便基本上从参与者列表中删除代理430。
还要注意,当返回循环消息在代理420到达尽头、即在逻辑425中用于代理430的所有端口被停用时,则将该返回循环消息转发回代理450。在这里,代理450在逻辑455中停用用于代理430的端口451。因此,互连架构随时间通过端口的停用来了解代理已被去除或者至少了解它是不可达的。
虽然参照图6使用传送给相邻代理的停用端口消息来论述热去除,但是停用消息或停用端口消息并不局限于此。例如,在一个实施例中,将停用消息在整个系统或互连架构广播。在这里,各组件广播/转发该停用消息,并且更新其与热去除的装置关联的路由选择逻辑。注意,路由选择逻辑的更新可与上文所述方法相似,例如从路由选择逻辑的参与者列表中删除热去除的代理和/或在路由选择逻辑中将与热去除的代理相关联的所有端口停用。
接下来参照图7,示出代理的热添加的协议/框图的一个实施例。在这里,在框705检测到对代理430的热添加,而不是在图5的框505中的热去除。基本上,执添加包括上文所述的热去除的可能实施例的任一个的相反面。因此,如果热去除包括代理从系统的物理去除,则热添加包括所述代理向系统的物理添加,并且对于断电/加电和软件去除/添加类似。
由于检测到与代理430关联的热添加,启用端口消息由代理430生成。在一个实施例中,将启用端口消息传送给互连网络中的所有节点。在这里,甚至在仅将停用端口消息发送给邻居的实施例中,可向所有节点广播启用端口消息。备选地,在另一个实施例中,仅将启用端口消息传送给相邻节点、即与代理430直接连接的那些节点。
如图所示,代理410在端口412上接收该启用消息。如果不存在用于代理430的当前条目,则将代理430添加到参与者列表。在一个实施例中,所有端口、如411-413响应于接收到启用端口消息而被启用,甚至当仅在单个端口接收到该启用消息时。在这里,可启用没有向代理430进行路由的端口,但是与上文一样,代理410将随时间了解到通过返回循环应当停用那些端口。此外,将来的路由循环可用于在逻辑415中确定和动态改变用于代理430的优选列表。
在另一个实施例中,在接收到该启用端口消息时仅启用端口412。在这里,可在不同的端口上接收到多个启用端口消息,以便启用代理410的正确端口以供向代理430进行路由。类似地,代理440接收到启用端口消息,并且相应地将其路由选择表配置用于代理430。在一个实施例中,将启用端口完成消息从代理410、440传回,相应地将端口431、433启用。
因此,从上文可见,互连架构中的路由选择表响应于代理配置变化的修改可动态执行,而不是使用停止状态。因此,可能避免将系统暂停并且令外部软件/固件重新配置路由选择信息的昂贵性质。此外,通过使用至邻居的停用消息和返回循环,系统可能了解到已去除了装置,而不是必须将去除进行系统范围广播,这可能减少不必要的业务。此外,用于目标代理的端口可设置在优选列表中,所述优选列表是动态可改变的,从而确保分组在系统操作期间的最有利路由。
本文所使用的模块表示任何硬件、软件、固件或者它们的组合。通常,示为独立的模块边界一般可改变并且可能重叠。例如,第一和第二模块可共享硬件、软件、固件或者它们的组合,同时可能保留一些独立的硬件、软件或固件。在一个实施例中,术语“逻辑”的使用包括例如晶体管、寄存器的硬件或者例如可编程逻辑装置的其它硬件。但是,在另一个实施例中,逻辑还包括与硬件集成的软件或代码,例如固件或微码。
本文所使用的值包括数值、状态、逻辑状态或者二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑值的使用又称作只是表示二进制逻辑状态的1和0。例如,1表示高逻辑电平,而0表示低逻辑电平。在一个实施例中,存储单元、如晶体管或闪存单元可以能够保存单个逻辑值或多个逻辑值。但是,在计算机系统中已经使用值的其它表示。例如,十进制数10也可表示为二进制值1010以及十六进制字母A。因此,值包括能够在计算机系统中保存的信息的任何表示。
此外,状态可由值或者值的部分来表示。作为一个示例,第一值、如逻辑1可表示默认或初始状态,而第二值、如逻辑0可表示非默认状态。另外,在一个实施例中,术语“重置”和“设置”分别表示默认和更新值或状态。例如,默认值可能包括高逻辑值、即重置,而更新值可能包括低逻辑值、即设置。注意,值的任何组合可用于表示任何数量的状态。
上文提出的方法、硬件、软件、固件或代码的实施例可经由机器可访问或机器可读介质上存储的、由处理元件执行的指令或代码来实现。机器可访问/可读介质包括以机器、如计算机或电子系统可读形式来提供(即存储和/或传送)信息的任何机构。例如,机器可访问介质包括:随机存取存储器(RAM),例如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储介质;闪速存储器装置;电存储装置、光存储装置、声存储装置或者其它形式的传播信号(例如载波、红外信号、数字信号)存储装置等。例如,机器可通过从能够保存要在传播信号上传送的信息的介质接收例如载波等传播信号来访问存储装置。
本说明书中对“一个实施例”或“实施例”的引用表示结合该实施例所述的具体特征、结构或特性包含在本发明的至少一个实施例中。因此,词语“在一个实施例中”或“在实施例中”在本说明书的各个位置的出现不一定都表示同一个实施例。此外,这些具体特征、结构或特性可通过任何适当方式结合在一个或多个实施例中。
在以上说明书中,参照具体示范实施例来提供详细描述。但是显而易见,在没有背离所附权利要求书所提出的本发明的广义精神和范围的情况下,可对其进行各种修改和变更。因此,说明书和附图将被看作是说明性而不是限制性的。此外,实施例及其它示范语言的使用不一定表示相同的实施例或者相同的示例,而是可表示不同且有区别的实施例以及可能相同的实施例。

Claims (18)

1.一种互连代理,包括:
多个端口,能够通过点对点链路与多个代理耦合;
第一逻辑,保存包含目标条目的路由选择表,所述目标条目按照优先顺序将所述多个端口与目标代理相关联;以及
与所述第一逻辑耦合的第二逻辑,响应于所述第一逻辑将用于所述多个端口中的第一端口的启用字段更新为停用值而生成至与端口停用消息相关联的源节点的、与所述端口停用消息相关联的完成消息,
其中,第一逻辑能够按照基于路由选择因素的不同优先顺序动态配置所述目标条目来关联所述多个端口,其中,所述目标条目包括与优选列表中通过优选列出的多个端口对应的多个端口标识符。
2.如权利要求1所述的互连代理,其中,按照所述优先顺序将所述多个端口与目标代理相关联的所述目标条目是按照优先顺序将所述多个端口与多个目标代理相关联的多个目标条目中之一。
3.如权利要求1所述的互连代理,其中,所述路由选择因素从以下各项组成的组中选取:所述多个端口中最近停用的端口、到与所述多个端口的端口相关联的目标条目的跳数以及通过所述多个端口的端口到所述目标代理的路由时间。
4.如权利要求1所述的互连代理,其中,所述多个端口标识符中每个端口标识符与启用字段相关联,并且其中,响应于在所述第一端口上接收到返回循环消息而将与所述多个端口的第一端口相关联的启用字段更新为停用值。
5.一种互连代理,包括:
在第一节点中用于在点对点链路上与接收节点进行通信的部件;
用于响应于确定要把所述第一节点热去除而生成停用消息的部件,所述停用消息将通过用于在点对点链路上与所述接收节点进行通信的所述部件传送给第二节点;以及
用于保存将目标节点与用于在点对点链路上与所述接收节点进行通信的所述部件的启用字段相关联的表的部件,其中,响应于在用于在点对点链路上与所述接收节点进行通信的所述部件上接收到与所述停用消息相关联的完成消息,将用于在点对点链路上与所述接收节点进行通信的所述部件的所述启用字段更新为停用值。
6.如权利要求5所述的互连代理,还包括:
用于检测和用于在点对点链路上与所述接收节点进行通信的所述部件相关联的热去除事件的部件;以及
用于根据检测到所述热去除事件来确定要将所述第一节点热去除的部件。
7.一种用于高速点对点互连链路的设备,包括第一代理,所述第一代理包含:
多个端口,其中,所述多个端口的第一端口将接收端口停用消息;
第一逻辑,保存含有与多个目标代理相关联的多个条目的表,所述多个条目中每个条目保存与所述多个端口对应的多个启用字段,以及其中,所述第一逻辑响应于所述第一端口接收到所述端口停用消息而将与所述第一端口对应的多个条目的每个条目中保存的启用字段更新为停用值;以及
与所述第一逻辑耦合的第二逻辑,响应于所述第一逻辑将用于所述第一端口的启用字段更新为所述停用值而生成至与所述端口停用消息相关联的源节点的、与所述端口停用消息相关联的完成消息。
8.如权利要求7所述的设备,其中,所述第一逻辑响应于所述条目保存与所述多个端口对应的所有所述多个启用字段的停用值而从所述表中删除所述多个条目中与所述多个目标代理的目标代理相关联的条目。
9.如权利要求8所述的设备,还包括:与所述第一逻辑耦合的第二逻辑,响应于在所述第一逻辑从所述表中删除所述条目之后从源代理接收到引用所述多个目标代理的所述目标代理的消息而生成到所述源代理的返回循环。
10.如权利要求7所述的设备,还包括:与所述第一逻辑耦合的第二逻辑,响应于所述第一端口接收到所述端口停用消息而发起与所述第一端口相关联的多个排队循环的清除。
11.如权利要求7所述的设备,其中,所述第一逻辑还响应于第二端口接收到返回的循环消息而将与所述第二端口对应的多个条目的每个条目中保存的第二启用字段更新为所述停用值。
12.一种用于高速点对点互连链路的系统,包括:
第一代理,包括响应于与第二代理相关联的热添加事件而生成至所述第二代理的启用端口消息;
第二代理,包括第一端口、第二端口和第一逻辑,所述第一逻辑将所述第一代理的目标标识符与用于所述第一端口的第一启用字段以及用于所述第二端口的第二启用字段相关联,其中,所述第一逻辑响应于在所述第二端口上接收到来自所述第一代理的所述启用端口消息而将所述第二启用字段更新为启用值,其中,所述第二代理还包括与所述第一逻辑耦合的第二逻辑,所述第二逻辑响应于所述第二端口被更新为所述启用值而生成至所述第一代理的、与所述启用端口消息相关联的完成消息。
13.如权利要求12所述的系统,其中,响应于在所述第二端口上接收到来自所述第一代理的所述启用端口消息,还将用于所述第一端口的第一启用字段更新为所述启用值。
14.一种用于高速点对点互连链路的方法,包括:
响应于与第一节点相关联的热去除事件而在所述第一节点生成停用端口消息;
响应于在所述第一节点的第一端口上接收到与所述停用端口消息相关联的完成消息而在所述第一节点内所保存的多个路由选择条目中停用所述第一端口;以及
响应于将所述第一节点中包括所述第一端口的所有端口停用而去除所述第一节点,
其中,所述方法进一步包括用所述第一节点转发在生成所述停用端口消息之后且在接收到所述完成消息之前通过所述第一端口接收到的、与所述第一端口相关联的任何消息。
15.如权利要求14所述的方法,还包括:
在第二节点的第二端口接收所述停用端口消息;
响应于接收到所述停用端口消息,清除与所述第二端口相关联的任何正在处理的循环;在所述第二节点内所保存的第二多个路由选择条目中停用所述第二端口;以及生成至所述第一节点的完成消息。
16.如权利要求15所述的方法,还包括:
用所述第二节点接收来自传送节点的所传送消息,所述传送消息包含所述第一节点的目的地标识符;
确定在所述第二多个路由选择条目中与所述第一节点的所述目的地标识符相关联的路由选择条目中停用所有端口;以及
响应于确定在与所述第一节点的所述目的地标识符相关联的所述路由选择条目中停用所有端口而生成至所述传送节点的返回循环消息。
17.如权利要求16所述的方法,还包括:
在所述传送节点的第三端口上接收所述返回循环消息;以及
响应于在所述第三端口上接收到所述返回循环消息而在所述传送节点内所保存的第三多个路由选择条目中停用所述第三端口。
18.如权利要求15所述的方法,还包括:
响应于与所述第一节点相关联的热添加事件而在所述第一节点生成启用端口消息;
响应于在所述第一端口上接收到与所述启用端口消息相关联的第二完成消息而在所述第一节点内所保存的所述多个路由选择条目中启用所述第一节点的所述第一端口。
CN200910159869XA 2008-07-07 2009-07-07 路由表的动态更新 Expired - Fee Related CN101635679B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/168,616 2008-07-07
US12/168616 2008-07-07
US12/168,616 US8111615B2 (en) 2008-07-07 2008-07-07 Dynamic update of route table

Publications (2)

Publication Number Publication Date
CN101635679A CN101635679A (zh) 2010-01-27
CN101635679B true CN101635679B (zh) 2013-12-18

Family

ID=41413040

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910159869XA Expired - Fee Related CN101635679B (zh) 2008-07-07 2009-07-07 路由表的动态更新

Country Status (4)

Country Link
US (2) US8111615B2 (zh)
JP (1) JP5050009B2 (zh)
CN (1) CN101635679B (zh)
DE (1) DE102009031870B4 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8111615B2 (en) * 2008-07-07 2012-02-07 Intel Corporation Dynamic update of route table
US20110078472A1 (en) * 2009-09-25 2011-03-31 Electronics And Telecommunications Research Institute Communication device and method for decreasing power consumption
WO2012103705A1 (zh) 2011-06-24 2012-08-09 华为技术有限公司 计算机子系统和计算机系统
CN102810118B (zh) * 2012-07-05 2015-08-05 上海电力学院 一种变权网k近邻搜索方法
CN102801612B (zh) * 2012-07-06 2015-04-22 武汉虹信通信技术有限责任公司 一种更新交换芯片上主机路由信息的改进方法及系统
US9213643B2 (en) 2013-03-13 2015-12-15 Applied Micro Circuits Corporation Broadcast messaging and acknowledgment messaging for power management in a multiprocessor system
US10057123B1 (en) * 2013-12-27 2018-08-21 Alarm.Com Incorporated Network topology backup
JP6337606B2 (ja) * 2014-05-15 2018-06-06 富士通株式会社 情報処理装置、経路決定方法及びプログラム
CN105471824A (zh) * 2014-09-03 2016-04-06 阿里巴巴集团控股有限公司 实现浏览器调用本地业务组件的方法、装置及系统
US10394599B2 (en) 2017-01-05 2019-08-27 International Business Machines Corporation Breaking dependence of distributed service containers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1275292A (zh) * 1998-08-10 2000-11-29 电话通有限公司 在网关和服务中心之间进行路由确定的方法和装置
CN1799040A (zh) * 2003-06-03 2006-07-05 英特尔公司 检测外部存储器模块之存在并向内部模块报告的存储器模块体系结构菊花链拓扑

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4922408A (en) * 1985-09-27 1990-05-01 Schlumberger Technology Corporation Apparatus for multi-processor communications
CA1335836C (en) * 1988-07-07 1995-06-06 Ichiro Iida Adaptive routing system
US20020156918A1 (en) * 2001-04-23 2002-10-24 Brocade Communications Systems, Inc. Dynamic path selection with in-order delivery within sequence in a communication network
US6950394B1 (en) * 2001-09-07 2005-09-27 Agilent Technologies, Inc. Methods and systems to transfer information using an alternative routing associated with a communication network
TWI220714B (en) * 2002-01-10 2004-09-01 Accton Technology Corp Method of hot swap
US6922756B2 (en) 2002-12-19 2005-07-26 Intel Corporation Forward state for use in cache coherency in a multiprocessor system
US6990545B2 (en) * 2003-04-28 2006-01-24 International Business Machines Corporation Non-disruptive, dynamic hot-plug and hot-remove of server nodes in an SMP
US7023808B2 (en) * 2003-12-23 2006-04-04 Cisco Technology, Inc. System and method for distributing route selection in an implementation of a routing protocol
JP2007166347A (ja) 2005-12-15 2007-06-28 Fujitsu Support & Service Kk ネットワーク中継器
JP5086585B2 (ja) 2006-08-11 2012-11-28 アラクサラネットワークス株式会社 ネットワーク中継装置
US8111615B2 (en) * 2008-07-07 2012-02-07 Intel Corporation Dynamic update of route table

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1275292A (zh) * 1998-08-10 2000-11-29 电话通有限公司 在网关和服务中心之间进行路由确定的方法和装置
CN1799040A (zh) * 2003-06-03 2006-07-05 英特尔公司 检测外部存储器模块之存在并向内部模块报告的存储器模块体系结构菊花链拓扑

Also Published As

Publication number Publication date
DE102009031870A1 (de) 2010-01-14
US8693476B2 (en) 2014-04-08
JP5050009B2 (ja) 2012-10-17
DE102009031870B4 (de) 2013-01-31
US20100002707A1 (en) 2010-01-07
CN101635679A (zh) 2010-01-27
US8111615B2 (en) 2012-02-07
US20110286458A1 (en) 2011-11-24
JP2010079880A (ja) 2010-04-08

Similar Documents

Publication Publication Date Title
CN101635679B (zh) 路由表的动态更新
US10019366B2 (en) Satisfying memory ordering requirements between partial reads and non-snoop accesses
US8205045B2 (en) Satisfying memory ordering requirements between partial writes and non-snoop accesses
US7272741B2 (en) Hardware coordination of power management activities
US7386680B2 (en) Apparatus and method of controlling data sharing on a shared memory computer system
US7437520B2 (en) Adaptive snoop-and-forward mechanisms for multiprocessor systems
JPH11134312A (ja) 分散共有メモリ多重プロセッサシステム
CN104380269A (zh) 高性能互连相干协议
JP2002304328A (ja) マルチプロセッサシステム用コヒーレンスコントローラ、およびそのようなコントローラを内蔵するモジュールおよびマルチモジュールアーキテクチャマルチプロセッサシステム
US10740236B2 (en) Non-uniform bus (NUB) interconnect protocol for tiled last level caches
US8930640B2 (en) Multiprocessor computer system with reduced directory requirement
JP2004318744A (ja) 高可用性を提供するデータベース処理方法
TW498210B (en) Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests
US11714755B2 (en) System and method for scalable hardware-coherent memory nodes
US8397029B2 (en) System and method for cache coherency in a multiprocessor system
CN108415873B (zh) 转发对监听请求的响应
US11947418B2 (en) Remote access array
JP2018152054A (ja) スヌープ要求への対応
JPH0991261A (ja) 並列計算機

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131218

Termination date: 20210707

CF01 Termination of patent right due to non-payment of annual fee