Intel TCC 模式下 TSC 与 ART 的确定性线性关系设计
1. 概述
在支持 Intel TCC(Time-Coordinated Computing,时间协调计算)模式的处理器中,TSC(Time Stamp Counter)与 ART(Always Running Timer)之间的确定性线性关系 是通过硬件级的不变时钟架构 和标准化的频率比例因子共同保证的。
这一设计使得软件能够以亚微秒级精度计算并关联多个独立子系统的本地时钟,是 TCC 实现高精度时间协调的硬件基础。
2. ART(Always Running Timer)作为不变时基
2.1 ART 的定义与特性
ART 是处理器内部的一块专用不变计时硬件,以固定的核心晶体时钟频率 运行(通常为 19.2 MHz)。
ART 的关键特性:
- 不受 CPU 频率、P-State/C-State/T-State 变化影响,始终保持恒定速率
- 作为整个 SoC 的全局时间参考基准
- 所有需要时间同步的子系统(TSC、TSN 以太网、PCIe PTM、Time-Aware GPIO、High Definition Audio 等)都以其为锚点
2.2 ART 在 SoC 中的角色
┌─────────────────────────────────────────────────────────────┐
│ SoC 全局时间架构 │
│ │
│ ┌─────────┐ │
│ │ ART │ ← 19.2 MHz 核心晶体时钟(不变时基) │
│ │(19.2MHz)│ │
│ └────┬────┘ │
│ │ │
│ ┌────┴────┬────────────┬────────────┬────────────┐ │
│ ▼ ▼ ▼ ▼ ▼ │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ TSC │ │ TSN │ │PCIe │ │GPIO │ │Audio│ │
│ │ CPU │ │Eth │ │PTM │ │T-A │ │/ISH │ │
│ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
3. Invariant TSC 直接派生自 ART
3.1 Invariant TSC 的定义
Invariant TSC 并非独立振荡,而是基于 ART 硬件派生出来的。Intel 通过硬件设计确保 TSC 在所有 ACPI 电源状态下(P-/C-/T-States)保持恒定速率运行。
关键保证:Invariant TSC 在所有 ACPI P-、C- 和 T-States 下以恒定速率运行。
3.2 与 Legacy TSC 的区别
| 特性 | Legacy TSC | Invariant TSC |
|---|---|---|
| 时钟源 | 独立振荡器 | 从 ART 派生 |
| 频率稳定性 | 随 CPU 频率变化 | 恒定不变 |
| 跨电源状态 | 可能变化/停止 | 始终保持 |
| 跨核心一致性 | 不保证 | 保证同步 |
4. CPUID Leaf 15H 定义确定性频率比
4.1 比例因子寄存器
Intel 通过 CPUID Leaf 15H 向软件暴露 ART 与 TSC 之间的精确频率关系,从而建立可计算的线性映射:
TSC_Value = (ART_Value × CPUID.15H:EBX[31:0]) / CPUID.15H:EAX[31:0] + K
其中:
| 参数 | 寄存器 | 说明 |
|---|---|---|
| 分子 | CPUID.15H:EBX[31:0] |
TSC 频率相对于 ART 的倍数 |
| 分母 | CPUID.15H:EAX[31:0] |
比例因子的分母 |
| 比例 | EBX / EAX |
硬件固定的整数频率比 |
| 偏移 | K |
可由特权代理调整的偏移常量 |
4.2 偏移量 K 的作用
偏移常量 K 可由特权代理(如 BIOS、操作系统或 VMM)调整,用于:
- 跨核心时钟对齐
- 跨系统时钟同步
- 虚拟化场景下的时间虚拟化
4.3 线性关系的数学表达
由于比例因子 EBX/EAX 是硬件固化的常数,因此 TSC 与 ART 之间满足严格的线性关系:
ΔTSC = (EBX / EAX) × ΔART
这意味着:
- 任意两个 ART 时刻之间的 TSC 差值是完全确定的
- 软件可以通过读取 ART 和 TSC,利用上述公式进行双向转换
- 不存在非线性漂移或累积误差
5. TCC 模式下的跨子系统同步
5.1 时间协调计算的需求
TCC 场景要求多个独立子系统能够以亚微秒级精度进行时间关联和同步。确定性线性关系使得这一点成为可能。
5.2 各子系统与 ART 的关系
| 子系统 | 与 ART 的关系 | 应用场景 |
|---|---|---|
| CPU TSC | 通过 CPUID.15H 比例直接派生 | 软件时间戳、性能分析 |
| TSN Ethernet | 以 ART 为基准进行硬件时间戳 | IEEE 802.1AS 时间敏感网络 |
| PCIe PTM | 本地时钟通过 ART 对齐 | 精确时间测量(Precision Time Measurement) |
| Time-Aware GPIO | 脉冲触发与 ART 同步 | 精确 GPIO 触发/捕获 |
| High Definition Audio | 采样时钟参照 ART | 音频同步 |
| ISH / CAN | 各自本地时钟均参照 ART | 传感器/工业总线同步 |
5.3 同步精度
基于 ART 的统一时基,各子系统可以实现:
- 深度亚微秒级(deep sub-microsecond)时间关联
- 跨子系统事件的时间戳对齐
- 确定性延迟测量
6. 复位同步保证一致性
6.1 同步复位机制
当 ART 硬件复位时,Invariant TSC 和偏移量 K 会同步复位,确保二者在整个生命周期内始终保持一致的线性关系,不会出现漂移或失步。
关键保证:ART 复位 → TSC 复位 + K 复位,三者保持原子性同步。
6.2 生命周期一致性
时间点: 复位时刻 运行期间
│ │
ART: 0 ──────────────────────────→ 持续计数
│ │
TSC: K₀ ─────────────────────────→ 线性增长
│ │
关系: TSC = (EBX/EAX) × ART + K₀ 始终保持
│ │
└───────────────────────────┘
确定性线性关系
7. 设计总结
| 设计要素 | 作用 | 关键属性 |
|---|---|---|
| ART(19.2 MHz 晶体时钟) | 提供不受电源管理影响的全局不变时基 | 恒定、独立、全局可见 |
| Invariant TSC | 以固定比例从 ART 派生,保证跨 P/C/T-State 恒定 | 高性能、低延迟、软件可读 |
| CPUID.15H 比例因子 | 硬件固化、软件可读的确定性频率比 | EBX/EAX 为固定整数比 |
| 偏移量 K | 支持特权级微调,实现跨核/跨系统对齐 | 可配置、复位同步 |
| 同步复位 | ART 复位时 TSC 与 K 同步复位,防止漂移 | 原子性、一致性 |
7.1 设计本质
这套设计的本质是将**时间基准(ART)与软件可见计数器(TSC)**解耦:
- ART 负责提供绝对稳定的物理时基
- TSC 负责提供高性能、低延迟的软件读取接口
- CPUID.15H 比例因子 确保二者之间的映射是完全确定、可预测且线性的
7.2 TCC 应用价值
这一硬件架构使得 TCC 能够:
- 在单芯片内实现多子系统的时间一致性
- 支持亚微秒级的确定性时间协调
- 为时间敏感应用(TSN、工业控制、音视频同步等)提供硬件级时间保障
8. 参考信息
- Intel® 64 and IA-32 Architectures Software Developer's Manual, Volume 3A: System Programming Guide, Part 1
- Intel® Time-Coordinated Computing (TCC) Technology Documentation
- CPUID Leaf 15H --- Time Stamp Counter and Nominal Core Crystal Clock Information