US2017364300A1PendingUtilityA1

Controller, flash memory apparatus, method for identifying data block stability, and method for storing data in flash memory apparatus

Assignee: HUAWEI TECH CO LTDPriority: Dec 5, 2014Filed: Aug 17, 2017Published: Dec 21, 2017
Est. expiryDec 5, 2034(~8.4 yrs left)· nominal 20-yr term from priority
G06F 2212/7205G06F 12/0246G06F 2212/1036G06F 3/0641G06F 3/0679G06F 3/0608G06F 3/0616G06F 12/02
47
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

In a method for controlling data stored in a Solid State Disk (SSD) of a data storage system, a storage controller obtains stability information of a data segment. The stability information includes a reference count of the data segment and a length of a period of time the data segment is stored in the SSD. The storage controller identifies a stability level of the data segment according to the stability information, and sends the stability level of the data segment to the SSD. The SSD moves the data segment to a storage block that corresponds to the stability level. Thereby, the SSD can store data segments having a same stability level together.

Claims

exact text as granted — not AI-modified
We claim: 
     
         1 . A method for controlling data stored in a solid state drive (SSD) in a storage system, wherein the SSD comprises one or more storage blocks, the method comprising:
 obtaining, by a storage controller of the storage system, a reference count of a data segment stored at a certain logical address in the SSD, wherein the reference count equals to a number of times that the storage controller receives the data segment;   identifying, by the storage controller, a stability level of the data segment based on the reference count, wherein the stability level is positively related to the reference count of the data segment;   sending, by the storage controller, the logical address of the data segment and the stability level of the data segment to the SSD; and   instructing, by the storage controller, the SSD to move the data segment to a certain storage block where data segments having similar stability levels are stored.   
     
     
         2 . The method according to  claim 1 , wherein a stability level of the data segment corresponds to a range of values of the reference count. 
     
     
         3 . The method according to  claim 1 , further comprising:
 receiving, by the storage controller, a new data segment;   obtaining, by the storage controller, a fingerprint of the new data segment by performing a hash of the new data segment;   sending, by the storage controller, the fingerprint of the new data segment to the SSD;   receiving, by the storage controller, a response from the SSD after the SSD compares the fingerprint of the new data segment to fingerprints of previously stored data segments and no match was found between the fingerprint of the new data segment and the fingerprints of the previously stored data segments; and   sending, by the storage controller, the new data segment to the SSD for storage.   
     
     
         4 . The method according to  claim 3 , wherein a reference count of the new data segment is set to an initial value, and the method further comprises:
 storing, by the storage controller, the initial value as the reference count of the new data segment.   
     
     
         5 . A storage controller in a storage system, wherein the storage system comprises at least one solid state drive (SSD), and each SSD comprises one or more storage blocks, the storage controller comprising:
 a processor, an interface connecting the storage controller to the at least one SSD, and a memory unit storing program instructions;   
       wherein the processor, by executing the program instructions, is configured to:
 obtain a reference count of a data segment stored at a certain logical address in an SSD, wherein the reference count equals to a number of times that the storage controller receives the data segment; and 
 identify a stability level of the data segment based on the reference count, wherein the stability level is positively related to the reference count of the data segment; 
 communicate the logical address of the data segment and the stability level of the data segment to the SSD through the interface; and 
 instruct the SSD to move the data segment to a certain storage block where data segments having similar stability levels are stored. 
 
     
     
         6 . The storage controller of  claim 5 , wherein a stability level of the data segment corresponds to a range of values of the reference count. 
     
     
         7 . The storage controller according to  claim 5 , wherein the processor, by executing the program instructions, is further configured to:
 receive a new data segment through the interface;   obtain a fingerprint of the new data segment by performing a hash of the new data segment;   communicate the fingerprint of the new data segment to the SSD through the interface;   receive a response from the SSD through the interface after the SSD compares the fingerprint of the new data segment to fingerprints of previously stored data segments and no match was found between the fingerprint of the new data segment and the fingerprints of the previously stored data segments; and   send the new data segment to the SSD for storage.   
     
     
         8 . The storage controller according to  claim 7 , wherein a reference count of the new data segment is set to an initial value, and the initial value is stored as the reference count of the new data segment. 
     
     
         9 . A non-transitory computer-readable storage medium storing program instructions for use by a storage controller that controls at least one solid state drive (SSD) in a storage system, wherein each SSD comprises one or more storage blocks, and wherein the program instructions instruct the storage controller to perform a process that comprises:
 obtaining a reference count of a data segment stored at a certain logical address in the SSD, wherein the reference count equals to a number of times that the storage controller receives the data segment;   identifying a stability level of the data segment based on the reference count, wherein the stability level is positively related to the reference count of the data segment;   sending the logical address of the data segment and the stability level of the data segment to the SSD; and   instructing the SSD to move the data segment to a certain storage block where data segments having similar stability levels are stored.   
     
     
         10 . The storage medium according to  claim 9 , wherein a stability level of the data segment corresponds to a range of values of the reference count. 
     
     
         11 . The storage medium according to  claim 9 , wherein the program instructions instruct the storage controller to perform the process that further comprises:
 receiving a new data segment;   obtaining a fingerprint of the new data segment by performing a hash of the new data segment;   sending the fingerprint of the new data segment to the SSD;   receiving a response from the SSD after the SSD compares the fingerprint of the new data segment to fingerprints of previously stored data segments and no match was found between the fingerprint of the new data segment and the fingerprints of the previously stored data segments; and   sending the new data segment to the SSD for storage.   
     
     
         12 . The storage medium according to  claim 11 , wherein a reference count of the new data segment is set to an initial value, and the initial value is stored as the reference count of the new data segment.

Join the waitlist — get patent alerts

Track US2017364300A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.