1. 半导体设备软件自动运行全景

半导体设备软件不是“一个程序在跑”,而是由多层控制软件协同完成的一次完整生产动作。以典型的等离子体刻蚀或薄膜沉积设备为例,一片晶圆从进入设备到离开设备,需要经过大气传输、真空传输、对准、工艺腔室处理、冷却、回传等多个物理环节,每个环节背后都有独立的控制逻辑,同时又必须服从整机的统一调度。理解自动运行,首先要建立“分层”的视角:不同层解决不同问题,层与层之间通过明确的接口和状态约定协作。

一、三层架构:整机调度、流程编排、状态机

从职责边界看,半导体设备软件通常可以抽象为三个层次。

整机调度层(Scheduler / Cluster Controller)负责“什么时候让谁做什么”。它掌握整台设备的资源视图:有几个大气机械手、几个真空传输腔、几个工艺腔室、哪些腔室可用、哪些正在维护。调度层的核心任务是排程与资源分配,例如决定一片晶圆先进入哪个传输腔、再分配到哪个工艺腔室,以及多片晶圆并行时如何避免机械手和腔室冲突。它关心的是吞吐量、腔室利用率和调度策略,而不是某个阀门的具体开合时序。

流程编排层(Recipe / Process Flow Orchestration)负责“一件事按什么顺序做”。它把工艺配方(Recipe)和传输步骤组织成可执行的流程,例如“抽真空→充气→升温→稳定→点火→刻蚀→吹扫→回传”。流程编排层定义步骤的先后关系、分支条件、循环次数和异常跳转,是工艺意图与设备动作之间的桥梁。它不直接驱动硬件,而是把每一步翻译成对下层状态机的调用请求。

状态机层(Equipment State Machine / Module Control)负责“当前这一步具体怎么做、做到什么程度算完成”。它直接面对传感器和执行器:阀门、质量流量控制器(MFC)、射频电源、机械手伺服、真空计等。状态机以“状态+迁移条件”的方式描述模块行为,例如传输腔从 IDLE 到 PUMPING 再到 READY,每个迁移都由明确的传感器条件触发。状态机是自动运行的最小可靠单元,它保证单个动作的可重复性和安全性。

半导体设备软件自动运行分层架构 整机调度层 Scheduler 资源视图:大气机械手 ATM、真空传输腔 TM、工艺腔室 PM1~PM4、冷却腔 决策:排程顺序、腔室分配、并行晶圆调度、冲突避免 关注指标:吞吐量 WPH、腔室利用率、调度策略 流程编排层 Recipe / Flow Orchestration 组织:Recipe 步骤序列、传输流程、分支条件、循环与异常跳转 示例流程:抽真空 → 充气 → 升温 → 稳定 → 点火 → 刻蚀 → 吹扫 → 回传 输出:对下层状态机的调用请求(Step Command) 状态机层 Module State Machine 对象:阀门、MFC、RF 电源、机械手伺服、真空计、加热器 行为:状态 + 迁移条件,如 IDLE → PUMPING → READY 保证:单动作可重复性、安全性、超时与互锁 下发任务 / 资源分配 步骤调用 / 状态查询 状态反馈 / 完成信号 进度上报 / 异常上报 物理设备对象 大气机械手 · 真空传输腔 · 工艺腔室 · 阀门 · MFC · RF 电源 · 真空计 · 加热器 驱动 / 采集

二、三者的协作关系:一次晶圆传输的完整链路

把三层放在一次真实的晶圆传输中看,协作关系会更清楚。假设调度层决定将一片晶圆送入 PM2 进行刻蚀,它会向流程编排层下发“执行 PM2 刻蚀流程”的任务。流程编排层根据 Recipe 展开步骤序列,第一步通常是“将晶圆从 Load Port 传送到大气机械手”。此时流程编排层不会直接命令机械手电机转动,而是调用大气传输模块状态机的 TRANSFER_TO_ALIGNER 请求。

状态机收到请求后,检查自身是否处于 IDLE 且无报警,然后依次执行:确认晶圆存在、闭合夹爪、抬升、旋转到目标位置、下降、释放。每一步都有传感器反馈作为迁移条件,例如夹爪闭合到位信号、真空吸附压力达到阈值。当状态机到达 DONE 后,向流程编排层返回完成信号,流程编排层再推进到下一步。调度层则在整个过程中持续监控各模块状态,一旦某个腔室提前完成,就安排下一片晶圆进入,实现流水线式并行。

这里的关键边界是:调度层不关心阀门怎么开,状态机不关心整机有几片晶圆在排队。流程编排层夹在中间,既要把工艺意图翻译成设备动作序列,又要把状态机的反馈汇总成可判断的流程进度。三层各司其职,才能让设备在保证安全与工艺一致性的前提下达到高吞吐。

三、为什么必须分层:耦合与解耦的工程取舍

如果不用分层,把所有逻辑写在一个大程序里,短期看似简单,长期会带来三个问题。第一,工艺变更困难:调整一个刻蚀步骤的时间,可能牵动传输逻辑和调度策略,回归测试范围不可控。第二,硬件替换困难:更换机械手品牌后,所有调用点都要改。第三,异常定位困难:报警发生时无法判断是调度冲突、流程跳转错误还是状态机迁移条件不满足。

分层之后,每层有独立的测试边界。状态机可以用单元测试验证每个迁移条件;流程编排可以用仿真桩(Stub)模拟状态机返回,验证步骤顺序和异常分支;调度层可以用离散事件仿真验证排程策略。这种可测试性是半导体设备软件能够支撑 24 小时连续运行的基础。

分层不是绝对的。实际设备软件中,状态机层可能进一步细分为“模块状态机”和“子系统状态机”,流程编排层也可能与调度层共享部分资源状态。但职责边界必须清晰:谁做决策、谁做翻译、谁做执行,三者不能混在一起。

四、自动运行的典型数据与信号流

从信号流角度看,自动运行包含两条方向相反的通路。下行通路是“命令流”:调度层 → 流程编排层 → 状态机 → 执行器。上行通路是“状态流”:传感器 → 状态机 → 流程编排层 → 调度层。下行通路的每一步都应该有超时监控,上行通路的每一个关键状态都应该有变化记录。

以真空传输腔抽真空为例,状态机从 IDLE 迁移到 PUMPING 时,会打开粗抽阀并启动干泵。真空计读数从大气压逐步下降,当达到设定阈值(例如 10 Pa)时,状态机迁移到 READY。这个阈值、超时时间(例如 60 秒)和报警条件(例如 90 秒未达到)都是状态机的参数。流程编排层只看到“传输腔就绪”这个结果,不需要知道真空计的具体读数。调度层则根据“传输腔就绪”决定是否可以安排下一片晶圆进入。

这种“结果导向”的接口设计,让上层不必依赖底层硬件的具体实现,也让底层可以在不改变接口的前提下升级传感器或阀门。对于设备软件工程师来说,理解这三层的职责边界,是设计、调试和排障自动运行逻辑的起点。

五、本节要点回顾

  • 整机调度层负责资源分配与排程,关注吞吐量和腔室利用率。
  • 流程编排层负责将 Recipe 和传输步骤组织成可执行流程,处理顺序、分支和异常跳转。
  • 状态机层负责单个模块的具体动作,以状态和迁移条件保证可重复性与安全性。
  • 三层通过“命令下行、状态下行”协作,接口以结果为导向,避免跨层耦合。
  • 分层的核心价值在于可测试、可替换、可定位,是设备软件长期稳定运行的基础。