1. A method for precoding, comprising:
using a processor to select a codeword for precoding data from a codebook, wherein the codebook comprises
1
2
\ue8a0
0
1
0
1
0
0
0
0
1
1
0
0
,
1
2
\ue8a0
0
1
0
1
0
0
0
0
1
–
1
0
0
,
1
2
\ue8a0
1
0
0
0
1
0
1
0
0
0
0
1
,
1
2
\ue8a0
1
0
0
0
1
0
–
1
0
0
0
0
1
,
1
2
\ue8a0
1
0
0
1
0
0
0
1
0
0
0
1
,
\ue89e
1
2
\ue8a0
1
0
0
–
1
0
0
0
1
0
0
0
1
,
1
2
\ue8a0
0
1
0
0
0
1
1
0
0
1
0
0
,
1
2
\ue8a0
0
1
0
0
0
1
1
0
0
–
1
0
0
,
1
2
\ue8a0
1
0
0
0
0
1
0
1
0
1
0
0
,
\ue89e
1
2
\ue8a0
1
0
0
0
0
1
0
1
0
–
1
0
0
,
1
2
\ue8a0
0
1
0
1
0
0
1
0
0
0
0
1
,
and
\ue89e
\ue89e
1
2
\ue8a0
0
1
0
1
0
0
–
1
0
0
0
0
1
.
2. The method for precoding of claim 1, wherein the data is uplink data.
3. The method for precoding of claim 1, wherein the method is applied in a Long Term Evolution-Advanced (LTE-A) system.
4. A computer program product for storing instructions operable in a base station, comprising:
a non-transitory computer-readable medium comprising code for selecting a codeword for precoding data from a codebook, wherein the codebook comprises
1
2
\ue8a0
0
1
0
1
0
0
0
0
1
1
0
0
,
1
2
\ue8a0
0
1
0
1
0
0
0
0
1
–
1
0
0
,
1
2
\ue8a0
1
0
0
0
1
0
1
0
0
0
0
1
,
1
2
\ue8a0
1
0
0
0
1
0
–
1
0
0
0
0
1
,
1
2
\ue8a0
1
0
0
1
0
0
0
1
0
0
0
1
,
\ue89e
1
2
\ue8a0
1
0
0
–
1
0
0
0
1
0
0
0
1
,
1
2
\ue8a0
0
1
0
0
0
1
1
0
0
1
0
0
,
1
2
\ue8a0
0
1
0
0
0
1
1
0
0
–
1
0
0
,
1
2
\ue8a0
1
0
0
0
0
1
0
1
0
1
0
0
,
\ue89e
1
2
\ue8a0
1
0
0
0
0
1
0
1
0
–
1
0
0
,
1
2
\ue8a0
0
1
0
1
0
0
1
0
0
0
0
1
,
and
\ue89e
\ue89e
1
2
\ue8a0
0
1
0
1
0
0
–
1
0
0
0
0
1
.
5. The computer program product of claim 4, wherein the base station is applied in a Long Term Evolution-Advanced (LTE-A) system.
6. The computer program product of claim 4, wherein the data is uplink data.
7. A computer program product for storing instructions operable in a user equipment, comprising:
a non-transitory computer-readable medium comprising code for precoding data using a codeword from a codebook, wherein the codebook comprises
1
2
\ue8a0
0
1
0
1
0
0
0
0
1
1
0
0
,
1
2
\ue8a0
0
1
0
1
0
0
0
0
1
–
1
0
0
,
1
2
\ue8a0
1
0
0
0
1
0
1
0
0
0
0
1
,
1
2
\ue8a0
1
0
0
0
1
0
–
1
0
0
0
0
1
,
\ue89e
1
2
\ue8a0
1
0
0
1
0
0
0
1
0
0
0
1
,
1
2
\ue8a0
1
0
0
–
1
0
0
0
1
0
0
0
1
,
1
2
\ue8a0
0
1
0
0
0
1
1
0
0
1
0
0
,
1
2
\ue8a0
0
1
0
0
0
1
1
0
0
–
1
0
0
,
\ue89e
1
2
\ue8a0
1
0
0
0
0
1
0
1
0
1
0
0
,
1
2
\ue8a0
1
0
0
0
0
1
0
1
0
–
1
0
0
,
1
2
\ue8a0
0
1
0
1
0
0
1
0
0
0
0
1
,
and
\ue89e
\ue89e
1
2
\ue8a0
0
1
0
1
0
0
–
1
0
0
0
0
1
.
8. The computer program product of claim 7, wherein the user equipment is applied in a Long Term Evolution-Advanced (LTE-A) system.
9. The computer program product of claim 7, wherein the data is uplink data.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
What is claimed is:
1. A method of producing schedules for processing a wafer in a multichamber semiconductor wafer processing tool comprising the steps of:
(a) providing a trace defining a series of chambers that are visited by a wafer as the wafer is processed by the tool;
(b) initializing a sequence generator with an initial value of a variable defining an initial wafer positioning with the tool; and
(c) generating values of said variable that represent all valid successor wafer positions related to the initial value, where said values of said variable, taken together, form a partial schedule for processing a wafer.
2. The method of claim 1 further comprising a step of computing a total number of variable values generated from a given variable value.
3. The method of claim 1 further comprising the steps of:
(d) backtracking through said series of variable values in said partial schedule and applying step (c) to each value in said partial schedule to produce further values of said variable representing additional series of values that represent additional partial schedules; and
(e) stopping said backtracking when all possible variable value combinations are produced that represent all possible valid schedules for said trace.
4. The method of claim 1 wherein a value of said variable is a letter and a plurality of letters forms a word.
5. The method of claim 4 wherein a valid schedule is defined by a word having no more than one repeated letter.
6. The method of claim 4 wherein each letter contains a n-tuple, where n represents a total number of wafer positions within said trace.
7. The method of claim 6 wherein n represents a total number of wafer positions within said trace plus a transport robot position.
8. The method of claim 3 further comprising the step of:
(f) identifying at least one schedule in all possible valid schedules that provides an optimal throughput for the trace.
9. The method of claim 8 wherein said identifying step (f) further comprises the step of computing the throughput for each and every schedule of said all possible schedules and selecting an optimum schedule for the trace which produces the highest throughput.
10. The method of claim 3 wherein said backtracking step (d) further comprises the steps of:
(a) initializing a schedule to an n-string of zeros having a length of one;
(b) identifying all unused successors of a last letter in a partial schedule;
(c) appending an unused successor to said partial schedule;
(d) increasing the length of the partial schedule by one and decreasing a number of unused successors by one;
(e) querying whether the last letter of the partial schedule is the same as a previous letter in the partial schedule and, if not, repeat steps (b), (c), (d) and (e) until the last letter of the partial schedule is the same as a previous letter in the partial schedule;
(f) storing the partial schedule as a full schedule and storing the length of the full schedule;
(g) removing the last letter of the full schedule to produce a new partial schedule and decreasing the length of the full schedule by one;
(h) querying whether the length of the new partial schedule is one and, if the length is one, stopping; otherwise, proceeding to step (i);
(i) querying whether there is an unused successor of the last letter and, if there are no unused successors of the last letter, repeating steps (g), (h) and (i) until there is an unused successor of the last letter;
(j) appending the unused successor to the new partial schedule, marking the successor as used and decreasing the number of successors by one; and
(k) returning to step (b).
11. The method of claim 1 wherein successor variables values are defined by successor generation rules that are prescribed by wafer processing parameters.
12. The method of claim 1 wherein successor variable values are generated with regard to transport robot positioning.
13. Apparatus for producing schedules for processing a wafer in a multichamber semiconductor wafer processing tool, having a trace defining a series of chambers that are visited by a wafer as the wafer is processed by the tool, said apparatus comprising:
a sequence generator, being initialized with an initial value of a variable defining an initial wafer positioning within the tool, for generating values of said variable that represent all valid successor wafer positions related to the initial value, where said values of said variable, taken together, form a partial schedule for processing a wafer.
14. The apparatus of claim 13 further comprising means for computing a total number of successor variable values generated from a given variable value.
15. The apparatus of claim 13 further comprising:
means for backtracking through said series of variable values in said partial sequence and selecting each value in said partial schedule as an input to said sequence generator which produces further values of said variable representing additional series of values that represent additional partial schedules, whereby all possible schedules for said trace are generated.
16. The apparatus of claim 15 further comprising a throughput model, coupled to said sequence generator, for computing a throughput value for each possible schedule in said all possible schedules.
17. The apparatus of claim 16 further comprising means for identifying at least one schedule that has the largest throughput value.
18. A schedule data structure, stored in a computer readable storage medium, of a schedule for processing a wafer in a multichamber semiconductor wafer processing tool comprising:
a plurality of n-tuples, where n is a total number of possible wafer positions, and the plurality of n-tuples contains only one duplicate n-tuple.
19. The schedule data structure of claim 18 wherein n is a total number of possible wafer positions plus a position of transport robot position.
20. The schedule data structure of claim 18 wherein the n-tuple has a form (x1,x2,x3, . . . ,xn), where x defines the contents of a particular chamber at a particular point in a schedule and x has a value 0 when a wafer is not positioned in the chamber and a value of 1 when a wafer is positioned in the chamber.