semi合集-English.pdf - 第1810页

SEMI E42-0704 © SEMI 1995, 2004 79 them for execution in a timely manner, then it may indicate the results of the select operation in the response message, as illustrated in Figure 11.1. Figure 11.1 RMESelect Message Flo…

100%1 / 7923
SEMI E42-0704 © SEMI 1995, 2004 78
The delete recipe operation is invoked with the
RMEDelete service. A request to delete a currently
selected recipe shall be denied.
11.2.7 Recipe Selection — Recipe selection is the
process of locating, validating, and preparing a recipe
for execution within the execution area. Recipe
selection is a required operation of the recipe executor
that allows specification of initial (default) values of
any variable parameters defined by the recipe. Initial
parameter values specified at this time shall override
the corresponding values contained in the Exec-
LinkParam attribute.
It shall be possible to explicitly specify a recipe for
execution. It may also be possible to implicitly select a
recipe, including initial variable parameter values,
through other operations, such as within a higher-order
"process job". Services for implicit methods and for
starting execution itself are beyond the scope of RMS.
If the recipe class is omitted when specifying a recipe
for selection, then the class "/PROCESS/" shall be
assumed.
The request for recipe selection specifies one or more
recipes to be selected. If a recipe cannot be located in
the recipe executor's recipe storage area, then the recipe
executor may optionally attempt to locate and retrieve it
from the originating namespace specified.
Only a linked recipe (with the Linked
attribute set to
TRUE) may be specified by the service user. An
attempt to select an unlinked recipe shall be denied.
Subrecipes that are part of a linked recipe set are
required only to be verified but not linked.
The selection process completes abnormally whenever
an error is detected, including the failure to locate a
specified recipe or to successfully store it, invalid
parameter settings, an attempt to select an unverified
recipe, and other validation errors.
The select recipe operation is invoked with the
RMESelect service.
11.2.7.1 Multiple SelectionExecuting agents that
support subclasses of the PROCESS class shall provide
at least one of two methods for the selection of multiple
recipes: (1) they may either allow, or require, that a
request for recipe selection explicitly specify a recipe
from each of certain subclasses, and/or (2) they may
either allow, or require, specification of required
subclasses within a linked set of multi-part recipes.
Such additional permissions and restrictions shall be
included in the recipe management documentation.
For executing agents that support multi-part recipes
(such as described in method 2 above), the recipe
executor is responsible for validating, as a set, the main
recipe and all its subrecipes listed in the LinkList
attribute of the main recipe as a condition of execution.
If the namespace is specified as "Default", the default
namespace is used. The name of this namespace is the
value in the recipe executor attribute DefaultName-
space (see Section 6.4 and 6.7).
All recipes in the linked recipe set are considered to be
selected if the select operation is successful.
11.2.7.2 ValidationValidation consists of type and
range-checking of recipe settings and parameters, and
of confirmation that the recipe is valid for the current
hardware configuration. Validation shall occur as part
of the process of selection. For recipe executors that
require several different classes of recipe, validation
may depend on the recipes that are selected as a set.
For example, a diffusion furnace may have a class of
recipe that is used for the current gas configuration to
map gases to valves. The furnace's normal process
recipe that uses names of gases can only be validated in
combination with the gas configuration table selected at
the same time.
11.2.7.3 Delegation — If delegated recipes are
specified in LinkList
, it is the responsibility of the
recipe executor to ensure that the designated recipe is
accessible to the recipe executor of the component
agent at the time it is selected. Otherwise, the select
request shall be denied.
11.2.7.4 Variable ParametersFor recipes with
variable parameters, new initial values for some or all
of its parameters may be specified as part of the
selection as a parameter name and parameter initial
value pair. Parameter values specified as part of the
selection take precedence over those initial values
defined in the ExecLinkParam
attribute. However,
parameter restrictions may not be changed when
selecting a recipe.
All parameter values that are set either prior to, or
during
12
, the execution of a recipe shall satisfy the
conditions of the parameter restriction. If a parameter
restriction is given in the ExecLinkParam attribute,
then that restriction is used for all occurrences of the
parameter.
11.2.7.5 Message Scenarios — There are two possible
message flows between the recipe executor and the
service user for the select service.
If the recipe executor is able to locate the recipes in its
local storage, to validate them as a set, and to ready
12 RMS neither defines, nor prohibits, methods for changing
parameter values during the execution process.
SEMI E42-0704 © SEMI 1995, 2004 79
them for execution in a timely manner, then it may
indicate the results of the select operation in the
response message, as illustrated in Figure 11.1.
Figure 11.1
RMESelect Message Flow
Alternatively, the recipe executor may anticipate that
the process of selection will require more time. In this
case, it may send a response indicating the intent to
perform the operation as soon as possible, prior to
starting the operation. The notification message
RMEComplete is sent when all specified recipes are
selected or when a selection failure occurs. Exactly one
notification message is sent, as illustrated in Figure
11.2.
Figure 11.2
RMESelect with RMEComplete Notification
If all recipes are located and in local storage, the recipes
are validated as a set.
11.2.7.6 Selected Recipes — Once a recipe and its
associated subrecipes have been selected, they shall be
fully protected from inadvertent (unintentional) change,
including change through download, overwrite,
deletion, and renaming operations.
The recipe executor attribute RecipeSelectID
shall be
set to the list of currently selected recipes, including all
main recipes specified in the select request and all
subrecipes within a linked recipe set.
The attribute RecipeSelectParam
shall be set to the list
of all variable parameter definitions currently in effect
following selection and prior to the start of actual recipe
execution.
11.2.7.6.1 Select Errors — If the recipe executor is
unable to locate a recipe specified for selection in its
storage, it is responsible for obtaining the recipe from
the designated namespace included in the recipe
specifier.
Possible errors resulting from the select operation
include:
Failure to specify recipes from each of the
subclasses that it requires,
Failure to validate a recipe,
Failure to locate a recipe in a specified namespace,
Failure to locate a recipe, and
An attempt by the user to select an unlinked recipe.
The select recipe operation is invoked with the
RMESelect service.
11.2.8 Recipe Deselection — A selected recipe is
deselected by making it unavailable for execution for
the next (subsequent) processing cycle, deleting its
identifier from the RecipeSelectID
attribute, and
deleting its parameter definitions from
RecipeSelectParam
attribute. This is a required
operation.
Only a main recipe that is currently selected may be
specified for deselection. Deselecting a main recipe
shall result in the simultaneous deselection of all of its
subrecipes.
If a recipe is deselected during execution, this shall
have no effect until the current process cycle has
completed.
The recipe executor may have additional restrictions
concerning deselection.
The deselect recipe operation is invoked with the
RMEDeselect service.
11.2.9 Get Execution Recipe Descriptor — The get
execution recipe descriptors operation returns the
descriptors of a specified execution recipe: the
execution attribute descriptor, the generic attribute
descriptor, and the body descriptor, in that order. This
is a required operation.
The execution recipe descriptor may be used to
compare two execution recipes or a managed recipe and
an execution recipe.
The get execution recipe descriptor operation is
invoked with the RMEGetDescriptor service.
SEMI E42-0704 © SEMI 1995, 2004 80
11.2.10 Change Control — It is important to the user
to be able to control change for execution recipes. In
addition, it may be important to store recipes that were
originated by the recipe executor in the managed
environment of a recipe namespace. The recipe
attribute ExecChgCtrl
is used to accomplish both
purposes.
The ExecChgCtl
attribute allows the user to control the
modification of an existing execution recipe and its
subsequent use. ExecChgCtrl
is a binary value that
specifies permission for behavior related to changes.
ExecChgCtrl
uses bit settings to indicate permission in
order to facilitate the different possible combinations.
Values given below are in decimal:
1 = permission to change the body of the execution
recipe
2 = requirement to notify the originating namespace of
permitted changes
4 = permission to select (including re-selection of an
already selected recipe) a changed recipe
8 = permission to save the last values of variable
parameters in the ExecParam
attribute
11.2.10.1 Changing Existing Recipes — Whenever the
body is changed, the attributes ExecAttrLength
,
ExecChgTime
, BodyLength, and EditTime shall be
updated. The attribute ChangedBody
shall be set to
TRUE and remain set until the recipe is uploaded
successfully to the originating recipe namespace. The
ChangedBody attribute is reset when the upload request
is received. It is not included in the uploaded attributes.
Note that the attributes ExecAttrLength
and
ExecChgTime
are not kept in the managed recipe
stored in the namespace, and that the attributes
AttrLength
and AttrChgTime are not maintained by the
recipe executor and are recalculated for the managed
recipe when stored.
If the ExecChgCtrl attribute permits both change and
subsequent selection or re-selection (as for a currently
selected recipe changed by the execution process itself),
then the recipe's Linked attribute is not affected.
Otherwise, if change is permitted but subsequent
selection is not permitted, then the Linked
attribute of
the main recipe shall be cleared (set to FALSE) to
prevent any subsequent selection, and the recipe shall
be automatically de-selected at the end of any current
processing cycle. It shall not be available for selection
until it has been uploaded, re-linked, and downloaded
again, with its changes, by the originating namespace.
11.2.10.2 Creating New Recipes — A new execution
recipe may be created by various mechanisms. Such
mechanisms are beyond the scope of RMS. However,
all such recipes shall be assigned an identifier that is not
already in use by an execution recipe. It is not required
that an originating namespace be assigned immediately
in all cases. However, it must be provided before the
recipe can be uploaded and placed in the management
system. New identifiers assigned automatically by the
recipe executor shall use the next available numeric
version, in conformance with Section 3.2.3.3.
A newly created recipe may not be executed. Its
ChangedBody
attribute shall be set to TRUE, and
BodyFormat
shall be set TRUE for non-text recipes.
The attribute ExecChgCtrl
shall be set to a value of 3 (1
plus 2) or higher. Other non-mandatory attributes shall
be set to their default value. Since the Linked
attribute
is set to FALSE, the new recipe may not be executed as
a main recipe. New recipes must be uploaded to a
designated originating namespace for management
purposes and subsequently downloaded after they have
been linked.
11.2.10.3 Building Derived Form Recipes — A new
recipe, with a new identifier, is also originated if recipe
executor builds a derived object form recipe from an
existing source form recipe. Requirements for the
derived object form recipe are defined in Section
11.2.2.1.
The manager of the originating namespace shall be
notified when a derived object form recipe is built from
a source form recipe where ExecChgCtrl
requires
notification of change for the original source form
recipe.
11.2.10.4 Saving Last Value — Saving the most recent
settings specified by the user in the attribute ExecLink-
Param is a protected activity requiring explicit
permission in ExecChgCtrl
. A change notification
requirement in ExecChgCtrl
applies to the change of
this attribute.
Parameter values in ExecLinkParam
are overridden by
any parameter settings specified by the user at the time
a recipe is selected. In this case, the last value of each
parameter is stored in the appropriate parameter
definition in the ExecLinkParam
attribute. If change
notification is specified, the originating namespace
shall be notified of this change. The attributes
ExecLength and ExecChgTime shall be updated
whenever this change is made. The body of the recipe
in execution recipe storage shall not be changed for this
purpose.