4. 数据处理层设计:数据清洗、数据归一化、异常值检测、数据存储策略
数据处理层是Fab良率监控系统的核心枢纽,负责将来自设备端(如SEM、缺陷扫描仪、量测机台)的原始数据转化为可用于分析、建模与报警的高质量时序信号。本章围绕数据清洗、归一化、异常值检测及存储策略四个关键环节展开设计。
4.1 数据清洗:去除噪声与填补缺失
Fab环境中数据缺失与噪声主要来源于:传感器瞬时掉线、通信超时、维护期间数据空洞、以及设备状态切换时的毛刺信号。清洗策略分为三个步骤:
- 缺失值处理:对于短时间缺失(< 5个采样点),采用线性插值;对于长时间缺失,标记为无效区间并跳过后续计算。
- 去重与对齐:同一Lot被多个设备重复上报时,按时间戳去重;不同设备数据按晶圆ID与时间窗口对齐。
- 噪声过滤:使用中值滤波或Hampel滤波器剔除单点脉冲噪声。
设计要点:清洗规则必须可配置,支持按设备类型、参数类型动态调整阈值,避免过度清洗导致有效信号丢失。
实践建议:在清洗阶段保留原始数据副本,便于事后审计与规则回滚。
4.2 数据归一化:消除量纲差异
不同传感器参数(如温度、压力、膜厚、缺陷密度)具有不同的量纲和数值范围。归一化使所有特征处于同一尺度,避免大数值参数主导模型训练或统计阈值计算。
| 归一化方法 | 公式 | 适用场景 |
|---|---|---|
| Min-Max 归一化 | (x - min) / (max - min) |
参数范围已知且稳定,如温度 20~80°C |
| Z-Score 标准化 | (x - μ) / σ |
参数分布近似正态,如膜厚测量值 |
| Robust 缩放 | (x - median) / IQR |
存在离群点,如缺陷计数 |
注意:归一化参数(min/max/μ/σ)必须在训练窗口内计算,并持久化存储;在线推理时使用相同的参数进行变换,避免数据漂移。
4.3 异常值检测:识别工艺偏移与设备故障
异常值检测是良率监控的触发点。Fab中异常分为三类:单点离群、趋势偏移、模式异常。系统采用多级检测策略:
- 统计阈值法:基于历史数据计算均值±kσ,适用于稳定参数。
- 移动窗口法:滑动窗口内计算局部均值与标准差,适应工艺渐变。
- 机器学习模型:Isolation Forest 或 Autoencoder,用于高维参数联合检测。
架构决策:异常检测结果需附带置信度与根因标签,便于下游报警系统分级处理。检测模型应支持在线更新,适应设备老化与工艺迁移。
4.4 数据存储策略:时序数据库与关系数据库协同
Fab良率数据具有高写入吞吐、按时间范围查询、元数据关联等特点。单一数据库无法同时满足时序写入效率与复杂关联查询需求,因此采用混合存储架构:
| 存储类型 | 存储内容 | 典型技术 | 查询模式 |
|---|---|---|---|
| 时序数据库 (TSDB) | 传感器原始数据、归一化后信号、异常检测结果 | InfluxDB / TimescaleDB | 按时间范围聚合、降采样、趋势分析 |
| 关系数据库 (RDBMS) | 设备元数据、Lot信息、工艺配方、报警规则、用户配置 | PostgreSQL / MySQL | 按ID关联、事务更新、报表查询 |
存储优化:时序数据设置合理的保留策略(如原始数据保留30天,聚合数据保留1年),使用连续聚合视图降低查询延迟。
4.5 数据处理层接口设计示例
数据处理层对外暴露RESTful接口,供上层分析服务与可视化模块调用。核心接口包括:
// 数据清洗与归一化配置接口
POST /api/v1/processing/clean-config
{
"device_id": "ETCH_01",
"parameter": "chamber_pressure",
"missing_strategy": "linear_interpolate",
"noise_filter": "hampel",
"normalization": "zscore",
"window_size": 10
}
// 异常检测触发接口
POST /api/v1/processing/anomaly-detect
{
"device_id": "ETCH_01",
"parameters": ["chamber_pressure", "temperature", "rf_power"],
"method": "isolation_forest",
"contamination": 0.05
}
// 查询清洗后数据
GET /api/v1/processing/cleaned-data?device_id=ETCH_01&start=2025-03-01T00:00:00Z&end=2025-03-02T00:00:00Z
接口设计原则:所有数据处理接口均支持批量操作与异步回调,避免大数据量清洗阻塞前端;异常检测结果通过WebSocket实时推送至监控看板。