IP Library Granted Patent US 7,103,747
Granted Patent B2
US 7,103,747 · App. 09/896,043 · Granted Sep 5, 2006

Memory table and memory manager for use in managing memory

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,103,747
App. No.
09/896,043
Granted
Sep 5, 2006
Kind
B2
Abstract

The present invention, in various embodiments, provides techniques for managing memory in computer systems. One embodiment uses a memory table having entries to locate data residing in different types of storage areas, such as physical memory, hard disc, file servers, storage devices, etc. Upon a program accessing memory for a particular piece of data, the memory table translates the data's physical address to an address used to find the table entry pointing to the requested data. In one embodiment, if the data is in physical memory, then the requested data is returned to the program. However, if the data is not in physical memory and it is determined that the data will be used frequently, then the data, in addition to being returned, is also brought to the physical memory for later use. This is because accessing the data from physical memory usually takes less time than accessing the data from other storage devices.

Claims (38)

1. A method for managing a memory system, comprising the steps of:

providing a memory table having entries pointing to data blocks that reside in various locations of different storage areas including physical memory; and

upon a program accessing memory for a particular piece of data, the memory table using a physical address of a memory page corresponding to the piece of data to convert to a location address corresponding to an entry pointing to the location of the piece of data;

wherein a memory manager manages the data blocks independent of an operating system and a processor unit executing the program accessing memory, including managing locations and movements of the data blocks.

2. The method of claim 1 further comprises the step of allocating the data blocks corresponding to the memory page upon receiving information that the memory page is about to be initialized.

3. The method of claim 1 further comprises the step of allocating a data block corresponding to the memory page upon receiving a write to a physical address that does not correspond to data blocks that have been allocated.

4. The method of claim 1 further comprises the step of corresponding an entry of the memory table to a data block.

5. The method of claim 1 further comprises the step of presenting the physical memory and the different storage areas to the operating system and the processor unit as a single memory entity.

6. The method of claim 1 further comprises the steps of

returning the piece of data to the program directly from the location storing the piece of data; and

skipping a step of loading the piece of data to the physical memory.

7. The method of claim 1 further comprises the step of the memory manager using collected information to determine the location of a data block.

8. The method of claim 7 further comprises the step of selecting the collected information in one or a combination of

the movement paffern of the data in the data block;

the structure of the memory system;

the cache-level architecture in the memory system.

9. The method of claim 1 further comprising the step of selecting the storage areas in one or a combination of different memory types and storage devices.

10. A device for managing a memory system, comprising:

a memory table having entries pointing to data blocks that reside in various locations of different storage areas including physical memory; wherein upon a program accessing memory for a particular piece of data, the memory table uses a physical address of a memory page corresponding to the piece of data to convert to a location address corresponding to an entry pointing to the location of the piece of B data; and

a memory manager manages the data blocks independent of an operating system and the processor unit executing the program accessing memory, including managing locations and movements of the data blocks.

11. The device of claim 10 wherein the memory manager allocates the data blocks corresponding to the memory page upon receiving information that the memory page is about to be initialized.

12. The device of claim 10 wherein the memory manager allocates a data block corresponding to the memory page upon receiving a write to a physical address that does not correspond to data blocks that have been allocated.

13. The device of claim 10 wherein the memory manager corresponds an entry of the memory table to a data block.

14. The device of claim 10 wherein the processor and the operating system perceive the physical memory and the different storage areas to the operating system as a single memory entity.

15. The device of claim 10 wherein

the memory manager returns the piece of data to the program directly from the location storing the piece of data; and

the memory manager skips loading the piece of data to the physical memory.

16. The device of claim 10 wherein the memory manager uses collected information to determine the location of a data block.

17. The device of claim 16 wherein the collected information is selected in one or a combination of

the movement pattern of the data in the data block;

the structure of the memory system;

the cache-level architecture in the memory system.

18. The device of claim 10 wherein the storage areas are selected in one or a combination of different memory types and storage devices.

19. A computer-readable medium storing instructions for a computer to perform a method for managing a memory system, the method comprising the steps of:

providing a memory table having entries pointing to data blocks that reside in various locations of different storage areas including physical memory; and

upon a program accessing memory for a particular piece of data, the memory table using a physical address of a memory page corresponding to the piece of data to convert to a location address corresponding to an entry pointing to the location of the piece of data;

wherein a memory manager manages the data blocks independent of an operating system and a processor unit executing the program accessing memory, including managing locations and movements of the data blocks.

20. The computer-readable medium of claim 19 wherein the method further comprises the step of presenting the physical memory and the different storage areas to the operating system and the processor unit as a single memory entity.

Assignments (5)
CHANGE OF NAME Recorded Sep 11, 2023
From: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
To: MOSAID TECHNOLOGIES INCORPORATED
Reel/Frame 064859/0807 →
CHANGE OF NAME Recorded Oct 19, 2021
From: CONVERSANT INTELLECTUAL PROPERTY INC.
To: MOSAID TECHNOLOGIES INCORPORATED
Reel/Frame 057857/0204 →
RELEASE OF SECURITY INTEREST Recorded Nov 11, 2020
From: CPPIB CREDIT INVESTMENTS INC.
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 054385/0435 →
AMENDED AND RESTATED U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) Recorded Aug 22, 2018
From: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
To: CPPIB CREDIT INVESTMENTS, INC.
Reel/Frame 046900/0136 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2014
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 034591/0627 →