所以GEM300标准也随之而来。
在这只是记录一下自己的理解,防止忘记。
1. 用户需求
为了应对制造过程中的复杂性,设备必须能够协调其加工服务已满足工厂需求。
CJ提供了工厂所需的协调服务,CJ满足的要求包括:
1.设备协调相关工作方法,例如与载体相关的所有加工任务;
2.设备再加工后通知材料目的地的方法。CJ不属于任何特定的加工任务类型。不负责处理资源和特定的处理材料的协调。
3.CJ已排队。对于支持CJ作业的设备,PJ不排队,而是汇集起来等待由各自的CJ定排。CJ指定PJ的顺序。设备在资源可用按照顺序运行。
2. 供应商要求
工艺材料管理:
供应商需要实施一种操作模式,以符合工厂的期望来管理材料和加工。例如:设备必须能够识别何时完成与载体的连接,以便允许或通知工厂移除载体。该标准提供这一要求机制。虽然该模型暗示了实施过程,但标准仅要求外部事件。
使用CJ会限制某些SEMI E40 PJ功能。特别是,设备的PJ队列管理功能将被CJ中定义的作业顺序所取代。
CJ与PJ之间的关系因设备类型而异。设备供应商应记录这种关系。通常情况下,终止或停止一个PJ不会影响CJ的执行。设备应根据PJ的结束方式正确处理材料。对于那些CJ与PJ之间始终存在一对一关系的设备类型,自动终止或停止过程作业可能会更加方便。同样地,如果一个CJ涉及多个PJ,那么自动终止或停止所有相关的PJ可能会更加方便
3. CJ属性
Name | 解释 | 必要条件 | 访问 | 类型 |
---|---|---|---|---|
ObjID | 主机定义的控制作业标识符 | Y | 只读 | Text |
ObjType | 对象类型 | Y | 只读 | Text=“ControlJob” |
CurrentPRJob | 保留任何当前正在运行的PJ的标识符,即使作业处于暂停状态 | Y | 只读 | (list of) PRJobID (see SEMI E40) |
DataCollectionPlan | 用于在执行控制作业期间使用的数据收集计划的标识符 | N | 读写 | Text |
CarrierInputSpec | ControlJob将使用的材料的carrierID列表。允许为空列表 | Y | 读写 | (list of) CarrierID |
MtrlOutSpec | 处理后,将物料从源位置移动到目标位置。对于 单 载 波 操 作 , 该 列 表 应 为 空 。 如 果CarrierInputSpec是一个空列表,则该列表也应为空 | Y | 读写 | List of Structure: SourceMap DestinationMap |
MtrlOutByStatus | 列表结构,根据材料状态映射将被处理的材料放置的位置或承运商 | N | 读写 | List of Structure: Destination MaterialStatus |
PauseEvent | 控制作业应暂停的事件列表标识符 | N | 读写 | (list of) EventID |
ProcessingCtrlSpec | 一 个 结 构 列 表 , 定 义 了 PJ 以 及 在 该CJ中运行的每个作业的规则 | Y | 读写 | (list of) Structure: PRJobID ControlRule OutputRule |
ProcessOrderMgmt | 定义启动PJ的顺序方法 | Y | 读写 | Enumeration: LIST ARRIVAL OPTIMIZE |
StartMethod | 一个逻辑标志,用于确定ControlJob是否可以自动启动。用户可通过主机连接或操作员控制台启动 | Y | 只读 | Boolean: TRUE – Auto FALSE – UserStart |
State | CJ的当前状态 | Y | 只读 | Enumerated: per State Model |
CJ中由许多属性是复合数据类型。数据组成在下表定义:
数据标识符 | 描述 | 类型 |
---|---|---|
CarrierID | 料盒ID | Text |
ControlRule | 提供其他作业控制功能。它取决于设备类型。它可用于根据处理结果修改处理。对于不支持此属性的设备,不需要使用此属性。供应商应在支持此属性时记录其使用情况 | (list of) Structure: RuleName RuleValue |
Destination | 放置材料的目标位置 | Text |
DestinationMap | 描述成品材料将被放置的载体位置。如果载体位置列表为空,则按照源的顺序进行排列 | Structure: CarrierID List of SubstrateLocation |
MaterialStatus | ControlJob处理将此值分配给成品物料。通过将“物料状态”与“目的地”关联,ControlJob处理可将物料放置到所需的目的地 | Equipment dependent enumeration |
OutputRule | 根据流程作业的结果定义物料状态(如“良好”、“拒收”、“中止”、“监控”等)。 | Equipment dependent |
PRJobID | PJ ID | See SEMI E40. |
Rule Value | 设备用于执行控制规则的值 | Equipment dependent |
RuleName | 控制规则标识符 | Text |
SourceMap | 描述用于处理的材料的来源位置。如果位置列表为空,则假定默认顺序为升序。 | Structure: CarrierID List of SubstrateLocation |
SubstrateLocation | 基板在源和目标位置上的位置。载体是多位置目标的一个示例。对于晶圆载体,基板位置是插槽号 | numeric |
ControlRule: 对于支持此属性(字段)的设备,主机会设置此属性以现更好的主机处理控制能力。例如,主机可能已经测量了待处理材料的特性。根据产品和工艺步骤使用标准配方,但基于测量的特性,配方的应用会受到指定规则和传递给规则的值(RuleValue)的影响。然而,ControlRule的使
用不应仅限于这种类型的应用。
DataCollectionPlan: 数据收集计划是主机为特定控制任务分配的一个名称,用于关联数据收集活动。通常,它提供了一种方式,使设备能够通知并协调主机,以接收数据收集请求。数据收集计划是一个通用概念,适用于多种控制任务。设备在响应主机请求时,会报告一个名为“数据收集计划”的变量,该变量本身对设备没有实际意义。通常情况下,主机在接收到ControlJob START事件后,会将DataCollectionPlan作为要报告的数据变量。这样,主机就能确定设置各种跟踪报告和设备事件报告的合适时机。所
有指定相同产品类型和工艺能力的任务都可以使用相同的DataCollectionPlan。
OutputRule: 只有具备某种方法来确定其已处理材料状态的设备才支持此属性。对于具有这种能力通常以名称值对的形式呈现。名称代表材料状态,值则对应于这些状态类别(如良好、拒收、返工等)的测量阈值。设备应记录基板(材料)状态的变化,并在基板历史中进行记录。
同样支持MtrlOutbyStatus的设备应使用OutputRule 确 定 的 状 态 , 将 基 板 放 置 在 与MaterialStatus相关联的目标位置。
4. CJ状态模型
状态定义:
QUEUED:ControlJob在创建或取消选择后被排队。新创建的ControlJob被放置在队列尾部
SELECTED:在此状态下,ControlJob不会启动其指定的流程作业,因此可以修改基于配方变量参数预定义的流程条件。在选定状态下,处理资源
被ControlJob保留(不用于其他任何作业)。如果ControlJob所需的材料尚未到达设备,ControlJob将保持此状态,直到材料到达。如果ControlJob或
其第一个流程作业不需要材料,此状态将立即结束。如果指定的材料未到达,选定的ControlJob可以取消选择
WAITING FOR START:ControlJob正在等待从主机手动或远程接收启动命令。只有当StartMethod设置为FALSE(UserStart)且材料已到达时,ControlJob才会转换到此状态
EXECUTING:在此状态下,ProcessingCtrlSpec中的 每 个 处 理 作 业 将 根 据 ControlJob 的ProcessOrderMgmt属性值按顺序启动,当所需资源可用且作业材料已验证后。如果已启动但处于WAITINGFORSTART或PAUSED状态的处理作业,将阻止其所需资源的可用性(参见SEMI E40)。
注 : 如 果 进 程 作 业 已 阻 塞 可 用 资 源 , 则 会 导 致
ControlJob停止启动使用这些资源的后续进程作业
PAUSED:当ControlJob被暂停时,它将不会启动任何更多的Process作业。在此状态下,未进入“处理”状态的Process作业可以被修改。还可以修改ControlJob的各种属性。这是设备特定的,并且应由设备供应商记录。
COMPLETED:控制作业在所有进程作业都已完成、停止或中止后,将进入此状态。在此状态下,控制作业可以响应对其属性值的请求
CJ状态转换表:
序号 | 之前状态 | 触发条件 | 新状态 | 动作 | 说明 |
---|---|---|---|---|---|
1 | no state | 接收到远程创建CJ指令 | QUEUED | 创建CJ并将它放在CJ队列的尾部 | 如果队列已满,则创建请求将被拒绝 |
2 | QUEUED | 接收“Cancel”, “Abort”,or “Stop”指令 | no state | 退出队列并终止作业 。 向 主 机 发 送“ControlJob Canceled”事件 | 如果队列中取消的控制作业后面还有其他等待的控制作业,则这些作业将被向前移动,以填补取消的控 制 作 业 出 队 之 后 的 空缺 |
3 | QUEUED | 处理资源具有开始处理下一个CJ的能力 | SELECTED | 选择队列中的作业并出队。向主机发送“SELECTED“事件 | 这时候料盒不一定在设备上 |
4 | SELECTED | 接收“De-select”指令,且用于CJ的材料尚未到达 | QUEUED | 未选中的作业移动到作业队列的头部,而原本位于头部的作业则成为SELECTED 作业 | 如果队列首部作业的资源不 可 用 , 则 将 拒 绝 该 命令 。 请 参 阅 “ 队 列 模型”。 |
5 | SELECTED | 第一个工艺作业的材料到达,或者在第一个(或唯一)工艺作业不需要材料的情况下,应尽快进行该处理资源的转换 | EXECUTING | 发送“Executionbegan” 事件到主机 | 只有在验证了载体的标识符和基板插槽映射后,才会启动与载体相关的处理作业。可以启动不使用材料的处理作业(验证CarrierID和Slot Map) |
6 | SELECTED | StartMethod属性设置为用户启动 | WAITING FORSTART | 发送”JobWaiting for Start”事件 | |
7 | WAITING FORSTART | 收到启动命令 | EXECUTING | 与5相同 | 与5相同 |
8 | EXECUTING | 收到“Pause”消息 | PAUSED | 发送“PAUSED ”事件 | 在此状态下可以修改尚未开始的任务作业 |
9 | PAUSED | 收到“Resume”消息 | EXECUTING | 启动PJ,发送“Resumed”事件 | |
10 | EXECUTING | CJ内所有PJ已完成 | COMPLETED | 发送“COMPLETED”事件 | 可能包括后处理完成 |
11 | ACTIVE | 收到“CJStop”消息,表明已停止所有工艺作业和物料加工 | COMPLETED | 发送“CJStop”事件 | |
12 | ACTIVE | 收到“CJAbort”消息 | COMPLETED | 发送“CJAbort”事件 | |
13 | COMPLETED | 删除CJ | no state | 设备应执行此功能对于已完成的工作,在它们已持续至少一天之后 |
一个批次作业的控制作业
将单个Carrier作为一个批次进行处理。此示例演示了在简单情况下使用控制作业的简便性。晶圆顺序保持不变,将晶圆材料退回到源载体。
# | 解释 | Dir | 消息 | CJ状态 | PJ状态 |
---|---|---|---|---|---|
1 | 创建PJ | H->E | PRJobCreateEnh(PRJobID=prj01_04, Mtrl=CS001,RecID=ILD3) | No state | No state |
2 | H<-E | PRJobCreateAck(PRJobID,PRJobStatus) | In POOL | ||
3 | 请求CJ,材料 输出规格保持 从源载流器 到目标载流器 的硅片顺序 | H->E | ControlJobCreate (CtrlJobID=cjf01_01, ProcessingCtrlSpec=(prj01_04,null,null), MtrlOutSpec=(CS001,null,null), MaterialIn=CS001, StartMethod=AUTO) | ||
4 | 接收请求 | H<-E | ControlJobCreateAck (CtrlJobID=cjf01_01,JobStattus) | QUEUED | |
5 | 如果没有CJ是 SELECTED 状态,因此新创建的CJ 状态立即变换 | H<-E | 事件 (CJSELECTED, CtrlJobID=cjf01_01) | SELECTED | |
6 | CJ指定的 Carrier到达LP | H<-E | 事件 (CARRIERIDREAD, CID=CS001) | ||
7 | 设备识别并开始执行CJ | H<-E | 事件(ControlJobStart,cjf01_01) | EXECUTING | |
8 | CJ启动PJ,开始 将晶圆装载到腔体中 | H<-E | 事件(PRJOBSETUP,prj01_04) | ACTIVE SETUP | |
9 | 晶圆加工开始 在晶圆放入腔体后 | H<-E | 事件 (PRJOBPROCESSING,prj01_04) | ACTIVE PROCESSING | |
10 | 设备开始将晶圆 返回到原载体(目标载体) | H<-E | 事件 (PROCESSINGCOMPLETE, PRJob=prj01_04) | ACTIVE PROCESSING COMPLETE | |
11 | Carrier装满晶圆 | H<-E | 事件(CarrierComplete=CS001) | ||
12 | Host想要拿走Carrier | H->E | Rcommand(CarrierOut=CS001) | ||
13 | 可以从设备上拿走Carrier | H<-E | 事件(ReadtoUnload,CarrierID=CS001,PortID) | ||
14 | H<-E | 事件(PRJOBCOMPLETE,PRJob=prj01_04) | No state | ||
15 | 作业可以在Carrier拿走之前完成 | H<-E | 事件(ControlJobCompleted=cjf01_01,status=OK) | COMPLETE |
后面再慢慢更新