Abstract:
A method and system is disclosed for identification and removal of a memory sector prone to failure. The method performs satisfaction checks on the memory sector and monitors and stores returned Unsatisfied Checks (USC) for analysis by a pattern recognition algorithm. Once a first global iteration is pattern matched with a second global iteration from the sector, the method determines the period of the repetitive pattern. The method then identifies, as the sector prone to failure, the sector having the defined pattern and period. Once identified, the method uses a power management scheme to remove the sector prone to failure from further use by the memory system and displays to a user the details of the action taken.

Description:
TECHNICAL FIELD 
       [0001]    The present disclosure relates generally to the field of management of storage sectors via the use of failure prediction algorithms. More specifically, embodiments of the present invention relate to a system and method for accurate sector failure prediction on Low-Density Parity Check (LDPC) codec iterative systems based on waveform analysis at various sector failure rates (SFR). 
       BACKGROUND 
       [0002]    Finite server memory capacity may require an operator to accurately manage assets to ensure memory availability to additional resources. To ensure availability, accurate determination of whether and when a sector of memory may fail may aid the operator. This determination may enable the user to accurately target and remove from memory the failed sector or sector identified as one anticipated to fail. A method enabling a user to identify and prepare for a failed sector may enable the user to more efficiently manage finite storage assets. 
         [0003]    Sectors which may unexpectedly fail may cause damage to a system or simply a loss of data. Undesirable data loss may contribute to an overall perception of instability and poor performance. 
         [0004]    A certain percentage of power may be spent on failed sectors. In some situations, 3% to 11% of total power may be spent on failed sectors or on sectors identified as prone to failure. Power assets wasted on a failed sector may unnecessarily increase power required leading to decreased battery life, decreased productivity, and eventual increased costs. 
         [0005]    Therefore, it would be advantageous if a method and system existed providing for user capability to accurately identify and predict a failure of a memory sector enabling the user to more efficiently manage storage assets. 
       SUMMARY 
       [0006]    In a preferred embodiment, a method for identification of a sector prone to failure comprises performing a satisfaction check on at least one sector, receiving an indication of a satisfied check, receiving and storing an indication of an unsatisfied check. The method continues by storing a location of the unsatisfied check and a number of unsatisfied checks, for each one of a plurality of local iterations, storing the location of the unsatisfied check and the number of unsatisfied checks for each one of a plurality of global iterations, one global iteration being equal to 10 local iterations, and analyzing the number and location of the unsatisfied checks between a first global iteration and at least one other global iteration. The method continues by determining if a periodic pattern exists between the number and location of the unsatisfied checks in the first global iteration and number and location of the unsatisfied checks in the at least one other global iteration, and identifying, as the sector prone to failure, a sector having a determined periodic pattern. The method finally removes the identified sector from further use, and reports, to a user via a display, the number and location of the unsatisfied checks for the identified sector. 
         [0007]    In an additional aspect of the current invention, a system for identification of a sector prone to failure comprises a computer readable medium having non-transitory computer readable program code embodied therein for identification of a sector prone to failure, the computer readable program code comprising instructions which, when executed by a computer device or processor, perform and direct the steps of: performing a satisfaction check on at least one sector, receiving an indication of a satisfied check, receiving and storing an indication of an unsatisfied check, and storing a location of the unsatisfied check and a number of unsatisfied checks, for each one of a plurality of local iterations. The system continues by storing the location of the unsatisfied check and the number of unsatisfied checks for each one of a plurality of global iterations, one global iteration being equal to 10 local iterations, and analyzing the number and location of the unsatisfied checks between a first global iteration and at least one other global iteration. The system continues by determining if a periodic pattern exists between the number and location of the unsatisfied checks in the first global iteration and number and location of the unsatisfied checks in the at least one other global iteration, and identifying, as the sector prone to failure, a sector having a determined periodic pattern. The system finally removes the identified sector from further use, and reports, to a user via a display, the number and location of the unsatisfied checks for the identified sector. 
         [0008]    It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not necessarily restrictive of the present disclosure. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate subject matter of the disclosure. Together, the descriptions and the drawings serve to explain the principles of the disclosure. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0009]    The numerous advantages of the disclosure may be better understood by those skilled in the art by reference to the accompanying figures in which: 
           [0010]      FIG. 1  is an overview of a system configured with a preferred embodiment of the present invention; 
           [0011]      FIGS. 2A-2C  are a list of unsatisfied checks (USC) locations in each local iteration at high signal to noise ratio (SNR) representative of a preferred embodiment of the present invention; 
           [0012]      FIG. 3  is a compiled list of high SNR USC locations mirroring  FIGS. 2A-2C , showing a pattern of USC locations representative of a preferred embodiment of the present invention; 
           [0013]      FIG. 4  is a graph of the number of local USCs per local iteration index at high SNR representative of a preferred embodiment of the present invention; 
           [0014]      FIGS. 5A-5E  are a list of unsatisfied checks (USC) locations in each local iteration at low signal to noise ratio representative of a preferred embodiment of the present invention; 
           [0015]      FIG. 6  is a compiled list of low SNR USC locations mirroring  FIGS. 5A-5E , showing a pattern of USC locations representative of a preferred embodiment of the present invention; 
           [0016]      FIG. 7  is a graph of the number of local USCs per local iteration index at low SNR representative of a preferred embodiment of the present invention; 
           [0017]      FIG. 8  is a graph of sector failure rate (SFR) over signal to noise ratio (SNR) in dB representative of two embodiments of the present invention; 
           [0018]      FIG. 9  is a graph of Normalized Detector Peak Power over SNR representative of two embodiments of the present invention; 
           [0019]      FIG. 10  is a graph of Normalized Decoder Peak Power over SNR representative of two embodiments of the present invention; and 
           [0020]      FIG. 11  is a flow diagram of a method for accurate prediction of sector failure in accordance with a preferred embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0021]    Reference will now be made in detail to the subject matter disclosed, which is illustrated in the accompanying drawings. 
         [0022]    Embodiments of the present invention may provide the capability for automatically identifying a memory sector prone to failure at a point in the future. The identified memory sector may then be immediately removed or iteratively removed from service resulting in an ultimate power savings for the overall system. Additionally, embodiments of the present invention may provide for prompt identification and recovery of the identified sector within an ongoing operation. 
         [0023]    Multi-channel architecture may be well known in the art of memory and storage design. Certain channels of a multi-channel design may support a wide number of iterations. A local iteration being defined herein as one round of variable-node processing and check-node processing in the LDPC code decoder. A number of local iterations may comprise a global iteration. As used herein, a global iteration may be defined as one round of detector processing and decoder processing. A global iteration may additionally comprise a plurality of local iterations. For example, one channel in a multi-channel architecture may support up to 120 global iterations. For each global iteration, this same channel may support 10 local iterations. 
         [0024]    Monitoring each iteration of a sector for performance over time may allow tracking of the monitored sector&#39;s status. For example, a monitoring engine may periodically check each sector for performance. One measure of performance may include a satisfaction check. A result of a satisfaction check may return as a satisfied check (SC) or an unsatisfied check (USC). As used herein, a SC and an USC may be defined as an evaluation of a check node in a bipartite graph of the LDPC code as satisfied (SC) or not (USC). 
         [0025]    In addition, each satisfaction check may return a location of the USC as the variable nodes corresponding to the data bits of a sector are evaluated. Such location may be in the form of a number, a physical location, a variable indicating a reference to a location, and the like. Also, each sector may return a plurality of USCs during a single local iteration. This number of USCs per local iteration may be of considerable importance to long term health of the sector. 
         [0026]    One method of tracking USCs may include tracking a location of the USCs and the number of USCs returned from the sector during one local iteration. It is contemplated additional parameters returned from a satisfaction check may also reveal valuable information regarding the health of the sector. 
         [0027]    Through analysis of USCs number and location of a sector over time, a user may determine if a monitored sector may fail at a point in the future. For example, storage and analysis of the number and location of USCs for a local iteration may reveal a short term picture of sector performance. However, for an accurate analysis of longer term performance and a possible view of a future sector failure, an analysis of USC over a plurality of global iterations as compared to other global iterations of the monitored sector may prove beneficial. 
         [0028]    For example, a specific channel of a sector monitoring engine may monitor a plurality of sectors for 120 global iterations. Each global iteration may be comprised of a number of local iterations. For example, one global iteration may include 10 local iterations. For one local iteration, a certain number of USCs may be indicated. For example the local iteration may return 16 USCs at locations: 17 14 28 66 81 191 342 450 846 900 1151 1564 1878 2050 2052 2193. These 16 USCs and locations may be stored for follow on analysis. Coupled with USC from 9 additional iterations within the global iteration, the USCs from this first global iteration may be stored and compared to the USCs from a second global iteration to determine if a pattern match is present. 
         [0029]    A matching pattern between USC from one global iteration to another global iteration may indicate pending failure of the monitored sector. For example, a pattern of USCs from a first global iteration may be an exact match with a pattern of USCs from a second global iteration. Such exact match may indicate failure of the sector at some future time. Although a future failure may be indicated by a pattern match, the match may indicate additional insight to a user. 
         [0030]    A Sector Failure Rate (SFR) may also be indicated by such match of pattern dynamics between a first global iteration and a second global iteration. For example, a SFR of 1 e-3 to 1 e-5 may be indicated by matching pattern dynamics of a first Global iteration (G) with a second. Additionally, analysis of the period of matching global iteration patterns may be of importance. 
         [0031]    Period length may also indicate when and if a sector may fail. For example, a periodic USC pattern (both the number of USC and the locations of USC) may indicate a sector which may fail after a relatively long schedule of iterations (e.g., &gt;80 G). 
         [0032]    A shorter period may indicate a lower relative sector fail rate. For example, a periodic pattern indicating a short period (e.g., 1 G) may foretell of a lower sector failure rate (e.g., 1e-5). One reason for short periods here may include a small number of trapping sets connected together. 
         [0033]    A longer period may indicate a higher relative SFR. For example, a period of 3 G (e.g., an exact match every 3 global iterations), may indicate a higher SFR of 1 e-3. One reason for this higher rate may include a large number of trapping sets and non-trapping-set errors are connected together. 
         [0034]    Referring to  FIG. 1 , an overview of a system configured with a preferred embodiment of the present invention is shown. System  100  may preferably include processor  110  operationally and digitally connected to storage system  120  and to display  150 . Within processor  110  disk  112  may retain computer readable code for executing instructions of the method described herein. Within storage system  120 , storage controller  140  may possess some storage logic  142  related to operation of the methods disclosed herein. Individual sectors  132  and  134  may be the monitored sectors the present invention may monitor and evaluate for USCs. Sectors  132   134  may be part of an overall sector storage cluster  130  enabling overall system  100  to efficiently store data. 
         [0035]    Processor  110  may preferably execute instructions of system  100  to evaluate and check the status of the sectors  130 . Processor  110  may execute satisfaction checks and store to the disk  112  results of the checks. Processor  110  may store the number and location of USCs to disk  112  for further analysis. 
         [0036]    Alternatively, storage controller  140  may possess the logic  142  to fully carry out the instructions of system  100 . Storage controller may function to execute satisfaction checks on each of the plurality of sectors in the cluster  130  and may store results of the checks. Storage controller  140  may evaluate sectors  132  and report results to processor  110  for further transmission to display  150 . 
         [0037]    Referring to  FIG. 2A-2C , a list of unsatisfied checks (USC) locations in each local iteration at high signal to noise ratio (SNR) representative of a preferred embodiment of the present invention is shown. Each line may represent a local iteration  212  representative of the USCs returned for a specific sector. For example, the local iteration (gind=0 lind=4:)  212  indicates 20 USCs at locations: 19 25 44 45 66 71 74 77 121 151 162 187 230 233 239 245 254 267 281 284. This result may be contrasted with local iteration represented by line  214  (gind=1 lind=8) (Global iteration 1 and local iteration 8) returning a result of 5 USCs at locations: 5 55 151 187 233 267. The local iterations may be then analyzed as groups of 10 local iteration forming a global iteration. Global iterations such as those indicated by  202 ,  204 ,  206 ,  208 , and  210  may be stored within disk  112  and available for further analysis by processor  110 . 
         [0038]    System  100  may preferably use a variety of well known pattern recognition methods to accomplish the task of pattern recognition. A skilled artisan may recognize such pattern recognition techniques as used herein to accomplish this task. Pattern analysis may alternatively include a comparison of global iteration  202  with each following global iteration, each previous global iteration, or any combination of comparisons. 
         [0039]    Referring to  FIG. 3 , a compiled list of high SNR USC locations mirroring  FIGS. 2A-2C , showing a pattern of USC locations representative of a preferred embodiment of the present invention is shown. A repetitive pattern may be indicated by numbers and locations of USCs returned from the monitored sector  132 . For example, a first global iteration  204  may indicate the same pattern of USCs as global iteration  206 . This period of 1 may indicate a lower SFR for the monitored sector. 
         [0040]    Referring to  FIG. 4 , a graph of the number of local USCs per local iteration index at high SNR representative of a preferred embodiment of the present invention is shown. As indicated numerically in  FIG. 3 , the graphical representation of each global iteration  202 - 210  in  FIG. 4  may indicate a pattern match. Global iteration  204  may be visually similar to global iteration  206 , and to  208  and so on. This repetitive pattern and period of 1 may indicate a lower SFR for the monitored sector. 
         [0041]    Referring to  FIG. 5A-5E , a list of unsatisfied checks (USC) locations in each local iteration at low signal to noise ratio representative of a preferred embodiment of the present invention is shown. Each local iteration may be analyzed as a group of 10 within one global iteration. Global iterations  502 ,  504 ,  506 ,  508 ,  510 ,  512 ,  514 ,  516 , and  518  are shown indicating groups of local iterations available for analysis by system  100  as global iterations. As above, system  100  may preferably perform an analysis of the global iterations to determine whether a pattern and period of the pattern may exist. 
         [0042]    Referring to  FIG. 6 , a compiled list of low SNR USC locations mirroring  FIGS. 5A-5E , showing a pattern of USC locations representative of a preferred embodiment of the present invention is shown. A skilled observer will notice from the list of USCs a pattern develops as the list is compiled. Global iteration  502  may be dissimilar from each previous or following global iteration. However, global iteration  508  may find a pattern match in global iteration  514  with a repeating period of 3. 
         [0043]    Referring to  FIG. 7 , a graph of the number of local USCs per local iteration index at low SNR representative of a preferred embodiment of the present invention is shown. Step  602  may comprise. A skilled observer may find the same pattern and period of 3 between global iterations  508  and  514 ,  510  and  516 , and  512  and  518  here. As previously described, a longer period may indicate a higher SFR for the monitored sector. Once the sector identified as prone to failure, system  100  may execute a power management scheme to remove the sector from further operation. 
         [0044]    Referring to  FIG. 8 , a graph of sector failure rate (SFR) over signal to noise ratio (SNR) in dB representative of two embodiments of the present invention is shown. A reference curve shows SFR without use of system  100 . Scheme 1 may indicate immediate removal of a sector found to have a repeating pattern and defined period. Scheme 2 may offer an alternate embodiment where the identified sector is iteratively removed by one local iteration per each future global iteration until the identified sector is removed completely. For example, embodiments of the present invention may provide for changing the number of local iterations per global in a certain random way. This may help break the trapping sets and recover the failure. 
         [0045]    In a preferred operation of scheme 1, a sector identified to have a pattern match and period of USCs may be immediately removed from service when positively identified. In this case, a potential greater power reduction may occur with no SFR loss in the overall system  100 . 
         [0046]    In an alternate embodiment, scheme 2 may iteratively reduce, by one local iteration, each future global iteration until the local iterations equal zero per global iteration. At this zero point, system  100  may remove the identified sector from future service. Under alternate scheme 2, it is contemplated system  100  may perceive some power reduction with SFR gain. 
         [0047]    Referring to  FIG. 9 , a graph of Normalized Detector Peak Power over SNR representative of two embodiments of the present invention is shown. At lower SNR, reference, scheme 1 and scheme 2 all represent nearly identical detector peak power values. However, it is contemplated results of power management schemes 1 and 2 may reveal a significant reduction in normalized detector peak power requirements at higher SNR near the 16.35 range. 
         [0048]    Referring to  FIG. 10 , a graph of Normalized Decoder Peak Power over SNR representative of two embodiments of the present invention is shown. Decoder peak power may follow nearly the same progression as detector power above. It is contemplated reference, scheme 1, and scheme 2 may follow the nearly identical path at lower SNR. At higher SNR, however, a significant power reduction may be realized by system  100  using scheme 1. 
         [0049]    Referring to  FIG. 11 , a flow diagram of a method for accurate prediction of sector failure in accordance with a preferred embodiment of the present invention is shown. Method  1100  may begin, at step  1102 , by performing a satisfaction check on at least one sector, at step  1104 , receiving an indication of a satisfied check, and, at step  1106 , receiving and storing an indication of an unsatisfied check. Method  1100  may continue by, at step  1108 , storing a location of the unsatisfied check and a number of unsatisfied checks, for each one of a plurality of local iterations, and, at step  1110 , storing the location of the unsatisfied check and the number of unsatisfied checks for each one of a plurality of global iterations, one global iteration being equal to 10 local iterations, and, at step  1112 , analyzing the number and location of the unsatisfied checks between a first global iteration and at least one other global iteration. Method  1100  may continue by, at step  1114 , determining if a periodic pattern exists between the number and location of the unsatisfied checks in the first global iteration and number and location of the unsatisfied checks in the at least one other global iteration, and, at step  1116 , identifying, as the sector prone to failure, a sector having a determined periodic pattern. Method finally, at step  1118 , removes the identified sector from further use, and, at step  1120 , reports, to a user via a display, the number and location of the unsatisfied checks for the identified sector. 
         [0050]    It should be recognized that while the above description describes the concept of server driven de-duplication or server memory, the above description does not represent a limitation but merely an illustration. 
         [0051]    In the present disclosure, the methods disclosed may be implemented as sets of instructions or software readable by a device. Such software may a computer program product which employs a computer-readable storage medium including stored computer code which is used to program a computer to perform the disclosed function and process of the present invention. The computer-readable medium may include, but is not limited to, any type of conventional floppy disk, optical disk, CD-ROM, magnetic disk, hard disk drive, magneto-optical disk, ROM, RAM, EPROM, EEPROM, magnetic or optical card, or any other suitable media for storing electronic instructions. Further, it is understood that the specific order or hierarchy of steps in the methods disclosed are examples of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the method can be rearranged while remaining within the disclosed subject matter. The accompanying claims present elements of the various steps in a sample order, and are not necessarily meant to be limited to the specific order or hierarchy presented. 
         [0052]    It is believed that the present disclosure and many of its attendant advantages will be understood by the foregoing description, and it will be apparent that various changes may be made in the form, construction and arrangement of the components without departing from the disclosed subject matter or without sacrificing all of its material advantages. The form described is merely explanatory, and it is the intention of the following claims to encompass and include such changes.