semi合集-English.pdf - 第1782页
SEMI E42-0704 © SEMI 1995, 2004 51 attribute Linked to TRUE. Figure 8.3 illustrates the LINKAGE stat e of the recipe. For a descri ption of the transitions, see Table 8.1 in Section 8.3. Figure 8.3 Link State Model For m…

SEMI E42-0704 © SEMI 1995, 2004 50
of the attributes of the original are copied directly.
These operations are included in Namespace
Management in Section 9.4.1.
8.2.2.1 Create Recipe — A recipe is created when a
recipe body is first entered into a namespace and
assigned a new identifier. The recipe's mandatory
attributes are set. All other attributes take on their
default values. The values for the attributes
BodyLength
, EditTime, and EditedBy are required to be
provided by the initiator of the create operation. The
attribute BodyFormat
is also provided at this time if it is
not in source form (i.e., if BodyFormat
has a non-
default value).
A newly created recipe has an active state model
(Figure 8.7). The recipe is in the UNVERIFIED,
UNLINKED, UNAPPROVED, UNPROTECTED, and
UNCERTIFIED states.
The create recipe operation is invoked with the
RMNCreate service.
8.2.2.2 Update Recipe — The update operation is
identical to that of create except that an unprotected
recipe with the specified identifier already exists, and
the new body replaces the existing body. Attributes
concerning the body are provided by the initiator of the
request, as for the create operation. All non-mandatory
attributes are cleared (reset to their default values).
Any existing agent-specific datasets are discarded.
The update recipe operation is invoked with the
RMNUpdate service.
8.2.3 Recipe Building — Building a recipe is a two-step
process. First the recipe is verified and then linked.
8.2.3.1 Verify Recipe — The verify operation is the
only time it is necessary to parse the contents of the
recipe body until the recipe is executed. The primary
purpose of this process is to ensure that the syntactical
and lexical structure of the body is correct. One or more
checks for semantic correctness may also be performed
as part of the verification operation, but this is not
required.
Actual verification is performed by a member agent's
recipe executor at the request of a namespace
manager. For this reason, this operation is also
discussed under namespace management in Section
9.4.7.
Recipes may be stored in a namespace in an incomplete
or unfinished form. For recipes in source form, the
verification procedure shall be performed only at the
request of the user. It shall not be performed
automatically.
There are four attributes affected by the verification
operation: Verified
, EstRunTime, ExtRef, and
Parameters
.
The boolean generic attribute Verified
is used to
indicate the recipe's state with respect to this procedure.
Verified
is cleared when a recipe is first created and
whenever it is updated. Verified
is set TRUE only when
the recipe passes the verification by a recipe executor.
A recipe is considered to be verified if, and only if, the
Verified attribute is TRUE. Figure 8.2 illustrates the
recipe's VERIFICATION state. For a description of the
transitions, see Table 8.1 in Section 8.3.
Figure 8.2
Verification State Model
The values for the attributes EstRunTime
, ExtRef,
Parameters
, and VerificationID are returned (where set)
by the recipe executor when the verification has been
successful. If the operation is unsuccessful, they shall
be cleared.
ExtRef
contains a list of all external references found
within the body of the recipe by the recipe executor.
These references may be explicit
or implicit, leaving
the class and/or version unspecified.
The verify recipe operation is invoked with the
RMNAction service.
8.2.3.2 Link Recipe — The link operation is a required
operation that may be requested at any time by the
operator or supervisor. Successful completion of the
link operation indicates that the recipe is ready for
execution. For single-part recipes without variable
parameters, linking consists only of setting the generic

SEMI E42-0704 © SEMI 1995, 2004 51
attribute Linked to TRUE. Figure 8.3 illustrates the
LINKAGE state of the recipe. For a description of the
transitions, see Table 8.1 in Section 8.3.
Figure 8.3
Link State Model
For multi-part recipes, this operation also collects
external references and variable parameter definitions
into the LinkList
and LinkParam attributes, to be used
by the recipe executor at run-time.
External references contained within multi-part recipes
are not required to specify the class of the subrecipe
when the class is the same as that of the parent recipe.
Where class is omitted in a recipe identifier in the
ExtRef attribute, the link operation is responsible for
adding the class of the parent recipe in the identifier
added to the LinkList
parameter, as the parent/child
relationship cannot be derived from the final contents of
LinkList
.
External references are assumed to refer to recipes
within the same namespace and are not required to give
explicit versions unless they specify a different
namespace. This ensures that the user will be able to
link together the “best choice” subrecipes. The exact
value of versions of such references is determined only
at the time the main recipe is linked.
The link operation is performed on a main recipe. That
is, it only modifies attributes of the main recipe. It
resolves all external references within that recipe and
within any of its subrecipes according to well-defined
rules for determining default versions at the time of the
link. At the same time, variable parameter definitions
are collected. The resulting explicit references are
placed in the LinkList
attribute, variable parameter
definitions are placed in LinkParam
, the ApprovalLevel
attribute is cleared, the Linked
attribute is set to TRUE,
and the main recipe is then said to be linked.
Subrecipes are not affected by this operation.
Subrecipes of a main recipe have no knowledge of
parents or of linkages. As a result, it is possible to
delete or change a subrecipe with an unintended
detrimental impact on a linked recipe set. Factory
policy may designate certain levels of approval to mean
“this recipe is used by (linked into) one or more
protected recipes.”
For multi-part recipes, linking starts at the main recipe
and works through all chains of referenced subrecipes
to determine the complete set of identifiers that will
comprise the recipe as a whole. The link operation is a
mechanical procedure that may be performed at any
time.
Successful linking implies that all referenced subrecipes
have been located and parsed for further references
until all references are exhausted. The link operation
shall fail when any recipe or subrecipe within the
namespace either is unverified or cannot be located.
If the same parameter name is used to define a
parameter in more than one recipe of a set of recipes
that are linked together, the name shall represent the
same parameter and have the same parameter
definition in all recipes in the set, to avoid ambiguity.
Parameters with the same parameter name and
differing definitions shall cause, at a minimum, a
warning to the user when the link operation completes.
For purposes of comparison of results, the order of
references in LinkList
and LinkParam at the completion
of the link operation shall conform to the results when
the following sequence is used:
1. Copy the contents of ExtRef
from the main recipe to
LinkList
, resolving class and version to each recipe
identifier as needed. For support of variable
parameters, also copy the contents of Parameters to
LinkParam. If ExtRef is empty, then LinkList is also
empty and the parsing process is complete.
2. If LinkList
is not empty, begin with the first
reference in LinkList
as the link target reference.
3. If the link target reference lies within the same
namespace, resolve the class and version if
necessary. (Note: the referenced recipe must be
already present within the namespace at the time the
link is performed, or else the link fails.) If the link
target reference specifies a different namespace, go
to Step (6) — the link operation of this chain
terminates (without error) without an attempt to
locate the actual recipe or its ExtRef
attribute. If the

SEMI E42-0704 © SEMI 1995, 2004 52
recipe is located, then it is called the link target
recipe.
4. Determine the contents of the Verified
attribute of
the link target recipe. If Verified
is FALSE, the link
operation fails immediately.
5. Determine the contents of the ExtRef
attribute of
the link target recipe. Remove any references that
duplicate those already contained in LinkList
,
resolve class and version as needed, and append the
result to LinkList
. If variable parameters are
supported, also determine the contents of
Parameters
in the link target recipe, remove
parameters already defined in LinkParam
, and
append the result to LinkParam
.
6. Set the link target reference to the next reference in
LinkList
and repeat steps (3) through (6) until all
references in LinkList
have been processed.
For recipes with no external references, the LinkList
list will be empty. Similarly, for recipes with no
variable parameters, the LinkParam
list will be empty.
The effect of allowing incomplete recipe versions to be
specified within a recipe body, and determined only
when the main recipe is linked, means that a linked
recipe set (the set of recipes linked together) produced
on one occasion may not be the same as those produced
on a different occasion. Therefore, it is necessary to
protect the contents of the LinkList
attribute from
inadvertent change.
For this reason, the link operation cannot be performed
on a read-only recipe with the Linked
attribute already
set from a previous link. Any attempt to link an already
linked read-only recipe either shall be denied or a new
copy of that recipe shall be generated with a new
identifier, which may then be automatically approved
and linked.
The link recipe operation is invoked with the
RMNAction service.
8.2.3.3 Unlink Recipe — A linked recipe that is not
write-protected may also be unlinked. The unlink
operation clears the generic attributes Linked
,
LinkList
, and LinkParam. If the recipe has agent-
specific datasets, the attributes Certified
and AgentSpec
LinkParam are cleared. If no other non-required agent-
specific attributes have a non-default value, the agent-
specific dataset is removed.
The unlink recipe operation is invoked with the
RMNAction service.
8.2.3.4 Modify Variable Parameters — The recipe
attributes Parameters
, LinkParam, and
AgentSpec
_LinkParam each consist of a list of
parameter definitions. Each parameter definition
contains the parameter name, parameter initial value,
and the parameter restriction (if any) specified for that
parameter by a formal definition within the recipe
body.
In order to “tune” a recipe so that it produces the same
result on all executing agents of the same type, it may
be necessary to provide a different initial value or a
different parameter restriction for one or more
parameters for individual executing agents. The agent-
specific attribute AgentSpec_LinkParam
is used to
provide this capability.
AgentSpec_LinkParam
is an optional agent-specific
attribute that contains a list of alternate parameter
definitions for one or more of the variable parameters
included in the definitions in the generic attribute
LinkParam
of a linked recipe. A special editing facility
may be provided to allow an authorized user to add,
delete, or modify parameter definitions to
AgentSpec_LinkParam.
Parameter definitions initially are added individually to
AgentSpec_LinkParam
by copying the definition for
that parameter from LinkParam
. The initial value or
restriction then may be modified by the user, subject to
the absolute restrictions, such as minima and maxima,
imposed by the executing agent's supplier. The initial
value may be changed to any value within the
parameter domain.
Any modification of the restriction shall cause the
certification level to be cleared in the Certified
attribute. This is required because of the potential
impact on fab operations of a change in the restriction.
The UNITS in the restriction of a numeric parameter
may be modified within constraints imposed by the use
of the parameter and the executing agent's supplier. For
example, a two-byte unsigned integer named WaitTime
that is used to set a variable time delay period may
permit units of either “min” (minutes) or “s” (seconds).
It is desirable, but not required, that suppliers of
executing agents support different options for
specifications of UNITS. The possible options for each
potential variable parameter shall be documented by
the supplier.