PRIORITY 
       [0001]    The present application claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Application Ser. No. 61/989,154, filed May 6, 2014, which is incorporated herein by reference. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    Data storage device read channels have many parameters that require optimization. Interleaved one-dimensional sweeps and, to a lesser extent, limited two-dimensional sweeps are currently used to optimize read channels but an exhaustive sweep of parameters which are strongly correlated would be prohibitive. Better read channel optimization could be achieved if more parameters could be considered during optimization. Furthermore, noisy functions defining parameter values can produce sub-optimal results during a sweep. 
         [0003]    Consequently, it would be advantageous if an apparatus existed that is suitable for multi-dimensional optimization of read channel parameters by non-linear search. 
       SUMMARY OF THE INVENTION 
       [0004]    Accordingly, the present invention is directed to a novel method and apparatus for multi-dimensional optimization of read channel parameters by non-linear search. 
         [0005]    In at least one embodiment of the present invention, variations of the Nelder-Mead direct search method are employed to find read channel parameter settings in a discrete field having three or more dimensions. The three or more dimensions correspond to read channel parameters, at least some of which are highly correlated. 
         [0006]    The steps of the Nelder-Mead method are executed according to a methodology of one or more embodiments of the present invention to arrive at substantially optimal parameter settings for a read channel, even where a discrete function defining parameter outcomes is noisy. In some embodiments, dimensional collapse, considered inefficient in a two-dimensional field, is allowed in order to reach an optimal solution in a greater-than-two-dimensional field. 
         [0007]    Optimization according to embodiments of the present invention is more efficient with fewer steps than the prior art. Furthermore, in some cases, embodiments of the present invention arrive at superior channel settings as compared to the prior art. 
         [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 restrictive of the invention claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate an embodiment of the invention and together with the general description, serve to explain the principles. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0009]    The numerous advantages of the present invention may be better understood by those skilled in the art by reference to the accompanying figures in which: 
           [0010]      FIG. 1  shows a block diagram of a data storage system useful for implementing embodiments of the present invention; 
           [0011]      FIG. 2  shows a flowchart of channel optimization steps; 
           [0012]      FIG. 3A  shows a visual representation of a reflection processes executed according to the Nelder-Mead method; 
           [0013]      FIG. 3B  shows a visual representation of a expansion processes executed according to the Nelder-Mead method; 
           [0014]      FIG. 3C  shows a visual representation of an outer contraction processes executed according to the Nelder-Mead method; 
           [0015]      FIG. 3D  shows a visual representation of an inner contraction processes executed according to the Nelder-Mead method; 
           [0016]      FIG. 3E  shows a visual representation of a shrink processes executed according to the Nelder-Mead method; 
           [0017]      FIG. 4  shows a flowchart of a Nelder-Mead method implementation; 
           [0018]      FIG. 5  shows a perspective view of a three-dimensional field representing a function space corresponding to multiple dimensions of channel optimization parameters; 
           [0019]      FIG. 6A  shows a first side view, two-dimensional projection of the three-dimensional space of  FIG. 5 ; 
           [0020]      FIG. 6B  shows a top view, two-dimensional projection of the three-dimensional space of  FIG. 5 ; 
           [0021]      FIG. 6C  shows a second side view, two-dimensional projection of the three-dimensional space of  FIG. 5 ; 
           [0022]      FIG. 7  shows a flowchart of another method according to at least one embodiment of the present invention; 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0023]    Reference will now be made in detail to the subject matter disclosed, which is illustrated in the accompanying drawings. The scope of the invention is limited only by the claims; numerous alternatives, modifications and equivalents are encompassed. For the purpose of clarity, technical material that is known in the technical fields related to the embodiments has not been described in detail to avoid unnecessarily obscuring the description. 
         [0024]    Referring to  FIG. 1 , a block diagram of a data storage system useful for implementing embodiments of the present invention is shown. The storage system comprises a data storage element  104  connected to a processor  100 . The processor  100  executes computer executable program code stored in a memory  102  connected to the processor  100 . The computer executable program code configures the processor  100  to optimize read channels to the data storage element  104  according to embodiments of the present invention as described more fully herein. 
         [0025]    Referring to  FIG. 2 , a flowchart of channel optimization steps is shown. Read channels may be optimized by first optimizing the gain  200  of a variable gain amplifier, then the boost  202  and corner  204  of a continuous time filter, then any asymmetry  206  in the magneto-resistive head, then the scale  208  of digital finite impulse response, then a write precomp  210  control value and a target search  212  value, then TDT arguments  214 . After various parameters are optimized in a sweep, it is often necessary to re-optimize previous parameters within new constraints. Therefore, the boost  216  of the continuous time filter is re-optimized. Then any remaining parameters, such as DC loop update gain  218 , are optimized. Such sweeps are resource intensive. Multiple sweeps to optimize all values would be prohibitive. 
         [0026]    Referring to  FIGS. 3A-3E , visual representations of reflection, expansion, outer contraction, inner contraction and shrink processes executed according to embodiments of the Nelder-Mead method are shown. Nelder-Mead utilizes simple rules to find optimal values in a discrete field without gradient computations. 
         [0027]    In the Nelder-Mead method, a set of vertices in the field are organized according to a value defined by a discrete function. At each step, the worst vertex is replaced with a new vertex. The potential steps are illustrated. 
         [0028]      FIG. 3A  shows a representation of a reflection step where an initial field portion  308  is defined by a first vertex  300 , a second vertex  302 , a third vertex  304  and a fourth vertex  306 . The first vertex  300  being the worst as defined by a discrete function; a reflection vertex  310  of the first vertex  300 , and a corresponding discrete function value, are calculated. The reflection vertex  310  and the remaining vertices  302 ,  304 ,  306  define a reflection field portion  312 . 
         [0029]      FIG. 3B  shows a representation of an expansion step where an initial field portion  308  is defined by the first vertex  300 , the second vertex  302 , the third vertex  304  and the fourth vertex  306 . The first vertex  300  being the worst as defined by a discrete function; an expansion vertex  314  of the first vertex  300 , and a corresponding discrete function value, are calculated. The expansion vertex  314  and the remaining vertices  302 ,  304 ,  306  define an expansion field portion  316 . 
         [0030]      FIG. 3C  shows a representation of an outer contraction step where an initial field portion  308  is defined by the first vertex  300 , the second vertex  302 , the third vertex  304  and the fourth vertex  306 . The first vertex  300  being the worst as defined by a discrete function; an outer contraction vertex  318  of the first vertex  300 , and a corresponding discrete function value, are calculated. The outer contraction vertex  318  and the remaining vertices  302 ,  304 ,  306  define an outer contraction field portion  320 . 
         [0031]      FIG. 3D  shows a representation of an inner contraction step where an initial field portion  308  is defined by the first vertex  300 , the second vertex  302 , the third vertex  304  and the fourth vertex  306 . The first vertex  300  being the worst as defined by a discrete function; an inner contraction vertex  322  of the first vertex  300 , and a corresponding discrete function value, are calculated. The inner contraction vertex  322  and the remaining vertices  302 ,  304 ,  306  define an inner contraction field portion  324 . 
         [0032]      FIG. 3E  shows a representation of a shrink or reduction step where an initial field portion  308  is defined by the first vertex  300 , the second vertex  302 , the third vertex  304  and the fourth vertex  306 . The first vertex  300  being the worst as defined by a discrete function, but contracting away from the first vertex  300  leading to even worse discrete function values; only the best vertex, in this case the second vertex  302 , is retained and a reduced field portion  330  is defined by the second vertex  302  and new shrunken vertices  326 ,  328 . 
         [0033]    The steps described in  FIGS. 3A-3E  generally occur in a particular order to arrive at a desirable, substantially optimal function value in a two-dimensional field. 
         [0034]    Referring to  FIG. 4 , a flowchart of a Nelder-Mead method implementation is shown. A computer system that utilized the Nelder-Mead method for optimizing read channel parameters without modification would establish  400  an initial simplex of vertexes, each vertex selected at random in a multi-dimensional field. The initial simplex of vertexes would be sorted  402  according to the relative multi-parameter function value of the vertexes. Once the vertexes are sorted  402 , the computer system would produce a reflection vertex  404  to replace the vertex having the worst performance and determine  406  if the reflection vertex has better performance than the best performing vertex in the simplex. If the reflection vertex has superior performance to the best vertex, the computer system would produce an expansion vertex  410  and determine  412  if the expansion vertex is better than the reflection vertex. If the expansion vertex is superior, the worst vertex would be replaced  426  by the expansion vertex, otherwise the worst vertex would be replaced  426  by the reflection vertex. 
         [0035]    If the reflection vertex has worse performance than the best vertex, the computer system would determine  408  if the reflection vertex has better performance than the n th  vertex. If so, the worst vertex (n th +1) would be replaced  426  by the reflection vertex, otherwise the computer system would determine  414  if the reflection vertex is better than the worst vertex. 
         [0036]    If it is determined  414  that the reflection vertex is better than the worst vertex, the computer system would produce an outside contraction vertex  416  and determine  418  if the outside contraction vertex is better than the reflection vertex. If the outside contraction vertex is superior, the worst vertex would be replaced  426  by the outside contraction vertex, otherwise the observed field is shrunk  424  by replacing all but one vertex. The computer system would then re-sort  402  the vertexes and starts over. 
         [0037]    If it is determined  414  that the reflection vertex is worse than the worst vertex, the computer system would produce an inside contraction vertex  420  and determines  422  if the inside contraction vertex is better than the worst vertex. If the inside contraction vertex is superior, the worst vertex would be replaced  426  by the inside contraction vertex, otherwise the observed field is shrunk  424  by replacing all but one vertex. The computer system then re-sorts  402  the vertexes and starts over. 
         [0038]    A person skilled in the art may appreciate that utilizing the Nelder-Mead method for multi-dimensional read channel optimization without modification is likely to produce sub optimal results. For example, in multi-dimensional optimization, dimensional collapse may be desirable. 
         [0039]    Referring to  FIG. 5 , a perspective view of a three-dimensional field  500  representing a function space corresponding to multiple dimensions of channel optimization parameters is shown. The three-dimensional field  500  includes a plurality of randomly selected vertexes  502 ,  504 ,  506 ,  508 . The function space of the three-dimensional field  500  corresponds to a discrete, continuous read channel function correlating multiple read channel parameters into a read channel performance. Such read channel functions are often noisy. Embodiments according to the present invention are operative even for noisy read channel functions. 
         [0040]    The initial randomly selected vertexes  502 ,  504 ,  506 ,  508  are selected to be sufficiently widely spaced so as to allow vertexes  502 ,  504 ,  506 ,  508  to be removed and replaced to arrive at a substantially optimal performance. 
         [0041]    Referring to  FIGS. 6A-6C , two-dimensional projections of the three-dimensional space of  FIG. 5  are shown.  FIG. 6A  shows a side view, two-dimensional projection of the three-dimensional field of  FIG. 5 ;  FIG. 6B  shows top view, two-dimensional projection of the three-dimensional field of  FIG. 5 ; and  FIG. 6C  shows another side view, two-dimensional projection of the three-dimensional field of  FIG. 5 . The methods described herein are generally performed on two dimensional projections of higher dimensional field spaces such as the three-dimensional field of  FIG. 5 . Where variants of the Nelder-Mead method are used according to the present invention, vertexes  502 ,  504 ,  506 ,  508  in a multi-dimensional field are sometimes replaced so as to allow dimensional collapse wherein some vertexes fail a collinear test in one two-dimensional projection to allow continued advancement of the search process. 
         [0042]    Referring to  FIG. 7 , a flowchart of another method according to at least one embodiment of the present invention is shown. In at least one embodiment, a computer system for optimizing read channel parameters establishes  700  an initial simplex of vertexes, each vertex selected at random in a multi-dimensional field. In the context of the present invention, a computer system may comprise a processor and firmware in a data storage device. The multi-dimensional field comprises discrete values defined by a multi-parameter function. Various of the multiple parameters are correlated. The initial simplex of vertexes should define a sufficiently large portion of the multi-dimensional field to capture an optimal value and allow latitude for manipulation of the simplex of vertexes without collapsing certain dimensions of the simplex. 
         [0043]    The initial simplex of vertexes is sorted  702  according to the relative multi-parameter function value of the vertexes. The multi-parameter function value defines the performance of the read channel at discrete, continuous multi-parameter values. Once the vertexes are sorted  702 , the computer system produces a reflection vertex  704  to replace the vertex having the worst performance. The reflection vertex in a system of n+1 vertexes is defined by: 
         [0000]        x   r =1/ n (sum( x   i ))+α(1/ n (sum( x   i ))− x   n+1 )
 
         [0000]    The computer system then determines  706  if the reflection vertex has better performance than the best performing vertex in the simplex. If the reflection vertex has superior performance to the best vertex, the computer system produces an expansion vertex  710 . In at least one embodiment, the expansion vertex is defined by: 
         [0000]        x   e =1/ n (sum( x   i ))+β( x   r −1/ n (sum( x   i )))
 
         [0000]    The computer system then determines  712  if the expansion vertex is better than the reflection vertex. If the expansion vertex is superior, and if the computer system determines  730  replacing the worst vertex will not cause dimensional collapse, the worst vertex is replaced by the expansion vertex, otherwise, if the computer system determines  730  replacing the worst vertex will not cause dimensional collapse, the worst vertex is replaced by the reflection vertex. 
         [0044]    If the reflection vertex has worse performance than the best vertex, the computer system determines  708  if the reflection vertex has better performance than the n th  vertex. If so, and if the computer system determines  730  replacing the worst vertex will not cause dimensional collapse, the worst vertex (n th +1) is replaced by the reflection vertex, otherwise the computer system determines  714  if the reflection vertex is better than the worst vertex. 
         [0045]    If it is determined  714  that the reflection vertex is better than the worst vertex, the computer system produces an outside contraction vertex  716 . In at least one embodiment, the outside contraction vertex is defined by: 
         [0000]        x   oc =1/ n (sum( x   i ))+γ(γ( x   r −1/ n (sum( x   i )))
 
         [0000]    The computer system then determines  718  if the outside contraction vertex is better than the reflection vertex. If the outside contraction vertex is superior, and if the computer system determines  732  replacing the worst vertex will not cause dimensional collapse, the worst vertex is replaced by the outside contraction vertex. 
         [0046]    If it is determined  714  that the reflection vertex is worse than the worst vertex, or replacing  732  the worst vertex with the outside contraction vertex causes dimensional collapse, the computer system produces an inside contraction vertex  720 . In at least one embodiment, the outside contraction vertex is defined by: 
         [0000]        x   ic =1/ n (sum( x   i ))−γ( x   r −1 /n (sum( x   i )))
 
         [0000]    The computer system then determines  722  if the inside contraction vertex is better than the worst vertex. If the inside contraction vertex is superior, and if the computer system determines  734  replacing the worst vertex will not cause dimensional collapse, the worst vertex is replaced by the inside contraction vertex. 
         [0047]    If the inside contraction vertex is not better than the worst vertex, the inside contraction would cause dimensional collapse or the outside contraction vertex is not better than the reflection vertex, the best vertex is expanded  724 . If expanding  724  the best vertex does not cause dimensional collapse  726 , the vertexes are re-sorted and the process continues. If expansion  724  does cause dimensional collapse, the observed field is contracted  728 . If contraction  728  does not cause dimensional collapse  736 , the contracted vertexes are re-sorted and the process continues. If contraction  728  does cause dimensional collapse  736 , strict dimensional constraint  738  is employed, as compared to loose dimensional constraint, and dimensional collapse is allowed 740. The process then continues with the worst vertex being reflected 704. Loose dimensional constraint enforces a collinear criteria in each two dimensional projection; strict dimensional constraint enforces a collinear criteria only in each pair of two dimensional projections. 
         [0048]    Scaling factors α, β, γ, depend on certain factors of the multi-dimensional field. In at least one embodiment, by default. 
         [0000]    
       
         
           
             
               { 
               
                 α 
                 , 
                 β 
                 , 
                 γ 
               
               } 
             
             = 
             
               { 
               
                 1 
                 , 
                 2 
                 , 
                 
                   1 
                   2 
                 
               
               } 
             
           
         
       
     
         [0049]    Dimensional collapse restrains the availability of certain parameters to be varied going forward, so dimensional collapse is generally undesirable. However, in a greater than two-dimensional field, dimensional collapse allows the process to continue without shrinking the observed field which has limited utility. 
         [0050]    In at least one embodiment, the process continues until a threshold performance is reached. In another embodiment, the process is limited to a threshold number of iterations. 
         [0051]    The proposed algorithm has been proved that work well on drive optimization in up to four-dimension space. 
         [0052]    It is believed that the present invention and many of its attendant advantages will be understood by the foregoing description of embodiments of the present invention, and it will be apparent that various changes may be made in the form, construction, and arrangement of the components thereof without departing from the scope and spirit of the invention or without sacrificing all of its material advantages. The form herein before described being merely an explanatory embodiment thereof, it is the intention of the following claims to encompass and include such changes.
Variations of the Nelder-Mead direct search method are employed to find read channel parameter settings in a discrete field having three or more dimensions. The three or more dimensions correspond to read channel parameters, at least some of which are highly correlated. The steps of the Nelder-Mead method are executed according to a methodology to arrive at substantially optimal parameter settings for a read channel, even where a discrete function defining parameter outcomes is noisy. In some embodiments, dimensional collapse, considered inefficient in a two-dimensional field, is allowed in order to reach an optimal solution in a greater-than-two-dimensional field.