Automotive Cause-Effect Chain Benchmark
收藏资源简介:
这是一个汽车因果链基准数据集,包含真实世界汽车ADAS控制器的统计指纹、基于该指纹合成的500个预生成任务集实例,以及一个Python生成器,可用于重新生成数据或采样新实例。数据集用于端到端时序分析,支持多核周期性任务集和因果链建模。
This is an automotive causal chain benchmark dataset, containing statistical fingerprints of real-world automotive ADAS controllers, 500 pre-generated task set instances synthesized from these fingerprints, as well as a Python generator that can be used to regenerate the dataset or sample new instances. This dataset is tailored for end-to-end temporal analysis and supports modeling of multi-core periodic task sets and causal chains.
数据集概述
数据集名称: Cause-Effect Chain Benchmark
发布机构: DTU ESE (丹麦技术大学电子系统工程系)
发布地址: https://github.com/dtu-ese/automotive-cause-effect-chain-benchmark
核心内容
该基准测试包含一个真实世界汽车ADAS控制器的统计指纹,以及基于该指纹合成的500个预生成任务集实例。附带一个轻量级Python生成器,可重新生成数据或采样全新实例。
指纹(Fingerprints)
本发布包含两个经过匿名化的指纹:
- TrustMotion:源自TrustMotion集成的ADAS控制器。源工作负载为在3CPU/9核心平台(各CPU核心数分别为3/2/4)上运行的102个周期任务;包含39条因果链,其中74%包含至少一次重复任务引用。所有伴生论文的评估、表格和图表均基于此指纹计算。
- WATERS-Bosch:WATERS启发的发动机控制器指纹(源自WATERS-2015 Bosch任务模型和WATERS-2017工业挑战链语料库)。作为对比参考,扩展了可选的WATERS扩展(韦布尔执行时间分布、角度同步激活、每任务BCET/ACET测量值)。生成器处理方式与TrustMotion相同;不附带合成数据。
数据集结构
artifact/ ├── README.md ├── LICENSE — MIT许可证 ├── fingerprints/ │ ├── SCHEMA.md — 指纹模式定义 │ ├── TrustMotion/profile.json — TrustMotion ADAS控制器指纹 │ └── WATERS-Bosch/profile.json — WATERS启发式博世发动机控制器指纹 ├── data/ │ └── TrustMotion/{100..500}pct/instance-Nx-NNNN.json (每桶100个文件) └── generator/ ├── generate.py — 纯采样生成器 ├── check.py — 实例完整性检查器 ├── validate.py — 指纹模式验证器 ├── generate_all.sh — 重新生成所有桶 └── README.md — 生成器详情
实例格式(Benchmark at a Glance)
每个实例文件 data/TrustMotion/<bucket>/instance-<scale>x-<idx>.json 包含:
- platform: CPU和核心数量。无调度策略声明,基准测试与策略无关。
- tasks: 任务数组。每个任务包含以下字段:
name(例如t_0042)period(周期)deadline(截止时间)wcet(最差执行时间)bcet(最佳执行时间,0表示未测量)earliest_activation(最早激活时间)max_jitter(最大抖动)pinned(布尔值,表示是否绑定到特定核心)placement(包含cpu_id和null的core_id)- 可选字段:
wcet_min、acet、exec_distribution(执行时间分布)、activation(激活类型:"periodic"、"angle-sync"或"sporadic") - 所有时间值为整数微秒
- chains: 因果链数组。每条链包含:
name(名称,如Chain0)semantic(语义,固定为reaction-delay)budget(端到端延迟预算,整数微秒)priority(重要度权重,[0, 1]范围内的浮点数)asil(可选ISO 26262安全等级,"B"、"C"或null)tasks(有序的任务名称列表,任务可在链内重复)
缩放机制
桶 100pct 每个实例包含100个任务,500pct 包含500个任务。平台规模随任务数量线性缩放:缩放级别 $S_k$ 将源三CPU计算拓扑复制 $k$ 次(共 $3k$ 个CPU / $9k$ 个核心)。默认因果链长度也按比例缩放;可通过生成器参数 --length-scaling source 选择保持原始长度。
生成与验证
重新生成数据(在 generator/ 目录下执行):
bash ./generate_all.sh # 重新生成TrustMotion(默认) ./generate_all.sh -u WATERS-Bosch # 从WATERS-Bosch采样实例 ./generate_all.sh -u TrustMotion -n 30 # 更小数据集 ./generate_all.sh -s 100 # 不同种子基值
验证指纹与实例:
bash python3 generator/validate.py fingerprints/*/profile.json # 验证所有指纹模式 python3 generator/check.py data/TrustMotion/ # 检查所有合成实例
validate.py执行fingerprints/SCHEMA.md中声明的不可变条件。check.py执行四个必要可行性条件(每核心 $Sigma u le 1$、总 $Sigma u le$ 总核心数、链任务引用完整性、链预算 $ge$ WCET总和下限)。- 成功退出码为
0,失败为1。
许可证
本工件(代码、指纹和合成数据)采用MIT许可证发布。




