Abstract:
A parameter adjusting device optimizes parameters using a genetic algorithm by using a plurality of processing devices. The plurality of processing devices is respectively configured to individually and simultaneously execute the genetic algorithm and to, a predetermined period prior each local search, be such that each processing device, in accordance with the genetic algorithm processing, based on predetermined numbers, send individuals of a genetic population to others of the plurality of processing devices and further configured to have a migration arrangement for receiving the predetermined numbers.

Description:
CROSS REFERENCE TO RELATED APPLICATION 
       [0001]    This is a continuation application of patent application Ser. No. 10/584,350 filed on Jun. 23, 2006. 
     
    
     BACKGROUND OF THE INVENTION AND RELATED ART STATEMENT 
       [0002]    The present invention relates to a parameter adjusting device, especially, a parameter adjusting device that can adjust a great number of parameters of a physical model and so on by a genetic algorithm (hereinafter referred to as a GA) using multiple processing units (processors, CPU) within a short time. 
         [0003]    Conventionally, a parameter adjusting device that automatically performs parameter fitting (adjusting) processing of a physical model including multiple parameters using the GA from an experimental result and so on is proposed. A reference for the GA is, for example, the following Japanese Non-patent Publication 1 (David E. Goldberg, 1989, “Genetic Algorithms in Search, Optimization, and Machine Learning”, published by ADDISON-WESLEY PUBLISHING COMPANY, INC). In addition, the GA in the present invention represents an evolutionarily computational technique, and includes an evolution strategy (ES) technique. A reference for the evolution strategy, for example, includes the following Japanese Non-patent Publication 2 (H. P. Schwefel, 1995, “Evolution and Optimum Seeking”, published by John Wiley &amp; Sons). 
         [0004]    Furthermore, in the following Japanese Patent Publication 1 (Japanese Patent Publication No. 2003-108972), a parameter adjusting device that automatically performs a parameter adjusting processing of a physical model including the multiple parameters using the GA is proposed. 
         [0005]    In the above-mentioned conventional parameter adjusting method, the method for improving accuracy by performing parameter adjustment (search) using the GA at first, and a local search method in the final stage of the search, was used. However, since the search using the GA lowers searching speed in the final stage, when the GA tries to raise the accuracy, the processing time becomes longer. On the other hand, when the GA is switched to the local search method in the early stage, an optimal solution might not be obtained. 
         [0006]    Also, GA processing is suitable for relatively parallel processing; however, the local search method is not suitable for high speed through parallel processing. In addition, depending on an applied model, the local search method has a possibility of reaching the optimal solution quicker than the GA does. However, even in the above-mentioned model, the processing time could not be shortened by the conventional method. 
         [0007]    Further objects and advantages of the invention will be apparent from the following description of the invention. 
       SUMMARY OF THE INVENTION 
       [0008]    The present invention is made in order to solve the above-mentioned problems, and the main feature of the parameter adjusting device of the invention is that, in the parameter adjusting device optimizing parameters using a genetic algorithm with multiple processing means (CPU), a processing assignment means wherein a part of the multiple processing means is assigned to search processing by a local search method such as Powell method is provided. 
         [0009]    Also, when performances of multiple processors are not equal, the present invention assigns processing of the local search to a low-performance processor. Also, the present invention collects an interim result of the search from the processor being assigned to the processing by the genetic algorithm in the multiple processors, and uses it for the search processing by the local search method. 
         [0010]    In addition, the present invention includes an individual decision means which determines the group of individuals being processed by the genetic algorithm through the processing means being assigned to the processing by the GA in the multiple processing means according to the respective processing capability of each processor&#39;s means. Furthermore, the multiple processors include a determination means determining whether to satisfy respective search processing termination conditions. When a termination is determined in an optional processor, the present invention terminates the entire processing of the device. 
         [0011]    According to the above-mentioned features, a parameter adjusting device of the present invention has an effect to be able to determine a group of the most appropriate parameters within a short time by: effectively utilizing a resource inside a system; parallelizing fitting processing; and making the fitting processing more efficient. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]      FIG. 1  is a block diagram showing a hardware structure of an embodiment of the parameter adjusting device of the present invention. 
           [0013]      FIG. 2  is a schematic time chart showing a parameter adjusting processing using the GA of the present invention. 
           [0014]      FIG. 3  is a flowchart showing contents of processing in an administrative CPU 1 . 
           [0015]      FIG. 4  is a flowchart showing contents of CPU processing for the GA. 
           [0016]      FIG. 5  is a flowchart showing the contents of CPU processing for a local method. 
           [0017]      FIG. 6  is a flowchart showing the contents of GAn processing of S 16 , S 36 . 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0018]    A parameter adjusting device of the present invention can be used in order to run a simulation of a transistor with an optional shape using the model generated by optimizing the model parameters which is calculated with the model function that expresses the transistor&#39;s electric property using the electric property data measured from several transistors with a different shape experimentally. However, the present invention is not limited to the example described hereinabove, and can be applied to optional processings using the GA. Hereinafter, embodiments of the present invention will be explained. 
       Embodiment 1 
       [0019]      FIG. 1  is a block diagram showing the hardware structure of an embodiment of the parameter adjusting device of the present invention. Well-known personal computers of CPU 1 ( 1 )˜CPUn( 13 ) with n units are connected by a LAN 14 . A well-known display  16  and keyboard  15  for data input and output are connected to the CPU 1 ( 10 ); however, the display  16  and keyboard  15  may be connected to the other CPUs. A well-known data input and output device may be installed in each CPU. The parameter adjusting device of the present invention can be realized by creating and installing a program described hereinafter in each CPU. 
         [0020]    Incidentally, the above-mentioned structure is an example, and when a number of CPUs are installed on a server, or when a number of personal computers are connected via the Internet, the present invention can be applied to optional computer systems which can substantively perform parallel processing by a number of processing units (CPU). Also, even when one CPU such as a hyper-threading function and so on can substantively perform a number of processing in parallel, the present invention can be applied. 
         [0021]      FIG. 2  is a schematic time chart showing a parameter adjusting (fitting) processing using the GA of the present invention. The CPU 1  functions as an administrative CPU, and performs: data input and output; a processing assignment to the other CPUs; and the management of the entire parameter adjusting processing other than GA processing (local-method processing). The CPU 2 ˜CPUn−1 are CPUs being assigned to the GA processing. The CPUn is the CPU being assigned to local-method search processing. Incidentally, the reference alphabet n represents an integer 2 or more. 
         [0022]    The CPU 1  collects processing results (superior individual information) from the other CPUs with respect to each predetermined cycle (generational change processing of the predetermined number of the GA=GAn processing), and determines termination conditions. When the termination conditions are satisfied, the CPU 1  terminates the entire processing, and outputs a result. Every time the CPU 1  for the management gives an instruction, the CPU for the GA processing performs the GAn processing. Migration processing is performed during the GAn processing, wherein the CPUs for the other GA and an individual are exchanged over the predetermined cycle. Also, over an independent cycle from the above-described cycle, the superior individual information is transmitted to the CPUn for the local method (or via the CPU for the management) at that point. 
         [0023]    When the CPUn for the local method receives individual (parameter) information via the CPU for the management or the CPU for the GA, the CPUn for the local method optimizes (searches) the parameters by a heretofore known local search method, and transmits a search result to the CPU for the management. 
         [0024]      FIG. 3  is a flowchart showing contents of the processing in an administrative CPU 1 . In a S 10 , the other CPUs available to the GA or local method are searched. In a S 11 , it is determined whether or not processing capabilities of the available CPUs are well-known, and when a determined result is negative, the S 11  is transferred to S 12 . In the S 12 , the processing capabilities determine the processing capabilities of unforeknown CPUs. As a capability, a method such that the capability is measured by measuring the processing time through a simple benchmark testing program wherein clock frequency information of the CPU is retrieved, can be adopted. 
         [0025]    In S 13 , the CPU for the local method is selected. As a selection condition, for example, the CPU with the lowest processing capability is selected. The CPU 1  for the management may be selected as the CPU for the local method; however, in this example, another CPUn shall be selected. Incidentally, the processing of the S 10 ˜ 13  may be performed beforehand. The CPU available to the management CPU 1 , the processing capability, the processing assignment, and so on may be registered beforehand. 
         [0026]    In S 14 , input data necessary to the GA or the local-method processing is distributed to each CPU. In S 15 , an individual (chromosome) for the GA processing in the CPU for the management is generated. For example, in the case of the semiconductor manufacturing line, N chromosomes (individuals), wherein the whole physical model functions of a transistor or a value of a part of the parameters are the genes, are generated, and are considered as an individual population. An individual generation determines the value of the genes in the chromosomes. Incidentally, in a physical model of a transistor such as the heretofore known BSIM, a range of recommended parameter initial values is set, so that in each parameter, the initial value is determined randomly within the range of the recommended parameter initial value, and becomes the value of the genes. 
         [0027]    The number of the individuals N is basically determined based on the number of the parameters being required to be adjusted. In the embodiment, for example, it may be that the number of the individual N=the number of the parameter x a constant (for example, 5˜15). Incidentally, the larger the number of the individual N, the better the accuracy: however, the longer the processing time. On the other hand, when the multiple CPUs with different processing capabilities perform the GA processing of the same individual number N, a quick CPU has to wait until a slow CPU completes the processing. As a result, the processing time of the multiple CPUs being assigned to the GA may be roughly the same by increasing the N for the CPUs with larger processing capability. 
         [0028]    In an S 16 , the after-mentioned GAn processing (or the local-method processing) is performed. In an S 17 , processing result data of the entire CPUs including one&#39;s own data are collected. In an S 18 , whether or not the termination condition is satisfied is determined. The termination condition is that, for example, a condition of any of the following (1)˜(3) is satisfied. (1) The evaluated value of any individuals has reached more than the target value set beforehand. (2) The increase rate of the evaluated value has become below the predetermined value. (3) The iteration of calculation has surpassed the predetermined value. 
         [0029]    In an S 19 , a termination is indicated relative to all the CPUs, and in an S 20 , a result is outputted at, for example, a display, printer, file, and so on. Incidentally, when the information of the above-mentioned termination condition (1) is transmitted through the other CPUs during the processing of the S 16 , the processing of the S 16  may be paused immediately and transferred to the S 19 . 
         [0030]      FIG. 4  is a flowchart showing the contents of the CPU processing for the GA. In an S 30 , it is held until the data is received through the management CPU. In an S 31 , if the received data indicates termination, the processing is terminated. In an S 32 , whether or not the received data is the distributed data in the S 14  is determined, and when the determination result is affirmative, the received data is transferred to an S 33 . In the S 33 , the individual (chromosome) for the GA processing in its CPU is generated. This processing is the same processing with the S 15 . In an S 34 , the generated individual is registered as the parent population and transferred to an S 36 . 
         [0031]    In an S 35 , whether or not the received data is a continued instruction is determined, and when the determination result is affirmative, the received data is transferred to the S 36 . In the S 36 , the GAn processing which is the generational change processing with the predetermined number of the GA described hereinafter is performed. In an S 37 , the superior individual information with a predetermined individual number which is the result of the GA processing, is transferred to the management CPU, and returned to the S 30 . 
         [0032]      FIG. 5  is a flowchart showing the contents of the CPU processing for the local method. In an S 50 , it is held until the data is received through the management CPU. In an S 51 , if the received data indicates termination, the processing is terminated. In an S 52 , whether or not the received data is the distributed data in the S 14  is determined, and when the determination result is affirmative, the received data is transferred to an S 55 . 
         [0033]    In an S 53 , whether or not the data of an interim result being transmitted from the CPU for the GA is the superior data is determined, and when the determination result is affirmative, the received data is transferred to an S 54 . In the S 54 , the individual for performing the search processing is selected from the superior individual data sorted by the evaluated values, collected from each CPU in order of evaluated value, and so on. Incidentally, if the CPU for the local method can perform the local-method search processing more than once during the GAn processing of the other CPUs, the number of the individual being selected within a performable range may be multiple, and in the case of a multiple number, the search processing with the local method is processed one-by-one in order. 
         [0034]    In the S 55 , the parameter adjustment, i.e., the superior parameter search is performed by, for example, the heretofore known Powell method as mentioned in, for example, “NUMERICAL RECIPES in C, Gijutsu-Hyohron Co., Ltd., 1993” and so on, or the other heretofore known local search method. Since the processing has a light processing load compared to the GA processing, even if the CPU has a low processing capability, the processing can be performed within a short time compared to the GA processing. In an S 56 , the superior individual information with the predetermined individual number which is the result of the processing is transferred to the management CPU, and returned to the S 50 . 
         [0035]      FIG. 6  is a flowchart showing the contents of GAn processing which are the generational change processing of the predetermined number of the GA of the S 16 , S 36 . In S 60 ˜S 62 , generation update processing for a generation in the heretofore known genetic algorithm processing is performed. Incidentally, details are written in the above-mentioned Japanese Patent Publication. First, in the S 60 , the individual is selected randomly from the parent population by the predetermined number, and generates a child individual by crossover processing. Crossover processing is a processing wherein: a copy of a selected parent individual is respectively generated by an arbitrary number; and a part of the gene is exchanged between the copy individuals; or a new gene is generated from each gene, so that a child individual with an arbitrary number is generated. 
         [0036]    In the S 61 , the evaluated value of the child individual being generated at the S 60  is calculated. The evaluated value is the value showing how close to an ideal value the gene in the chromosomes is as the parameter. In the case of being applied to a semiconductor manufacturing line, square error between: estimated value of the property being calculated by the transistor model function which expresses the electric property wherein the genes in the chromosome is the model parameters; and measured value of the property being obtained by an experimental test of the transistor is calculated. The lower the square error value becomes, the better the estimation is. 
         [0037]    In the S 62 , only the number of individuals which are retrieved from the parent individuals being selected in the S 60  and the generated child individuals in order of highest value is returned to the parent population, and the rest is abandoned. Due to this processing, a low-valued chromosome is eliminated. Incidentally, in addition to this, the following method in which: a part of the parent individuals is returned to the population as it is without being selected as the object of the natural selection and the number of “the rest of the parent individual” is returned in the order of the highest value from the rest of the parent individuals and the child individuals; or after the whole individuals are returned to the parent population, only original number of the parent population is left and the others are eliminated may be used. 
         [0038]    Generally, in the GA, a mutation method is applied in addition to crossover method. However, for example, in the above-mentioned Japanese Patent Publication, since the genes of the child individuals are generated using random numbers in the process of the crossover, the property of the mutation is also included. Therefore, in the case of using the above-mentioned crossover method, the mutation is not required to be performed additionally. Incidentally, in the case of the GA handling real number value, the operation wherein normal random numbers being generated according to a normal distribution are added to each gene of the chromosomes, is proposed as a mutation processing, and the above-mentioned mutation processing may be added. 
         [0039]    In an S 63 , whether or not accuracy, i.e., an error of the experimental result of the physical model using the parameters of the individuals being equal to the most highly-evaluated value meets the target value is determined, and when the determination result is affirmative, the received data is transferred to an S 72 . In the S 64 , whether or not the GA processing (generational change) is performed by a determined iteration beforehand (6 times in  FIG. 2 ), is determined, and when the determination result is affirmative, the received data is transferred to the S 72 . 
         [0040]    In an S 65 , whether or not an individual extraction cycle for the local method (3 times in  FIG. 2 ) is presented is determined, and when the determination result is affirmative, the received data is transferred to an S 66 . In the S 66 , the superior individuals are transferred to the CPU for the local method only by the predetermined number. In an S 67 , whether or not a migration cycle (twice in  FIG. 2 ) is presented is determined, and when the determination result is affirmative, the received data is transferred to an S 68 . However, when the determination result is negative, the received data is returned to the S 60 . 
         [0041]    A parallel GA system of the present invention allows each child population to become independent with respect to each processor and evolve. Consequently, the GA process in each processor lowers the diversity of a solution compared to the GA process of a parent population, so that the fitting capability goes down. Consequently, the processing referred to as migration is added. Migration is the process of replacing the chromosomes among child populations in the respective CPUs. By this processing, the diversity of the solution is maintained, and the fitting capability which is the same or more than the fitting capability during the single population processing is maintained. 
         [0042]    In the S 68 , the superior individuals are extracted only by the predetermined number. In an S 69 , the data of the extracted individual is transferred to the predetermined CPU. The forwarding CPU may be fixed beforehand, or a table or an arithmetic expression which determines to which CPU will be transferred for what time may be created and distributed beforehand. As an example, the data may be transferred in a ring such that, for example, the CPU 1  data is transferred to the CPU 2 , the CPU 2  data is transferred to the CPU 3  . . . the CPUn−1 data is transferred to the CPU 1 . In an S 70 , the data migrated from the other CPUs is received. In an S 71 , the data migration in an S 70  is added to the parent population of the individual, and returned to the S 60 . 
         [0043]    When the termination is determined, the superior individual information with a predetermined number which is the result of the processing in the S 72 , is transferred and reported to the management CPU, and the GAn processing is completed. 
         [0044]    By the above-mentioned structure and processing, high-accuracy parameter adjustment can be performed within a short time. By adopting the relevant parameters to the physical model, a high-accuracy circuit simulation can be performed without a test, so that efficiency in manufacturing a semiconductor device improves. 
         [0045]    Embodiment 1 is explained in the above; however, the following transformational example is used as the parameter adjusting device of the present invention. In the embodiment, the example where: the individual for the local-method processing periodically transmits the superior individual information is disclosed; however, in the case that the individual information satisfying the predetermined accuracy in the CPUs for each GA appears, the individual information may be transmitted to the CPU for the local method as needed. 
         [0046]    In the embodiment, the example wherein each CPU is assigned to any of the GA processing or the local-method processing is disclosed; however, in the case that, for example, there is only one CPU with a high processing capability, both of the GA processing and the local-method processing can be assigned to the CPU with the highest processing capability, and only the GA processing can be assigned to the other CPUs. 
         [0047]    In the embodiment, the example wherein the superior interim result of the GA processing is searched by the local method is disclosed; however, in the case wherein there are multiple peaks of the evaluated values in a parameter space, when the superior interim result of the GA processing can be classified into the multiple groups being able to be fitted within the predetermined range in the parameter space, the representative individuals of each group may be searched by the local method. 
         [0048]    The parameter adjusting device of the present invention can be applied to an optional parameter adjusting device optimizing a parameter using the genetic algorithm with multiple processing means. 
         [0049]    The disclosure of Japanese Patent Application No. 2003-433656, filed on Dec. 26, 2003, is incorporated in the application. 
         [0050]    While the invention has been explained with reference to the specific embodiments of the invention, the explanation is illustrative and the invention is limited only by the appended claims.