延迟、抖动、周期、余量,怎么合成一张能用的设计表?
四个数单独看都对,合起来才是决策:延迟 57.02 µs、抖动 σ 10 ns、T/τ = 0.2、超时概率 3%。给一张四行表,写清每行填什么、怎么得到,以及三条能立刻抓出矛盾的一致性检查。
延迟、抖动、周期、余量是四个不同的问题:多久、多稳、多快、多险。分开写,每份报告都能自洽;放在一起,才可能发现矛盾——比如"占用 70%"和"超时概率 1e-6"同时写在表里,而按模型前者对应的是 3%,差四个数量级。这张表的价值不在填数,在于让矛盾无处可藏。
现象
时序评审最常见的两种失败:
| 失败形态 | 具体表现 |
|---|---|
| 四份报告各说各的 | 延迟报告说 50 ns,抖动报告说 37 ns,周期报告说 100 µs,没人能回答"整套稳不稳" |
| 表里数字互相矛盾 | 占用写 70%,超时概率写 1e-6;或周期写 100 µs,等待项写 5 µs |
第二种更危险:每个数都有出处,但它们不属于同一个系统。
原因
四个量不是独立的,存在明确的耦合关系:
周期 T → 决定采样等待项(≈ T/2,未锁相)
→ 与对象时间常数 τ 一起决定采样够不够快
延迟 → 决定相位裕度,间接影响可用的增益
抖动 + 占用 → 共同决定尾部概率
所以「先定周期,再补延迟」这种顺序会反复返工。正确的顺序是:先算延迟 → 用延迟与 τ 定周期 → 再分配抖动预算 → 最后校核尾部。
怎么做
第一行:延迟账本。 填端到端均值与最坏值,并注明是否锁相。
第二行:抖动账本。 填合成后的 σ,并写清各分量的独立性假设。
第三行:周期账本。 填 T、τ 与两者的比值,以及扫描得到的结论。
第四行:余量账本。 填平均占用率与尾部概率,并写明估算方法与样本量。

三条一致性检查,任一条对不上就说明表里至少有一个数是估的:
import math
def p_over(util, sigma, T=100e-6):
"""对数正态模型下,平均占用 util 时的单拍超时概率。"""
mu = math.log(util * T) - sigma**2 / 2
z = (math.log(T) - mu) / (sigma * math.sqrt(2))
return 0.5 * (1 - math.erf(z))
T, sigma = 100e-6, 0.2
print("等待项应为 T/2 = %.2f us" % (T / 2 * 1e6))
for util in (0.7, 0.5, 0.394):
print("占用 %.1f%% → 模型 P = %.3g" % (util * 100, p_over(util, sigma)))
- 检查一(延迟):未锁相时,等待项应约等于 T/2。写 T=100 µs 却填等待 5 µs,两者矛盾。
- 检查二(抖动):三个 ±10 ns 独立源合成 σ=10 ns;若表里写 30 ns,说明按最坏值相加,应改注为"峰值上限"。
- 检查三(余量):由占用率算出的 P 必须与"实测超时次数 / 样本量"同量级。
验证
一个填好的例子(四篇系列文章的同一组参数):
| 账本 | 填的数 | 判据 |
|---|---|---|
| 延迟 | 57.02 µs(等待 50) | 与 T/2 + 固定段一致 |
| 抖动 | σ = 10 ns(三项独立) | 与实测 σ 同量级 |
| 周期 | T = 100 µs,T/τ = 0.2 | 扫描显示全程差 0.3%,够用 |
| 余量 | 占用 70% → P = 3%(1/34) | 与实测超时比例一致 |
再用同一段代码检测一处常见矛盾:
| 表里写的 | 模型算出 | 判定 |
|---|---|---|
| 占用 70%、P = 3% | 2.98% | 自洽 |
| 占用 50%、P = 1.8e-4 | 1.81e-4 | 自洽 |
| 占用 70%、P = 1e-6 | 2.98% | 矛盾,差 4 个数量级;要达到 1e-6,占用需降到 39.4% |
改前四份报告各说各的 → 改后一张表:57.02 µs、σ 10 ns、T/τ 0.2、P 3% 四行同时成立,评审时只需核对一致性。
边界
- 这张表是骨架,不是答案。每一行的数值都依赖对象、噪声与负载,换系统要重填。
- 模型假设必须写在表头:对数正态、独立抖动、均匀相位。假设不成立时,结论只作数量级参考。
- 周期那一行的判据(T/τ 多小算够)来自本文的数值实验,不是通用定理;延迟占比大的系统会更苛刻。
- 四行之间的一致性检查只能发现"算错",发现不了"测错"——测量方法本身的问题要靠外部仪器与交叉验证。
- 本文所有数值来自系列的数值实验,不是硬件实测;表格形式可以照用,数字不能照抄。
最后验证于 2026-10-29 · 表格 v1.0 · 数值实验参数:T=100 µs、τ=0.5 s、三项 ±10 ns 独立抖动、对数正态 σ=0.2 · Python 3.13