三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Module Builder——Gem300之E40 ProcessJob模块

Module Builder——Gem300之E40 ProcessJob模块

E40 ProcessJob(工艺作业,简称PJ)是SEMI E40(Processing Management)标准定义的核心对象,专门用于规范设备对物料(晶圆/基板)执行具体工艺加工的全生命周期管理。它是GEM300体系中真正“干活”的执行单元,通常与E94 ControlJob( 调度单元)配合使用,构成300mm晶圆厂自动化的作业控制底座。

核心定位与价值

  • 标准化工艺执行:定义对哪些物料(PRMtlNameList)、用哪个配方(RecID)、按什么顺序、在什么资源上加工的标准通信模型,消除私有接口导致的误处理风险。
  • 精细化状态追踪:为每一批(或每一片)物料的加工过程建立独立的状态机,Host可实时掌握排队、准备、加工、暂停、中止等全阶段进度。
  • 与调度解耦:PJ只关注“怎么加工”,不关心“先加工谁”;多PJ的编排、调度、协同由上层E94 ControlJob负责,职责清晰。

核心概念与对象关系

  • Process Job(PJ):由Host(工艺主管)创建的动态对象,绑定物料列表(PRMtlNameList)+配方(RecID)+加工资源,一旦物料到达即自动或由命令触发执行,无需Host再干预。
  • 与ControlJob的关系:1个E94CJ包含1~n个E40PJ。CJ负责选中和启动,PJ负责实际工艺;PJ是CJ的执行载体。
  • 与E87/E90的协同:PJ的物料来源于E87管理的Load Port/FOUP,加工过程中单片晶圆的位置由E90 Substrate Tracking实时追踪。

关键状态机(Lifecycle)

E40定义了PJ从创建到销毁的完整状态流转(Harel状态图),核心状态如下:

  • QUEUED/POOLED:PJ已创建,在队列中等待资源分配或被选中。
  • SETTING_UP:资源预处理阶段,如加载配方、腔室预热、预留硬件资源。
  • WAITING_FOR_START:准备完成,等待显式启动命令(若PRProcessStart=false)。
  • PROCESSING:物料就绪且配方加载完成,正在执行核心加工(如刻蚀、沉积、光刻)。
  • PAUSING→PAUSED:收到暂停指令,过渡到安全中断点挂起,可恢复或中止。
  • STOPPING:收到有序停止指令,在安全检查点平滑停止。
  • ABORTING:收到紧急中止指令,立即终止并进入错误恢复。
  • PROCESS_COMPLETE:所有物料加工完成,执行后处理(如腔室冷却、清理)。
  • COMPLETE/ABORTED/STOPPED/CANCELLED:PJ终结,从设备内存中移除并上报最终结果。

所有状态转换都必须通过S6F11(Event Report)上报对应的CEID,确保Host端状态同步。

典型应用流程

1.创建PJ:Host通过PRJobCreate(S7F1)下发PJ定义(物料、配方、参数)。

2.入队/选中:设备接受后进入QUEUED;若绑定到CJ,由CJ选中后转入SETTING_UP。

3.准备:加载配方、预热腔室,若需手动启动则停在WAITING_FOR_START,收到PRJobStart后进入PROCESSING。

4.加工执行:实际工艺执行,期间可响应Pause/Stop/Abort命令。

5.完成:加工结束执行后处理,上报PROCESS_COMPLETE,PJ销毁并通知Host。

Module Builder中的ProcessJob模块主要是展示ProcessJob Service相关的事件和数据,并支持用户对其进行ID修改。同时还支持对ProcessJob Service相关的配置项进行修改。

ProcessJob Service相关配置项如下:

maximumProcessJobs:同一个CJob同时最多能管理多少个PJob可以用于验证当前是否有 ProcessJob 空间(防止ProcessJob 数量超过系统上限)。

completedRelease:它决定了筛选 Wafer 进释放列表的门槛是高还是低。

verifyJobMaterial:用来控制在 CompleteJobSetup阶段(Job 设置完成,准备进入 Processing / Waiting 状态)是否对 Process Job 的物料类型和物料清单进行合法性校验;开启时会调用 VerifyMaterial,一旦失败立即中止 Job 并抛出异常,防止非法物料进入后续工艺流程。

multipleActiveProcessJobsAllowed:用于控制同一 Equipment / Process 下是否允许同时存在多个处于“活跃状态”的 Process Job。

← 返回列表