CN1690995A - 将事务分离到不同的虚拟信道 - Google Patents
将事务分离到不同的虚拟信道 Download PDFInfo
- Publication number
- CN1690995A CN1690995A CNA200410078931XA CN200410078931A CN1690995A CN 1690995 A CN1690995 A CN 1690995A CN A200410078931X A CNA200410078931X A CN A200410078931XA CN 200410078931 A CN200410078931 A CN 200410078931A CN 1690995 A CN1690995 A CN 1690995A
- Authority
- CN
- China
- Prior art keywords
- channel
- record
- transaction
- transaction types
- coherent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program 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日出版)的PCI ExpressTM架构。
由于一个系统的或与之相耦合的多个总线可能会使用不同的通信协议,所以存在着通信困难。例如:输入/输出(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和IOH 30也可被称为在与相干系统15相耦合的不同I/O装置之间提供连接的“CSI代理”。在各种实施方案中,相干系统15中的其它组件也可用作CSI代理。
在各种实施方案中,I/O集线器20和30的每一个端口可包括多个信道,在这里常被称为“虚拟信道”,这些虚拟信道可共同形成一个虚拟网络,该端口还可包括在不同装置间进行数据、控制和状态信息通信的关联缓冲器。在一个特定的实施方案中,每个端口可至少包括三个此类信道,包括一个标准信道、一个旁路信道和一个完成信道(completion channel),但本发明的范围并不局限于此。此外,这些信道可以是非相干信道,用来路由与相干系统15相耦合的I/O装置的非相干事务。在某些此类实施方案中,可存在用于相干传输的附加信道。在其它实施方案中,可存在两个虚拟信道。在此类实施方案中,两个信道可以是一个标准信道和一个旁路信道。以这样的方式,在装置间流动的事务可避免死锁,而死锁在投寄的事务变得被延迟于非投寄的事务(比如读出)之后时可发生。
现在请参见图2,图中所示是本发明一种实施方案的I/O集线器方块图。如图2所示,I/O集线器100被耦合于PCI接口105与接线(wire)170之间,该接线可以是相干系统150的通往结构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可提供一种灵活的和分布式的方法,来将相干分组从源路由到目的地。基于目的地的路由可在路由层105中使用路由表来加以确定,这允许路由表的自适应路由和在线重新配置。在一种实施方案中,由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。或者,如果该分组的目的地为另外一个目的地,则报头和分组将会通过代理31O的链路层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 (30)
1.一种方法,包括:
基于输入事务的类型,将一个相干系统的代理器的输入事务分离到至少第一信道、第二信道和第三信道。
2.权利要求1中记载的方法,进一步包括:使一个第一事务类型在第一信道上路由通过该相干系统,以及使一个第二事务类型在第二信道上路由通过该相干系统。
3.权利要求1中记载的方法,进一步包括:从一个第一对等装置接收输入事务。
4.权利要求3中记载的方法,进一步包括:将至少一个输入事务路由到相干系统的第二代理器。
5.权利要求4中记载的方法,进一步包括:将该至少一个输入事务转发到与第二代理器耦合的第二对等装置。
6.权利要求1中记载的方法,其中第一信道包括一个标准信道,第二信道包括一个旁路信道,而第三信道包括一个完成信道。
7.一种方法,包括:
从相干系统的第一对等装置接收第一事务类型;
从该相干系统的该第一对等装置接收第二事务类型;以及
在整个相干系统中保持第一事务类型与第二事务类型分离。
8.权利要求7中记载的方法,其中保持第一事务与第二事务类型分离包括:使第一事务类型在第一信道上路由通过该相干系统,并使第二事务类型在第二信道上路由通过该相干系统。
9.权利要求8中记载的方法,其中第一信道和第二信道包括独立的信道。
10.权利要求7中记载的方法,进一步包括:基于事务的类型,使用相干系统的第一代理器的多路复用器来将输入事务分离到第一信道和第二信道。
11.权利要求7中记载的方法,进一步包括:在第一事务类型和第二事务类型之间分离信用。
12.权利要求7中记载的方法,进一步包括:
独立地控制第一事务类型第二事务类型的流量。
13.权利要求7中记载的方法,其中第一对等装置包括一个通过非相干链路与该相干系统耦合的输入/输出装置。
14.权利要求7中记载的方法,其中第一事务类型包括一个写入事务,第二事务类型包括一个读出事务。
15.权利要求7中记载的方法,进一步包括:在接收到第一事务类型后,将一个完成分组从一个完成者代理器发送到一个请求者代理器。
16.权利要求15中记载的方法,进一步包括:发送来自第一事务类型和第二事务类型的不同信道上的完成分组。
17.一种产品,包含有机器可访问的存储媒体,该存储媒体包含指令,在执行该指令时使系统能够:
基于输入事务的类型,将一个相干系统的代理器的输入事务分离到至少第一信道、第二信道和第三信道。
18.权利要求17中记载的产品,进一步包括指令,在执行该指令时能够使系统将至少一个输入事务路由到该相干系统的第二代理器。
19.权利要求18中记载的产品,进一步包括指令,在执行该指令时能够使系统将该至少一个输入事务转发给与第二代理器相耦合的第二对等装置。
20.权利要求17中记载的产品,进一步包括指令,在执行该指令时能够使系统在第一事务类型和第二事务类型之间分离信用。
21.权利要求20中记载的产品,进一步包括指令,在执行该指令时能够使系统独立地控制该第一事务类型和第二事务类型的流量。
22.一种装置,包括:
第一总线代理器,其基于输入事务的类型来接收输入事务并通过至少三个信道中的一个信道来路由该输入事务。
23.权利要求22中记载的装置,其中第一信道包括一个标准信道,第二信道包括一个旁路信道,而第三信道包括一个完成信道。
24.权利要求22中记载的装置,进一步包括与第一总线代理器相耦合的第二总线代理器,该第二总线代理器有至少三个信道。
25.权利要求22中记载的装置,其中第一总线代理器适用于接收来自具有非相干协议的对等装置的输入事务。
26.权利要求25中记载的装置,其中第一总线代理器包括一个相干装置。
27.一种系统,包括:
第一总线代理器,其基于输入事务的类型,通过至少三个信道中的一个信道来接收输入事务并路由该输入事务;
第二总线代理器,其通过一个点-到-点-到-点互连来与第一总线代理器耦合。
28.权利要求27中记载的系统,其中第一总线代理器适用于接收来自具有非相干协议的对等装置的输入事务。
29.权利要求27中记载的系统,其中第一总线代理器和第二总线代理器均包含相干装置。
30.权利要求27中记载的系统,其中第一信道包括一个标准信道,第二信道包括一个旁路信道,而第三信道包括一个完成信道。
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 true CN1690995A (zh) | 2005-11-02 |
CN100524271C 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901205A (zh) * | 2009-05-29 | 2010-12-01 | 英特尔公司 | 在PCIExpress上启用基于ID的流的方法和装置 |
CN101916236A (zh) * | 2008-09-30 | 2010-12-15 | 英特尔公司 | 为邮递性中断事务提供留存机构 |
CN108228503A (zh) * | 2016-12-15 | 2018-06-29 | 深圳市中兴微电子技术有限公司 | 一种防止总线死锁的方法及装置 |
CN112805949A (zh) * | 2018-10-01 | 2021-05-14 | 华为技术有限公司 | 处理快照创建请求的方法以及存储设备 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003300303A1 (en) * | 2002-12-31 | 2004-07-29 | Globespanvirata Incorporated | 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 |
US7765357B2 (en) * | 2005-03-24 | 2010-07-27 | Fujitsu Limited | PCI-express communications system |
JP4410190B2 (ja) * | 2005-03-24 | 2010-02-03 | 富士通株式会社 | PCI−Express通信システム |
US7643477B2 (en) * | 2005-08-24 | 2010-01-05 | Intel Corporation | Buffering data packets according to multiple flow control schemes |
US8325768B2 (en) | 2005-08-24 | 2012-12-04 | Intel Corporation | Interleaving data packets in a packet-based communication system |
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 |
US8392667B2 (en) * | 2008-12-12 | 2013-03-05 | Nvidia Corporation | Deadlock avoidance by marking CPU traffic as special |
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 |
JPWO2012133211A1 (ja) * | 2011-03-25 | 2014-07-28 | 日本電気株式会社 | データ転送装置及びデータ転送方法 |
US9558030B2 (en) | 2011-11-09 | 2017-01-31 | 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 |
EP2801032B1 (en) * | 2012-01-04 | 2020-01-01 | Intel Corporation | 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 |
US11412075B2 (en) | 2020-08-31 | 2022-08-09 | Micron Technology, Inc. | Multiple protocol header processing |
US11296995B2 (en) | 2020-08-31 | 2022-04-05 | Micron Technology, Inc. | Reduced sized encoding of packet length field |
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 |
US11418455B2 (en) | 2020-08-31 | 2022-08-16 | Micron Technology, Inc. | Transparent packet splitting and recombining |
US11824795B2 (en) | 2021-08-31 | 2023-11-21 | Apple Inc. | Communication channels with both shared and independent resources |
Family Cites Families (20)
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 |
AU2001280857A1 (en) | 2000-08-17 | 2002-02-25 | Api Networks, 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 |
US6801976B2 (en) * | 2001-08-27 | 2004-10-05 | Intel Corporation | Mechanism for preserving producer-consumer ordering across an unordered interface |
US6681292B2 (en) * | 2001-08-27 | 2004-01-20 | Intel Corporation | Distributed read and write caching implementation for optimized input/output applications |
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 |
-
2004
- 2004-04-27 US US10/833,236 patent/US7165131B2/en not_active Expired - Fee Related
- 2004-08-26 TW TW093125587A patent/TWI264904B/zh not_active IP Right Cessation
- 2004-09-01 KR KR1020040069652A patent/KR100715741B1/ko not_active IP Right Cessation
- 2004-09-07 JP JP2004259773A patent/JP2005318495A/ja active Pending
- 2004-09-16 CN CNB200410078931XA patent/CN100524271C/zh not_active Expired - Fee Related
- 2004-10-06 EP EP04256166A patent/EP1591908A1/en not_active Ceased
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916236A (zh) * | 2008-09-30 | 2010-12-15 | 英特尔公司 | 为邮递性中断事务提供留存机构 |
CN101916236B (zh) * | 2008-09-30 | 2013-06-26 | 英特尔公司 | 为邮递性中断事务提供留存机构的方法、装置和系统 |
CN101901205A (zh) * | 2009-05-29 | 2010-12-01 | 英特尔公司 | 在PCIExpress上启用基于ID的流的方法和装置 |
CN108228503A (zh) * | 2016-12-15 | 2018-06-29 | 深圳市中兴微电子技术有限公司 | 一种防止总线死锁的方法及装置 |
CN108228503B (zh) * | 2016-12-15 | 2020-11-10 | 深圳市中兴微电子技术有限公司 | 一种防止总线死锁的方法及装置 |
CN112805949A (zh) * | 2018-10-01 | 2021-05-14 | 华为技术有限公司 | 处理快照创建请求的方法以及存储设备 |
Also Published As
Publication number | Publication date |
---|---|
US20050251612A1 (en) | 2005-11-10 |
KR100715741B1 (ko) | 2007-05-09 |
CN100524271C (zh) | 2009-08-05 |
TW200536309A (en) | 2005-11-01 |
EP1591908A1 (en) | 2005-11-02 |
KR20050103865A (ko) | 2005-11-01 |
US7165131B2 (en) | 2007-01-16 |
TWI264904B (en) | 2006-10-21 |
JP2005318495A (ja) | 2005-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100524271C (zh) | 将事务分离到不同的虚拟信道的方法、装置 | |
JP5490336B2 (ja) | Pciエクスプレス・マルチプル・ルートi/o仮想化環境における低待ち時間の優先順位付け | |
US8099521B2 (en) | Network interface card for use in parallel computing systems | |
EP2406723B1 (en) | Scalable interface for connecting multiple computer systems which performs parallel mpi header matching | |
TWI297838B (en) | Method and apparatus for shared i/o in a load/store fabric | |
US6678773B2 (en) | Bus protocol independent method and structure for managing transaction priority, ordering and deadlocks in a multi-processing system | |
US7457906B2 (en) | Method and apparatus for shared I/O in a load/store fabric | |
US7848253B2 (en) | Method for scoring queued frames for selective transmission through a switch | |
US7782893B2 (en) | Method and apparatus for shared I/O in a load/store fabric | |
CN102576349B (zh) | 输入/输出(i/o)虚拟化系统中主计算机与外围资源之间的通信 | |
US6608819B1 (en) | Method for scoring queued frames for selective transmission through a switch | |
EP1530850A2 (en) | Store and forward switch device, system and method | |
JP5469081B2 (ja) | 制御パス入出力仮想化方法 | |
TW571223B (en) | Mechanism for preserving producer-consumer ordering across an unordered interface | |
JP2003526150A (ja) | コンピュータネットワーク内で単一コンピュータの通信を制御するための方法 | |
CN107533526B (zh) | 经由具有完全连接网格拓扑的pci express结构向存储写入数据 | |
US7353317B2 (en) | Method and apparatus for implementing heterogeneous interconnects | |
US6976142B1 (en) | Method and system to provide simultaneous access by multiple pipelines to a table |
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 |