CLUSTERING FOR DATA COMPRESSION

Abstract: An improved profileometry data collection and analysis system employing software that performs clustering analysis on library data stored in memory that represent semiconductor chip wafer profiles, for use in matching real-time data signals from data collected by profileometry instruments. To better perform a match in real-time between the incoming real-time data signals and the profile library data into clusters, and to extract representative cluster data points of the clusters. The representative of the clusters are stored in primary memory (e.g. RAM), while the data forming the clusters are stored in secondary memory (e.g., a hard drive). A real-time data signal is then first compared to the representative cluster data points, and when a match is made with a particular representative cluster data point, the cluster associated with the representative cluster data point is loaded from secondary memory into primary memory. Next a further search is made wiht the incoming real-time data signal to find the closest match to the data in the cluster. In this way the entire library data does not have to be searched sequentially, and the entire library does not have to reside in primary memory in order to be quickly searched, which both conserves time and primary memory. Techniques are disclosed to further refine special cases of points residing on teh bondary of the cluster. In a preferred embodiment, the partitioning method for the cluster is based ont eh T. Gonzalez algorithm.

Description: CLUSTERING FOR DATA COMPRESSION Field of Invention Invention relates to profileometry in the field of non-destructive measurement [ of wafer layers in the basic wafer-fabrication operations of layering, patterning, doping- and . heat treatments. Background of Invention A relationship exists between the physical and optical properties of aft IC device and the information from light shined on the IC device by instruments- such as an ■;. \- . ellipsometer and a scatterometer. The physical and optical, properties of a. wafer- are .. highly sought after by chip manufacturers, since microchip fabrication machinery, can be tuned and optimized once these parameters are known, preferably through nqn- destructive techniques that operate in real time. Unfortunately, during wafer fabrication tremendous quantities of data, are produced that cannot readily be used by a chip manufacturer to control processes in real-, time. The present invention addresses the concern of quickly taming raw data into information in microchip fabrication, using cluster analysis, a technique of multivariate . analysis that creates degrees of association between items and the groups assigned to the items. Summary of Invention The invention resides in providing a profileometry system with software that provides for cluster analysis to match incoming real-time data signals collected frorn profileometry instruments, such as an ellipsometer or scattero eter, with a library of .data stored in computer memory. The library data is first represented by clusters, having cluster representative data that is stored in primary memory while the clusters- are: stored in secondary memory. The incoming.real-time data is initially matched with, the chaster representatives in primary memory to find the closest matching cluster representative. When a match is found, the cluster associated with the cluster representative hayingthe closest match is loaded from secondary memory to primary memory. This tectøaiqti avoids the excessive disk thrashing found in prior techniques. The invention m,ak:©s/ further use of the observation that in chip fabricatiori by and large data, frpi- . f s pi-ig instruments is often mathematically continuous. In a preferred embodiment, the heuristic min-max algorithm of T. G nzalezfis . used as the preferred clustering and partitioning method. Furthermore, various refinements are introduced, such as to account for special cases of borderline matches. In sum, the advantages of the present invention are, in one preferred embodiment, manifold. First, the number of comparisons that have to be made for each incoming signal significantly reduces from 400K comparisons to less than 1GK comparisons. Consequently, there is achieved an improvement in speed by at least 40 times. This can be achieved by selectively comparing only those signals associated with clusters of the best matched cluster representatives. Second, in the absence of enough RAM to load the entire library.— which is often the case — the present invention exploits an important aspect of process control systems: the variability of incoming signals, under similar conditions, is small during a certain period of time. This aspect suggests that during a , certain period of time the best matches for all the incoming signals can be found in only a subset of clusters. Thus an incoming signal is most likely to find its best match in the data that is already residing in RAM. This significantly reduces the number of swappk-gs that take place during any given period of time. Furthermore, ; since the amount of .data that needs to be swapped is a small fraction of the entire size of the data of the library, the time elapsed due to swapping from hard drive to RAM is negligible, and hence, th time, elapsed due to matching mcoming signals to library signals is not that, affected. Brief Description of Drawings FIG. 1 is block diagram view for the profileometry system implementing .the , present invention. FIGS. 2(a) and (b) are simplified views of a vector field representing, . profileometry signals, and a two-dimensional cluster map of such points . FIG. 3 is a top ley el flowchart of a preferred method of clustering for the present invention. FIG. 4 is a top level flowchart of a preferred method of partitioning data using the technique of clustering. FIGS. 5(a) - 5(c) are simplified two-dimensional. graphical views of a set ' of data points that are partitioned using a preferred method of clustering. FIG. 5(d) is a close-up of a portion of FIG. 5(c) illustrating the problem of a "borderline match". Detailed Description of Preferred Embodiment(s) FIG. 1 is block diagram view for the profileometry system implementing the present invention. A computer system 1-10 having a processor l-20,.ruήning the ■ ', software program of the present- invention, cooperates with primary men-iory (Ϊ.ei,-R-AM) 1-30, secondary memory (i.e., a hard drive) 1-40 and a plurality of I/O devices 1-45, such electron microscope (TEM), spectrometer (SEM-EDX), or the like, which preferably are real-time measuring instruments, such as an ellipsometer and scatterometer, Ihat'cQltect incoming data, such as scattered or reflected wavelength, in real-time. The data .s correlated with library data to ascertain features of interest in die fabrication, such as grain size, profile contours, critical dimension (CD), film layer thickness, and the like. The computer system of the present invention preferably collects incoming real- time data signals from non-destructive profileometry instruments 1-55, and stores the incoming real-time data signals in primary memory (e.g., RAM), in a format such as a ' multi-dimensional vector to allow for comparison with library data in the same format. This incoming real-time signal data is then compared against data from a library stored in memory, indicated conceptually in FIG. 1 as the data 1-60 in RAM, in order to find a match between the incoming real-time data and the library data. When a match is made between the incoming real-time data signals collected by the profileometry instruments and the library data stored in RAM, an operator of the present invention knows that the characteristics associated with the library data are also associated, with the incoming realtime signal data collected. These characteristics are used to calculate cross-sectional reflected li it shined on the IC device by instruments, such as, an ellipsόmetei',^ In prior techniques, however, there are potential problems associated' wit orin and comparing large amounts of profileometry data, which this invention addresses. One problem s the sheer number of comparisons that have to be made between data points collected from instruments and data in the library to find a best match. Thus it is not uncommon to have library data comprising 400,000 library profiles that have to be matched to incoming data to find a best fit. It would be expensive to try and have enough RAM in a computer in order to load all of this library data into RAM, and in some systems it may not be possible to configure a computer system with that much RAM. Each incoming real-time data signal collected by a typical wafer test and evaluation instrument, such as a ellipsometer, is a broadband signal that can be composed of over one-hundred components such as wavelengths. To ensure a.more perfect match between incoming real-time data collected and library data, a sufficiently large library of data needs to be stored, presently up to 1. GB in size but in theory having no limit. It is envisioned that in the future even greater amounts of data may be collected, and several libraries of stored signal data may be employed, which creates a f rther potential bottleneck when using prior techniques to match this data. Finally, yet another reason RAM is employed to store library data is that inco i g data, collected from instruments have to be matched to library data in real-time, since microchip fabrication apparatuses are best adjusted in real-time. Having to store library that have to be made, since library data has to be moved from secondary to primary memory. At some point it becomes economically unfeasible to employ a suffiøientlyξ arge amount of RAM to store all the library data associated with profileometry. Thi-?re *r r e,ihe library data has to be stored on a hard drive, and the data is swapped into and out of RAM whenever the computer program calls for it. This kind of "virtual memory" has the disadvantage of being slow, since processor communication with I O transfer processes is typically several orders of magnitude slower than communication with RAM. . Consequently, excessive disk thrashing may occur between RAM and the hard drive, as a program attempts to find the best match between the incoming real-time data collected and library data stored, creating a bottleneck. To address this problem, the present invention employs, inter alia, a clustering technique that creates clusters from library data, initially loads only the representatives of the clusters into RAM, performs an initial match with incoming real-time data to these cluster representatives, and only then loads the clusters associated, witi-i.the.clpsest.. ■ matching cluster representative from the hard drive into RAM to complete the seiarcfrj thereby reducing potential disk thrashing. Thus the present invention seeks to employ clustering to minimize the number of comparisons and matchings that have tσtakeplaøe . between real-time data and library data, while at the same time .guar-mteeihg; a.he;sfcώatch between real-time data and library data. components, such an n-tuple), as illustrated in vectors 2-A-10. Each vector ha& apturality of components, in this example three components, the X, Y and Z; components,. -.In FIG.. 2(a), for illustrative purposes only, a number of three-dimensional vectors having three components (X,Y and Z) are shown. In practice, the incoming real-time profileometry signal (which may also in principal be a signai that was recorded in real-time but stored for later analysis) is represented by a vector of a much higher order than three, i.e., a n- dimensional vector, or equivalently a sequence of numbers of length n (e.g., an n-tuple of numbers), where n is a positive integer; usually denoted by a sequence {mi, ma, • . . . , m n } , or similar notation. Presently, the vector describing both the incoming real-time data signal collected from profileometry instruments and for describing the stored library data is a vector parameterized or composed of up to 106 components (e.g., {Xo, Xi, ...X n }, where n=105 in one preferred embodiment). Thus both the library data set and the incoming real-time data signals are represented in the same format. Presently each component (e.g., Xn ) of the multi-dimensional vector is represented, by numbers in computer memory. Up to 400,000 signals are presently stored inmerήpry and collected by profileometry instniments, with each signal having up to -106 c ponents (which can also be signals such as wavelengths), which requires over 42 miffi >n r | tiible precision bytes of memory. Typically the best fit is found by statistical techniques such as a Euclidean distance, or .. "least squares" fit. A range of matching library, data vectors that best match the incoming , real-time data signal vector may also be found. - Turning attention to FIG. ' 2(b), there is shown a two-dimensional colleetion of data points, which can be thought of as the projection of the three-dimensional vector of Fig. 2(a) onto one plane, such as the X,Y plane. A collection of points is formed, such as points 2b-10, 2b-20, 2b-30, 2b-40, 2b-50 and 2b-60, and all data points within the circles 2b-100, 2b-110, 2b-120, 2b-130, 2b-140 and 2b-150, respectively, formed by these points, which collectively may be termed a data set of N items. By inspection it can be seen that the points appear to cluster in groups (e.g., the points within the circles), i.e., "clustering". In the present invention, with the 106 component n-dimensional vectors used in profileometry, such clustering occurs in higher dimensional space and cannot. readily be depicted graphically. One way to physically rationalize the phenomena of clustering is to note that data collected from wafers during fabrication is, by and large, mathematically "continuous", in that data collected at a point in time "t" is similar to data collected at some smalViriterval of time earlier, "t-Δt", as well as data collected at some small interval of tim liateg..'_ 1 t_ - Δt". One possible reason for clustering may be that the chemical and mechanical. ■■ processes forming the wafers tend to vary the wafers in a continuous manner.. Regardless of the physical basis for clustering, if one. identifies the clus eiϊϊgόh Sj such as 2b-100, 2b-l 10, 2b-120, 2b-130, 2b-140 and 2b-150 in FIG. 2(b), theή a ■ ; representative cluster data center point from each cluster group can be selected.. In FIG. 2(b), the representative cluster data center point could be the geometric average pi-M&e, group, or conceptually, the center point of the circles shown in FIG. 2(b)), sucl'as center, data points 2b-10, 2b-20, 2b-30, 2b ^ 40, 2b-50 and 2b-60. Each of these representative cluster data points from each cluster group are stored in RAM memory; then, as each incoming real-time data signal is received, the data signal is compared to the representative cluster data points from each cluster group. The closest match is found between the incoming real-time data signal and the representative cluster data points from each cluster group in RAM. Once the closest match is found, the appropriate cluster (i.e., the set of particular data associated with the representative cluster data point) associated with the particular representative cluster data point (i.e., the cluster center) is loaded from the hard drive into RAM, and a second search for a match is performed to find the closest library data vector within this cluster to the particular incoming real-time data βighal vector. The advantage of the present invention over prior techniques is that rath i an point, and only then swap from the hard drive into RAM those members of the cluster group (or cluster groups, since for "borderline match" cases, sometimes more than one clustergroup has.to be considered) -associated wit t ιe .(^ s st representative cluster data point found to the incoming data point. The members of the cluster group thus found are a smaller set that the entire set of library data points.- Thus the technique of the present invention speeds up the search for a bestmatch, as well as . ' ■ ). conserves RAM. Notwithstanding the above, it should be noted, however, that the present invention would also work with a computer system that is comprised entirely of RAM. The present invention thus does not need to employ swapping of data to and from primary and secondary memory. To illustrate using the simplified two-dimensional space of FIG. 2(b), suppose that an incoming real-time data point, a signal S, is identical to data point 2b-12 that is a member of the cluster group 2b- 100, which has a representative cluster data point center 2b-10. The signal S would be compared by the software program of the present invention to each of the representative cluster object data point centers, 2b-10, 2b-20, 2b.-3.0y 2b 40, 2b-50 and 2b-60, which are stored in RAM, of the clusters 2b-l 00, 2b- 110, 2b-1.20, 2b- 130, 2b-140 and 2b-150, whose associated library data members are stpred in the hard into RAM. Conceptually, the library data members of the cluster 2b- 10 woul ;b^lihe, points inside the circle 2b-100. As can be seen by inspection, this collection p£,da|a is a mere subset of all the points shown in FIG. 2(b). The search would then continue; for the closest match between the signal S and the data of cluster 2b- 100, which in . this example . would be point 2b- 12. Once this match is found, the search is terminated. neither extensive virtual memory nor a time consuming search of all the data points in the stored library has to be employed. Thus, turning to FIG. 3, a top-level flowchart of the present invention is shown. The software tool of the present invention may be written in any computer language and run by a general purpose computer system, having a processor(s), primary and secondary memory cooperating with the processor(s), and I O means such as monitor, mouse, keyboard, and data collecting instruments of the kind used in profileometry; or any specialized hardware or firmware. Preferably the computer has ample primary. and * secondary memory storage, as the library data of profiles can be quit large in size, Depending on the language used to construct and implement the software (which could be . any language, such as C, C++, Perl, Java or the like), the software may have.sdtiy number of classes, functions, objects, variables, templates, lines 6f cpde ppiti ! Onsf. > (eode and constructs (collectively and generally, "a process step", "step", "block", ''software process", "functional module" or "software module") to carry out the invention; in* successive stages as described and taught herein, and may be either a stand-alone software application, or employed inside of or called by another, software application; . . The software process or software module may be constructed so that one portion. o .code in the application performs a plurality of functions, as for instance in Object Oriented- programming (e.g., an overloaded process). The converse is also true, in that a lutέlity of portions of code could perform a plurality of functions, and still be functionally the same as a single portion of code. At any stage of the process step of the present invention, intermediate values, variables and data may be stored for later use by the program. . Thus turning to FIG. 3 there is shown a software module process step 3-10, where the program of the present invention forms, from the set of all the data points cpnstituting . a library of profile data, two or more clusters of the data, preferably . through the technique of non-hierarchical partitioning, and calculates representative cluster profile data (Le.t, cluster representatives) from the library data set for each of the clusters, as described further herein in connection with FIG. 4 and in the method of T. Gonzalez, as. referenced in the journal article by T. Gonzalez, "Clustering to Minimize the Maximum Inter cluster Distance", Theoretical Computer Science, Volume 38, pp. 293-306, (1985), incorporated by reference herein. The computer then loads the cluster representatives into RAM, while φ clusters (i.e., cluster library groups) themselves are stored on the hard drive. While initially the computation, of cluster representatives is time intensive, in the Ipng rim h© overall prpgram allows for faster execution of profile matching with real-time data sip^ails arid conserves tihe use of primary memory. Because of the lengthy time needed oφ^ øi the computation of clusters and cluster representatives, the computation is perfόrrne before the start of collecting real-time data from the profileometry instruments. instruments, such as ellipsometers, and forms a multi-component vector representing this data. Though in fact the signals are "real-time", since interpretation ofttøs data.iii realtime is of importance in semiconductor fabrication, in theory the signals may also be collected at a previous time and stored, thus the phrase "real-time data" can also include such time-shifted batch data, and generally stands for actual data collected by instruments used in profileometry, or more generally, wafer fabrication. Typically these real-time data are optical broadband signals involving multiple wavelengths, with the real-time data each represented by a vector or n-tuple of over 100 components. In software module process step 3-30, the program enters a loop where the realtime signal data are compared with the representative cluster library data from step 3-20, in order to find the closest match. In software module decision block 3-40, the program checks to see if the real-time signal is a potential "borderline match" with the representative cluster profile data center point, as explained further herein. A "borderline match" is generally clόseto the boundary of the cluster represented by a cluster representative, or, in the case.ό aMgher order sphere, close to the boundary band defined by the radius R of the sphere, where R is the cluster radius Euclidean distance from the representative cluster profile d^ta cente point. In the special case of a "bprderline match", as explained ftirtlier in coήnόcftdή.with the example of Fig. 5(d), the closest match with the real-tim data signal may i T^t-le . within an adjacent cluster(s), which lies within a distance 2*(R+D), where D is.fhe ; distance between the signal and the closest representative match, andl vhich, loaded into RAM along with the .cluster associated with the cluster indicated by software module box step ,3-50. To define how close to the boundary' of a cluster the real-time data signal can be before triggering a "Yes" (TRUE) for the deelsion box 3-40, one can arbitrarily select that the decision box will be/triggered as a.f ds" ; (TRUE) whenever the Euclidean distance (defined further herein) between the re time data signal and the closest cluster representative found to the real-time data signal falls between the boundary band of R and R-ε, where R=radius of the cluster and ε = epsilon, some small margin of error. Thus, for such "borderline match" cases, the clusters that lie within 2*R of the real-time signal band are loaded into RAM, as shown by step 3-50, and the program continues to software module step 3-70. Otherwise, if a "No" (FALSE) is triggered in decision box 3-40, the program passes control to software module step 3-60, where the cluster library group "associated with the closest representative cluster data center point is loaded from the hard- drive into RAM. Next, in- software module process step 3 -70, the program, makes a seeped . comparison, this time between the real-time signal and the.chιster(s) of profile library data associated with the cluster representative calculated in step 3-50 Pr step 3-60 The closest match is found (or closest matches, as it may be advantageous to find a range of closest matches rather than a single closest match), and control is passed .to softwafέ. ' . module decision block 3-80, where if there are no more signals to analyze, me ' prpgta-tήis : ended in step 3-90, otherwise, the program returns to step 3-30 and repeats. Turning attention now to FIGS. 4 and 5, FIG. 4 is a high level flowchart illustrating the method of the preferred clustering technique of the present invention; while FIGS 5(a)-(d) illustrate the clustering graphically for a simplified two-dimensional data set. In a preferred embodiment the clustering method for the present invention is the method known as the T. Gonzalez algorithm, referenced in T. Gonzalez, Clustering to Minimize the Maximum Intercluster Distance, 38 Theoretical Computer Science 293, 293-306 (1985), incorporated by reference herein. There are many different methods of clustering data in any set of data points, any of which can be used in the present invention. The T. Gonzalez algorithm is a preferred method of clustering by partitioning because it has several advantages over other techniques. For one, the preferred T. Gonzalez method of clustering is a. non-hierarchical method of clustering known as-, partitioning, where a given set of data points is partitioned into several unique sets .of cluster groups represented by a cluster representative point, and where there is no overlap of clusters (i.e. a data point does not belong to two cluster groups). The partition is Si (where 1 < i < K, with K=the partition size, the maximum number of sets that lite- original set S will be partitioned into, and assuming the original set will be entirely partitioned into sets {S ls S 2 ,...Sκ}) minimize the maximum radius formed, by e . representative cluster data point of any cluster of set Si." In general, to find what each of the K representative points are, and. to find the optimal "maximum radius" for the above min-max rule, is a so-called "N-P hard" problem, a difficult computational problem. The advantage of the so-called heuristic T. Gonzalez algorithm to solving the above min-max partition problem is that it has been shown that if an optimal solution, OPTI(i), to the N-P hard min-max clustering partition problem above exists, and has a optimal radius Rom, then the T. Gonzalez algorithm will yield a radius R SU b-o P ti that is no more than two times the optimal radius R o m- This is . significant since the further from the optimal radius that a data set is partitioned into clusters, the greater the potential for unrepresentative clustering and errors to occur. In addition, the T. Gonzalez algorithm has the advantage of being nearly a linear, process for computational resources and for time, or O(k*N), where k = number of clusters, so that if it takes a given number of computer clock cycles or steps foj: N inputs to be. splyed using the T. Gonzalez algorithm, then to solve twice as many inputs: generally takes - twjόe the time, and four tirnes as many inputs only takes four times as much time, rather tiiaii a non-linear sequence as with some clustering techniques. Finally, the T. Gonzalez algorithm for min-max clustering has been found to converge to ia solution faSlyiquickly, However, though the non ^ -hierarchical partitioning method of clustering is employed in a preferred embodiment of the invention according to t e metljpd.,b .. Gonzalez, in general any clustering method may be employed using the, teae itgs j p the: : present invention, such as single link (including the SLINK nd. jhinimal tiee;Spanniήg , algorithms), complete link, group average link, Noorhees algorithm for group : ayέra;ge .. link, and Ward' s method (including the reciprocal nearest neighbor algorithm -for Ward' s method). . FIGS. 5 (a) to 5(c) graphically illustrate the T. Gonzalez algorithm in two - dimensional space. Thus FIGS. 5(a)-(c) show a data set, a collection of a set of points (the black dots in FIGS. 5(a) to 5(c)), such as library data representing data that potentially matches real-time signals captured with profileometry instruments, and with each point represented as vectors. The data set points are represented in two-dimensional space for exposition purposes, since in fact the data is typically of a much higher order, such as the 106 component dimensional vector mentioned above. As illustrated generally in the flowchart of FIG. 4, there are two principal steps . - . " associated with the T. Gonzalez algorithm in determining how to cluster the data. The first is determining what representative cluster data points will be selected, which are defined by a partitioning rule; the second is assigning all the data to these particular representative cluster data points, thus forming a cluster. Assume that the original data set, S, referenced as 5-a-100 in FIG. 5(a$. <-fc ~ comprising all the data points, shown as black dots in FIG. 5(a), is to be "clustered- ύr divided into a plurality of sets of an integer number K, the partition s e., Assuh-ιe : he •? clustering will be hon-hierarchieal, in that each data point wiirbeϊong÷tα aιu Ue' e nster, and no one data point will belong to two or more clusters. Assume a priori t-b-at K 3 sets, that is, the entire data set of points will be divided into three clusters. Note that for ariy such cluster the minimum size for K equals K = 1 set (an extreme condition; " asiit wpul t . be pointless for K to equal one, the original undivided entire set of data points), while the maximum size for K equals the total number of data points (the black dots in FIGS 5(a)- (c)), which also is an extreme condition. Regarding the optimal size of K in such a cluster, there is literature in clustering theory on choosing the optimal size K, where top small a size of K would leave the sets too "granular" or coarse, while too large a size of K would result in excessive computation. Furthermore, it is possible to graph the value of K versus computational time or computational resources, and it can be noticed by inspection what value of K is optimal. Selecting the partition size K for the n- dimensional data space (n=2 in FIGS. 5(a)-5(c)) is performed in software module step 4- 10 in FIG. 4, and may rely on human input. Turning now to a brief description of nomenclature, the higher-dimensional vector nature of the data points of the set S will now be described. Giyen a Euclidean n- . dimensional space, and a multidimensional vector in that space, having n-tuples or. unit •' vectors describing it (e.g., unit vectors <i, j, k, ... n>), a arbitrary; point "X" irithe i. dimensional space can be represented by a vector, having scalar components ( i Xz, X3 5 ... x n } along the unit vector directions, (e.g., <i, j, k,...n>), where "xi" is the scalar.. component of the multidimensional, vector along one of the unit vectors (e g ■ , ; ^e'•^. unit vector, commonly called the 'x' direction when dealing withithree dimension!?^;, ς % ". is the scalar component of the multidimensional vector along a second.unit vectpt,;(e?gi thφ- called the 'z' direction), and so on, with "x„" designating the last scalar component..pf the multidimensional vector along the J'n" (last) unit vector. Thus, for the coordinate description a given point "X" can be designated by a multidimensional vector ^ iϊϊ J hyper dimensional N-space, can be given as < - ' == < X j , X , x ... x„ > A second point "Y" can be designated by a multidimensional vector <Y> likewise as: <y> = <yχ , y 2 > y 3 - - . y„ > Turning again now to FIG. 4,the software module 4-20 is the next step after step 4-10, where the program calculates Euclidean distances between data points, in the set S 7 and may store the data thus calculated in an output file 4-30 for later use. The Euclidean distance (E.D.) between points "X" aid "Y" in multi-dimensional space can be represented by the vector difference E.D.γχ = <Y> - <X> , or, E.D. = (y, - χ l f χ (y2 -^f +{y i -* 3 ) 2 +»-+ ' ( » ~ » 2 . ' :• As can be seen for the simple case of two dimensions, the • equation collapses to the familiar form for distance between, two .points i a lane. , ' Once Euclidean distances are calculated for the points, representative.dat-ϊ, oints for each cluster partition are chosen to satisfy the following rule, which may be" fe ned! . the T. Gonzalez partition min-max rule. T. Gonzalez Partition Min-Max rule: For any representative cluster data points in a set Si (where 1 < i < K, with KHhe partition size, the maximum number of sets that the original set S. will be partitioned into, and assuming the original set will be entirely partitioned into, sets- {Si, , . A S 2 ,.. -SK}) minimize the maximum radius formed by the representative cluster data point of any cluster of set Si. . As described in connection with FIGS. 5(a)-5(c), what this means graphically is that representative cluster data points (the 'centers' of the circles, e.g., see FIG.2(b)) of any cluster (the "circles" themselves, and the points therein), form circles of equal radius and do not touch each other. In two dimensional space this is somewhat loosely analogous to the patterns formed when equal sized soap bubbles crowd together on a surface of a cuμ of water by action of surface tension forces. Graphically, in FIG. 5(a) the likely candidate data points for representative cluster data points that would satisfy the T. Gonzalez criteria would be, for : K=2, the extreme end 5. . data points of the set, such as extreme data points 5-a-10 and 5-a-20. Another candidate might also be data point 5-a-30, which is also equidistant fr p m the other two data-points 5-a-10 and 5-a-20, but in the event of tie in the application of the rule,. one όif the two candidates may be arbitrarily chosen (e.g., the first candidate tha qualifies), 0 5 ro an numeral I (reference number 5-b-50) and cluster set roman numeral II (referέnce number 5-b-60), and all the points contained therein, which all belong to either the cluster set I, having representative cluster point 5-a-l 0 representing it, or the cluster set II, having the representative cluster point 5-a-20 representing it. Note that the circles for cluster sets I and II help define the representative cluster data points, and that points outside the 0 circles are nonetheless assigned to cluster sets I or II, depending on which representative cluster data point, 5-a-l 0 or 5-a-20, respectively, is closer in Euclidean Distance. ' In the event there is a point on the border that could belong to either clύsterj as for example points 5-b-l 12 in FIG. 5(b), the points may be arbitrarily placed in either of the two clusters. In FIG. 4, the processes corresponding to the above selection of initial cluster Typically, however, it has been found thai the algorithm of the T.: Gonzalez metho converges rapidly and has an error rate for the radius representative cluster data center point of no more than two times; the optimal radius"; In the software module of decision block 4-80, the software of the presen invention checks to see if the limit of K, the partition size, has been reached. In the example of FIGS. 5(a)-5(c), K=3, so the program would branch along the "NO" branch and repeat the loop at block 4-40, where another candidate representative cluster data point would be selected for a third cluster. This is shown graphically in FIG. 5(c), where the point that satisfies the T. Gonzalez partition min-max rule is data point 5-a-30, which happens to be spaced equally apart from the previous representative cluster data points 5- a-10 and 5-a-20. Each of these representative data points, 5-a-10, 5-a-20 and 5-a-30, have radiuses 5-c-l 000, 5-C-2000 and 5-C-3000, respectively, that form circles that abut one another, and divide the original set S (5 -a- 100) into three sub-sets or clusters;, designated as cluster set roman numeral I, cluster set roman numeral II and cluster set roman numeral III as shown. The clusters are separated by a boundary 5-C-333, and each of the three clusters are comprised of the data points (i.e., the black dots) found therein- As before, borderline data points to both clusters, such as data point 5τC-bord, may be assigned to either cluster. Furthermore, data points falling outside the circle formed by the representative cluster data points are nonetheless assigned to a particular cluster based on finding the shortest Euclidean distance from the data point in question to. nearby, i representative cluster data points, with the data point assigned to the. cluster r i i ή e • - by the closest cluster representative. Thus all data points of the priginal sefrS ;. 5rά-ΪQ0) . •• -. are assigned to a unique cluster. hi decision block step 4-80, assuming that the pre eter^ned,paϊ-titi ®|iz^h-ώ.; . been reached, the program branches to process step 4-90, whete pie data- set with each cluster is stored in secondary memory (e.g., the hard drive, 4-100) while the . representative cluster data points representing each cluster are stored in primary memory (e.g., RAM) for use by the program as taught herein. In software module process block 4-105, any optional computations can fee performed, such as, for example, computing, as discussed above, for each point lying in the boundary band of R and R-s, where R=radius of the cluster, D = the distance between the signal and the closest representative match from the boundary band, and ε = epsilon or some small margin of error, which clusters lie within 2*(R+D) distance from the points in this boundary band. This calculation could be used for bringing in additional clusters for any real-time signal data that falls as a "borderline match" in this band, by virtue of being the distance defined by this boundary band from the cluster representative. Software ■ module block 4-105 can also be used for error checking or other optional software, routines. Turning again to FIG. 4, assuming no further activity, the program ends in. step.4- 110. borderline band). To illustrate this phenomena graphically, for a simplifieφtwo dimensional case, consider FIG. 5(d), which is close-up of a portion of FIG: 5^c):^v re , the circles 5-c-100,.5-c-200, defining cluster sets I and II touch. Assume that air incoming real-time data signal can be represented by a point defined by data point 5D-10. By inspection, it can be seen that this real-time data signal point 5D-10 strictly speaking lies within the cluster set I. So if one were to match the real-time data signal point 5D- 0 . with the cluster representatives only, the cluster set I would be found as a match and a second search within the cluster set I would yield a point such as cluster point 5D-40 or 5D-41 as the closest cluster profile data point to the real-time signal data point 5D-10. Clearly, however, this is incorrect, as it can be seen by inspection that the closest match (smallest Euclidean distance) to real-time data signal point 5D-10 is one of the points such as 5D-20 or 5D-30, which lie within the cluster set II. Thus, whenever an incoming real-time data signal such as 5D-10 is sufficiently close to the border or boundary of a cluster set, as defined by some borderline band, a "borderline match" case o;cøufsj, and the- 5(c) this would include the clusters I, II and III for such "borderlin ' match-' ' :' ^'" c se^The- distance of 2(R+D) is chosen as a margin of safety, to insure all-potentiaϊ^^^^iϊts are considered, and another conservative margin of safety could also be chosen, M a . higher dimension space, there might be more than one or two clusters included wAl ^ such a distance. Further regarding the invention, though the clustering technique described herein employs as the preferred clustering algorithm the non-hierarchical clustering algorithm 1 known as the min-max T. Gonzalez algorithm, as referenced by T Gonzalez,; Cti nng : to Minimize the Maximum Intercluster Distance, 38 Theoretical Computer Science 293, 293-306 (1985), incorporated by reference herein, any clustering method may be employed using the teachings of the present invention. Further, any m i-max clustering algorithm may be employed in lieu of the T. Gonzalez algorithm, such as described in the paper by T. Feder and D. Greene, Optimal Algorithms for Approximate Clustering, Proceedings of the 20th ACM Symposium on Theory of Computing (STOC), pp.434-444 (1988), incorporated by reference herein. In addition other clustering algorithms may be employed. Thus for example other clustering algorithms that may be employed in. he present invention may include hierarchical methods such as>single link (including the . SLINK and minimal tree spanning algorithms), complete link, group average link;, Noorhees algorithm for group average link, and Ward's method (including the reciprocal methods are generally inferior to the T. Gonzalez algorithm. In addition, in the present- invention, though the Euclidean: ■ disώώe.is!§|eH preferred metric for calculating the distance between points, any;metriρ ήiay be used where appropriate, without detracting from the invention. Furthermorej though, a, series of circles, spheres or hyper spheres may be envisioned as the geometry defining^ fφ&ϊ φ, . cluster, any particular geometry may be used, and any particular topology.. Foregoing described embodiments of the invention are provided as illustrations : and descriptions. They are not intended to limit the invention to precise form described. In particular, it is contemplated that functional implementation of invention escribed herein may be implemented equivalently in hardware, software,, firmware, andfør'Other available functional components or building blocks. Other variations and embodiments . are possible in light of above teachings, and it is thus intended that the scope of invention not be limited by this detailed description, but rather by the claims following.

Claims: Claims What is claimed is: 1. An improved software program for semiconductor chip fabrication, comprising ; a computer memory comprising primary memory and secondary memory; a software module for representing real-time data collected from mstruments;as ; a real-time data signal; a software module for clustering a set S of library data of points in multi-dime ional space into a set of clusters; a comparison software module for comparing said real-time data signal tOfsaid ' set of . ' clusters to find the closest match between said real-time data signal and sai pd--o sin . • : said clusters. 2. The invention according to claim 1 wherein: said software module for clustering performs said clustering according t the min- max heuristic clustering algorithm of T. Gonzalez. 3. A computer apparatus for profileometry comprising: a processor, I/O, controlled by said processor, for inputting and outputting data, and for collecting data from at least one instrument used in measuring semiconductor integrated circuits, and memory operatively connected and cooperating with said processor; software modules stored in said memory, forming a software program executed by said processor, said modules comprising, a data collection software module for collecting a real-time data, signal -from said I O instrument, and for representing said real-time data signal in a predetermined format; a clustering software module for clustering a set of data into at least two sets of clusters, said data in said sets of clusters in the same predetermined format as said real-time data signal; and, a comparison software module for comparing said data in said sets of clusters?!© rsaielreal time data signal to find the closest match. 4. A computer method for matching data collected in profileometry- to Jibr ^ ' data in- real-time, comprising the steps of: collecting data from profileometry instruments in real-time; clustering data in a library in a plurality of clusters having clustet represenfatiyes; • loading said cluster representatives to primary memory; comparing said real-time data to. said

Inventors: DODDI SRINIVAS, DODDI, SRINIVAS
Applicants: DODDI SRINIVAS, TIMBRE TECH INC, DODDI, SRINIVAS, TIMBRE TECHNOLOGIES, INC.
Application year: 2001
Main classification: G05B19
IPC codes: G01N33, G05B15, G05B19, G06F9, G06F17