点击上方蓝字谈思实验室
获取更多汽车网络安全资讯
通信建模在片上系统(SoC)的规范制定中是一个关键问题。它对于准确预测系统的定时行为至关重要。在这种环境下,快速的仿真能力是关键,有助于在规范制定过程中应对复杂的设计选择。事务级模型(TLM)被提出,它以牺牲准确性为代价来加速通信仿真。
本文报告了一项案例研究,其中汽车通信协议控制器局域网(CAN)在不同的抽象级别进行了建模,协议的特定功能(如位填充)在模型中有的被体现,有的被抽象掉。在实验装置中对生成的模型进行了性能和准确性方面的测量。本文将分析结果,并评估这些事务级模型和引脚精确模型的优缺点。最后,将根据模型在速度/准确性方面的权衡,说明它们适用于哪些应用场景。
01
引言
片上系统(SoC)设计面临着生产能力和上市时间压力之间的差距。在 SoC 设计过程中需要探索的设计空间随着生产能力的提升而扩大,与此同时,产品生命周期的缩短迫使上市时间大幅缩短。解决这一差距是近期研究工作的目标。作为一种方法,抽象模型被引入以应对设计的复杂性。
应对需要探索的巨大设计空间需要快速的仿真能力,在设计的早期阶段尤其如此。这一需求推动了事务级模型(TLM)的发展,事务级模型是一种抽象模型,其执行速度比可综合的位精确模型快得多。
然而,事务级建模存在准确性降低的缺点。本文将分析事务级建模在性能上的提升,并展示其在准确性方面的不足。该分析基于对控制器局域网(CAN)总线的案例研究,CAN 总线是汽车行业使用的一种标准总线协议。
本文将首先介绍 CAN 总线的主要特性。基于特性选择,提出一组不同抽象级别的模型,并描述其设计。随后,在实验装置中对实现的模型进行测量,并分析其结果,最终得出适用于特定应用的模型。
1.1 相关工作
近年来,系统级建模作为改进 SoC 设计过程的一种手段,变得越来越重要。用于捕捉这些模型的语言已经开发出来,如 SpecC 或 SystemC。此外,使用事务级模型对通信系统进行捕捉和设计也受到了研究关注。
Sgroi 等人采用片上网络(NoC)方法来处理 SoC 通信问题。他们提议将通信划分为遵循 OSI 结构的不同层,从底层通信框架中提升抽象程度,以促进软件复用。
Siegmund 和 Miller 用 SystemCSV 描述了对 SystemC 的扩展,并提议在不同的抽象级别对 SoC 进行建模。他们描述了三个不同级别:RTL 级别的物理描述、涵盖单个消息的更抽象模型,以及处理事务的最抽象级别。
文献描述了如何使用上述 SystemCSV 扩展对 CAN 总线进行建模。该文献也展示了三个抽象级别,但未给出任何关于性能或准确性的实验结果。
在文献中,Caldari 等人描述了在 SystemC 中捕捉 AMBA rev. 2.0 总线标准的结果。该总线系统在两个抽象级别进行了建模,首先是 RTL 级别的总线功能模型,其次是事务级模型(TLM)。他们的事务级模型比 RTL 级模型的速度提高了 100 倍。
02
CAN 总线介绍
控制器局域网(CAN)是由罗伯特・博世有限公司推出的一种串行通信协议,该协议在设计时主要面向汽车应用。
CAN 是一种串行多主广播总线。消息最多包含 8 字节的用户数据,所有总线节点都会接收消息,并通过消息标识符进行区分。每个总线节点根据本地规则决定是否处理该消息。消息标识符还用作消息优先级。如果多个发送者尝试传输,采用无冲突的载波监听多路访问 / 冲突避免(CSMA/CA)仲裁机制,可确保最高优先级的消息不受干扰地成功传输。
CAN 总线定义了两种总线状态:隐性(1)和显性(0)。CAN 数据帧的基本格式如图 1 所示。在发送帧起始位之后,消息标识符首先以最高有效位开始传输。在传输过程中,每个发送者会比较发送信号和接收信号。如果发送者发送了隐性位,但检测到显性位,则会退出传输,这意味着另一个发送者一定是开始发送了更高优先级的消息。
图 1. CAN 数据帧
为确保接收数据的正确性,每个CAN消息都包含一个15位的循环冗余校验(CRC)。如果 CRC 校验不匹配,则会触发帧重传。该协议还定义了详尽的错误检测和错误限制规则,以防止总线节点出现故障。
CAN 串行协议在没有中央时钟的情况下运行。每个总线节点根据发送者的位流进行同步。位填充规则确保了同步所需的足够边沿,即连续传输 5 个相同极性的位后,会插入一个极性相反的位。
总之,以下特性可作为抽象的候选对象:
串行协议
位同步
错误检测和限制
使用 15 位 CRC 进行位错误检测
位填充
仲裁,由 CSMA/CA 控制总线访问
下一节将描述我们对 CAN 总线的建模过程。对于每个模型,都会从上述特性中选择一个子集。
03
建模
为应对通信的复杂性,在通信系统建模时采用了分层架构。遵循 ISO OSI 参考模型,CAN 规范属于第二层,即数据链路层。在对 CAN 总线进行建模时,考虑了数据链路层的两个子层:介质访问控制(MAC)子层和协议子层,同时也考虑了物理层。
OSI 层定义基于功能考量。另一种适用于描述模型的视角则聚焦于处理用户数据的粒度。介质访问层为传输连续的字节块(称为用户事务)提供服务。该层将任意大小的用户事务划分为较小的总线事务,并通过协议层进行传输。协议层将数据作为总线事务(例如包含最多 8 字节数据的 CAN 数据帧等总线原语)进行传输,并使用物理层服务。物理层实现对单个总线线路的采样和驱动的总线周期访问。
图 2 展示了如何从时间角度分析上述定义的数据粒度级别。一个用户事务会依次被拆分为较小的元素:总线事务,最终是总线周期。
图 2. 用户事务的时间分解
采用系统级建模方法,使用系统描述语言(SDL)将每个层实现为一个单独的通道。
3.1 事务级模型
事务级模型(TLM)是最抽象的模型,它仅实现介质访问层。以用户事务粒度处理的用户数据会一次性传输,而不考虑其大小。每个用户事务仅检查一次总线访问。
我们选择 iSpecC 3 作为系统描述语言,SystemC 同样也适用。
在实现过程中,用户数据通过单个 memcpy 函数进行传输。通过单个 waitfor 语句模拟定时,涵盖整个用户事务。由于计算 CRC 和位填充都需要对每个消息进行位检查,因此该模型不考虑这两个功能。为提高性能,使用信号量避免并发总线访问,因此并发解决依赖于仿真环境,且不考虑消息标识符。
3.2 仲裁事务级模型
仲裁事务级模型(ATLM)在协议层以总线事务(CAN 帧)粒度模拟总线访问。它使用后面描述的总线功能模型的 MAC 层实现,将用户事务拆分为总线事务。
ATLM 基于消息标识符,准确地对每个总线事务(CAN 帧)的仲裁进行建模。它在帧起始时收集所有请求,然后处理优先级最高的消息。为最大化执行性能,总线仿真在实现时没有自身的执行流程。
我们定义了 ATLM 模型的两个变体。第一个变体 ATLM(a),对帧进行逐位检查,以计算 CRC 并处理填充位,即每发现 5 个相同极性的位,就插入或删除一个填充位。由于位填充的存在,物理帧长度取决于帧内容。第二个模型 ATLM(b),既不计算消息 CRC,也不处理填充位。它避免了代价高昂的位检查,预计比 ATLM(a)执行速度更快,但准确性会有所牺牲。
3.3 总线功能模型
总线功能模型是一种可综合的总线模型,涵盖了总线定义中的所有定时和功能属性。它是一种引脚精确且周期精确的总线模型。
总线功能模型实现了规范中的所有功能。它通过 CRC 保护数据、处理填充位并执行仲裁。帧数据以串行方式发送和接收,并且节点时钟根据文献与位流同步。
表 1 总结了每个模型实现的功能,并展示了处理用户数据的粒度。每个模型在 SDL 中的代码行数(不包括测试平台)如下:TLM 为 250 行,ATLM(b)为 475 行,ATLM(a)为 550 行,总线功能模型为 1400 行。下一节将分析模型的性能和准确性。
表 1. 模型中支持或抽象掉的特性总结
04
分析
本章将探讨如何将实现的模型用于系统建模。我们将研究两个主要方面:首先,评估仿真性能,因为性能提升是抽象建模的主要前提;其次,研究更抽象模型的准确性。权衡速度优势和准确性缺陷,可帮助设计者在特定设计阶段做出速度 / 准确性的权衡决策。
4.1 性能
在一个包含两个总线节点(一个作为主节点,一个作为从节点)的场景中,对每个模型的性能进行了测量。用户事务会被传输固定次数,且每次传输之间没有延迟。测量执行所有用户事务重复传输所需的仿真时间(也称为实时或挂钟时间),并计算单个用户事务的平均执行时间。所有测试均在奔腾 4、2.8GHz 的计算机上进行。
性能测量结果(以仿真时间为指标)如图 3 所示。x 轴表示用户事务的大小(以字节为单位),y 轴表示传输一个用户事务所需的仿真时间。表 2 比较了在传输 16 字节用户事务时,各个模型的性能。
图 3. 仿真时间
表 2. 传输16字节时模型性能比较
性能测量结果证实了预期:仿真速度随着抽象程度的提高而加快。TLM 模型执行速度最快,其执行时间与事务大小无关,因为每次传输执行的操作数量是固定的(一次 memcpy 和一次 waitfor)。传输 16 字节(通过多个 CAN 消息)需要 0.0012ms。
速度次之的是 ATLM(b)模型,该模型未对位填充和 CRC 进行建模。由于 ATLM 模型在总线事务(CAN 消息)级别对数据传输进行建模,因此每 8 字节在图表中会出现一个明显的台阶,因为传输用户数据需要额外的 CAN 消息。执行时间会随着总线事务数量的增加而线性增加。传输 16 字节的事务需要 0.015ms。
ATLM(a)的执行速度比 ATLM(b)慢 8 倍,因为它需要为位填充和 CRC 计算检查消息的每一位。在一帧内,仿真时间的增加体现了这种额外工作的影响。传输 16 字节的用户事务需要 0.12ms。
总线功能模型比 ATLM(a)慢两个数量级。串行传输数据和执行位同步所需的额外工作,需要更多的计算能力。除了功能增加之外,实现结构也降低了性能。每个总线节点需要两个额外的执行线程,一个用于位流处理器,一个用于位定时逻辑。传输 16 字节需要 27.4ms。
4.2 准确性
上一节对使用更高级抽象模型带来的加速比进行了量化。现在,我们将评估设计者为实现更高的仿真速度,需要接受哪些准确性限制。然而,与之前的性能测量不同,很难定义一个单一的、具有表现力的数值,来比较不同模型的准确性。实际的准确性在很大程度上取决于环境和实际应用。
4.2.1 测试设置
使用一个通用的测试设置,包含 4 个总线节点,其中两个节点作为主节点,两个节点作为从节点。在测试过程中,每个主节点传输一组预定义的 5000 个用户事务。这些用户事务在消息 ID、事务长度和内容(1 - 16 字节)以及两个事务之间的延迟(模拟本地计算)方面都有所不同。所有变化参数均呈线性随机分布。每个主节点从不同的消息 ID 范围发送消息,一个主节点发送高优先级 ID(0 - 511)的消息,另一个发送低优先级(ID 512 - 1023)的消息。
在测试执行期间,分别记录每个主节点的每个用户事务的开始时间和持续时间(均以仿真时间为单位)。针对每个实现的总线模型重复进行该测试。由于每个模型传输的是相同的一组用户事务,因此它们的结果具有可比性,可以进行分析。
一般来说,总线竞争是总线使用中的一个主要问题。预计模型的准确性会随着总线竞争的变化而显著不同。因此,针对不同的总线竞争情况重复进行上述测试。
在该测试中,无法直接控制总线竞争。取而代之的是,在不同的测试运行之间,改变主节点两个用户事务之间的最大延迟。改变最大延迟会影响总线利用率,并且由于在测试过程中有两个主节点访问总线,因此它与总线竞争量相关。在总线功能模型的测试执行过程中,测量实际的竞争量。
图 4. 总线竞争示例
在本文中,竞争定义为用户事务之间的重叠,如图 4 所示。通过总线功能模型,测量特定最大事务延迟导致的实际竞争量。对于每个 CAN 位时间,测量是否有一个或两个用户事务处于活动状态。如果应用程序被阻塞以等待事务完成,则该用户事务处于活动状态。这个活动事务的定义与总线节点的实际状态(例如挂起、仲裁、活动传输)无关。基于这个基本定义,本文将竞争定义为:
4.2.2 基于传输持续时间的分析
如上文所述,一次测试运行会生成每个用户事务的执行记录。以下段落将描述对测量数据的分析。
单个用户事务的传输持续时间,是预测由于总线访问导致的应用程序延迟的一个重要指标。因此,第一步,根据传输持续时间评估模型的准确性。为此,将单个用户事务的误差定义为:
其中,durationstd 表示根据 CAN 标准的传输持续时间,durationtest 表示被测模型中的传输持续时间。
根据这个误差定义,一个定时准确的模型误差为 0%。我们避免直接用百分比表示准确性,因为特定模型的误差可能超过 100%(即被测模型预测的仿真时间是实际时间的两倍以上)。
第一组图表,图 5a 展示了高优先级主节点的情况,图 5b 展示了低优先级主节点的情况,它们显示了在不同总线竞争量下,用户事务的平均定时误差。
图 5a. 高优先级消息基于传输持续时间的误差
图 5b. 低优先级消息基于传输持续时间的误差
图 5a 表明,包含位填充和 CRC 计算的 ATLM(a)模型,与总线功能模型的准确性相同(两条曲线都与 x 轴重合)。需要结合测试的限制来理解这一结果,这些限制包括:CAN 总线上发送和接收之间没有传播延迟,用户事务之间的所有延迟都是 CAN 位时间的倍数,并且测试与第一个发送者的位时钟对齐开始。在这些仅适用于仿真环境的限制下,所有总线访问都与 CAN 位时钟对齐进行,不需要亚周期信息。在这种情况下,总线功能模型的额外功能(即位同步)没有被用到,因此总线功能模型和 ATLM(a)模型都能达到 100% 的准确性。
由于没有对填充位和 CRC 进行建模,ATLM(b)模型的准确性较差。对于高优先级范围内的消息,在低竞争情况下,其不准确性从 10% 开始,在竞争达到 30% 时,不准确性线性上升至 20% 后趋于平稳。由于没有对填充位进行建模,单个消息的传输时间(取决于其内容)比总线功能模型中的传输时间短。因此,两个发送者之间的仲裁交互有所不同。随着竞争加剧,低优先级频段的用户事务对高优先级事务的影响越来越大。然而,较早开始的低优先级事务(可能由多个 CAN 帧组成)最多只能将较晚开始的高优先级用户事务延迟一帧。低优先级事务的第二个 CAN 帧将在仲裁中失败,这导致在 30% 的竞争情况下,不准确性趋于平稳。
在优先级相反的相同场景中,这一限制并不适用。低优先级用户事务可能会被由多个 CAN 帧组成的高优先级用户事务完全延迟。因此,随着竞争加剧,ATLM(b)模型对于低优先级用户事务的定时误差会不断增加,没有平稳阶段(图 5b)。
TLM 模型仅在用户事务级别模拟总线访问,对于高优先级和低优先级事务都给出了一致的结果。在这两种情况下,不准确性都随着总线竞争的增加而增加。不出所料,TLM 模型的结果最不准确(在 45% 的竞争情况下,不准确性达到 40%)。
4.2.3 基于累积传输持续时间的分析
基于传输持续时间的准确性分析是预测总线流量导致的应用程序延迟的一种方法。此外,整体定时(例如应用程序何时完成?)对于设计决策也很重要。为此,我们根据累积传输时间对相同的实验结果进行了评估,累积传输时间是用户事务持续时间的总和。图 6a 和图 6b 展示了基于累积传输时间的准确性结果。
图 6a. 高优先级消息的累积误差
图 6b. 低优先级消息的累积误差
累积传输时间分析表明:由于 ATLM(b)模型正确地捕捉了仲裁过程,因此在测试过程中,其对单个 CAN 帧的预测误差会相互抵消。无论优先级如何,测量到的误差约为 4%。这可以归因于没有对填充位进行建模(平均而言,填充位会增加 4% 的比特数)。TLM 模型的竞争分辨率较为粗糙,且与优先级无关,在两个优先级范围内,其不准确性都呈线性增加。
05
结论
本文报告了一项基于 CAN 总线的抽象通信建模案例研究。实现了三种主要模型:总线功能模型、仲裁事务级模型(ATLM)和事务级模型(TLM)。此外,还为 ATLM 创建了两个变体。
我们对这些模型的可用性进行了评估。在仿真性能方面,从总线功能模型到 ATLM(a)模型,测量到了两个数量级的加速比。随着抽象程度的进一步提高(到 ATLM(b)模型和 TLM 模型),每提高一个抽象级别,加速比又提高一个数量级。
我们对每个模型的仿真准确性进行了详细分析。根据分析结果,表 3 列出了在给定环境和仿真重点下,能够产生可接受结果的最快模型。
表 3. 模型选择
TLM 模型仅适用于设计的非常早期阶段。随着总线竞争的增加,其在单个传输时间和累积传输时间方面的准确性会严重下降。速度仍然较快的 ATLM(b)模型适用于主要关注应用程序完成时间的场景。由于基于传输持续时间的分析结果不理想,该模型不适合预测单个传输延迟。
ATLM(a)模型包含填充位和 CRC 计算,在测试限制条件下(例如无传播延迟)显示出 100% 的准确性。它是在所有竞争情况下,能够准确预测单个传输延迟的最快模型。总线功能模型作为可综合模型是必要的,或者在仿真中包含模拟 CAN 总线上的传播延迟时也需要使用该模型。
来源:豆包软件翻译
end
精品活动推荐
AutoSec中国行系列沙龙
专业社群
部分入群专家来自:
新势力车企:
特斯拉、合众新能源-哪吒、理想、极氪、小米、宾理汽车、极越、零跑汽车、阿维塔汽车、智己汽车、小鹏、岚图汽车、蔚来汽车、吉祥汽车、赛力斯......
外资传统主流车企代表:
大众中国、大众酷翼、奥迪汽车、宝马、福特、戴姆勒-奔驰、通用、保时捷、沃尔沃、现代汽车、日产汽车、捷豹路虎、斯堪尼亚......
内资传统主流车企:
吉利汽车、上汽乘用车、长城汽车、上汽大众、长安汽车、北京汽车、东风汽车、广汽、比亚迪、一汽集团、一汽解放、东风商用、上汽商用......
全球领先一级供应商:
博世、大陆集团、联合汽车电子、安波福、采埃孚、科世达、舍弗勒、霍尼韦尔、大疆、日立、哈曼、华为、百度、联想、联发科、普瑞均胜、德赛西威、蜂巢转向、均联智行、武汉光庭、星纪魅族、中车集团、赢彻科技、潍柴集团、地平线、紫光同芯、字节跳动、......
二级供应商(500+以上):
Upstream、ETAS、Synopsys、NXP、TUV、上海软件中心、Deloitte、中科数测固源科技、奇安信、为辰信安、云驰未来、信大捷安、信长城、泽鹿安全、纽创信安、复旦微电子、天融信、奇虎360、中汽中心、中国汽研、上海汽检、软安科技、浙江大学......
人员占比
公司类型占比
更多文章
关于涉嫌仿冒AutoSec会议品牌的律师声明
一文带你了解智能汽车车载网络通信安全架构
网络安全:TARA方法、工具与案例
汽车数据安全合规重点分析
浅析汽车芯片信息安全之安全启动
域集中式架构的汽车车载通信安全方案探究
系统安全架构之车辆网络安全架构
车联网中的隐私保护问题
智能网联汽车网络安全技术研究
AUTOSAR 信息安全框架和关键技术分析
AUTOSAR 信息安全机制有哪些?
信息安全的底层机制
汽车网络安全
Autosar硬件安全模块HSM的使用
首发!小米雷军两会上就汽车数据安全问题建言:关于构建完善汽车数据安全管理体系的建议