US 11,941,428 B2
Ensuring transactional ordering in I/O agent
Sagi Lahav, Kiryat Bialik (IL); Lital Levy-Rubin, Tel Aviv (IL); Gaurav Garg, San Jose, CA (US); Gerard R. Williams, III, Los Altos, CA (US); Samer Nassar, Nazareth (IL); Per H. Hammarlund, Sunnyvale, CA (US); Harshavardhan Kaushikkar, San Jose, CA (US); Srinivasa Rangan Sridharan, Santa Clara, CA (US); and Jeff Gonion, Campbell, CA (US)
Assigned to Apple Inc., Cupertino, CA (US)
Filed by Apple Inc., Cupertino, CA (US)
Filed on Mar. 31, 2022, as Appl. No. 17/657,506.
Claims priority of provisional application 63/175,868, filed on Apr. 16, 2021.
Prior Publication US 2023/0064526 A1, Mar. 2, 2023
Int. Cl. G06F 9/46 (2006.01); G06F 13/16 (2006.01); H04L 49/00 (2022.01)
CPC G06F 9/466 (2013.01) [G06F 13/1668 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A system, comprising:
an input/output (I/O) agent circuit that includes one or more queues and a transaction pipeline, wherein the I/O agent circuit is configured to:
issue, to the transaction pipeline from a queue of the one or more queues, a transaction of a series of transactions enqueued in a particular order;
generate, at the transaction pipeline, a determination to return the transaction to the queue based on a detection of one or more conditions being satisfied;
based on the determination:
reject, at the transaction pipeline, up to a threshold number of transactions that issued from the queue after the transaction issued; and
insert the transaction at a head of the queue such that the transaction is enqueued at the queue sequentially first for the series of transactions according to the particular order.