IP Library › Granted Patent US 10,324,760
Granted Patent B2
US 10,324,760 · App. 15/143,032 · Granted Jun 18, 2019

Leases for blocks of memory in a multi-level memory

Inventor: Mitesh Meswani (Austin, TX)
Assignee: ADVANCED MICRO DEVICES, INC.
G06F9/5016Y02D10/22
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 10,324,760
App. No.
15/143,032
Filed
Apr 29, 2016
Granted
Jun 18, 2019
Kind
B2
Art Unit
2138
USPC
711/118
Abstract

The described embodiments include a computing device that has two or more levels of memory, each level of memory having different performance characteristics. During operation, the computing device receives a request to lease an available block of memory in a specified level of memory for storing an object. When a block of memory is available for leasing in the specified level of memory, the computing device stores the object in the block of memory in the specified level of memory. The computing device also commences the lease for the block of memory by setting an indicator for the block of memory to indicate that the block of memory is leased. During the lease (i.e., until the lease is terminated), the object is kept in the block of memory.

Claims (49)

1. A method for handling data in a computing device having two or more levels of memory, the method comprising:

receiving a lease hint that indicates that a lease may subsequently be requested for a block of memory, the lease hint comprising a first indication of an object, a second indication of a specified level of memory, and an expected lease timing;

based on at least some of the first and second indications and the expected lease timing, controlling the performance of one or more operations affecting at least one of the object or other objects associated with the block of memory;

receiving a request to lease an available block of memory in the specified level of memory for storing the object;

when a block of memory is available for leasing in the specified level of memory, storing the object in the block of memory; and

commencing the lease for the block of memory by setting, to a value that identifies the block of memory as being leased, a lease indicator associated with the block of memory from among two or more lease indicators associated with respective blocks of memory in the specified level of memory, wherein the object is kept in the block of memory until the lease is terminated.

2. The method of claim 1 , further comprising:

receiving a request to terminate the lease for the block of memory; and

terminating the lease, the terminating comprising setting the indicator for the block of memory to indicate that the block of memory is not leased, wherein the object is no longer kept in the block of memory when the lease is terminated.

3. The method of claim 2 , wherein, when the object is no longer kept in the block of memory when the lease is terminated, the object is retained in the block of memory, but the object is made a candidate for eviction from the specified level of memory.

4. The method of claim 2 , wherein, when the object is no longer kept in the block of memory when the lease is terminated, the object is immediately evicted from the specified level of memory.

5. The method of claim 1 , further comprising:

receiving, with the request to lease the available block of memory, a termination indicator for the lease; and

when a condition associated with the termination indicator for the lease occurs, terminating the lease, the terminating comprising setting the indicator for the block of memory to indicate that the block of memory is not leased, wherein the object is no longer kept in the block of memory when the lease is terminated.

6. The method of claim 1 , further comprising:

preventing eviction of the object from the block of memory when the indicator for the block of memory indicates that the block of memory is leased.

7. The method of claim 1 , further comprising, after receiving an additional request to lease an available block of memory:

when there are no blocks of memory available for leasing in the specified level of memory, failing the additional request without commencing a lease for a block of memory.

8. The method of claim 1 , further comprising, after receiving an additional request to lease an available block of memory:

when there are currently no blocks of memory available for leasing in the specified level of memory, retrying the additional request at least once after a corresponding delay time.

9. The method of claim 1 , further comprising, after receiving an additional request to lease an available block of memory:

when there are no blocks of memory available for leasing in the specified level of memory, but a smaller portion of memory is available for leasing in the specified level of memory, storing part of the object into the smaller portion of memory, wherein the smaller portion of memory is smaller in capacity than the block of memory, and wherein a remaining part of the object is stored elsewhere in the two or more levels of memory; and

setting an indicator for the smaller portion of memory to indicate the smaller portion of memory is leased, wherein the part of the object is kept in the smaller portion of memory until the lease is terminated.

10. The method of claim 1 , wherein the controlling comprises:

scheduling an eviction of other objects from the specified level of memory.

11. A computing device, comprising:

a processor; and

two or more levels of memory;

wherein the computing device is configured to:

receive a lease hint that indicates that a lease may subsequently be requested for a block of memory, the lease hint comprising a first indication of an object, a second indication of a specified level of memory, and an expected lease timing;

based on at least some of the first and second indications and the expected lease timing, control the performance of one or more operations affecting at least one of the object or other objects associated with the block of memory;

receive a request to lease an available block of memory in the specified level of memory for storing the object;

when a block of memory is available for leasing in the specified level of memory, store the object in the block of memory in the specified level of memory; and

commence the lease for the block of memory by setting, to a value that identifies the block of memory as being leased, a lease indicator associated with the block of memory from among two or more lease indicators associated with respective blocks of memory in the specified level of memory, wherein the object is kept in the block of memory until the lease is terminated.

12. The computing device of claim 11 , wherein the computing device is further configured to:

receive a request to terminate the lease for the block of memory; and

terminate the lease, the terminating comprising setting the indicator for the block of memory to indicate that the block of memory is not leased, wherein the object is no longer kept in the block of memory when the lease is terminated.

13. The computing device of claim 12 , wherein, when the object is no longer kept in the block of memory when the lease is terminated, the object is retained in the block of memory, but the object is made a candidate for eviction from the specified level of memory.

14. The computing device of claim 12 , wherein, when the object is no longer kept in the block of memory when the lease is terminated, the object is immediately evicted from the specified level of memory.

15. The computing device of claim 11 , wherein the computing device is further configured to:

receive, with the request to lease the available block of memory, a termination indicator for the lease; and

when a condition associated with the termination indicator for the lease occurs, terminate the lease, the terminating comprising setting the indicator for the block of memory to indicate that the block of memory is not leased, wherein the object is no longer kept in the block of memory when the lease is terminated.

16. The computing device of claim 11 , wherein the computing device is further configured to:

prevent eviction of the object from the block of memory when the indicator for the block of memory indicates that the block of memory is leased.

17. The computing device of claim 11 , wherein the computing device is further configured to, after receiving an additional request to lease an available block of memory:

when there are currently no blocks of memory available for leasing in the specified level of memory, one of: fail the additional request without commencing a lease for a block of memory; or retry the additional request at least once after a corresponding delay time.

18. The computing device of claim 11 , wherein the computing device is further configured to, after receiving an additional request to lease an available block of memory:

when there are no blocks of memory available for leasing in the specified level of memory, but a smaller portion of memory is available for leasing in the specified level of memory, store part of the object into the smaller portion of memory, wherein the smaller portion of memory is smaller in capacity than the block of memory, and wherein a remaining part of the object is stored elsewhere in the two or more levels of memory; and

set an indicator for the smaller portion of memory to indicate the smaller portion of memory is leased, wherein the part of the object is kept in the smaller portion of memory until the lease is terminated.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2016
From: MESWANI, MITESH
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 038699/0783 →
Continuity (1)
Related Publication 20170315915A1 · Nov 2, 2017
Cited By (1)
US 12,712,011