IP Library Granted Patent US 7,392,353
Granted Patent B2
US 7,392,353 · App. 11/004,199 · Granted Jun 24, 2008

Prioritization of out-of-order data transfers on shared data bus

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,392,353
App. No.
11/004,199
Granted
Jun 24, 2008
Kind
B2
Abstract

Uncontested priority is provided to out-of-order data transfers over in-order data transfers on a data bus shared by a plurality of memory requesters. By always granting priority to out-of-order transfers such as deferred read data transfers over in-order transfers such as write and/or cache-to-cache data transfers, it is assured that no newer command or transaction ever negatively affects the latency of an older command or transaction.

Claims (15)

1. A method of scheduling data transfers on a shared data bus coupled to a plurality of memory requesters, the method comprising:

receiving in-order and out-of order data transfers; and

scheduling initiation of the in-order and out-of order data transfers over the data bus by providing uncontested priority to out-of order data transfers over in-order data transfers, wherein providing uncontested priority to out-of-order transfers over in-order data transfers includes providing uncontested priority to a first out-of order data transfer over a second in-order implicit write back data transfer that is ready and pending concurrently with the first out-of order data transfer;

temporarily queuing received out-of order and in-order data transfers respectively in an out-of order queue and an in-order queue; and

moving a read data transfer initially queued in the in-order queue from the in-order queue to the out-of order queue using read deferral logic coupled to the out-of order and in-order queues upon detecting that the read data transfer is a deferred read data transfer.

2. The method of claim 1 , further comprising initiating the in-order and out-of order data transfers over the data bus.

3. The method of claim 1 , wherein the out-of order and in-order queues each include a plurality of entries, each entry associated with a data transfer, and each entry including command data associated with a request that initiated the associated data transfer and a ready indicator indicating whether the associated data transfer is pending, the method further comprising determining that a data transfer in either of the out-of order and in-order queues is pending by accessing the ready indicator in the entry associated with such data transfer.

4. The method of claim 3 , wherein providing uncontested priority to out-of order data transfers over in-order data transfers includes initiating each out-of order data transfer queued by the out-of order queue prior to initiating any in-order data transfer queued by the in-order queue.

5. The method of claim 3 , wherein providing uncontested priority to out-of order data transfers over in-order data transfers includes initiating an in-order data transfer queued by the in-order queue only if no out-of order data transfer is currently queued by the out-of order queue.

6. The method of claim 3 , wherein moving the read data transfer includes moving the read data transfer associated with a read request issued by a processor coupled to the data bus prior to receiving any reply to the read request.

7. The method of claim 3 wherein each deferred read data transfer is configured to initiate a transfer of read data returned by a shared memory over the data bus.

8. The method of claim 3 , wherein the in-order data transfers include explicit write back data transfers.

9. The method of claim 3 , wherein each memory requester is of the type including a local cache, and wherein the in-order data transfers include cache-to-cache data transfers, at least one cache-to-cache data transfer configured to forward data from the local cache of a first memory requester to the local cache of a second memory requester in response to a read request issued by the second memory requester for data that is cached in the local cache of the first memory requester.

10. The method of claim 9 , wherein the cache-to-cache data transfer is initiated by the first memory requester in response to a snoop of the read request issued by the second memory requester.

11. The method of claim 3 , wherein each of the plurality of memory requesters compnses a processor.

Assignments (2)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2012
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: FACEBOOK, INC.
Reel/Frame 028015/0863 →