Patent ID: 7490184

Claim:
A method for handling transfer of cast out data from source devices to requesting devices in an integrated circuit, comprising: receiving by a processor local bus a plurality of requests from requesting devices to read data from a common memory shared by multiple source devices and the requesting device; wherein a line in the common memory maps to a line in the caches of more than one source device; and wherein the requests are stored in a queue of the processor local bus in an order received; communicating each snoopable request to one or more source devices in the integrated circuit by way of the processor local bus, so that the one or more source devices may each determine if it is the one that holds the requested data in a modified state, the one determined to hold the data in modified state casting out the data to the processor local bus; receiving into a queue of the processor local bus the castout data in the order the data is castout from the source devices in response to snoopable requests; reordering by the processor local bus, out of order cast out data in the determined order of received requests; and for each snoopable request, transferring by way of the processor local bus, in an order of received requests, cast out data to respective requesting devices, while simultaneously writing by way of the processor local bus the cast out data to the common memory so that line is available to other source devices, the simultaneous transfer to avoid a long latency associated with writing the cast out data to the common memory first and then reading the cast out data from the common memory.