CN108701052A - 发送事务而不跟踪的方法、设备和系统 - Google Patents
发送事务而不跟踪的方法、设备和系统 Download PDFInfo
- Publication number
- CN108701052A CN108701052A CN201780011502.6A CN201780011502A CN108701052A CN 108701052 A CN108701052 A CN 108701052A CN 201780011502 A CN201780011502 A CN 201780011502A CN 108701052 A CN108701052 A CN 108701052A
- Authority
- CN
- China
- Prior art keywords
- affairs
- coding
- transaction identifiers
- issue
- issuing
- 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.)
- Pending
Links
Classifications
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
Abstract
在一个实施例中,一种设备包括:编码器,该编码器从请求者接收未发布事务并将未发布事务的信息编码成具有为未发布事务保留的预定根总线标示符的编码的事务标识符;以及第一发射器,其向织构发送包括编码的事务标识符的未发布事务,以使得未发布事务能够被路由到目的地。描述并要求保护了其它实施例。
Description
技术领域
实施例涉及在计算机系统中传送事务。
背景技术
现代处理器可以用于构建高度可缩放计算机系统,例如意在用于高处理量计算部分的服务器计算机。在这种系统中,随着内核的数量、存储器带宽和IO配置增加,输入/输出(IO)性能(在带宽和延迟方面)可能尤其受到挑战。
附图说明
图1是根据本发明的实施例的多插槽计算机系统的框图。
图2是根据实施例的系统的一部分的框图。
图3是根据实施例的事务标识符的图形例示。
图4A是根据实施例的用于对未发布事务进行编码的代表性硬件电路的框图。
图4B是根据实施例的用于对完成进行解码的代表性硬件电路的框图。
图5是根据本发明的实施例的方法的流程图。
图6是根据本发明的另一实施例的方法的流程图。
图7是根据实施例的系统的高层级框图。
图8是根据实施例的多插槽服务器系统的高层级框图。
图9是由将一组部件互连的点对点链路构成的织构的实施例。
图10是根据实施例的片上系统设计的实施例。
图11是根据本发明的实施例的系统的框图。
具体实施方式
在以下描述中,阐述了许多具体细节,例如特定类型处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统部件、特定测量值/高度、特定处理器管线级和操作等的示例,以提供透彻理解。然而,本领域技术人员要显而易见,不必要采用这些具体细节来实践给定实施例。在其它实例中,未详细描述公知的部件或方法,例如特定和替代处理器架构、用于所述算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实施方式、算法在代码中的特定表达、特定掉电和门控技术/逻辑以及计算机系统的其它特定操作细节,以免不必要地使例示的实施例难以理解。
尽管可以参考特定集成电路(例如计算平台或微处理器的集成电路)描述以下实施例,但其它实施例适用于其它类型的集成电路和逻辑器件。可以将本文描述的实施例的类似技术和教导应用于其它类型的电路或半导体器件。例如,公开的实施例不限于服务器或台式计算机系统,并且也可以用于其它装置中,例如手持装置、平板电脑、其它薄笔记本、片上系统(SoC)装置和嵌入式应用。手持式装置的一些示例包括蜂窝电话、因特网协议装置、数字相机、个人数字助理(PDA)和手持式PC。嵌入式应用典型包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、或能够执行下文教导的功能和操作的任何其它系统。此外,本文描述的设备、方法和系统不限于物理计算装置,而且还可以涉及软件优化。
随着计算系统的发展,其中的部件变得越来越复杂。结果,用于在部件之间进行耦合和通信的互连架构的复杂性也增大,以确保符合最优部件操作的带宽要求。此外,不同的市场细分需要互连架构的不同方面适合市场需求。例如,服务器需要更高性能,而移动生态系统有时能够牺牲总体性能来实现功率节省。然而,大部分织构的单一目的是提供最高可能性能以及最大功率节省。下面论述若干互连,其可能受益于本文所述的实施例。
在各种实施例中,系统内的根联合体或其它电路可以被配置为执行对接收到的未发布事务的编码而不提供跟踪结构以存储关于未发布事务的信息,同时仍然提供对接收到的这些事务的完成的正确应对。如本文将描述的,在实施例中,可以由根联合体或其它电路保留一个或多个根端口总线以用于与这种未发布事务连接,以实现其编码和处理而无需利用根联合体或其它电路内的跟踪结构。要理解,未发布事务是其中响应是完成的形式(例如,对读请求的数据响应)的给定请求,例如读或写请求。相比之下,发布的事务是请求者不会等候任何响应的给定请求,例如写请求。
尽管实施例适用于很多不同类型的系统,但可以结合诸如服务器计算机的多插槽计算系统使用一个实施例。现在参考图1,示出了根据本发明的实施例的多插槽计算机系统的框图。如图1所示,系统100可以是包括多个插槽1100-1103的服务器计算机。在实施例中,每个插槽可以被实施为多核处理器。这种多核处理器可以包括期望数量的内核,例如4、8、16或更多个内核。此外,每个插槽110包括额外的处理电路,包括无核电路、高速缓存存储器、接口电路等。
为了能够与耦合到给定插槽110的各种端点(在图1中为了例示容易而未示出)通信,每个插槽可以包括一个或多个根联合体,根联合体具有用于根据给定通信协议与这种端点通信的电路。在一个实施例中,通信协议可以根据给定的外围部件快速互连(PCIe)规范(例如PCIe基础规范2.0版(2007年1月17日发布)),在本文中称为“PCIe规范”。如图1所示,插槽110可以以完全连接配置耦合,因为每个插槽110通过对应的互连1201-1206而直接耦合到每个其它插槽。在实施例中,互连120可以被实施为UniPath互连(UPI),尽管诸如快速路径互连(QPI)的其它互连也是可能的。
如下文进一步所述,每个插槽110典型地可以包括1到n个PCIe根端口(RP),其中在示例性系统中,n可以在1到大约20的范围中。每个根端口又可以连接到交换机的PCIe织构,其随后可以连接到多个端点,例如,1到m个PCIe端点(EP),其中m仅受到PCIe计数和总线/器件/功能范围的限制。
任何插槽110上的每个内核被配置为与系统内任何地方的任何PCIe EP通信,不论该EP存在于相同插槽上还是在不同插槽上。这种事务是内核发起事务。此外,每个PCIe EP被配置为与系统内任何地方的任何其它PCIe EP通信,不论目的地EP恰好存在于同一RP下方,同一插槽内的另一RP上,还是在完全不同的插槽上。这种事务被称为对等事务。当然,尽管在图1中利用以插槽为中心的视图示出,但给定服务器可以包括很多额外的部件,包括存储器、储存器、通信电路、功率输送电路、网络接口电路等。
跨PCIe、插槽内和插槽间织构实现多对多通信能够代表大量的缩放挑战,尤其因为每种织构具有不同的链路和协议层语义。该缩放问题的表现之一是在未发布请求流经异质织构时跟踪它们。
未发布事务(内核发起或对等)具有要路由回到事务源的相关联完成。由于存在所述完成可以行进通过的多种异质织构,所以常规PCIe完成分组中可用的路由信息不充足。结果,常规根联合体维持跟踪结构,该跟踪结构具有在发送下游未发布事务时分配的条目。在根联合体处接收上游完成时,针对预先分配的条目对其进行匹配以查找用于将完成路由回到源的路由信息。然而,该跟踪结构的尺寸变成了显著性能瓶颈的源,因为它限制了在某一时间未解决的未发布事务的数量。缩放该结构的尺寸受到面积、定时和功率方面的约束的限制。
如上所述,实施例可以消除在这些桥接结构中对跟踪结构的需求,并去除相关联的带宽瓶颈。这种瓶颈可能发生于分割的全球地址空间编程模型中,其跨越多个节点具有高度分布式地址空间,继而导致跨越PCIe系统对未发布事务的高带宽分配。另一个示例是在大动态数据结构存在于主存储器中的情况中,导致对未发布流量的高处理量要求。
现在参见图2,示出了根据实施例的系统的一部分的框图。更具体而言,在系统200中,提供了根联合体210。这种根联合体可以实施在代表性插槽或其它集成电路中,并包括多个根端口2150-215n。如进一步所示,根联合体210经由织构220耦合到多个端点2300-230m,在实施例中,织构220可以是PCIe织构。每个这种端点230可以实施为这种外围装置内的给定外围器件或部件。
现在参见图3,示出了根据实施例的事务标识符(事务ID)的图形例示,其提供用于对未发布事务进行编码。如图3所示,事务ID 300包括构成部件,即根据PCIe规范的请求者ID 310和标签318。如所示,请求者ID 310自身由构成部件或字段形成,所述字段包括总线字段312、装置字段314和功能字段316。
本文描述的增强的未发布事务处理可以被称为“即发即弃”,因为可以发送下游PCIe未发布请求而无需维持跟踪结构以将完成路由回到源,无论源存在于哪里。
为此,可以直接在标准PCIe报头中编码路由信息。需注意,PCIe报头的事务ID的请求者ID和标签字段被保证返回而不会随着完成而改变。在根联合体接收到完成时,它可以使用请求者ID和标签以使用给定算法将完成路由回到源。
这样,实施例可以完全去除对PCIe下游未发布事务带宽的基于跟踪结构尺寸的限制,并为错误的应对器和调试软件提供额外的信息,以将事务源确定为更精细的粒度。
在常规PCIe技术中,16位请求者ID被唯一地分配给每个PCIe功能。继而,标签字段是由每个请求者产生的8位字段,并且对于要求该请求者的完成的所有未完成请求是唯一的。使用实施例执行即发即弃,利用在PCIe规范中编纂的规则,因为接收器/完成器返回不随着未发布请求的完成而修改的事务ID。
这样,实施例可以使用多达24位的信息来编码内部处理器织构路由信息。然而,并非所有24位都可以原样使用。这是因为,完成是PCIe织构上的按照ID路由的分组。那意味着完成使用请求者ID找到其返回根端口的路径。使该字段过载的任意编码都将打破该路由。此外,根端口所使用的请求者ID要在PCIe系统中是唯一的,以防止与驱动程序和依赖于它们的OS冲突和不兼容。最后,编码的请求者ID要属于PCIe计数的功能,以向它们可能接触到的任何调试或错误处理软件呈现一致性视图。
结果,可以提供新的PCIe根总线。该总线属于根联合体,并由BIOS通过高级配置和功率接口(ACPI)操作向OS声明为主桥总线。属于该根总线的所有装置和功能都将是“主桥类代码”装置,这表示OS将不会尝试为这些功能加载驱动程序。本文中的实施例将该保留的预定根总线称为即发即弃(FAF)根总线。在实施例中,用于FAT根总线内的所有功能的PCIe配置报头可以实施在符合PCIe的硬件中。
通过这种方式,FAF根总线下方的全部256种可能功能都可以使用,因为这些功能被保证是不交叠的。于是,可以按照定制方式使用装置(5位)和功能(3位)的8个位来对未发布事务进行编码。与标签字段的8位一起,可以将16位的信息用于织构内的完成路由。可以通过处理器特定方式使用这16个位。这样一来,可以经由该保留的根总线利用编码信息使请求者ID过载,这提供了256个不同的请求者ID以供使用。
下文在表1中示出了一种可能的编码方案。
表1
内核发起的请求
对多达8个插槽进行编码——3位(S[2:0])
对多达64个内核进行编码——6位(C[5:0])
对多达64个内核的跟踪结构进行编码——6位(CTS[5:0])
在内核发起的请求和P2P请求之间进行区分——1位(I)
这可以被编码为:
对等请求
对多达8个插槽进行编码——3位(S[2:0])
对多达32个根端口进行编码——5位(RP[4:0])
对多达128个根联合体的跟踪结构进行编码——7位(RPTS[6:0])
在内核发起的请求和P2P请求之间进行区分——1位(I)
这可以被编码为:
以上示例示出了一种配置,其中可以对来自多达8个插槽、64个内核和32个根端口的未发布流量进行编码。可以通过实施方式特有的方式在装置、功能和标签字段内对16位的路由信息进行编码。如果内部处理器路由需要超过16个位,可以枚举超过一个FAF根总线。例如,如果需要18个位,可以通过与上文描述的相同的机制枚举四个FAF根总线。然后也可以使用8位总线数量中的两个最低有效位对路由信息进行编码。需注意,这种为未发布事务保留并与根联合体相关联的一个或多个FAF根总线可以是用于根联合体的另一根总线标识符的补充,其可以结合发布的请求来使用。
此外,由于事务ID现在包含关于事务发起者的细粒度信息(包括详细的源信息,例如跟踪结构位置),调试和错误处理软件可以更精确地确定事务的源,这对于错误隔离和恢复动作可能是有用的。
使用实施例,替代将固定B/D/F(通常为0/0/0)作为针对内核发起的未发布事务的事务标识符的部分来传送,可以将大范围的装置/功能值用于多个这种请求,其具有受约束的总线值集合(例如,单个或有限量的总线值)。
需注意,在不同实施例中,本文论述的未发布事务的编码可以由硬件、软件和/或固件和/或其组合来实施。在一个特定实施例中,可以在根端口内或者基于PCIe的系统内的根联合体或其它电路内的其它位置实施硬件电路或其它硬件逻辑,以如本文所述地执行未发布事务的编码和解码。
现在参考图4A,示出了根据实施例的用于对未发布事务编码的代表性硬件电路的框图。如所示,编码器电路400可以实施在根端口内并被配置为利用本文所述的编码处理进入的未发布事务。更具体而言,由被配置为从上游代理接收诸如内核发起的事务、对等发起的事务等事务的上游接收器410接收进入的请求。在一些情况下,上游接收器410可以被配置为在各种类型的进入事务之中标识接收到的未发布事务,并根据其是内核发起的请求还是对等发起的请求而相应地引导它。上游接收器410可以经由旁路路径向下游发射器430引导除未发布事务之外的事务(例如,发布的事务)。
对于未发布事务而言,上游接收器410可以分析请求以判断其是内核发起的请求还是对等发起的请求,并相应地向内核发起编码器415或对等编码器420引导所述请求。在各种实施例中,编码器415和420可以被配置为如本文所述地对未发布事务进行编码,以包括所述请求的事务ID内的预定的(保留的)根总线,以使其能够被处理而不用为该事务提供跟踪器结构条目来处理其完成。编码器415和420可以进一步将进入的未发布事务的信息编码到事务ID的装置和功能字段以及标签中的一个或多个(通常两个或更多)中。在实施例中,编码器415和420可以包括逻辑门、组合逻辑和/或其它电路,以实现如以上表1中(例如)的事务标识符的编码。
如进一步所示,编码器415和420耦合到下游发射器430,其可以经由例如根端口向织构或通往其目的地的路径上的其它部件发出事务。尽管图4A的实施例中在该高层级示出,但要理解很多变化和替代是可能的。
现在参见图4B,示出了根据实施例的用于对完成进行解码的代表性硬件电路的框图。如所示,解码器电路450可以实施在根端口内并被配置为利用本文所述的编码处理进入的完成。更具体而言,进入的完成(和其它进入的事务)由被配置为从下游代理接收事务的下游接收器460接收。在一些情况下,下游接收器460可以被配置为在各种类型的进入事务之中标识接收到的完成(针对未发布事务)并在解码器470中对完成的报头解码。在各种实施例中,解码器470可以有效地反转在编码器电路400中应用的编码。更具体而言,在标识完成的事务ID的请求者ID内的保留的根总线ID时,解码器470可以对标签字段和请求者ID的装置和功能字段进行解码,以确定初始未发布请求的源并向该目的地发送请求(即,初始未发布请求的初始源)。通过该方式,适当地处理了完成而未使用根联合体中的跟踪结构。在实施例中,解码器470可以包括逻辑门、组合逻辑和/或其它电路,以实现如以上表1中(例如)的作为完成的部分而接收的事务标识符的解码。
注意,所执行的解码可能导致完成被发送到请求者,在报头中具有请求的初始标识信息(例如,内核ID和内核跟踪器ID信息)。在实施例中,如果是对等引导的完成,完成作为PCIe事务被发送,如果是内核引导的完成,则完成作为本地内核水平响应被发送到内核。如图4B中进一步所示,下游接收器460可以经由旁路路径向上游发射器480引导除完成之外的事务,上游发射器480可以在通往目的地的路径上发送事务。尽管图4B的实施例中在该高层级示出,但要理解很多变化和替代是可能的。
现在参见图5,示出了根据本发明的实施例的方法的流程图。更具体而言,图5可以在诸如图4A的编码器电路400的逻辑中实施。如所示,方法500通过从内核接收根联合体中的未发布请求(框510)而开始。接下来,在框520,从该请求可以确定内核ID和内核跟踪器ID。例如,这种信息可以存在于所接收的请求的报头中。然后,在框530,可以将该内核ID和内核跟踪器ID编码到事务ID的特定字段中。更具体地,如所示,该信息可以被编码到标签字段以及请求者ID的装置和功能字段中。在不同实施方式中,可以使用字段的不同位或部分对源(请求者)信息进行编码。在一些情况下,系统可以为从多种源类型接收的事务(包括内核和对等)提供未发布请求处理。在这种情况下,框530的编码还可以将发起者指示符包括到标签字段以及请求者ID的装置和功能字段中的一个或多个中,以指示所述请求为源自内核或对等。作为示例,这些字段之一的单个位可以被设置在第一值(例如,逻辑1)以标识内核发起的请求,以及设置在第二值(例如,逻辑0)以标识对等发起的请求。在本文的处理要仅应用于内核发起的请求的系统中,该字段可以是任选的(或者不存在)。
仍然进一步参考图5,在框540,可以将预定根总线用于请求者ID的总线字段,即保留的根总线ID。之后,在框550,可以利用该编码的事务ID将未发布请求发送到织构。尽管图5的实施例中在该高层级示出,但要理解很多变化和替代是可能的。
现在参见图6,示出了根据本发明的另一实施例的方法的流程图。如图6所示,方法600可以在诸如图4B的解码器电路450的逻辑中实施。如所示,方法600通过从完成器接收根联合体中的完成(框610)而开始。该完成可以提供例如内核对这种数据的读请求的请求数据。在框620,可以对事务ID解码以确定请求者的身份。需注意,可以在硬件解码逻辑中执行的解码可以利用标签字段以及请求者ID的装置和功能字段中存在的信息,以确定请求者和各种请求者提供的关于请求的信息。因此,在框630,可以基于该解码的事务ID将完成路由到请求者,以使请求者能够将完成与初始请求相关联。尽管图6的实施例中在该高层级示出,但要理解很多变化和替代是可能的。
现在参考图7,示出了根据实施例的系统的高层级框图。更具体而言,系统700可以是包括一个或多个处理器插槽的服务器计算机。如图7中具体所示,部件中的至少一些可以实施在处理器插槽内,而其它部件可以是独立的集成电路或其它部件。然而,为了容易例示未发布事务流处理,图7中未示出关于插槽边界的区分。
假设在给定内核710中产生内核发起的读请求。要理解,该内核可以是任何类型的通用处理器、图形处理器等。作为示例,假设内核710是Intel ArchitectureTM内核,例如,64位内核。如所见,内核710发出没有请求者ID或标签的未发布读请求(和发布的请求),因为这种内核不是PCIe装置。
继而,这种请求在织构720中被接收,织构720可以是CPU织构(例如,PCIe织构)。织构720可以包括被配置为如本文所述地执行未发布事务编码的根联合体或其它电路。这样,CPU织构720可以对事务标识符进行编码以包括如本文所述的即发即弃(FAF)请求者ID和标签,在一些情况下,用于发布的请求或未发布请求两者。这样,在通过包括根端口730(包括内部逻辑735)的其它部件以及从那里向端点750(或直接到集成端点740)发出该事务时,可以使用事务ID的这种FAF请求者ID和标签以使得能够产生完成并发送回CPU织构720。这与常规PCIe处理形成对比,在常规PCIe处理中,CPU织构720会插入其内部功能的请求者ID和标签到事务上(并将用于这种事务的内部跟踪器结构条目关联)。这样,当在织构720中接收到完成时,可以执行解码以使得能够获得初始编码的事务ID并将其用于将所述完成路由回到内核710。
图8是多插槽服务器800的高层级框图,其具有经由单端口互连805耦合在一起的多个插槽8100和8101。此外,每个插槽810与对应根端口8300-8301(包括内部电路8350-8351)、耦合到对应根端口830的集成端点8400-8401以及端点8500-8501相关联。
图8示出了一种实施方式,其中将向端点8500传送来自端点8501的对等发起的请求。当在插槽8101中接收到该对等发起的事务时,内部逻辑将来自所接收的未发布请求的信息编码到FAF请求者ID和标签中,以实现正确处理下游以及对完成的接收,而不在插槽8101的跟踪器储存器中保留条目。这样,未发布事务的该处理与常规PCIe处理不同,其中,在端点8501中产生的初始事务ID与事务保持在一起,直到在根端口总线地址(并非如本文所述的保留的总线地址)将被应用到事务时,其在根端口830中得到处理,以实现适当的处理,包括存储在该接收根端口的跟踪器条目结构中。
一种互连织构架构包括PCIe架构。PCIe的主要目标是使得来自不同供应商的部件和装置能够在跨越多个市场细分、客户端(台式机和移动设备)、服务器(标准和企业)以及嵌入式和通信装置的开放式架构中进行互操作。PCI Express是为各种各样的未来计算和通信平台定义的高性能通用I/O互连。一些PCI属性,例如其使用模型、负载-存储架构和软件接口,已经通过其修订版而得到维持,而先前的并行总线实施方式已经被高度可缩放的完全串行接口替代。PCI Express的更近版本利用了点对点互连、基于开关的技术和分组化协议中的改进的优点,以输送新层级的性能和特征。功率管理、服务质量(QoS)、热插拔/热交换支持、数据完整性、以及错误处理是PCI Express所支持的高级特征中的一些。
参考图9,示出了由将一组部件互连的点对点链路构成的织构的实施例。系统900包括耦合到控制器集线器915的处理器905和系统存储器910。处理器905包括任何处理元件,例如微处理器、主处理器、嵌入式处理器、协处理器或其它处理器。处理器905通过前侧总线(FSB)906耦合到控制器集线器915。在一个实施例中,FSB 906是如下所述的串行点对点互连。在另一个实施例中,链路906包括符合不同互连标准的串行差分互连架构。
系统存储器910包括任何存储器装置,例如随机存取存储器(RAM)、非易失性(NV)存储器或系统900中的装置可以访问的其它存储器。系统存储器910通过存储器接口916耦合到控制器集线器915。存储器接口的示例包括双数据率(DDR)存储器接口、双通道DDR存储器接口和动态RAM(DRAM)存储器接口。
在一个实施例中,控制器集线器915是PCIe互连分级结构中的根集线器、根联合体或根控制器。控制器集线器915的示例包括芯片组、存储器控制器集线器(MCH)、北桥、互连控制器集线器(ICH)、南桥和根控制器/集线器。术语芯片组常常是指两个物理上独立的控制器集线器,即,耦合到互连控制器集线器(ICH)的存储器控制器集线器(MCH)。需注意,当前的系统常常包括与处理器905集成的MCH,而控制器915要以与下文所述类似的方式与I/O装置通信。在一些实施例中,任选地通过根联合体915支持对等路由。根联合体915(和其它电路)可以执行本文所述的基于事务标识符的编码/解码。
在此,控制器集线器915通过串行链路919耦合到交换机/网桥920。又可以被称为接口/端口917和921的输入/输出模块917和921可以包括/实施分层协议栈,以在控制器集线器915和交换机920之间提供通信。在一个实施例中,多个装置能够耦合到交换机920。
交换机/网桥920从装置925向上游(即在分级结构中朝向根联合体向上)向控制器集线器915路由分组/消息,以及向下游(即,在分级结构中向下离开根控制器)从处理器905或系统存储器910到装置925路由分组/消息。在一个实施例中,交换机920被称为多个虚拟PCI到PCI桥装置的逻辑组件。装置925包括要耦合到电子系统的任何内部或外部装置或部件,例如I/O装置、网络接口控制器(NIC)、插入卡、音频处理器、网络处理器、硬盘驱动器、存储装置、CD/DVD ROM、监视器、打印机、鼠标、键盘、路由器、便携式存储装置、Firewire装置、通用串行总线(USB)装置、扫描仪、以及其它输入/输出装置。通常在PCIe行话中,将这种装置称为端点。尽管未具体示出,但装置925可以包括PCIe到PCI/PCI-X桥,以支持旧版或其它版本的PCI装置。PCIe中的端点装置常常被分类为旧版、PCIe或根联合体集成端点。
图形加速器930也通过串行链路932耦合到控制器集线器915。在一个实施例中,图形加速器930耦合到MCH,MCH耦合到ICH。交换机920、以及相应地I/O装置925则耦合到ICH。I/O模块931和918也用于实施分层协议栈以在图形加速器930和控制器集线器915之间通信。图形控制器或图形加速器930自身可以集成在处理器905中。
接下来参考图10,描绘了根据实施例的SoC设计的实施例。作为具体例示性示例,SoC 2000可以被配置为插入从便携式装置到服务器系统的任何类型的计算装置中。在此,SoC 2000包括2个内核——2006和2007。类似于上文所述,内核2006和2007可以符合指令集架构,例如基于Architecture CoreTM的处理器、Advanced Micro Devices,Inc.(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计、或其客户、以及其执照持有者或采用者。内核2006和2007耦合到与总线接口单元2009和L2高速缓存2010相关联的高速缓存控制2008,以与系统2000的其它部分通信。互连2010包括芯片上互连,并可以实施如本文所述的事务标识符编码/解码。
互连2010提供通往其它部件的通信信道,所述部件例如用于与用户身份模块(SIM)卡接口连接的SIM 2030,用于保持启动代码以供内核2006和2007执行以初始化和启动SoC 2000的启动ROM 2035,用于与外部存储器(例如,DRAM 2060)接口连接的SDRAM控制器2040,用于与非易失性存储器(例如,闪存2065)接口连接的闪存控制器2045,用于与外围设备接口连接的外围设备控制器2050(例如,eSPI接口),用于显示和接收输入(例如,触摸启用的输入)的视频编码解码器2020和视频接口2025,用于执行图形相关计算的GPU 2015,等等。这些接口中的任何接口可以并入本文所述的方面。此外,系统例示了用于通信的外围设备,例如蓝牙模块2070、3G调制解调器2075、GPS 2080和WiFi 2085。系统中还包括功率控制器2055。
现在参见图11,示出了根据本发明的实施例的系统的框图。如图11中所示,多处理器系统1500包括经由点对点互连1550耦合的第一处理器1570和第二处理器1580。如图11中所示,处理器1570和1580中的每个可以是多核处理器,包括代表性第一和第二处理器内核(即,处理器内核1574a和1574b以及处理器内核1584a和1584b)。
仍然参考图11,第一处理器1570还包括存储器控制器集线器(MCH)1572和点对点(P-P)接口1576和1578。类似地,第二处理器1580包括MCH 1582和P-P接口1586和1588。如图11中所示,MCH 1572和1582将处理器耦合到相应存储器,即存储器1532和存储器1534,它们可以是本地附接到相应处理器的系统存储器(例如,DRAM)的部分。第一处理器1570和第二处理器1580可以分别经由P-P互连1562和1564耦合到芯片组1590。如图11中所示,芯片组1590包括P-P接口1594和1598。
此外,芯片组1590包括接口1592以通过P-P互连1539将芯片组1590以高性能图形引擎1538耦合。芯片组1590可以并入一个或多个根联合体以执行本文所述的编码/解码,而无需为未发布事务保留跟踪器条目。继而,芯片组1590可以经由接口1596耦合到第一总线1516。如图11中所示,各种输入/输出(I/O)装置1514可以耦合到第一总线1516、连同总线桥1518,其将第一总线1516耦合到第二总线1520。在一个实施例中,各种装置可以耦合到第二总线1520,所述装置例如包括键盘/鼠标1522、通信装置1526和数据存储单元1528,例如磁盘驱动器或可以包括代码1530的其它大容量存储装置。此外,音频I/O 1524可以耦合到第二总线1520。
在一个示例中,一种设备包括:编码器,其从请求者接收未发布事务并将未发布事务的信息编码成具有为未发布事务保留的预定根总线标识符的编码的事务标识符;以及第一发射器,其向织构发送包括编码的事务标识符的未发布事务,以使得未发布事务能够被路由到目的地。
在示例中,所述设备包括根联合体。
在示例中,根联合体用于接收未发布事务和向织构发送未发布事务,而不需要在根联合体中为未发布事务保留跟踪器条目。
在示例中,由基本输入/输出系统保留预定根总线标识符,该预定根总线标识符与根联合体相关联,根联合体进一步与要用于发布的事务的至少第二根总线标识符相关联。
在示例中,设备还包括解码器,以接收针对未发布事务的完成,并对所述完成的事务标识符解码以标识请求者。
在示例中,设备还包括第二发射器,以向请求者发送完成,第二发射器耦合到解码器。
在示例中,编码器将未发布事务的信息的源标识符编码到编码的事务标识符的请求者标识符的装置字段和功能字段以及编码的事务标识符的标签字段中的一个或多个中。
在示例中,编码器将未发布事务的信息的源标识符编码到编码的事务标识符的装置字段的至少一部分中。
在示例中,编码器将未发布事务的信息的源跟踪器标识符编码到编码的事务标识符的标签字段的至少一部分中。
在示例中,编码器在未发布事务是内核发起的请求时利用第一值对编码的事务标识符的第一指示符进行编码,并在未发布事务是对等发起的请求时利用第二值对编码的事务标识符的第一指示符进行编码。
在示例中,编码器接收并编码来自请求者的多个未发布事务的事务标识符,多个未发布事务中的每个在编码的事务标识符中具有不同的装置字段值和不同的功能字段值。
注意,以上设备可以是能够使用各种方法来实施的处理器。在一个示例中,处理器包括被并入用户设备触摸启用装置中的SoC。在另一个示例中,系统包括显示器和存储器,并包括以上示例中的一个或多个的处理器。
在另一个示例中,一种方法包括:从处理器的内核接收根联合体中的未发布请求;将未发布请求的内核标识符和跟踪器标识符编码到事务标识符的装置字段、功能字段和标签字段中的至少两个中;向事务标识符的总线字段应用预定根总线值;以及向织构发送具有事务标识符的未发布请求。
在示例中,该方法还包括接收未发布请求并向织构发送未发布请求,而不需要在根联合体中为未发布请求保留跟踪器条目。
在示例中,该方法还包括为与根联合体相关联的未发布请求保留预定根总线值,根联合体进一步与要用于发布的事务的至少第二根总线标识符相关联。
在示例中,该方法还包括接收并编码来自请求者的多个未发布请求,编码的多个未发布请求中的每个具有不同的装置字段值和不同的功能字段值。
在示例中,该方法还包括接收针对未发布请求的完成并对所述完成的事务标识符进行解码以标识请求者并向请求者发送所述完成。
在示例中,该方法还包括将对等发起的未发布请求的源标识符和源跟踪器标识符编码到事务标识符的装置字段、功能字段和标签字段中的至少两个中。
在另一个示例中,一种包括指令的计算机可读介质用于执行以上示例中的任何示例的方法。
在另一个示例中,一种包括数据的计算机可读介质用于由至少一个机器使用以制造至少一个集成电路,来执行以上示例中的任一个的方法。
在另一个示例中,一种系统包括处理器,处理器又包括:执行指令的内核;将内核接口连接到织构的根联合体,根联合体包括:编码器,其用于从内核接收未发布事务并将未发布事务的信息编码成具有为未发布事务保留的预定根总线标识符的编码的事务标识符;第一发射器,其向织构发送包括编码的事务标识符的未发布事务;以及解码器,其接收针对未发布事务的完成并对所述完成的事务标识符进行解码以标识请求者;以及织构,所述织构接收包括编码的事务标识符的未发布事务并将其路由到目的地。该系统还包括耦合到处理器的一个或多个端点。
在示例中,根联合体用于接收未发布事务并向织构发送未发布事务,而不需要在根联合体中为未发布事务保留跟踪器条目,所述根联合体不包括跟踪器结构。
在示例中,由基本输入/输出系统保留预定根总线标识符,所述预定根总线标识符与根联合体相关联,所述根联合体进一步与要用于发布的事务的至少第二根总线标识符相关联。
在另一个示例中,一种设备包括:用于将从请求者接收的未发布事务的信息编码成具有为未发布事务保留的预定根总线标识符的编码的事务标识符的模块;以及用于向织构发射包括编码的事务标识符的未发布事务以使得未发布事务能够被路由到目的地的模块。
在示例中,该设备包括根联合体。
在示例中,根联合体用于接收未发布事务并向织构发送未发布事务,而不需要在根联合体中为未发布事务保留跟踪器条目。
可以在很多不同类型的系统中使用实施例。例如,在一个实施例中,通信装置可以被布置为执行本文所述的各种方法和技术。当然,本发明的范围不限于通信装置,相反,其它实施例可以涉及其它类型的用于处理指令的设备,或包括指令的一种或多种机器可读介质,所述指令响应于在计算装置上被执行而使得装置执行本文描述的方法和技术的一种或多种。
实施例可以以代码形式实施并可以存储在非暂态存储介质上,其上存储有指令,所述非暂态存储介质可以用于对系统编程以执行指令。实施例还可以以数据形式实施,并可以存储在非暂态存储介质上,所述非暂态存储介质如果被至少一个机器使用,使得至少一个机器制造至少一个集成电路以执行一个或多个操作。其它实施例可以实施在包括信息的计算机可读存储介质中,所述介质在被制造到SoC或其它处理器中时,用于将SoC或其它处理器配置为执行一个或多个操作。存储介质可以包括但不限于:任何类型的磁盘,包括软盘、光盘、固态驱动器(SSD)、压缩磁盘只读存储器(CD-ROM)、可重写压缩磁盘(CD-RW)和磁光盘;半导体器件,例如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪速存储器、电可擦可编程只读存储器(EEPROM)、磁卡或光卡;或任何其它类型的适合存储电子指令的介质。
尽管已经相对于有限数量的实施例描述了本发明,但本领域的技术人员将认识到其众多修改和变化。所附权利要求旨在覆盖落在本发明的真实精神和范围内的所有这种修改和变化。
Claims (25)
1.一种设备,包括:
编码器,其从请求者接收未发布事务并将所述未发布事务的信息编码成具有为所述未发布事务保留的预定根总线标识符的编码的事务标识符;以及
第一发射器,其向织构发送包括所述编码的事务标识符的所述未发布事务,以使得所述未发布事务能够被路由到目的地。
2.根据权利要求1所述的设备,其中,所述设备包括根联合体。
3.根据权利要求2所述的设备,其中,所述根联合体用于接收所述未发布事务并向所述织构发送所述未发布事务,而不需要在所述根联合体中为所述未发布事务保留跟踪器条目。
4.根据权利要求2所述的设备,其中,由基本输入/输出系统保留所述预定根总线标识符,所述预定根总线标识符与所述根联合体相关联,所述根联合体进一步与要用于发布的事务的至少第二根总线标识符相关联。
5.根据权利要求1所述的设备,还包括解码器,所述解码器接收针对所述未发布事务的完成,并对所述完成的事务标识符进行解码以标识所述请求者。
6.根据权利要求5所述的设备,还包括第二发射器,所述第二发射器向所述请求者发送所述完成,所述第二发射器耦合到所述解码器。
7.根据权利要求1所述的设备,其中,所述编码器用于将所述未发布事务的所述信息的源标识符编码到所述编码的事务标识符的请求者标识符的装置字段和功能字段以及所述编码的事务标识符的标签字段中的一个或多个中。
8.根据权利要求7所述的设备,其中,所述编码器用于将所述未发布事务的所述信息的所述源标识符编码到所述编码的事务标识符的所述装置字段的至少一部分中。
9.根据权利要求7所述的设备,其中,所述编码器用于将所述未发布事务的所述信息的源跟踪器标识符编码到所述编码的事务标识符的所述标签字段的至少一部分中。
10.根据权利要求7所述的设备,其中,所述编码器用于在所述未发布事务是内核发起的请求时利用第一值对所述编码的事务标识符的第一指示符进行编码,并且在所述未发布事务是对等发起的请求时利用第二值对所述编码的事务标识符的所述第一指示符进行编码。
11.根据权利要求7所述的设备,其中,所述编码器用于接收并编码来自所述请求者的多个未发布事务的事务标识符,所述多个未发布事务中的每个在所述编码的事务标识符中具有不同的装置字段值和不同的功能字段值。
12.一种方法,包括:
从处理器的内核接收根联合体中的未发布请求;
将所述未发布请求的内核标识符和跟踪器标识符编码到事务标识符的装置字段、功能字段和标签字段中的至少两个中;
向所述事务标识符的总线字段应用预定根总线值;以及
向织构发送具有所述事务标识符的所述未发布请求。
13.根据权利要求12所述的方法,还包括接收所述未发布请求并向所述织构发送所述未发布请求,而不需要在所述根联合体中为所述未发布请求保留跟踪器条目。
14.根据权利要求12所述的方法,还包括为与所述根联合体相关联的未发布请求保留所述预定根总线值,所述根联合体进一步与要用于发布的事务的至少第二根总线标识符相关联。
15.根据权利要求12所述的方法,还包括接收并编码来自所述请求者的多个未发布请求,编码的所述多个未发布请求中的每个具有不同的装置字段值和不同的功能字段值。
16.根据权利要求12所述的方法,还包括接收针对所述未发布请求的完成并对所述完成的事务标识符进行解码以标识所述请求者并向所述请求者发送所述完成。
17.根据权利要求12所述的方法,还包括将对等发起的未发布请求的源标识符和源跟踪器标识符编码到事务标识符的装置字段、功能字段和标签字段中的至少两个中。
18.一种包括计算机可读指令的计算机可读存储介质,所述计算机可读指令在被执行时,用于实施根据权利要求12到17中的任一项所述的方法。
19.一种设备,包括用于执行根据权利要求12到17中的任一项所述的方法的模块。
20.一种系统,包括:
处理器,所述处理器包括:
用于执行指令的内核;
用于将所述内核与织构接口连接的根联合体,所述根联合体包括:
编码器,其从所述内核接收未发布事务并将所述未发布事务的信息编码成具有为未发布事务保留的预定根总线标识符的编码的事务标识符;
第一发射器,其向所述织构发送包括所述编码的事务标识符的所述未发布事务;
解码器,其接收针对所述未发布事务的完成,并对所述完成的事务标识符进行解码以标识所述请求者;以及
所述织构,其接收包括所述编码的事务标识符的所述未发布事务并将所述未发布事务路由到目的地;以及
耦合到所述处理器的一个或多个端点。
21.根据权利要求20所述的系统,其中,所述根联合体用于接收所述未发布事务并向所述织构发送所述未发布事务,而不需要在所述根联合体中为所述未发布事务保留跟踪器条目,所述根联合体不包括跟踪器结构。
22.根据权利要求20所述的系统,其中,由基本输入/输出系统保留所述预定根总线标识符,所述预定根总线标识符与所述根联合体相关联,所述根联合体进一步与要用于发布的事务的至少第二根总线标识符相关联。
23.一种设备,包括:
用于将从请求者接收的未发布事务的信息编码成具有为未发布事务保留的预定根总线标识符的编码的事务标识符的模块;以及
用于向织构发射包括所述编码的事务标识符的所述未发布事务,以使得所述未发布事务能够被路由到目的地的模块。
24.根据权利要求23所述的设备,其中,所述设备包括根联合体。
25.根据权利要求23所述的设备,其中,所述根联合体用于接收所述未发布事务并向所述织构发送所述未发布事务,而不需要在所述根联合体中为所述未发布事务保留跟踪器条目。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/070,146 US20170269959A1 (en) | 2016-03-15 | 2016-03-15 | Method, apparatus and system to send transactions without tracking |
US15/070,146 | 2016-03-15 | ||
PCT/US2017/014047 WO2017160397A1 (en) | 2016-03-15 | 2017-01-19 | A method, apparatus and system to send transactions without tracking |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108701052A true CN108701052A (zh) | 2018-10-23 |
Family
ID=59847051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780011502.6A Pending CN108701052A (zh) | 2016-03-15 | 2017-01-19 | 发送事务而不跟踪的方法、设备和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170269959A1 (zh) |
CN (1) | CN108701052A (zh) |
DE (1) | DE112017001367T5 (zh) |
WO (1) | WO2017160397A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110880998A (zh) * | 2019-12-03 | 2020-03-13 | 锐捷网络股份有限公司 | 一种基于可编程器件的报文传输方法及装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11029749B2 (en) * | 2016-04-01 | 2021-06-08 | Platina Systems Corp. | Modular chassis with fabric integrated into the line card |
US11042496B1 (en) * | 2016-08-17 | 2021-06-22 | Amazon Technologies, Inc. | Peer-to-peer PCI topology |
US10956832B2 (en) | 2018-06-22 | 2021-03-23 | Platina Systems Corporation | Training a data center hardware instance network |
US20200409844A1 (en) * | 2019-06-26 | 2020-12-31 | Intel Corporation | Asynchronous cache flush engine to manage platform coherent and memory side caches |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7752346B2 (en) * | 2007-12-21 | 2010-07-06 | Aprius, Inc. | Universal routing in PCI-Express fabrics |
CN102254246A (zh) * | 2011-06-17 | 2011-11-23 | 中国建设银行股份有限公司 | 一种工作流管理方法及其系统 |
CN103198045A (zh) * | 2011-11-14 | 2013-07-10 | 索尼公司 | 时钟门控电路和总线系统 |
CN103226481A (zh) * | 2012-01-27 | 2013-07-31 | 辉达公司 | 自动从属任务启动 |
US8543754B2 (en) * | 2011-02-25 | 2013-09-24 | International Business Machines Corporation | Low latency precedence ordering in a PCI express multiple root I/O virtualization environment |
CN104081722A (zh) * | 2012-01-13 | 2014-10-01 | 英特尔公司 | SoC构造中的高效对等通信支持 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7836211B2 (en) * | 2003-01-21 | 2010-11-16 | Emulex Design And Manufacturing Corporation | Shared input/output load-store architecture |
US7296101B2 (en) * | 2004-02-17 | 2007-11-13 | Intel Corporation | Method and system for using a patch module to process non-posted request cycles and to control completions returned to requesting device |
US8516165B2 (en) * | 2005-10-19 | 2013-08-20 | Nvidia Corporation | System and method for encoding packet header to enable higher bandwidth efficiency across bus links |
US20110246686A1 (en) * | 2010-04-01 | 2011-10-06 | Cavanagh Jr Edward T | Apparatus and system having pci root port and direct memory access device functionality |
US20140237156A1 (en) * | 2012-10-25 | 2014-08-21 | Plx Technology, Inc. | Multi-path id routing in a pcie express fabric environment |
-
2016
- 2016-03-15 US US15/070,146 patent/US20170269959A1/en not_active Abandoned
-
2017
- 2017-01-19 DE DE112017001367.4T patent/DE112017001367T5/de active Pending
- 2017-01-19 CN CN201780011502.6A patent/CN108701052A/zh active Pending
- 2017-01-19 WO PCT/US2017/014047 patent/WO2017160397A1/en active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7752346B2 (en) * | 2007-12-21 | 2010-07-06 | Aprius, Inc. | Universal routing in PCI-Express fabrics |
US8543754B2 (en) * | 2011-02-25 | 2013-09-24 | International Business Machines Corporation | Low latency precedence ordering in a PCI express multiple root I/O virtualization environment |
CN103392175A (zh) * | 2011-02-25 | 2013-11-13 | 国际商业机器公司 | Pci快速多根i/o虚拟化环境中的低延迟优先排序 |
CN102254246A (zh) * | 2011-06-17 | 2011-11-23 | 中国建设银行股份有限公司 | 一种工作流管理方法及其系统 |
CN103198045A (zh) * | 2011-11-14 | 2013-07-10 | 索尼公司 | 时钟门控电路和总线系统 |
CN104081722A (zh) * | 2012-01-13 | 2014-10-01 | 英特尔公司 | SoC构造中的高效对等通信支持 |
CN103226481A (zh) * | 2012-01-27 | 2013-07-31 | 辉达公司 | 自动从属任务启动 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110880998A (zh) * | 2019-12-03 | 2020-03-13 | 锐捷网络股份有限公司 | 一种基于可编程器件的报文传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20170269959A1 (en) | 2017-09-21 |
DE112017001367T5 (de) | 2018-11-29 |
WO2017160397A1 (en) | 2017-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108701052A (zh) | 发送事务而不跟踪的方法、设备和系统 | |
CN110262923B (zh) | 带内重定时器寄存器访问 | |
CN105593830B (zh) | 用于测量电路的物理单元中的等待时间的方法、装置和系统 | |
US20200019522A1 (en) | Integrated component interconnect | |
TWI570565B (zh) | 池式記憶體位址轉譯之技術 | |
TWI610174B (zh) | 計算裝置及計算系統 | |
KR101642086B1 (ko) | 고성능 인터커넥트 링크 계층 | |
JP6311174B2 (ja) | 共有メモリ、およびノード間のi/oサービス | |
CN110036380A (zh) | 用于高速互连中低延迟的双模phy | |
CN104823167B (zh) | 现场错误恢复 | |
CN108052466B (zh) | Pci快速增强 | |
CN105793715B (zh) | 互连重定时器增强 | |
US20190004990A1 (en) | Techniques to support mulitple interconnect protocols for an interconnect | |
CN108604209B (zh) | 扁平化端口桥 | |
TWI556094B (zh) | 用以控制鏈結介面之未使用硬體的電力消耗之方法、設備及系統 | |
CN117336381A (zh) | 多个上行链路端口设备 | |
JP2017504089A5 (zh) | ||
CN105378694A (zh) | 用于执行与通用串行总线(usb)装置的管理组件传输协议(mctp)通信的方法、设备和系统 | |
CN109844725A (zh) | 点对点互连中的非对称通道 | |
CN107005492B (zh) | 用于芯片上网络上的多播和缩减通信的系统 | |
TW202121879A (zh) | 透過虛擬匯流排編碼傳播遙測資訊的系統、設備及方法 | |
JP5479710B2 (ja) | データを処理するためのプロセッサ‐サーバ・ハイブリッド・システムおよび方法 | |
US20240111694A1 (en) | Node identification allocation in a multi-tile system with multiple derivatives |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |