Patent ID: 8504773

Claim:
A computer-implemented method for using a cache coupled to multiple clients and to an external memory to store intermediate data in a dynamically sized buffer, the method comprising: receiving a request to write intermediate data to the dynamically sized buffer, wherein the request is generated by a first client that is configured to produce the intermediate data; incrementing a write pointer to point corresponding to a location in the cache that resides within the dynamically sized buffer; storing the intermediate data in the location in the cache; setting a bit in a consumer mask for each client configured to consume the intermediate data; initializing a consumer done mask to equal the consumer mask; informing all clients configured to consume the intermediate data that the intermediate data is available in the dynamically sized buffer; receiving a done signal from each client that is configured to consume the intermediate data that indicates that the client has completed using the intermediate data; in response to receiving a done signal from a particular client, clearing the bit in the consumer done mask corresponding to the particular client; determining that all clients configured to consume the intermediate data have completed using the intermediate data when all bits in the consumer done mask have been cleared; and outputting an invalidate signal to the cache to empty the location in the cache.