US10509770B2ActiveUtilityA1

Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device

83
Assignee: SAMSUNG ELECTRONICS CO LTDPriority: Jul 13, 2015Filed: Apr 5, 2016Granted: Dec 17, 2019
Est. expiryJul 13, 2035(~9 yrs left)· nominal 20-yr term from priority
G06F 3/0643G06F 3/0679G06F 3/061G06F 12/0246G06F 16/1727G06F 16/2365G06F 3/0688G06F 16/1847G06F 3/0619G06F 16/13G06F 3/0652G06F 12/0269G06F 3/0655G06F 3/0604
83
PatentIndex Score
3
Cited by
125
References
38
Claims

Abstract

An interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device comprises: executing a software component at an operating system level in the computer device that monitors update statistics of all data item modifications into the nonvolatile memory device, including one or more of update frequencies for each data item, accumulated update and delete frequencies specific to each file type, and an origin of the data item; storing the update statistics of each of the data items and each of the data item types in a database; and intercepting all operations, including create, write, and update, of performed by applications to all the data items, and automatically assigning a data property identifier to each of the data items based on current update statistics in the database, such that the data items and assigned data property identifiers are transmitted over a memory channel to the non-volatile memory device.

Claims

exact text as granted — not AI-modified
We claim: 
     
       1. A method for providing an interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device, the method comprising:
 executing a software component at an operating system level in the computer device that monitors update statistics of data item modifications into the nonvolatile memory device, including one or more of update frequencies for at least a portion of the data items, accumulated update and delete frequencies specific to each file type, and an origin of* the data item; 
 storing, by the software component, the update statistics for the data items and data item types in a database; and 
 intercepting all operations, including create, write, and update performed by applications to the data items, and automatically assigning a data property identifier to each of the data items based on current update statistics in the database, such that the data items and assigned data property identifiers are transmitted over a memory channel to the nonvolatile memory device for storage, the software component assigning the data property identifiers to the data items based on one or more data properties indicating data similarity, including at least one of data type, data size, logical block address (LBA) ranges, LBA access patterns, and a physical data source. 
 
     
     
       2. The method of  claim 1 , wherein the software component is executed within a device controller of the computer device. 
     
     
       3. The method of  claim 1 , wherein the software component comprises:
 a daemon installed in an operating system of the computer device; and 
 system call hooks implemented at a file system level. 
 
     
     
       4. The method of  claim 3 , wherein the daemon continuously runs in the background to manage and maintain at least one database of data item modifications to the nonvolatile memory device. 
     
     
       5. The method of  claim 4 , wherein the data items comprise files and wherein the statistics stored in the at least one database comprise filename-based statistics and file type-based statistics, wherein the filename-based statistics record update frequencies, including rewrite, update, delete, and truncate operations, for the data items, and wherein the file type-based statistics record accumulated update and delete frequencies specific to the file types. 
     
     
       6. The method of  claim 5 , wherein at least a portion of the filename-based statistics and file type-based statistics are stored in both memory of the computer device and on the nonvolatile memory. 
     
     
       7. The method of  claim 6 , wherein the filename-based statistics table and the file type-based statistics table are implemented as hash tables. 
     
     
       8. The method of  claim 7 , wherein each entry in the filename-based statistics table includes a key and a value, wherein the value comprises a total number of updates for the file during a lifetime of the file. 
     
     
       9. The method of  claim 8 , wherein responsive to creation of a new file, the daemon creates a new entry in the filename-based statistics table; and responsive to the file being deleted, the daemon deletes the corresponding entry in filename-based table. 
     
     
       10. The method of  claim 7 , wherein each entry in the file type-based statistics table includes a key and a value, wherein the value comprises all total updates made to files of this type divided by the number of files of this file type. 
     
     
       11. The method of  claim 10 , wherein responsive to the creation of a new type, the daemon creates a new entry in the file type-based table; and the daemon does not delete any entry after the entry is added. 
     
     
       12. The method of  claim 6 , wherein the daemon loads the filename-based statistics table and the file type-based statistics table to memory of the compute device after operating system boot up, and flushes the tables to the nonvolatile memory periodically for permanent storage. 
     
     
       13. The method of  claim 6 , wherein the statistics are stored in the at least one database, and wherein the system call hooks are configured to:
 responsive to intercepting file update operations, perform a database update operation to send related information to the daemon; 
 perform a data property identifier calculation that reads the database and calculates and assigns a data property identifier to actual file writes according to current statistics, 
 wherein file creations or fresh file writes are assigned data property identifiers according to the file's type and current file type statistics; while file data updates are assigned data property identifiers according to its update frequency and current update frequencies statistics; and 
 forward the actual file writes to the file system. 
 
     
     
       14. The method of  claim 13 , wherein the nonvolatile memory device is configured to handle a maximum number of streams and wherein the data property identifier calculation responsive to fresh file writes comprises assigning a data property identifier equal to a quantity rounded down to a lowest integer, the quantity being a write frequency for the file type divided by a maximum write frequency from the current file type statistics multiplied by a number of available streams in the nonvolatile memory, the number of available streams being equal to the maximum number of streams minus a current number of streams. 
     
     
       15. The method of  claim 13 , wherein the nonvolatile memory device is configured to handle a maximum number of streams and wherein the data property identifier calculation responsive to a file update comprises assigning a data property identifier equal to a quantity rounded down to a lowest integer, the quantity being a total number of writes for the file divided by a maximum number of writes for the file from the current file type statistics multiplied by a number of available streams in the nonvolatile memory, the number of available streams being equal to the maximum number of streams minus a current number of streams. 
     
     
       16. The method of  claim 3 , wherein the system call hooks intercept all file update operations and automatically assign the dynamic property identifiers to each of the file update operations according to current statistics in the database. 
     
     
       17. The method of  claim 1 , further comprising: responsive to a newly installed operating system, requiring the software component to have a configurable warm-up period to collect sufficient statistics to effectively assign the data property identifiers. 
     
     
       18. The method of  claim 1  wherein the nonvolatile memory device utilizes the assigned data property identifiers to select at least one location for storing the data items. 
     
     
       19. A computer device, comprising:
 a memory; 
 an operating system; and 
 a processor coupled to the memory, the processor executing a software component provided within the operating system, the software component configured to:
 monitor update statistics of data item modifications into a nonvolatile memory device, including one or more of update frequencies for at least a portion of the data items, accumulated update and delete frequencies specific to each file type, and an origin of the data item; 
 store the update statistics or the data items and data item types in a database; and 
 intercept all operations, including create, write, and update performed by applications to the data items, and automatically assign a data property identifier to each of the data items based on current update statistics in the database, such that the data items and assigned data property identifiers are transmitted over a memory channel to the nonvolatile memory device for storage, the software component assigning the data property identifiers to the data items based on one or more data properties indicating data similarity, including at least one of data type, data size, logical block address (LBA) ranges, LBA access patterns, and a physical data source. 
 
 
     
     
       20. The computer device of  claim 19 , wherein the software component is executed within a device controller of the computer device. 
     
     
       21. The computer device of  claim 19 , wherein the software component comprises:
 a daemon installed in an operating system of the computer device; and 
 system call hooks implemented at a file system level. 
 
     
     
       22. The computer device of  claim 21 , wherein the daemon continuously runs in the background to manage and maintain at least one database of data item modifications to the nonvolatile memory device. 
     
     
       23. The computer device of  claim 22 , wherein the data items comprise files and wherein the statistics stored in the at least one database comprise filename-based statistics and file type-based statistics, wherein the filename-based statistics record update frequencies, including rewrite, update, delete, and truncate operations, for the data items, and wherein the file type-based statistics record accumulated update and delete frequencies specific to the file types. 
     
     
       24. The computer device of  claim 23 , wherein at least a portion of the filename-based statistics and file type-based statistics are stored in both memory of the computer device and on the nonvolatile memory. 
     
     
       25. The computer device of  claim 24 , wherein the filename-based statistics table and the file type-based statistics table are implemented as hash tables. 
     
     
       26. The computer device of  claim 25 , wherein each entry in the filename-based statistics table includes a key and a value, wherein the value comprises a total number of updates for the file during a lifetime of the file. 
     
     
       27. The computer device of  claim 26 , wherein responsive to creation of a new file, the daemon creates a new entry in the filename-based statistics table; and responsive to the file being deleted, the daemon deletes the corresponding entry in filename-based table. 
     
     
       28. The computer device of  claim 25 , wherein each entry in the file type-based statistics table includes a key and a value, wherein the value comprises all total updates made to files of this type divided by the number of files of this file type. 
     
     
       29. The computer device of  claim 28 , wherein responsive to the creation of a new type, the daemon creates a new entry in the file type-based table; and the daemon does not delete any entry after the entry is added. 
     
     
       30. The computer device of  claim 24 , wherein the daemon loads the filename-based statistics table and the file type-based statistics table to memory of the compute device after operating system boot up, and flushes the tables to the nonvolatile memory periodically for permanent storage. 
     
     
       31. The computer device of  claim 24 , wherein the statistics are stored in the at least one database, and wherein the system call hooks are configured to:
 responsive to intercepting file update operations, perform a database update operation to send related information to the daemon; 
 perform a data property identifier calculation that reads the database and calculates and assigns a data property identifier to actual file writes according to current statistics, 
 wherein file creations or fresh file writes are assigned data property identifiers according to the file's type and current file type statistics; while file data updates are assigned data property identifiers according to its update frequency and current update frequencies statistics; and 
 forward the actual file writes to the file system. 
 
     
     
       32. The computer device of  claim 31 , wherein the nonvolatile memory device is configured to handle a maximum number of streams and wherein the data property identifier calculation responsive to fresh file writes comprises: assigning a data property identifier equal to a quantity rounded down to a lowest integer, the quantity being a write frequency for the file type divided by a maximum write frequency from the current file type statistics multiplied by a number of available streams for the nonvolatile memory, the number of available streams being equal to the maximum number of streams minus a current number of streams. 
     
     
       33. The computer device of  claim 31 , wherein the nonvolatile memory device is configured to handle a maximum number of streams and wherein the data property identifier calculation responsive to a file update comprises assigning a data property identifier equal to a quantity rounded down to a lowest integer, the quantity being a total number of writes for the file divided by a maximum number of writes for the file from the current file type statistics multiplied by a number of available streams in the nonvolatile memory, the number of available streams being equal to the maximum number of streams minus a current number of streams. 
     
     
       34. The computer device of  claim 21 , wherein the system call hooks intercept all file update operations and automatically assign the dynamic property identifiers to each of the file update operations according to current statistics in the database. 
     
     
       35. The computer device of  claim 19 , further comprising: responsive to a newly installed operating system, requiring the software component to have a configurable warm-up period to collect sufficient statistics to effectively assign the data property identifiers. 
     
     
       36. The computer device of  claim 19  wherein the nonvolatile memory device utilizes the assigned data property identifiers to select at least one location for storing the data items. 
     
     
       37. An executable software product stored on a non-transitory computer-readable storage medium containing program instructions for providing an interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device, the program instructions for:
 executing a software component at an operating system level in the computer device that monitors update statistics of data item modifications into the nonvolatile memory device, including one or more of update frequencies for at least a portion of the data items, accumulated update and delete frequencies specific to each file type, and an origin of the data item; 
 storing, by the software component, the update statistics for the data items and the data item types in a database; and 
 intercepting all operations, including create, write, and update performed by applications to the data items, and automatically assigning a data property identifier to each of the data items based on current update statistics in the database, such that the data items and assigned data property identifiers are transmitted over a memory channel to the nonvolatile memory device for storage the software component assigning the data property identifiers to the data items based on one or more data properties indicating data similarity, including at least one of data type, data size, logical block address (LBA) ranges, LBA access patterns, and a physical data source. 
 
     
     
       38. The executable software product of  claim 37  wherein the nonvolatile memory device utilizes the assigned data property identifiers to select at least one location for storing the data items.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.