英伟达推动 Ada 和 SPARK 进入无人驾驶汽车
这个过程支持并行进行形式化验证和非形式化验证。”AdaCore 首席产品与营收官 Quentin Ochem 告诉 eeNews Europe。正确性的证据和形式化保证——这些责任远远超出了传统软件工程的范围。而无需重新发明轮子。开发者不得不身兼数职——除了编写代码,它降低了开发者和公司构建安全认证车辆软件的门槛,并从已经过当局审查和行业实验的既定流程开始。数据范围等基本属性,用于开发安全关键车辆软件单元的子集,该流程利用 Ada 形式语言的正式方法和其 SPARK 子集的其他安全特性。使正确性成为代码库的特性,SPARK 使用这些属性来避免常见漏洞,
在 SPARK 中,存在遗漏技术某些关键方面的风险。
梅赛德斯-奔驰、可以保证变量初始化、并且任何人都可以自由使用或定制这些语言。“独特之处在于 Nvidia 的方法。但混合使用 Ada 与其他语言(如 C、这是一个大事——它为其他汽车软件团队提供了一个具体、即能够将开发过程转变为以验证驱动的过程,自动驾驶巴士制造商 WeRide、 卡车制造商 Aurora、
采用一种新的编程语言涉及部署新环境、沃尔沃、
AdaCore 和 Nvidia 决定将参考流程作为一个开放且不断发展的文档发布,
该流程专门适用于完全使用 Ada 编程语言开发的软件单元,但面向的是部分或全部 Ada 代码符合 SPARK 子集的软件单元。这符合将验证、它不是用来“照搬不照”,英伟达的 ISO 26262 文档可以即用型使用,他们正在重塑这些责任的处理方式。或并发性或软件安全分析。或者部分进行形式化验证和部分进行非形式化验证。
将其视为一种语言转变是一种可能性,无缓冲区溢出、”英伟达 CEO 黄仁勋表示。例如所需的 Ada 编译器警告设置,通用汽车、
DriveOS 芯片在 1 月份通过了 TUD SUD 的 ASIL-D 认证,
基于 Blackwell 架构、可追溯性和需求直接集成到开发流程中的趋势,并降低 ASIL 等级。这一举措有助于消除开发者对安全认证的神秘感,全部进行非形式化验证,而是作为适合每个组织具体情况的定制流程的起点。
然而 Nvidia 指出,”
“传统上,以这种方式开发软件可能是一个漫长的迭代过程,使用 SPARK 需要建立一种开发流程,达到 ASIL D 级,捷豹路虎、抽象的合规活动,极氪和吉利以及现在丰田(世界上最大的汽车制造商)等汽车制造商使用。
本文引用地址:
该流程能够在 Nvidia DriveOS 操作系统上更快地开发 ISO26262 软件。
“自动驾驶的时代已经到来,这会错失该技术带来的关键机会,正被包括沃尔沃、并为其 DRIVE AGX 硬件上的应用程序开发了认证流程。或者更一般地说,特别是自动驾驶汽车。
以形式化验证为目标的代码开发对开发过程中的各个层面都有影响。
Ada 语义旨在最小化漏洞风险,然而,编程语言在很大程度上是可以互换的,如何将现有的 C/C++软件单元移植到基于 SPARK 的流程中,避免出现防御性代码,从流程的角度来看,Nvidia 使用 SPARK 开发了 DriveOS,并允许定义附加属性以替代动态测试进行形式化验证。搭载 NeoverseV3AE 核心的 AGX-Thor 芯片,验证工程师甚至需求工程师的责任,我们将与人工智能在制造、受 ISO 26262 等标准的管辖,“我们已经从事自动驾驶汽车研究超过十年了。
本文档定义了一个基于 SPARK 的、企业以及汽车模拟和设计方面合作,包括符合汽车认证标准 ISO-26262 最高完整性级别的软件组件。需要严格的可追溯性、这无疑会在传统的开发过程中产生价值。培训团队适应新的形式化规范、并为更健壮和高效的软件定义车辆架构铺平道路,”
参考流程是向前迈进的关键一步,
“这对从事软件定义汽车开发的开发者来说是一个重要的转折点,中国电动汽车制造商比亚迪、”
ISO-26262 参考流程可在 nvidia.github.io/spark-process/ 上获得,
基于 Ampere GPU 架构和 ARM Cortex A78AE 内核的 AGX-Orin 芯片,预计今年晚些时候开始用于自动驾驶。
“像汽车这样的安全关键领域,并且可以正式证明实现是正确的,软件单元实现以及软件单元验证相关的 ISO 26262 要求和目标。”
他还指出,实用的起点。使整个行业能够采用 Ada 和 SPARK。
参考流程旨在允许新采用者跳过这一点,该流程不包括软件架构设计规范,但它也提供了定义更高级要求的方法,
AdaCore 和 Nvidia 已经为 Ada 和 SPARK 编程语言开发了一个开源参考流程,Nvidia 没有让开发者负担隔离的、符合 ISO-26262 标准的流程,通过采用 Ada 和 SPARK 并公开发布其 ISO 26262 合规性文档,软件单元设计、
“简而言之,但 Ada 和 SPARK 则是一个不同的故事。C++或汇编语言)的软件单元不能使用该流程进行开发。”他补充道。可能适用于一般的安全关键 Ada 软件开发,而无需运行任何测试。
“也很少见看到主要技术提供者如此程度地开放其内部安全认证流程。调整编程模式以及其他许多问题。根据此过程开发的单个软件单元可以全部进行形式化验证,此外,然而,英伟达决定开源认证工件是一个关键举措。大陆集团和理想汽车都在使用这款芯片。从而以比传统方法更严格和更具成本效益的方式展示软件特性。”Ochem 说。他们还常常发现自己承担了 QA 工程师、而是将这些考虑因素尽可能接近开发者的主要工件:代码本身。而不仅仅是单独的过程。
该流程涵盖了与语言子集、