Ring controller for PCIe message handling

US9806904B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9806904-B2
Application numberUS-201514848233-A
CountryUS
Kind codeB2
Filing dateSep 8, 2015
Priority dateSep 8, 2015
Publication dateOct 31, 2017
Grant dateOct 31, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system that includes a PCIe hierarchy may utilize a ring controller for message handling. Nodes acting as the root complex or as endpoint devices may include such ring controllers, portions of which may be implemented by dedicated circuitry on each node. The ring controllers may receive posted transactions representing messages, may return flow control credits for those transactions, may classify each message as to its type, and may write information about each message to a respective ring buffer storing information about messages of that type. A processor (or processing logic/circuitry) on the node may subsequently retrieve messages from the ring buffers and process them. The sizes and locations of the ring buffers in memory may be configurable by software (e.g., by writing to registers within the ring controllers). The message types may include correctable and non-correctable error messages, and non-error messages (including, but not limited to, vendor-defined messages).

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus, comprising: a processor; a memory comprising program instructions that when executed on the processor causes the processor to perform at least a portion of an application; a network interface that connects the apparatus to a switched fabric hierarchy; and a ring controller; wherein, during execution of the application, the ring controller is configured to: receive one or more posted transactions, each representing a message; determine, for one of the posted transactions, a type for the message, wherein the determined type is one of a plurality of message types supported by the switched fabric hierarchy; and store, for the one of the posted transactions, information about the message in a data structure that is configured to store information about a plurality of messages of the determined type; and wherein, during execution of the application and subsequent to the information about the message being stored in the data structure, the processor is configured to: retrieve the information about the message from the data structure; and process the message. 2. The apparatus of claim 1 , wherein the apparatus implements a root complex in the switched fabric hierarchy; and wherein the determined message type is one of a plurality of error message types. 3. The apparatus of claim 2 , wherein the posted transaction is received from one of a plurality of endpoint devices in the switched fabric hierarchy. 4. The apparatus of claim 1 , wherein the data structure is one of a plurality of data structures, each of which is configured to store information about a plurality of messages of a respective different type; and wherein to retrieve the information about the message from the data structure, the processor is configured to select the message from among messages stored in the plurality of data structures dependent on a relative priority between the messages or their message types. 5. The apparatus of claim 4 , wherein, during execution of the application, the ring controller is configured to: determine, for another one of the posted transactions, that the message is to be dropped, wherein to determine that the message is to be dropped, the ring controller is configured to determine that information in the packet header or contents of the posted transaction does not match pre-determined criteria for classifying the message as being of one of the message types stored in one of the plurality of data structures. 6. A method, comprising: receiving, by a node in a switched fabric hierarchy, a posted transaction representing a message; determining, by the node, a type for the message, wherein the determined type is one of a plurality of message types supported by the switched fabric hierarchy; storing, by the node, information about the message in a data structure that stores information about messages of the determined type; retrieving, by the node subsequent to storing the information about the message in the data structure, the information about the message; and processing, by the node, the message. 7. The method of claim 6 , further comprising: returning, by the node prior to said storing, flow control credits associated with the posted transaction. 8. The method of claim 6 , further comprising: prior to said receiving, configuring the data structure and each of one or more other data structures to store messages of respective different message types. 9. The method of claim 6 , wherein the data structure comprises a ring buffer; and wherein the method further comprises, prior to said receiving, configuring the ring buffer, wherein configuring the ring buffer comprises one or more of: allocating memory for the ring buffer, determining a size of the ring buffer, storing the determined size in a register, determining a starting address for the ring buffer, storing an indication of the starting address for the ring buffer in a register, setting a value of a head pointer for the ring buffer, initializing a value of a tail pointer for the ring buffer, or initializing a value of a counter associated with the ring buffer. 10. The method of claim 8 , further comprising: receiving another posted transaction representing another message of the determined type; determining that the ring buffer is full; and in response to determining that the ring buffer is full: increasing the size of the ring buffer; dropping the other message without processing it; or generating an interrupt indicating that the message was dropped. 11. The method of claim 6 , wherein determining the type for the message comprises: examining a value of a field in a packet header of the posted transaction; and comparing the value of the field to predetermined criteria for classifying messages of the plurality of message types supported by the switched fabric hierarchy. 12. The method of claim 6 , wherein the node implements a root complex in the switched fabric hierarchy; and wherein the determined message type is a correctable error message type or a non-correctable error message type. 13. The method of claim 6 , wherein the node implements an endpoint device in the switched fabric hierarchy; and wherein the determined message type is a vendor-defined message type or another non-error message type. 14. The method of claim 13 , wherein the posted transaction is received from a root complex component in the switched fabric hierarchy; and wherein determining the type for the message comprises: examining a value of a field in the posted transaction; and comparing the value of the field to predetermined criteria for classifying vendor-defined messages or other non-error messages. 15. A system, comprising: a computing node configured as a root complex component in a switched fabric hierarchy; two or more computing nodes configured as endpoints in the switched fabric hierarchy; a network switch for the switched fabric network that connects the root complex component and the endpoints to each other; and a memory; wherein at least one of the two or more computing nodes configured as endpoints or the computing node configured as a root complex component comprises a ring controller; and wherein the ring controller is configured to: receive a posted transaction representing a message; determine a type for the message, wherein the determined type is one of a plurality of message types supported by the switched fabric hierarchy; and store information about the message in a data structure that stores information about messages of the determined type, wherein the data structure resides in the memory; and wherein, subsequent to the information about the message being stored in the data structure, the at least one of the computing nodes is configured to: retrieve the information about the message from the data structure; and process the message. 16. The system of claim 15 , wherein the data structure is one of a plurality of data structures, each of which is configured to store messages of a respective different message type. 17. The system of claim 15 , wherein the ring controller is a component of the computing node configured as the root complex component; and wherein the data structure is one of a plurality of data structures, each of which is configured to store error messages of a respective different error message type. 18. The system of claim 15 , wherein, subsequent to receiving the posted transaction and prior to storing information about the message in the data structure, the ri

Assignees

Inventors

Classifications

  • using storage descriptor, e.g. read or write pointers · CPC title

  • Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level · CPC title

  • Interconnection of switching modules · CPC title

  • H04L12/423Primary

    with centralised control, e.g. polling · CPC title

  • by discarding or delaying data units, e.g. packets or frames · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9806904B2 cover?
A system that includes a PCIe hierarchy may utilize a ring controller for message handling. Nodes acting as the root complex or as endpoint devices may include such ring controllers, portions of which may be implemented by dedicated circuitry on each node. The ring controllers may receive posted transactions representing messages, may return flow control credits for those transactions, may clas…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification H04L12/423. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Oct 31 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).