尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

半导体良率分析平台的多源数据集成实战:从SECS/GEM到EAP

半导体良率分析平台的多源数据集成实战:从SECS/GEM到EAP 从事半导体制造或者封测这一行的朋友应该都对“良率”这俩字又爱又恨。它直接跟钱挂钩跟产能挂钩跟客户信任挂钩。但真要把良率分析做好尤其是当产品进入量产爬坡或者遇到异常波动时你手里得有足够“干净”且“全面”的数据否则一切分析都是空谈。我这两年深度参与了公司良率分析平台的数据底座建设核心工作就是把产线上那些五花八门的设备数据、工艺数据、测试数据给“揉”到一块。今天这篇就专门聊聊多源数据集成这件事在半导体良率分析平台里到底是怎么落地的又踩了哪些坑。这套东西不光是给数据分析师看的做设备自动化EAP、搞SECS/GEM协议对接、以及负责MES维护的兄弟我建议都花几分钟看看因为你们每天经手的那些报文和数据正是整个平台的“口粮”。1. 为什么良率分析平台必须做多源数据集成先别急着谈技术架构我们得先聊聊“为什么”。很多人觉得良率分析不就是看看CPCircuit Probing晶圆探针测试和FTFinal Test最终测试的map图吗哪有那么复杂。如果你只做成品良率的统计报表那确实不复杂Excel都能干。但只要你想做一点深度的根因分析比如“这批晶圆边缘区域的失效为什么突然变多”你会立刻发现你需要的数据压根就不在同一个地方。1.1 良率分析的“五马分尸”困局一条典型的半导体产线从硅片进厂到最后出货数据散落在至少五个独立的系统里。设备数据来自光刻机、刻蚀机、薄膜沉积设备、清洗机等工艺设备。这些设备每秒钟都在产生海量的实时数据包括腔体压力、温度、射频功率、气体流量、机械手臂位置等等。这些数据通常通过SECS/GEM协议传给EAP系统或者存在设备本地的历史库里。测试数据这是良率分析的核心主要来自测试机比如Teradyne的UltraFlex系列也就是大家常说的93K、探针台Prober和分选机Handler。这里的数据包括每颗Die的测试结果Bin号、电压电流参数、良率map图等。注意测试数据又分CP和FT两种数据格式和含义完全不同。制造执行数据存储在MES制造执行系统里记录了批次Lot的加工路径Route、在制品WIP信息、设备派工情况、操作员信息、工艺配方Recipe版本等。工艺配方数据通常是设备端Recipe的具体参数设置。有时候MES里只记录了Recipe的ID和版本但Recipe内部的详细参数只有设备控制器里才有。** defect检测数据**来自缺陷检测设备如KLA的暗场/明场检测设备的缺陷坐标、缺陷尺寸、缺陷类型ADC分类结果等。这五个系统的数据格式完全不同时间粒度不同设备厂商的通信协议也不同。要做良率分析就得把这五个源头的数据按照“晶圆ID 设备ID 加工时间 工艺步骤”的维度对齐起来。这就是多源数据集成存在的唯一理由消除数据孤岛让数据的关联分析成为可能。1.2 数据集成解决的两个核心业务问题数据集成不是目的解决业务痛点才是目的。在我看来它主要解决两件事第一件事是异常回溯。产线反馈某批货良率突然从97%掉到90%传统的做法是工艺工程师凭经验猜是哪个步骤出了问题然后去翻该设备的历史记录。有了多源数据集成的平台你只需要输入Lot ID系统自动关联出这批货经过的所有设备、所有工艺参数、所有测试结果甚至能自动匹配到当时的环境温湿度。分析时间从按“天”计算缩短到按“分钟”计算这就是集成带来的直接价值。第二件事是参数相关性挖掘。光刻机的聚焦精度Focus和刻蚀机的射频驻波比VSWR之间可能对最终的晶体管阈值电压Vt有交互影响。这种跨设备的关联分析在数据孤岛时代几乎没法做。但把数据都拉到一个平台里用简单的相关性分析或者机器学习模型就能找到那些隐藏的“魔鬼组合”。这类分析对于先进工艺的良率爬坡至关重要。2. 数据集成方案的核心设计与技术选型现在大家都喜欢谈“数据中台”、“湖仓一体”但半导体产线里的数据集成方案选型往往没有那么自由。因为现场环境对数据安全、实时性、稳定性的要求极高而且在产线里搞平台最怕“动静太大”影响生产。2.1 数据流向与分层架构规划我参与搭建的这套平台在逻辑上分了四层采集层、传输层、存储层、应用层。采集层这一层负责跟设备打交道。对于支持SECS/GEM协议的设备绝大部分前道工艺设备和后道测试设备都支持直接通过EAP系统的接口拿数据。对于没有标准通信接口的老旧设备或者SECS协议里没定义的数据比如设备内部日志文件就得靠驻留agent的方式主动去拉取或者接收文件。传输层考虑到产线网络通常和办公网隔离数据传输不能直接穿透。我们是部署了一套基于消息队列Kafka的缓冲机制在产线DMZ区架设了数据转发服务。数据先落地到产线侧的本地存储再由转发服务异步上传到分析平台所在的核心数据区。这样做的好处是即使分析平台升级或者网络抖动也不会影响产线设备的数据采集EAP系统和设备不受牵连。存储层这是很多人容易搞错的点。我们并没有把所有的数据全塞进一个库而是采用了“混合存储”策略。设备产生的实时状态数据比如每100ms一条的RF功率数据量太大存进时序数据库如InfluxDB或TDengine。测试结果数据Die级别的Bin信息结构化程度高且查询频繁放在关系型数据库如PostgreSQL。设备报警日志、Recipe文件等非结构化数据则存放在对象存储如MinIO里。应用层这一层就是良率分析平台真正给用户看的界面和功能了。包括良率报表、SPC监控、Map图分析、多变量分析模块等。这个分层架构的核心思想是“各司其职”尤其要把实时采集链路和批量分析链路分开。因为实时采集要求低延迟而批量分析往往需要跑复杂的聚合查询两者如果混在一起互相拖后腿现场会非常难受。2.2 选型背后的“为什么”在技术选型上我有几个比较深的体会供参考。消息队列为什么选Kafka因为我们需要应对“秒级”的数据峰值。比如一台93K测试机在测试小芯片时每秒可能产生上万条测试结果事件。这种高吞吐场景Kafka的吞吐能力是其他一些消息中间件很难比的。而且Kafka自带分区和副本机制数据不容易丢。时序库为什么单独拎出来而不直接用关系型数据库因为良率分析不仅要看“最终结果”还要看“过程曲线”。比如分析刻蚀机腔体压力数据我们要看的是升压、稳压、抽真空整个过程中压力值的变化曲线。这种数据每秒产生几十甚至上百个点一张晶圆加工下来就是几十万条记录。用关系型数据库存这种数据查询性能会随着数据量增大迅速恶化。时序数据库的压缩算法和预聚合能力就是为这种场景量身定制的。这里也顺带提醒一句别迷信所谓“一套平台搞定所有数据”的商业产品。半导体工厂的数据基因太特殊了标准化产品往往需要大量二次开发。在选型初期一定要明确哪些功能是产品自带的哪些需要我们自己的开发团队去定制不然后期定制开发的成本会远超预算。2.3 数据模型的标准化与扩展性数据集成最怕的就是“脏数据”和“二义性”。没有一个统一的数据模型集成得越多可能越乱。所以我们做了一个比较关键的动作就是建立良率分析数据模型标准。这个模型的核心是一个事实表Fact Table它记录了每一次“测量行为”本身。什么晶圆Wafer ID、什么批次Lot ID、在什么设备Equipment ID、哪个腔室Chamber ID、哪个工序Operation Code、用的什么RecipeRecipe ID以及测试或测量的原始结果值。所有的维表设备表、产品表、工序表都围绕这个事实表建立。另外还有一个关键字段是“时间戳”但这个时间戳必须以设备服务器时间为基准而不是MES时间或者平台接收时间。标准化模型的好处是显而易见的。新增一种设备类型时只要按照这个模型适配出对应的数据映射关系开发工作量会显著降低。后续的数据分析工具、报表工具也只需针对这一套模型进行开发不用像以前那样一个系统配一套开发。3. 核心环节实现从SECS/GEM到EAP再到平台这里重点说一说数据链路中最关键、也最容易出问题的一段从设备通过SECS/GEM协议产生数据到EAP系统处理再到数据集成平台落库的过程。3.1 SECS/GEM协议对接的实战要点在半导体设备通信里SECS/GEM是绕不开的协议族。包括SECS-I基于RS-232串口和HSMS基于TCP/IP以及定义了数据项和消息的SECS-II还有定义设备行为状态的GEM标准SEMI E30。虽然现在新设备都支持HSMS了但工厂里总有那么几台老设备还是串口通信或者串口转网口的转换器。协议对接里最重要的事并不是把报文收发通就算完而是要保证业务逻辑的完整性。我举个例子EAP系统要判断一张晶圆在当前设备上的加工是否结束不能只看设备的“Process End”消息还要结合Equipment Constant设备常数里的状态值来确认。不同设备厂商对GEM状态机的实现千差万别有的设备把“Processing”状态细分为好几个子状态有的则没有。所以在做SECS/GEM对接时不能简单套用模板必须逐个设备地去核对状态模型。我建议搞一个“设备兼容性清单”表格记录每种设备厂商/型号支持哪些标准事件IDCEID、哪些状态变量SVID、哪些数据变量DVID这些对我们的集成平台来说就是元数据Metadata。有了这个清单后面的开发调试能少走很多弯路。3.2 EAP系统脚本部署的关键逻辑EAPEquipment Automation Program是连接设备和上层系统的“神经中枢”。在集成项目里EAP不仅要处理SECS消息还要决定数据往哪儿转发。以测试设备为例。当探针台在测试一颗Die并产生结果后测试机通过SECS/GEM的Event消息比如CEID1000代表测试完成把结果发给EAP。EAP收到这个消息后做的第一件事不是转发而是校验上下文。它会检查这条消息里携带的Wafer ID是否和当前正在执行的Lot ID匹配检查产品的加工步骤是否和MES派工一致。只有校验通过的消息才会被转换成标准的数据格式再发送给Kafka最终写入时序库和关系库。那些校验失败的数据会被标记为异常进入专门的“悬挂队列”等待人工处理。这里有个非常容易忽略的细节EAP脚本的状态处理必须考虑设备复机Recovery的场景。比如设备在加工中途突然报警停机操作员进行处理后重新开始加工此时EAP的状态机必须能正确“恢复”如果恢复逻辑没做好可能出现设备已经重新开始加工了但EAP还认为设备在“等待搬运”导致数据丢失或重复。3.3 93K测试机数据的采集与解析说到93KTeradyne UltraFlex用过的人都知道它的数据文件格式和“市面上”常见的测试数据格式不太一样。除了通过SECS/GEM与EAP联动之外93K还会生成大量的测试日志文件如 .dat 或 .txt 格式这些文件包含每个测试项的详细测量值比如某个引脚的漏电流值、输出高电平电压值。我们采集93K数据的方案是双轨并行轨道一走SECS/GEM事件实时拿到每颗Die的Bin号和Map图信息轨道二通过文件采集器定时扫描测试机指定的输出目录把详细的测试参数文件抓取到平台解析后入库。这样既保证了map图的实时性也保证了分析参数时的完整精度。解析93K的数据文件有一点要特别小心文件内的记录顺序并不等于测试顺序。因为测试机是并行测试多个Site的文件里的数据是按照测试资源Site分组排序的。如果你按行读取后直接当成时间序列去分析很可能会得出完全错误的结论。正确的做法是在解析文件时先按“Site TestName Instance”这三个维度对数据进行分组再按内部的Sequence号排序这样得到的数据才是准确的。4. 常见问题与排查技巧实录多源数据集成平台的上线从来不是一蹴而就的。这个过程中我们遇到的典型问题可以说是不胜枚举。这里挑几个发生率最高、排查起来最费劲的问题给大家做个交流。4.1 设备数据“幽灵重复”问题有一次我们发现某台刻蚀机的腔体压力数据在凌晨3点左右出现了约5分钟的数据重复也就是说同一个时间戳的数据出现了两条一模一样的记录。起初以为是采集程序bug排查了很久最后发现是设备端的SECS通信模块在凌晨做了一次“重连”。重连时设备会重新发送缓存的最近几笔事件数据以保证服务器端状态同步。而我们的EAP脚本没有识别出这是重复事件简单地全量转发到了Kafka。排查思路与解法面对这种情况单纯靠时间戳去重往往不够因为设备重启后时间戳也可能重置。比较好用的方式是在采集端和设备端之间建立幂等机制。我们在数据模型里加了一个“全局唯一ID”由EAP根据设备ID和事件序列号SECS报文头里的SYS字节生成。当存储层检测到相同的全局唯一ID重复出现时直接忽略。另外通过设置一套“设备不同步时间补偿参数”也可以解决部分由于设备时钟偏移导致的时序错乱。4.2 多设备间时间不同步的噩梦如果分析时发现一张晶圆的工艺配方和测试结果对不上且时间顺序明显乱序大概率是设备时间没同步。产线里几十台设备不可能每台都去手动校时。有的设备工程师图省事关了设备后重启时间返回到了出厂设置于是整个时间段的数据时间轴就乱了。排查思路与解法我们最终是靠“三级校时”解决的。第一级在网络层面启用NTP服务器让所有设备都同步到同一个时间源。第二级在设备接入平台时采集软件会先获取设备当前时间和平台时间对比偏差超过5秒就会发起告警并在数据中打上时间偏差标记。第三级在数据分析层我们允许特定场景如缺陷分析使用“设备加工步骤序号”而不是绝对时间进行数据对齐。这样即使绝对时间有偏差步骤之间的先后关系依然不会错。4.3 Recipe版本混乱导致的数据归因错误有一次工艺工程师说某批次产品在光刻工序后关键尺寸CD测量值偏大。平台自动关联了那台光刻机的Recipe版本发现用的是老的Recipe V2.3。但MES显示施工单上要求用的是新的V2.5。这意味着设备工程师现场改了Recipe但MES没更新导致数据分析归因时匹配到了错误的信息。排查思路与解法这是典型的“数据源之间字段不一致”问题。MES里记录的是“工艺要求的Recipe”而设备实际执行的是“本地加载的Recipe”。要解决这个问题必须把“计划要求”和“实际执行”两层数据独立采集、独立存储、再在分析层做对比。我们在EAP脚本中增加了一个逻辑当MES下达批次的Recipe要求后EAP在设备启动加工前会回读设备当前的Recipe名称和修改时间如果不匹配就禁止启动加工或发送告警。并且平台里保存的Recipe数据是以“设备端回读的实测值为准”而不是MES的登记值。5. 一些压箱底的避坑建议如果前面讲的都是“术”的层面那最后这部分算是“道”的经验。多源数据集成项目到后期往往拼的不是技术而是对产线现场规则的理解和对不确定性的容忍度。别忽视数据字典的维护。设备厂商的技术支持提供的SECS数据字典往往只有简单的变量名和描述。但真正到了使用的时候你会发现同一个变量名在不同设备型号下的物理含义可能不同。比如“RF_POWER”在等离子体刻蚀机里可能是“下电极射频功率”在PECVD设备里可能就是“射频源功率”。这份数据字典最好由项目组自己结合工艺知识重新梳理一遍形成企业的标准数据字典维护好它是平台能够长期发挥作用的生命线。数据质量监控必须前置。不要等业务用户发现报表异常了才去检查是不是数据采集的问题。我们在平台上建了一个数据“健康度看板”实时统计每分钟从每条链路收到的数据条数、时间戳延迟、重复率、空值率。任何一个指标远超基线系统自动推送告警到值班群。这样能省掉后续大量“背锅式”排查时间。集成平台与产线系统解耦是底线。这一点我非常坚持。集成平台就是用来“吸”数据的它不应该反向依赖产线系统的实时响应。哪怕分析平台宕机了产线上的EAP、MES也应该正常流转只是历史数据暂时无法同步而已。这靠的就是前文提到的“传送带”架构产线数据先把数据写到本地缓冲再由单向的数据搬运服务搬到平台。任何时刻都不要开“双向通道”否则一个边缘系统的变更就可能引发生产事故。说到底良率分析平台的多源数据集成表面上看是技术问题实质上考验的是对半导体制造全流程的理解深度。它能走多远不取决于用了多贵的大数据组件而取决于你对产线上每一个数据来源的“脾气”摸得有多透。把基础打牢后续分析才能有恃无恐。
返回列表