Process Job State Model (SEMI E40)
1. Overview
The Process Job (PJ) State Model defines the lifecycle of a process job as specified in SEMI E40 (Process Job Management). A process job represents a request to process specific substrates using specific recipes.
2. Process Job State Diagram
stateDiagram-v2
[*] --> QUEUED: Create Job
QUEUED --> SETTING_UP: Start command
QUEUED --> [*]: Abort / Cancel
SETTING_UP --> WAITING_FOR_START: Setup complete
SETTING_UP --> PROCESSING: Auto-start
SETTING_UP --> ABORTING: Abort command
SETTING_UP --> QUEUED: Setup failed
WAITING_FOR_START --> PROCESSING: Start command
WAITING_FOR_START --> ABORTING: Abort command
PROCESSING --> PROCESS_COMPLETE: All substrates done
PROCESSING --> PAUSING: Pause command
PROCESSING --> ABORTING: Abort command
PROCESSING --> STOPPING: Stop command
PAUSING --> PAUSED: Pause complete
PAUSED --> PROCESSING: Resume command
PAUSED --> ABORTING: Abort command
STOPPING --> QUEUED: Stop complete
ABORTING --> QUEUED: Abort complete (partial)
ABORTING --> [*]: Abort complete (full)
PROCESS_COMPLETE --> [*]: Job removed
3. State Definitions
State
Description
QUEUED
Job created, waiting to be started
SETTING_UP
Job is preparing (loading recipe, reserving resources)
WAITING_FOR_START
Setup complete, waiting for explicit start
PROCESSING
Job is actively processing substrates
PAUSING
Job is transitioning to paused state
PAUSED
Job is paused, can resume or abort
PROCESS_COMPLETE
All substrates processed successfully
STOPPING
Job is stopping at safe point
ABORTING
Job is aborting
4. Transition Table
#
From State
Trigger
To State
Action
1
-
PRCreateJob
QUEUED
Create job instance
2
QUEUED
PRStart
SETTING_UP
Begin setup
3
QUEUED
PRAbort
(removed)
Delete job
4
SETTING_UP
Setup done
WAITING_FOR_START
Wait for start
5
SETTING_UP
Auto-start
PROCESSING
Begin processing
6
SETTING_UP
PRAbort
ABORTING
Abort job
7
SETTING_UP
Fail
QUEUED
Report error
8
WAITING_FOR_START
PRStart
PROCESSING
Begin processing
9
WAITING_FOR_START
PRAbort
ABORTING
Abort job
10
PROCESSING
Complete
PROCESS_COMPLETE
All done
11
PROCESSING
PRPause
PAUSING
Pause processing
12
PROCESSING
PRStop
STOPPING
Stop at safe point
13
PROCESSING
PRAbort
ABORTING
Abort processing
14
PAUSING
Paused
PAUSED
Processing paused
15
PAUSED
PRResume
PROCESSING
Resume processing
16
PAUSED
PRAbort
ABORTING
Abort job
17
STOPPING
Stopped
QUEUED
Ready for restart
18
ABORTING
Aborted
QUEUED/removed
Handle abort
5. Process Job Attributes
Attribute
Type
Description
PRJobID
A
Unique process job identifier
PRState
U1
Current state value
PRMtlNameList
L
List of substrate IDs to process
RecID
A
Recipe identifier
PRMtlType
U1
Material type (carrier/substrate)
PRProcessStart
Boolean
Start immediately after setup
PRPauseEvent
L
Events that trigger pause
CarrierInputSpec
L
Input carrier specification
MtrlOutSpec
L
Output specification
5.1 Process Job State Values
Value
State
1
QUEUED
2
SETTING_UP
3
WAITING_FOR_START
4
PROCESSING
5
PAUSING
6
PAUSED
7
PROCESS_COMPLETE
8
STOPPING
9
ABORTING
Message
Direction
Description
S16F11
H→E
PRCreateJob - Create process job
S16F12
E→H
PRCreateJob Acknowledge
S16F15
H→E
PRMultiCreate - Create multiple jobs
S16F16
E→H
PRMultiCreate Acknowledge
S16F17
H→E
PRJobStateChange - Command job
S16F18
E→H
PRJobStateChange Acknowledge
S16F19
H→E
PRGetAllJobs - Get job list
S16F20
E→H
PRGetAllJobs Data
S16F21
H→E
PRGetJobInfo - Get job details
S16F22
E→H
PRGetJobInfo Data
6.1 S16F11 - PRCreateJob
Structure:
S16F11 W
<L[n]
<DATAID>
<PRJOBID>
<PRMTLTYPE> // 0=Carrier, 1=Substrate
<L[m] // Material name list
<CARRIERID> or <SUBSTRATEID>
...
>
<L[k] // Process job attributes
<L[2]
<ATTRID>
<ATTRDATA>
>
...
>
>
6.2 S16F12 - PRCreateJob Acknowledge
Structure:
S16F12
<L[2]
<PRJOBID>
<ACKA> // 0=Success, 1=Fail
>
6.3 S16F17 - PRJobStateChange
Structure:
S16F17 W
<L[3]
<PRCMD> // Command
<L[n] // Job list
<PRJOBID>
...
>
<L[m] // Command parameters
<L[2]
<CPNAME>
<CPVAL>
>
...
>
>
PRCMD Values:
Value
Command
Description
1
START
Start job
2
PAUSE
Pause job
3
RESUME
Resume job
4
CANCEL
Cancel job (from QUEUED)
5
DEQUEUE
Remove job from queue
6
ABORT
Abort job
7
STOP
Stop job at safe point
7. Process Job Creation Sequence
sequenceDiagram
participant Host
participant Equipment
Host->>Equipment: S16F11 W (PRCreateJob)
Note right of Host: PRJobID="JOB001"<br/>RecID="RECIPE001"<br/>MtlList=[SubID1, SubID2]
Note over Equipment: Validate job parameters
Note over Equipment: Create job instance
Equipment-->>Host: S16F12 (ACKA=0, Success)
Note over Equipment: State: QUEUED
Equipment->>Host: S6F11 (ProcessJobCreated)
Host-->>Equipment: S6F12
8. Process Job Execution Sequence
sequenceDiagram
participant Host
participant Equipment
Note over Equipment: State: QUEUED
Host->>Equipment: S16F17 W (PRCMD=START)
Equipment-->>Host: S16F18 (Success)
Note over Equipment: State: SETTING_UP
Equipment->>Host: S6F11 (PRJobStateChange)
Host-->>Equipment: S6F12
Note over Equipment: Load recipe, prepare resources
Note over Equipment: State: PROCESSING
Equipment->>Host: S6F11 (PRJobStateChange)
Host-->>Equipment: S6F12
loop For each substrate
Note over Equipment: Process substrate
Equipment->>Host: S6F11 (SubstrateProcessed)
Host-->>Equipment: S6F12
end
Note over Equipment: State: PROCESS_COMPLETE
Equipment->>Host: S6F11 (PRJobComplete)
Host-->>Equipment: S6F12
9. Material Out Specification (MtrlOutSpec)
Defines where processed substrates should go:
Field
Description
DestPort
Destination load port
DestCarrier
Destination carrier
DestSlot
Destination slot
CEID
Name
Description
[7001]
PRJobCreated
Process job created
[7002]
PRJobStateChange
Process job state changed
[7003]
PRJobComplete
Process job completed
[7004]
PRJobAborted
Process job aborted
[7005]
PRJobPaused
Process job paused
[7006]
PRJobResumed
Process job resumed
SVID
Name
Type
Description
[7001]
ActivePRJobCount
U2
Number of active process jobs
[7002]
PRJobList
L
List of active job IDs
12. Error Handling
Error Condition
Response
Invalid recipe
S16F12 ACKA=1
Invalid substrate ID
S16F12 ACKA=1
Job limit exceeded
S16F12 ACKA=1
Wrong state for command
S16F18 with error
February 5, 2026
February 5, 2026