IP Library Granted Patent US 8,838,853
Granted Patent B2
US 8,838,853 · App. 13/005,479 · Granted Sep 16, 2014

Access buffer

Inventors: Vitaly Sukonik (Katzir, IL); Sarig Livne (Ramat Gan, IL)
Assignee: Marvell International Ltd.
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 8,838,853
App. No.
13/005,479
Filed
Jan 12, 2011
Granted
Sep 16, 2014
Kind
B2
Art Unit
2181
USPC
710/53
Abstract

The disclosed embodiments relate to a system for controlling accesses to one or more memory devices. This system includes one or more write queues configured to store entries for write requests, wherein a given entry for a write request includes an address and write data to be written to the address. The system also includes a search mechanism configured to receive a read request which includes an address, and to search the one or more write queues for an entry with a matching address. If a matching address is found in an entry in a write queue, the search mechanism is configured to retrieve the write data from the entry and to cancel the associated write request, whereby the read request can be satisfied without accessing the one or more memory devices.

Claims (44)

1. An apparatus for controlling accesses to one or more memory devices, comprising:

one or more write queues configured to store entries for write requests, wherein a given entry for a write request includes an address and write data to be written to the address; and

a search mechanism configured to receive a read request which includes an address, and to search the one or more write queues for an entry with a matching address;

wherein if a matching address is found in an entry in a write queue, the search mechanism is configured to retrieve the write data from the entry and to cancel the associated write request before completion, whereby the read request can be satisfied without accessing the one or more memory devices.

2. The apparatus of claim 1 , further comprising:

one or more read queues configured to store entries for read requests, wherein a given entry for a read request includes an address for the read request;

wherein if the search mechanism cannot find a matching address in a write queue for a read request, the search mechanism is configured to store an entry for the read request in the read queue.

3. The apparatus of claim 2 , further comprising:

an access scheduler configured to select a request from the one or more read queues or the one or more write queues; and

a command generator configured to generate a memory command based on the selected request and to transmit the memory command to the one or more memory devices.

4. The apparatus of claim 3 , further comprising a hit queue, wherein if an address for a read request matches an address in a write queue, the search mechanism is configured to store an entry in the hit queue indicating the match, and wherein the hit queue is configured to communicate entries in a first-in-first-out manner to a reordering device.

5. The apparatus of claim 4 , further comprising an arbiter configured to arbitrate between requests selected by the access scheduler and hit requests from the hit queue.

6. The apparatus of claim 1 , wherein the search mechanism includes circuitry to search through addresses in the one or more write queues.

7. The apparatus of claim 3 , further comprising a multiplexer configured to select data from an entry in the one or more write queues or the one or more read queues.

8. The apparatus of claim 3 , wherein the one or more write queues and the one or more read queues are configured to communicate a backpressure indicator to a processor if a fill level of given queue exceeds a backpressure threshold, whereby the processor is configured to stop issuing further memory requests of the same type until the fill level of the given queue drops below the backpressure threshold.

9. The apparatus of claim 3 ,

wherein the one or more write queues and the one or more read queues are configured to indicate a panic condition if a fill level of a given queue reaches a panic level;

wherein during a panic level, the access scheduler is configured to change weights associated with issuing read commands and write commands, such that a write command receives a higher relative bandwidth if a write queue reaches the panic level, and a read command receives a higher relative bandwidth if a read queue reaches the panic level; and

wherein the access scheduler is configured to reset the weights to the normal values when the fill level of the given queue drops below the panic level.

10. A computer system, comprising:

a processor; a memory;

a memory controller coupled to the processor and the memory; and

the memory access scheduler, comprising, one or more write queues configured to store entries for write requests, wherein a given entry for a write request includes a write address and write data to be written to the address, and

a search mechanism configured to receive a read request which includes a read address, and to search the one or more write queues for an entry with a matching write address;

wherein if a matching write address is found in an entry in a write queue, the search mechanism is configured to retrieve write data from the entry and to cancel the associated write request before completion, whereby the read request can be satisfied without accessing the one or more memory devices.

11. The computer system of claim 10 , wherein the memory access scheduler is incorporated into the memory controller.

12. A method for controlling accesses to one or more memory devices, comprising:

storing write request information into one or more write queues, wherein a given entry for a write request includes a write address and write data to be written to the address;

receiving a read request which includes a read address; and

using a search mechanism to search the one or more write queues for an entry with a write address that matches the read address;

wherein if a matching write address is found in an entry in a write queue, the search mechanism is configured to retrieve the write data from the entry and to cancel the associated write request before completion, whereby the read request can be satisfied without accessing the one or more memory devices.

13. The method of claim 12 , wherein if the search mechanism cannot find a matching write address in a write queue for a read request, the search mechanism is configured to store an entry for the read request in one or more read queues, wherein a given entry for a read request includes a read address for the read request.

14. The method of claim 13 , further comprising:

selecting a request from the one or more read queues or the one or more write queues;

generating a memory command based on the selected request; and

transmitting the memory command to the one or more memory devices.

15. The method of claim 14 , wherein if an address for a read request matches an address in a write queue, the method further comprises:

storing an entry in a hit queue indicating the match; and

communicating entries from the hit queue in a first-in-first-out manner to a reordering device.

16. The method of claim 15 , further comprising arbitrating between requests selected by the access scheduler and hit requests from the hit queue.

17. The method of claim 12 , wherein the search mechanism includes circuitry to search through addresses in the one or more write queues.

18. The method according to claim 14 , further comprising using a multiplexer to select data from an entry in the one or more write queues or the one or more read queues.

19. The method of claim 14 , further comprising

communicating a backpressure indicator to a processor if a fill level of a given queue in the one or more write queues or the one or more read queues exceeds a backpressure threshold, whereby the processor is configured to stop issuing further memory requests of the same type until the fill level of the given queue drops below the backpressure threshold.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2012
From: MARVELL TECHNOLOGY SWEDEN AB
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 028033/0847 →
CHANGE OF NAME Recorded Apr 10, 2012
From: XELERATED NEWCO AB
To: MARVELL TECHNOLOGY SWEDEN AB
Reel/Frame 028164/0190 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2011
From: XELERATED AB
To: XELERATED NEWCO AB
Reel/Frame 027387/0234 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2011
From: SUKONIK, VITALY; LIVNE, SARIG
To: XELERATED AB
Reel/Frame 027318/0542 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2011
From: SUKONIK, VITALY; LIVNE, SARIG
To: XELERATED AB
Reel/Frame 026049/0671 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2011
From: SUKONIK, VITALY; LIVNE, SARIG
To: XELERATED AB
Reel/Frame 025776/0024 →
Priority Claims (1)
SE 1050051 · Jan 18, 2010 · national
Continuity (2)
Provisional Application 61295795 · Jan 18, 2010
Related Publication 20110179200A1 · Jul 21, 2011