semi合集-English.pdf - 第1391页

SEMI E30-1103 © SEMI 1992, 2003 65 messages only from the spool area until all spooled messages have been completely transmitted to the host. Flow control of the spool transm it process is achieved in two ways. First, on…

100%1 / 7923
SEMI E30-1103 © SEMI 1992, 2003
64
Figure 4.11
Spooling State Diagram
Once communications are established, the host must
initiate the spool unload sequence to restore full
functionality (see below). Since the equipment will
deliver secondary messages, the host may inquire for
information or send commands as needed.
The SPOOL ACTIVE state has two AND states:
SPOOL LOAD and SPOOL UNLOAD. This means
that they operate independently, though sharing data
and some state change stimuli. See Section 3.1 for
explanation of state model terms and notation.
SPOOL LOAD
The SPOOL LOAD component enters messages into
the spool area. It is divided into two substates: SPOOL
NOT FULL and SPOOL FULL. SPOOL NOT FULL is
the default entry substate of the parent state SPOOL
LOAD.
SPOOL NOT FULL
As primary SECS-II messages are directed to the spool
area, the equipment shall “write” the SECS-II message
to the end of the spool. Status variables
SpoolCountTotal and SpoolCountActual shall be
incremented each time a message is placed in the spool
area.
SPOOL FULL
In this state, all of the allocated spooling area is filled.
Choice of the following options shall be controlled by
the setting of a Boolean equipment constant called
“OverWriteSpool.” The first message to be dealt with is
that which could not be fit into the spool prior to
transition from SPOOL NOT FULL (see transition
table below).
OverWriteSpool is True: The equipment deletes as
many of the “oldest” records (e.g., SECS-II messages)
contained in the spool area necessary to make space for
the new message and then adds the message. Status
variable SpoolCountTotal shall be incremented
whenever a message is submitted to the spool area.
Status variable SpoolCountActual shall be manipulated
to keep an accurate count of the number of messages
contained in the spool area. For example, if it is
necessary to delete three messages in the spool area to
spool one message, SpoolCountActual would have
three subtracted and then one added to the total.
OverWriteSpool is False: Any subsequent primary
messages shall be discarded. When such a message is
discarded, SpoolCountTotal is incremented.
SPOOL UNLOAD
The SPOOL UNLOAD component of SPOOLACTIVE
deals with movement of messages out of the spool. It
has an active substate (SPOOL OUTPUT) and a
passive substate (NO SPOOL OUTPUT). NO SPOOL
OUTPUT is the default entry substate, since the
equipment is NOT COMMUNICATING at the time
spooling is initiated. When communications between
equipment and host are restored, there is an opportunity
for the host to recover spooled messages. No action is
taken until the host initiates the spool output process
via the S6,F23 (Request Spooled Data). The host has
the option to either receive the spooled messages (see
substate TRANSMIT SPOOL) or discard all messages
in the spool (see substate PURGE SPOOL).
NO SPOOL OUTPUT
In this state, no messages are removed from the spool.
SPOOL OUTPUT
The SPOOL OUTPUT state encompasses the removal
of messages from the spool. Its substates are TRANS-
MIT SPOOL and PURGE SPOOL.
TRANSMIT SPOOL
The host elects to receive all messages contained in the
spool area. The equipment is expected to keep track of
the oldest record (i.e., message) within the spool area.
When communications are re-established with the host
and transmission of the spool area is started, the oldest
record must be the first record transmitted, then the
next oldest record, etc. There is no prioritization of
messages to be sent from the spool.
As each spooled message is successfully transmitted to
the host, it is removed from the spool area upon
successful completion of the transaction. Spool-
CountActual is decremented as each message is
removed from the spool. The equipment shall transmit
SEMI E30-1103 © SEMI 1992, 2003
65
messages only from the spool area until all spooled
messages have been completely transmitted to the host.
Flow control of the spool transmit process is achieved
in two ways. First, only one open transaction on the
equipment is allowed during spool unload. Thus, if a
message requires a reply, the equipment shall wait for
that reply before transmitting the next spooled message.
Messages which require no reply may be transmitted
sequentially as rapidly as the message transfer
mechanism will allow.
The second flow control method is to allow the host to
limit the maximum number of messages sent from the
spool in response to the S6,F23 request. An equipment
constant named MaxSpoolTransmit may be set by the
host to achieve this behavior. If MaxSpoolTransmit is
set to five, for example, the equipment will send the
first five messages from the spool and then transition to
the NO SPOOL OUTPUT state, awaiting the next
S6,F23 request. There is no event report generated
when MaxSpoolTransmit is reached. The host is
responsible for determining this situation by a)
counting the messages received, b) timing out waiting
for the next message, c) inquiring to the equipment for
the curent value of the SpoolCountActual status
variable, or d) some combination of the above. If
MaxSpool-Transmit is set to zero, the spool shall be
transmitted completely in response to S6,F23.
Normal spooling continues during the spool transmit
process. If the SPOOL LOAD component should
transi-tion to SPOOL FULL, it shall not have any effect
on the SPOOL UNLOAD component. Once full, the
spool cannot make the transition back to SPOOL NOT
FULL except via the SPOOL INACTIVE state. Space
made available due to the spool unload process shall
not be used in this case.
When a multi-block message is to be transmitted from
the spool, any required inquire/grant transaction shall
be initiated. If the host’s response denies permission to
send the multi-block message, the equipment shall dis-
card that message and continue with the transmit pro-
cess. This sequence shall count as one message in the
MaxSpoolTransmit count.
There is one area where SPOOL LOAD and SPOOL
UNLOAD may interact: When the spool is full and
OverWriteSpool is True. During the spool transmit pro-
cess, spooled messages are being removed and new pri-
mary messages are being written to the spool. These
new messages are overwriting the oldest messages
available, unless the unload process has freed sufficient
spool space. There is a possibility that the unload and
overwrite processes may compete for control of the
same message area. For example, if the spool holds
messages ABCDE, with A oldest and E newest, A
might be sent to the host, B (and the space from A)
overwritten by the new message F, C sent to the host, D
and E (and the space from message C) overwritten by
G, etc. The loss of continuity may be “disorienting” to
the host program receiving the messages. It is expected
that the unload process will be fast relative to the
generation of new messages, so that this occurrence
will be rare.
Should a communication failure occur during the spool
transmit process, spooling shall continue as before the
transmit process began. However, the spool unload
sequence shall terminate (i.e., transition to NO SPOOL
OUTPUT will occur — see transition table below).
PURGE SPOOL
The equipment shall discard all messages in the spool
and, when the spool is empty, zero SpoolCountActual.
SEMI E30-1103 © SEMI 1992, 2003
66
Spooling State Transitions
A table follows detailing all spooling state transitions as presented in the state transition diagram.
Table 4.11 Spooling State Transition
# Current State Trigger New State Action Comment
1 SPOOL
INACTIVE
Communication
state changes from
COMMUNICAT-
ING to NOT
COMMUNICAT-
ING or from
WAIT CRA to
WAIT DELAY
and Enable Spool
is true.
SPOOL
ACTIVE
SpoolCountActual and
SpoolCountTotal are ini-
tialized to zero. Any open
transactions with the host
are aborted. SpoolStart-
Time (SV) is set to current
time. Alert the operator
that spooling is active.
The default state in each AND substate
is entered. The message which could
not be sent remains in the send queue
and is dealt with in Spool Active state.
The collection event Spooling
Activated has occurred.
2 SPOOL NOT
FULL
Message generate
which will not fit
into spool area.
SPOOL
FULL
SpoolFullTime (SV) is set
to current time. Alert the
operator that spool is full.
The message which would not fit into
the spooling area is dealt with after the
transition. No collection event is
generated.
3 SPOOL
OUTPUT
Spool area
emptied.
SPOOL
INACTIVE
Spooling process dis-
abled. Alert the operator
that spooling has been
terminated.
The collection event Spooling
Deactivated has occurred. Transition
from the AND substate Spool Unload
component occurs.
4 NO SPOOL
OUTPUT
S6,F23 received
w/RSDC = 1.
PURGE
SPOOL
No action. Initiates purging process. No collection
event is generated since this is based
on host request.
5 NO SPOOL
OUTPUT
S6,F23 received
w/RSDC = 0.
TRANSMIT
SPOOL
No action. Initiates message transmission from
spool. No collection event is generated
since this is based on host request.
6 TRANSMIT
SPOOL
Communication
failure or
MaxSpoolTransmit
reached.
NO SPOOL
OUTPUT
Spool transmission
process suspended.
If communications failure, the event
Spool Transmit Failure has occurred.
No collection event generated for
MaxSpoolTransmit reached.
7 POWER ON Equipment power
source
discontinued.
POWER
OFF
No action. Spooling context has been maintained
in non-volatile storage prior to this
transition.
8 POWER OFF Equipment power
source restored.
POWER ON Spooling context restored
from non-volatile
memory.
If spooling were active prior to power
down, it shall continue. If TRANSMIT
SPOOL were active at powerdown,
transition #6 is expected to follow
since communications state is initially
NOT COMMUNICATING.
4.11.3.2 Enabling Spooling — The equipment shall
provide the host with the ability to enable and disable
Spooling for any message (except Stream 1 messages
(i.e., S1,F1, S1,F13)) via the S2,F43/F44 transaction.
Spooling may be enabled for an entire Stream, for
individual messages within a stream, or for any
combination of the two. Streams and Functions not
referenced in this message are not spooled. Spooling
can be totally disabled by sending an S2,F43 with a
zero length list for the first item (see S2,F43 definition).
In addition, the equipment shall provide an equipment
constant, EnableSpooling, to allow setting the enable or
disable of spooling. NOTE: When EnableSpooling is
false, the SPOOL state cannot transition from
SPOOLINACTIVE to SPOOLACTIVE. Changing
EnableSpooling does not change the spool state, purge
the spool or change streams and functions enabled for
spooling. Once the equipment is “SPOOL ACTIVE”,
the host must initiate the spool unload sequence to