Non-volatile storage system with dynamic allocation of applications to memory based on usage monitoring
First Claim
1. An apparatus, comprising:
- a non-volatile memory having a first section and a second section, wherein the second section is configured to have a higher endurance level than the first section; and
one or more control circuits connected to the non-volatile memory, wherein the one or more control circuits are configured to;
receive an application from a host, the application including code for executing the application and data used by the application, and a range of logical addresses corresponding to the code for executing the application and data used by the application;
store the application in the first section of the non-volatile memory;
monitor a frequency of rewriting of the whole of the range of logical addresses corresponding to the code for executing the application and the data used by the application;
in response to the frequency of rewriting of the whole of the range of logical addresses corresponding to the code for executing the application and the data used by the application exceeding a first value, send a first notification to the host; and
in response to receiving a reply to the first notification from the host requesting that the data used by the application be transferred from the first section of the non-volatile memory to the second section of the non-volatile memory, transfer storage of the whole of the range of logical addresses corresponding to data used by the application from the first section of the non-volatile memory to the second section of the non-volatile memory.
7 Assignments
0 Petitions
Accused Products
Abstract
Technology is disclosed for dynamically assigning apps to non-volatile memory based on monitoring the apps'"'"' usage of memory resources. For a memory system having a high endurance section, such as binary (or single level cell, SLC) memory, and a lower endurance section, such as multi-level cell (MLC) memory, an app, including both the code for executing the app and the associated data payload, may initially be stored in the lower endurance section. The memory system monitors the activity of the app for high levels of activity and, if the app is being frequently written, the memory system notifies the host. In response, the host can request the memory system to move the app or just its associated payload to the high endurance section.
-
Citations
20 Claims
-
1. An apparatus, comprising:
-
a non-volatile memory having a first section and a second section, wherein the second section is configured to have a higher endurance level than the first section; and one or more control circuits connected to the non-volatile memory, wherein the one or more control circuits are configured to; receive an application from a host, the application including code for executing the application and data used by the application, and a range of logical addresses corresponding to the code for executing the application and data used by the application; store the application in the first section of the non-volatile memory; monitor a frequency of rewriting of the whole of the range of logical addresses corresponding to the code for executing the application and the data used by the application; in response to the frequency of rewriting of the whole of the range of logical addresses corresponding to the code for executing the application and the data used by the application exceeding a first value, send a first notification to the host; and in response to receiving a reply to the first notification from the host requesting that the data used by the application be transferred from the first section of the non-volatile memory to the second section of the non-volatile memory, transfer storage of the whole of the range of logical addresses corresponding to data used by the application from the first section of the non-volatile memory to the second section of the non-volatile memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method, comprising:
-
storing an application in a range of logical addresses in a first section of a non-volatile memory system, the first section being one of a section of high endurance memory cells or a section of high density memory cells of which the non-volatile memory system is comprised, and where the application includes code for executing the application and a data payload of the application; monitoring a frequency of rewriting of the whole of the range of logical addresses corresponding to the code for executing the application and the data payload caused by the application; in response to a comparison of the frequency of rewriting of the whole of the range of logical addresses corresponding to the code for executing the application and the data payload to a first threshold, issuing by the non-volatile memory system a first alert to a host; receiving from the host a reply to the first alert instructing the non-volatile memory system to relocate the data payload from the first section of the non-volatile memory system to a second section of the non-volatile memory system; and in response to the reply to the first alert, relocating the whole of the range of logical addresses corresponding to the data payload of the application to the second section of the non-volatile memory system. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. An apparatus, comprising:
-
a non-volatile memory having a first section and a second section, wherein the second section is configured to have a higher endurance level than the first section; and means for receiving an application from a host, the application including code for executing the application and data used by the application, and a range of logical block addresses corresponding to the code for executing the application and the data used by the application; means for storing the application in the first section of the non-volatile memory; means for monitoring a frequency of rewriting of individual logical block addresses of the range of logical block addresses corresponding to the code for executing the application and the data used by the application; means for sending a first notification to the host in response to the frequency of rewriting of the individual logical block addresses of the range of logical block addresses corresponding to the code for executing the application and the data used by the application exceeding a first value; and means for transferring storage of the whole of the range of logical block addresses corresponding to data used by the application from the first section of the non-volatile memory to the second section of the non-volatile memory in response to receiving a reply to the first notification from the host requesting that the data used by the application be transferred from the first section of the non-volatile memory to the second section of the non-volatile memory. - View Dependent Claims (17, 18, 19, 20)
-
Specification