Flow-id dependency checking logic
AssigneeApple Inc.
InventorsGurjeet S. Saund, Harshavardhan Kaushikkar
Life of this patent
Estimating the term…
Abstract
Systems and methods for maintaining an order of transactions in the coherence point. The coherence point stores attributes associated with received transactions in an input request queue (IRQ). When a new transaction is received with a device ordered attribute, the IRQ is searched for other entries with the same flow ID as the new transaction. If one or more matches are found, the new transaction entry points to the entry for the most recently received transaction with the same flow ID. The new transaction is prevented from exiting the coherence point until the transaction it points to has been sent to its destination.
Claims24
A coherence point comprising:
- one or more queues, wherein each queue stores a plurality of outstanding transactions;
- and
- a dependency logic unit coupled to the one or more queues, wherein the dependency logic unit is configured to:
- search the one or more queues for transactions with a first flow-identifier (ID) responsive to receiving a first transaction with the first flow-ID at the coherence point, wherein the first transaction has a device ordered attribute;
- and
- mark the first transaction as dependent on a second transaction responsive to determining the second transaction is a most recently received transaction in the one or more queues with the first flow-ID.
A method comprising:
- receiving a first transaction with a first flow-identifier (ID) at a coherence point;
- searching a queue for any transactions with the first flow-ID, wherein the queue is configured to store entries corresponding to a plurality of outstanding transactions;
- identifying a most recently received transaction in the queue with the first flow-ID responsive to finding multiple matches for the first flow-ID in the queue;
- marking the first transaction as dependent on the most recently received transaction in the queue with the first flow-ID;
- and
- preventing the first transaction from exiting the queue until the most recently received transaction with the first flow-ID exits the queue.
A method comprising:
- receiving a first transaction with a first flow-identifier (ID) at a coherence point, wherein the first transaction has a device ordered attribute;
- searching a queue for any transactions with the first flow-ID and the device ordered attribute;
- setting a first head pointer corresponding to the first transaction to reference itself responsive to finding no transactions with the first flow-ID in the queue;
- and
- setting the first head pointer to reference a second transaction responsive to finding one or more transactions with the first flow-ID and the device ordered attribute, wherein the second transaction is a most recently received transaction in the queue with both the first flow-ID and the device ordered attribute.
An apparatus (SoC) comprising:
- a coherence point, wherein the coherence point comprises:
- one or more queues, wherein each queue of the one or more queues stores a plurality of outstanding transactions;
- a dependency logic unit coupled to the one or more queues;
- and
- a memory controller coupled to the coherence point;
- wherein the coherence point is configured to:
- search a flow-ID field of each entry of the one or more queues for a match to a first flow-ID, responsive to receiving a new transaction with the first flow-ID and a device ordered attribute;
- identify a most recently received transaction in the queue with the first flow-ID responsive to finding multiple matching entries in the one or more queues;
- store the new transaction in a first entry of the one or more queues;
- update a head pointer field of the first entry to reference a second entry, wherein the second entry stores the most recently received transaction in the queue with the first flow-ID;
- and
- prevent the new transaction from exiting the coherence point until the most recently received transaction in the queue with the first flow-ID has exited the coherence point.
Dependencies are inferred from the claim text.