# US 7,742,888 B2 · Allocating processing units to generate simulated diffraction signals used in optical metrology

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,742,888 B2
- Document ID: US7742888B2
- Status: Granted
- Kind: B2
- Application number: 11/493,290
- Filed: 2006-07-25
- Published: 2008-01-31
- Granted: 2010-06-22
- Earliest claimed: 2006-07-25
- Assignees: Tokyo Electron Limited
- Inventors: Hemalatha Erva; Hong Qiu; Junwei Bao; Vi Vuong
- Web page: https://patentgrep.com/patent/US7742888B2

## CPC

- G01B 11/24: for measuring contours or curvatures
- G01N 21/4788: {Diffraction (for sizing particles G01N15/0205)}
- G01B: MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01N: INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES (measuring or testing apparatus or processes other than immunoassay, involving enzymes or microorganisms C12M, C12Q)

## Abstract

In allocating processing units of a computer system to generate simulated diffraction signals used in optical metrology, a request for a job to generate simulated diffraction signals using multiple processing units is obtained. A number of processing units requested for the job to generate simulated diffraction signals is then determined. A number of available processing units is determined. When the number of processing units requested is greater than the number of available processing units, a number of processing units is assigned to generate the simulated diffraction signals that is less than the number of processing units requested.

## Claims

### Claim 1

A method of utilizing computer-executable instructions for allocating processing units of a computer system to generate simulated diffraction signals in optical metrology, the computer system having a number of processing units, the method comprising:
a) obtaining a request for a job to generate simulated diffraction signals using multiple processing units of the computer system;
b) determining a number of requested processing units for the job to generate simulated diffraction signals;
c) determining a number of available processing units; and
d) when the number of requested processing units is greater than the number of available processing units, assigning a number of processing units to generate the simulated diffraction signals that is less than the number of requested processing units;
e) determining a new number of available processing units;
f) when the new number of available processing units exceeds the number of available processing units determined in c), re-assigning the job to the new number of available processing units or the number of requested processing units;
g) if the number of available processing units is less than the number of requested processing units, re-assigning the job to the new number of available processing units; and
h) if the number of available processing units is not less than the number of requested processing units, re-assigning the job to the number of requested processing units.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
after h), obtaining the simulated diffraction signals generated by the processing units; and
comparing the obtained simulated diffraction signals to a measured diffraction signal of a structure formed on a wafer to optimize a profile model of the structure.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
determining a profile of the structure in a regression process using the optimized profile model and simulated diffraction signals generated by the processing units.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
generating a library of simulated diffraction signals and hypothetical profiles of the structure, wherein the hypothetical profiles are generated based on the optimized profile model, and wherein the simulated diffraction signals in the library are generated by the processing units.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
verifying the generated library using the processing units.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
after h), obtaining the simulated diffraction signals generated by the processing units; and
comparing the obtained simulated diffraction signals to a measured simulated diffraction signal of a structure formed on a wafer in a regression process to determine a profile of the structure.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
after h), obtaining the simulated diffraction signals generated by the processing units; and
storing the obtained simulated diffraction signals and hypothetical profiles corresponding to the obtained simulated diffraction signals in a library.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
when the number of processing units assigned to the job is less than the number of requested processing units, logging the job in a secondary queue; and
when the new number of available process units does not exceed the number of available processing units determined in h), maintaining the log of the job in the secondary queue.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
after g), maintaining the log of the job in the secondary queue.

### Claim 10 (depends on 8)

The method of claim 8, further comprising:
after h), removing the log of the job from the secondary queue.

### Claim 11 (depends on 1)

The method of claim 1, further comprising:
when the number of requested processing units is greater than the number of available processing unit, determining if the number of available processing units is greater than zero;
if the number of processing units is determined to be zero, then iterating step c); and
if the number of processing units is determined to be greater than zero, then assigning the number of available processing units determined in c) to the job.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
queuing jobs in a queue, wherein the job obtained in a) are obtained from the queue based on a priority assigned to the job;
when a first job is currently being processed, a second job is obtained from the queue with a higher priority than the first job currently being processed, and the number of requested processing units by the second job is greater than the number of available processing units:
stopping the first job at a checkpoint;
running the second job; and
when the second job is completed, resuming the first job at the checkpoint.

### Claim 13 (depends on 1)

The method of claim 1, further comprising:
when the queue is empty after the job is obtained from the queue and the number of available process units is greater than the number of requested processing units by the job obtained from the queue, assigning the job the number of available processing units rather than the number of requested processing units by the job.

### Claim 14

A computer-readable medium containing computer-executable instructions for allocating processing units of a computer system to generate simulated diffraction signals in optical metrology, comprising instructions for:
a) obtaining a request for a job to generate simulated diffraction signals using multiple processing units;
b) determining a number of requested processing units for the job to generate simulated diffraction signals;
c) determining a number of available processing units;
d) when the number of requested processing units is greater than the number of available processing units, assigning a number of processing units to generate the simulated diffraction signals that is less than the number of requested processing units;
e) determining a new number of available processing units;
f) when the new number of available processing units exceeds the number of available processing units determined in c), re-assigning the job to the new number of available processing units or the number of requested processing units;
g) if the number of available processing units is less than the number of requested processing units, re-assigning the job to the new number of available processing units; and
h) if the number of available process units is not less than the number of requested processing units, re-assigning the job to the number of requested processing units.

### Claim 15 (depends on 14)

The computer-readable medium of claim 14, further comprising instructions for:
when the number of processing units assigned to the job is tess than the number of requested processing units, logging the job in a secondary queue; and
when the new number of available process units does not exceed the number of available processing units determined in c), maintaining the log of the job in the secondary queue.

### Claim 16 (depends on 15)

The computer-readable medium of claim 15, further comprising instructions for:
after g), maintaining the log of the job in the secondary queue.

### Claim 17 (depends on 16)

The computer-readable medium of claim 16, further comprising instructions for:
after h), removing the log of the job from the secondary queue.

### Claim 18 (depends on 14)

The computer-readable medium of claim 14, further comprising instructions for:
when the number of processing units is greater than the number of available processing unit, determining if the number of available processing units is greater than zero;
if the number of processing units is determined to be zero, then iterating step c); and
if the number of processing units is determined to be greater than zero, then assigning the number of available processing units determined in c) to the job.

### Claim 19 (depends on 14)

The computer-readable medium of claim 14, further comprising instructions for:
queuing jobs in a queue, wherein the job obtained in a) are obtained from the queue based on a priority assigned to the job;
when a first job is currently being processed, a second job is obtained from the queue with a higher priority than the first job currently being processed, and the number of requested processing units by the second job is greater than the number of available processing units:
stopping the first job at a checkpoint;
running the second job; and
when the second job is completed, resuming the first job at the checkpoint.

### Claim 20 (depends on 14)

The computer-readable medium of claim 14, further comprising instructions for:
queuing jobs in a queue, wherein the job obtained in a) are obtained from the queue based on a priority assigned to the job;
when the queue is empty after the job is obtained from the queue and the number of available process units is greater than the number of requested processing units by the job obtained from the queue, assigning the job the number of available processing units rather than the number of requested processing units by the job.

### Claim 21 (depends on 14)

The computer-readable medium of claim 14, further comprising instructions for:
after h), obtaining the simulated diffraction signals generated by the processing units;
comparing the obtained simulated diffraction signals to a measured diffraction signal of a structure formed on a wafer to optimize a profile model of the structure;
determining a profile of the structure in a regression process using the optimized profile model and simulated diffraction signals generated by the processing units;
generating a library of simulated diffraction signals and hypothetical profiles of the structure, wherein the hypothetical profiles are generated based on the optimized profile model, and wherein the simulated diffraction signals in the library are generated by the processing units; and
verifying the generated library using the processing units.

### Claim 22

A system for allocating processing units of a computer system to generate simulated diffraction signals in optical metrology, the system comprising:
a plurality of processing units configured to generate simulated diffraction signals; and
a processor configured to:
obtain a request for a job to generate simulated diffraction signals using one or more of the plurality of processing units;
determine a number of requested processing units for the job;
determine a number of available processing units; and
when the number of requested processing units is greater than the number of available processing units, assign a number of processing units to the job that is less than the number of requested processing units;
determine a new number of available processing units;
when the new number of available processing units exceeds the number of available processing units, re-assign the job to the new number of available processing units or the number of requested processing units;
if the number of available processing units is less than the number of requested processing units, re-assign the job to the new number of available processing units; and
if the number of available process units is not less than the number of requested processing units, re-assign the job to the number of requested processing units.

### Claim 23 (depends on 22)

The system of claim 22, further comprising:
a secondary queue,
wherein the processor is further configured to:
when the number of processing units assigned to the job is less than the number of requested processing units, log the job in the secondary queue; and
when the new number of available process units does not exceed the number of available processing units, maintain the log of the job in the secondary queue.

### Claim 24 (depends on 22)

The system of claim 22, further comprising:
a library of simulated diffraction signals and hypothetical profiles of the structure, wherein the hypothetical profiles are generated based on the optimized profile model, and wherein the simulated diffraction signals in the library are generated by the processing units.
