Skip to content

第三十四周:K3 IPC 延迟归因与优化——294→236.9µs,fence/计时器两税定案

一、本周完成

延迟归因

  • 建立三层测量体系:dd 闭环分解(AP 双钟戳 × RP mtime 戳交叉,恒等式残差 30/30 = 0.0)+ mb 微基准 35 op(单价表两轮 ±1% 复现)+ litmus 顺序性三实验
  • 把当时 240µs 的单条 PING 往返逐段拆账,揪出 ~50µs 两类"隐形税":
    • fence 恒定 2.2µs/条(RP 的 Acquire 读从来不是原子指令,是 ld+fence), 一条消息热路径 ~14 笔 ≈ 31µs;
    • mtime 冷读 24.5µs/笔(任意非背靠背间隔即触发跨时钟域同步器重锁,231 倍), 既真吃执行时间、也污染了此前所有分段测量。九个候选假设(H1-H9)逐一排除定案
  • 附产物:W2 双向轮询预演 −11µs(rtt 189→178,零固件改动)——下一刀

优化

  • P1 ✅:K3 专属 target 单核原子 CS 后端(本地原子 2.2µs→90ns)+ timer 直连 + 共享窗本地别名 + mailbox 去 Acquire——rtt 294→240,最大头 ddisp 56.7→27.1

  • 换源 ❌(方法学最重要的一课):counter1、AON_TIMER1 两个候选计时器探针达标 → 迁移 → 板上反向,两度证伪并回滚。修正定案:+11µs 全部为启动间环境态漂移, 计时源在生产路径中性(mtime 冷读税在真实路径被交织流量保温从未支付)。固化 两条规则:探针税 ≠ 生产税;dd 对比只认同一次启动内的 A/B

  • P3 ✅:SPSC 单写者论证下 fence 去冗余(magic/自产索引 Relaxed 化,对端可见性 协议零妥协)——同启动 A/B rtt 246.9→236.9(−10µs),自旋 18→9.4µs/轮

  • 本地域优先:RT24 高延迟的根因是跨簇互连,本地总线外设仅 0xc088_xxxx AON 域;高频访问外设尽可能本地域替代。AON_TIMER1(实测 2.0001MHz、热读 4ns) 驱动与探针保留

三、本周产出报告

  • K3 IPC 延迟归因与优化总结报告 (本仓 blogs/技术报告/,2026-08-23 收官归档版):八天约 20 轮板上测量的完整 数据——240µs 逐段账本、每种操作实测单价、九假设排查、优化路线图(含各项成败 归因与 commit 指引)、测量方法与数据溯源、A4 专案四代弧线全记录;5 张配图与 生成脚本随文存放(2026-08-23-K3-IPC延迟归因-make_figs.py

四、提交位置

仓库位置内容
rt-async-ampmaster ef19d1bP1 全部改动收敛(历史压平为单 commit)
rt-async-ampmaster 6f4ec9d/dfb8b5e/eb2da18/05691b0/88723a9换源两轮迁移与回滚、环境态定案
rt-async-ampmaster bd662e7/508be4b/f06bf43P3 主仓侧(指针 bump + stamps 对齐 + 验收)
rt-async-ampmaster 56c79da→10efbe1A4 四代(回读检测→看门狗→republish→v2)
rt-async-ampmaster 6061eef报告收尾可读化重写(后迁出主仓,归档为本仓技术报告)
ov-channelsfeat/rt-async-amp b45bc0aP3 fence 去冗余 + RB_SLOTS_OFF 布局真相源
rt-asyncmaincs-atomics feature(P1 前置)+ 本周报