Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.


  1. Advanced Patent Search
Publication numberCN100357922 C
Publication typeGrant
Application numberCN 02816581
PCT numberPCT/US2002/026933
Publication date26 Dec 2007
Filing date23 Aug 2002
Priority date24 Aug 2001
Also published asCN1547704A, CN1547705A, CN1547823A, CN100367254C, CN100409606C, DE60213616D1, DE60213616T2, DE60222782D1, DE60226627D1, EP1419446A1, EP1419446B1, EP1421501A1, EP1421501B1, EP1442548A2, EP1442548B1, US7152128, US7231486, US7353313, US7536473, US8566473, US8819306, US9049125, US9071528, US9088495, US9565106, US9602408, US9736071, US20030115380, US20030145134, US20030158992, US20070038793, US20090193164, US20130117474, US20130254451, US20130254452, US20130268712, US20140129747, US20140185436, US20140189174, US20150178241, WO2003019391A2, WO2003019391A3, WO2003019393A1, WO2003019394A1
Publication number02816581.0, CN 02816581, CN 100357922 C, CN 100357922C, CN-C-100357922, CN02816581, CN02816581.0, CN100357922 C, CN100357922C, PCT/2002/26933, PCT/US/2/026933, PCT/US/2/26933, PCT/US/2002/026933, PCT/US/2002/26933, PCT/US2/026933, PCT/US2/26933, PCT/US2002/026933, PCT/US2002/26933, PCT/US2002026933, PCT/US200226933, PCT/US2026933, PCT/US226933
Inventors贾斯明·阿亚诺维奇, 戴维·J·哈里曼, 布莱兹·范宁, 戴维·M·李
Export CitationBiBTeX, EndNote, RefMan
External Links: SIPO, Espacenet
A general input/output architecture, protocol and related methods to implement flow control
CN 100357922 C
Abstract  translated from Chinese
本发明公开了用于实现流控制的方法和用于实现流控制的通用输入/输出接口。 The present invention discloses a method for achieving flow control and flow control for implementing the general-purpose input / output interface. 该方法包括:在初始化虚拟信道时,初始化与虚拟信道相关联的发送设备的通用输入/输出接口内的流控制机制;以及发送设备通过流控制机制通过监视由发送设备维护并与从发送设备的通用输入/输出接口发送到接收设备的通用输入/输出接口的内容的数量相关联的指示,跟踪具有经由虚拟信道耦合到发送设备的通用输入/输出接口的通用输入/输出接口的接收设备中的缓冲器可用性;其中缓冲器与虚拟信道相关联,虚拟信道是发送设备的通用输入/输出接口与接收设备的通用输入/输出接口之间的通用输入/输出链路上的总可用带宽的一个被动态分配的子集。 The method comprising: in the initialization of virtual channels, the flow control mechanism common input transmission device initialization associated with the virtual channel associated / output interface therein; and a transmission apparatus through a flow control mechanism is maintained by the transmitting device and with the transmission device by monitoring general-purpose input / output transmit interface to indicate the associated universal input receiving device / output interface quantity of content, tracking with coupling via the virtual channel to transmit the device's generic input / output interface, general-purpose input / output interface of the receiving device buffer availability; which buffers associated with the virtual channel, virtual channel is a total available bandwidth Universal Input Universal Input devices transmit / receive common input and output interfaces and device I / O interface between the I / O link is dynamically allocated subset.
Claims(25)  translated from Chinese
1.一种用于实现流控制的方法,包括:在初始化虚拟信道时,初始化与所述虚拟信道相关联的发送设备的通用输入/输出接口内的流控制机制;以及所述发送设备通过所述流控制机制通过监视由所述发送设备维护并与从所述发送设备的通用输入/输出接口发送到所述接收设备的通用输入/输出接口的内容的数量相关联的指示,跟踪具有经由所述虚拟信道耦合到所述发送设备的通用输入/输出接口的通用输入/输出接口的接收设备中的缓冲器可用性;其中所述缓冲器与所述虚拟信道相关联,所述虚拟信道是所述发送设备的通用输入/输出接口与所述接收设备的通用输入/输出接口之间的通用输入/输出链路上的总可用带宽的一个被动态分配的子集。 1. A method for implementing flow control, comprising: virtual channel during initialization, the initialization of the transmission device universal input with the virtual channel associated with the I / O interface within the flow control mechanism; and said transmission device via the flow control mechanism described by monitoring and maintenance by the sending device and the transmission equipment from general-purpose input / output interface sending and receiving devices general purpose input / output interfaces, the number of instructions associated to the track with a via the described virtual channel universal input coupled to the transmitting device universal input / output interface / receiving device output interface of the buffer availability; wherein the buffer and the associated virtual channel, the virtual channel is a A total available bandwidth to send a universal input device universal input / output interface of the receiving device universal input / output interface between the I / O link is a subset of the dynamic allocation.
2.如权利要求1所述的方法,还包括:当所述发送设备的通用输入/输出接口确定所述接收设备中的缓冲器可用性已经达到阈值时,有选择地中止通过所述虚拟信道向所述接收设备的通用输入/输出接口发送内容。 2. The method of claim 1, further comprising: when the transmitting apparatus general purpose input / output interface of the receiving apparatus determines the availability of a buffer threshold has been reached, selectively aborted by the virtual channel to The receiving device universal input / output interface to send content.
3.如权利要求2所述的方法,其中所述阈值被设置为防止缓冲器溢出的情况。 3. The method according to claim, wherein the threshold is set to prevent buffer overflow.
4.如权利要求2所述的方法,还包括:当所述发送设备的通用输入/输出接口从所述接收设备的通用输入/输出接口接收了缓冲器可用性的指示后,恢复通过所述虚拟信道发送内容。 4. The method of claim 2, further comprising: when the transmitting apparatus general purpose input / output interface to receive an indication of the availability of the buffer of the receiving apparatus from a general purpose input / output interface, restored by the virtual channel transmission content.
5.如权利要求4所述的方法,其中所述所接收的指示是更新流控制分组。 5. The method of claim 4, wherein the received indication is an update flow control packet.
6.如权利要求2所述的方法,还包括:经过一段时间后,恢复通过所述虚拟信道发送内容。 6. The method of claim 2, further comprising: after some time, resume sending content through the virtual channel.
7.如权利要求1所述的方法,初始化所述流控制机制的步骤包括:从所述接收设备的通用输入/输出接口接收多个信用的指示,其中分配所述多个信用用于从所述发送设备向所述接收设备的通用输入/输出接口的发送,并且信用与内容的数量相关联。 7. The method of claim 1, wherein the step of initializing the flow control mechanism comprising: receiving from the universal input device / output interface for receiving a plurality of indications of credit, wherein said plurality of credit for distribution from the said transmission device output interface to send to the receiving device universal input /, and the number of credit associated with the content.
8.如权利要求7所述的方法,所述初始化步骤还包括:在所述发送设备的通用输入/输出接口中建立信用消耗缓冲器和信用极限缓冲器的一个或多个,其中所述信用极限缓冲器具有由所述接收设备的通用输入/输出接口分配的信用的指示。 Wherein said establishing credit consumed buffer and a credit limit buffer credit at one or more of the transmitting device universal input / output interface, a: 8. The method of claim 7, wherein the initialization step further comprises Limit buffer having a receiving device by the general-purpose input / output interfaces credit allocation instructions.
9.如权利要求8所述的方法,还包括:确定从所述发送设备的通用输入/输出接口到所述接收设备的通用输入/输出接口对内容进行的预期发送所要消耗的多个信用;以及如果当被加到所述信用消耗缓冲器时,所确定的将被所述预期发送消耗的多个信用不超过所述信用极限缓冲器中分配的信用的指示,则有选择地发送所述内容到所述接收设备的通用输入/输出接口。 9. The method of claim 8, further comprising: determining an interface of the transmission device from a general purpose input / output to a plurality of said receiving apparatus credit general purpose input / output interface is expected to transmit the content to be consumed; When and if the credit consumed buffer is added, will be determined by the expected transmitting the plurality of credit consumption does not exceed the credit limit buffer credit allocation indication, then selectively send the content to the receiving device of general purpose input / output interface.
10.如权利要求9所述的方法,还包括:如果所述发送生效,则利用所述发送消耗的信用的指示来更新所述信用消耗缓冲器。 10. The method of claim 9, further comprising: if the transmitter is in effect, the use of the consumed credit indication sent to update the credit consumed buffer.
11.如权利要求9所述的方法,还包括:如果确定将被所述预期发送消耗的信用会使所述信用消耗缓冲器超过所述信用极限缓冲器所允许的,则中止所述内容的发送。 11. The method of claim 9, further comprising: if it is determined to be the expected depletion of credit will transmit the credit consumed buffer exceeds the credit limit buffer is allowed, then the content of the suspension Send.
12.如权利要求11所述的方法,还包括:从所述接收设备的通用输入/输出接口接收指明信用可用性的指示。 12. The method of claim 11, further comprising: indicating that the receiving device's generic input / output interface to receive from the indicated credit availability.
13.如权利要求12所述的方法,还包括:更新所述发送设备的通用输入/输出接口中的所述信用消耗寄存器,以反映在从所述接收设备的通用输入/输出接口接收的指示中指明的所述信用可用性。 13. A method as claimed in claim 12, further comprising: updating the transmit universal input device I / O interface in the credit consumed register to reflect the instructions from the receiving device universal input / output interface received specified in the credit availability.
14.一种发送设备中的通用输入/输出接口,包括:用于在所述通用输入/输出接口和接收设备的远程通用输入/输出接口之间的虚拟信道初始化时动态地建立流控制机制,以监视所述接收设备中的缓冲器是否能够用于接收从所述通用输入/输出接口发送到所述远程通用输入/输出接口的内容的装置;以及用于如果所述发送设备确定进一步的发送将在所述缓冲器引起溢出情况,则中止所述进一步的发送的装置;其中所述缓冲器与所述虚拟信道相关联,所述虚拟信道是所述发送设备的通用输入/输出接口与所述接收设备的通用输入/输出接口之间的通用输入/输出链路上的总可用带宽的一个被动态分配的子集。 14. A transmission device universal input / output interface, comprising: means for remote virtual channel universal input of the general-purpose input / output interface and receiving devices / output interface between the initialization dynamically establish flow control mechanism to monitor the receiving apparatus is able to receive buffer sent from the general-purpose input / output interface to the remote device content general purpose input / output interface; and means for further determining if the transmission of the transmission device will cause a buffer overflow in the case, the suspension of said further transmitting means; and wherein said buffer and associated with the virtual channel, the virtual channel is the transmitting device's generic input / output interface with the A total available bandwidth of a universal input device of said receiving general purpose input / output interface between the I / O link is a subset of the dynamic allocation.
15.如权利要求14所述的通用输入/输出接口,其中所述发送装置中的流控制机制被初始化,并且所述流控制机制与在所述通用输入/输出接口和所述远程通用输入/输出接口之间的所述通用输入/输出接口中建立的多个虚拟信道中的每个都相关联。 15. The universal input 14 / output interface of claim, wherein the transmitting device flow control mechanism is initialized, and the flow control mechanism of the general-purpose input / output interface and the remote in the general-purpose input / The output interface between the general-purpose input / output interface to establish a plurality of virtual channels associated with each.
16.如权利要求15所述的通用输入/输出接口,其中中止在多个虚拟信道中的任何一个中的发送不影响任何其他已建立的虚拟信道上的发送。 16. The universal input to claim 15, wherein / output interface, wherein the suspension of any one of the plurality of virtual channels does not affect transmission of the transmission to any other established virtual channels.
17.如权利要求16所述的通用输入/输出接口,还包括:信用极限缓冲器,具有从所述远程通用输入/输出接口接收到的值,所述值指明了在所述虚拟信道的初始化过程中分配给所述虚拟信道的流控制信用的数目。 17. as claimed in claim 16 general-purpose input / output interfaces, including: credit limit buffer has received from the remote general-purpose input / output interface to the value, the value indicates the initialization of the virtual channel The number of the virtual channel flow control credits allocated to the process.
18.如权利要求17所述的通用输入/输出接口,还包括:信用消耗缓冲器,用于维护与被发送到所述远程通用输入/输出接口的内容的数量相关联的值。 18. The claim 17 of the general-purpose input / output interfaces, further comprising: a credits consumed buffer, to maintain the value of the number associated with the content to be transmitted to the remote general input / output interface of.
19.如权利要求18所述的通用输入/输出接口,还包括:用于通过将预期发送消耗的流控制信用加入所述信用消耗缓冲器以识别所述预期发送是否将引起所述信用消耗缓冲器超过与所述信用极限缓冲器相关联的阈值,来确定所述远程通用输入/输出接口是否可以接收内容的所述预期发送的装置。 19. The claim 18 of the general-purpose input / output interfaces, further comprising: means for transmitting by the expected consumption of flow control credit is added to the credit consumed buffer to identify whether the expected transmission would cause the credits consumed buffer devices exceeds the threshold value of the credit limit buffer is associated with means to determine whether the expected transmission of the remote general input / output interface can receive content.
20.如权利要求18所述的通用输入/输出接口,还包括:用于如果所述信用消耗缓冲器达到与所述信用极限缓冲器相关联的所述阈值,则中止沿着所述虚拟信道的进一步的发送的装置。 20. The input 18 of the universal / output interface according to claim, further comprising: means for, if the credit consumed buffer reaches the threshold value with the credit limit buffer is associated, along the suspension of the virtual channel The apparatus further transmitted.
21.如权利要求20所述的通用输入/输出接口,其中与所述信用极限缓冲器相关联的阈值是由所述信用极限缓冲器指明的多个信用。 21. 20 The universal input / output interface of claim, the threshold where the credit limit of the buffer associated with a plurality of credit by the credit limit specified buffer.
22.如权利要求20所述的通用输入/输出接口,还包括:用于当接收了指明所述远程通用输入/输出接口准备好接收另外的发送的更新消息后,恢复沿着所述虚拟信道的发送的装置。 22. 20 The universal input / output interface of claim, further comprising: receiving a specified later used when the remote general-purpose input / output interface is ready to receive another update messages sent along the virtual channel restoration The device transmits.
23.如权利要求22所述的通用输入/输出接口,其中所述更新消息包括所述接收缓冲器的信用可用性的指示,并且还包括用于利用所述更新消息的信用可用性的指示来更新所述信用消耗缓冲器的装置。 23. The input 22 of the universal / output interface as claimed in claim wherein the update message comprises the reception buffer credit indication of availability, and further comprising means for utilizing the indication of credit availability of the update message to update said credit consuming device buffer.
24.一种电子组件,适于用于电子设备中,包括如权利要求14所述的通用输入/输出接口。 24. An electronic component, suitable for use in an electronic device, including general-purpose input as claimed in claim 14 / output interface.
25.一种电子装置,包括多个如权利要求24所述的电子组件。 25. An electronic device comprising a plurality of electronic components 24 of the Claim.
Description  translated from Chinese
用于实现流控制的方法和通用输入/输出接口 The method used to implement flow control and general-purpose input / output interface

技术领域 FIELD

本发明一般地涉及通用输入/输出(GIO)总线体系结构领域,更具体地说,本发明涉及一种体系结构、协议以及相关的方法,用来在GIO总线体系结构中的元件之间实现流控制。 The present invention generally relates to general-purpose input / output (GIO) bus architecture field, and more particularly, the present invention relates to an architecture, protocol and related methods, is used to realize the flow between the GIO bus architectures elements control.


计算装置例如计算机系统、服务器、网络交换机和路由器、无线通信设备以及其它电子设备一般由许多电子组件或元件组成。 Computing devices such as computer systems, servers, network switches and routers, wireless communication devices and other electronic equipment typically consists of a number of electronic components or elements. 这些元件通常包括处理器、微控制器或其它控制逻辑、存储器系统、(多个)输入和输出接口、外围元件等。 These elements generally include a processor, microcontroller or other control logic, memory system (s) of input and output interfaces, and other external components. 为了便于在这些元件之间的通信,计算装置长期依赖于通用输入/输出(GIO)总线体系结构,以使得该计算装置的这些根本不同的元件能够互相通信来支持由这样的装置提供的种种应用。 To facilitate communication between such elements, computing devices rely on the general-purpose input / output (GIO) bus architecture to enable these disparate elements of the computing device can communicate with each other to support a variety of applications by such means .

这种传统的GIO总线体系结构最普遍的一种形式或许就是外围组件互连或PCI总线体系结构。 Such a form of traditional GIO bus architecture is perhaps the most common Peripheral Component Interconnect, or PCI bus architecture. PCI总线标准(1998年12月18日发布的外围组件互连(PCI)局域总线规范,修订版2.2)规定了多接点式(multi-drop)、并行总线体系结构,用于在计算装置中以仲裁的方式来互连芯片、扩充板以及处理器/存储器子系统。 Standard PCI bus (Peripheral Component Interconnect December 18, 1998 release (PCI) Local Bus Specification, Revision 2.2) provides a multi-contact type (multi-drop), parallel bus architecture used in a computing device by means of arbitration to interconnect chips, expansion boards, and processor / memory subsystem. 为了本发明的目的,PCI局域总线标准的内容在这里作为参考而被明确地引用。 For purposes of the present invention, the content of the PCI local bus standard is herein expressly incorporated by reference.

传统的PCI总线实现具有133兆字节每秒的吞吐量(即,33兆赫兹32字节),而PCI 2.2标准允许每个管脚64字节的并行连接,时钟达到133MHz,从而产生超过1GBps的理论吞吐量。 Conventional PCI bus has 133 megabytes per second to achieve throughput (ie, 33 MHz to 32 bytes), and PCI 2.2 standard allows 64 concurrent connections per pin byte clock reaches 133MHz, resulting in more than 1GBps The theoretical throughput. 在这方面,由这样的传统多接点式PCI总线体系结构提供的吞吐量到目前为止已经提供了足够的带宽来适应即使是最先进的计算装置(例如,多处理器服务器应用、网络装置等)的内部通信需要。 In this regard, provided by such conventional multi-drop PCI bus architectures formula throughput so far has provided a sufficient bandwidth to accommodate even the most advanced of computing device (e.g., multiprocessor server applications, network devices, etc.) internal communication needs. 然而,联系到宽带因特网访问的广泛应用,处理能力的新近进展将处理速度超过了1GHz的阈值,诸如PCI总线体系结构的传统GIO体系结构已经变成这样的计算装置中的瓶颈。 However, linked to the broadband Internet access to a wide range of applications, recent progress in the processing capability of the processing speed exceeds the threshold of 1GHz, conventional GIO architectures such as the PCI bus architecture have become such a computing device bottlenecks.

通常与传统GIO体系结构联系在一起的另一个限制是,它们通常不能很好的适宜于操作/处理同步(或者说时间相关)数据流。 Usually associated with conventional GIO architectures together Another limitation is that they generally are not well suitable for the operation / processing synchronization (or time dependent) data streams. 这样的同步数据流的一个例子是多媒体数据流,该多媒体数据流需要同步传输机制来确保接收数据与使用数据同速,并且音频部分与视频部分同步。 An example of such a synchronous data stream is multimedia data streams, the multimedia data streams need to be synchronized to ensure the transport mechanism used to receive data and data at the same speed, and the audio portion is synchronized with the video portion.

传统的GIO体系结构异步处理数据,或以带宽允许的随机时间间隔处理数据。 Conventional GIO architectures process data asynchronously, or in random intervals bandwidth allows processing data. 这种同步数据的异步处理可能导致音频与视频的不重合,作为结果,某些同步多媒体内容供应商制定了使某些数据优先于其它数据的规则,例如使音频数据优先于视频数据,从而最终用户至少接收相对稳定的音频流(即,不被打断),使得他们可以欣赏或了解正在被流式播放的歌曲、故事等等。 Such asynchronous processing of isochronous data can result in audio and video do not coincide, as a result, some of the synchronized multimedia content providers developed so that some of the data in preference to other data in the rules, for example audio data in preference to the video data, so that the final Users receive at least relatively stable audio stream (ie, will not be interrupted) so that they can appreciate or understand being streaming songs, stories and more.


为了解决现有技术中存在的问题而作出本发明。 In order to solve the problems of the prior art made in the present invention.

本发明的第一方面提供了一种用于实现流控制的方法,包括:在初始化虚拟信道时,初始化与所述虚拟信道相关联的发送设备的通用输入/输出接口内的流控制机制;以及所述发送设备通过所述流控制机制通过监视由所述发送设备维护并与从所述发送设备的通用输入/输出接口发送到所述接收设备的通用输入/输出接口的内容的数量相关联的指示,跟踪具有经由所述虚拟信道耦合到所述发送设备的通用输入/输出接口的通用输入/输出接口的接收设备中的缓冲器可用性;其中所述缓冲器与所述虚拟信道相关联,所述虚拟信道是所述发送设备的通用输入/输出接口与所述接收设备的通用输入/输出接口之间的通用输入/输出链路上的总可用带宽的一个被动态分配的子集。 The first aspect of the invention provides a method for implementing flow control, comprising: a virtual channel during initialization, the initialization of the virtual channel universal input transmission device associated flow control mechanisms / output interface therein; and The transmitting apparatus maintained by the transmitting device and the interface from the transmitting device universal input / output device to said receiving general purpose input / output interface of the content associated with the quantity by the flow control mechanism by monitoring the instructions, tracking with a universal input coupled to the transmitting device universal input / output interface / receiving device output interface of the buffer available via the virtual channel; wherein the buffer with the virtual channel associated the virtual channel is referred to the transmitting device universal input / output interface with the total available bandwidth of a universal input device receives general purpose input / output interface between the I / O link is a subset of the dynamic allocation.

本发明的第二方面提供了一种发送设备中的通用输入/输出接口,包括:用于在所述通用输入/输出接口和接收设备的远程通用输入/输出接口之间的虚拟信道初始化时动态地建立流控制机制,以监视所述接收设备中的缓冲器是否能够用于接收从所述通用输入/输出接口发送到所述远程通用输入/输出接口的内容的装置;以及用于如果所述发送设备确定进一步的发送将在所述缓冲器引起溢出情况,则中止所述进一步的发送的装置;其中所述缓冲器与所述虚拟信道相关联,所述虚拟信道是所述发送设备的通用输入/输出接口与所述接收设备的通用输入/输出接口之间的通用输入/输出链路上的总可用带宽的一个被动态分配的子集。 The second aspect of the invention provides a method of transmitting device universal input / output interface, comprising: a virtual channel between a remote universal input of the general-purpose input / output interface and the receiving device / output interface to initialize dynamic Flow control mechanisms established to monitor whether the receiving device can be used to receive buffer is sent from the general-purpose input / output interface to the device context of the remote general purpose input / output interface; and if said the transmission device further determines the transmission will cause an overflow condition in said buffer, the further transmitting means of the suspension; wherein the channel associated with the virtual buffer, the virtual channel is the universal transmission device A total available bandwidth Universal Input / output interface of the receiving device universal input / output interface between the I / O link is a subset of the dynamic allocation.

本发明的第三方面提供了一种电子组件,适于用于电子设备中,包括根据本发明第二方面所述的通用输入/输出接口。 The third aspect of the invention provides an electronic component, suitable for use in an electronic device, comprising according to a second aspect of the present invention, general-purpose input / output interface.

本发明的第四方面提供了一种电子装置,包括多个根据本发明第三方面所述的电子组件。 A fourth aspect of the present invention provides an electronic apparatus comprising a plurality of electronic components according to the third aspect of the present invention.

附图说明 Brief Description

本发明以示例而非限制的方式被说明,附图中类似的标号指示类似的元件,并且其中:图1是电子装置的方框图,该电子装置包括本发明的实施例的一个或多个方面以便于该装置的一个或多个组成元件之间的通信;图2是根据本发明一个示例性实施例的示例性通信栈的示图,该通信栈由电子装置的一个或多个元件使用以便于这些元件之间的通信;图3是根据本发明教导的示例性事务层(transaction layer)数据报的示图;图4是根据本发明一个方面的示例性通信链路的示图,该通信链路包括一个或多个虚拟信道以便于电子设备的一个或多个元件之间的通信;图5是根据本发明一个实施例,用于在EGIO(增强型通用输入/输出)体系结构中提供同步通信资源的示例性方法的流程图;图6是根据本发明的一个方面,用于在EGIO体系结构中实现流控制的示例性方法的流程图;图7是根据本发明的一个方面,用于在EGIO体系结构中实现数据完整性特征的示例性方法的流程图; The present invention of example and not by way of limitation is illustrated, the accompanying drawings in which like references indicate similar elements, and in which: FIG. 1 is a block diagram of the electronic device, the electronic device includes an embodiment of the present invention, one or more aspects in order to in one or more of the communication between the elements of the apparatus composition; FIG. 2 is an exemplary communications stack to an exemplary embodiment of the invention illustrated in FIG, the communication stack is used by an electronic device or a plurality of elements so as to Communication between these elements; Figure 3 is the teachings of the present invention, an exemplary transaction layer (transaction layer) diagram of datagrams; FIG. 4 is an illustration of an aspect of the present invention, an exemplary communication link, the communication link path includes one or more virtual channels to facilitate communications between the electronic device or a plurality of elements; Fig. 5 is an embodiment according to the present invention, for providing a synchronization (Enhanced General Purpose Input / Output) in the EGIO architecture flowchart of an exemplary method of communication resources; Figure 6 is in accordance with one aspect of the present invention, a flow control flowchart of an exemplary method implemented in the EGIO architecture; Fig. 7 is in accordance with one aspect of the invention, for implemented in the EGIO architecture, a flowchart of the data integrity feature of the exemplary method;

图8是根据本发明的一个示例性实施例的示例性通信代理的方框图,以选择性实现本发明的一个或多个方面;图9是本发明的事务层中使用的各种分组头部格式的方框图;图10是根据本发明示例性实施例的示例性存储器体系结构的方框图,该存储器体系结构被用于帮助本发明的一个或多个方面;图11是根据本发明一个方面的示例性链路状态机图的状态图;以及图12是含有内容的可访问介质的方框图,所述内容当由电子设备访问时实现本发明的一个或多个方面。 Figure 8 is a block diagram of an exemplary communication agent exemplary embodiment of the present invention, to selectively implement one or more aspects of the present invention; FIG. 9 is a variety of transaction layer packet header format used in the present invention The block diagram; FIG. 10 is a block diagram of an exemplary memory architecture of the present invention according to an exemplary embodiment, the memory architecture is used to help one or more aspects of the present invention; FIG. 11 is in accordance with one exemplary aspect of the present invention Link state machine diagram of a state; and Figure 12 is a block diagram accessible medium comprising content, and the content when one or more aspects of the present invention is realized by the electronic device access.


本发明的多个实施例一般地涉及通用输入/输出(GIO)体系结构、协议和相关方法,以实现其中的流控制。 A plurality of embodiments of the present invention generally relates to a general-purpose input / output (GIO) architecture, protocol and related methods, in order to achieve one of the flow control. 在这方面,介绍了创新的增强型通用输入/输出(EGIO)互连体系结构、相关通信协议和有关方法。 In this context, describes an innovative enhanced general input / output (EGIO) interconnection architecture, associated communication protocol and related methods. 根据一个示例性实施例,EGIO体系结构的元件包括根复合体(root complex)(例如,在桥内实现)、以及端点(end point)中的一个或多个,每个元件至少包含EGIO特征的一个子集以支持这些元件之间的EGIO通信。 According to an exemplary embodiment, element EGIO architecture include a root complex (root complex) (e.g., in the realization of the bridge), and the endpoint (end point) of one or more, each element comprising at least EGIO features to support a subset of EGIO communication between these elements.

使用(多条)串行通信信道来执行这些元件的EGIO设备之间的通信,所述串行通信信道使用EGIO通信协议,所述协议如下面将要详细介绍的那样支持一个或多个创新特征,所述特征包括但不局限于虚拟通信信道、基于尾部(tailer)的错误转发(error forwarding)、对老式的基于PCI的设备及其中断的支持、多种请求响应类型、流控制和/或数据完整性管理功能。 Use (s) serial communications channel to perform communication between these elements EGIO device, said serial communications channel using EGIO communication protocol, as the protocol as will support one or more innovative features to be described in detail, The features include, but not limited to, virtual communication channels, forward (error forwarding) based on the tail (tailer) errors for the older PCI devices and supports interrupts, multiple request response types, flow control and / or data Integrity management functions. 根据本发明的一个方面,通过引入EGIO通信协议栈,在每个计算装置的元件中都支持了通信协议,该栈包括物理层、数据链路层和事务层。 According to one aspect of the present invention, by introducing EGIO communication protocol stack, the elements of each computing device supports a communication protocol, the stack includes a physical layer, data link layer and the transaction layer.

在本说明书各处提及的“一个实施例”或“实施例”指的是,所描述的与该实施例有关的具体特征、结构或特性被包括在本发明的至少一个实施例中。 "One embodiment" or "an embodiment" in various places throughout this specification refers mentioned, the specific features associated with the embodiment described, structure, or characteristic is included in at least one embodiment of the present invention. 因此,在本说明书多个位置出现的短语“在一个实施例中”或“在实施例中”不必都指同一个实施例。 Thus, a plurality of positions in the present specification appearances of the phrases "in one embodiment" or "in an embodiment" are not necessarily all referring to the same embodiment. 此外,所述具体特征、结构或特性可以适当的方式结合在一个或多个实施例中。 Furthermore, the particular features, structures or characteristics may be combined in a suitable manner or more embodiments.

根据前述内容和下面的描述,本领域技术人员应当意识到,本发明的一个或多个元件可以容易地以硬件、软件、传播的信号或它们的组合来实现。 From the foregoing and the following description, the skilled person will be appreciated, one or more elements of the invention can be readily implemented in hardware, software, propagated signal, or a combination thereof.

术语在深入讨论创新的EGIO互连体系结构、通信协议和相关方法的细节之前,引入将在该详细描述中使用的词汇表元素是很有帮助的:·通告(Advertise):在EGIO流控制的上下文中使用,是指通过使用EGIO协议的流控制更新消息来指示接收器发送有关它的流控制信用(credit)可用性的信息的动作;·完成器(Completer):请求所指向的逻辑设备;·完成器ID:完成器的总线标识符(例如,号码)、设备标识符和功能标识符中的一个或多个的组合,其唯一标识了请求的完成器;·完成(completion):用于终止或部分终止一个序列的分组被称为完成。 Terminology Before discussing further details of innovative EGIO interconnection architecture, communication protocol and related methods, the introduction of vocabulary elements to be used in this detailed description is helpful: · circular (Advertise): In the EGIO flow control used in this context, refers to the protocol through the use of EGIO flow control update message to indicate the transmission operation of the receiver about its flow control credit (credit) availability information; · finisher (Completer): logical device request is directed; · complete device ID: complete the bus identifier (for example, number), device identifier, and function identifiers of one or a combination of multiple, which uniquely identifies the request is completed; * completed (completion): for termination or partial termination of a sequence of packets to be called complete. 根据一个示例性实现,完成对应于在前请求,并且在某些情况下含有数据;·配置空间:EGIO体系结构中的四个地址空间中的一个。 According to an exemplary implementation, corresponding to the previous request is completed, and the data contained in some cases; * Configuration space: EGIO architecture of a four address space. 具有配置空间地址的分组被用于配置设备;·组件:物理设备(即,在单个封装之中);·数据链路层:EGIO体系结构的中间层,位于事务层(上层)和物理层(下层)之间;·数据链路层分组(DLLP):数据链路层分组是在数据链路层产生并使用的分组,来支持在数据链路层处执行的链路管理功能;·下行流(downstream):指的是元件的相对位置或离开主桥的信息流;·端点:具有00h类型配置空间头部的EGIO设备;·流控制:用于将来自接收器的接收缓冲器信息发送到发送器,以防止接收缓冲器溢出,并且允许发送器装置服从排序规则;·流控制分组(FCP):事务层分组,用于将来自一个组件中的事务层的流控制信息发送到另一个组件中的事务层;·功能:多功能设备的一个独立部分,在配置空间中由唯一的功能标识符(例如,功能号码)标识;·层次(Hierarchy):定义了在EGIO体系结构中实现的I/O互连拓扑结构。 Packet having a configuration space address are used to configure the device; · components: physical device (i.e., into a single package); · the data link layer: intermediate layer EGIO architecture, situated transaction layer (upper layer) and physical layer ( between the lower layer); · Data Link Layer Packet (DLLP): Data link layer packet is a packet generated in the data link layer and used to support the implementation of the data link layer link management functions; · Downstream (downstream): refers to the relative position or away from the main stream of the bridge element; · Endpoint: a type 00h configuration space header EGIO device; * Flow Control: means for transmitting and receiving information from the buffer to the receiver transmitter to prevent receive buffer overflow and allows the sending device to obey the collation; · flow control packet (FCP): the transaction layer packet for another component from the flow control information is sent to a component of the transaction layer The transaction layer; * Function: an independent part of a multifunction device, and in the configuration space is identified by a unique function identifier (for example, feature number); * level (Hierarchy): defines the EGIO architecture I realized / O interconnect topology. 层次由对应于最靠近枚举设备(enumerating device)(例如,主CPU)的链路的根复合体来表征;·层次域:EGIO层次被根复合体分成多个段,所述根复合体产生不只一个EGIO接口,其中这些段被称为层次域;·主桥:将主CPU复合体连接到根复合体;主桥可以提供根复合体;·IO空间:EGIO体系结构的四个地址空间中的一个;·管线(Lane):物理链路的一组差分信号对,一对用于发送并且一对用于接收。 Level corresponding to the nearest enumeration by the device (enumerating device) (e.g., main CPU), a root complex to characterize the link; * level domain: EGIO hierarchy is divided into a plurality of segments root complex, to produce the root complex more than one EGIO interface, which these segments are called level domain; · Main Bridge: The complex is connected to the main CPU root complex; the main bridge can provide root complex; · IO space: EGIO architecture of four address space A; * line (Lane): the physical link a set of differential signal pairs, one pair for transmitting and one pair for receiving. N链路由N条管线组成;·链路:两个组件之间的双单工(dual-simplex)通信路径;两个端口(一个发送,一个接收)的集合以及它们的(多条)互连管线的集合;·逻辑总线:在配置空间中具有相同总线号码的一系列设备之间的逻辑连接;·逻辑设备:EGIO体系结构的元件,其在配置空间中对应于唯一的设备标识符;·存储器空间:EGIO体系结构的四个地址空间中的一个;·消息:具有消息空间类型的分组;·消息空间:EGIO体系结构的四个地址空间中的一个。 N link pipeline composed by N; * Link: Dual simplex (dual-simplex) communication path between the two components; two ports (one transmit and one receive) and their collection (s) mutually Even the set pipeline; Logical Bus: The logical series of devices having the same bus number in configuration space between the connection; Logical Device: element EGIO architecture, which in the configuration space corresponding to the unique device identifier; · memory space: four address spaces of the EGIO architecture, a; * message: a message space type of packet; * Message Space: four address spaces of the EGIO architecture, a. 如PCI中定义的特殊周期作为消息空间的子集而被包括在其中,并且因此提供了(多个)与老式设备的接口;·(多个)老式软件模型:初始化、发现、配置以及使用老式设备所需的(多个)软件模型(例如,在例如EGIO至老式桥中包含的PCI软件模型有助于与老式设备的交互);·物理层:EGIO体系结构层,其直接面对两个组件之间的通信介质;·端口:与组件相关联的接口,在该组件和EGIO链路之间; Special cycles as defined in PCI as a subset of the message space is included therein, and thus provides the (multiple) interfaces with legacy devices; • (s) old software model: initialization, discovery, configuration, and using the old (s) required for the model of the device software (e.g., PCI software model in, for example EGIO bridge contains older to help of interaction with legacy devices); • Physical Layer: EGIO architecture layer, which directly face the two communication medium between the components; * port: the component associated with the interface between the component and the EGIO link;

·接收器:通过链路接收分组信息的组件是接收器(有时称为目标);·请求:用于开始序列的分组被称为请求。 * Receiver: The component receiving packet information of the link is the receiver (sometimes referred to as the target); · Request: packet for start of the sequence is called the request. 请求包括一些操代码,并且在某些情况下,包括地址和长度、数据或其它信息;·请求器(requester):首先将序列引入到EGIO域的逻辑设备;·请求器ID:请求器的总线标识符(例如,总线号码)、设备标识符和功能标识符中的一个或多个的组合,其唯一的标识请求器。 Request includes some operation code and, in some cases, includes address and length, data or other information; · requester (requester): First, the sequence introduced into the logical device EGIO domain; · requester ID: requestor bus identifier (e.g., bus number), device identifier and a function identifier or a combination of more of its unique identity requester. 在大多数情况下,EGIO桥或交换器(switch)将请求从一个接口转发到另一个接口而不修改请求器ID。 In most cases, EGIO bridge or switch (switch) forwards requests from one interface to another without modifying the requester ID. 来自除了EGIO总线的总线的桥通常应当存储请求器ID,以在为该请求产生一个完成时使用。 Apart from the bus bridge EGIO bus should typically store the requester ID, in order for the request to generate a complete use.

·根复合体:包括主桥和一个或多个根端口的实体;·根端口:根复合体上的EGIO端口,其通过相关联的虚拟PCI-PCI桥来映射EGIO互连层次的一部分;·序列:与请求器执行单个逻辑传送相关联的零个或多个完成以及单个请求;·序列ID:请求器ID和标记的一个和多个的组合,其中所述组合唯一地标识作为公共序列一部分的完成和请求;·分裂事务(split transaction):含有初始事务(分裂请求)的单个逻辑传送,目标(完成器或桥)以分裂响应终止该事务,随后由完成器(或桥)开始一个或多个事务(分裂完成),以将读取数据(如果读取)或完成消息发送回请求器;·符号(symbol):作为8比特/10比特编码的结果而产生的10比特数值;·符号时间:在管线上放置符号所需的时间段;·标记:由请求器分配到给定序列以区分它和其它序列的号码-序列ID的一部分;·事务层分组(TLP):TLP是在事务层中产生以运送请求或完成的分组;·事务层:EGIO体系结构的最外层(最上层),其在事务级别进行操作(例如,读取、写入等等); · Root complex include: the main bridge entity and one or more root ports; · Root Port: root EGIO port complex on its part to map EGIO interconnect hierarchy through a virtual PCI-PCI bridge associated; · sequence: zero or more to complete the transmission and associated with a single request to perform a single logical requester; * Sequence ID: ID request and a combiner and a plurality of tags, wherein the combination uniquely identifies a common sequence part completion and requests; · split transaction (split transaction): initial transaction contains a single logical (split request) transfer target (complete or bridge) to terminate the transaction response division, then completed (or bridge) or by starting a multiple transactions (split completed), to read data (if a read) or a completion message back to the requester; * symbol (symbol): 10-bit values as an 8-bit / 10-bit encoding of the results produced; · symbol Time: Time symbol you want to place on the pipeline segment; * Tags: assigned by the requestor to a given sequence number to distinguish between it and the other sequences - part of the sequence ID; • Transaction Layer Packet (TLP): TLP is in business generating layer to transport request or complete packet; · Transaction Layer: EGIO architecture of the outermost layer (top layer), which carried out the operation (for example, read, write, etc.) at the transaction level;

·事务描述符:分组头部的元素,与地址、长度和类型一起描述事务的属性。 · Transaction descriptor: Elements packet header, and address, length and type of description of the property transaction together.

示例性电子装置以及EGIO体系结构图1提供了根据本发明示例性实施例的电子装置100的方框图,该电子装置100包括增强型通用输入/输出(EGIO)互连体系结构、协议及相关方法。 Exemplary electronic device and EGIO architecture Figure 1 provides a block diagram of an electronic apparatus according to an exemplary embodiment of the present invention 100, the electronic device 100 includes an enhanced general input / output (EGIO) interconnect architecture, protocol and related methods. 如所示,电子装置100被描述为包含多个电子元件,包括(多个)处理器102、根复合体(例如,包括主桥)104、交换器108以及端点1 10中的一个或多个,每个元件都如所示进行耦合。 As shown, the electronic device 100 is described as comprising a plurality of electronic components, including the processor (s) 102, a root complex (e.g., including the main bridge) 108, and endpoint 110 in a 104, or a plurality of switch , each element are coupled as shown. 根据本发明的教导,至少根复合体104、(多个)交换器108以及端点110被赋予了EGIO通信接口106的一个或多个示例,以有助于本发明的实施例的一个或多个方面。 According to the teachings of the present invention, at least root complex 104, (multiple) switches 108 and endpoint 110 were given EGIO communication interface 106 of one or more examples, to facilitate an embodiment of the present invention, one or more aspects.

如所示,元件102、104、108和110中的每一个都经由EGIO接口106通过通信链路112可进行通信地耦合到至少一个其它元件,其中通信链路112支持一条或多条EGIO通信信道。 As shown, elements, and 110 are each communicatively coupled 102,104,108 via the EGIO interface 106 via the communication link 112 may proceed to at least one other element, wherein the communication link 112 supports one or more EGIO communication channel . 根据一个示例性实现,在主电子装置的初始化事件期间或者在外围设备动态连接到电子装置(例如,热插拔设备)之后,建立了EGIO互连体系结构的操作参数。 According to an exemplary implementation, after, during initialization event or a master electronic device is connected to the electronic device (e.g., hot-plugged device) in the peripheral device dynamically established operating parameters EGIO interconnection architecture. 如上面所介绍的,电子装置100被确定为代表多种传统和非传统计算系统、服务器、网络交换器、网络路由器、无线通信用户单元、无线通信电话基础设施元件、个人数字助理、机顶盒或任何电子装置中的任何一个或多个,所述任何电子装置将从通过这里描述的EGIO互连体系结构、通信协议或相关方法的至少一个子集的综合而产生的通信资源获益。 For example, the electronic device described above, 100 were identified as representatives of a variety of traditional and non-traditional computing systems, servers, network switches, network routers, wireless communication subscriber units, wireless communication telephony infrastructure elements, personal digital assistants, set-top boxes or any at least one sub-gain integrated communication resource sets generated electronic apparatus any one or more of, EGIO interconnection architecture of the electronic device from any described herein by, or related methods of communication protocols.

根据图1图示的示例性实现,电子装置100具有一个或多个处理器102。 According to an exemplary implementation illustrated in Figure 1, the electronic device 100 having one or more processors 102. 如这里所使用的,(多个)处理器102控制电子装置100的功能性能力的一个或多个方面。 As used herein, processor (s) 102 controls the functional capabilities of an electronic device 100 or more aspects. 在这个方面,(多个)处理器102可以代表多种控制逻辑的任何一个,控制逻辑包括但不局限于微处理器、可编程逻辑器件(PLD)、可编程逻辑阵列(PLA)、专用集成电路(ASIC)、微控制器等等的一个或多个。 In this regard, processor (s) 102 may represent any of a variety of control logic, the control logic including, but not limited to, a microprocessor, a programmable logic device (PLD), programmable logic array (PLA), application specific integrated circuit (ASIC), a microcontroller, and so one or more.

如上所述,根复合体104提供电子装置EGIO体系结构的一个或多个其它元件108、110与处理器102和/或处理器/存储器复合体之间的EGIO通信接口。 As described above, the root complex 104 provides an EGIO communications interface EGIO architecture of the electronic apparatus or more other elements 108, 110 and the processor 102 and / or a processor / memory complex between. 如这里所使用的,根复合体104指的是最靠近于主控制器、存储器控制器集线器、IO控制器集线器、上述的任何组合或芯片组/CPU元件的某种组合(即,处于计算系统环境)的EGIO层次的逻辑实体。 As used herein, refers to the root complex 104 is the closest to the main controller, a memory controller hub, IO controller hub, any combination of the above or chipset / CPU elements of some combination of (i.e., in a computing system environment) EGIO hierarchy of logical entities. 在这方面,尽管在图1中被描述为单个单元,根复合体104可以被认为是具有多个物理组件的单个逻辑实体。 In this regard, although in Figure 1 is described as a single unit, root complex 104 may be considered a single logical entity having a plurality of physical components.

根据图1所图示的示例性实现,根复合体104组装有一个或多个EGIO接口106以便于与其它外围设备进行通信,所述外围设备例如是(多个)交换器108、(多个)端点110以及(多个)老式桥114或116,尽管没有对老式桥114或116进行具体描述。 Illustrated in Figure 1 according to an exemplary implementation, root complex 104 assembled with one or more EGIO interface 106 to facilitate communication with other peripheral devices, for example, the peripheral device (s) switch 108, (s ) 110, and endpoint (s) 114 or 116 Vintage bridges, although there is no 114 or 116 of the old bridge specifically described. 根据一个示例性实现,每个EGIO接口106代表不同的EGIO层次域。 According to an exemplary implementation, each EGIO interface 106 represents a different EGIO hierarchy domain. 在此方面,图1所图示的实现表示了具有三(3)个层次域的根复合体104。 In this regard, Implementation Figure 1 diagrammatically represents a having three (3) levels domain root complex 104. 应当知道,尽管所作的表述包括多个单独EGIO接口106,但是可以预期其它的实施例,其中单个接口106具有多个端口以适应和多个设备进行通信。 Be appreciated that, despite statements that involve a plurality of individual EGIO interface 106, it is contemplated that other embodiments, wherein a single interface 106 and having a plurality of ports to accommodate a plurality of devices to communicate.

根据一个示例性实现,根复合体104负责识别EGIO体系结构的每个元件的通信需求(例如,虚拟信道需求、同步信道需求等等)。 According to one example implementation, root complex 104 is responsible for identifying the communication requirements of each element EGIO architecture (e.g., virtual channel requirements, needs, and so synchronization channel). 根据一个示例性实现,这样的通信需求在主装置100的初始化事件期间或它的任何元件的初始化事件期间(例如,热插拔事件)被传送到根复合体104。 According to an exemplary implementation, such communication requirements in the event the host device 100 during initialization or during initialization event (e.g., hot-plug event) it is transmitted to any element of a root complex 104. 在另一个实施例中,根复合体104询问这些元件以识别通信需求。 In another embodiment, root complex 104 asked to identify the communication requirements of these elements. 一旦识别了这些通信参数,根复合体104就例如通过协商过程来为体系结构的每个元件建立EGIO通信设备的款项和条件。 Once identified, these communication parameters, such as root complex 104 to establish funds and Conditions EGIO communications equipment for each component architecture through the consultation process.

在这里公开的EGIO体系结构中,交换器有选择地将端点耦合到多个EGIO层次和/或域以及它们之间。 In the EGIO architecture disclosed herein, switches selectively coupling a plurality of endpoints between EGIO hierarchy and / or domains and their. 根据一个示例性实现,EGIO交换器具有至少一个上行流(upstream)端口(即、朝着根复合体104的方向)和至少一个下行流端口。 According to one example implementation, EGIO switch having at least one upstream (upstream) port (i.e., towards the direction of the root complex 104) and at least one downstream port. 根据一个实现,交换器108将最靠近主桥的一个端口(即,接口的一个端口或接口106自身)作为上行流端口,而所有其它的端口是下行流端口。 According to one implementation, switches 108 closest to a port on the main bridge (i.e., the interface of a port or interface 106 itself) as the upstream port, while all other ports are downstream ports. 根据一个实现,交换器108对于配置软件(例如,老式配置软件)表现为PCI-PCI桥,并且使用PCI桥机制来对事务进行路由。 According to one implementation, the switch 108 for configuration software (for example, the old configuration software) showed PCI-PCI bridge, and use PCI bridge mechanisms for routing transactions.

在交换器108的上下文中,对等事务被定义为这样的事务,其中的接收端口和发送端口都是下行流端口。 In the context of the switch 108, the peer transaction is defined as a transaction in which the receive port and transmit ports are downstream ports. 根据一个实现,交换器108支持除了那些与从任何端口到任何其它端口的锁定事务序列相关联的事务层分组(TLP)之外的所有类型的事务层分组。 According to one implementation, switches 108 support in addition to those associated with any transaction layer packet from all other types of transaction layer packet (TLP) port associated with the lock transaction sequence than to any port. 在这方面,所有广播消息一般都会从交换器108上的接收端口被路由到它的所有其它端口。 In this regard, all broadcast messages will generally be routed from the receiving port on the switch 108 to all of its other ports. 不能被路由到端口的事务层分组一般会被交换器108确定为不支持的TLP。 Transaction layer packet can not be routed to the port 108 will generally be determined exchange unsupported TLP. 当将事务层分组(TLP)从接收端口传送到发送端口时,交换机108一般不修改它们,除非需要进行修改以适应发送端口(例如,耦合到老式桥114、116的发送端口)的不同协议需求。 When the transaction layer packet (TLP) from the reception port to the transmission port, the switch 108 is generally not modify them unless need to be modified to accommodate the sending port (e.g., transmitting port coupled to bridge 114, 116 Vintage) protocol requirements of different .

应当意识到,交换器108代表其它设备工作,并且在这方面,它不会预先知道流量类型和模式。 It should be appreciated that the switch 108 on behalf of the other device to work, and in this regard, it will not know in advance the type and traffic patterns. 根据下面将要详细讨论的一个实现,本发明的流控制和数据完整性方面以每个链路(per-link)为基础而实现,而不是以端到端(end-to-end)为基础实现。 According to an implementation as will be discussed in detail, flow control and data integrity aspects of the invention to each link (per-link) based achieved, rather than end to end (end-to-end) to the underlying implementation . 因此,根据这样的实现,交换器108参与用于流控制和数据完整性的协议。 Thus, according to such an implementation, switches 108 participate for flow control and data integrity protocol. 为了参与流控制,交换器为每个端口维持单独的流控制以提高交换器108的性能特性。 To participate in flow control, switch port for each maintain separate flow control to improve performance characteristics of the switch 108. 类似地,交换器108通过使用TLP检错机制检查进入交换器的每个TLP而以每个链路为基础来支持数据完整性过程,这在下面将详细描述。 Similarly, the switch 108 by using the TLP error detection mechanisms for checking each TLP entering the switch on a per-link basis and supports data integrity processes, which will be described in detail below. 根据一个实现,交换器108的下行流端口允许形成新的EGIO层次域。 According to one implementation, switches 108 downstream ports allow the formation of new EGIO hierarchy domains.

继续参考图1,端点110被定义为具有00hex(十六进制00)(00h)类型配置空间头部的任何设备。 With continued reference to Figure 1, end 110 is defined as any type of device having a configuration space header 00hex (hex 00) (00h). 端点设备110代表它自身或是代表截然不同的非EGIO设备,可以是EGIO语义事务的请求器或完成器。 110 represents an endpoint device itself or on behalf of different non-EGIO device may be EGIO semantic transaction request or completion device. 这样的端点110示例包括但不局限于EGIO兼容(EGIO compliant)图形设备、EGIO兼容存储器控制器以及/或者实现了EGIO和诸如通用串行总线(USB)、以太网等某些其它接口之间的连接的设备。 Such endpoints 110 Examples include, but are not limited EGIO compatible (EGIO compliant) graphics device, EGIO compatible with the memory controller and / or implement the EGIO and such as a Universal Serial Bus (USB), Ethernet and other interfaces between some other connected devices. 与下文详细讨论的老式桥114、116不同,担当非EGIO兼容设备的接口的端点110不会为这些非EGIO兼容设备提供完全软件支持。 The old bridge and discussed in detail below 114,116 different take on non-EGIO compliant devices endpoint interface 110 does not provide full software support for these non-EGIO compliant devices. 虽然将主处理器复合体102连接到EGIO体系结构的设备是根复合体104,但是它可以与位于EGIO体系结构中的其它端点具有相同的设备类型,它们只是通过其相对于处理器复合体102的位置来加以区分。 Although the main processor complex 102 is connected to the device EGIO architecture is a root complex 104, it can communicate with other endpoints at the EGIO architecture have the same device type, they are only by its complex relative to the processor 102 position to be distinguished.

根据本发明的教导,端点110可以被概括为下列三个类别的一个或多个:(1)老式与EGIO兼容端点,(2)老式端点,以及(3)EGIO兼容端点,每个在EGIO体系结构中具有不同的操作规则。 According to the teachings of the present invention, the endpoint 110 may be summed up in one or more of the following three categories: (1) compatible with the old and the EGIO end, (2) legacy endpoints, and (3) EGIO compatible endpoints, each in the EGIO system structures having different rules of operation.

如上所述,EGIO兼容端点110与老式端点(例如,118、120)不同,在于EGIO端点110将具有00h类型配置空间头部。 As mentioned above, EGIO compatible with older endpoint endpoint 110 (eg, 118, 120) is different from that EGIO end 110 has a type 00h configuration space header. 这些端点(110、118和120)的每个都作为完成器支持配置请求。 These endpoints (110, 118 and 120) are each configured as a complete support requests. 这些端点允许产生配置请求,并且可以被分类为老式端点或EGIO兼容端点,但是该分类需要遵守另外的规则。 These endpoints allows generation of configuration requests, and can be classified as old-fashioned or EGIO compatible endpoint endpoint, but the classification need to comply with additional rules.

老式端点(例如,118、120)被允许作为完成器来支持IO请求并且被允许产生IO请求。 Vintage endpoints (eg, 118, 120) are permitted as a complete unit to support the IO request and be allowed to generate IO requests. 如果老式端点(118、120)的软件支持需求要求,则它被允许例如根据传统的PCI操作作为完成者产生锁定语义(locksemantics)。 If the old endpoint (118,120) software support needs require, for example, if it is allowed to produce as a complete person based on conventional PCI operation lock semantics (locksemantics). 老式端点(118、120)一般不发布锁定请求。 Vintage endpoint (118, 120) generally do not release the lock request.

EGIO兼容端点110一般不作为完成器来支持IO请求并且不产生IO请求。 EGIO end 110 is generally not compatible to support IO IO request and the request is not generated as a complete unit. EGIO端点110不作为完成器来支持锁定请求,并且不作为请求器来产生锁定请求。 EGIO endpoint device 110 does not come as a complete lock request support, and not as a request to produce the lock request.

EGIO至老式桥114、116是专用端点110,其包括用于老式设备(118、120)的基本软件支持例如完全软件支持,其中所述桥将所述老式设备连接到EGIO体系结构。 EGIO bridge 114, 116 is dedicated to the old endpoint 110, which comprises means for legacy devices (118, 120) of the basic software support, for example full software support, wherein said bridge device is connected to the old EGIO architecture. 在这方面,EGIO一老式桥114、116一般具有一个上行流端口(也可以具有多个),并具有多个下行流端口(也可以只有一个)。 In this regard, EGIO a bridge 114, 116 typically have an old upstream port (also may have a plurality), and having a plurality of downstream ports (may be only one). 根据老式软件模型(例如,PCI软件模型)来支持锁定请求。 According to the old software model (for example, PCI software model) to support the lock request. EGIO一老式桥114、116的上行流端口应当以每个链路为基础来支持流控制并且遵守EGIO体系结构的流控制和数据完整性规则,这在下文将详细介绍。 EGIO an old upstream port bridge 114, 116 should be the basis of each link supports flow control and compliance with flow control and data integrity rules of the EGIO architecture, which will be hereinafter described in detail.

如这里所使用的,通信链路112被确定为代表多种通信介质中的任何一个,所述多种通信介质包括但不局限于铜线、光纤、(多条)无线通信信道、红外通信链路等等。 As used herein, communication link 112 is determined as the representative of a variety of communication media in any one of said plurality of communication media includes, but is not limited to copper wire, optical fiber, (a plurality of) wireless communication channel, an infrared communication link Road and so on. 根据一个示例性实现,EGIO链路112是差分串行线路对,一对中的每个都支持发送和接收通信,从而提供了对全双工通信能力的支持。 According to one example implementation, EGIO link 112 is a differential serial line pairs, one pair each to support transmit and receive communications, thereby providing support for full-duplex communication capability. 根据一个实现,链路提供具有初始(基本)操作频率为2.5Ghz的可变串行时钟频率。 According to one implementation, the link provided with an initial (base) operating frequency of 2.5Ghz variable serial clock frequency. 每个方向的接口宽度可依x1、x2、x4、x8、x12、x16、x32物理管线而变。 Interface width may vary depending upon each direction x1, x2, x4, x8, x12, x16, x32 physical pipeline. 如上所述以及下面将要详细介绍的,EGIO链路112可以在设备之间支持多条虚拟信道,从而使用一条或多条虚拟信道在这些设备之间提供对同步流量的不间断通信的支持,所述多条虚拟信道例如是一条音频信道和一条视频信道。 As described above and described in further detail below, EGIO link 112 may support multiple virtual channels between devices, thereby using one or more virtual channels between these devices provide for uninterrupted communication of synchronous traffic, the referred to a number of virtual channels, for example, an audio channel and a video channel.

示例性EGIO接口体系结构根据图2所图示的示例性实现,EGIO接口106可以表示为包括了事务层202、数据链路层204和物理层206的通信协议栈。 Exemplary EGIO interface architecture illustrated in Figure 2 according to an exemplary implementation, EGIO interface 106 can be represented as including a transaction layer 202, data link layer 204 and physical layer 206 of the communication protocol stack. 如所示,物理链路层接口被描述为包括逻辑子块208和物理子块210,其中每个都将在进行下面详细讨论。 As shown, the physical link layer interface is described as comprising a logical sub-block 208 and physical sub-block 210, each of which will be discussed below in detail making.

事务层202根据本发明的教导,事务层202提供EGIO体系结构和设备核心之间的接口。 The transaction layer 202 provides an interface EGIO architecture 202 and between devices in accordance with the teachings of the core, the transaction layer of the present invention. 在这方面,事务层202的主要职责是为主设备(或代理)中的一个或多个逻辑设备装配和拆解分组(即,事务层分组或TLP)。 In this regard, the transaction layer 202 of the main responsibilities of the device is the main (or agents) in one or more logical devices to assemble and disassemble the packets (i.e., transaction layer packets, or TLP).

地址空间、事务类型和用途事务形成了在发起代理和目标代理之间的信息传送的基础。 Address space, transaction type, and use the transaction form the basis between the initiator and the target proxy proxy information transfer. 根据一个示例性实施例,在创新的EGIO体系结构中定义了四个地址空间,包括例如配置地址空间、存储器地址空间、输入/输出地址空间以及消息地址空间,每个都具有自己唯一的既定用途(例如见图7,下面进行了详细的说明)。 According to an exemplary embodiment, the innovative EGIO architecture, four address spaces are defined, including, for example configuration address space, a memory address space, an input / output address space and a message address space, each with its own unique intended usage (e.g., see FIG. 7, below for a detailed description).

存储器空间(706)事务包括读取请求和写入请求中的一个或多个,以将数据发送到存储器映射位置或从该位置取出数据。 Memory space (706) transactions include read requests and write requests in one or more, in order to send data to the memory map or removing the data from the position. 存储器空间事务可以使用两种不同的地址格式,例如短地址格式(例如,32比特地址)或长地址格式(例如,64比特的长度)。 Memory Space Affairs can use two different address formats, such as short address format (for example, 32-bit address) or long address format (for example, 64 bits in length). 根据一个示例性实施例,EGIO体系结构使用锁定协议语义(即,代理可以锁定对所修改的存储器空间的访问)来提供传统的读取、修改和写入序列。 According to an exemplary embodiment, EGIO architecture uses the lock protocol semantics (i.e., the agent can lock access to modified memory space) to provide the conventional read, modify, and write sequences. 更具体地说,根据特定设备规则(桥、交换器、端点、老式桥),允许对下行流锁定的支持。 More specifically, according to a particular device rules (bridge, switch, end point, the old bridge), allowing support for downstream locks. 如上所述,支持该锁定语义以帮助老式设备。 As mentioned above, in order to help support the locking semantics old equipment.

IO空间(704)事务用于访问IO地址空间(例如,16比特IO地址空间)中的输入/输出映射存储器寄存器。 IO space (704) Services for accessing IO address space (for example, 16-bit IO address space) input / output memory mapped registers. 诸如英特尔体系结构处理器以及其它处理器的某些处理器102通过处理器的指令集而包括IO空间定义。 Such as the Intel Architecture processor and some other processors of the processor 102 through the processor's instruction set and including IO space definition. 因此,IO空间事务包括读取请求和写入请求以将数据传送至IO映射位置或从该位置取出数据。 Therefore, IO space transactions include read requests and write requests to transfer data to or removing the IO mapping data from that location.

配置空间(702)事务用于访问EGIO设备的配置空间。 Configuration space (702) transactions EGIO devices used to access the configuration space. 配置空间的事务包括读取请求和写入请求。 Configuration space transactions include read requests and write requests. 由于如此多的传统处理器一般不含有本地配置空间,所以通过一种机制来映射该空间,所述机制即是与传统PCI配置空间访问机制(例如,使用基于CFC/CFC8的PCI配置机制#1)相兼容的软件。 Because so many conventional processors typically do not contain local configuration space, by a mechanism to map the space, that is, the mechanism with the conventional PCI configuration space access mechanisms (e.g., based CFC / CFC8 PCI configuration mechanism # 1 ) compatible software. 或者,也可以使用存储器别名机制来访问配置空间。 Alternatively, you can use a memory alias mechanism to access the configuration space.

消息空间(708)事务(或简称为消息)被定义为支持通过(多个)接口106而在EGIO代理之间进行带内通信。 Message space (708) Services (or simply the message) is defined as support (multiple) interface 106 between EGIO agents band communication. 由于传统的处理器不包括对本地消息空间的支持,所以这是通过EGIO代理在接口106中实现的。 Because conventional processor does not include support for local news space, so this is by EGIO agent interface 106 is implemented. 根据一个示例性实现,诸如中断和电源管理请求的传统“边带(side-band)”信号作为消息而被实现以减少所需的用来支持这些老式信号的引脚数目。 According to an exemplary implementation, such as interrupts and power management requests traditional "side (side-band)" signal as a message which is implemented to reduce the required number of these older signals to support pins. 一些处理器以及PCI总线包括“特殊周期”的概念,其也被映射到EGIO接口106中的消息。 Some processors, and the PCI bus include the concept of "special cycle", which is also mapped to the EGIO interface 106 messages. 根据一个实施例,消息通常分为两类:标准消息和厂商定义消息。 According to one embodiment, messages are typically divided into two categories: standard messages and vendor-defined messages.

根据所图示的示例性实施例,标准消息包括通用消息组和系统管理消息组。 According to an exemplary embodiment illustrated, the standard messages include a general purpose system management message group and message groups. 通用消息可以是单一目的地消息或广播/组播消息。 Generic messages can be a single destination message or a broadcast / multicast messages. 系统管理消息组可以包括中断控制消息、电源管理消息、排序控制原语(primitive)和错误信令中的一个或多个,它们的例子将在下文介绍。 System management message group may include interrupt control messages, power management messages, ordering control primitives (primitive) and error signaling in one or more examples of which will be described hereinafter.

根据一个示例性实现,通用消息包括支持锁定事务的消息。 According to an exemplary implementation, including support for locking a common message transaction message. 根据该示例性实现,引入了UNLOCK(解锁)消息,其中交换器(例如,108)一般会通过可能参与锁定事务的任何端口来运送UNLOCK消息。 According to this exemplary implementation, introduced UNLOCK (unlock) message, wherein the switching device (e.g., 108) normally locked by any port may be involved in a transaction to transport UNLOCK message. 在没有被锁定的时候接收到UNLOCK消息的端点设备(例如,110、118、120)将忽略该消息。 In is not locked when the received UNLOCK message endpoint devices (e.g., 110,118,120) will ignore the message. 否则,将在接收到UNLOCK消息之后解锁锁定设备。 Otherwise, it will unlock the locking device after receiving the UNLOCK message.

根据一个示例性实现,系统管理消息组包括用于排序和/或同步的专用消息。 According to one exemplary implementation, system management message group includes for sorting and / or special message synchronization. 一个这样的消息是FENCE(防护)消息,用于在由EGIO体系结构的接收元件产生的事务上施加严格的排序规则。 One such message is a FENCE (protective) message for applying strict ordering rules on transactions by the receiving element EGIO architecture generated. 根据一个实现,只是诸如端点的网络元件的一个精选子集对该FENCE消息作出反应。 According to one implementation, only a select subset of the endpoints, such as network elements to respond to the FENCE message. 除了前述的内容,例如通过使用下文讨论的尾部(tailer)错误转发,这里还预见了用于指示可校正错误、不可校正错误和致命错误的消息。 In addition to the aforementioned contents, for example, by using tail discussed below (tailer) error forwarding, there is also foreseen for indicating a correctable error, uncorrectable error, and fatal error message.

根据上文所介绍的本发明的一个方面,系统管理消息组使用带内消息提供中断信令。 According to one aspect of the present invention described above, the system management message group provides interrupts using in-band signaling messages. 根据一个实现,引入了ASSERT_INTx/DEASSERT_INTx消息对,其中断言(assert)中断消息的发布通过主桥104被发送到处理器复合体。 According to one implementation, the introduction of ASSERT_INTx / DEASSERT_INTx news, including the assertion (assert) interrupt message issued by the main bridge 104 is sent to the processor complex. 根据所图示的示例性实现,ASSERT_INTx/DEASSERT_INTx消息对的使用规则反映了PCI规范中的PCI INTx#信号的消息的使用规则,如上所述。 According to the illustrated example implementation, usage rules ASSERT_INTx / DEASSERT_INTx message to reflect the PCI specification usage rule PCI INTx # signal message, as described above. 对于来自任何一个设备的Assert_INTx的每次发送,通常都有对应的Deassert_INTx的发送。 For Assert_INTx from any one of the devices of each transmission, usually has a corresponding Deassert_INTx sent. 对于特定'x'(A、B、C或D),一般在发送Deassert_INTx之前只发送一次Assert_INTx。 For a particular 'x' (A, B, C or D), generally before sending Deassert_INTx sent only once Assert_INTx. 交换器一般会将Assert_INTx/Deassart_INTx消息路由到根复合体104,其中根复合体一般会跟踪Assert_INTx/Deassart_INTx消息以产生虚拟中断信号,并且将这些信号映射到系统中断资源。 Exchangers will normally Assert_INTx / Deassart_INTx route messages to the root complex 104, which will generally root complex tracking Assert_INTx / Deassart_INTx messages to generate virtual interrupt signals, and these signals are mapped to the system interrupt resources.

除了通用和系统管理消息组之外,EGIO体系结构建立了标准框架结构,其中核心逻辑(例如芯片组)厂商可以定义它们自己的厂商定义消息以迎合它们的平台的特定操作需求。 In addition to the GM and system management message groups, EGIO architecture to establish a standard framework, in which the core logic (such as chipset) vendors can define their own vendor-defined messages to meet the needs of their particular operation platform. 该框架结构是通过公共消息头部而建立的,在所述头部中厂商定义消息的编码被规定为“预留”。 The frame structure is established by the common message header, and the header encoded in vendor-defined messages are defined as "reserved."

事务描述符事务描述符是用于将事务信息从起点运送到服务点并送回的机制。 Transaction descriptor transaction descriptor is a mechanism for delivery of transaction information from the starting point and returned to service. 它提供可扩展装置用于提供可以支持新类型的新兴应用的一般互连解决方案。 It provides a scalable interconnect solutions generally means providing support for new types of emerging applications. 在这方面,事务描述符支持系统中的事务的标识、缺省事务排序的修改,以及使用虚拟信道ID机制关联事务与虚拟信道。 In this regard, modify transaction descriptors support system identifies the transaction, the default transaction ordering, and the use of virtual channel ID mechanism associated with the transaction with virtual channels. 参考图3,示出了事务描述符的示图。 Referring to Figure 3, there is shown a diagram of the transaction descriptor.

参考图3,根据本发明的教导示出了包括示例性事务描述符的数据报的示图。 Referring to Figure 3, according to the teachings of the present invention is shown, including an exemplary transaction descriptor datagram diagram. 根据本发明的教导,示出的事务描述符300包括全局标识符字段302、属性字段304和虚拟信道标识符字段306。 According to the teachings of the present invention, illustrating transaction descriptor 300 includes a global identifier field 302, 304 property field and virtual channel identifier field 306. 在所图示的示例性实现中,全局标识符字段302被描述为包括本地事务标识符字段308和源标识符字段310。 In the illustrated example implementation, the global identifier field 302 is described as including a local transaction identifier field 308 and a source identifier field 310.

·全局事务标识符302如这里所使用的,全局事务标识符对所有待处理的请求都是唯一的。 · A global transaction identifier 302] As used herein, the global transaction identifier for all pending requests are unique. 根据图3所图示的示例性实现,全局事务标识符302包括两个子字段:本地事务标识符字段308和源标识符字段310。 Illustrated in Figure 3 according to an exemplary implementation, the global transaction identifier 302 consists of two sub-fields: the local transaction identifier field 308 and a source identifier field 310. 根据一个实现,本地事务标识符字段308是由每个请求器产生的8比特字段,并且对于需要该请求器的完成的所有待处理请求它是唯一的。 According to one implementation, the local transaction identifier field 308 is an 8-bit field generated by each requestor, the requestor and the need for all pending completion request it is unique. 源标识符唯一地标识EGIO层次中的EGIO代理。 The source identifier uniquely identifies the EGIO hierarchy EGIO agents. 因此,本地事务标识符字段和源ID一起提供了在层次域中的事务的全局标识。 Therefore, the local transaction identifier field and source ID provides a global level domains identified in the transaction together.

根据一个实现,本地事务标识符308允许来自单个请求源的请求/完成不依顺序(遵守下面详细讨论的排序规则)而被操作。 According to one implementation, the local transaction identifier 308 allows requests from a single source of the request / completion of failing to order (to comply with the collation of detailed discussion below) is operated. 例如,读取请求源可以产生读取A1和A2。 For example, read requests can generate reads source A1 and A2. 处理这些读取请求的目的地代理会首先返回请求A2事务ID的完成,并且随后返回A1的完成。 Reads the requested destination address these agents will first return to complete the request A2 transaction ID, and then returned to A1 completed. 在完成分组头部中,本地事务ID信息将标识哪个事务将被完成。 Upon completion packet header, local transaction ID information will identify which transaction will be completed. 这种机制对于使用分布式存储器系统的装置尤为重要,因为它可以更有效的方式来操作读取请求。 This mechanism is particularly important for the use of a distributed memory system means, because it can be more efficient way to operate the read request. 应当注意,对这种不依顺序读取完成的支持假定了发布读取请求的设备将确保完成的缓冲器空间的预先分配。 It should be noted that the order of read completion of this failing support assumes the release device will ensure that the read request to complete the pre-allocated buffer space. 如上所述,只要EGIO交换机108不是端点(即,仅仅传送完成请求到适当的端点),它们就不需要预留缓冲器空间。 As described above, as long as EGIO switches 108 are not end points (i.e., only complete transfer request to the appropriate endpoint), they do not need to reserve buffer space.

单个读取请求可以产生多个完成。 Single read request can produce multiple complete. 属于单个读取请求的完成可以相互不依顺序的返回。 Completion of belonging to a single read request can not follow the order to return to each other. 这通过在完成分组头部(即,完成头部)中提供对应于部分完成的初始请求的地址偏移来只支持。 This is achieved by providing the complete packet header portion corresponding to the initial request to the completion of the address offset only support (i.e., completion header).

根据一个示例性实现,源标识符字段310包含16比特值,其对每个逻辑EGIO设备是唯一的。 According to an exemplary implementation, the source identifier field 310 contains a 16 bit value, which for each logical EGIO device is unique. 应当注意单个EGIO设备可以包括多个逻辑设备。 It is noted that a single EGIO device may comprise a plurality of logical devices. 在系统配置期间以对标准PCI总线枚举机制透明的方式分配源ID值。 To the standard PCI bus enumeration mechanism in a transparent manner Source ID values assigned during system configuration. EGIO设备使用例如在对那些设备的初始配置访问期间可用的总线号码信息以及用于表示例如设备号码和流号码的内部可用信息,在内部自动地建立源ID。 EGIO devices such as during the initial configuration of the access to those devices available bus number information, and is used to represent numbers and internal devices such as the number of available information flows automatically establish the source ID internally. 根据一个实现,该总线号码信息是在EGIO配置周期期间使用与PCI配置所使用的相类似的机制而产生的。 According to one implementation, the bus number information is to use a mechanism similar to the PCI configuration used during EGIO configuration cycles generated. 根据一个实现,总线号码由PCI初始化机制分配并由每个设备捕获。 According to one implementation, the bus number assigned by the PCI initialization mechanism captured by each device. 在热插拔和热交换设备的情况下,这些设备将需要在每个配置周期访问上重新捕获该总线号码信息以能够对热插拔控制器(例如,标准热插拔控制器(SHPC))软件栈透明。 In the case of hot-swap and hot-swap devices, these devices will need to re-capture the bus number information on every configuration cycle access to be able to hot-swap controller (for example, the standard hot-swap controller (SHPC)) software stack transparent.

根据EGIO体系结构的一个实现,物理组件可以包含一个或多个逻辑设备(或代理)。 According to one implementation of the EGIO architecture, a physical component may comprise one or more logical devices (or proxy). 每个逻辑设备被设计成响应于指定到其特定设备号码的配置周期,即,在逻辑设备中加入了设备号码的概念。 Each logical device is designed to be responsive to its particular device number assigned to the configuration of the cycle, i.e., the logical device number of the device by adding the concept of. 根据一个实现,在单个物理组件中允许多达十六个逻辑设备。 According to one implementation, a single physical component allows up to sixteen logical devices. 每个这样的逻辑设备可以包括一个或多个流化(streaming)引擎,例如最多16个。 Each such logic devices may include one or more fluidized (streaming) engines, e.g. up to 16. 因此,单个物理组件可以包括多达256个流化引擎。 Thus, a single physical component may comprise up to 256 streaming engine.

由不同源标识符标记的事务属于不同的逻辑EGIO输入/输出(IO)源,并且从而从排序的方面来看可以相互完全独立地操作这些事务。 Marked by a different source identifiers belong to different logical EGIO transaction input / output (IO) sources, and thus can operate completely independent of each other in terms of these transactions sort of view. 对于三方、对等事务的情况,如果需要可以使用防护排序控制原语来强制排序。 In the case of the three parties on other matters, and if necessary use protective ordering control primitives to enforce the order.

如这里所使用的,事务描述符300的全局事务标识符字段302遵守下列规则的至少一个子集:(a)每个需要完成的请求用全局事务ID(GTID)来标记;(b)由代理发起的所有待处理的需要完成的请求一般应当分配唯一的GTID;(c)不需要完成的请求不使用GTID的本地事务ID字段308,并且本地事务ID字段被认为是预留的;(d)目标不需要以任何方式来修改请求GTID,而只是为所有与请求相关联的完成在完成分组的头部中回应它,其中发起者使用GTID将(多个)完成与原始请求相匹配。 As used herein, the transaction descriptor global transaction identifier field 300, 302 subject to the following rules at least a subset of: (a) for each request needs to be done with a global transaction ID (GTID) to mark; (b) by the agent need to complete all pending requests initiated by the general should be assigned a unique GTID; (c) does not require the completion of the request does not use GTID local transaction ID field 308, and the local transaction ID field is considered to be reserved; (d) target does not require in any way to modify the request GTID, but only for the completion of all associated with the request in response to completion of its header of the packet, wherein the initiator used the GTID (s) to match the original request complete.

·属性字段304 · Attribute field 304

如这里所使用的,属性字段304指明了事务的特性和关系。 As used herein, attributes field 304 specifies characteristics and relationships of the transaction. 在这方面,属性字段304被用于提供允许修改事务的缺省操作的额外信息。 In this regard, the attribute field 304 is provided to allow the transaction to modify the default action for additional information. 这些修改可以应用于在系统中操作事务的不同方面,例如排序、硬件一致性(coherency)管理(例如探听(snoop)属性)和优先级。 These modifications can be applied to the transaction in the system operate on different aspects, such as sorting, hardware consistency (coherency) management (such as Snoop (snoop) property) and priority. 一种示例性格式以子字段312-318来表示属性字段304。 An exemplary format subfield 312-318 to indicate an attribute field 304.

如所示,属性字段304包括优先级子字段312。 As shown, the attribute field 304 includes a priority sub-field 312. 优先级子字段可以由发起者修改以为事务分配优先级。 Priority sub-fields can be modified by the originator of the transaction that assign priority. 在一个示例性实现中,事务或代理的服务特性的等级或质量可以在优先级子字段312中实现,从而影响其它系统元件进行的处理。 In one exemplary implementation, the grade or quality of service characteristics of the transaction or the agent may be implemented in the priority sub-field 312, thereby affecting processing of other system components.

预留属性字段314为将来或厂商定义用途而被预留。 Reserved attribute field 314 for future use or vendor-defined and reserved. 通过使用预留属性字段可以实现使用优先级或安全属性的用途模型。 By using the reserved property field model can achieve the intended use priority or security attributes.

排序属性字段316被用于提供用来传达排序类型的可选信息,所述信息可以修改同一排序平面(plane)(其中排序平面包括由具有对应的源ID的IO设备和主处理器(102)发起的流量)内的缺省排序规则。 Sort attribute field 316 is used to provide optional information used to convey the type of sort of the same sort of information you can modify the plane (plane) (which includes ordering the plane has a corresponding source ID of the IO device and the host processor (102) The default collation is initiated traffic) within. 根据一个示例性实现,排序属性'0'表示将应用缺省的排序规则,而排序规则'1'表示松散(relaxed)排序,其中在同一方向上写入可以超过写入,并且在同一方向上读取完成可以超过写入。 According to one exemplary implementation, the sort attribute '0' indicates a default collation will be applied, and the collation of '1' indicates loose (relaxed) sort, which is written in the same direction can be written over and in the same direction You can read the complete than written. 使用松散排序语义的设备主要用于以缺省排序来为读取/写入状态信息移动数据和事务。 Use a loose sort of semantic devices are mainly used in the default sorting of read / write status messages and mobile data services.

探听属性字段318被用于提供用来传达高速缓存一致性管理的类型的可选信息,所述信息可以修改同一排序平面内的缺省高速缓存一致性管理规则,其中排序平面包括由具有对应的源ID的IO设备和主处理器(102)发起的流量。 Snoop attribute field 318 is used to provide optional information used to convey the type of cache coherency management of the information you can modify the default cache coherency management rules within the plane of the same sort, which includes ordering the plane has a corresponding Source ID IO device and the host processor (102) sponsored traffic. 根据一个示例性实现,探听属性字段318值'0'对应于缺省高速缓存一致性管理方案,其中探听事务以增强硬件级别的高速缓存一致性。 According to an exemplary implementation, the snoop attribute field 318 value of '0' corresponds to a default cache coherency management scheme wherein the snoop transaction to enhance the hardware level cache coherency. 另一方面,探听属性字段318中的值'1'中止缺省高速缓存一致性管理方案,并且事务没有被探听。 On the other hand, snoop attribute field 318 value '1' suspend the default cache coherency management solutions, and the transaction was not snooping. 相反,所访问的数据或者是非可高速缓存的(non-cacheable),或者其一致性由软件来管理。 Instead, the data accessed or non-cacheable (non-cacheable), or by the software to manage its consistency.

·虚拟信道ID字段306如这里所使用的,虚拟信道ID字段306标识与事务相关联的独立虚拟信道。 · Virtual channel ID field 306 As used herein, the virtual channel ID field 306 identifies the virtual channel independently associated with the transaction. 根据一个实施例,虚拟信道标识符(VCID)是4比特字段,其允许以每个事务为基础来标识多达16个虚拟信道(VC)。 According to one embodiment, the virtual channel identifier (VCID) is a four-bit field, which allows to identify each transaction as the basis of up to 16 virtual channels (VC). 下面的表I中提供了VCID定义的一个示例: Table I below provides an example of VCID definition:

表I:虚拟信道ID编码虚拟信道根据本发明的一个方面,EGIO接口106的事务层202支持在EGIO通信链路112的带宽内建立和使用(多条)虚拟信道。 Table I: Virtual Channel ID 202 supports a virtual channel coding in the EGIO communication link bandwidth 112 to establish and use (s) the virtual channel in accordance with one aspect of the present invention, EGIO interface 106 of the transaction layer. 如上所述的本发明的虚拟信道(VC)方面被用于基于将要通过信道传输的内容的所需的独立性而在单个物理EGIO链路112中定义单独的逻辑通信接口。 Virtual channel (VC) aspect of the present invention as described above is used will be defined based on separate logical communication interfaces within a single physical EGIO link 112 by the required independence of the content of the transmission channel. 在这方面,虚拟信道可以基于一个或多个特性来建立,例如带宽需求、服务等级、服务类型(例如系统服务信道)等等。 In this regard, virtual channels may be based on one or more characteristics of the establishment, such as bandwidth requirements, service level, service type (e.g., system service channel) and the like.

(多条)虚拟信道和流量(或事务)等级标识符的组合被提供以支持某些等级的应用支持的有区别的服务和服务质量(QoS)。 (More than) a combination of virtual channel and flow (or transaction) level identifier is provided to support some level of application support services and quality differentiated service (QoS). 如这里所使用的,流量(或事务)等级是事务层分组标签,其通过EGIO组织结构而未经修改端到端地进行传输。 As used herein, the flow rate (or transaction) grade is a transaction layer packet label, its organizational structure by EGIO transmitted unmodified end to end. 在每个服务点(例如,交换器、根复合体等等)处,服务点使用流量等级标签来应用适当的服务策略。 In each service point (for example, switches, root complex, etc.) at the point of service using a flow rating label to apply the appropriate service strategy. 在这方面,单独的VC被用于映射流量,所述流量将从不同操作策略和服务优先级获益。 In this regard, a separate VC to be used to map the flow, the flow from the various operating policies and service priority benefit. 例如,就确保T时间段内所传输的数据量X而言,需要确定性服务质量的流量可以被映射到同步(或时间协同)虚拟信道。 For example, to ensure that the amount of data transmitted X period of time T, the need for deterministic quality of service may be mapped to a synchronous flow (or time synergistic) virtual channel. 映射到不同虚拟信道的事务相互之间可以没有任何排序需求。 Mapped to different virtual channels may not have any mutual transactions between the sequencing requirement. 即,虚拟信道作为单独逻辑接口来操作,其具有不同的流控制规则和属性。 That is, virtual channels operate as separate logical interfaces, having different flow control rules and attributes.

根据本发明的一个示例性实现,EGIO兼容元件的每个EGIO通信端口(输入或输出)包括端口能力数据结构(未具体描述)。 According to an exemplary implementation of the present invention, EGIO compatible with each EGIO communication port (input or output) element comprises a port capability data structure (not specifically illustrated). 包括(a)由端口支持的虚拟信道的数目,(b)与每个虚拟信道相关联的流量等级,(c)端口VC状态寄存器,(d)端口VC控制寄存器,以及(e)与这样的虚拟信道相关联的仲裁方案中的一个或多个的关于端口能力的信息保持在端口能力数据结构中。 Including (a) by the number of ports supported channel virtual, (b) and each virtual channel associated with the traffic class, (c) a port VC status register, (d) port VC control registers, and (e) of this virtual channel associated with the arbitration scheme of one or more of the ability to maintain information about the port in the port capability data structure. 根据一个示例性实现,以每个链路、每个VC为基础在耦合的元件之间协商通信操作参数和关联的端口能力参数。 According to an exemplary implementation, to each link, each VC to port capability parameters based negotiation between the coupling element and the associated communication operation parameters.

对于由主处理器102发起的流量,虚拟信道可以要求基于缺省排序机制规则的排序控制,或者可以完全不依顺序地操作流量。 Initiated by the main processor 102 for traffic, the virtual channel can request the default sort mechanism sorting rule-based control, or can operate completely failing to flow sequentially. 根据一个示例性实现,VC包含下列两种类型的流量:通用IO流量和同步流量。 According to an exemplary implementation, VC contains the following two types of traffic: general purpose IO traffic, and synchronous traffic. 即,根据该示例性实现,描述了两类虚拟信道:(1)通用IO虚拟信道,和(2)同步虚拟信道。 That is, according to the exemplary implementation, describes the two types of virtual channels: (1) general purpose IO virtual channels, and (2) the synchronization of virtual channels.

如这里所使用的,事务层202为组件主动支持的一个或多个虚拟信道的每个保持独立流控制。 As used herein, transaction layer 202 of the active component to support one or more virtual channels remain independent of each flow control. 如这里所使用的,所有的EGIO兼容组件一般都会支持缺省通用IO类型虚拟信道,例如虚拟信道0,它的服务等级是“尽最大努力(best effort)”,其中在这一类型的不同虚拟信道之间不需要排序关系。 As used herein, all of the EGIO compatible components will generally support a default general IO type virtual channel, such as a virtual channel 0, its service level is "best effort (best effort)", which differ in the type of virtual the relationship between the channel does not require sorting. 缺省地,VC0被用于通用IO流量,而VC1或更高(VC1-VC7)被分配用于操作同步流量。 By default, VC0 be used for general purpose IO traffic, and VC1 or higher (VC1-VC7) is allocated for the operation to synchronize traffic. 在另一个实现中,任何虚拟信道都可以被分配用于操作任何流量类型。 In another implementation, any virtual channel may be assigned to operate any type of traffic. 参考图4,示出了包括多条独立管理的虚拟信道的EGIO链路的概念示图。 Referring to Figure 4, a diagram illustrating the concept of a virtual channel comprising a plurality of independent management of the EGIO link.

参考图4,根据本发明的一个方面,示出了包括多条虚拟信道(VC)的示例性EGIO链路112的示图。 Referring to Figure 4, according to one aspect of the present invention, is shown comprising a plurality of virtual channels (VC) is an illustration of an exemplary EGIO link 112. 根据图4所图示的示例性实现,示出的EGIO链路112包括在EGIO接口106之间创建的多条虚拟信道402、404。 Illustrated in Figure 4 according to an exemplary implementation, the EGIO link 112 is shown comprising multiple virtual channels 106 created between EGIO interface 402,404. 根据一个示例性实现,对于虚拟信道402,示出了来自多个源406A...N的流量,这些流量至少由它们的源ID来区分。 According to an exemplary implementation, the virtual channel 402, shows a plurality of sources 406A ... N of traffic from, the traffic source, at least by their ID to distinguish. 如所示,建立了虚拟信道402,并且在来自不同源(例如,代理、接口等)的事务之间没有排序需求。 As shown, virtual channel 402 was established, and in between transactions from different sources (e.g., agents, interfaces, etc.) are not sorted needs.

类似地,示出的虚拟信道404包括来自多个源多个事务408A...N的流量,其中每个事务由至少一个源ID指示。 Similarly, the illustrated channel 404 comprises a virtual flow 408A ... N wherein each transaction consists of at least one source ID indicating a plurality of transactions from a plurality of sources. 根据图示的示例,来自源ID0 406A的事务被严格排序,除非由事务头部的属性字段304所修改,而来自源408N的事务没有这样的排序规则。 According to the example shown, from the source ID0 406A transactions are strictly sorted, unless the head of affairs by the property field 304 changes, and transactions from source 408N no such collation.

同步信道如上所述,建立同步信道以在电子装置100的EGIO体系结构中的请求器代理和(多个)完成器代理之间传输对时间敏感的内容(例如,多媒体内容流)。 Synchronization channel As described above, in order to establish the synchronization channel in EGIO architecture of the electronic device 100 and a request agent (s) to complete the transfer agent between the time sensitive content (e.g., multimedia content stream). 根据一个示例性实现,在EGIO体系结构之间存在两个不同的同步通信范例,例如,端点到根复合体模型以及对等(或端点到端点)通信模型。 According to an exemplary implementation, there are two different examples of synchronous communication between EGIO architecture, e.g., end-to-root complex model and a peer (or endpoint to endpoint) communication model.

在端点到根复合体模型中,主要的同步流量是对根复合体104的存储器读取和写入请求以及来自根复合体104的读取完成。 In the end-to-root complex model, the main flow is synchronized root complex 104 of the memory read and write requests and read from the root complex 104 is completed. 在对等模型中,同步流量局限为单播(unicast)、仅压入(push-only)事务(例如,诸如存储器写入的公布事务或消息)。 In the peer model, the synchronization limitations for unicast traffic (unicast), only pushed (push-only) transaction (e.g., such as a memory write transaction or message publication). 仅压入事务可以在单个主域中或是多个主域中。 Transactions can only push a single or multiple master domain primary domain.

为了支持具有保证带宽和确定性服务延迟的同步数据传输,在请求器/完成器对和EGIO通信组织结构之间建立了同步“协定”。 To support synchronous data transmission services with guaranteed bandwidth and deterministic latency, in requester / finisher EGIO communication between organizational structure and the establishment of a synchronous "agreement." 根据一个实施例,“协定”将执行资源预留和流量调整以防止虚拟信道上的拥塞和过度预约。 According to one embodiment, "Agreement" will perform resource reservation and flow rate adjustment in order to prevent congestion on the virtual channel and excessive reservation.

参考图5,示出了用于在EGIO体系结构中建立并管理同步通信信道的示例性方法。 Referring to Figure 5, there is shown an exemplary method for establishing and managing a synchronous communication channel EGIO architecture. 根据图5所图示的示例性实施例,方法以方框502开始,其中识别了EGIO组织结构的一个或多个元件(即、根复合体104、交换器108、端点110、链路112、桥114等等)的通信能力。 According to Figure 5 the illustrated exemplary embodiment, the method begins in block 502, wherein identifying the one or more elements of EGIO structure (i.e., a root complex 104, switch 108, endpoint 110, link 112, bridge 114, etc.) of communication capabilities.

根据一个示例性实现,EGIO组织结构的至少一个子集的通信能力对根复合体104的带宽管理器公开,该带宽管理器管理EGIO体系结构中的同步通信资源的地址分配。 According to an exemplary implementation, the communication capability of at least a subset of EGIO organizational structure of a root complex 104 discloses a bandwidth manager, the address of the Bandwidth Manager EGIO architecture synchronous communication resource allocation. 在元件的初始化期间发生元件的通信能力的公开,例如在主电子装置100启动的时候,或者在EGIO兼容设备热插拔到主电子装置的时候。 Communication capabilities disclosed in the main element, for example, when the electronic device 100 is started, or in a hot-swap EGIO compliant devices to the master device when the electronic component occurred during the initialization,. 根据一个实施例,公开的信息(例如来自EGIO代理106中的数据结构)包括端口标识、端口地址分配、(多个)虚拟信道分配、带宽能力等等中的一个或多个。 According to one embodiment, the disclosed information (e.g., from EGIO proxy data structure 106) comprises a port identification, port address assignment, (multiple) virtual channel allocation, bandwidth capability, etc. of one or more embodiments. 该信息保存在可由带宽管理器访问的数据结构中以用于生成同步协定,这在下文将详细描述。 This information may be stored in the bandwidth manager to access a data structure for generating a synchronization protocol, which will be described in detail hereinafter.

在电子装置100的常规操作过程期间,可能需要或期望在装置100中的两个(或多个)代理之间建立同步通信信道。 During normal operation of the electronic device 100, may be necessary or desirable in the apparatus 100 of two (or more) to establish a communication channel between the synchronization proxy. 在这种情况下,在方框504中,根复合体104的带宽管理器从(或代表)请求器/完成器对接收对EGIO组织结构中的同步通信资源的请求。 In this case, in block 504, a root complex 104 from the bandwidth manager (or on behalf of) a requester / receives a request for completion of the organizational structure of the EGIO synchronous communication resources. 如这里所使用的,请求包括诸如带宽和服务延迟需求的期望通信资源的指示。 As used herein, including such as bandwidth request indication and service latency requirements of the desired communication resource.

在方框506中,在接收到同步通信资源的请求之后,根复合体104的带宽管理器分析EGIO体系结构的至少一个适当子集的可用通信资源,以在方框508中确定同步通信资源的请求是否合适。 In block 506, after receiving the request isochronous communication resources, the bandwidth of root complex 104 analyzes the available communication resource manager at least one suitable sub-set of the EGIO architecture to determine the synchronous communication resources in block 508 the request is appropriate. 根据一个实施例,根复合体104的带宽管理器分析包括了请求器和完成器之间的通信路径的与端口106、(多个)交换器108、(多条)链路112等相关联的信息,来确定是否可以满足合同步通信请求的带宽和服务延迟需求。 According to one embodiment, root complex 104 analyzes the bandwidth manager comprises a communication path between the request and the completion of the port 106, (s) switch 108, (s) 112 and other associated links information to determine whether to meet the bandwidth and service contract request further communication latency requirements. 在另一个实施例中,请求器/完成器对只是以逐个链路为基础在它们自身和任何介入元件之间建立同步协定(或关于操作参数的协商协约)如果在方框508中根复合体104的带宽管理器确定请求的通信资源不可用,则根复合体丢弃同步信道的请求,并且在方框510中可以提供所请求的资源不可用的指示。 In another embodiment, the requester / complete pair-by-link basis only between themselves and any intervening elements to establish synchronization agreement (or negotiated agreement on operating parameters) If in block 508 the root complex 104 Bandwidth Manager determines that the requested communication resources are not available, the root complex drop request synchronization channel, and may be provided in block 510 the requested resource is unavailable indication. 根据某些实施例,可用资源的指示会提供给请求器/完成器对,随后请求器/完成器对还是根据所指示的可用资源,可以决定重新发布同步通信资源的请求。 According to some embodiments, an indication of the available resources will be provided to the requester / complete pair, then the requester / complete pair or indicated in accordance with available resources, may decide to re-publish synchronous communication resource requests. 在另一个实施例中,带宽管理器将通知请求了资源的实体分配了某个带宽(其可能小于所请求的)。 Embodiment, the bandwidth manager will notify the entity requesting resources allocated a certain bandwidth (which may be less than the requested) in another embodiment. 在这种情况下,请求实体不需要重新发布请求。 In this case, the requesting entity is not required to re-release request.

根据一个示例性实施例,在确定是否能满足对同步通信资源的请求时,并且在方框512中建立同步协定时,根复合体104的带宽管理器如下计算请求器/完成器对的带宽需求:BW=(N*Y)/T According to an exemplary embodiment, in determining whether to meet the request for isochronous communication resources, the agreement and establishes synchronization in block 512, the root complex 104 bandwidth manager as bandwidth requirements calculated requester / Finisher pairs : BW = (N * Y) / T

[1]公式将分配带宽(BW)定义为在特定时间段(T)内具有特定有效载荷大小(Y)的事务的特定数目(N)的函数。 [1] formula allocates bandwidth (BW) is defined as a transaction with a particular payload size (Y) at a specific time period (T) within a specific number (N) function.

同步协定中的另一个重要参数是延迟。 Synchronization agreements Another important parameter is the delay. 基于协定,同步事务可以在特定的延迟(L)内完成。 Based on the agreement, the transaction can be completed in a specific synchronization delay (L) inside. 一旦带宽管理器允许请求器/完成器对进行同步通信,在常规操作条件下,完成器和介入的EGIO体系结构元件(例如,交换器、(多条)链路、根复合体等等)向请求器保证带宽和延迟。 Once the Bandwidth Manager allows requester / finisher for synchronous communication, under normal operating conditions, to complete the EGIO architecture elements and intervention (e.g., switches, (multiple) link, root complex, etc.) to requester guaranteed bandwidth and latency.

因此,在方框512中产生的同步协定规定了由(多个)EGIO接口106实现的特定服务纪律,该接口106参与了EGIO体系结构中的同步通信。 Therefore, the synchronization protocol generated in block 512 specified by a particular service discipline (s) EGIO interface 106 implemented, the participation of the EGIO interface 106 architecture synchronous communication. 以下述方式将服务纪律作用于EGIO交换器108和完成器(例如,端点110、根复合体104等等),即注入请求的服务受特定服务时间间隔(t)支配。 Service discipline in the following manner acting on EGIO switches 108 and completion (e.g., endpoints 110, root complex 104, etc.), i.e., by injection of a specific service request service interval (t) dominate. 该机制用于提供当请求器发出的同步分组被处理时的控制方法。 The mechanism for providing a control method for the synchronization request packet is emitted when the processing.

因此,在方框514中以下述方式管理同步流量,即只有遵照协商的同步协定而被注入到EGIO体系结构的分组才允许立即前进,并且开始由EGIO体系结构元件处理。 Thus, in block 514 in the following manner synchronized traffic management, i.e., only in accordance with negotiated agreements synchronization packet is injected into the EGIO architecture are allowed to advance immediately, and starts processing by the EGIO architecture elements. 通过流控制机制,阻止了试图注入比按照协商协议允许的更多的同步流量的不兼容请求器进行这样的操作,这将在下文详细描述(例如见数据链路层特征集)。 Through the flow control mechanism, attempt to prevent the injection ratio in accordance with the negotiated protocol allows incompatible requester more simultaneous traffic conduct such operations, which will be described below in detail (see e.g., data link layer feature set).

根据一个示例性实现,同步时间段(T)被均匀的划分为多个虚拟时隙(t)的单元。 According to an exemplary implementation, the synchronization period (T) is evenly divided into a plurality of virtual time slots (t) of the unit. 在一个虚拟时隙中最多允许一个同步请求。 In a virtual slot allows up to a synchronous request. 根据一个实施例,作为EGIO接口的数据结构中的头部信息来提供由EGIO组件支持的虚拟时隙的大小(或持续时间)。 Depending on the size (or duration) of one embodiment, as a data structure of the EGIO interface header information provided by the EGIO component supports virtual slots. 在另一个实现中,在接收到初始化事件(例如,冷启动、复位等等)时,通过来自EGIO组件的广播消息来报告虚拟时隙的大小。 In another implementation, upon receipt of the initialization event (for example, a cold start, reset, etc.), by broadcasting messages from EGIO component to report the size of the virtual slot. 在另一个实现中,在接收到专用请求消息时,通过来自EGIO组件的专用信息消息来报告虚拟时隙的大小。 In another implementation, the special request message is received by the message from the EGIO component-specific information to report the size of the virtual slot. 在另一个实现中,虚拟时隙的大小可以是固定的,并且同步带宽管理器软件可以下述方式交错嵌入有效(active)和无效(inactive)时隙(在带宽分配期间),所述方式有效地创建“较宽”的时隙。 In another implementation, the size of virtual timeslot can be fixed, and the synchronous bandwidth manager software can be embedded in such a manner staggered valid (active) and inactive (inactive) time slots (during bandwidth assignment), the mode effective create "wider" time slots.

根据一个实施例,虚拟时隙(t)的持续时间是100ns。 According to one embodiment, the virtual timeslot (t) is the duration of 100ns. 同步时间段(T)的持续时间取决于所支持的基于时间仲裁方案(例如,基于时间加权轮询(weighted round-robin,WRR)(或加权顺序))的阶段(phase)数目。 Synchronization period (T) depends on the duration of the supported time-based arbitration scheme (e.g., time-based weighted round-robin (weighted round-robin, WRR) (or weighted sequential)) of the stage (phase) number. 根据一个实施例,阶段数目由同步虚拟时隙的数目规定,并且由每个元件中保持的端口仲裁表中的条目数目指示。 According to one embodiment, the number of stages by a predetermined number of synchronous virtual slots, and held by each element in the port arbitration table entry number indication. 当端口仲裁表大小等于128时,在同步时间段中有128个虚拟时隙(t),即,T=12.8μs。 When the port arbitration table size equals 128, there are 128 virtual timeslots (t) during the synchronization period, i.e., T = 12.8μs.

根据一个示例性实施例,在EGIO配置期间建立同步事务的最大有效载荷大小(Y)。 According to an exemplary embodiment, the establishment of synchronous transactions during EGIO configure the maximum payload size (Y). 在配置之后,在给定EGIO层次域最大有效载荷大小是固定的。 After you configure a given level domain EGIO maximum payload size is fixed. 固定最大有效载荷大小的值被用于同步带宽预算,而不考虑与请求器/完成器之间的同步事务相关联的数据有效载荷的实际大小。 Fixed maximum payload size is used to synchronize the bandwidth budget without considering the actual size of the data requester / complete synchronization between transactions associated payload.

在讨论了同步时间段(T)、虚拟时隙(t)和最大有效载荷(Y)的条件下,时间段中的虚拟时隙的最大数目是:Nmax=T/t[2]并且,最大可指定同步带宽是:BWmax=Y/t[3]从而,同步带宽可以分配的粒度(granularity)定义如下:BW粒度=Y/T[4]将同步带宽BW链路分配给通信链路112与按照每个同步时间段(T)分配N链路虚拟时隙相类似,其中N链路由下式给出:N链路=BW链路/BW粒度[5]为了保持对链路的受调节的访问,用作同步流量的出口(egressport)的交换器端口建立具有多达Nmax个条目的数据结构,其中Nmax是在给定链路带宽、粒度和延迟需求的条件下容许的同步会话的最大数目。 Under conditions discussed synchronization period (T), the virtual time slots (t) and the maximum payload (Y), the maximum number of time slots is virtual: Nmax = T / t [2] and the maximum Synchronous bandwidth can be specified is: BWmax = Y / t [3] Thus, the synchronous bandwidth allocation granularity (granularity) is defined as follows: BW size = Y / T [4] The synchronous link bandwidth BW assigned to the communication link 112 and N time slots allocated for each virtual link synchronization period (T) are similar, where N link is given by: N = BW link Link / BW size [5] In order to maintain the link by adjusting access, used as a synchronization flow outlet (egressport) switch port to establish a data structure having entries up to Nmax, where Nmax is the maximum under the conditions given the link bandwidth, granularity and latency requirements of acceptable synchronization session number. 表中的一个条目代表同步时间段(T)中的一个虚拟时隙。 A synchronization table entry represents the time period (T) of a virtual slot. 当表条目被给定端口号码(PN)的值时,意味着该时隙被分配给由端口号码指定的入口(ingress port)。 When the table entry is given port number (PN) value, which means that the time slot is assigned to the port number specified by the entrance (ingress port). 因此,当端口仲裁表中的N链路条目被给定了PN的值时,N链路虚拟时隙被分配给入口。 Thus, when the N port arbitration table given the link entry is the value of the PN, N time slots are allocated to the virtual link inlet. 只有当由出口的同步时间计数器(其每隔t时间增加1,并且当到达T时重新开始计数)访问的表条目被设定为PN时,出口才会容许来自入口的对其它服务的一个同步请求事务。 Only when the counter from the outlet of the synchronization time (which is incremented by one every time t, and when the counting is started again reaches T) table entry is set to access the PN, which will permit the outlet from the inlet of the other services a synchronous request transaction. 即使在入口 中准备好了待处理的同步请求,直到下一轮仲裁(例如,基于时间、加权轮询(WRR)仲裁)才会处理它。 Even better prepared in the inlet synchronization request pending until the next round of arbitration (for example, time-based, weighted round robin (WRR) arbitration) will handle it. 以此方式,基于时间的端口仲裁数据结构用作同步带宽分配和流量调节。 In this way, time-based data structure is used as a port arbitration synchronous bandwidth allocation and flow regulation.

如这里所使用的,上面讨论的事务延迟由通过EGIO组织结构的延迟和完成器产生的延迟两者组成。 As used herein, the transaction latency discussed above is delayed by both the structure produced by the EGIO delay and complete composition. 为每个事务定义同步事务延迟,并且以虚拟时隙t为单位测量同步事务延迟。 For each transaction definition synchronous transaction latency, and virtual slot t synchronous transaction latency measurement units.

对于端点到根复合体通信模型中的请求器,读取延迟定义为往返程延迟,即,从设备向它的事务层递交存储器读取请求分组(在发送方)时到对应的读取完成到达设备的事务层(接收方)时的延时。 For end-to-root complex communication model requester, read latency is defined as the round-trip delay, namely, from the device to its memory read request to submit the transaction layer packet (the sender) to the corresponding read completion time arrives Delay transaction layer (receiver) when the apparatus. 对于任一个通信模型中的请求器,写入延迟定义为从请求器发送存储器写入请求到其事务层的发送端时到数据写入变得在完成器的存储器子系统中全局可见时的延时。 Data is written to the delay in the completion of becoming the global memory subsystem visible when a communication model for any request, a delay is defined as sending memory write request is a write request from the sender to its transaction layer time. 当访问存储器地址的所有代理获得更新数据时,对存储器的写入达到全局可见的情况。 When accessing the memory address of all agents get updated data is written to the memory of reach globally visible circumstances.

作为同步协定的一部分,提供了同步事务延迟的上边界和下边界。 As part of the synchronization agreement provides synchronous and lower bounds on the delay of the transaction. 请求器中的同步数据缓冲器大小可以使用最小和最大同步事务延迟来确定。 Requestor synchronization data buffer size can be used to synchronize the minimum and maximum transaction latency to determine. 如下文所详细介绍的,最小同步事务延迟比最大同步事务延迟小得多。 As will be described in detail, the minimum synchronous transaction latency synchronous transaction latency is much less than the maximum.

对于请求器,可以根据下面的等式(6)来计算最大同步(读取或写入)事务延迟(L),L=L组织结构+L完成器[6]其中L组织结构是EGIO组织结构的最大延迟,而L完成器是完成器的最大延迟。 For a requester, can be calculated from the following equation (6) the maximum sync (read or write) transaction latency (L), L = L + L complete structure [6] wherein L is EGIO Structure Structure The maximum delay, and L is the maximum delay completion of the completion of the.

EGIO链路112或EGIO组织结构的事务延迟定义为从事务在发送端公布时到它在接收端可用时的延时。 112 or EGIO EGIO link Affairs delay defines the organizational structure of the transaction announced from the sender to the delay at the receiving end of it available. 这适用于读取和写入事务两者。 This applies to both read and write transactions. 在这方面,L组织结构取决于拓扑结构、由每条链路112引起的延迟以及从请求器到完成器的路径中的仲裁点。 In this regard, L organizational structure depends on the topology, the delay caused by each link 112, and the path from requester to complete the arbitration point.

继续参考图5,过程前进到方框516,其中带宽管理器确定同步通信信道的使用是否完成。 With continued reference to FIG. 5, the process proceeds to block 516, bandwidth manager determines which communication channel to use the synchronization is complete. 即,带宽管理器确定同步通信对话是否已经结束,并且因而确定为支持同步信道而分配的虚拟信道资源是否可被释放而由EGIO组织结构使用。 That is, bandwidth manager determines whether the synchronous communication session has ended, and thus determines whether to support the synchronization channel and allocated virtual channel resources may be released and used by EGIO structure. 根据一个实施例,带宽管理器从一个或多个请求器/完成器对接收指示,即不再需要同步资源的指示。 According to one embodiment, the bandwidth manager from one or more of the requester / completed implementation of the receiving device indicating that no longer needs to indicate the synchronization of resources. 在另一个实施例中,在某个无效时间段之后带宽管理器推断出同步通信已经结束。 In another embodiment, after a certain period of time is not valid to deduce the bandwidth manager for synchronous communication has ended.

如果在方框516中带宽管理器确定同步通信没有结束,则过程回到方框514。 If in block 516, bandwidth manager determines that synchronous communication is not over, the process returns to block 514.

或者,过程前进到方框518,其中带宽管理器取消同步协定,从而释放该带宽以支持余下的虚拟信道。 Alternatively, the process proceeds to block 518, wherein the bandwidth manager to cancel the synchronization protocol, thereby releasing the remaining bandwidth to support the virtual channel. 根据一个实施例,带宽管理器通知EGIO体系结构的一个或多个其他元件,同步协议不再有效。 According to one embodiment, bandwidth manager notifies one or more other elements, the synchronization protocol EGIO architecture is no longer valid.

事务排序尽管使所有响应依次序被处理可能更简单,但是事务层202试图通过准许事务的重新排序来提高性能。 Although the transaction ordering that all responses are processed in order, it may be easier, but the transaction layer 202 attempts to allow the transaction reordering to improve performance. 为了便于这样的重新排序,事务层202“标记”事务。 To facilitate such re-ordering, transaction layer 202 "tags" transactions. 即根据一个实施例,事务层202添加事务描述符到每个分组,使得它的传输时间可以由EGIO体系结构中的元件来优化(例如,通过重新排序),且不会丢失分组最初被处理的相对顺序。 That is, according to one embodiment, transaction layer 202 adds the transaction descriptor to each packet such that its transmit time may by EGIO architecture elements to optimize (e.g., by re-ordering), without losing the packet was originally processed The relative order. 这样的事务描述符被用于帮助请求和完成分组通过EGIO接口层次而进行路由。 Such a transaction descriptor is used to help complete the request and grouping by EGIO interface hierarchy and routing.

因而,EGIO互连体系结构和通信协议的创新方面之一是它提供了不依顺序通信,从而通过减少空闲或等待状态来提高数据吞吐量。 Thus, one innovative aspect EGIO interconnection architecture and communication protocol is that it provides a non-compliance sequential communication, so that by reducing the idle or standby status to improve data throughput. 在这方面,事务层202使用了一组规则来定义EGIO事务的排序需求。 In this regard, the transaction layer 202 uses a set of rules to define the sort needs EGIO affairs. 定义了事务排序需求来确保软件的正确操作,所述软件被设计成支持生产者-消费者排序模型,同时允许基于不同排序模型(例如,图形附着应用的松散排序)的应用的改进的事务操作灵活性。 Defines the transaction ordering software needs to ensure proper operation of the software is designed to support producer - consumer ordering model, while allowing to improve the application of different ranking model (eg, graphics applications, loosely attached to sort) transaction-based operations flexibility. 下文描述了两种不同类型的排序需求:单个排序平面模型和多个排序平面模型。 The following describes the two different types of sorting needs: single and multiple sort ordering plane model plane models.

·基本事务排序-单个“排序平面”模型假定以下两个组件通过与图1相似的EGIO体系结构连接起来:存储器控制集线器,提供到主处理器和存储器子系统的接口;以及IO控制集线器,提供到IO子系统的接口。 · Basic transaction ordering - a single "flat sorting" model assumes that the following two components linked with a similar figure by EGIO architecture: the memory controller hub, providing an interface to the host processor and the memory subsystem; and IO controller hub, providing interface to IO subsystem. 两个集线器都含有用于操作输入和输出流量的内部队列,并且在这个简单模型中所有IO流量都被映射到单个“排序平面”。 Two hubs contain internal queues for incoming and outgoing traffic operations, and in this simple model all IO traffic is mapped to a single "ordering plane." (注意,事务描述符源ID信息为EGIO层次中的每个代理都提供了唯一的标识符,还要注意,映射到源ID的IO流量可以携带不同事务排序属性)。 (Note that the transaction descriptor source ID information for each agent EGIO hierarchy provides a unique identifier, but also note that mapped to the IO traffic source ID can carry different transaction ordering property). 在IO发起(IO-initiated)的流量和主发起(host-initiated)的流量之间规定了本系统配置的排序规则。 The system configuration provides collation between the initiator (IO-initiated) in the main flow and initiate IO (host-initiated) traffic. 根据上述说法,映射到源ID的IO流量和主处理器发起的流量代表在单个“排序平面”中传递的流量。 According to the statement, is mapped to the source ID of IO traffic flow and traffic initiated by representatives of the main processor in a single pass, "sort plane" in.

参考表II,下面提供了该事务排序规则的示例。 Refer to Table II, below provides an example of the transaction ordering rules. 该表中定义的规则普遍适用于包括存储器、IO配置和消息的EGIO系统中的所有类型的事务。 Rules defined in this table apply generally to include memory, IO and configuration messages EGIO system for all types of transactions. 在下面的表II中,列代表两个事务的第一个,而行代表第二个。 In the following Table II, column represents the first two issues, and the line for the second. 表条目指明了两个事务之间的排序关系。 Table entry indicates the ordering relationship between the two transactions. 表条目定义如下:是-一般会允许第二个事务超过第一个事务以避免死锁。 Table entries are defined as follows: Yes - usually allow a second transaction over the first transaction in order to avoid deadlock. (当发生阻塞时,需要第二个事务超过第一个事务。一般应当考虑公平以防止饥饿(starvation))。 (When blocking, you need a second transaction over the first transaction general should be considered fair to prevent starvation (starvation)).

Y/N-没有需求。 Y / N- no demand. 第一个事务可选地超过第二个事务或者被其阻塞。 Alternatively, the first transaction of more than a second transaction on or be blocked.

否-一般不会允许第二个事务超过第一个事务。 No - generally does not allow the second transaction over the first transaction. 这需要保持严格的排序。 This need to maintain strict ordering.

表II:单个排序平面的事务排序和死锁避免 Table II: single transaction ordering and sorting plane deadlock avoidance

表III:事务排序解释·高级事务排序-“多个平面”事务排序模型前述部分定义了单个“排序平面”内的排序规则。 Table III: advanced transaction transaction ordering Explanation sort - "multiple planes" transaction ordering model of the preceding section defines the collation of a single "ordering plane" inside. 如上所述,EGIO互连体系结构和通信协议使用唯一的事务描述符机制来关联事务和额外的信息,以支持更复杂的排序关系。 As mentioned above, EGIO interconnection architecture and communication protocol using a unique transaction descriptor mechanism associated with the transaction and additional information to support more complex ordering relationships. 事务描述符中的字段允许创建多个“排序平面”,从IO流量排序来看这些排序平面是互相独立的。 Transaction descriptor field allows you to create multiple "ordering plane" from the point of view of these sort IO traffic ordering planes are independent of each other.

每个“排序平面”都包括对应于具体IO设备(由唯一的源ID指定)的排队/缓冲逻辑以及传输主处理器发起的流量的排队/缓冲逻辑。 Each queue "Sort flat" includes line corresponds to a specific IO device (designated by a unique source ID) of / buffer logic and transmission main processor initiated traffic / buffering logic. “平面”内的排序一般只在这两者之间定义。 Sorting "flat" within generally defined between the two. 对独立于其它“排序平面”的每个“排序平面”都实施了在前述部分规定的用来支持生产者/消费者用途模型并且防止死锁的规则。 Independent of the other "sort plane" each "ordering plane" are implemented to support the rule of deadlock producer / consumer model and to prevent the use of some of the provisions of the foregoing. 例如,由“平面”N发起的请求的读取完成可以绕过由“平面”M发起的请求的读取完成。 For example, reading from the "flat" N-initiated request of finished reading can be bypassed by the "flat" M-initiated request is completed. 然而,平面N的读取完成和平面M的读取完成都不能绕过由主机发起的公布存储器写入。 However, reading the complete reading of the plane and the plane M N can not be bypassed by the complete host-initiated release memory write.

尽管平面映射机制的使用允许存在多个排序平面,但是排序平面中的一些或全部可以“折叠”到一起以简化实现(即,将多个单独控制的缓冲器/FIFO结合成单个)。 Although the use of the plane mapping mechanism permits the existence of multiple ordering plane, but the plane of the sorting some or all may be "collapsed" together to simplify the implementation (i.e. combining multiple separately controlled buffers / FIFO as a single). 当所有平面折叠在一起时,仅使用事务描述符源ID机制来帮助事务的路由,并且它不用于在IO流量的独立流之间松散排序。 When all planes are folded together, using only the transaction descriptor source ID routing mechanism to help matters, and it is not used loosely sorting between independent IO traffic flow.

除了上述的内容,事务描述符机制规定了使用排序属性在单个排序平面内修改缺省排序。 In addition to the content, transaction descriptor mechanism provides for the use of the sort attribute to modify the default sorting in a single plane order. 从而可以以每个事务为基础而控制排序的修改。 Thus can be controlled for each transaction based on modified order.

事务层协议分组格式如上所述,创新EGIO体系结构使用基于分组的协议以在相互通信的两个设备的事务层之间交换信息。 Transaction Layer Protocol Packet Format As described above, innovative EGIO architecture uses a packet-based transaction layer protocol between the two devices communicate with each other to exchange information. EGIO体系结构通常支持存储器、IO、配置和消息事务类型。 EGIO architecture generally supports memory, IO, configuration and message transaction types. 一般使用要求或完成分组运送这些事务,其中只有当要求时,即要求返回数据或请求事务的确认接收时,才使用完成分组。 When general packet transport requirements or complete these transactions, only when the requirement that return data to confirm the transaction or request to receive only used to complete the grouping.

参考图9,根据本发明的教导示出了示例性事务层协议的示图。 Referring to Figure 9, in accordance with the teachings of the present invention shows a diagram of an exemplary transaction layer protocol. 根据图9所图示的示例性实现,图示的TLP头部900包括格式字段、类型字段、扩展类型/扩展长度(ET/EL)字段和长度字段。 Illustrated in Figure 9 according to an exemplary implementation, the TLP header 900 includes the illustrated format field, type field, the extended type / extended length (ET / EL) field and a length field. 应当知道,某些TLP在头部之后包括如头部中列出的格式字段确定的数据。 Be appreciated that, after some TLP header includes fields such as header format listed determined data. 没有TLP可以含有多于MAX_PAYLOAD_SIZE设定的极限的数据。 TLP may contain no more than the set limit MAX_PAYLOAD_SIZE data. 根据一个示例性实现,TLP数据是4字节自然对齐的,并且以4字节双字(DW)增加。 According to one example implementation, TLP data is four-byte naturally aligned and in 4-byte double word (DW) increases.

如这里所使用的,根据下面的定义格式(FMT)字段规定了TLP的格式:·000-2DW头部,无数据·001-3DW头部,无数据·010-4DW头部,无数据·101-3DW头部,有数据·110-4DW头部,有数据·预留所有其它的编码类型字段用于指示TLP中使用的类型编码。 As used herein, the following definitions based on the format (FMT) field specifies the format of the TLP: · 000-2DW header, no data · 001-3DW header, no data · 010-4DW header, no data · 101 -3DW header data · 110-4DW head · set aside all other data encoding type field is used to indicate the type of encoding used in the TLP. 根据一个实现,一般应该解码格式[2:0]和类型[3:0]两者来确定TLP格式。 According to one implementation, the general should decoding format [2: 0] and type [3: 0] to determine both the TLP format. 根据一个实现,类型[3:0]字段中的值用于确定扩展类型/扩展长度字段是否被用于扩展类型字段或长度字段。 According to one implementation, the type [3: 0] field is used to determine the type of expansion / extension is used to extend the length of the field is the type of field or the length field. ET/EL字段一般只用于扩展存储器类型读取请求的长度字段。 ET / EL field is generally used only for the length of the field type of extended memory read request.

长度字段提供了有效载荷长度的指示,还是以DW增加,如下所示::0000 0000=1DW:0000 0001=2DW:...... Provides an indication of the length of the field in the payload length, or to increase DW follows :: 0000 0000 = 1DW: 0000 0001 = 2DW: ......

:1111 1111=256DW下面提供了示例性TLP事务类型的至少一个子集、它们对应的头部格式以及描述的总结,表IV中: : 1111 1111 = 256DW below provides at least a subset of example TLP transaction types, their corresponding header formats, and summary description, in Table IV:

表IV:TLP类型总结附录A中提供了有关请求和完成的其它细节,其中的说明在这里作为参考而被明确引入。 Table IV: TLP Type A provides a summary of the request and other details about the completion of the appendix, in which the description herein are expressly incorporated herein by reference.

流控制与传统流控制方案普遍关联的限制之一是它们对可能发生的问题有反应(reactive),而不是在预先(proactively)降低发生这些问题首先发生的机会。 One of the limitations of traditional flow control and flow control scheme is generally associated with the problem that they have a reaction may occur (reactive), rather than the opportunity to advance (proactively) to reduce the occurrence of these problems first occurred. 例如在传统的PCI系统中,发送者将向接收者发送信息直到它接收到停止/中止发送的消息。 In the conventional PCI system, for example, the sender will send a message receiver until it receives a stop / abort message transmission. 其中停止/中止发送直到下一个通知。 Which stop / suspend until the next send a notification. 这些请求随后可以跟随有重新发送起始于发送的给定点处的分组的请求。 These requests can then be followed by a re-send the request to the packet at the start point to send. 而且,目前这样的流控制机制是基于硬件的,它们不适合上述动态建立、独立管理的虚拟信道应用。 Moreover, the current flow control mechanisms such as hardware-based, they are not suitable for the above dynamic is established, independent management of virtual channel applications. 本领域技术人员将理解,这一反应(reactive)方法导致周期浪费,并且在这方面可能效率较低。 Those skilled in the art will appreciate that this reaction (reactive) process results in a waste of the cycle, and may be less efficient in this respect.

为了解决这个限制,EGIO接口106的事务层202包括流控制机制,其预先降低发生溢出情况的机会,同时还规定以发起者和(多个)完成者之间建立的虚拟信道的每个链路为基础来遵守排序规则。 To address this limitation, the flow control mechanism 202 includes a transaction layer 106 of the EGIO interface, which reduces the chance of an overflow condition in advance, and also requires that each link in between the initiator and (s) is completed by the establishment of a virtual channel comply with the rules as a basis for sorting.

根据本发明的一个方面,引入了流控制“信用”的概念,其中接收者共享下列信息:(a)缓冲器(信用)大小,和(b)对于发送者和接收者之间建立的每条虚拟信道(即以每条虚拟信道为基础)的发送者当前可用缓冲器空间。 According to one aspect of the invention, the introduction of flow control "credit" concept, in which the receiver share the following information: (a) buffer (credit) size, and (b) between the sender and receiver for establishing each of virtual channel (i.e., each virtual channel basis) of the sender of the currently available buffer space. 这使得发送者的事务层202能够保持可用缓冲器空间的估值(例如,可用信用的计数),并且如果确定发送将在接收缓冲器内产生溢出情况则能够预先节流通过任何虚拟信道进行的发送,其中所述可用缓冲器空间分配给通过被识别的虚拟信道进行的发送。 This allows the sender of the transaction layer 202 can maintain valuation available buffer space (e.g., the count of available credits), and if it is determined transmission will produce an overflow condition in the receive buffer is able to advance through the throttle of any virtual channel transmission, wherein the transmission buffer through the space allocated to the identified virtual channel is available.

根据本发明的一个方面,如上所述,事务层202有选择地调用流控制来防止与虚拟信道相关联的接收缓冲器的溢出并且能够遵循排序规则。 According to one aspect of the present invention, as described above, the transaction layer 202 is selectively controlled to prevent overflow call flow associated with the virtual channel associated with the receive buffer and to follow collation. 根据一个实现,由发送者使用处理层202的流控制机制以通过EGIO链路112来跟踪代理(接收者)中的可用队列/缓冲器空间。 According to one implementation, the sender uses flow control mechanisms to deal with layer 202 through EGIO link 112 to track agent (receiver) available in the queue / buffer space. 在这方面,与传统的流控制机制不同,发送者而非接收者负责确定何时接收者暂时不能通过虚拟信道接收更多内容。 In this regard, with the conventional flow control mechanisms, the sender, not the recipient is responsible for determining when the receiver is temporarily unable to receive more virtual channel contents. 如这里所使用的,流控制没有暗示请求已经到达它的最终完成器。 As used herein, the flow control does not imply that the request has reached its final finisher.

在EGIO体系结构中,流控制与数据完整性机制相互独立,其中所述数据完整性机制用于实现发送者和接收者之间的可靠信息交换。 In EGIO architecture, flow control and data integrity mechanisms are independent, wherein the data integrity mechanisms used to implement reliable information exchange between sender and receiver. 即,流控制能够保证从发送者到接收者的事务层分组(TLP)信息流完好,这是由于数据完整性机制(下文讨论)保证通过重新传输改正错误的和丢失的TLP。 That is, the flow control to ensure the transaction from the sender to the recipient layer packet (TLP) information flow intact, which is due to data integrity mechanisms (discussed below) to ensure the re-transmission by correcting errors and loss of TLP. 如这里所使用的,事务层的流控制机制包括EGIO链路112的虚拟信道。 As used herein, flow control mechanism of the transaction layer comprises EGIO link 112. The virtual channel. 在这方面,将在由接收者通告的流控制信用(FCC)中反映由接收者支持的每个虚拟信道。 In this regard, the recipient will be advertised by the flow control credits (FCC) reflected by the recipient supported each virtual channel.

根据一个示例性实现,由事务层202和数据链路层204合作来执行流控制。 According to an exemplary implementation, the transaction layer 202 and data link layer 204 cooperate to perform flow control. 即,使用数据链路层分组(DLLP)在EGIO链路112的两端之间(例如,以每个VC为基础)传输流控制信息,以由事务层202的流控制机制使用。 That is, the use of data link layer packet (DLLP) between the ends of the EGIO link 112 (e.g., on a per VC basis) transmit flow control information to be used by the flow control mechanism of the transaction layer 202. 为了方便描述流控制机制,区分出下列分组信息类型或流控制信用类型:(a)公布请求头部(PH)(b)公布请求数据(PD)(c)非公布请求头部(NPH)(d)非公布请求数据(NPD)(e)读取、写入和消息完成头部(CPLH)(f)读取和消息完成数据(CPLD)如上所述,预先流控制的EGIO实现中的测量单元是流控制信用(FCC)。 To facilitate the description of flow control mechanisms to distinguish the following types of information or a packet flow control credit types: (a) publish the request of the head (PH) (b) publish the requested data (PD) (c) non-publication request headers (NPH) ( d) non-published request data (NPD) (e) Read, Write, and completion of the message header (CPLH) (f) Read and completion of the message data (CPLD) As described above, in advance to achieve controlled flow EGIO Measurement unit is a flow control credits (FCC). 根据仅仅一个实现,对于数据,流控制信用是十六(16)字节。 According merely an implementation for data flow control credit is sixteen (16) bytes. 对于头部,流控制信用的单元是一个头部。 For the head, flow control unit is a credit to the head. 如上所述,每个虚拟信道都保持了独立流控制。 As described above, each virtual channel is maintained independent flow control. 因此,事务层202中的流控制机制为分组信息的每个前述类型(如上所述的(a)-(f))以每个VC为基础来维持并跟踪信用的单独的指示符。 Thus, the transaction layer 202 flow control mechanism for each of the aforementioned type of information packet (as described above (a) - (f)) is based on a per VC to maintain and track individual credit indicator. 根据所图示的示例性实现,分组的发送根据下述内容来消耗流控制信用: According to the illustrated example implementation, packets are transmitted according to the following content to consume flow control credits:

-存储器/IO/配置读取请求:1NPH单元-存储器写入请求:1PH+nPD单元(其中n与数据有效载荷的大小相关联,例如由流控制单元大小(例如,16字节)划分的数据的长度)-IO/配置写入请求:1NPH+1NPD-消息请求:取决于消息,至少1PH和/或1NPH单元-带有数据的完成:1CPLH+nCPLD单元(其中n与由诸如16字节的流控制数据单元大小划分的数据大小有关)-没有数据的完成:1CPLH对于所跟踪的每种类型的信息,有三个概念寄存器来监测消耗的信用(发送者内)、信用极限(发送者内)和分配的信用(接收者内),每个概念寄存器有八(8)比特宽。 - Memory / IO / configuration read request: 1NPH unit - memory write request: 1PH + nPD unit (where n is the size of the data payload associated with, for example, is divided by the flow control unit size (eg, 16 bytes) of data length) -IO / configuration write request: 1NPH + 1NPD- message request: depends on the message, at least 1PH and / or 1NPH unit - complete with data: 1CPLH + nCPLD unit (where n and by as 16 bytes flow control data unit size of the size of divided data) - No data is completed: 1CPLH tracked for each type of information, there are three conceptual registers to monitor the credits consumed (sender), a credit limit (the sender) and allocation of credit (within the receiver), each concept register has eight (8) bits wide. 信用消耗寄存器含有自从初始化以来所消耗的流控制单元的例如模256的总量的计数。 Credit consumed register contains the flow control unit consumed since initialization count modulo 256, for example, the total amount. 已经引入了流控制机制的体系元件,参考图6,示出了初始化和操作的示例性方法。 System element has been introduced flow control mechanism, with reference to FIG. 6, there is shown an exemplary method of initialization and operation.

图6是根据本发明的仅仅一个示例性实施例的EGIO体系结构的流控制机制的示例性操作方法的流程图。 Figure 6 is a flowchart of an exemplary method of operation of the flow control mechanism EGIO architecture according to an exemplary embodiment of the present invention only one. 根据图6所图示的示例性实现,方法从方框602开始,其中当硬件初始化或复位时,初始化这里所描述的与至少一个初始虚拟信道相关联的流控制机制。 According to the illustrated exemplary implementation of FIG. 6, the method starts from block 602, wherein when a hardware initialization or reset, initialized with at least one initial virtual channel flow control mechanism associated described herein. 根据一个示例性实现,当初始化EGIO元件的EGIO接口106的数据链路层204时,初始化与VC0(例如,用于大量(bulk)通信的缺省虚拟信道)相关联的流控制机制。 According to an exemplary implementation, when the data link layer initialization EGIO element EGIO interface 106 of 204, the Initialization and VC0 (e.g., the default for bulk (bulk) to communicate virtual channel) flow control mechanism is associated.

在方框604中,事务层202的流控制机制更新一个或多个流控制寄存器的参数。 In block 604, the flow control mechanism of the transaction layer 202 updates one or more flow control parameters register. 即,在初始化时信用消耗寄存器被设定为全零(0),并且当事务层承诺发送信息到数据链路层时增加。 That is, when initializing the credit consumed register is set to all zeros (0), and increases when the commitment to send information to the transaction layer data link layer. 增加的大小与承诺发送的信息消耗的信用数量有关。 Increase the size of the credit commitment amount of information related to the consumption of transmission. 根据一个实现,当达到或超过最大计数(例如,全1)时,计数器翻转为零。 According to one implementation, when it reaches or exceeds the maximum count (e.g., all ones), the counter rolls over to zero. 根据一个实现,使用无符号8比特模算术来维持计数器。 According to an implementation that uses an unsigned 8-bit modular arithmetic to maintain the counter.

在发送者中保持的信用极限寄存器含有可能消耗的流控制单元的最大数值的极限。 Limit the sender to maintain credit limit register contains the flow control unit may consume maximum value. 在接口初始化(例如,启动、复位等)后,信用极限寄存器设定为全零,并且随后在接收消息后被更新以反映在流控制更新消息(上文进行了描述)中指示的值。 In the interface initialization (for example, start, reset, etc.), the credit limit register is set to all zeros, and then update the value to reflect the flow control update message (above are described) indicated after receiving the message.

在接收者中保持的信用分配寄存器保持了自从初始化以来授与发送者的信用总数的计数。 Maintained in the recipient's credit allocation register maintained since initialization with the sender's credit granted total count. 根据接收者的缓冲器大小和分配策略来初始设定该计数。 According to the receiver buffer size and allocation strategy to initially set the count. 该值可以包括在流控制更新消息中。 This value may be included in flow control update messages.

在方框606中,EGIO接口106确定是否需要额外的虚拟信道,即除缺省VC0之外。 At block 606, EGIO interface 106 determines whether additional virtual channels, i.e. in addition to the default VC0. 如果是这样,随着建立这些额外VC,则在方框608中事务层初始化与这些VC相关联的流控制机制,进而更新(多个)流控制寄存器。 If so, with the establishment of these additional VC, at block 608. The transaction layer flow control mechanism is initialized and the associated VC, and then update (s) flow control register.

如上所述,当初始化与虚拟信道相关联的流控制机制时,值随着接收者事务层从它的接收缓冲器移除已处理的信息而增加。 As described above, when initializing the virtual channel associated with the flow control mechanism associated, the value of information as the receiver transaction layer removes from its receive buffer has been processed increases. 增加的大小与产生可用空间的大小有关。 Increase the size of the space available to generate relevant. 根据一个实施例,接收者一般会将分配的信用最初设定为等于或大于下列值的值:-PH:1流控制单元(FCU);-PD:FCU等于设备最大有效载荷大小的极大可能设定-NPH:1 FCU-NPD:FCU等于设备最大有效载荷大小的极大可能设定-交换设备一CPLH:1 FCU-交换设备-CPLD:FCU等于设备最大有效载荷大小的极大可能设定和设备将产生的极大读取请求中的较小的一个。 According to one embodiment of the credit, the receiver will normally allocated initially set equal to or greater than the value of the following values: -PH: 1 flow control unit (FCU); - PD: FCU equal to the maximum payload size of the device most likely Setting -NPH: 1 FCU-NPD: FCU equal to the maximum payload size of the device most likely set - switching equipment a CPLH: 1 FCU- switching equipment -CPLD: FCU equal to the maximum payload size of the device most likely set maximum read request and the device will produce in the smaller one.

-根和端点设备-CPLH或CPLD:255 FCU(全1),发送者认为该值无穷大,因而其从不会阻塞。 - Root and endpoint devices -CPLH or CPLD: 255 FCU (all 1), the sender considers the value of the infinite, and therefore it will not be blocked from.

根据这样的实现,接收者一般不会为任何消息类型而将信用分配寄存器值设定为大于127 FCU。 With this realization, the recipient is generally not for any message type and the credit allocation register value is set to greater than 127 FCU.

根据另一个实现,与上述使用计数器方法保持信用分配寄存器不同,接收者(或发送者)可以基于下述等式动态计算可用的信用:C_A=(最近接收的发送的信用单元数值)+(可用的接收缓冲器空间)[7]如上所述,发送者将为发送者将使用的每个虚拟信道实现概念寄存器(消耗的信用,信用极限)。 Another achieve and maintain credit allocation register, the recipient (or sender) and the above method using the counter can dynamically calculate the available credit based on the following equation based on: C_A = (credit unit value sent recently received) + (available The receive buffer space) [7] As described above, each virtual channel transmitted by the sender to be used for implementing the concepts registers (credit consumed, credit limit). 类似地,接收者为接收者支持的每个虚拟信道实现概念寄存器。 Similarly, the recipient of the recipient for each virtual channel support to realize the concept of registers. 一旦为适合的VC建立了(多个)流控制寄存器,随着过程前进到方框610,EGIO接口106就准备好参与EGIO通信。 Once established for a suitable VC (s) flow control registers, as the process proceeds to block 610, EGIO interface 106 is ready to participate in EGIO communication.

在方框610中,发送者中的EGIO接口106接收数据报用于沿着VC发送。 At block 610, the sender of the EGIO interface 106 receives data packets for transmission along the VC. 在方框612中,在发送所接收的数据报之前,用来发送数据报通过EGIO链路的EGIO元件的事务层202中的流控制机制证实该发送不会导致接收者处的溢出情况。 In block 612, before sending the received packet is used to send data packets through the transaction layer 202 EGIO EGIO link element in the flow control mechanism confirmed that sends the recipient does not cause an overflow condition at. 根据一个示例性实现,事务层202的流控制机制基于或至少部分基于使用可用寄存器以及发送数据报将消耗的信用数量来作出这个确认。 According to an exemplary implementation, the flow control mechanism of the transaction layer 202 or at least partially based on the number of available credits to use registers and transmitting data packets will be consumed to make the confirmation.

为了预先制止如果这样做将引起接收缓冲器溢出的信息的发送,如果消耗的信用的计数加上与将要发送的数据相关的信用单元的数目,小于或等于信用单元值,则允许发送者发送一类信息,即:Cred_Req=(Cred_Consumed+<Info_cred>)mod 2[字段大小][8]其中字段大小对于PH、NPH、CLPH等于八(8),对于PD、NPD和CPLD等于十二(12)。 In order to pre-empt if doing so would cause the transmission information of the reception buffer overflows, if the credits consumed count plus the number of data to be transmitted associated with the credit units, less than or equal to the value of credit units, the sender is allowed to send a categories of information, namely: Cred_Req = (Cred_Consumed + & lt; Info_cred & gt;) mod 2 [field size] [8] where the field size for PH, NPH, CLPH equal to eight (8), for the PD, NPD and CPLD equal to twelve (12 ).

当发送者接收指示非无穷信用(即,<255 FCU)的完成的流控制信息时,发送者将根据可用信用来节流完成。 When the sender receives the indication of non-infinite credit (ie, <255 FCU) of the complete flow control information, the sender will be completed according to the available credit to the throttle. 当考虑信用使用及返回时,来自不同事务的信息不混合在一个信用中。 When considering the use of credit and return, information from different transactions are not mixed in a credit. 类似地,当考虑信用使用及返回时,来自一个事务的头部和数据信息也从不混合在一个使用中。 Similarly, when considering the use of credit and return, header and data information from one transaction is never mixed in a use. 因此,当某个分组由于缺乏流控制信用而被阻塞传输时,发送者在确定应当准许哪个类型的分组绕过“停滞”分组时将遵循排序规则(上文)。 Therefore, when a group of credit due to lack of flow control is blocked transmission, the sender should be permitted to determine which types of packets to bypass the "stagnation" will follow the ordering rules (above) when the grouping.

如果在方框612中流控制机制确定接收者没有合适的缓冲器空间来接收数据报,则流控制机制暂时中止沿相关虚拟信道的发送,直到发送者的(多个)流控制寄存器进行了更新以准许该发送,如方框614所示。 If it is determined there is no suitable recipient buffer space in block 612 flow control mechanism to receive datagrams, the flow control mechanism to suspend sending along the virtual channel until the sender (s) flow control registers are updated to permit the transmission, as shown in block 614. 根据一个示例性实施例,通过流控制更新消息来接收更新,下文将对此进行详细描述。 According to an exemplary embodiment, update messages to receive updates through the flow control, as will be described in detail.

如果在方框612中,流控制机制推断出数据报的发送不会导致接收者处的溢出情况,则EGIO接口106开始发送数据报,如方框616所示。 If the block 612, the flow control mechanism to infer send datagram does not cause an overflow condition at the receiver, the EGIO interface 106 starts sending data packets, as shown in block 616. 如上所述,数据报的发送涉及事务层202、数据链路层204和/或物理层206处的处理步骤(例如,添加头部、数据完整性信息等等)。 Transmission described above, the data packet is directed to the transaction layer 202, data link layer 204 and / or processing steps of the physical layer 206 (e.g., adds a header, data integrity information, etc.).

根据一个实施例,响应于通过虚拟信道的数据报的接收,接收者中的流控制机制将发布流控制更新。 According to one embodiment, the virtual channel in response to a datagram is received, the recipient of the flow control mechanism will release the flow control update. 该更新可以是确认分组中的头部形式等等。 The update can be confirmed that the head in the form of packets, and so on. 在这样的实施例中,事务的流控制信用的返回不认为是意味着事务已经完成或事务已经实现系统可见(visibility)。 In such embodiments, the return flow control credit transactions do not think that means that a transaction is the transaction has been completed or achieve system visibility (visibility). 使用存储器写入请求语义的消息信号中断(MSI)象任何其它存储器写入一样被处理。 Use semantic memory write request Message Signaled Interrupts (MSI) like any other memory write like to be treated. 如果随后的FC更新消息(来自接收者)指示了比最初指示的值更低的信用极限值,则发送者应当承认新的较低极限,并且提供一个消息错误。 If subsequent FC update message (from the receiver) indicates a value lower than the initial indication of the credit limit, the sender should recognize the new lower limits, and provides an error message.

根据这里所描述的流控制机制,如果接收者接收到比分配的信用更多的信息(超过分配的信用),则接收者将向违规的发送者指示接收者溢出错误,并且对引起溢出的分组发起数据链路级别的重试请求。 The flow control mechanism described here, if the recipient receives the additional information (over allocation of credit) than the distribution of credit, the receiver will indicate the offending sender receiver overrun error, and to cause an overflow packet initiate data link level retry the request.

在方框618中,在接收到流控制更新信息之后,与发送者中特定虚拟信道有关的流控制机制进而更新(多个)流控制寄存器以助于随后的流控制。 At block 618, after receiving flow control update information, the flow control mechanism with the sender in a particular virtual channel, for further update (s) to facilitate flow control register subsequent flow control.

上面已经介绍了体系结构元件和示例性操作细节,示出了用来传输流控制信息的示例性协议。 Structural elements has been described above and exemplary operational details of the system, the transport stream is shown for an exemplary protocol control information. 根据一个示例性实施例,使用流控制分组在数据链路层204上传输流控制信息。 According to an exemplary embodiment, the use of flow control packet at the data link layer 204 transmit flow control information.

·流控制分组(FCP)根据一个实现,使用流控制分组(FCP)在设备之间传输保持上述寄存器所需的流控制信息。 · Flow Control Packet (FCP) According to one implementation, flow control packet (FCP) between the transmission apparatus holding the register information required for flow control. 参考图9,示出了示例性流控制分组。 Referring to Figure 9, there is shown an exemplary flow control packet. 根据一个实施例,流控制分组900包括用于具体虚拟信道的关于六个信用寄存器的状态的输送信息和2-DW头部格式,其中六个信用寄存器由接收事务层的流控制逻辑为每个VC保持。 According to one embodiment, the flow control packet 900 includes conveying information about the status of the six Credit registers and 2-DW header format for a particular virtual channel, six of the credit register by the flow control logic for each received transaction layer VC maintained.

根据本发明的教导的一个实施例,如图9所示有两种类型的FCP:初始FCP和更新FCP。 According to the teachings of the FCP one embodiment of the present invention, shown in Figure 9, there are two types: Initial FCP and Update FCP. 如上所述,在初始化事务层时,发布初始FCP 902。 As described above, in the initialization of the transaction layer, release initial FCP 902. 在初始化事务层之后,更新FCP 904被用于更新寄存器中的信息。 After the initialization of the transaction layer, update FCP 904 is used to update the information in the register.

在常规操作期间接收到初始FCP 902引起本地流控制机制的复位以及初始FCP 902的发送。 During normal operation the receiver is reset to the initial cause FCP 902 local flow control mechanism and send the initial FCP 902. 初始FCP 902的内容包括为PH、PD、NPH、NPD、CPHL、CPHD和信道ID(例如,与应用FC信息相关联的虚拟信道)中的每个所通告的信用的至少一个子集。 Initial FCP 902 includes content for PH, PD, NPH, NPD, CPHL, CPHD and channel ID (for example, the virtual channel information associated application FC) in each of at least a subset of the advertised credits.

更新FCP 904的格式与初始FCP 902的格式类似。 Updated format and initial FCP 902 FCP 904 similar format. 应当知道,尽管FC头部不包括其它事务层分组头部格式普遍具有的长度字段,但是分组的大小是明确的,因为没有与该分组相关的额外DW数据。 Should be aware that although the length of the field does not include FC head other transaction layer packet header format generally have, but the packet size is ambiguous because there is no additional DW data associated with the packet.

错误转发与传统的错误转发机制不同,EGIO体系结构依靠附加到被识别为由于如下描述的多个原因而且具有的缺陷的(多个)数据报上的尾部信息。 Error Forwarding with conventional error forwarding mechanisms different, EGIO architecture relies attached to be identified as a number of reasons as described below and having a defect (s) on the tail of the information data packets. 根据一个示例性实现,事务层202使用了多种公知错误检测技术中的任何一种,例如循环冗余校验(CRC)错误控制等等。 According to an exemplary implementation, the transaction layer 202 using a variety of well known error detection technique in any of a, e.g., cyclic redundancy check (CRC) error control and the like.

根据一个实现,为了有助于错误转发特征,EGIO体系结构使用了“尾部”,其附加到携带已知坏数据的TLP上。 According to one implementation, in order to contribute to error forwarding features, EGIO architecture uses a "tail", attach it to carry on the known bad data TLP. 可能使用尾部错误转发的情况示例包括:示例#1:来自主存储器的读取遇到无法纠正的ECC错误示例#2:向主存储器的PCI写入的奇偶错误示例#3:内部数据缓冲器或高速缓存中的数据完整性错误根据一个示例性实现,错误转发仅用于读取完成数据或写入数据。 Examples of possible error conditions using tail forwards include: Example # 1: Read from the main memory has encountered an uncorrectable ECC error Example # 2: PCI parity error example to the main memory write # 3: The internal data buffer or cache data integrity error in accordance with one exemplary implementation, error forwarding is only used for read completion data or write data. 即,对于与数据报相关的管理开销中发生错误的情形,例如头部中的错误(例如请求阶段、地址/命令等等),一般不使用错误转发。 That is, the data reported in the error-related administrative overhead in situations such as the head of an error (for example, the request phase, address / command, etc.) occurs, generally do not use the wrong transponder. 如这里所使用的,具有头部错误的请求/完成通常不能被转发,这是由于不能确定地识别真实目的地,并且因此该错误转发可能引起直接或间接影响,例如数据损坏、系统故障等等。 As used herein, a head bad request / complete normally can not be forwarded, which is due to identify the true destination can not be determined, and thus the error forwarding may cause directly or indirectly affect, for example data corruption, system failures, etc. . 根据一个实施例,错误转发用于传播错误通过系统以及系统诊断。 According to one embodiment, error forwarding is used to propagate the error through the system, and system diagnostics. 错误转发不使用数据链路层重试,因此只有在EGIO链路112上出现如TLP错误检测机制(例如,循环冗余校验(CRC)等等)所确定的发送错误时,才重试以尾部结束的TLP。 Error forwarding does not use the data link layer retry, so that only occurs on the EGIO link 112 as TLP error detection mechanisms (e.g., cyclic redundancy check (CRC), etc.) as determined by a transmission error, it retries to the tail end of the TLP. 因此尾部可能最终引起请求的发起者重新发布它(在上述的事务层)或者采取某个其它的动作。 Therefore, the tail may ultimately lead to the originator of the request to re-publish it (in the above transaction layer) or take some other action.

如这里所使用的,所有EGIO接收者(例如,位于EGIO接口106中)都能够处理以尾部结束的TLP。 As used herein, all EGIO receivers (e.g., located EGIO interface 106) are able to handle the tail end of the TLP. 在发送者中对加入尾部的支持是可选的(因而与老式设备兼容)。 The sender is added to the tail of the support is optional (and therefore compatible with legacy devices). 交换器108对尾部和TLP的其余部分一起进行路由。 Exchange 108 and the rest of the tail of the TLP routed together. 具有对等(peer)路由支持的主桥104一般会一起路由尾部和TLP的其余部分,但不是必需如此。 With a peer (peer) routing support of the main bridge 104 generally along the route of the rest of the tail and the TLP, but need not be so. 错误转发一般适用于写入请求(公布的或非公布的)或读取完成中的数据。 Error forwarding generally applicable to a write request (published or released) or read data to complete the. 发送者知道的含有坏数据的TLP应当以尾部结束。 The sender knows the TLP bad data should contain the tail end.

根据一个示例性实现,尾部由2 DW组成,其中字节[7:5]是全零(例如,000),并且比特[4:1]是全一(例如,1111),而预留所有其它比特。 According to an exemplary implementation, the tail composed by 2 DW, wherein bytes [7: 5] are all zeroes (e.g., 000), and bits [4: 1] are all ones (e.g., 1111), while all other reserved bits. EGIO接收者会认为以尾部结束的TLP中的所有数据都是损坏的。 EGIO recipient will think to the tail end of the TLP all the data are corrupted. 如果应用错误转发,则接收者将指定TLP的所有数据标记为坏(“中毒”)。 If the application error forwarding, the receiver will specify all data TLP marked as bad ("poisoning"). 在事务层中,分析器(parser)一般会分析到整个TLP的末端并马上校验随后的数据,以了解数据是否结束。 In the transaction layer, the analyzer (parser) generally to the end of the entire TLP analysis and subsequent data immediately verify whether the data in order to understand the ending.

数据链路层204如上所述,图2的数据链路层204充当事务层202和物理层206之间的中间级(stage)。 Data Link Layer The data link layer 204 as described above, 204 of FIG. 2 serves as an intermediate stage of the transaction layer 202 and the physical layer 206 between the (stage). 数据链路层204的主要责任是提供用于通过EGIO链路112在两个组件之间交换事务层分组(TLP)的可靠机制。 The main responsibility of the data link layer 204 is to provide a transaction layer packet (TLP) is a reliable mechanism by EGIO link 112 is exchanged between the two components. 数据链路层204的发送方接收由事务层202装配的TLP、应用分组序列标识符(例如,标识号码)、计算并应用错误检测代码(例如,CRC代码)并且向物理层206递交修改的TLP,用于通过挑选的一条或多条在EGIO链路112的带宽中建立的虚拟信道而进行传输。 The data link layer of the transmitting side 204 is received by the transaction layer 202 assembled TLP, application packet sequence identifier (e.g., identification number), calculates and applies an error detection code (e.g., CRC code) and submitted to the physical layer 206 to modify the TLP , is used by selecting one or more of the EGIO link 112 to establish a virtual bandwidth channel to perform transmission.

接收数据链路层204负责校验所接收TLP的完整性(例如,使用CRC机制等等),并且负责向事务层204递交完整性校验是肯定的那些TLP,以用于在转发到设备核心之前进行分解。 Receiving data link layer 204 is responsible for the integrity check of the received TLP (e.g., using CRC mechanisms, etc.), and is responsible for submitting to the transaction layer 204 integrity check is affirmative those TLP, for forwarding to the device core before decomposition. 由数据链路层204提供的服务通常包括数据交换、错误检测与重试、初始化与电源管理服务,以及数据链路层内部通信服务。 Service 204 provided by the data link layer typically comprises a data exchange, error detection and retry, initialization and power management services, and internal data link layer communication service. 基于前述分类提供的每种服务列举如下:数据交换服务-从发送事务层接受用于发送的TLPi.接受通过链路从物理层接收的TLP,并且将它们传输到接收事务层错误检测&amp;重试-TLP序列号码与CRC生成-已发送TLP存储器,用于数据链路层重试-数据完整性校验-确认以及重试DLLP-记录机制和错误报告的错误指示i.链路Ack超时定时器初始化与电源管理服务-跟踪链路状态并能够传输有效/复位/断开连接状态到事务层数据链路层内部通信服务-用于包括错误检测以及重试的链路管理功能-在两个直接相连的组件的数据链路层之间进行传输-没有暴露给事务层如在EGIO接口106中所使用的,数据链路层204对于事务层202表现为具有不同延迟的信息导管(conduit)。 Each service provided based on the aforementioned classification are listed below: Data Exchange Services - accept from a transmitting transaction layer for transmission via link TLPi accept received from the physical layer TLP, and transfer them to the Receive Transaction Layer Error Detection & amp; weight. -TLP test sequence number and CRC generation - has been sent TLP memory for the data link layer retries - Data integrity check - Verify and retry DLLP- recording mechanism and error reporting error indication i link Ack timeout timer Initialization and power management services - tracking and the ability to transmit efficiently link status / reset / disconnected state to the transaction layer data link layer internal communication services - to include error detection and retry the link management function - in two transmission between components of the data link layer directly connected - as in the EGIO interface transaction layer 106 is used, the data link layer 204 is not exposed to the performance for the transaction layer 202 to have different delay information conduit (conduit). 馈送到发送数据链路层的所有信息在较晚的时间处将出现在接收数据链路层的输出端。 Sending data link layer is fed to all the information at a later time at the output of the receiver will appear in the data link layer. 延迟将取决于许多因素,包括管道延迟、链路112的宽度和操作频率、通过介质的通信信号的发送、以及由数据链路层重试引起的延时。 Delay will depend on many factors, including pipeline delay, link width and frequency of operation 112, the communication signal transmitted by the medium, and the delay is determined by the data link layer retry caused. 由于这些延时,发送数据链路层可以向发送事务层202施加反压力(backpressure),并且接收数据链路层将有效信息的存在和缺失传输到接收事务层202。 Because of these delays, the transmission data link layer may be applied to the transmission of the transaction layer 202 back pressure (backpressure), and receives the data link layer to presence and absence of valid information is transmitted to the receiving transaction layer 202.

根据一个实现,数据链路层204跟踪EGIO链路112的状态。 According to one implementation, the data link layer 204 track EGIO link 112. state. 在这方面,DLL 204与事务202和物理层206传输链路状态,并且通过物理层206执行链路管理。 In this regard, DLL 204 and 202 and physical layer 206 transaction transmission link status, and link management performed by the physical layer 206. 根据一个实现,数据链路层含有链路控制与管理状态机来执行这样的管理任务,参考图11图示了所述状态机的一个示例。 According to one implementation, the data link layer contains a link control and management of the state machine to perform such administrative tasks, with reference to FIG. 11 illustrates an example of a state machine. 根据图11的示例性实现,链路控制与管理状态机的状态1100定义如下:示例性DLL链路状态·LinkDown(链路停用)(LD)-物理层报告链路是不可操作的,或者没有连接端口·LinkInit(链路初始化)(LI)-物理层报告链路是可操作的并且正在初始化·LinkActive(链路有效)(LA)-常规操作模式·LinkActDefer(链路动作延期)(LAD)-常规操作中断,物理层试图恢复每个状态的对应管理规则:·LinkDown(LD)跟随在组件复位之后的初始状态在进入LD后-将所有数据链路层状态信息复位成缺省值在LD中时-不和事务层或物理层交换TLP信息-不和物理层交换DLLP信息-不产生或接受DLLP退出转入LI,如果:-来自事务层的指示是链路没有被SW禁用·LinkInit(LI)在LI中时-不和事务层或物理层交换TLP信息-不和物理层交换DLLP信息-不产生或接受DLLP退出转入LA,如果:-来自物理层的指示是链路训练(training)成功退出转入LD,如果:-来自物理层的指示是链路训练(training)失败·LinkActive(LA)在LinkActive中时:-和事务层与物理层交换TLP信息 1100 defined by the state of an exemplary implementation, link control and management of the state machine in Figure 11 are as follows: exemplary DLL link status · LinkDown (link deactivation) (LD) - The physical layer link is not operational reports, or no connection port · LinkInit (link initialization) (LI) - The physical layer link is operational report and is initialized · LinkActive (link valid) (LA) - normal operating mode · LinkActDefer (link deferred action) (LAD ) - General operation is interrupted, trying to recover the corresponding physical layer management rules for each state: · LinkDown (LD) following the initial state after assembly reset after entering LD - all the data link layer state information is reset to the default values When LD - not the physical layer and transaction layer or exchange TLP information - not DLLP exchange information and physical layer - does not produce or accept DLLP exit into the LI, if: - the instruction from the transaction layer is the link has not been SW disable · LinkInit (LI) LI when in - not the physical layer and transaction layer or exchange TLP information - not DLLP exchange information and physical layer - does not produce or accept DLLP exit into LA, if: - the instruction from the physical layer is to link training ( training) successful exit into LD, if: - the instruction from the physical layer is to link training (training) fails · LinkActive (LA) in LinkActive when: - and the transaction layer and the physical layer information exchange TLP

-和物理层交换DLLP信息-产生并接受DLLP。 - And physical layer information exchange DLLP - generate and accept DLLP.

退出进入LinkActDefer,如果:-来自数据链路层重试管理机制的指示是需要链路的重新训练,或者如果物理层报告重新训练正在进行中。 Exit into the LinkActDefer, if: - the instruction from the data link layer retry management mechanism is needed to re-train the link, or if a physical layer reports retrain is in progress.

·LinkActDefer(LAD)在LinkActDefer中时-不和事务层或物理层交换TLP信息-不和物理层交换DLLP信息-不产生或接受DLLP退出进入LinkActive,如果:-来自物理层的指示是重新训练成功退出进入LinkDown,如果:-来自物理层的指示是重新训练失败数据完整性管理如这里所使用的,数据链路层分组(DLLP)被用于支持EGIO链路数据完整性机制。 · LinkActDefer (LAD) LinkActDefer when in - not the physical layer and transaction layer or exchange TLP information - not DLLP exchange information and physical layer - does not produce or accept DLLP exit into the LinkActive, if: - the instruction from the physical layer is re-training success exit into the LinkDown, if: - the instruction from the physical layer is a retrain failure management such as data integrity, data link layer packets (DLLP) as used herein is used to support the EGIO link data integrity mechanisms. 在这方面,根据一个实现,EGIO体系结构规定了下列DLLP来支持链路完整性管理:·Ack DLLP:TLP序列号码确认-用于指示成功接收了某些数量的TLP·Nak DLLP:TLP序列号码否定确认-用于指示数据链路层重试·Ack超时DLLP:指示最近发送的序列号码-用于检测某些形式的TLP丢失如上所述,事务层202向数据链路层204提供TLP边界信息,使得DLL 204能够将序列号码和循环冗余校验(CRC)错误检测应用于TLP。 In this regard, according to a realization, EGIO architecture provides the following DLLP to support link integrity management: · Ack DLLP: TLP serial number to confirm - is used to indicate a certain number of successfully received TLP · Nak DLLP: TLP serial number Negative acknowledgment - is used to indicate the data link layer retry · Ack timeout DLLP: Indicates the serial number recently sent - TLP used to detect certain forms of loss as described above, the transaction layer 202 204 provides TLP boundary information to the data link layer such DLL 204 can be serial number and a cyclic redundancy check (CRC) error detection applied TLP. 根据一个示例性实现,接收数据链路层通过校验序列号码、CRC代码和来自接收物理层的任何错误指示来验证接收的TLP。 According to an exemplary implementation, by checking the received data link layer sequence number, CRC code and any error indications from the physical layer to verify the received received TLP. 如果TLP中有错误,则使用数据链路层重试来恢复。 TLP if there is an error, use the data link layer retries to recover. 尽管这里的描述使用了CRC,本领域技术人员应当理解也可以使用其它形式的错误检测,例如数据报内容的哈希散列(hash)等等。 While the description herein uses the CRC, the skilled person will understand that also other forms of error detection may be used, e.g., datagram content hash (hash) and the like.

CRC、序列号码以及重试管理(发送者)在概念“计数器”和“标志”方面,以下描述了用于确定TLP、CRC和序列号码以支持数据链路层重试的机制:CRC与序列号码规则(发送者)·使用下列8比特计数器:ο TRANS_SEQ-存储应用于正在准备发送的TLP的序列号码·在LinkDown状态下设定为全'0'·在每个TLP发送后,增加1·当全'1'时,增加引起翻转使得全'0'·Nak DLLP的接收引起值被重新设定为Nak DLLP中指示的序列号码ο ACKD_SEQ-存储在最近接收的链路到链路确认DLLP中确认的序列号码。 CRC, serial number and retry management (sender) in the concept of "counter" and "mark", the following describes a method for determining TLP, CRC and serial numbers to support data link layer mechanism retries: CRC and serial number rule (sender) Use the following 8-bit counter: ο TRANS_SEQ- store is ready to send the TLP is applied serial number · In LinkDown state is set to all '0 • After sending each TLP increased 1. When whole '1', the increase caused by flipping makes the whole '0' · Nak DLLP cause value received is reset Nak DLLP serial number indicated ο ACKD_SEQ- storage DLLP confirmed recently received a link to a link to confirm serial number.

·在LinkDown状态下设定为全'1'·每个TLP被分配8比特序列号码ο计数器TRANS_SEQ存储这个号码ο如果TRANS_SEQ等于(ACKD_SEQ-1)模256,则发送者一般不会发送另一TLP,直到Ack DLLP更新ACKD_SEQ,使得条件(TRANS_SEQ==ACKD_SEQ-1)模256不再正确。 • Set for the whole '1' • Each TLP is assigned an 8-bit serial number counter TRANS_SEQ ο ο If TRANS_SEQ store this number is equal to (ACKD_SEQ-1) module 256, the sender does not send another general TLP in LinkDown state until Ack DLLP update ACKD_SEQ, making conditions (TRANS_SEQ == ACKD_SEQ-1) modulo 256 is no longer correct.

·TRANS_SEQ应用于TLP,通过:ο为TLP预先准备(prependirg)单个字节值ο为TLP预先准备单个预留字节·使用下述算法为TLP计算32b CRC,并将其附加在TLP末端ο使用的多项式是0×04C11DB7-与以太网使用的相同的CRC-32ο计算过程是: · TRANS_SEQ applies TLP, through: ο prepared for TLP (prependirg) single byte value ο prepared for TLP single byte is reserved for TLP Use the following algorithm to calculate 32b CRC, and attach it at the end of the TLP ο Use The polynomial is 0 × 04C11DB7- same CRC-32ο calculation and Ethernet using:

1)CRC-32计算的初始值是通过为序列号码预先准备24个'0'而形成的DW2)以从包括头部的字节0的DW到TLP的最后DW的顺序,使用来自事务层的TLP的每个DW而继续CRC计算3)取来自计算的比特序列的补码,结果是TLP CRC4)CRC DW附加在TLP的末端·已发送TLP的拷贝一般会存储在数据链路层重试缓冲器中·当从其它设备接收到Ack DLLP时:ο ACKD_SEQ装入在DLLP中指定的值ο重试缓冲器清除序列号码在下述范围内的TLP:·从ACKD_SEQ的先前值+1·到ACKD_SEQ的新值·当从链路上的其它组件接收到Nak DLLP时:ο如果正在向物理层传输TLP,则继续该传输直到该TLP的传输完成ο不从事务层获得另外的TLP,直到完成了下述步骤ο重试缓冲器清除序列号码在下述范围内的TLP:·从ACKD_SEQ的先前值+1·到在Nak DLLP的Nak序列号码字段中指定的值ο重试缓冲器中所有剩余的TLP都重新提交到物理层,用于以原始顺序重新发送·注意:这将包括序列号码在下述范围内的所有TLP:ο在Nak DLLP的Nak序列号码字段中指定的值+1ο TRANS_SEQ的值-1·如果在重试缓冲器中没有剩余的TLP,则Nak DLLP错误ο根据错误跟踪和记录部分,一般会报告错误的Nak DLLPο发送者不需要其它的动作CRC与序列号码(接收者)类似地,在概念“计数器”和“标志”方面,以下描述了用于确定TLP、CRC和序列号码以支持数据链路层重试的机制:·使用下列8比特计数器:ο NEXT_RCV_SEQ-为下一个TLP存储期望的序列号码·在LinkDown状态下设定为全'0'·对于接受的每个TLP,增加1,或者当通过接受TLP而清除DLLR_IN_PROGRESS标志(下文描述)时·每次接收到链路层DLLP并且DLLR_IN_PROGRESS标志被清除时,装入值(Trans.Seq.Num+1)ο如果NEXT_RCV_SEQ的值与已接收的TLP或Ack超时DLLP指定的值不同,则指示在发送者和接收者之间的序列号码同步丢失;在这种情况下:·如果设定了DLLR_IN_PROGRESS标志,则ο复位DLLR_IN_PROGRESS标志ο发送“发送坏DLLR DLLP”错误到错误记录/跟踪ο注意:这指示错误地发送了DLLR DLLP(Nak)·如果没有设定DLLR_IN_PROGRESS标志,则ο设定DLLR_IN_PROGRESS标志并且发起Nak DLLPο注意:这指示TLP丢失·使用下述3比特计数器:ο DLLRR_COUNT-对在特定时间段内发布的DLLR DLLP的次数进行计数·在LinkDown状态下设定为b'100·对于发布的每个Nak DLLP,增加1·当计数达到b'100时:ο链路控制状态机从LinkActive移动到LinkActDeferο DLLRR_COUNT随后被复位为b'000 1) CRC-32 calculation is the initial value of the sequence number is prepared in advance by 24 '0' and the formation of DW2) comprises, in order from the head byte DW 0 to the last DW of the TLP, used from the transaction layer each DW TLP Continue CRC calculation 3) complemented code calculated from the bit sequence, the result is TLP CRC4) CRC DW is appended to the end of the TLP · has been sent a copy of TLP typically stored in the data link layer retry buffer • When the vessel received from other devices to Ack DLLP: ο ACKD_SEQ load values specified in DLLP ο retry buffer clearing TLP serial number within the following range: • from ACKD_SEQ previous value of + 1.1 to ACKD_SEQ • When a new value is received from the other components on the link to Nak DLLP: ο If you are to the physical layer transmission TLP, then proceed with the transfer until the transfer is complete the TLP ο not get another TLP from the transaction layer, until the completion of the next said step ο retry buffer clearing TLP sequence number within the following range: • from the previous value of + 1 ACKD_SEQ · to specify in the Nak Nak DLLP sequence number field value ο retry buffer all remaining TLP are resubmitted to the physical layer for the original order to resend * Note: This will include all TLP sequence number within the following range: ο in the Nak Nak DLLP sequence number field values specified + 1ο TRANS_SEQ value -1 · If there are no remaining TLP retry buffer, the Nak DLLP ο error according to the error tracking and recording section, the general will report an error Nak DLLPο sender no other action CRC and serial number (receiver) Similarly, in the concept of "counter" and "mark", the following describes a method for determining TLP, CRC and serial numbers to support data link layer retry mechanism: • Use the following 8-bit counter: ο NEXT_RCV_SEQ- TLP storage for the next desired • Set the serial number for the whole '0' in the LinkDown state · For each TLP accepted an increase, or when cleared by accepting TLP DLLR_IN_PROGRESS flag (described below) • Each time the link layer receives DLLP and DLLR_IN_PROGRESS When the flag is cleared, loaded with the value (Trans.Seq.Num + 1) ο If the value NEXT_RCV_SEQ with the received TLP or Ack DLLP specified timeout value is different, it indicates that between the sender and the receiver of the sequence number synchronization lost; in this case: If set DLLR_IN_PROGRESS flag is reset DLLR_IN_PROGRESS sign ο ο send "to send bad DLLR DLLP" error to error logging / tracking ο Note: This instruction erroneously transmitted DLLR DLLP (Nak) · If no DLLR_IN_PROGRESS flag is set DLLR_IN_PROGRESS ο flag and initiate Nak DLLPο Note: This indicates TLP loss · Use the following three-bit counter: ο DLLRR_COUNT- the number of times a specific time period released DLLR DLLP is counted · In is set for the next LinkDown state b'100 · For each Nak DLLP released, increasing the 1. When the count reaches b'100 time: ο link control state machine is then reset from LinkActive move to LinkActDeferο DLLRR_COUNT for b'000

·如果DLLRR_COUNT不等于b'000,每256个符号时间减1ο即,在b'000饱和·使用下述标志:ο DLLR_IN_PROGESS·下面描述设定/清除条件·当设定了DLLR_IN_PROGESS时,丢弃所有已接收的TLP(直到接收到由DLLR_DLLP指示的TLP)·当DLLR_IN_PROGESS是清空的时,如下所述校验已接收的TLP·对于将要接受的TLP,下述条件一般应当为真:ο已接收的TLP序列号码等于NEXT_RCV_SEQο物理层没有指示在TLP接收过程中的任何错误ο TLP CRC校验不指示错误·当接受了TLP时:ο TLP的事务层部分被转发到接收事务层ο如果设定,则清空DLLR_IN_PROGESS标志ο增加NEXT_RCV_SEQ·当没有接受TLP时:ο设定DLLR_IN_PROGESS标志ο发送Nak DLLP·Ack/Nak序列号码字段一般会包含值(NEXT_RCV_SEQ-1)·Nak类型(NT)字段一般会指示Nak的原因ο b'00-由物理层识别的接收错误ο b'01-TLP CRC校验失败ο b'10-序列号码不正确ο b'11-由物理层识别的成帧错误 If DLLRR_COUNT not equal b'000, each symbol period minus 1ο 256 words, in b'000 saturation Use the following flags: ο DLLR_IN_PROGESS · The following describes the set / clear conditions · When setting up DLLR_IN_PROGESS, discard all received TLP (TLP by DLLR_DLLP until receiving the indication of) · When DLLR_IN_PROGESS is emptied, as said verification for the received TLP · will accept TLP, the following conditions should typically be true: ο received TLP The serial number is equal to the physical layer NEXT_RCV_SEQο not indicate any error in the TLP reception process ο TLP CRC check does not indicate an error · When accepting the TLP: ο TLP transaction layer portion is forwarded to the receiving transaction layer ο If the set is empty DLLR_IN_PROGESS sign ο increase NEXT_RCV_SEQ · When no accepted TLP: ο ο mark set DLLR_IN_PROGESS send Nak DLLP · Ack / Nak Sequence Number field usually contains the value (NEXT_RCV_SEQ-1) · Nak type (NT) field generally indicates the reason Nak ο b'00- identified by the physical layer receive error ο b'01-TLP CRC check fails ο b'10- ο b'11- serial number incorrectly identified by the physical layer framing error

·接收者一般不会允许从接收TLP的CRC到发送Nak的时间超过1023个符号时间,如从组件的端口所测量的那样。 · Recipients are generally not allowed to receive from the TLP CRC Nak time to send more than 1023 symbols time, as measured by the port component from.

ο注意:没有增加NEXT_RCV_SEQ·如果接收数据链路层没有接收到在其后的512符号时间内跟随着NakDLLP的期望TLP,则重复Nak DLLP。 ο Note: There is no increase NEXT_RCV_SEQ · If you receive the data link layer is not received within the subsequent 512 symbol time followed NakDLLP expectations TLP, then repeat Nak DLLP.

ο如果经过四次尝试后仍然没有接收到期望的TLP,则接收者将:·进入LinkActDefer状态,并启动由物理层进行的链路重新训练·将主要错误的发生指示给错误跟踪与记录·当下列条件为真时,一般会发送数据链路层确认DLLP:ο数据链路控制与管理状态机处于LinkActive状态ο已经接受了TLP,但还没有通过发送确认DLLP进行确认ο从最后的确认DLLP起已经经过了超过512个符号时间·可以比所需要的更频繁地发送数据链路层确认DLLP·数据链路层确认DLLP在Ack序列Num字段内规定值(NEXT_RCV_SEQ-1)Ack超时机制考虑TLP在链路112上被损坏使得接收者不能检测到TLP的存在的情况。 ο If after four attempts still have not received the expected TLP, then the recipient will: enter LinkActDefer state, and start from the physical layer link re-training · The main errors occur when instructions for bug tracking and recording · the following conditions are true, the general will send the data link layer acknowledgment DLLP: ο data link control and management state machine is LinkActive state ο has accepted TLP, but have not yet confirmed the final confirmation from ο DLLP play by sending a confirmation DLLP has been more than 512 symbols time · can send more than the required frequent data link layer data link layer acknowledgment DLLP · Confirm DLLP rules within the Ack sequence Num field values (NEXT_RCV_SEQ-1) Ack timeout mechanism in consideration TLP on link 112 from being damaged such that the receiver can not detect the presence of the TLP. 当发送随后的TLP时将检测到丢失的TLP,因为TLP序列号码与接收者处的期望序列号码不匹配。 When sending subsequent TLP will detect the loss of TLP, because the expected sequence number and the recipient of the TLP serial number does not match. 然而发送数据链路层204通常不能限定下一TLP从发送传输层到在发送数据链路层204上面出现的时间。 However, the transmission data link layer 204 typically can not be defined from the transmission time of the next TLP to the transport layer transmits the data link layer 204 in the above appears. Ack超时机制允许发送者限定接收者所需的检测丢失TLP的时间。 Ack timeout mechanism allows the sender to the recipient is required to detect the loss of limited time TLP.

Ack超时机制规则·如果发送重试缓冲器含有没有接收到Ack DLLP的TLP,并且如果在超过1024个符号时间的时间段内没有发送TLP或链路DLLP,则一般会发送Ack超时DLLP。 Ack timeout mechanism rules · If you send retry buffer containing does not receive the Ack DLLP the TLP, and if you do not send TLP or link DLLP in more than 1024 symbols period of time, it is generally sends Ack timeout DLLP.

·在发送Ack超时DLLP之后,数据链路层一般不会传送任何TLP到物理层用于发送,直到从链路的另一方的组件接收到确认DLLP。 · After transmitting the Ack Timeout DLLP, the data link layer typically does not send any TLP to the physical layer for transmission, until it receives from the other components of the link to confirm DLLP.

ο如果在超过1023个符号时间的时间段内没有接收到确认DLLP,则再次发送Ack超时DLLP,在第四次连续发送Ack超时DLLP之后的1024个符号时间内仍没有接收到确认DLLP,进入LinkActDefer状态并且启动由物理层进行的链路保持·将主要错误的发生指示给错误跟踪与记录。 ο If no acknowledgment is received in more than 1023 symbols DLLP time period, then send it again Ack timeout DLLP, within 1024 symbols fourth consecutive time in sending Ack timeout after DLLP still not received confirmation DLLP, enter LinkActDefer state and initiate a link from the physical layer to maintain · The main indication for the occurrence of errors and error tracking record.

上文已经介绍了数据链路层204的数据完整性机制的体系结构上的元件以及协议元件,参考图7,其中根据一个示例性实施例示出了数据完整性机制的示例性实现。 The foregoing has described the elements and the protocol architecture of the data link layer element data integrity mechanisms 204 on, with reference to FIG. 7, which in accordance with one exemplary embodiment illustrates an exemplary implementation of the data integrity mechanisms.

图7是根据本发明的一个示例性实施例的用于在EGIO体系结构中监视数据完整性的示例性方法的流程图。 7 is a flowchart showing the EGIO architecture to monitor the data integrity of an exemplary method according to an exemplary embodiment of the present invention. 根据图7所图示的示例性实现,方法以方框702开始,其中在EGIO元件的EGIO接口106处通过虚拟信道接收数据报。 According to the illustrated exemplary implementation of FIG. 7, the method begins in block 702, wherein the received data packets in the EGIO interface EGIO element 106 through the virtual channel. 如上所述,数据报在提升进入数据链路层204之前通过物理链路层206接收。 As described above, datagram before ascending into the receiving data link layer 204 through physical link layer 206. 根据某些实施例,物理层206确定所接收的数据报是否符合分组成帧(framing)需求等。 According to certain embodiments, the physical layer implementation 206 determines that the received data packets whether the packet framing (framing) demand. 在某些实施例中,丢弃未能满足这样的成帧需求的数据报,而不会提升或由数据链路层204的数据完整性机制分析。 In certain embodiments, the discarded framed failed to meet the needs of such datagrams, without lifting or analyzed by the data integrity mechanism of the data link layer 204. 如果证实了成帧,物理层从数据报剥去成帧边界以显露数据链路层分组,其被提升到数据链路层。 If confirmed by the framing, the physical layer framing boundaries from the datagram stripped to expose the data link layer packets, which is elevated to the data link layer.

在方框704中,在从物理层206接收到数据报之后,在数据链路层204中证实数据链路层分组的完整性。 At block 704, after receiving from the physical layer data packet 206 to confirm the integrity of the data link layer packet in the data link layer 204. 如上所述,数据链路层204的数据完整性机制使用序列号码、CRC信息等等中的一个或多个来证实包括TLLP和其他事物的DLLP中的信息正确。 One or more as described above, the data link layer data integrity mechanism using a sequence number 204, CRC information, etc. to confirm the TLLP and other things including DLLP the information is correct.

如果在方框704中数据链路层204识别了所接收DLLP的完整性中的缺陷,则数据链路层204调用上面提到的错误处理机制实例。 If in block 704 the data link layer 204 identifies the received DLLP integrity defects, the data link layer 204 to call the above-mentioned error handling mechanism instance.

如果在方框704中,数据链路层204证实了所接收DLLP的完整性,则在方框708中所接收DLLP的至少一个子集被提升到事务层202。 If at block 704, the data link layer 204 confirms the integrity of the received DLLP, at block 708, the received DLLP least a subset of the transaction layer 202 is raised to. 根据一个示例性实现,剥去针对数据链路层的信息(例如,头部、注脚(footer)等)以显露TLLP,其被传送到事务层用于进一步的处理。 According to an exemplary implementation, the data link layer for the stripped information (e.g., header, footer (footer), etc.) to reveal TLLP, which is transferred to the transaction layer for further processing.

物理层206继续参考图2,示出了物理层206。 Physical Layer 206 With continued reference to Figure 2, shows the physical layer 206. 如这里所使用的,物理层206使事务202和数据链路204与用于链路数据相互交换的信令技术相隔离。 As used herein, the physical layer 202 and 206 so that the transaction data link data link 204 exchange signaling techniques and used to isolate. 根据图2所图示的示例性实现,物理层划分为逻辑208和物理210功能子块。 Illustrated in Figure 2 according to an exemplary implementation, the physical layer is divided into the logical 208 and physical 210 functional sub-blocks.

如这里所使用的,逻辑子块208负责物理层206的“数字”功能。 As used herein, the logical sub-block 208 is responsible for the physical layer 206 of the "digital" function. 在这方面,逻辑子块204具有两个主要划分:发送部分,准备输出信息用于由物理子块210进行发送;以及接收者部分,用于在将所接收信息传送到链路层204之前识别并准备该信息。 In this regard, the logical sub-block 204 has two main allocation: transmitting section, is ready to output information is used by the physical sub-block 210 for transmission; and a receiver portion for transmitting the received information prior to the link layer 204 identifies and to prepare the information. 逻辑子块208和物理子块210通过状态与控制寄存器接口协调端口状态。 Logical sub-block 208 and physical sub-block 210 by status and control register interface coordination port status. 由逻辑子块208指导物理层206的控制与管理功能。 By logical sub-block 208 to guide the physical layer 206 control and management functions.

根据一个示例性实现,EGIO体系结构使用8b/10b发送代码。 According to one example implementation, EGIO architecture uses 8b / 10b transmission code. 使用该方案,8比特字符被视为3比特和5比特,所述3比特和5比特各自映射到4比特代码组和6比特代码组。 With this scheme, eight-bit characters are treated as three bits and 5 bits, 3 bits and the 5 bits are each mapped to a 4-bit code group and a 6-bit code groups. 这些代码组被连接以形成10比特符号。 These code groups are connected to form a 10-bit symbols. EGIO体系结构使用的8b/10b编码方案提供了专用符号,其与用来表示字符的数据符号完全不同。 8b / 10b encoding scheme used by EGIO architecture provides a dedicated symbol used to represent the data symbols with a completely different character. 这些专用符号用于下面的多种链路管理机制。 These special symbols are used to manage a variety of mechanisms following link. 专用符号还用于成帧DLLP和TLP,使用完全不同的专用符号允许快速便捷地区分这两类分组。 Special symbols are also used for framing DLLP and TLP, using completely different special symbol allows quick and easy to distinguish these two types of packets.

物理子块210包括发送者和接收者。 Physical sub-block 210 includes a sender and a receiver. 逻辑子块208向发送者供应符号,发送者串行化这些符号并将其发送到链路112。 Logical sub-block 208 supplies symbols to the sender, the sender serialized symbols and sends it to the link 112. 链路112向接收者供应串行化符号。 112 serial link supply of symbols to the recipient. 接收者将所接收信号转换为比特流,比特流被解串行化,并且连同从输入串行流中恢复的符号时钟一起被供应道逻辑子块208。 The receiver converts the received signal into a bit stream, the bit stream is de-serialized, and together with the recovered symbol stream from the input serial clock is supplied together with the logical sub-channel block 208. 应当理解,如这里所使用的,EGIO链路112可以代表多种通信介质中的任何一种,包括:电通信链路、光通信链路、RF通信链路、红外线通信链路、无线通信链路等等。 It should be understood that, as used herein, EGIO link 112 may represent a variety of communication media any one, comprising: a radio link, an optical communications link, RF communication link, infrared communication link, a wireless communication link Road and so on. 在这方面,包括物理层206的物理子块210的(多个)发送者和/或(多个)接收者中的每一个都适合于一种或多种上述通信链路。 In this regard, including the physical layer 206 physical sub-block 210 (s) the sender and / or (s) receivers on each one adapted to one or more of said communication link.

示例性通信代理图8示出了含有与本发明相关联的特征的至少一个子集的示例性通信代理的方框图。 Exemplary communication agent Figure 8 shows a block diagram of an exemplary communication agent containing at least a subset of the present invention is associated with the characteristics. 根据本发明的一个示例性实现,根据图8所图示的示例性实现,所描述的通信代理800包括控制逻辑802、EGIO通信引擎804、数据结构的存储器空间806、以及可选的一个或多个应用808。 According to an exemplary implementation of the present invention, illustrated in FIG. 8 according to an exemplary implementation, the described communication agent 800 includes control logic 802, EGIO communication engine 804, memory space for data structures 806, and optionally one or more 808 apps.

如这里所使用的,控制逻辑802向EGIO通信引擎804的一个或多个元件中的每个提供处理资源以选择性地实现本发明的一个或多个方面。 As used herein, control logic 802 provides processing resources to selectively implement one or more aspects of the present invention to EGIO communication engine 804 or a plurality of elements each. 在这个方面,控制逻辑802被规定为代表微处理器、微控制器、有限状态机、可变成逻辑器件、现场可编程门阵列、或当执行时使控制逻辑实现上述之一功能的内容中的一个或多个。 In this regard, control logic 802 is specified as a representative microprocessor, microcontroller, finite state machine, can become logic devices, field programmable gate arrays, or the control logic, when executed implement the contents of one of the functions of the above-described one or more.

所描述的EGIO通信引擎804包括事务层接口202、数据链路层接口204、以及包括逻辑子块208和物理子块210以连接通信代理800和EGIO链路112的物理层接口206中的一个或多个。 EGIO communication engine 804 described transaction layer interface 202 includes, a data link layer interface 204, and includes a logical sub-block 208 and physical sub-block 210 to connect the communication agent 800 and the EGIO link 112 is a physical layer interface 206, one or multiple. 如这里所使用的,EGIO通信引擎804的元件执行与上述的功能相同或类似的功能。 As used herein, EGIO communication engine 804 perform the above-described elements function the same or similar functions.

根据图8所图示的示例性实现,所描述的通信代理800包括数据结构806。 Illustrated in FIG. 8 according to an exemplary implementation, the communication agent 800 includes the described data structure 806. 如下文参考图10将要详细介绍的,数据结构806可以包括存储器空间、IO空间、配置空间和消息空间,所述空间由通信引擎804使用以便于EGIO体系结构的元件之间进行通信。 Below with reference to FIG. 10 will be described in detail, the data structure 806 may include memory space, IO space, configuration space and message space for communication between the elements of the EGIO architecture of the space used by the communications engine 804.

如这里所使用的,应用808被规定为代表由通信引擎800选择性调用的多种应用的任何一种,以实现EGIO通信协议和相关的管理功能。 As used herein, the application 808 is specified as the representative of any of a variety of applications selectively invoked by communication engine 800 to implement the EGIO communication protocol and associated management functions. 根据一个示例性实现,带宽管理器、流控制机制、数据完整性机制和对老式中断的支持被实现为通信代理800中的可执行内容,所述可执行内容可由EGIO通信引擎804的一个或多个合适元件有选择地调用。 According to an exemplary implementation, the bandwidth manager, flow control mechanisms, data integrity mechanisms and support for the old interrupt is implemented as a communication agent 800. executable content, the executable content may be an EGIO communication engine 804 or more a suitable component selectively invoked.

示例性(多种)数据结构参考图10,描述了(多个)EGIO接口106使用的一种或多种数据结构的示图。 Exemplary (more) data structure with reference to FIG. 10, EGIO interface 106 illustrating one or more data structures using the described (s). 根据本发明的一个实现,更具体地说,参考图10所图示的示例性实现,定义了四(4)个地址空间以在EGIO体系结构中使用:配置空间1010、IO空间1020、存储器空间1030以及消息空间1040。 According to one implementation of the invention, more specifically, with reference to the illustrated example implementation of Fig. 10, defines the four (4) address spaces for use in EGIO architecture: the configuration space 1010, IO space 1020, memory space 1030 and 1040 message space. 如所示,配置空间1010包括头部字段1012,其包括定义了EGIO类别的信息,其中主设备(例如,端点、交换器、根复合体等等)属于该类别。 As shown, configuration space 1010 includes a header field 1012, which defines the EGIO category includes information, wherein the master device (e.g., endpoint, switches, root complex, etc.) belong to this category. 这些地址空间的每个都执行他们如上所述的各自功能。 Each of these address spaces are to perform their respective functions as described above.

其它实施例图12是根据本发明另一个实施例的其上存有多个指令的存储器介质的方框图,其中所述指令包括实现EGIO互连体系结构和通信协议的一个或多个方面的指令。 Other embodiments FIG. 12 is a block diagram of which there are a plurality of instructions on a memory medium of embodiment according to another embodiment of the present invention, wherein the instruction comprises achieve EGIO interconnection architecture and a communication protocol or more aspects of the instruction.

大体而言,图12图示了其上(中)存储有内容1202的机器可访问介质/设备1200,所述内容包括以下内容的至少一个子集,即当访问机器执行所述内容时,所述内容实现了本发明的创新EGIO接口106。 In general, Figure 12 illustrates thereon (in) 1202 stores contents machine accessible medium / device 1200, the content comprising the at least one subset of the content, when accessed by a machine that is executing the content, the said content to achieve an innovative EGIO interface 106 of the invention. 如这里所使用的,机器可访问介质1200被规定为代表本领域技术人员公知的多种介质的任何一个,例如易失性存储器设备、非易失性存储器设备、磁存储介质、光存储介质、传播信号等等。 As used herein, machine accessible medium 1200 is specified as a representative of any well known to those skilled in the various media, such as volatile memory devices, nonvolatile memory devices, magnetic storage media, optical storage media, propagated signal, and so on. 类似地,可执行指令被规定为表达本领域公知的多种软件语言的任何一种,例如C++、Visual Basic、超文本标记语言(HTML)、Java、可扩充标记语言(XML)等等。 Similarly, the executable instructions are defined as any known in the art as an expression of a variety of software languages, such as C ++, Visual Basic, Hypertext Markup Language (HTML), Java, extensible markup language (XML) and so on. 此外,应当认识到介质1200不需要与任何主系统共处在一起。 In addition, it should be appreciated medium 1200 does not need to coexist together with any host system. 即,介质1200可以位于远程服务器中,所述服务器可通信地耦合到执行系统并可由执行系统访问。 That is, the media 1200 may be located on a remote server, the server may be communicatively coupled to the system and can be executed by the execution system access. 因此,图12的软件实现应当认为是示例性的,因为另一个存储介质与软件实施例被认为位于本发明的精神和范围之内。 Thus, the software implementation of Fig. 12 should be regarded as illustrative in nature, because another storage medium and software embodiments are to be considered within the spirit of the invention and located in scope.

尽管以详细的描述以及对结构特征和/或方法步骤的专用语言的抽象描述了本发明,但是应当理解,在所附权利要求中定义的本发明不必限制为所描述的具体特征或步骤。 Although the detailed description and the abstract structural features and / or method steps described in the specific language of the present invention, it is to be understood that, as defined in the appended claims of the present invention is not necessarily limited to the specific features or steps described. 相反,所述具体特征和步骤只是作为实现所主张的发明的示例性形式而被公开。 Instead, the specific features and steps just as the implementation of the claimed invention have been disclosed exemplary forms. 然而很明显,可以对其进行各种修改和变化而不会背离本发明较宽的精神和范围。 Clearly, however, can be various modifications and changes without departing from this invention in its broader spirit and scope thereof. 因此本说明书和附图被认为是示例性的而不是限制性的。 The specification and drawings are considered as illustrative and not restrictive. 说明书和摘要没有被规定为是穷尽性的或是要将本发明限制为所公开的确定形式。 Summary of the specification and are not intended to be exhaustive or to limit the invention to the precise forms disclosed.

所附权利要求中使用的术语不应被解释成将本发明限制为说明书中公开的具体实施例。 The term used in the appended claims should not be construed to limit the invention to the specific embodiments disclosed in the specification. 相反,所附权利要求完全确定了本发明的范围,其中根据已有权利要求解释原则来解释所述权利要求。 Instead, completely determine the scope of the invention in the appended claims, interpreted according to claim wherein the existing claims be interpreted according to the principles.

本申请明确地要求了由Ajanovic等人于2001年8月24日递交的美国临时申请No.60/314,708,名为“A High-speed,Point-to-PointInterconnection and Communication Architecture,Protocol and RelatedMethods”(“高速、点到点互连和通信体系结构、协议以及相关方法”)的优先权,并且转让给本申请的受让人。 This application is explicitly required by US Provisional Application Ajanovic et al August 24, 2001 filed No.60 / 314,708, entitled "A High-speed, Point-to-PointInterconnection and Communication Architecture, Protocol and RelatedMethods" ( "High-speed, point to point interconnect and communications architecture, protocol and related methods"), priority, and assigned to the assignee of the present application.

International ClassificationG06F13/14, G06F3/00, G06F13/12, G06F13/24, H04L1/18, G06F13/00
Cooperative ClassificationH04L47/30, H04L47/10, G06F13/4221, G06F5/06, G06F13/124, G06F13/385, G06F13/4282, G06F13/4265, G06F13/4059, G06F13/4252, G06F13/4269, G06F13/42
European ClassificationG06F13/12P
Legal Events
17 Nov 2004C06Publication
26 Jan 2005C10Entry into substantive examination
26 Dec 2007C14Grant of patent or utility model