Systems and methods for maintaining an order of read and write transactions in a computing system
First Claim
1. A bridge circuit comprising control logic, wherein the control logic is configured to:
- maintain a pair of counters for each agent of a plurality of agents, wherein each pair of counters comprises a write counter and a read counter, wherein the write counter tracks a number of outstanding write transactions for a respective agent, and wherein the read counter tracks a number of outstanding read transactions for the respective agent;
forward a read transaction from a given agent out of the bridge circuit only if the write counter for the given agent is equal to zero; and
forward a write transaction from the given agent out of the bridge circuit only if the read counter for the given agent is equal to zero.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods for maintaining an order of read and write transactions for each source through a bridge in a bus fabric. The bridge provides a connection from a first bus to a second bus within the bus fabric. The first bus has a single path for read and write transactions and the second bus has separate paths for read and write transactions. The bridge maintains a pair of counters for each source in a SoC to track the numbers of outstanding read and write transactions. The bridge prevents a read transaction from being forwarded to the second bus if the corresponding write counter is non-zero, and the bridge prevents a write transaction from being forwarded to the second bus if the corresponding read counter is non-zero.
79 Citations
24 Claims
-
1. A bridge circuit comprising control logic, wherein the control logic is configured to:
-
maintain a pair of counters for each agent of a plurality of agents, wherein each pair of counters comprises a write counter and a read counter, wherein the write counter tracks a number of outstanding write transactions for a respective agent, and wherein the read counter tracks a number of outstanding read transactions for the respective agent; forward a read transaction from a given agent out of the bridge circuit only if the write counter for the given agent is equal to zero; and forward a write transaction from the given agent out of the bridge circuit only if the read counter for the given agent is equal to zero. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method comprising:
-
maintaining a write counter in a bridge, wherein the write counter tracks a number of outstanding write transactions from a first source; maintaining a read counter in the bridge, wherein the read counter tracks a number of outstanding read transactions from the first source; preventing a write transaction from the first source from being sent out of the bridge responsive to determining the read counter is non-zero; and preventing a read transaction from the first source from being sent out of the bridge responsive to determining the write counter is non-zero. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A method comprising:
-
receiving a write transaction at a bridge from a first source; storing the write transaction in a queue corresponding to the first source; checking a read counter corresponding to the first source prior to sending the write transaction out of the bridge, wherein the read counter tracks a number of outstanding read transactions for the first source; and preventing the write transaction from being sent out of the bridge responsive to determining the read counter is non-zero. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. An apparatus comprising:
-
two or more agents; and a bridge coupled to the two or more agents, wherein the bridge comprises control logic, and wherein the control logic is configured to; track a number of outstanding write transactions for a first agent; track a number of outstanding read transactions for the first agent; send a write transaction from the first agent to a second agent responsive to determining the number of outstanding read transactions for the first agent is zero; and send a read transaction from the first agent to the second agent responsive to determining the number of outstanding write transactions for the first agent is zero. - View Dependent Claims (22, 23, 24)
-
Specification