US11354247B2ActiveUtilityA1

Devices, systems, and methods for configuring a storage device with cache

57
Assignee: SMART IOPS INCPriority: Nov 10, 2017Filed: Nov 13, 2018Granted: Jun 7, 2022
Est. expiryNov 10, 2037(~11.3 yrs left)· nominal 20-yr term from priority
G06F 12/0246G06F 12/0871G06F 12/0893G06F 2212/7203G06F 2212/7205G06F 2212/2024G06F 2212/7202G06F 2212/7206G06F 2212/284G06F 12/0804G06F 12/0661
57
PatentIndex Score
0
Cited by
62
References
24
Claims

Abstract

In certain aspects, one or more solid-state storage devices (SSDs) are provided that include a controller and non-volatile memory coupled to the controller. The non-volatile memory can include one or more portions configured as main memory or cache memory. When data stored in the main memory is written to the cache memory for processing, the data in the main memory is erased. In certain aspects, storage systems are provided that include one or more of such SSDs coupled to a host system. In certain aspects, methods are provided that include: receiving, by a first such SSD, a first command to write data to memory; determining that the data is stored in a main memory and is to be written to the cache memory for processing; writing the data to the cache memory; and erasing the data from the main memory.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A storage system comprising:
 a host system; 
 a first solid-state storage device (SSD) communicatively coupled to the host system, the first SSD comprising:
 a first controller; and 
 first non-volatile memory coupled to the first controller, wherein the first non-volatile memory comprises at least one first partition of the first non-volatile memory that is configured as a first main memory; 
 
 a second SSD communicatively coupled to the host system, the second SSD comprising:
 a second controller; and 
 second non-volatile memory coupled to the second controller, wherein the second non-volatile memory comprises at least one first partition of the second non-volatile memory that is configured as a first cache memory; 
 
 wherein the first and second controllers are configured to move data between the at least one first partition the first non-volatile memory configured as the first main memory and the at least one first partition of the second non-volatile memory configured as the first cache memory such that no copy of the data is retained in the partition that the data originated; and 
 wherein the first and second controllers are configured such that when first data stored in the at least one first partition of the first non-volatile memory configured as the first main memory is written to the at least one first partition of the second non-volatile memory configured as the first cache memory for processing, the first data in the at least one first partition of the first non-volatile memory configured as the first main memory is erased or otherwise considered erased and available to be rewritten with new data; and 
 a third SSD communicatively coupled to the host system, wherein the third SSD comprises:
 a third controller; and 
 a third non-volatile memory coupled to the third controller, wherein the third non-volatile memory comprises at least one partition of the third non-volatile memory that is configured as a second cache memory; 
 
 wherein the first, second, and third controllers are configured to move data between the at least one first partition of the first non-volatile memory configured as the first main memory, the at least one first partition of the second non-volatile memory configured as the first cache memory, and the at least one partition of the third non-volatile memory that is configured as the second cache memory such that no copy of the data is retained in the partition that the data originated; 
 wherein the first and third controllers are configured such that when second data stored in the at least one first partition of the first non-volatile memory configured as the first main memory is written to the at least one partition of the third non-volatile memory configured as the second cache memory for processing, the second data in the at least one first partition of the first non-volatile memory configured as the first main memory is erased or otherwise considered erased and available to be rewritten with new data; and 
 wherein the first and third controllers are configured such that when the processed second data is written to the at least one first partition of the first non-volatile memory configured as the first main memory, the processed second data in the at least one partition of the third non-volatile memory configured as the second cache memory is erased or otherwise considered erased and available to be rewritten with new data. 
 
     
     
       2. The storage system of  claim 1 , wherein the first and second controllers are configured such that when the processed first data is written to the at least one first partition of the first non-volatile memory configured as the first main memory, the processed first data in the at least one first partition of the second non-volatile memory configured as the first cache memory is erased or otherwise considered erased and available to be rewritten with new data. 
     
     
       3. The storage system of  claim 1 , wherein the first non-volatile memory comprises a second partition of the first non-volatile memory configured as a third cache memory. 
     
     
       4. The storage system of  claim 1 , wherein the second non-volatile memory comprises a second partition of the second non-volatile memory configured as a second main memory. 
     
     
       5. The storage system of  claim 1 , wherein the second non-volatile memory comprises a second partition of the second non-volatile memory configured as a third cache memory. 
     
     
       6. The storage system of  claim 1 , wherein the at least one first partition of the second non-volatile memory that is configured as the first cache memory comprises at least one memory device consisting of the group: Flash, resistive random access memory (ReRAM), and magnetoresistive random access memory (MRAM); and wherein the at least one memory device is configured to have higher data access performance than the at least one first partition of the first non-volatile memory that is configured as the main memory. 
     
     
       7. The storage system of  claim 1 , wherein at least one of the first and second controllers is configured as a centralized controller coupled to one or more memory cards having the respective first or second non-volatile memory disposed thereon. 
     
     
       8. The storage system of  claim 1 , wherein either the first or second controller is configured as a main controller, and wherein the respective first or second SSD further comprises one or more distributed controllers coupled to the main controller and the respective first or second non-volatile memory. 
     
     
       9. The storage system of  claim 8 , wherein the first non-volatile memory comprises a second partition of the first non-volatile memory configured as a third cache memory;
 wherein the first controller is configured as a main controller; and 
 wherein the first SSD further comprises:
 a first distributed controller coupled to the main controller and the first non-volatile memory, wherein the first distributed controller is configured to control the at least one first partition of the first non-volatile memory configured as the main memory; and 
 a second distributed controller coupled to the main controller and the first non-volatile memory, wherein the second distributed controller is configured to control the second partition of the first non-volatile memory configured as the third cache memory. 
 
 
     
     
       10. A storage system comprising:
 a first solid-state storage device (SSD) configured to communicatively couple to a host system, the first SSD comprising:
 a first controller; and 
 first non-volatile memory coupled to the first controller, wherein the first non-volatile memory comprises at least one first partition of the first non-volatile memory that is configured as a first main memory; 
 
 a second SSD configured to communicatively couple to the host system, the second SSD comprising:
 a second controller; and 
 second non-volatile memory coupled to the second controller, wherein the second non-volatile memory comprises at least one first partition of the second non-volatile memory that is configured as a first cache memory; 
 
 wherein the first and second controllers are configured to move data between the at least one first partition of the first non-volatile memory configured as the first main memory and the at least one first partition of the second non-volatile memory configured as the first cache memory such that no copy of the data is retained in the partition that the data originated; and 
 wherein the first and second controllers are configured such that when first data stored in the at least one first partition of the first non-volatile memory configured as the first main memory is written to the at least one first partition of the second non-volatile memory configured as the first cache memory for processing, the first data in the at least one first partition of the first non-volatile memory configured as the first main memory is erased or otherwise considered erased and available to be rewritten with new data; and 
 a third SSD configured to communicatively couple to the host system, wherein the third SSD comprises:
 a third controller; and 
 a third non-volatile memory coupled to the third controller, wherein the third non-volatile memory comprises at least one partition of the third non-volatile memory that is configured as a second cache memory; 
 
 wherein the first, second, and third controllers are configured to move data between the at least one first partition of the first non-volatile memory configured as the first main memory, the at least one first partition of the second non-volatile memory configured as the first cache memory, and the at least one partition of the third non-volatile memory that is configured as the second cache memory such that no copy of the data is retained in the partition that the data originated; 
 wherein the first and third controllers are configured such that when second data stored in the at least one first partition of the first non-volatile memory configured as the first main memory is written to the at least one partition of the third non-volatile memory configured as the second cache memory for processing, the second data in the at least one first partition of the first non-volatile memory configured as the first main memory is erased or otherwise considered erased and available to be rewritten with new data; and 
 wherein the first and third controllers are configured such that when the processed second data is written to the at least one first partition of the first non-volatile memory configured as the first main memory, the processed second data in the at least one partition of the third non-volatile memory configured as the second cache memory is erased or otherwise considered erased and available to be rewritten with new data. 
 
     
     
       11. The storage system of  claim 10 , wherein the first and second controllers are configured such that when the processed first data is written to the at least one first partition of the first non-volatile memory configured as the first main memory, the processed first data in the at least one first partition of the second non-volatile memory configured as the first cache memory is erased or otherwise considered erased and available to be rewritten with new data. 
     
     
       12. The storage system of  claim 10 , wherein the first non-volatile memory comprises a second partition of the first non-volatile memory configured as a third cache memory. 
     
     
       13. The storage system of  claim 10 , wherein the second non-volatile memory comprises a second partition of the second non-volatile memory configured as a second main memory. 
     
     
       14. The storage system of  claim 10 , wherein the second non-volatile memory comprises a second partition of the second non-volatile memory configured as a third cache memory. 
     
     
       15. The storage system of  claim 10 , wherein the at least one first partition of the second non-volatile memory that is configured as the first cache memory comprises at least one memory device consisting of the group: Flash, resistive random access memory (ReRAM), and magnetoresistive random access memory (MRAM); and wherein the at least one memory device is configured to have higher data access performance than the at least one first partition of the first non-volatile memory that is configured as the main memory. 
     
     
       16. The storage system of  claim 15 , wherein the first and second controllers are configured such that when the processed first data is written to the at least one first partition of the first non-volatile memory configured as the first main memory, the processed first data in the at least one first partition of the second non-volatile memory configured as the first cache memory is erased or otherwise considered erased and available to be rewritten with new data. 
     
     
       17. A method comprising:
 receiving, by a storage system, a first command from a host system to enable processing of first data; 
 wherein the storage system comprises:
 a first solid-state storage device (SSD) configured to communicatively couple to a host system, the first SSD comprising:
 a first controller; and 
 first non-volatile memory coupled to the first controller, wherein the first non-volatile memory comprises at least one first partition of the first non-volatile memory that is configured as a first main memory; 
 
 a second SSD configured to communicatively couple to the host system, the second SSD comprising:
 a second controller; and 
 second non-volatile memory coupled to the second controller, wherein the second non-volatile memory comprises at least one first partition of the second non-volatile memory that is configured as a first cache memory; 
 
 wherein the first and second controllers are configured to move data between the at least one first partition of the first non-volatile memory configured as the first main memory and the at least one first partition of the second non-volatile memory configured as the first cache memory such that no copy of the data is retained in the partition that the data originated; and 
 wherein the first and second controllers are configured such that when first data stored in the at least one first partition of the first non-volatile memory configured as the first main memory is written to the at least one first partition of the second non-volatile memory configured as the first cache memory for processing, the first data in the at least one first partition of the first non-volatile memory configured as the first main memory is erased or otherwise considered erased and available to be rewritten with new data; and 
 a third SSD configured to communicatively couple to the host system, wherein the third SSD comprises:
 a third controller; and 
 a third non-volatile memory coupled to the third controller, wherein the third non-volatile memory comprises at least one partition of the third non-volatile memory that is configured as a second cache memory; 
 
 wherein the first, second, and third controllers are configured to move data between the at least one first partition of the first non-volatile memory configured as the first main memory, the at least one first partition of the second non-volatile memory configured as the first cache memory, and the at least one partition of the third non-volatile memory that is configured as the second cache memory such that no copy of the data is retained in the partition that the data originated; 
 wherein the first and third controllers are configured such that when second data stored in the at least one first partition of the first non-volatile memory configured as the first main memory is written to the at least one partition of the third non-volatile memory configured as the second cache memory for processing, the second data in the at least one first partition of the first non-volatile memory configured as the first main memory is erased or otherwise considered erased and available to be rewritten with new data; and 
 wherein the first and third controllers are configured such that when the processed second data is written to the at least one first partition of the first non-volatile memory configured as the first main memory, the processed second data in the at least one partition of the third non-volatile memory configured as the second cache memory is erased or otherwise considered erased and available to be rewritten with new data; 
 
 determining, by the storage system, that the first data is stored in the at least one first partition of the first non-volatile memory configured as the main memory and is to be written to the at least one first partition of the second non-volatile memory configured as the first cache memory for processing; 
 writing, by the second controller, the first data to the at least one first partition of the second non-volatile memory configured as the first cache memory; and 
 erasing, by the first controller, the first data from the first partition of the first non-volatile memory configured as the main memory or otherwise considering the first data erased and available to be rewritten with new data. 
 
     
     
       18. The method of  claim 17 , further comprising:
 receiving, by the storage system, a second command from a host system to enable processing of second data; 
 determining, by the storage system, that the second data is stored in the at least one first partition of the first non-volatile memory configured as the main memory and is to be written to the at least one partition of the third non-volatile memory configured as the second cache memory for processing; 
 writing, by the third controller, the second data to the at least one partition of the third non-volatile memory configured as the second cache memory; and 
 erasing, by the first controller, the first data from the first partition of the first non-volatile memory configured as the main memory or otherwise considering the first data erased and available to be rewritten with new data. 
 
     
     
       19. The method of  claim 17 , further comprising:
 processing the first data; 
 writing, by the first controller, the processed first data to the at least one first partition of the first non-volatile memory configured as the first main memory; and 
 erasing, by the second controller, the first data from the first partition of the second non-volatile memory configured as the first cache memory or otherwise considering the first data erased and available to be rewritten with new data. 
 
     
     
       20. The method of  claim 17 , wherein the first non-volatile memory comprises a second partition of the first non-volatile memory configured as a third cache memory. 
     
     
       21. The method of  claim 17 , wherein the second non-volatile memory comprises a second partition of the second non-volatile memory configured as a second main memory. 
     
     
       22. The method of  claim 17 , wherein the second non-volatile memory comprises a second partition of the second non-volatile memory configured as a third cache memory. 
     
     
       23. The method of  claim 17 , wherein the at least one first partition of the second non-volatile memory that is configured as the first cache memory comprises at least one memory device consisting of the group: Flash, resistive random access memory (ReRAM), and magnetoresistive random access memory (MRAM); and wherein the at least one memory device is configured to have higher data access performance than the at least one first partition of the first non-volatile memory that is configured as the main memory. 
     
     
       24. The method of  claim 23 , wherein the first and second controllers are configured such that when the processed first data is written to the at least one first partition of the first non-volatile memory configured as the first main memory, the processed first data in the at least one first partition of the second non-volatile memory configured as the first cache memory is erased or otherwise considered erased and available to be rewritten with new data.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.