CN101594306A - 为分组报头提供前缀 - Google Patents
为分组报头提供前缀 Download PDFInfo
- Publication number
- CN101594306A CN101594306A CNA2009101426034A CN200910142603A CN101594306A CN 101594306 A CN101594306 A CN 101594306A CN A2009101426034 A CNA2009101426034 A CN A2009101426034A CN 200910142603 A CN200910142603 A CN 200910142603A CN 101594306 A CN101594306 A CN 101594306A
- Authority
- CN
- China
- Prior art keywords
- prefix
- header
- unit
- tlp
- field
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
在一个实施例中,本发明包括一种方法,用于为将从发射机发送的第一分组生成具有操作码字段和前缀专用字段的前缀报头,并从所述发射机处发送具有所述前缀报头的所述分组,其中,所述前缀报头的后面跟着报头。另外,还描述及主张了其它实施例。
Description
背景技术
计算机系统包括许多部件和元件,典型地,经由总线或互连来对这些部件和元件进行耦合。以前,通过被称为外围部件互连(PCI)的传统多点并行总线架构来将输入/输出(IO)设备耦合到一起。近来,已经使用被称为PCI-Express(PCIe)的新一代IO总线来帮助实现在具有串行物理层通信协议的设备之间的更快的互连。
PCIe架构包括分层协议以便在设备之间进行通信。作为例子,物理层、链路层和事务(transaction)层形成PCIe协议栈。通过被称为通道(lane)的专用单向串行点对点连接对来创建PCIe链路。设备之间的链路包括一些数目的通道,例如一个、两个、十六个、三十二个等。当前的PCIe规范:PCIExpressTM规范基础规范2.0版(2007年1月17日发布),可在下面的网址中获得:http://www.pcisig.com/specifications/pciexpress/。
物理层可以发送(或接收)三类链路业务:有序集、数据链路层分组(DLLP)和事务层分组(TLP)。本地链路业务(其包括有序集和DLLP)不被转发也不携带路由信息。相反,TLP可以使用被包含在分组报头(header)中的路由信息来在链路间传递。特别地,每个TLP包含三或四个双字(DW)(12或16字节)报头。包括在3DW或3DW报头中的尤其是两个字段:类型和格式(Fmt),其定义了所述报头的其余部分的格式以及当TLP在PCIe系统中的设备之间传递时在整个TLP上所使用的路由方法。尽管报头提供了所需信息,但它的格式是固定的,并妨碍了通过报头来提供附加信息的灵活性。
附图说明
图1是根据本发明的一个实施例的系统的方框图。
图2是根据本发明的一个实施例的基本TLP前缀报头。
图3是根据本发明的实施例的被附加到TLP的TLP前缀的方框图。
图4是根据本发明的一个实施例的扩展的TLP前缀报头的方框图。
图5A-5B是根据本发明的一个实施例的对TLP前缀和报头的堆叠。
图6A-6C是根据本发明的实施例的不同的报头信用值分配。
图7是根据本发明的一个实施例的方法的流程图。
具体实施方式
实施例可以扩展PCIe架构报头格式来支持新出现的应用需求。更具体地,在各个实施例中,TLP前缀(其是对可被附加到TLP报头的附加报头信息的架构化定义)可用于实现在TLP或其它这样的分组的报头中提供的信息的灵活性。也就是说,虽然本文中是用应用于PCIe系统的TLP的例子来描述的,但本发明的范围并不限制于此,并且,实施例可用于使得能够为各种通信协议的分组传送附加报头信息。
在不同的实现中,该TLP前缀报头可被用作对PCIe事务层报头的封装层,提供附加路由信息以协助中间路由元件对TLP进行路由,向完成者提供事务处理提示,以及/或者提供厂商专用的调试信息。根据本发明的实施例的前缀还可被用于提供安全信息以及为了将来的使用模型而做准备,其中,将来的使用模型可能会需要扩展的报头,以提供在目前所规定的报头格式字段中不存在的附加信息。
参考图1,说明了根据本发明的一个实施例的系统的方框图,该系统包括经由串行链路耦合到控制中心(controller hub)的设备。系统100包括耦合到控制中心115的处理器105和系统存储器110。处理器105包括任意处理元件,例如微处理器、主处理器、嵌入式处理器、协处理器或其它处理器。处理器105通过前端总线(FSB)106耦合到控制中心115。在一个实施例中,FSB 106是如下所述的串行点对点(PtP)互连。
系统存储器110包括任意存储器设备,例如随机存取存储器(RAM)、非易失性(NV)存储器、或可由系统100中的设备所访问的其它存储器。系统存储器110通过存储器接口116耦合到控制中心115。
在一个实施例中,控制中心115是PCIe互连层级结构中的根集线器或根控制器。控制中心115的例子包括芯片组、存储器控制中心(MCH)、北桥、输入/输出控制中心(ICH)、南桥以及根控制器/集线器。在这里,控制中心115通过串行链路119耦合到交换机/桥接器120。输入/输出模块117和121(其也可被称为接口/端口117和121)包括/实现了分层协议栈,来提供在控制中心115和交换机120之间的通信。在一个实施例中,多个设备能够耦合到交换机120。实施例也可以应用于将处理器和芯片组集成到同一封装中的情况。另外,该技术并不需要新修订版本的PCIe协议,并且,可以由与PCIe 2.0、1.1相兼容的设备来实现该技术。因此,实施例可被用于利用PCIe互连进行通信的任何地方。
交换机120将来自设备125的分组/消息向上游路由(即,向着控制中心115的方向上升一个层级),以及,将分组/消息向下游路由(即,向着远离控制中心115的方向下降一个层级)到设备125。IO模块122和126实现分层协议栈,以在交换机120和设备125之间进行通信。设备125包括耦合到电子系统的任意内部或外部的设备或部件,例如IO设备、网络接口控制器(NIC)、插入卡、音频处理器、网络处理器、硬盘驱动器、存储装置、监视器、打印机、鼠标、键盘、路由器、便携式存储装置、火线设备、通用串行总线(USB)设备、扫描仪以及其它输入/输出设备。
图形加速器130也通过串行链路132耦合到控制中心115。在一个实施例中,图形加速器130耦合到MCH,MCH耦合到ICH。交换机120(以及相应地,IO设备125)然后耦合到所述ICH。IO模块131和118也实现分层协议栈,以在图形加速器130和控制中心115之间进行通信。
在一个实施例中,PCIe协议栈可以包括事务层、链路层和物理层。在一个实施例中,事务层提供了在设备的处理核心和互连架构之间(例如,在数据链路层和物理层之间)的接口。在这一点上,事务层的主要职责是分组(即,事务层分组或TLP)的组装和拆分。注意,为了能够平滑地实现可靠性-可用性-可服务性(RAS),PCIe在设备架构的三个合作功能层(物理层、链路层和事务层)中提供可靠的协议错误检测、纠正和报告能力。在基于PCIe的设计中,组合一个或多个TLP来形成事务,其经由链路从总线上的一个设备发送到另一设备。对于给定的TLP,设备通过分析在每个TLP中所提供的可靠性机制来提供设备级的错误检测和纠正。这些错误检测/纠正的职责跨越了所述三个功能设备层。PCIe也实现了分离事务,即,事务的请求和响应在时间上分开,这允许在目标设备为响应收集数据的同时一个链路携带其它业务。
另外,PCIe使用基于信用值(credit)的流控制。在本方案中,一个设备在事务层中通告每个接收缓冲器的信用值的初始数目。在链路另一端的外部设备(例如,图1中的控制中心115)对由每个TLP所消耗的信用值的数目进行计数。如果一个事务未超出信用值限制,则可以发送该事务。一旦接收到响应,则恢复一定数目的信用值。信用值方案的优势是:假如未达到信用值限制,则信用值返还的等待时间不会影响性能。
链路层担当在事务层和物理层之间的中间级。在一个实施例中,数据链路层的职责是提供一种可靠的机制,用于在两个部件之间通过链路来交换TLP。链路层的一侧接受由事务层组装的TLP,应用标识符,计算并应用错误检测码(即循环恢复码(CRC)),以及向物理层提交经更改的TLP,以用于通过物理链路发送给外部设备。
在一个实施例中,物理层向外部设备物理地发送分组。物理层包括发送部分和接收部分,发送部分准备用于传输的出局信息,接收部分在向链路层传递接收到的信息之前对其进行识别和准备。物理层包括发射机和接收机。为发射机提供符号,符号被发射机串行化并被发送到外部设备。来自外部设备的串行化符号被提供给接收机,接收机将接收到的信号转换为比特流。比特流被解串行化并被提供给逻辑子块。在一个实施例中,采用了8b/10b传输码,其中发送/接收10位的符号。另外,在一个例子中,接收机还提供了根据入局串行流恢复的符号时钟。如上所述,尽管对事务层、链路层和物理层的论述参考了PCIe协议栈的具体实施例,但分层协议栈并非限制于此。事实上,可以包括/实现任意分层协议。
因此,通过一个或多个TLP的传输,实现了PCIe系统中设备间的通信,其中,所述一个或多个TLP进行组合以形成在耦合于两个设备之间的链路上所发送的事务。因此,通过使用上文描述的三个层,可以发送包括各种信息的TLP。特别地,物理层可以提供在TLP的开头和结尾处的帧信息。而链路层又可以向分组提供序列号以及链路CRC。而事务层又可以生成被附加到数据(如果存在的话)的报头以及可选的端到端CRC(ECRC)。这样,所发送的TLP可以依次包括下列部分:简单传输协议(STP)成帧字段、次序字段、报头字段、数据字段、ECRC字段、链路CRC(LCRC)字段和成帧结束字段。如上所述,TLP报头的这种格式是固定的,且在提供与这样的报头相关联的附加信息这一方面上并未提供灵活性。
为了增加灵活性,可以将根据本发明实施例的TLP前缀附加到由PCIe规范所定义的TLP上。在一个这样的实施例中,基本TLP前缀的大小可以是一个双字(DW),并且可被附加到TLP报头(目前定义的TLP报头和将来的TLP报头均可)。如图2所示,其是根据本发明一个实施例的基本TLP前缀报头,该前缀可以包括操作码字段和前缀专用字段。具体地,如图2所示,数据10包括由前缀DW 20所形成的基本TLB前缀报头,其具有第一字段25和前缀专用字段28,其中,第一字段25可对应于操作码字段,而前缀专用字段28可基于与其相关联的操作码字段来提供各种信息。如图2中的实施例所示,操作码字段25可以具有固定的(即预先确定的)最高有效位(MSB)。也就是说,三个MSB可以具有“100”的值来表明前缀的存在。依次地,最低有效位(LSB)(在图2的实施例中被示为5个LSB)可具有对应于给定操作码分配的变化值。
在一个实施例中,操作码字段可以与下列分配相关联。
表1
●100-ttttt,其中ttttt是TLP前缀操作码(即,可定义多达32个前缀);
●100-00000-厂商专用;
●100-00001-扩展的操作码前缀;
●100-11111-TLP前缀扩展;以及
●100-其它-预留用于将来使用。
现在参考图3,示出了根据本发明的实施例的附加到TLP的TLP前缀的方框图。如图3所示,数据10`包括TLP前缀20(其可对应于如上文所述的图2中的前缀20)以及TLP报头30。如图3所示,仅仅示出了TLP报头的第一个DW。然而可以理解,在各种实现中,TLP报头可以由三或四个DW形成。TLP报头30可包括各种字段。图3中示出的特定字段包括格式字段32、类型字段34和长度字段36。格式字段32和类型字段34可被用于定义报头30的其余部分的格式以及当TLP经过不同设备时在整个TLP上所使用的路由方法。另外,长度字段36可以表明跟随在报头30之后的TLP的数据部分的长度。注意,PCIe协议固定了报头30的结构,因而缺乏灵活性的能力。因此,本发明的实施例可以通过在TLP报头的前面包括一个或多个TLP前缀来提供灵活性,以便能够提供与TLP报头相关联的附加信息。
为了实现功能,可以(通过层级结构)以端对端的方式来实现对TLP前缀的支持。然而,在此范围内的一些情形中,对于链路本地TLP前缀,限制为链路对链路的方式,而对于其它情况,则可被路由到端点和中间交换机。对于路由元件(例如,交换机、对等网络等等),TLP前缀可以默认为可忽略的,除非给定的用法模型要求对TLP前缀进行理解和处理。例如,可以使用在每一跳中附加/移除的TLP,其在链路的远端被终止并被重新生成(链路本地TLP)。
在各种系统中,可以有两种TLP前缀类型。第一种,可以提供链路本地TLP前缀,路由元件需要为其来处理TLP以用于路由或其它目的。当两端都理解TLP前缀时可以使用这样的前缀。也就是说,对于路由元件来说,此类前缀并不是看不见地经过的。注意,ECRC对于链路本地TLP前缀报头是不适用的。
第二种前缀可以是全局TLP前缀,其可被用在以下情况中:TLP经过路由元件,而这样的路由元件可能并不会知道TLP前缀内容。如果基本TLP被ECRC保护,那么,相应的全局TLP前缀也将被ECRC保护。
图2中所示出的基本TLP前缀为TLP操作码专用字段提供了24位。在某些应用情形中,这个数目的位可能是不够用的,并且可使用一个或多个附加DW来提供TLP前缀扩展,例如,如果需要额外的操作码专用位的话。在此种情形中,可使用100-11111的TLP前缀操作码编码来提供对TLP操作码专用字段的扩展。TLP扩展操作码的优势如下:提供当需要时可以扩展的固定DW大小的TLP前缀结构;支持对需要大于24位字段的TLP前缀的定义;以及提供在将来在不会影响到系统环境的情况下增加TLP前缀操作码专用字段的能力。
现在参考图4,其示出了根据本发明的一个实施例来进行扩展的TLP前缀报头的方框图。如图4所示,其是根据本发明的实施例的包括了扩展的TLP前缀报头的数据10``的方框图。也就是说,除第一前缀DW 20之外,还存在了两个额外的扩展前缀DW 40和45。以此方式,可以提供附加信息。注意,扩展前缀40和45均具有相同的操作码分配,即“10011111”,从上面的表1可以看出其对应于TLP前缀扩展码。因此,与这两个扩展前缀相关联的前缀专用字段48可以提供附加信息,例如,针对前缀双字20中所提供的数据的附加数据。
在某些情况下,可以使用TLP前缀堆叠操作,其中,允许将多个TLP前缀附加到其它TLP前缀或TLP报头(其可被认为是一个堆栈)。在一个实施例中,应用下面的规则以堆叠TLP前缀。TLP前缀可以被堆叠在彼此之上,其中,堆叠的TLP前缀可以是基本TLP前缀或扩展TLP前缀。允许堆叠多个TLP前缀。全局TLP前缀可以被堆叠在其它全局TLP前缀或标准报头TLP之上,但不能被堆叠在链路本地TLP前缀之上。然而,相反的是,链路本地TLP前缀可以被堆叠在任何其它TLP前缀或报头TLP之上。
图5A示出了根据本发明的一个实施例的所允许的对TLP前缀和报头的堆叠。如图5A所示,提供了堆栈100,其包括TLP报头105、1到N个全局TLP前缀110以及1到N个链路本地TLP前缀115。在一个实施例中,这样的堆栈100是被允许的,这是因为链路本地TLP前缀115被堆叠在全局前缀110之上(而全局前缀110又被堆叠在TLP报头105之上)。相反,如图5B所示,在某些实施例中,堆120可能是不被允许的,这是因为可能不允许将全局TLP前缀135堆叠在链路本地TLP前缀130之上。
如上所述,TLP前缀可以被扩展和堆叠。因此,接收机可以为了路由和流控制的目的来检测基本TLP从而确定TLP的类型。根据一个实施例的用来检测基本TLP的规则如下:一旦检测到了TLP前缀(即,在前缀的第一字节的三个MSB中出现了预定的前缀码100),则扫描所有随后的DW直到检测到针对这些位的非100编码为止。在这期间所数到的DW数目是TLP前缀,或者是堆叠的或者是扩展的。注意,不需要单独的终止位来检测TLP前缀的结束。
根据PCIe协议,报头流控制粒度是报头信用值的一个计量单位,其中,1计量单位等于16字节(B)(考虑到16B对应于TLP报头)。附加到报头TLP的TLP前缀DW(即,基本TLP前缀或扩展TLP前缀)消耗(除了基本报头信用值之外的)一个额外的报头信用值。
可以为各种部件设置架构化的、可配置的最大TLP前缀大小参数。特别地,接收机必须在存储元件中保持TLP前缀,直到检测到标准TLP为止,其后,接收机可以将TLP移动到合适的缓冲器资源(针对其说明流控制)。因此,应考虑接收机的中间/分级缓冲器的能力,即,可在一个分组中发出的TLP前缀DW的数目的限制。该粒度可以被定义为所支持的最大TLP前缀大小,例如,报头粒度的倍数-1倍、2倍、4倍等。该架构化的配置参数可被称为最大TLP前缀大小,并可以通过在PCIe能力寄存器中提供一个字段来发现该最大TLP前缀大小,并且经由PCIe控制寄存器来对其进行编程。
因此,如图6A所示,当两个TLP前缀210被堆叠在TLP 200上时,需要两个报头信用值,这是因为除了16B的报头所需要的单个报头信用值之外,还需要一个额外的信用值来支持这两个TLP前缀。类似地,如图6B所示,可以使用同样两个报头信用值来支持具有四个DW(即,16字节)的TLP前缀堆栈215。相反,如图6C所示,需要三个报头信用值来支持包括五个双字的前缀堆栈220,这是因为需要价值为20字节的信用值来支持该堆栈220。虽然用图6A-6C中的这个特定实现示出,但可以在其它实施例中应用不同的报头信用值规则。
现在参考图7,其示出了根据本发明的一个实施例的方法的流程图。如图7所示,根据本发明的实施例,可以由发送设备的事务层来实现方法300以生成TLP前缀。方法300可以从确定是否要在TLP报头中发送附加信息(菱形310)开始。这种附加信息可以用于向TLP报头封装更多数据,为中间路由元件提供附加路由信息,提供事务处理等,但并非限制于此。如果要提供这种附加信息,控制转到框320。
在框320,可以生成具有操作码字段和前缀专用字段的TLP前缀报头。在一个实施例中,TLP前缀报头可以被生成为如在图2中所示的基本报头。然后,可以确定除了在基本前缀报头中所提供的信息外,是否还有附加信息要被包括在所述TLP前缀中(菱形330)。如果是,则控制返回到框320。否则,会发送一个或多个前缀报头单元(框340)。也就是说,这样的TLP前缀单元可以被事务层发到数据链路层,发到物理层上,然后通过链路到达接收设备,接收设备可以相应地通过物理层、数据链路层将该信息传递到接收设备的事务层,以用于解码和处理。
在TLP前缀报头的传输之后,可以发送TLP报头(框350),该TLP报头可以是包括了诸如格式字段、类型字段等各种字段的传统TLP报头。这样的传输可以以与TLP前缀报头相同的方式来进行。在这样的TLP报头传输之后,发出将要用该TLP来发送的任何有效载荷(框360)。通过接收和处理所述前缀,TLP报头和额外的分组信息可以出现在使用各种层的接收机中。尽管用图7的实施例中的这一特定实现示出,但本发明的范围并不限制于此。
因此,实施例可以在分组报头所提供的信息上提供灵活性,而不需要ad-hoc解决方案或通过使用预留的报头字段来提供/引入新特征或要点方案。在一些实施例中,TLP前缀使得定义和实现变得容易,因此具有最小的系统环境影响,并且是可升级的解决方案。如上所述,可以堆叠/扩展TLP前缀,这可被用于准备对将来的支持,例如,为各个厂而商定义的编码,或为扩展定义的编码。另外,新的流控制类型也是不需要的。
实施例可以用代码实现并可以存储在存储介质上,该存储介质具有存储在其上的指令,其可用于对一个系统进行编程来执行所述指令。所述存储介质可以包括但不限于:任何类型的盘,包括软盘、光盘、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)、以及磁光盘,半导体器件,例如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)这样的随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、闪速存储器、电可擦可编程只读存储器(EEPROM),磁卡或光卡,或适于存储电子指令的任意其它类型的介质。
尽管以有限数目的实施例来描述了本发明,但本领域的技术人员可以领会到许多基于此的修改和变型。所附的权利要求旨在覆盖落入本发明的实质精神和范围内的所有这样的修改和变型。
Claims (20)
1、一种方法,包括:
为将从发射机发送的第一分组生成具有操作码字段和前缀专用字段的前缀报头;以及
沿着互连将所述第一分组从所述发射机发送到接收机,所述第一分组包括其后跟随着报头的所述前缀报头。
2、根据权利要求1所述的方法,还包括:生成具有扩展前缀报头的所述前缀报头,该扩展前缀报头包括多个单元,每个单元包括操作码字段和前缀专用字段。
3、根据权利要求1所述的方法,还包括:生成包括第一部分和第二部分的所述操作码字段,该第一部分具有用于指示存在所述前缀报头的预定值,该第二部分用于指示操作码。
4、根据权利要求3所述的方法,还包括:在所述前缀报头中包括路由信息,以用于所述第一分组的中间接收机。
5、根据权利要求4所述的方法,还包括:生成作为将由所述中间接收机来处理的本地前缀的所述前缀报头。
6、根据权利要求1所述的方法,还包括:生成作为将经过所述接收机而不被该接收机解码的全局前缀的所述前缀报头。
7、根据权利要求1所述的方法,还包括:生成包括多个堆叠的前缀单元的所述前缀报头,其中,所述堆叠前缀单元中的至少一些是全局前缀单元,所述全局前缀单元将经过路由元件而不被解码。
8、根据权利要求7所述的方法,其中,所述堆叠的前缀单元中的至少一些是本地前缀单元,所述本地前缀单元将在所述路由元件中被处理以向该路由元件提供附加路由信息。
9、一种装置,包括:
第一部件,其在点对点(PtP)互连上与第二部件进行通信,其中,所述第一部件沿着PtP互连发送第一分组,该第一分组包括具有操作码字段和数据字段的报头前缀,其中,该操作码字段具有第一部分和第二部分,该第一部分具有用于指示存在所述报头前缀的预定值,该第二部分用于指示操作码,所述第一分组还包括跟随在所述报头前缀之后的报头。
10、根据权利要求9所述的装置,其中,所述第一部件发送具有扩展报头前缀的所述第一分组,该扩展报头前缀包括多个单元,每个单元包括相同的操作码字段和不同的数据字段。
11、根据权利要求9所述的装置,其中,所述第一部件包括用于生成第一报头前缀的链路层和用于生成第二报头前缀的事务层,其中,所述第一和第二报头前缀与所述报头相关联。
12、根据权利要求11所述的装置,其中,所述第一报头前缀为耦合到所述PtP互连的中间路由元件提供路由信息。
13、根据权利要求9所述的装置,其中,所述第一部件生成包括多个堆叠的前缀单元的所述报头前缀,其中,所述堆叠的前缀单元中的至少一些是全局前缀单元,所述全局前缀单元将经过路由元件而不被解码。
14、根据权利要求9所述的装置,其中,所述第一部件生成包括多个前缀单元的所述报头前缀,其中,第一前缀单元包括具有第一操作码值的操作码字段,该第一操作码值与将由接收机来解码的编码相对应,其余的前缀单元包括具有第二操作码值的操作码字段,该第二操作码值用于指示相应的数据字段与所述第一前缀单元相关联。
15、一种系统,包括:
发射机,用于发送包括具有编码字段和数据字段的报头前缀的第一事务层分组(TLP),其中,该编码字段具有第一部分和第二部分,该第一部分具有用于指示存在所述报头前缀的预定值,该第二部分用于指示操作码,第一码用于指示在所述第一TLP中存在扩展前缀,或者第二码用于指示在所述数据字段中存在操作码信息,所述第一TLP还包括跟随在所述报头前缀之后的报头;
接收机,其通过点对点(PtP)互连耦合到所述发射机;以及
动态随机存取存储器(DRAM),其耦合到所述接收机和发射机。
16、根据权利要求15所述的系统,其中,所述发射机发送具有所述扩展前缀的所述第一分组,该扩展前缀包括多个单元,每个单元具有所述第一码和不同的数据字段。
17、根据权利要求15所述的系统,其中,所述发射机生成包括多个堆叠的前缀单元的所述报头前缀,其中,所述堆叠的前缀单元中的至少一些是全局前缀单元,所述全局前缀单元将经过路由元件而不被解码。
18、根据权利要求17所述的系统,其中,如果所述多个堆叠的前缀单元的数目小于预定阈值,则所述多个堆叠的前缀单元消耗单个报头信用值。
19、根据权利要求15所述的系统,其中,所述发射机生成包括多个前缀单元的所述报头前缀,其中,第一前缀单元包括具有拥有第一操作码值的第二部分的编码字段,该第一操作码值与将由所述接收机来解码的操作码相对应,其余的前缀单元包括具有拥有所述第一码的第二部分的编码字段,该第一码用于指示相应的数据字段与所述第一前缀单元的操作码相关联。
20、根据权利要求15所述的系统,其中,所述接收机包括配置寄存器,其具有与能被该接收机处理的最大扩展前缀相对应的最大前缀参数。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310370083.9A CN103490997B (zh) | 2008-05-30 | 2009-05-31 | 为分组报头提供前缀 |
CN201310369747.XA CN103490852B (zh) | 2008-05-30 | 2009-05-31 | 用于处理与点到点数据链路有关的数据的方法和装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/156,409 | 2008-05-30 | ||
US12/156,409 US7849252B2 (en) | 2008-05-30 | 2008-05-30 | Providing a prefix for a packet header |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310370083.9A Division CN103490997B (zh) | 2008-05-30 | 2009-05-31 | 为分组报头提供前缀 |
CN201310369747.XA Division CN103490852B (zh) | 2008-05-30 | 2009-05-31 | 用于处理与点到点数据链路有关的数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101594306A true CN101594306A (zh) | 2009-12-02 |
CN101594306B CN101594306B (zh) | 2013-09-18 |
Family
ID=41268993
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101426034A Active CN101594306B (zh) | 2008-05-30 | 2009-05-31 | 为分组报头提供前缀 |
CN201310369747.XA Active CN103490852B (zh) | 2008-05-30 | 2009-05-31 | 用于处理与点到点数据链路有关的数据的方法和装置 |
CN201310370083.9A Active CN103490997B (zh) | 2008-05-30 | 2009-05-31 | 为分组报头提供前缀 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310369747.XA Active CN103490852B (zh) | 2008-05-30 | 2009-05-31 | 用于处理与点到点数据链路有关的数据的方法和装置 |
CN201310370083.9A Active CN103490997B (zh) | 2008-05-30 | 2009-05-31 | 为分组报头提供前缀 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7849252B2 (zh) |
CN (3) | CN101594306B (zh) |
DE (2) | DE102009021865B4 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954221A (zh) * | 2014-03-25 | 2015-09-30 | Dssd股份有限公司 | 用于全连接网格拓扑结构的高速pci架构路由 |
CN106533991A (zh) * | 2016-10-14 | 2017-03-22 | 盛科网络(苏州)有限公司 | 堆叠系统中可变长堆叠头的实现方法及其设备 |
CN107409091A (zh) * | 2015-03-10 | 2017-11-28 | 华为技术有限公司 | 用于分组交换网络的流量工程馈线 |
CN109150584A (zh) * | 2018-07-04 | 2019-01-04 | 北京中创腾锐技术有限公司 | 一种基于smid指令的为网络分组分类提供加速支持的方法 |
CN113498597A (zh) * | 2020-01-22 | 2021-10-12 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
CN114475733A (zh) * | 2022-01-07 | 2022-05-13 | 北京全路通信信号研究设计院集团有限公司 | 一种基于以太网通信的计算机联锁方法和系统 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8139575B2 (en) * | 2007-06-29 | 2012-03-20 | International Business Machines Corporation | Device, system and method of modification of PCI express packet digest |
US7852757B1 (en) * | 2009-03-10 | 2010-12-14 | Xilinx, Inc. | Status based data flow control for chip systems |
US8930602B2 (en) | 2011-08-31 | 2015-01-06 | Intel Corporation | Providing adaptive bandwidth allocation for a fixed priority arbiter |
US9021156B2 (en) | 2011-08-31 | 2015-04-28 | Prashanth Nimmala | Integrating intellectual property (IP) blocks into a processor |
US8713240B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Providing multiple decode options for a system-on-chip (SoC) fabric |
US8929373B2 (en) * | 2011-09-29 | 2015-01-06 | Intel Corporation | Sending packets with expanded headers |
US8874976B2 (en) | 2011-09-29 | 2014-10-28 | Intel Corporation | Providing error handling support to legacy devices |
US8713234B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Supporting multiple channels of a single interface |
US8711875B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Aggregating completion messages in a sideband interface |
US8775700B2 (en) | 2011-09-29 | 2014-07-08 | Intel Corporation | Issuing requests to a fabric |
US8805926B2 (en) | 2011-09-29 | 2014-08-12 | Intel Corporation | Common idle state, active state and credit management for an interface |
US9053251B2 (en) | 2011-11-29 | 2015-06-09 | Intel Corporation | Providing a sideband message interface for system on a chip (SoC) |
US9032102B2 (en) * | 2012-03-02 | 2015-05-12 | International Business Machines Corporation | Decode data for fast PCI express multi-function device address decode |
JP5928087B2 (ja) * | 2012-03-29 | 2016-06-01 | 富士通株式会社 | スイッチ、情報処理装置および通信制御方法 |
WO2015155997A1 (ja) * | 2014-04-11 | 2015-10-15 | 日本電気株式会社 | 設定装置、制御装置、設定方法及びネットワークスイッチ |
US9946683B2 (en) * | 2014-12-24 | 2018-04-17 | Intel Corporation | Reducing precision timing measurement uncertainty |
US10698849B2 (en) * | 2015-03-11 | 2020-06-30 | Apple Inc. | Methods and apparatus for augmented bus numbering |
US10911261B2 (en) | 2016-12-19 | 2021-02-02 | Intel Corporation | Method, apparatus and system for hierarchical network on chip routing |
US10846126B2 (en) | 2016-12-28 | 2020-11-24 | Intel Corporation | Method, apparatus and system for handling non-posted memory write transactions in a fabric |
EP3439210B1 (en) * | 2017-07-31 | 2019-12-25 | Mitsubishi Electric R&D Centre Europe B.V. | Reliable cut-through switching for ieee 802.1 time sensitive networking standards |
US10795400B2 (en) | 2018-04-30 | 2020-10-06 | Qualcomm Incorporated | Time synchronization for clocks separated by a communication link |
WO2021147045A1 (zh) * | 2020-01-22 | 2021-07-29 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000025497A1 (en) * | 1998-10-26 | 2000-05-04 | Qualcomm Incorporated | A mobile terminal and wireless device with common ip address |
KR100513863B1 (ko) * | 2003-04-29 | 2005-09-09 | 삼성전자주식회사 | 호스트의 이동성을 지원할 수 있는 무선 근거리 네트워크시스템 및 그의 동작방법 |
US7571242B2 (en) * | 2003-10-24 | 2009-08-04 | Alcatel Lucent | Method for accelerated packet processing |
US20050144339A1 (en) | 2003-12-24 | 2005-06-30 | Wagh Mahesh U. | Speculative processing of transaction layer packets |
US7464174B1 (en) * | 2005-03-07 | 2008-12-09 | Pericom Semiconductor Corp. | Shared network-interface controller (NIC) using advanced switching (AS) turn-pool routing field to select from among multiple contexts for multiple processors |
US7478178B2 (en) * | 2005-04-22 | 2009-01-13 | Sun Microsystems, Inc. | Virtualization for device sharing |
US20060268913A1 (en) * | 2005-05-27 | 2006-11-30 | Utstarcom, Inc. | Streaming buffer system for variable sized data packets |
JP4394624B2 (ja) * | 2005-09-21 | 2010-01-06 | 株式会社日立製作所 | 計算機システム及びi/oブリッジ |
-
2008
- 2008-05-30 US US12/156,409 patent/US7849252B2/en active Active
-
2009
- 2009-05-19 DE DE102009021865.3A patent/DE102009021865B4/de active Active
- 2009-05-19 DE DE102009061279.3A patent/DE102009061279B3/de active Active
- 2009-05-31 CN CN2009101426034A patent/CN101594306B/zh active Active
- 2009-05-31 CN CN201310369747.XA patent/CN103490852B/zh active Active
- 2009-05-31 CN CN201310370083.9A patent/CN103490997B/zh active Active
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954221A (zh) * | 2014-03-25 | 2015-09-30 | Dssd股份有限公司 | 用于全连接网格拓扑结构的高速pci架构路由 |
US9460039B2 (en) | 2014-03-25 | 2016-10-04 | DSSD, Inc. | PCI express fabric routing for a fully-connected mesh topology |
US10013377B2 (en) | 2014-03-25 | 2018-07-03 | EMC IP Holding Company LLC | PCI express fabric routing for a fully-connected mesh topology |
CN107409091B (zh) * | 2015-03-10 | 2019-11-29 | 华为技术有限公司 | 用于分组交换网络的流量工程馈线 |
CN107409091A (zh) * | 2015-03-10 | 2017-11-28 | 华为技术有限公司 | 用于分组交换网络的流量工程馈线 |
US10491525B2 (en) | 2015-03-10 | 2019-11-26 | Huawei Technologies Co., Ltd. | Traffic engineering feeder for packet switched networks |
CN106533991B (zh) * | 2016-10-14 | 2019-09-20 | 盛科网络(苏州)有限公司 | 堆叠系统中可变长堆叠头的实现方法及其设备 |
CN106533991A (zh) * | 2016-10-14 | 2017-03-22 | 盛科网络(苏州)有限公司 | 堆叠系统中可变长堆叠头的实现方法及其设备 |
CN109150584A (zh) * | 2018-07-04 | 2019-01-04 | 北京中创腾锐技术有限公司 | 一种基于smid指令的为网络分组分类提供加速支持的方法 |
CN109150584B (zh) * | 2018-07-04 | 2022-02-25 | 北京中创腾锐技术有限公司 | 一种基于simd指令的为网络分组分类提供加速支持的方法 |
CN113498597A (zh) * | 2020-01-22 | 2021-10-12 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
CN113498597B (zh) * | 2020-01-22 | 2022-10-28 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
CN114475733A (zh) * | 2022-01-07 | 2022-05-13 | 北京全路通信信号研究设计院集团有限公司 | 一种基于以太网通信的计算机联锁方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103490997B (zh) | 2017-09-26 |
CN103490852B (zh) | 2018-05-18 |
CN103490997A (zh) | 2014-01-01 |
US7849252B2 (en) | 2010-12-07 |
CN103490852A (zh) | 2014-01-01 |
DE102009021865A1 (de) | 2009-12-10 |
DE102009021865B4 (de) | 2017-08-24 |
CN101594306B (zh) | 2013-09-18 |
US20090296740A1 (en) | 2009-12-03 |
DE102009061279B3 (de) | 2020-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101594306B (zh) | 为分组报头提供前缀 | |
JP4954330B2 (ja) | Pciエクスプレス・パケット・ダイジェストの変更のデバイス、システムおよび方法 | |
US7492710B2 (en) | Packet flow control | |
CN100511192C (zh) | 用于具有位通道故障在线恢复的存储信道的方法、装置和系统 | |
KR101298862B1 (ko) | Pci 익스프레스를 통해 ⅰd 기반 스트림을 가능하게 하는 방법 및 장치 | |
CN102326362A (zh) | 将端点逻辑灵活地集成到各种平台 | |
CN104025550B (zh) | 从数据项获得信息的方法及装置 | |
KR20160018987A (ko) | 인터페이스 회로 및 그것의 패킷 전송 방법 | |
KR102516027B1 (ko) | 헤더 처리 장치, 프로세서 및 전자장치 | |
JP2005260368A (ja) | データ転送制御装置及び電子機器 | |
US20060227768A1 (en) | System and method for communicating between a computer cluster and a remote user interface | |
CN102349059A (zh) | PCI Express的TLP处理电路及具备该处理电路的中继设备 | |
US6483840B1 (en) | High speed TCP/IP stack in silicon | |
US8111623B2 (en) | Node, method and system for control of communication including a buffer | |
US20030118022A1 (en) | Reconfigurable data packet header processor | |
CN100571108C (zh) | 用于在计算节点之间进行数据通信的系统和方法 | |
JP2008204245A (ja) | データ通信装置、画像処理システムおよびデータ通信方法 | |
JP3757204B2 (ja) | エラー検出/訂正方式及び該方式を用いた制御装置 | |
CN101494616A (zh) | 通信协议中分组长度的灵活性的实现 | |
CN106789440B (zh) | 一种ip包包头检测方法及装置 | |
US9515675B2 (en) | Interface circuit operating to recover error of transmitted data | |
US7103038B1 (en) | Systems and methods for converting a P packet/cycle datapath to a Q packet/cycle datapath | |
US8411309B1 (en) | Integrated circuit and electronic device | |
US11636061B2 (en) | On-demand packetization for a chip-to-chip interface | |
CN110505038B (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 |