US11164650B2ActiveUtilityA1

Scrub management in storage class memory

41
Assignee: IBMPriority: Aug 30, 2019Filed: Aug 30, 2019Granted: Nov 2, 2021
Est. expiryAug 30, 2039(~13.1 yrs left)· nominal 20-yr term from priority
G11C 29/38G11C 29/44G11C 2029/0409G11C 29/10G11C 29/4401
41
PatentIndex Score
0
Cited by
18
References
20
Claims

Abstract

A method and system for collecting diagnostic data from a storage class memory chip is disclosed. The method includes performing a scrub process on at least a portion of the storage class memory by: removing the portion of the storage class memory from use, wherein the portion comprises a plurality of memory locations, executing a first write operation to write a first pattern on each of the plurality of memory locations, executing a first read operation to obtain a first set of data written on each of the plurality of memory locations, analyzing the first set of data written on each of the plurality of memory locations to determine the number of stuck-at faults in the portion, and updating one or more counters in an error rate table (ERT) to indicate the number of stuck-at faults.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method for collecting diagnostic data from a storage class memory chip, the method comprising:
 performing a scrub process on at least a portion of the storage class memory by:
 removing a portion of the storage class memory from active use for memory access operations, wherein the portion comprises a plurality of memory locations; 
 executing, while the portion of storage class memory is removed from active use for memory access operations, a first write operation to write a first pattern on each of the plurality of memory locations; 
 executing, while the portion of storage class memory is removed from active use for memory access operations, a first read operation to obtain a first set of data written on each of the plurality of memory locations; 
 analyzing the first set of data written on each of the plurality of memory locations to determine a number of stuck-at faults in the portion removed from active use for memory access operations; and 
 updating, in response to determining the number of stuck-at faults in the portion removed from active use for memory access operations, one or more counters in an error rate table (ERT) to indicate the number of stuck-at faults; and 
 determining, based upon the number of stuck-at faults updated in the one or more counters in the error rate table (ERT), whether to return one or more of the plurality of memory locations back to service for active use for memory access operations. 
 
 
     
     
       2. The method of  claim 1 , wherein performing the scrub process further comprises:
 executing, while the portion of storage class memory is removed from active use for memory access operations, a second write operation to write a second pattern on each of the plurality of memory locations, wherein the first pattern and the second pattern are different from each other; 
 executing, while the portion of storage class memory is removed from active use for memory access operations, a second read operation to obtain a second set of data written on each of the plurality of memory locations; 
 analyzing the second set of data written on each of the plurality of memory locations to determine the number of stuck-at faults in the portion removed from active use for memory access operations; and 
 updating, in response to determining the number of stuck-at faults in the portion removed from active use for memory access operations, one or more counters in the error rate table (ERT) to indicate the number of stuck-at faults. 
 
     
     
       3. The method of  claim 2 , wherein the first pattern is one of a repeating string of 1's or a repeating string of 0's and the second pattern is another different one of the repeating string of 0's or the repeating string of 1's. 
     
     
       4. The method of  claim 2 , wherein the stuck-at faults comprise at least one of the following: stuck-at-0, stuck-at-1, stuck-at-X, or at least two bits stuck together. 
     
     
       5. The method of  claim 1 , wherein removing the portion of the storage class memory from active use for memory access operations comprises removing the portion from a Free List corresponding to the storage class memory. 
     
     
       6. The method of  claim 1 , wherein removing the portion of the storage class memory from active use for memory access operations comprises transferring data stored on the portion of the storage class memory to a second portion of the storage class memory. 
     
     
       7. The method of  claim 1 , wherein the plurality of memory locations in the portion of the storage class memory are addressable by a threshold number of consecutive virtual block addresses of the storage class memory and wherein each of the plurality of memory locations comprises a plurality of bit arrays. 
     
     
       8. The method of  claim 1 , wherein each of the plurality of memory locations comprises a plurality of bit arrays and the ERT comprises counters for counting stuck-at faults corresponding to each of the plurality of bit arrays for each of the plurality of memory locations. 
     
     
       9. The method of  claim 8 , further comprising, analyzing the ERT to identify one or more of the plurality of bit arrays not to be used for performing read/write operations, wherein the one or more of the plurality of bit arrays not to be used for performing read/write operations have counter values for the number of stuck-at faults greater than a threshold value. 
     
     
       10. The method of  claim 9 , wherein the identified one or more of the plurality of bit arrays not to be used for performing read/write operations are not returned to service for active use for memory access operations, and the remainder of the one or more of the plurality of bit arrays in the portion of the storage class memory are returned to service for active use for memory access operations after the scrub process. 
     
     
       11. The method of  claim 1 , further comprising returning the portion of the storage class memory into service for active use during read/write operations after the scrub process. 
     
     
       12. A computing system for collecting diagnostic data from a storage class memory chip, the system comprising:
 a processor; and 
 a computer readable storage medium comprising programming instructions that when executed cause the processor to:
 perform a scrub process on at least a portion of a storage class memory by:
 removing a portion of the storage class memory from active use for memory access operations, wherein the portion comprises a plurality of memory locations; 
 executing a first write operation to write a first pattern on each of the plurality of memory locations; 
 executing a first read operation to obtain a first set of data written on each of the plurality of memory locations; 
 analyzing the first set of data written on each of the plurality of memory locations to determine a number of stuck-at faults in the portion removed from active use for memory access operations; 
 update, in response to determining the number of stuck-at faults in the portion removed from active use for memory access operations, one or more counters in an error rate table (ERT) to indicate the number of stuck-at faults; and 
 determining, based upon the number of stuck-at faults updated in the one or more counters in the error rate table (ERT), whether to return one or more of the plurality of memory locations back to service for active use for memory access operations. 
 
 
 
     
     
       13. A computing system of  claim 12 , wherein the programming instructions to cause the processor to perform the scrub process further comprise programming instructions to cause the processor to perform the scrub process by:
 executing a second write operation to write a second pattern on each of the plurality of memory locations, wherein the first pattern and the second pattern are different from each other; 
 executing a second read operation to obtain a second set of data written on each of the plurality of memory locations; 
 analyzing the second set of data written on each of the plurality of memory locations to determine the number of stuck-at faults in the portion removed from active use for memory access operations; and 
 updating, in response to determining the number of stuck-at faults in the portion removed from active use for memory access operations, one or more counters in the error rate table (ERT) to indicate the number of stuck-at faults. 
 
     
     
       14. The computing system of  claim 13 , wherein the first pattern is one of a repeating string of 1's or a repeating string of 0's and the second pattern is another different one of the repeating string of 0's or the repeating string of 1's. 
     
     
       15. The computing system of  claim 13 , wherein the stuck-at faults comprise at least one of the following: stuck-at-0, stuck-at-1, stuck-at-X, or at least two bits stuck together. 
     
     
       16. The computing system of  claim 12 , wherein the programming instructions to cause the processor to perform the scrub process by removing the portion of the storage class memory from active use for memory access operations comprise programming instructions to cause the processor to perform the scrub process by removing the portion from a Free List corresponding to the storage class memory. 
     
     
       17. The computing system of  claim 12 , wherein the programming instructions to cause the processor to perform the scrub process by removing the portion of the storage class memory from active use for memory access operations comprise programming instructions to cause the processor to perform the scrub process by transferring data stored on the portion of the storage class memory to a second portion of the storage class memory. 
     
     
       18. The computing system of  claim 12 , wherein the plurality of memory locations in the portion of the storage class memory are addressable by a threshold number of consecutive virtual block addresses of the storage class memory and wherein each of the plurality of memory locations comprise a plurality of bit arrays. 
     
     
       19. The computing system of  claim 12 , wherein each of the plurality of memory locations comprises a plurality of bit arrays and the ERT comprises counters for counting stuck-at faults corresponding to each of the plurality of bit arrays for each of the plurality of memory locations. 
     
     
       20. The computing system of  claim 12 , wherein the programming instructions to cause the processor to perform the scrub process further comprise programming instructions to cause the processor to perform the scrub process by:
 analyzing the ERT to identify one or more of a plurality of bit arrays not to be used for performing memory access operations, wherein the one or more of the plurality of bit arrays not to be used to perform memory access operations have counter values for the number of stuck-at faults greater than a threshold value, and 
 the one or more of the plurality of bit arrays identified not to be used for performing memory access operations are not returned to service for active use for memory access operations; and 
 the remained of the one or more of the plurality of bit arrays are returned to service for active use in memory access operations after the scrub process.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.