Skip to content

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