IP Library Granted Patent US 7,613,870
Granted Patent B2
US 7,613,870 · App. 10/992,443 · Granted Nov 3, 2009

Efficient memory usage in systems including volatile and high-density memories

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,613,870
App. No.
10/992,443
Granted
Nov 3, 2009
Kind
B2
Abstract

A first method for efficient memory usage includes (1) determining whether data retrieved from a first storage device is characterized as data that is primarily read; and (2) if data retrieved from the first storage device is characterized as data that is primarily read (a) writing the retrieved data in a temporary storage device with short write latency; and (b) writing the retrieved data in a high-density memory. Numerous other aspects are provided.

Claims (58)

1. A method for efficient memory usage, comprising:

determining whether data retrieved from a first storage device is characterized as data that is primarily read, wherein determining whether data retrieved from the first storage device is characterized as data that is primarily read includes:

monitoring for at least one of a processor access pattern to a memory, an attribute associated with a command and a memory address of the command; and

identifying data retrieved from the first storage device as characterized as data that is primarily read based on the monitoring;

if data retrieved from the first storage device is characterized as data that is primarily read:

writing the retrieved data in a temporary storage device with short write latency; and

writing the retrieved data in a high-density memory;

receiving a request to write data to a memory address in the high-density memory;

allocating one or more memory addresses of the temporary storage device equal to a minimum block size that may be written to the high-density memory;

writing the data to a memory address in the one or more allocated memory addresses;

reading data from memory addresses, which will remain unmodified, included in the block of the high-density memory to which data is to be written;

storing data read from the unmodified memory addresses included in the block of the high-density memory to which data is to be written in the one or more allocated memory addresses of the temporary storage device; and

writing data stored in the one or more allocated memory addresses of the temporary storage device to the high-density memory.

2. The method of claim 1 further comprising writing the retrieved data into a volatile memory if the data retrieved from the first storage device is not characterized as data that is primarily read.

3. The method of claim 1 further comprising reading the retrieved data from the temporary storage device while writing the retrieved data in the high-density memory.

4. The method of claim 1 , wherein monitoring for at least one of a processor access pattern to a memory, an attribute associated with a command and a memory address of the command includes monitoring for at least one of a processor access pattern to a memory, an attribute associated with a command and a memory address of the command, via software.

5. The method of claim 1 wherein monitoring for at least one of a processor access pattern to a memory, an attribute associated with a command and a memory address of the command includes monitoring for at least one of a processor access pattern to a memory, an attribute associated with a command and a memory address of the command, via digital logic.

6. The method of claim 1 wherein the temporary storage device is a cache memory.

7. The method of claim 6 wherein a memory controller includes the cache memory.

8. The method of claim 1 wherein the temporary storage device is a portion of a volatile memory.

9. The method of claim 1 further comprising making memory addresses of the temporary storage device in which the retrieved data is stored available for storing other data.

10. The method of claim 1 further comprising:

receiving a request to retrieve data from the first storage device; and

retrieving the data from the first storage device.

11. The method of claim 1 further comprising making the one or more allocated memory addresses of the temporary storage device available for storing other data.

12. An apparatus for efficient memory usage, comprising:

a high-density memory;

a volatile memory;

a first storage device;

a temporary storage device with short write latency; and

a monitoring device, coupled to the high-density memory, volatile memory, first storage device, temporary storage device, and adapted to identify data which is characterized as primarily read;

wherein the apparatus is adapted to:

determine whether data retrieved from the first storage device is characterized as data that is primarily read; and

if data retrieved from the first storage device is characterized as data that is primarily read:

write the retrieved data in the temporary storage device; and

write the retrieved data in the high-density memory,

wherein the apparatus is further adapted to:

monitor for at least one of a processor access pattern to a memory, an attribute associated with a command and a memory address of the command;

identify data retrieved from the first storage device as characterized as data that is primarily read based on the monitoring;

receive a request to write data to a memory address in the high-density memory;

allocate one or more memory addresses of the temporary storage device equal to a minimum block size that may be written to the high-density memory;

write the data to a memory address in the one or more allocated memory addresses;

read data from memory addresses, which will remain unmodified, included in the block of the high-density memory to which data is to be written;

store data read from the unmodified memory addresses included in the block of the high-density memory to which data is to be written in the one or more allocated memory addresses of the temporary storage device; and

write data stored in the one or more allocated memory addresses of the temporary storage device to the high-density memory.

13. The apparatus of claim 12 wherein the apparatus is further adapted to write the retrieved data into the volatile memory if the data retrieved from the first storage device is not characterized as data that is primarily read.

14. The apparatus of claim 12 wherein the apparatus is further adapted to read the retrieved data from the temporary storage device while writing the retrieved data in the high-density memory.

15. The apparatus of claim 12 wherein the apparatus is further adapted to monitor for at least one of a processor access pattern to a memory, an attribute associated with a command and a memory address of the command, via software.

16. The apparatus of claim 12 wherein the apparatus is further adapted to monitor for at least one of a processor access pattern to a memory, an attribute associated with a command and a memory address of the command, via the monitoring device.

17. The apparatus of claim 12 wherein the temporary storage device is a cache memory.

18. The apparatus of claim 17 further comprising a memory controller coupled to the high-density memory, volatile memory and first storage device; and

wherein the memory controller includes the cache memory.

19. The apparatus of claim 12 wherein the temporary storage device is a portion of the volatile memory.

20. The apparatus of claim 12 wherein the apparatus is further adapted to make memory addresses of the temporary storage device in which the retrieved data is stored available for storing other data.

21. The apparatus of claim 12 wherein the apparatus is further adapted to:

receive a request to retrieve data from the first storage device; and

retrieve the data from the first storage device.

22. The apparatus of claim 12 wherein the apparatus is further adapted to make the one or more allocated memory addresses of the temporary storage device available for storing other data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 034194/0291 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2004
From: BARTLEY, GERALD K.; BORKENHAGEN, JOHN M.; COCHRAN, WILLIAM H.; HOVIS, WILLIAM P.; RUDRUD, PAUL W.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 015423/0518 →