Files
Inbox/系统基座文件/2.6 工程基线总结报告 - 时序同步与数据一致性.md
2025-12-11 07:24:36 +08:00

73 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
tags: []
date created: 星期三, 十一月 26日 2025, 11:02:01 晚上
date modified: 星期三, 十一月 26日 2025, 11:03:40 晚上
---
# 2.6 工程基线总结报告 - 时序同步与数据一致性
**适用范围**: 全系统(时钟源管理 + 数据流打点 + 算法时空对齐 + 延迟监控)
## 1. 核心架构基线 (Core Architecture Baselines)
本章节构建了一套从物理层到应用层、从硬件时钟到算法逻辑的严密时空治理体系。核心目标是确保分布式相控阵雷达在微秒级精度下的**时空一致性 (Spatiotemporal Coherence)**。
| 决策领域 | 核心基线 (Baseline Established) | 关键技术特征 (Key Specs) | 设计意图/依据 |
| :--- | :--- | :--- | :--- |
| **2.6.1 时钟源** | **HW PTP + TSC 软时钟** | IEEE 1588v2 (真值) + CPU TSC (极速读取) + 动态校准回路。 | 解决“高精度”与“低开销”的矛盾,提供纳秒级读取速度与亚微秒级同步精度。 |
| **2.6.2 打点策略** | **入站即决 (Ingress Timestamping)** | 优先硬件 TSU兜底内核 `SO_TIMESTAMPNS`。**不可变出生时间戳**。 | 消除 OS 调度与应用层排队带来的不确定性抖动,确立全链路时间基准 (T0)。 |
| **2.6.3 对齐机制** | **原地乱序重组 (In-Place Scatter)** | `Addr = Base + PulseIdx * Pitch`。双触发提交 (满额/超时)。 | 在 1GbE 受限网络环境下,以 O(1) 复杂度处理乱序与抖动,保障 FFT 相干性。 |
| **2.6.4 融合策略** | **异步外推 (Extrapolate to Meas)** | $\Delta t = t_{meas} - t_{track}$。**丢弃乱序 (Drop OOSM)**。 | 尊重数据的物理生成时间,消除处理延迟对状态估计的污染,适配相控阵异步体制。 |
| **2.6.5 延迟审计** | **逐级埋点 (Granular Checkpointing)** | 5 个关键检查点。**P99 & Jitter** 监控。触发热节流。 | 建立系统性能的“心电图”,实现从“定性感觉”到“定量观测”的转变。 |
---
## 2. 关键技术规范详解
### 2.6.1 高精度统一时钟源 (Unified Clock)
- **物理层**: 依赖 `linuxptp` (`ptp4l` + `phc2sys`) 将网卡 PHC 同步至 GPS/北斗主时钟。
- **应用层**: 封装 `HighPrecisionClock` 类。
- **读取**: 使用 `rdtsc` 指令 (开销 < 20ns)。
- **校准**: 后台线程每秒运行计算线性映射 $T = T_{base} + \alpha \cdot (TSC - TSC_{base})$并执行**平滑 (Slewing)** 以保证单调性
### 2.6.2 多级打点策略 (Timestamping)
- **生成**: `DataReceiver` I/O 线程通过 `recvmmsg` 的辅助数据 (`CMSG`) 提取内核/硬件时间戳
- **流转**: 该时间戳写入 `RawDataPacket.header.timestamp_us`在后续的信号处理点迹提取航迹关联中**全程透传**严禁被当前系统时间覆盖
### 2.6.3 CPI 对齐机制 (Alignment)
- **容器**: 预分配页锁定内存池 (`MemoryPool`)。
- **写入**: 基于 UDP 包头的 `PulseIndex` 直接计算内存偏移量**零拷贝**写入
- **容错**:
- **抖动窗**: 允许首包到达后 10% CPI 时长的等待
- **丢包**: 丢包率 < 5% 时执行**零填充 (Zero Padding)** 并标记降级> 5% 时整块丢弃。
### 2.6.4 航迹关联与更新 (Association)
- **核心算子**: `KalmanFilter::predict(dt)`
- **逻辑**: 始终将航迹状态(老)外推到量测时间(新)。
- **防护**:
- **乱序保护**: 若 $t_{meas} < t_{track}$直接丢弃量测不执行回溯滤波
- **跳变保护**: $\Delta t > 10s$,触发时钟故障告警,执行强制重置。
### 2.6.5 全链路审计 (Auditing)
- **指标**:
- **Rx Latency**: $T_{Dispatch} - T_{Ingress}$ (组包耗时)
- **Queue Latency**: $T_{AlgoStart} - T_{Dispatch}$ (排队耗时 -> 核心拥塞指标)
- **Compute Latency**: $T_{AlgoEnd} - T_{AlgoStart}$ (算力耗时)
- **Total Residence**: $T_{Egress} - T_{Ingress}$ (全系统驻留时间)
- **闭环**: `Queue Latency` P99 > 阈值 $\rightarrow$ 触发 `SystemOverloadEvent` $\rightarrow$ 启动流量整形。
---
## 3. 风险与应对 (Risk Mitigation)
| 潜在风险 | 现象 | 应对/缓解措施 |
| :--- | :--- | :--- |
| **PTP 失锁** | `timestamp_us` 精度退化至毫秒级。 | 监控 `ptp4l` 的 RMS 误差。若失锁,数据包标记 `TIME_LOW_PRECISION`,显控端降级显示或告警。 |
| **TSC 漂移** | 不同 CPU 核之间时间微弱不同步。 | 确认 CPU 支持 `constant_tsc``nonstop_tsc` 特性。在校准算法中引入异常值剔除。 |
| **严重乱序** | 网络拥塞导致大量 OOSM 丢弃。 | 增大 2.6.3 的抖动等待窗口(牺牲延迟换取完整性);检查交换机 QoS 配置。 |