CN100524271C - 将事务分离到不同的虚拟信道的方法、装置 - Google Patents

将事务分离到不同的虚拟信道的方法、装置 Download PDF

Info

Publication number
CN100524271C
CN100524271C CNB200410078931XA CN200410078931A CN100524271C CN 100524271 C CN100524271 C CN 100524271C CN B200410078931X A CNB200410078931X A CN B200410078931XA CN 200410078931 A CN200410078931 A CN 200410078931A CN 100524271 C CN100524271 C CN 100524271C
Authority
CN
China
Prior art keywords
channel
virtual network
affairs
record
transaction types
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
CNB200410078931XA
Other languages
English (en)
Other versions
CN1690995A (zh
Inventor
K·C·克雷塔
A·T·斯平克
R·G·布兰肯施普
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 CN1690995A publication Critical patent/CN1690995A/zh
Application granted granted Critical
Publication of CN100524271C publication Critical patent/CN100524271C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

在本发明的一个实施方案中,一种方法可包括:基于输入事务的类型将相干系统的某代理的输入事务至少分离到第一信道、第二信道和第三信道。输入事务可由与相干系统相耦合的对等装置来发送。通过基于类型来分离事务,可避免死锁。

Description

将事务分离到不同的虚拟信道的方法、装置
技术领域
本发明涉及到数据通信,特别是涉及到系统中各装置之间的通信。
背景技术
大多数计算机系统是通过使用一个或多个总线耦合在一起的组件形成的,该总线用来在各系统组件之间传输信息。诸如PeripheralComponent Interconnect(PCI)Specification(《外围组件互连规范》)2.1版(1995年6月1日出版)等的现有总线标准提供了一种多点总线(multidrop bus),其中多个装置可以与同一总线相耦合。因此易于通过同一总线对装置进行读或写。
但是,随着总线接口速度的增加,总线架构正在从多点架构移向点到点架构。在此类点到点架构中,对等通信变得更为困难,原因是此类通信的同步、排序和相干性变得更为困难。点到点架构的一个例子是符合PCI Express Base Specification 1.0版(2002年7月22日出版)的PCIExpressTM架构。
由于一个系统的或与之相耦合的多个总线可能会使用不同的通信协议,所以存在着通信困难。例如:输入/输出(I/O)装置之间的对等通信可能会根据第一种协议来发送,但由于点到点架构以及I/O装置之间的其它组件所使用的第二种协议,所以此类通信会变得很困难。
此外,I/O接口一般将各事务(transaction)标识为投寄型(posted)或非投寄型(non-posted),而且各类型的定序规则是不同的。某些定序规则处在适当的位置用于功能的正确性(如:读出事务不许超越写入处理,写入处理不许超越写入等等)。除此类定序规则之外,某些诸如PCI的协议要求投寄的循环(posted cycles),以前进过去的失速的(stalled)非投寄的循环。这是为了避免由于缺乏前行而造成接口死锁。在诸如PCI的某些协议中,通过允许一个目标“重试”请求来使能前行,此请求用信号通知启动者:它应该绕过该尝试的事务而试试可能在它之后的事务。
但是,在遵循第一种协议的I/O装置与具有第二种协议的一个系统耦合的情况下,存在不同的方法来避免死锁,这些不同的机制有时是不兼容的。当一个协议未规定重试选项时,尤其存在这种不兼容性,并且事务的信用跟踪(credit tracking)是在不同协议的不同层来完成的。因此,存在对规定通过系统的事务进行无死锁传输的需求,这里对于该系统的不同组件存在多种协议。
发明内容
根据本发明的第一方面,提供了一种方法,包括:基于输入事务的类型,将一个相干系统的代理器的输入事务分离到至少第一信道、第二信道和第三信道。
根据本发明的第二方面,提供了一种方法,包括:在相干系统中从第一对等装置接收第一事务类型;从该相干系统的该第一对等装置接收第二事务类型;以及在整个相干系统中保持第一事务类型与第二事务类型分离。
根据本发明的第三方面,提供了一种装置,包括:第一总线代理器,其基于输入事务的类型来接收输入事务并通过至少三个信道中的一个信道来路由该输入事务。
根据本发明的第四方面,提供了一种系统,包括:第一总线代理器,其基于输入事务的类型,通过至少三个信道中的一个信道来接收输入事务并路由该输入事务;第二总线代理器,其通过一个点-到-点-到-点互连来与第一总线代理器耦合。
附图说明
图1是按照本发明的一种实施方案的系统方块图。
图2是按照本发明的一种实施方案的输入/输出集线器方块图。
图3是按照本发明的一种实施方案的相干系统的部分方块图。
具体实施方式
参见图1,图中所示是按照本发明的一个实施方案的系统方块图。如图1中所示,系统10可以是一个多处理器系统,它包括按照本发明的一个实施方案的一个相干接口。即,在其它实施方案中,系统10可以代表在不同的实施方案中的任何一个所希望的台式的、移动的、服务器平台或其它类似平台。在某些实施方案中,图1的不同组件之间的互连可以是提供用于系统10内的相干共享存储器的点到点互连,在一个这样的实施方案中,在其间通信所采用的互连和协议可以构成一个公共系统接口(CSI)。以这种方式,系统10的多个处理器、存储器和其它组件可相干地相互接口。
参见图1,系统10可包括一个第一处理器50(CPU A)和第二处理器55(CPU B)。在各种实施方案中,每个处理器可包括存储控制器功能性,以便处理器能够通过一个点到点互连来直接与一个相关联的共享存储器相接口。例如:如图1所示,处理器50可以通过一个点到点互连来与存储器60(存储器A)耦合,而处理器55可以通过一个类似的点到点互连来与存储器65(存储器B)耦合。此外,处理器50和55也可通过一个点到点互连来相互耦合。同样,处理器50和55中的每一个都可以通过点到点互连来与第一输入/输出集线器(IOH A)20和第二IOH30(IOH B)中的每一个进行耦合。
在图1的实施方案中,方框15中的所有组件可以共同地组成一个相干系统(即,相干系统15)。此类相干系统可接纳相干事务,而事务所流过的信道之间则无需任何定序。尽管此处所讨论的是相干系统,但应该理解,相干和非相干事务均可由系统内的组件传递过去以及进行作用。例如:存储器60和65之一或两者的一个区域可为非相干事务预留。虽然在图1实施方案所示的平台拓扑中有两个处理器和两个I/O集线器,但应理解为,其它实施方案可以包括更多或更少的此类组件。例如:可以实现一种具有一单个处理器、一单个I/O集线器和与其相耦合的关联I/O装置的单处理器系统。此外,也可以实现具有4、8、16、32或其它数目的处理器的多处理器系统,且适当数量的I/O集线器和其它组件可与其耦合。任何此类平台拓扑均可利用点到点互连,从而为该系统的一个相干部分内的相干性作准备,并且也允许在与其耦合的I/O装置之间的非相干对等事务。因此,此类点到点互连可以在组件之间提供多个通路。
如图1所示,I/O集线器20和30中的每个可包含有多个端口(如:IOH 20中的端口21-24,IOH 30中的端口31-34),以便和与其相耦合的I/O装置相接口。例如:在某些实施方案中,此类I/O装置可能会是按照一个或多个总线结构的装置。在一个实施方案中,此类I/O装置可以是PCI ExpressTM装置。当在其中使用时,此类装置可被称为“PCI-E”装置。
为了简化,图1表示了一种与各I/O集线器相耦合的单I/O装置,即通过端口21与IOH 20相耦合的I/O装置(I/O装置A)40,通过端口31与IOH 30相耦合的I/O装置(I/O装置B)45。应理解的是,与本发明的实施方案相符的一个I/O集线器中,端口数可以改变,图1中所示的端口数及与其耦合的装置数仅用于说明。
图1所示是一种与IOH 30相耦合的传统I/O控制器集线器(ICH)70。在一种实施方案中,ICH 70可以用来将诸如键盘、鼠标和UniversalSerial Bus(通用串行总线,USB)装置(如:与《USB规范》2.0版(2000年12月出版)相符的装置)之类的传统装置耦合到相干系统15。
虽然图1所示的I/O集线器包括多个端口,但应理解,集线器可以使用硬件、固件和软件的组合来实现各种功能。此类硬件和软件的使用可使得I/O集线器在相干系统15(如共享存储器60和65、处理器50和55以及IOH 20和30)以及与其耦合的装置(如I/O装置40和45)之间作为接口来使用。此外,图1的I/O集线器可被用来支持各种总线或与其耦合的装置的其它通信协议。IOH 20和IOH 30可用作代理,在两个或更多个通信链路间提供一个中央连接。要特别指出的是,IOH 20和IOH30也可被称为在与相干系统15相耦合的不同I/O装置之间提供连接的“CSI代理”。在各种实施方案中,相干系统15中的其它组件也可用作CSI代理。
在各种实施方案中,I/O集线器20和30的每一个端口可包括多个信道,在这里常被称为“虚拟信道”,这些虚拟信道可共同形成一个虚拟网络,该端口还可包括在不同装置间进行数据、控制和状态信息通信的关联缓冲器。在一个特定的实施方案中,每个端口可至少包括三个此类信道,包括一个标准信道、一个旁路信道和一个完成信道(completionchannel),但本发明的范围并不局限于此。此外,这些信道可以是非相干信道,用来路由与相干系统15相耦合的I/O装置的非相干事务。在某些此类实施方案中,可存在用于相干传输的附加信道。在其它实施方案中,可存在两个虚拟信道。在此类实施方案中,两个信道可以是一个标准信道和一个旁路信道。以这样的方式,在装置间流动的事务可避免死锁,而死锁在投寄的事务变得被延迟于非投寄的事务(比如读出)之后时可发生。
现在请参见图2,图中所示是本发明一种实施方案的I/O集线器方块图。如图2所示,I/O集线器100被耦合于PCI接口105与接线(wire)170之间,该接线可以是相干系统15的通往结构180的接线(如:“CSI接线”)。例如:在以上图1所讨论的实施方案中,I/O集线器100可以是I/O集线器20或30中的一个,而结构180可以是相干系统15的一个结构(如:一个“CSI结构”或一个“通用系统结构”),PCI接口105可将I/O装置40与I/O集线器20耦合在一起。虽然图2的实施方案中所讨论的是与PCI装置(如某种“传统”的PCI装置或与《PCI-X规范》2.0版(2002年7月22日出版)相一致的某种装置,或者是PCI-E装置)相接口,但应理解,本发明的范围并不局限于此,其它方案可与采用投寄及非投寄的事务的其它协议或其它定序方案相接口。例如:在一个实施方案中,层110可以是对某个处理器内核的接口。
请再参看图2,PCI事务可通过PCI接口105输入到I/O集线器100。可在I/O集线器100的PCI事务层110中接收到此类事务。PCI事务层110可包括第一队列112和第二队列114。在一种实施方案中,第一队列112可以是一个事务队列(txn_que),第二队列114可以是一个旁路队列(byp-que)。通过为投寄的请求、非投寄的请求及完成维持分离的信用帐户,PCI事务层110可维持不同业务类别的分离。但是,为了确保遵循定序规则(如:完成移动超过投寄的请求),当第一队列112变成被备份时,投寄的事务可被转发给第二队列114。第一队列112和第二队列114相互之间可被判优,事务可通过多路复用器115传入某个CSI事务层120。在一种实施方案中,可以使用抗资源缺乏(anti-starvation)逻辑来对第一队列112和第二队列114进行判优。
当在CSI事务层120收到事务时,业务是无序的,且CSI事务层120可将事务分裂到多个不同虚拟信道中的一个信道。CSI事务层120也可称为CSI协议层。如图2实施方案所示,可能存在三个此类虚拟信道,即第一虚拟信道140、第二虚拟信道150和第三虚拟信道160。在图2所示的实施方案中,第一虚拟信道140可以是一个非相干标准(NCS)信道;第二虚拟信道150可以是一个非相干旁路(NCB)信道;第三虚拟信道160可以是一个完成(CMP)虚拟信道。这样的一个CMP虚拟信道可用来在接收装置处指示定序。例如:某个完成分组可从一个接收对等事务的代理传送到发送该事务的代理。但是,应理解在其它实施方案中,可能会存在更多或较少的虚拟信道,而且虚拟信道的命名和使用都有可能不同。在负责其它活动时,CSI事务层120的详细情况将在以下做进一步的讨论。
如图2所示,在I/O集线器100中可能会有多个附加层,包括一个路由层125、一个链路层130和一个物理层135。在各种实施方案中,这些层一般在整个I/O集线器100内维持三个虚拟信道的分离,通过附加组件及与其耦合的互连,这些信道可被单独地保持,直到某接收装置(如一个I/O集线器)的相应事务层接收到它们时为止。
虽然图2实施方案的讨论中包括三个虚拟信道,但应理解在其它实施方案中,所希望的协议中可能会存在附加的虚拟信道。此外,虽然此处讨论的是用于一个相干系统中的情况,但应理解非相干系统中也可以采用其它实施方案,以便为无死锁的事务路由作准备。因此,为平滑整个相干系统中的业务流,各信道可保持业务分离通过系统的各个层,包括诸如物理层、链路层和路由层,使得没有依赖性。除这三个信道之外,代理可在源事务层保留功能性定序。在其它实施方案中,可以有第四虚拟信道,且其可被用于完成。以这种方式,两个虚拟信道可用于完成,一个用于通过数据的完成,另一个则用于不通过数据的完成。为了简化,图2所示的实施方案包括一个单完成信道,但本发明的范围并不局限于此。
在各种实施方案中,用于这三个虚拟信道的流量控制可分离地保持,从而在不同信道之间的业务流中不产生互相依赖性。这样在每个虚拟信道中便没有定序。进一步来说,与某个相干系统相耦合的对等装置(其对事务进行定序)的事务以一种无序的方式流过该虚拟信道。在一种实施方案中,可以实现一种基于信用的流量控制机制,从而使各分离信道具有分离的信用池。但是,在其它实施方案中可实现其它流量控制机制(如重试机制)或其它类型的流量控制。
按照本发明的实施方案,不同类型的事务可以通过不同的虚拟信道来被路由,以避免死锁。此类事务可包括比如读出和写入事务、以及数据消息等。请参看下表1,该表是与本发明实施方案相符的将PCI事务映射为多个虚拟信道的表。
表1
 
PCI事务 所使用的虚拟信道
存储器写入 NCB
存储器读出 NCS
I/O读出和写入 NCS
 
配置读出和写入 NCS
对等存储器写入和消息 NCB
对等存储器读出 NCS
对等I/O和配置读出和写入 NCS
对等读出完成 NCB或CMP
相干系统完成 CMP
虽然表1表示将表中的特定PCI事务类型路由到特定的虚拟信道,但应理解:在其它实施方案中,PCI事务或与相干系统相耦合的另一个I/O装置的事务可以在任何所希望的虚拟信道上来传输。
在一种实施方案中,CSI事务层120可包括各种协议引擎,用来形成、定序及处理通过相关系统传输的分组。例如:在一个实施方案中,CSI事务层120还尤其可以包括一个相干引擎、一个中断引擎、一个I/O引擎。利用这种引擎,CSI事务层120可以形成一个具有通用系统报头(也称作“系统互连报头”)的分组。在CSI事务层120中这样形成的分组可在图2所示的三个虚拟信道中指定的一个虚拟信道上提供给路由层125。
在各种实施方案中,路由层125可提供一种灵活的和分布式的方法,来将相干分组从源路由到目的地。基于目的地的路由可在路由层125中使用路由表来加以确定,这允许路由表的自适应路由和在线重新配置。在一种实施方案中,由CSI事务层120所生成的通用系统报头可以包括识别目的地、输入端口和虚拟网络的信息,可将这些值输入到路由表中以确定所希望的输出端口以及事务可在其上流动的虚拟网络。在各种实施方案中,路由表可储存在受保护的配置空间内,而且可由固件来进行编程。可对此类路由表进行编程,以便为各种拓扑启用无死锁路由。此类基于目的地的路由可基于某个节点识别符(节点ID),节点识别符在相干系统中唯一地识别一个代理。
事务和分组可从路由层125传递到链路层130。在各种实施方案中,链路层130可用来在两个直接相连的相干代理之间提供可靠的数据传输和流量控制,而且还可提供用于在装置之间虚拟化一个物理信道。这样,可对链路层130进行流量控制,以防止出现上溢或下溢,并且也可以用来提供检错和错误校正。在一个实施方案中,可使用一种基于流量控制位(flit-based)级贷方/借方流量控制来实现流量控制。在各种实施方案中,流量控制位可以指数据传输的最小单位,其在一种实施方案中可以是80比特长。一个分组可以是流量控制位的一个逻辑编组。在某些实施方案中,一个分组可以是最小的信息单位,包括借助报头的路由和其它信息。每个分组可包含一个报头和一个可选的数据字段。在某些实施方案中,报头可以是一至两个流量控制位长,以及一个数据部分可延长到相干系统的一个超高速缓冲存储器线的尺寸。
在各种实施方案中,链路层130可将物理信道虚拟化为多消息类别以及虚拟网络。如此,一个物理信道可在多个虚拟信道间复用。此类消息类别可用来避免协议级死锁,并提供服务质量(QoS)措施。在各种实施方案中,可实现多个虚拟网络,每个虚拟网络都有多个虚拟信道。在各种实施方案中,包括所有消息类别的一组虚拟信道可形成一个虚拟网络。每个虚拟网络可以有独立的缓冲和流量控制。在这样的一个实施方案中,可存在三个虚拟网络,包括一个第一虚拟网络(如VN0)和一个第二虚拟网络(如VN1)。这些虚拟网络可提供用于灵活的路由且避免死锁。此外,在这种实施方案中,一个第三虚拟网络(如VNA)可提供一个自适应缓冲器池,以便进行有效的实施。
在某些实施方案中,共享的VNA可支持大量的消息类别,而且可与VN0或VN1结合使用,以避免出现死锁状况。例如:一个被阻塞的消息(如一个不可得的信用)可被转移给VN0或VN1,然后在后续链路处再返回到VNA。在一个实施方案中,VN1和VN0可基于每个消息来执行流量控制,而VNA则可基于每个流量控制位来执行流量控制。
如上所述,在各种实施方案中,每个虚拟网络可至少包括三个虚拟信道。但应理解的是,在其它实施方案中,可能存在更多或更少的虚拟网络,而且每个此类虚拟网络可包括更多或更少的虚拟信道。例如:在各种实施方案中,除上述的三个虚拟信道外,一个虚拟网络可包括用于相干事务和等时事务的附加虚拟信道。
在各种实施方案中,物理层135可用来经由CSI接线170及通过CSI结构180,在二个直接相连的相干代理之间提供信息的电传输。
现在请参看图3,图中所示为与本发明的一个实施方案相符的相干系统某部分的方块图。如图3所示,系统300包括一个第一CSI代理310、一个第二CSI代理350和一个桥接代理330。在一个实施方案中,CSI代理310和350可以是I/O集线器,而桥接代理330可以是一台交换装置。应理解的是,在其它实施方案中代理可以是微处理器、以及其它总线代理等类似装置。虽然图3的实施方案所讨论的是一个相干系统,但应理解本发明的范围并不局限于此。
CSI代理器310可包括多个层,包括一个物理层314、一个链路层318、一个路由层324和一个协议层325。这些层可分别对应于图2中的物理层135、链路层130、路由层125和事务层120。分组可由CSI代理310在物理层314中接收,该物理层可包括多个电传输端口312a和312b。虽然图3的实施方案在包括两个这种端口,但应理解其它实施方案中可存在附加端口。
如图3所示,该分组可以是CSI分组,但本发明的范围并不被如此限制。此类分组可包括一个报头和相关的信息(如:“有效载荷”)。此后分组被转发到链路层318,链路层318可包含多个缓冲器流量控制机构。图3的实施方案所示的为两个缓冲器流量控制机构316a和316b,每个流量控制机构可包括一个输入缓冲器和一个输出缓冲器。
在正确地接收到流量控制位时,链路层318可将该流量控制位提供给路由层324,该流量控制位在路由层324通过交换机320被多路复用,并提供给路由表322,该路由表使用诸如目的地节点ID字段值来将相关联的报头和有效载荷(如果有的话)路由到适当的代理。如果一个分组的目的地为代理310,则路由表322将把该分组提供给协议层325。或者,如果该分组的目的地为另外一个目的地,则报头和分组将会通过代理310的链路层318和物理层314被送回到一个不同的代理器。
在本发明的各种实施方案中,协议层325可利用协议层325内的各种引擎,使用一个与报头相关联的事务ID,来对事务进行定序,并对其执行所希望的处理。图3实施方案所示的为具有代表性的引擎,它包括一个相干引擎327a、一个中断引擎327c和一个I/O引擎327d。
CSI代理350中可存在类似的功能性,该CSI代理包括一个相应的物理层354、链路层358、路由层364和协议层375。如图3进一步所示,这些层中的每一层均可包含与代理310的那些类似的组件,包括比如电传输单元352a和352b、缓冲器流量控制机构356a和356b、混合器360、路由表362和协议引擎377a-377d。
如图3进一步所示,桥接代理330可包括相应的物理层、链路层和路由层(分别为物理层334、链路层338和路由层344)。在某些实施方案中,桥接代理330可以是一台交换机、桥、集线器或其它类似装置,而且可用来在相干系统300的代理或节点的不同组之间提供一个桥。例如:在另一个实施方案中,桥接代理330可以与第一多个处理器(如在左侧的处理器)和第二多个处理器(如在右侧的处理器)耦合。
通过使用多个不同的信道来在整个系统中路由不同的事务类型,该系统内的数据通信可以被完全无序地进行。但是,从第一个对等装置流过该系统到第二个对等装置的定序事务可以按避免出现死锁的无序方式被路由通过该系统,而且在其定序信息保持完整的情况下被提供给第二个对等装置。
实施方案可以以代码的方式来实现,而且可存储到其上存储有指令的存储媒体中,所述代码可用来对计算机系统进行编程,以执行这些指令。存储介质可包括但不局限于任何类型的盘,包括软盘、光盘、密致盘只读存储器(CD-ROM)、可重写密致盘(CD-RW)以及磁光盘、半导体装置,比如只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪速存储器、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、或适合用来存储电子指令的任何类型的媒体。
所例示的实施方案可由软件来实施,该软件由配置有适当硬件装置组合的适当的计算机系统来执行。例如:在某些实施方案中,诸如I/O集线器的相干系统的各种代理可包含有代码或逻辑,从而将各种事务分离到上述的不同的虚拟信道中。
尽管已经描述了本发明的有限个实施方案,但本领域的技术人员将理解由其所产生的各种改动和变更。旨在使所附权利要求覆盖落入本发明的真实精神及范围内的所有此类改动和变更。

Claims (28)

1.一种用于将事务分离到不同的虚拟信道的方法,包括:
在第一输入缓冲器中接收输入到相干系统的第一代理器的输入事务;
从第一输入缓冲器向第二输入缓冲器至少转发部分事务;
基于输入事务的类型,将输入到第一代理器的输入事务至少分离到第一信道,第二信道和第三信道,
所述方法的特征在于
通过在第一信道上经相干系统路由第一事务类型及在第二信道上经相干系统路由第二事务类型,保持经相干系统的第一事务类型与第二事务类型分离;
其中第一信道和第二信道分别是第一虚拟网络和第二虚拟网络的独立的信道;
保持第三虚拟网络,该第三虚拟网络在第一和第二虚拟网络之间被分享,该第三虚拟网络包括自适应缓冲池;并
从第一代理器经第三虚拟网络路由第一和第二事务类型的至少一个的事务。
2.权利要求1中记载的方法,其中第一信道是一个标准信道,第二信道是一个旁路信道,而第三信道是一个完成信道。
3.权利要求1中记载的方法,还包括:
在第一和第二虚拟网络中基于每个事务来执行流量控制及在第三虚拟网络中基于每个流量控制位来执行流量控制。
4.权利要求1中记载的方法,进一步包括:将所述第一和第二事务类型的至少一个类型的事务从第三虚拟网络路由到第一或第二虚拟网络的相干系统的第二代理器。
5.权利要求1中记载的方法,进一步包括:使用耦合到第一输入缓冲器和第二输入缓冲器的相干系统的第一代理器的多路复用器,来分离输入事务。
6.权利要求1中记载的方法,进一步包括:在第一事务类型和第二事务类型之间分离信用。
7.权利要求1中记载的方法,进一步包括:
独立地控制第一事务类型和第二事务类型的流量。
8.权利要求1中记载的方法,其中第一事务类型包括一个写入事务,第二事务类型包括一个读出事务。
9.权利要求1中记载的方法,进一步包括:在接收到第一事务类型后,将一个完成分组从一个完成者代理器发送到一个请求者代理器。
10.权利要求9中记载的方法,进一步包括:在与由第一事务类型和第二事务类型的事务所使用信道不同的信道上发送完成分组。
11.权利要求1中记载的方法,进一步包括:
将输入事务分离到第一虚拟网络和第二虚拟网络,第一虚拟网络包括第一信道、第三信道和第四信道,第二虚拟网络包括第二信道和第五信道。
12.权利要求11中记载的方法,还包括:
从第一代理器经第一虚拟网络路由一个事务到第二代理器;并
从第二代理器经第二虚拟网络路由该事务。
13.权利要求1中记载的方法,还包括:
基于第一输入缓冲器的等级转发至少部分事务。
14.权利要求1中记载的方法,还包括:从第一输入缓冲器向第二输入缓冲器转发投寄的事务。
15.一种用于将事务分离到不同的虚拟信道的装置,包括:
用于在第一输入缓冲器中接收输入到相干系统的第一代理器的输入事务的设备;
用于从第一输入缓冲器向第二输入缓冲器至少转发部分事务的设备;
用于基于输入事务的类型,将输入到第一代理器的输入事务至少分离到第一信道,第二信道和第三信道的设备,
所述装置的特征在于,包括:
用于保持经相干系统的第一事务类型与第二事务类型分离的设备,包括用于在第一信道上经相干系统路由第一事务类型的设备及用于在第二信道上经相干系统路由第二事务类型的设备;
其中第一信道和第二信道分别包括第一虚拟网络和第二虚拟网络的独立的信道;
用于保持第三虚拟网络的设备,该第三虚拟网络在第一和第二虚拟网络之间被分享,该第三虚拟网络包括自适应缓冲池;和
用于从第一代理器经第三虚拟网络路由第一和第二事务类型的至少一个的事务的设备。
16.权利要求15中记载的装置,其中第一信道包括一个标准信道,第二信道包括一个旁路信道,而第三信道包括一个完成信道。
17.权利要求15中记载的装置,还包括:
用于在第一和第二虚拟网络中基于每个事务来执行流量控制的设备及用于在第三虚拟网络中基于每个流量控制位来执行流量控制的设备。
18.权利要求15中记载的装置,进一步包括:用于将所述第一和第二事务类型的至少一个类型的所述事务从第三虚拟网络路由到第一或第二虚拟网络的相干系统的第二代理器的设备。
19.权利要求15中记载的装置,进一步包括:一个耦合到第一输入缓冲器和第二输入缓冲器的相干系统的第一代理器的多路复用器,用于分离输入事务。
20.权利要求15中记载的装置,进一步包括:用于在第一事务类型和第二事务类型之间分离信用的设备。
21.权利要求15中记载的装置,进一步包括:
用于独立地控制第一事务类型和第二事务类型的流量的设备。
22.权利要求15中记载的装置,其中第一事务类型包括一个写入事务,第二事务类型包括一个读出事务。
23.权利要求15中记载的装置,进一步包括:用于在接收到第一事务类型后,将一个完成分组从一个完成者代理器发送到一个请求者代理器的设备。
24.权利要求23中记载的装置,进一步包括:用于在与由第一事务类型和第二事务类型的事务所使用信道不同的信道上发送完成分组的设备。
25.权利要求15中记载的装置,进一步包括:
用于将输入事务分离到第一虚拟网络和第二虚拟网络的设备,第一虚拟网络包括第一信道、第三信道和第四信道,第二虚拟网络包括第二信道和第五信道。
26.权利要求25中记载的装置,还包括:
用于从第一代理器经第一虚拟网络路由一个事务到第二代理器的设备;和
用于从第二代理器经第二虚拟网络路由该事务的设备。
27.权利要求15中记载的装置,还包括:
用于基于第一输入缓冲器的等级转发至少部分事务的设备。
28.权利要求15中记载的装置,还包括:用于从第一输入缓冲器向第二输入缓冲器转发投寄的事务的设备。
CNB200410078931XA 2004-04-27 2004-09-16 将事务分离到不同的虚拟信道的方法、装置 Expired - Fee Related CN100524271C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/833236 2004-04-27
US10/833,236 US7165131B2 (en) 2004-04-27 2004-04-27 Separating transactions into different virtual channels

Publications (2)

Publication Number Publication Date
CN1690995A CN1690995A (zh) 2005-11-02
CN100524271C true CN100524271C (zh) 2009-08-05

Family

ID=34930719

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200410078931XA Expired - Fee Related CN100524271C (zh) 2004-04-27 2004-09-16 将事务分离到不同的虚拟信道的方法、装置

Country Status (6)

Country Link
US (1) US7165131B2 (zh)
EP (1) EP1591908A1 (zh)
JP (1) JP2005318495A (zh)
KR (1) KR100715741B1 (zh)
CN (1) CN100524271C (zh)
TW (1) TWI264904B (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7643413B2 (en) * 2002-12-31 2010-01-05 Brooktree Broadband Holding, Inc. System and method for providing quality of service in asynchronous transfer mode cell transmission
US7443869B2 (en) * 2003-08-04 2008-10-28 Intel Corporation Deadlock avoidance queuing mechanism
US7467358B2 (en) * 2004-06-03 2008-12-16 Gwangju Institute Of Science And Technology Asynchronous switch based on butterfly fat-tree for network on chip application
US20060114828A1 (en) * 2004-12-01 2006-06-01 Silicon Integrated System Corp. Data transmission ports with flow controlling unit and method for performing the same
JP4410190B2 (ja) * 2005-03-24 2010-02-03 富士通株式会社 PCI−Express通信システム
US7765357B2 (en) * 2005-03-24 2010-07-27 Fujitsu Limited PCI-express communications system
US8325768B2 (en) * 2005-08-24 2012-12-04 Intel Corporation Interleaving data packets in a packet-based communication system
US7643477B2 (en) * 2005-08-24 2010-01-05 Intel Corporation Buffering data packets according to multiple flow control schemes
US8054842B2 (en) * 2005-10-31 2011-11-08 Alcatel Lucent Apparatus for providing internet protocol television service and internet service
US20070226795A1 (en) * 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
US7783959B2 (en) * 2006-03-23 2010-08-24 Intel Corporation Apparatus and method for reduced power consumption communications over a physical interconnect
US7624222B2 (en) * 2006-10-06 2009-11-24 International Business Machines Corporation South bridge system and method
US7529867B2 (en) * 2006-11-01 2009-05-05 Inovawave, Inc. Adaptive, scalable I/O request handling architecture in virtualized computer systems and networks
US8019910B2 (en) * 2007-07-31 2011-09-13 Hewlett-Packard Development Company, L.P. Transaction flow control in PCI express fabric
US8700821B2 (en) * 2008-08-22 2014-04-15 Intel Corporation Unified multi-transport medium connector architecture
US7861024B2 (en) * 2008-09-30 2010-12-28 Intel Corporation Providing a set aside mechanism for posted interrupt transactions
US8392667B2 (en) * 2008-12-12 2013-03-05 Nvidia Corporation Deadlock avoidance by marking CPU traffic as special
US8199759B2 (en) * 2009-05-29 2012-06-12 Intel Corporation Method and apparatus for enabling ID based streams over PCI express
US20100312928A1 (en) * 2009-06-09 2010-12-09 Brownell Paul V System and method for operating a communication link
US20110145837A1 (en) * 2009-12-14 2011-06-16 Bower Kenneth S Filtering Broadcast Recipients In A Multiprocessing Environment
WO2012133211A1 (ja) * 2011-03-25 2012-10-04 日本電気株式会社 データ転送装置及びデータ転送方法
WO2013070214A1 (en) * 2011-11-09 2013-05-16 Intel Corporation Method, apparatus, and system to handle transactions received after a configuration change request
US8984228B2 (en) 2011-12-13 2015-03-17 Intel Corporation Providing common caching agent for core and integrated input/output (IO) module
US20150058524A1 (en) * 2012-01-04 2015-02-26 Kenneth C. Creta Bimodal functionality between coherent link and memory expansion
US9405687B2 (en) 2013-11-04 2016-08-02 Intel Corporation Method, apparatus and system for handling cache misses in a processor
US9379992B2 (en) * 2013-12-25 2016-06-28 Cavium, Inc. Method and an apparatus for virtualization of a quality-of-service
US9954792B2 (en) * 2014-12-20 2018-04-24 Intel Corporation Shared flow control credits
US10229076B2 (en) 2015-09-09 2019-03-12 International Business Machines Corporation Peripheral component interconnect express (PCIE) pseudo-virtual channels using vendor defined messages
US9483424B1 (en) 2015-12-04 2016-11-01 International Business Machines Corporation Peripheral component interconnect express (PCIE) pseudo-virtual channels and non-blocking writes
CN108228503B (zh) * 2016-12-15 2020-11-10 深圳市中兴微电子技术有限公司 一种防止总线死锁的方法及装置
CN112805949B (zh) * 2018-10-01 2022-08-09 华为技术有限公司 处理快照创建请求的方法以及存储设备
US11418455B2 (en) 2020-08-31 2022-08-16 Micron Technology, Inc. Transparent packet splitting and recombining
US11412075B2 (en) 2020-08-31 2022-08-09 Micron Technology, Inc. Multiple protocol header processing
US11360920B2 (en) * 2020-08-31 2022-06-14 Micron Technology, Inc. Mapping high-speed, point-to-point interface channels to packet virtual channels
US11539623B2 (en) 2020-08-31 2022-12-27 Micron Technology, Inc. Single field for encoding multiple elements
US11296995B2 (en) 2020-08-31 2022-04-05 Micron Technology, Inc. Reduced sized encoding of packet length field
US11824795B2 (en) 2021-08-31 2023-11-21 Apple Inc. Communication channels with both shared and independent resources

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182176B1 (en) 1994-02-24 2001-01-30 Hewlett-Packard Company Queue-based predictive flow control mechanism
US6148001A (en) * 1997-06-12 2000-11-14 Nokia Telecommunications, Oy Multipoint-to-point system which multiplexes complete packets comprised of ATM cells on to a single virtual channel connection
US6285679B1 (en) * 1997-08-22 2001-09-04 Avici Systems, Inc. Methods and apparatus for event-driven routing
US6076130A (en) * 1998-03-19 2000-06-13 Hewlett-Packard Company System and method for efficient communication between buses
US6272563B1 (en) * 1998-11-03 2001-08-07 Intel Corporation Method and apparatus for communicating routing and attribute information for a transaction between hubs in a computer system
US6243781B1 (en) * 1998-12-03 2001-06-05 Intel Corporation Avoiding deadlock by storing non-posted transactions in an auxiliary buffer when performing posted and non-posted bus transactions from an outbound pipe
US6516375B1 (en) * 1999-11-03 2003-02-04 Intel Corporation Peripheral component interconnect (PCI) configuration emulation for hub interface
WO2002015470A2 (en) 2000-08-17 2002-02-21 Advanced Micro Devices, Inc. System and method for separate virtual channels for posted requests in a multiprocessor system
US6820165B2 (en) * 2000-08-31 2004-11-16 Hewlett-Packard Development Company, L.P. System and method for increasing the count of outstanding split transactions
US6721813B2 (en) * 2001-01-30 2004-04-13 Advanced Micro Devices, Inc. Computer system implementing a system and method for tracking the progress of posted write transactions
US6745272B2 (en) * 2001-04-04 2004-06-01 Advanced Micro Devices, Inc. System and method of increasing bandwidth for issuing ordered transactions into a distributed communication system
US6681292B2 (en) * 2001-08-27 2004-01-20 Intel Corporation Distributed read and write caching implementation for optimized input/output applications
US6801976B2 (en) * 2001-08-27 2004-10-05 Intel Corporation Mechanism for preserving producer-consumer ordering across an unordered interface
US6912612B2 (en) * 2002-02-25 2005-06-28 Intel Corporation Shared bypass bus structure
US6976115B2 (en) * 2002-03-28 2005-12-13 Intel Corporation Peer-to-peer bus segment bridging
US6760793B2 (en) * 2002-07-29 2004-07-06 Isys Technologies, Inc. Transaction credit control for serial I/O systems
US6874042B2 (en) * 2003-03-11 2005-03-29 Dell Products L.P. System and method for using a switch to route peripheral and graphics data on an interconnect
US20050141434A1 (en) * 2003-12-24 2005-06-30 Linden Cornett Method, system, and program for managing buffers
US7210000B2 (en) * 2004-04-27 2007-04-24 Intel Corporation Transmitting peer-to-peer transactions through a coherent interface
US7525986B2 (en) * 2004-10-28 2009-04-28 Intel Corporation Starvation prevention scheme for a fixed priority PCI-Express arbiter with grant counters using arbitration pools

Also Published As

Publication number Publication date
TW200536309A (en) 2005-11-01
TWI264904B (en) 2006-10-21
JP2005318495A (ja) 2005-11-10
US20050251612A1 (en) 2005-11-10
KR20050103865A (ko) 2005-11-01
CN1690995A (zh) 2005-11-02
KR100715741B1 (ko) 2007-05-09
EP1591908A1 (en) 2005-11-02
US7165131B2 (en) 2007-01-16

Similar Documents

Publication Publication Date Title
CN100524271C (zh) 将事务分离到不同的虚拟信道的方法、装置
US6678773B2 (en) Bus protocol independent method and structure for managing transaction priority, ordering and deadlocks in a multi-processing system
TWI297838B (en) Method and apparatus for shared i/o in a load/store fabric
TWI473012B (zh) 具分散內嵌式交換之多處理運算技術
US7136954B2 (en) Data communication method and apparatus utilizing credit-based data transfer protocol and credit loss detection mechanism
CN102576349B (zh) 输入/输出(i/o)虚拟化系统中主计算机与外围资源之间的通信
US7493426B2 (en) Data communication method and apparatus utilizing programmable channels for allocation of buffer space and transaction control
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
US8099521B2 (en) Network interface card for use in parallel computing systems
US9053251B2 (en) Providing a sideband message interface for system on a chip (SoC)
JP5490336B2 (ja) Pciエクスプレス・マルチプル・ルートi/o仮想化環境における低待ち時間の優先順位付け
JP5546635B2 (ja) データ転送装置およびその制御方法
US20040019726A1 (en) Buffer management and transaction control for serial I/O systems
CN101901205A (zh) 在PCIExpress上启用基于ID的流的方法和装置
TW571223B (en) Mechanism for preserving producer-consumer ordering across an unordered interface
JP2011507065A (ja) 制御パス入出力仮想化方法
CN107430584B (zh) 经由具有完全连接网格拓扑的pci express结构从存储读取数据
US7346725B2 (en) Method and apparatus for generating traffic in an electronic bridge via a local controller
CN107533526B (zh) 经由具有完全连接网格拓扑的pci express结构向存储写入数据
US20090177821A1 (en) Cache Intervention on a Separate Data Bus When On-Chip Bus Has Separate Read and Write Data Busses
TW200409497A (en) Data processing systems
US7640387B2 (en) Method and apparatus for implementing heterogeneous interconnects
JP2014167818A (ja) データ転送装置およびデータ転送方法
CN108885599B (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090805

Termination date: 20190916

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