IP Library Granted Patent US 8,874,822
Granted Patent B2
US 8,874,822 · App. 13/942,413 · Granted Oct 28, 2014

Scheduling access requests for a multi-bank low-latency random read memory device

Inventors: George Totolos, Jr. (Cranberry Township, PA); Nhiem T. Nguyen (Cranberry Township, PA)
Assignee: NetApp, Inc.
G06F3/0631G06F13/28G06F3/0613G06F12/06G06F13/00G06F3/0689
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,874,822
App. No.
13/942,413
Granted
Oct 28, 2014
Kind
B2
Abstract

Described herein are method and apparatus for scheduling access requests for a multi-bank low-latency random read memory (LLRRM) device within a storage system. The LLRRM device comprising a plurality of memory banks, each bank being simultaneously and independently accessible. A queuing layer residing in storage system may allocate a plurality of request-queuing data structures (“queues”), each queue being assigned to a memory bank. The queuing layer may receive access requests for memory banks in the LLRRM device and store each received access request in the queue assigned to the requested memory bank. The queuing layer may then send, to the LLRRM device for processing, an access request from each request-queuing data structure in successive order. As such, requests sent to the LLRRM device will comprise requests that will be applied to each memory bank in successive order as well, thereby reducing access latencies of the LLRRM device.

Claims (48)

1. A storage system for accessing data on a low-latency random read memory (LLRRM) device, the storage system comprising:

the LLRRM device comprising a plurality of memory banks, each memory bank having an associated LLRRM address range;

a storage operating system engine configured for:

allocating a plurality of request-queuing data structures, each request-queuing data structure being assigned to a memory bank in the plurality of memory banks and being associated with the LLRRM address range of the assigned memory bank;

receiving a plurality of access requests at requested LLRRM addresses in the LLRRM device, each access request comprising a read request or write request;

for each received access request, storing the access request in a request-queuing data structure, the plurality of request-queuing data structures comprises a plurality of read request-queuing data structures for storing read requests and at least one write request-queuing data structure for storing write requests;

sending, to the LLRRM device, a series of access requests comprising an access request from each read request-queuing data structure in successive order from a first read request-queuing data structure to a last read request-queuing data structure and continuing again from the first read request-queuing data structure until no read requests remain;

sending to the LLRM device any access requests from the at least one write request-queuing data structure; and

a serial connection between the storage operating system engine and the LLRRM device for sending the series of access requests to the LLRRM device.

2. The storage system of claim 1 , wherein access to the plurality of memory banks is controlled by a single memory controller that receives the series of access requests.

3. The storage system of claim 1 , wherein access to the plurality of memory banks is controlled by a memory controller that receives and processes access requests in serial.

4. The storage system of claim 1 , wherein only one access request at a time is sent from the storage operating system engine to the LLRRM device through the serial connection.

5. The storage system of claim 1 , wherein the LLRRM device is configured for:

receiving the series of access requests from the storage operating system engine; and

performing each received access request on a memory bank determined by the requested LLRRM address, wherein the series of access requests are performed on successive memory banks in the plurality of memory banks.

6. The storage system of claim 1 , wherein the LLRRM device is configured for:

receiving the series of access requests from the storage operating system engine; and

performing the series of access requests on successive memory banks from a first memory bank to a last memory bank in the plurality of memory banks, and continuing again from the first memory bank.

7. A method for storing data on a low-latency random read memory (LLRRM) device comprising a plurality of memory banks, each memory bank having an associated LLRRM address range, the method comprising:

allocating a plurality of request-queuing data structures, each request-queuing data structure being assigned to a memory bank in the plurality of memory banks and being associated with the LLRRM address range of the assigned memory bank;

receiving a plurality of access requests at requested LLRRM addresses in the LLRRM device, each access request comprising a read request or write request;

for each received access request, storing the access request in a request-queuing data structure, the plurality of request-queuing data structures comprises a plurality of read request-queuing data structures for storing read requests and at least one write request-queuing data structure for storing write requests;

sending, to the LLRRM device, a series of access requests comprising an access request from each read request-queuing data structure in successive order from a first read request-queuing data structure to a last read request-queuing data structure and continuing again from the first read request-queuing data structure until no read requests remain; and

sending to the LLRM device any access requests from the at least one write request-queuing data structure, wherein the series of access requests are sent to the LLRRM device using a serial connection.

8. The method of claim 7 , wherein access to the plurality of memory banks is controlled by a single memory controller that receives the series of access requests.

9. The method of claim 7 , wherein access to the plurality of memory banks is controlled by a memory controller that receives and processes access requests in serial.

10. The method of claim 7 , wherein only one access request at a time is sent to the LLRRM device through the serial connection.

11. The method of claim 7 , wherein the LLRRM device is configured for:

receiving the series of access requests; and

performing each received access request on a memory bank determined by the requested LLRRM address, wherein the series of access requests are performed on successive memory banks in the plurality of memory banks.

12. The method of claim 7 , wherein the LLRRM device is configured for:

receiving the series of access requests; and

performing the series of access requests on successive memory banks from a first memory bank to a last memory bank in the plurality of memory banks, and continuing again from the first memory bank.

13. A non-transitory computer readable medium having instructions stored thereon when executed by a processor, store data on a low-latency random read memory (LLRRM) device comprising a plurality of memory banks, each memory bank having an associated LLRRM address range, the non-transitory computer readable medium comprising instructions for:

allocating a plurality of request-queuing data structures, each request-queuing data structure being assigned to a memory bank in the plurality of memory banks and being associated with the LLRRM address range of the assigned memory bank;

receiving a plurality of access requests at requested LLRRM addresses in the LLRRM device, each access request comprising a read request or write request;

for each received access request, storing the access request in a request-queuing data structure, the plurality of request-queuing data structures comprises a plurality of read request-queuing data structures for storing read requests and at least one write request-queuing data structure for storing write requests;

sending, to the LLRRM device, a series of access requests comprising an access request from each read request-queuing data structure in successive order from a first read request-queuing data structure to a last read request-queuing data structure and continuing again from the first read request-queuing data structure until no read requests remain; and

sending to the LLRM device any access requests from the at least one write request-queuing data structure, wherein the series of access requests are sent to the LLRRM device using a serial connection.

14. The non-transitory computer readable medium of claim 13 , wherein access to the plurality of memory banks is controlled by a single memory controller that receives the series of access requests.

15. The non-transitory computer readable medium of claim 13 , wherein access to the plurality of memory banks is controlled by a memory controller that receives and processes access requests in serial.

16. The non-transitory computer readable medium of claim 13 , wherein only one access request at a time is sent to the LLRRM device through the serial connection.

17. The non-transitory computer readable medium of claim 13 , wherein the LLRRM device is configured for:

receiving the series of access requests; and

performing each received access request on a memory bank determined by the requested LLRRM address, wherein the series of access requests are performed on successive memory banks in the plurality of memory banks

18. The non-transitory computer readable medium of claim 13 , wherein the LLRRM device is configured for:

receiving the series of access requests; and

performing the series of access requests on successive memory banks from a first memory bank to a last memory bank in the plurality of memory banks, and continuing again from the first memory bank.

Continuity (2)
Continuation 12430776 · Apr 27, 2009
Related Publication 20130304988A1 · Nov 14, 2013