US11625327B2ActiveUtilityA1

Cache memory management

54
Assignee: EMC IP HOLDING CO LLCPriority: Dec 10, 2019Filed: Dec 10, 2019Granted: Apr 11, 2023
Est. expiryDec 10, 2039(~13.4 yrs left)· nominal 20-yr term from priority
G06N 3/0442G06F 12/0862G06F 2212/602G06N 3/044G06F 12/0893G06F 12/0223G06N 3/0445
54
PatentIndex Score
0
Cited by
21
References
20
Claims

Abstract

Embodiments of the present disclosure relate to cache memory management. Based on anticipated input/output (I/O) workloads, at least one or more of: sizes of one or more mirrored and un-mirrored caches of global memory and their respective cache slot pools are dynamically balanced. Each of the mirrored/unmirrored caches can be segmented into one or more cache pools, each having slots of a distinct size. Cache pool can be assigned an amount of the one or more cache slots of the distinct size based on the anticipated I/O workloads. Cache pools can be further assigned the amount of distinctly sized cache slots based on expected service levels (SLs) of a customer. Cache pools can also be assigned the amount of the distinctly sized cache slots based on one or more of predicted I/O request sizes and predicted frequencies of different I/O request sizes of the anticipated I/O workloads.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. An apparatus comprising a memory and at least one processor configured to:
 monitor one or more input/output (I/O) workloads received by a storage array; 
 predict each distinct size of the I/O workload's I/O operations; 
 anticipate a frequency for each of the I/O workload's distinctly sized I/O operations; 
 establish one or more mirrored and unmirrored cache pools (MUCPs), wherein each MUCP's cache slot width is sized according to the anticipated frequency of the I/O workload's distinctly sized I/O operations; 
 establish, for each MUCP, a plurality of cache slot segments having sizes smaller than the width of their respective cache, wherein each MUCP includes two or more distinctly sized cache slot segments, where the combined width of each distinct size equals the size of their corresponding MUCP; and 
 dynamically balance and reallocate the cache slot segments to the one or more MUCPs according to the anticipated frequency of the I/O workload's distinctly sized I/O operations. 
 
     
     
       2. The apparatus of  claim 1  further configured to segment each of the one or more mirrored and un-mirrored caches into the one or more cache pools, wherein each cache pool includes one or more cache slots of a distinct size. 
     
     
       3. The apparatus of  claim 2  further configured to assign each cache pool an amount of the one or more cache slots of the distinct size based on the anticipated I/O workloads. 
     
     
       4. The apparatus of  claim 3  further configured to assign each cache pool the amount of the one or more distinctly sized cache slots based on expected service levels (SLs) of a customer. 
     
     
       5. The apparatus of  claim 1  further configured to anticipate the I/O workloads using one or more neural network machine learning techniques. 
     
     
       6. The apparatus of  claim 5 , wherein one of the one or more neural network machine learning techniques is a recurring neural network (RNN) such as a long/short-term memory (LSTM) network. 
     
     
       7. The apparatus of  claim 2  further configured to predict distinct I/O request sizes of the anticipated I/O workloads. 
     
     
       8. The apparatus of  claim 7  further configured to predict frequencies of different I/O request sizes of the anticipated I/O workloads. 
     
     
       9. The apparatus of  claim 8  further configured to assign each cache pool an amount of the one or more cache slots of the distinct size based on one or more of the predicted I/O request sizes and the predicted frequencies of the different I/O request sizes of the anticipated I/O workloads. 
     
     
       10. The apparatus of  claim 9  further configured to assign each cache pool the amount of the one or more distinctly sized cache slots of the distinct based on expected service levels (SLs) of a customer. 
     
     
       11. A method comprising:
 monitoring one or more input/output (I/O) workloads received by a storage array; 
 predicting each distinct size of the I/O workload's I/O operations; 
 anticipating a frequency for each of the I/O workload's distinctly sized I/O operations; 
 establishing one or more mirrored and unmirrored cache pools (MUCPs), wherein each MUCP's cache slot width is sized according to the anticipated frequency of the I/O workload's distinctly sized I/O operations; 
 establishing, for each MUCP, a plurality of cache slot segments having sizes smaller than the width of their respective cache, wherein each MUCP includes two or more distinctly sized cache slot segments, where the combined width of each distinct size equals the size of their corresponding MUCP; and 
 dynamically balancing and reallocating the cache slot segments to the one or more MUCPs according to the anticipated frequency of the I/O workload's distinctly sized I/O operations. 
 
     
     
       12. The method of  claim 11  further comprising segmenting each of the one or more mirrored and un-mirrored caches into one or more cache pools, each cache pool having one or more cache slots of a distinct size. 
     
     
       13. The method of  claim 12  further comprising assigning each cache pool an amount of the one or more cache slots of the distinct size based on the anticipated I/O workloads. 
     
     
       14. The method of  claim 13  further comprising assigning each cache pool the amount of the one or more distinctly sized cache slots based on expected service levels (SLs) of a customer. 
     
     
       15. The method of  claim 11  further comprising anticipating the I/O workloads using one or more neural network machine learning techniques. 
     
     
       16. The method of  claim 15 , wherein one of the one or more neural network machine learning techniques is a recurring neural network (RNN) such as a long/short-term memory (LSTM) network. 
     
     
       17. The method of  claim 12  further comprising predicting distinct I/O request sizes of the anticipated I/O workloads. 
     
     
       18. The method of  claim 17  further comprising predicting frequencies of different I/O request sizes of the anticipated I/O workloads. 
     
     
       19. The method of  claim 18  further comprising assigning each cache pool an amount of the one or more cache slots of the distinct size based on one or more of the predicted I/O request sizes and the predicted frequencies of the different I/O request sizes of the anticipated I/O workloads. 
     
     
       20. The method of  claim 19  further comprising assigning each cache pool the amount of the one or more distinctly sized cache slots of the distinct based on expected service levels (SLs) of a customer.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.