IP Library Granted Patent US 9,471,129
Granted Patent B2
US 9,471,129 · App. 14/454,121 · Granted Oct 18, 2016

Determining a write operation

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 9,471,129
App. No.
14/454,121
Granted
Oct 18, 2016
Kind
B2
Abstract

Technologies are generally described herein for writing data to either volatile or nonvolatile memory. An estimated time for a last write operation to occur and an estimated time to a power down event are determined. A threshold time is generated from the estimated time for a last write operation to occur and the estimated time to a power down event. The threshold time represents time at which a cost to write to volatile memory may become greater than a cost to write to nonvolatile memory. The cost may be based at least in part on the need to copy data stored in a volatile memory to be persisted after a power down event from the volatile to the nonvolatile memory.

Claims (51)

1. A method to perform a write operation, the method comprising:

determining an estimated power down event time;

determining an estimated time prior to the estimated power down event time in which a last write operation for an application may occur;

determining a threshold time to write to a volatile memory based upon at least the determined estimated power down event time and the determined estimated time in which the last write operation for the application may occur;

determining whether a memory write operation is scheduled to occur before or after the determined threshold time;

after determining whether the memory write operation is scheduled to occur before or after the determined threshold time, and in response to determining that the memory write operation is scheduled to occur before the determined threshold time, performing the memory write operation to the volatile memory; and

in response to the memory write operation being scheduled to occur at or after the determined threshold time, performing the memory write operation to a nonvolatile memory.

2. The method of claim 1 , wherein the threshold time to write to the volatile memory is based upon a cost to write to the nonvolatile memory or to the volatile memory.

3. The method of claim 1 , wherein determining the estimated power down event time comprises receiving data related to a distribution of power down events as a function of time, and utilizing at least the received data related to the distribution of power down events to determine the estimated power down event time.

4. The method of claim 1 , wherein determining the estimated time comprises analyzing a write behavior of the application to generate the estimated time.

5. The method of claim 4 , wherein analyzing the write behavior of the application comprises receiving data related to a distribution of write operations per memory address as a function of time for the application and determining a rate per memory address as a function of time of write operations based on the received data related to the distribution of write operations.

6. A method to perform a write operation, the method comprising:

determining an estimated power down event time;

determining an estimated time prior to the estimated power down event time in which a last write operation for an application may occur;

determining a threshold time to write to a volatile memory based upon at least the determined estimated power down event time and the determined estimated time in which the last write operation for the application may occur;

in response to a memory write operation being scheduled to occur before the determined threshold time, performing the memory write operation to the volatile memory; and

in response to the memory write operation being scheduled to occur at or after the determined threshold time, performing the memory write operation to a nonvolatile memory,

wherein determining the estimated power down event time includes determining the estimated power down event time based at least in part upon data collected by static compiler analysis.

7. A method to perform a write operation, the method comprising:

determining an estimated power down event time;

determining an estimated time prior to the estimated power down event time in which a last write operation for an application may occur;

determining a threshold time to write to a volatile memory based upon at least the determined estimated power down event time and the determined estimated time in which the last write operation for the application may occur;

in response to a memory write operation being scheduled to occur before the determined threshold time, performing the memory write operation to the volatile memory; and

in response to the memory write operation being scheduled to occur at or after the determined threshold time, performing the memory write operation to a nonvolatile memory,

wherein determining the estimated power down event time includes determining the estimated power down event time based at least in part by performing a dynamic profiler operation over a trainer data set configured to emulate an operation of the application.

8. The method of claim 7 , wherein performing the dynamic profiler operation comprises:

associating instrumentation program code with a write function of program code used to implement the application;

generating a hash value of a memory address for the write function with the associated instrumentation program code;

inputting the generated hash value as an index to a table; and

incrementing an index value of the index for the write function.

9. The method of claim 8 , wherein performing the dynamic profiler operation further comprises calculating a frequency of write operations with the index value of the index over a period of time.

10. The method of claim 9 , wherein performing the dynamic profiler operation further comprises estimating a next write operation based on the frequency of write operations.

11. The method of claim 8 , wherein performing the dynamic profiler operation further comprises reducing an amount of information by limiting a number of hash value entries for the hash value.

12. The method of claim 8 , wherein performing the dynamic profiler operation further comprises reducing an amount of information by tolerating a measure of aliasing between different memory addresses mapped to a table entry of the table.

13. The method of claim 8 , wherein performing the dynamic profiler operation further comprises reducing an amount of information by incrementing the index value of the index for the write function based on a cache block.

14. A non-transitory computer-readable storage medium comprising computer-executable instructions stored therein which, in response to execution by a computer, cause the computer to perform or control performance of the method of claim 1 .

15. An apparatus, comprising:

a processor unit; and

a memory controller coupled to the processor unit and configured to:

be responsive to the processor unit to perform a memory write operation to either a volatile memory or a nonvolatile memory in accordance with a threshold time, wherein the threshold time is based on:

an estimated power down event time of an application associated with the memory write operation, and

an estimated time prior to the estimated power down event time in which a last write operation for the application may occur,

associate instrumentation code with a write function of the application;

generate a hash value of a memory address for the write function with the instrumentation code;

input the hash value as an index to a table;

increment a value of the index for the write function;

calculate a frequency of write operations with the value of the index over a period of time; and

estimate a next write operation based on the frequency of write operations, wherein the estimated next write operation is used as an input to determine the estimated time in which the last write operation for the application may occur.

16. The apparatus of claim 15 , wherein to perform the memory write operation in accordance with the threshold time, the memory controller is configured to:

perform the memory write operation to the volatile memory if the memory write operation is scheduled to occur before the threshold time, and

perform the memory write operation to the nonvolatile memory if the memory write operation is scheduled to occur at or after the threshold time.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS, RECORDED ON JANUARY 29, 2019 AT REEL 048373 FRAME 0217 Recorded Sep 22, 2025
From: CRESTLINE DIRECT FINANCE, L.P., AS COLLATERAL AGENT
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 072936/0464 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2014
From: SHEAFFER, GAD SHLOMO
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 033488/0382 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2014
From: UR, SHMUEL
To: SHUMEL UR INNOVATION LTD.
Reel/Frame 033497/0974 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2014
From: SHMUEL UR INNOVATION LTD.
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 033497/0979 →