US 12,216,578 B2
Request ordering in a cache
Sandeep Gupta, Cupertino, CA (US); Brian P Lilly, San Francisco, CA (US); and Krishna C Potnuru, San Jose, CA (US)
Assigned to Apple Inc., Cupertino, CA (US)
Filed by Apple Inc., Cupertino, CA (US)
Filed on Jul. 17, 2023, as Appl. No. 18/353,830.
Application 18/353,830 is a continuation of application No. 17/526,944, filed on Nov. 15, 2021, granted, now 11,741,009.
Claims priority of provisional application 63/239,261, filed on Aug. 31, 2021.
Prior Publication US 2023/0359557 A1, Nov. 9, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 12/00 (2006.01); G06F 12/0802 (2016.01)
CPC G06F 12/0802 (2013.01) [G06F 2212/60 (2013.01)] 20 Claims
OG exemplary drawing
 
1. An apparatus, comprising:
two or more request handling pipes respectively comprising:
a first-level token store; and
two or more request buffers configured to store requests from a processor for accessing different devices, wherein at least some of the requests are required to be sent to the different devices according to a temporal order;
a second-level token store;
a bank selection circuit configured to:
for an individual one of the at least some requests from the processor:
select one request handling pipe and one request buffer of the selected one request handling pipe to store the individual request;
store, at the first-level token store of the selected one request handling pipe, a value indicating the selected one request buffer of the selected one request handling pipe in which the individual request is stored; and
store, at the second-level token store, a value indicating the selected one request handling pipe in which the individual request is stored; and
a request selection circuit configured to:
receive an indication of a request handling pipe selected out of the two or more request handling pipes based on the value at the second-level token store that stores an oldest request out of the at least some requests stored at the two or more request handling pipes;
for respective ones of the two or more request handling pipes, receive an indication of a request buffer selected out of the two or more request buffers of the respective ones of the request handling pipes based on the values at the first-level token stores of the respective ones of the request handling pipes that stores an oldest request out of a subset of the at least some requests stored at the two or more request buffers of the respective ones of the request handling pipes; and
send the oldest request stored at the indicated request buffer of the indicated request handling pipe to one of the devices.