# US 8,788,737 B2 · Transport of PCI-ordered traffic over independent networks

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,737 B2
- Document ID: US8788737B2
- Status: Granted
- Kind: B2
- Application number: 13/337,280
- Filed: 2011-12-26
- Published: 2013-06-27
- Granted: 2014-07-22
- Earliest claimed: 2011-12-26
- Assignees: QUALCOMM Technologies, Inc.
- Applicants: Philippe Boucard; Jean-Jacques Lecler; Philippe Martin; Laurent Moll
- Inventors: Philippe Boucard; Jean-Jacques Lecler; Philippe Martin; Laurent Moll
- Web page: https://patentgrep.com/patent/US8788737B2

## CPC

- G06F 13/4022: {using switching circuits, e.g. switching matrix, connection or expansion network (G06F13/4009 takes precedence)}
- G06F 13/405: {where the bridge performs a synchronising function}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method are disclosed for connecting PCI-ordered agents based on fully independent networks. The system and method are free of PCI topology constraints, so that the system and method can be implemented in an inexpensive and scalable way. The method disclosed is used to handle and transport PCI-ordered traffic on a fabric. Based on the actual ordering requirement of the set of PCI agents, the fabric includes two, three, or four independent networks.

## Claims

### Claim 1

A system for simplification of interconnecting a fabric using a plurality of networks, the system comprising:
at least one PCI-ordered agent, wherein the at least one PCI-ordered agent includes an interface to transmit and receive at least one transaction type selected from a transaction group, wherein the transaction group includes posted, non-posted, and completion;
a first bridge, wherein the first bridge comprises:
a primary interface in communication with the at least one PCI-ordered agent to transmit and receive the at least one transaction type selected from the transaction group; and
a secondary interface to transmit and receive at least one secondary transaction type selected from a secondary transaction group that includes posted, non-posted, completion and posted completion,
wherein the posted completion from the secondary transaction group is transmitted by the first bridge on the secondary interface in response to reception of the posted from the transaction group; and
an interconnect fabric communicating with the secondary interface and enabled to transport transactions between the first bridge and a second bridge, wherein fabric ordering is independent of transaction ordering, and
wherein the first bridge and the second bridge include hazard logic enabled to delay a transmission of a transaction selected from the transaction group based on a reception of posted completion from the secondary transaction group corresponding to previously transmitted posted from the transaction group.

### Claim 2 (depends on 1)

The system of claim 1 wherein the hazard logic is configured to not delay the transmission of posted from the transaction group based on previously transmitted posted from the secondary transaction group transmitted by the interconnect fabric to the same bridge as the posted from the transaction group is transmitted to by the at least one PCI-ordered agent.

### Claim 3 (depends on 1)

The system of claim 1 wherein the hazard logic is configured to not delay the transmission of the non-posted from the transaction group based on previously transmitted posted from the transaction group to different address ranges than an address range of the non-posted from the transaction group.

### Claim 4 (depends on 1)

The system of claim 1 wherein the hazard logic is configured to not delay completion transactions between the first bridge and the second bridge.

### Claim 5 (depends on 1)

The system of claim 1 wherein the first bridge comprises a buffer for buffering non-posted sent by the at least one PCI-ordered agent on the primary interface, to order behind posted requests transmitted earlier and not behind posted requests not transmitted earlier, whereby the buffer reduces negative effects on bandwidth and latency of the non-posted caused by concurrent posted sent by the at least one PCI-ordered agent on the primary interface.

### Claim 6 (depends on 5)

The system of claim 5 wherein size of the buffer is based on the roundtrip time of posted and corresponding posted completion through the interconnect fabric.

### Claim 7 (depends on 1)

The system of claim 1 wherein the first bridge comprises a buffer for buffering completion sent by the at least one PCI-ordered agent on the primary interface whereby the buffer reduces negative effects on bandwidth and latency of the completion caused by concurrent posted sent by the at least one PCI-ordered agent on the primary interface.

### Claim 8 (depends on 7)

The system of claim 7 wherein size of the buffer is based on the roundtrip time of posted and corresponding posted completion through the interconnect fabric.

### Claim 9 (depends on 1)

The system of claim 1 wherein the interconnect fabric transports posted, non-posted, completion and posted completion from the secondary transaction group on independent networks.

### Claim 10 (depends on 1)

The system of claim 1 wherein the interconnect fabric transports posted and completion, which are selected from the transaction group and the secondary transaction group, respectively, on one network.

### Claim 11 (depends on 1)

The system of claim 1 wherein the interconnect fabric transports posted and non-posted, which are selected from any one of the transaction group and the secondary transaction group, on the same network.

### Claim 12 (depends on 1)

The system of claim 1 wherein the interconnect fabric transports completion and posted completion, which are selected from the secondary transaction group, on the same network.

### Claim 13 (depends on 1)

The system of claim 1 further comprising a second PCI-ordered agent in communication with the second bridge.

### Claim 14 (depends on 1)

The system of claim 1, wherein the fabric ordering is independent of ordering between posted and non-posted.

### Claim 15 (depends on 1)

The system of claim 1, wherein the fabric ordering is independent of ordering between posted and completion.

### Claim 16 (depends on 1)

The system of claim 1, wherein communication between the first bridge and the fabric uses three networks and the posted and the completion selected from the transaction group are carried on the same network.

### Claim 17 (depends on 1)

The system of claim 1, wherein communication between the first bridge and the fabric uses two networks, wherein one network carries the posted and the non-posted while another network carries the completion and the posted completion.

### Claim 18

A method of maintaining PCI ordering on an interconnect fabric, the method comprising steps of:
transmitting a posted completion transaction on the interconnected fabric as a response to receiving a posted transaction;
delaying the transmission of any one transaction selected from a transaction group based on the reception of the posted completion transaction;
checking for a new posted transaction;
checking for a prior posted transaction with dependency ordering; and
delaying a transmission of the new posted transaction until the prior posted transaction is sent and completed as indicated by the posted completion transaction,
wherein the transaction group includes a posted transaction, a non-posted transaction, and a completion transaction.

### Claim 19 (depends on 18)

The method of claim 18 further comprising step of delaying the transmission of a new non-posted transaction based on a prior non-posted transaction with dependency ordering.

### Claim 20 (depends on 18)

The method of claim 18 further comprising step of delaying the transmission of a new completion transaction based on a prior completion transaction with dependency ordering.

### Claim 21

A computer system including a memory and a processor to execute a program that models PCI-ordered interconnect fabrics and provides a solution for creating PCI-ordered interconnect fabrics, the program comprising steps of:
providing a set of PCI-ordered protocols that are supported by the program;
providing for each PCI-ordered protocol a set of parameters that are supported by the program;
requesting a selection of at least one agent from a plurality of agents, to connect to an interconnect fabric;
requesting, for the at least one agent, a selection of a PCI-ordered protocol to connect to the agent, wherein the PCI-ordered protocol is selected from the set of PCI-ordered protocols that are supported by the program;
requesting, for the at least one agent, an input of a parameter, wherein the parameter is used to connect to the at least one agent, and wherein the parameter is selected, from the set of parameters supported by the program, for the PCI-ordered protocol selected; and
providing, for the agent, a bridge, wherein the bridge is enabled to connect to the agent using the PCI-ordered protocol selected for the at least one agent and the parameter inputted for the at least one agent, and wherein the bridge is enabled to convert the PCI-ordered protocol selected for the at least one agent with the parameters inputted for the at least one agent to a protocol suitable to be carried on independent networks in the interconnect fabric,
wherein the bridge is enabled to send a posted completion transaction as a response to receiving a posted transaction from the interconnect fabric, and
wherein the bridge is enabled to delay transactions received from the at least one agent based on the reception of a posted completion transaction from the interconnect fabric.

### Claim 22 (depends on 21)

The computer system of claim 21, wherein the program further comprises step of:
providing a set of components that define the interconnect fabric,
wherein the step of requesting the selection of at least one agent comprises requesting input of an interconnection table between the at least one agent and at least one other agent.

### Claim 23 (depends on 22)

The computer system of claim 22, wherein the program further comprises step of enabling the interconnect fabric to connect to the bridge and wherein a topology of the interconnect fabric supports the interconnection table.

### Claim 24 (depends on 21)

The computer system of claim 21, wherein the program further comprises steps of:
providing a set of components that define the interconnect fabric;
requesting selection of at least two components from the set of components and respective connections to describe the interconnect fabric; and
providing the interconnect fabric enabled to connect to the bridge wherein a topology of the interconnect fabric matches a topology of the bridge.

### Claim 25 (depends on 21)

The computer system of claim 21, wherein the program further comprises steps of:
providing a set of non-PCI-ordered protocols that are supported by the program;
providing a set of parameters for each non-PCI-ordered-protocol of the set of non-PCI-ordered protocols that are supported by the program;
requesting a selection of at least one new agent connected by the interconnect fabric through the non-PCI-ordered protocols of the set of non-PCI-ordered protocols that are supported by the program;
requesting, for the at least one new agent, a selection of one non-PCI-ordered protocol from the set of non-PCI-ordered protocols that are supported by the program, to be used to connect to the at least one new agent;
requesting for the at least one new agent an input of new parameters, to be used to connect to the at least one new agent, wherein the new parameters are supported by the program for the non-PCI-ordered protocol selected; and
providing a second bridge for the at least one new agent, wherein the second bridge connects the at least one new agent to the interconnect fabric using the non-PCI-ordered protocol selected for the at least one new agent and the new parameters inputted for the at least one new agent, and wherein the second bridge converts the non-PCI-ordered protocol selected for the at least one new agent with the new parameters inputted for the at least one new agent to a suitable protocol that can be carried on the interconnect fabric.

### Claim 26

An apparatus for maintaining PCI ordering on an interconnect fabric, comprising:
means for transmitting a posted completion transaction on the interconnected fabric as a response to receiving a posted transaction;
means for delaying the transmission of any one transaction selected from a transaction group based on the reception of the posted completion transaction;
means for checking for a new posted transaction;
means for checking for a prior posted transaction with dependency ordering; and
means for delaying a transmission of the new posted transaction until the prior posted transaction is sent and completed as indicated by the posted completion transaction,
wherein the transaction group includes a posted transaction, a non-posted transaction, and a completion transaction.

### Claim 27 (depends on 26)

The apparatus of claim 26 further comprising:
means for delaying the transmission of a new non-posted transaction based on a prior non-posted transaction with dependency ordering.

### Claim 28 (depends on 26)

The apparatus of claim 26 further comprising:
means for delaying the transmission of a new completion transaction based on a prior completion transaction with dependency ordering.
