徽州骆驼 · 2022年12月14日 · 北京市

汽车安全岛-ISO 26262边缘测试、安全和数据管理

以下文章来源于智车Robot ,作者Mentor

自动驾驶汽车的前景正推动汽车半导体零件的设计和测试发生深刻的变化。汽车IC过去仅用于控制车窗等简单功能,现在则要执行与先进驾驶员辅助系统(ADAS)和自动驾驶应用相关的复杂功能。所需的处理能力导致IC变得大而复杂,并采用先进工艺来制造。再加上需要满足ISO 26262功能安全标准的安全要求,汽车设备和系统制造商面临着一系列新挑战。但功能安全只是一个方面,只有在黑客攻击等网络威胁下也能保证安全,这些系统才算是真正安全。

这些设备中复杂的功能安全和安保内容的增加,导致需要更多的控制和监测。从基本硬件控制升级到嵌入式CPU和软件控制的“安全岛”可扩展解决方案正变得非常流行。

简介

大多数人都熟悉ISO 26262标准及其在硬件和软件设计方面的要求。合规的重点是确保SoC和系统的安全,因此对于目标应用而言,达到正确的合规级别很重要。这些级别被称为汽车安全完整性等级(ASIL),从A到D分为四级,满足这些要求比想象的要困难。

“现在的片上测试、安全和安保系统的管理过于复杂,简单的控制系统无法胜任,同时它又过于重要,无法直接从云端进行管理。所以,安全岛是理想的解决方案。”

当今大多数具有安全意识的知识产权(IP)产品被设计为ASIL A或B级,足以支持信息娱乐和基本ADAS,但不足以支持安全关键型功能,例如先进ADAS、自动刹车、自动转向或其他自主功能。将这些IP子系统的完整性等级提高到所需级别以上,对IP提供商或内部IP设计团队而言通常没有经济意义,因为他们必须支持广泛的市场和使用模型,为过高的等级投资并不值得。同样的道理,有些IP子系统甚至可能没有安全支持。

如何让一款全人工智能(AI)处理器符合安全标准?除了加大IP的尺寸和功耗以到处设防,别无他法。但这样一来,其价值就要大打折扣。

事实上,为实现ASIL D认证而进行的设计往往采用其他方法,并允许设计中的IP包含混合等级的ASIL支持。实现总体目标需要在集成级别对安全管理进行模块化处理。

将任何给定的功能逻辑或子系统隔离出来,使用逻辑内建自测试(BIST)或存储器BIST等办法进行系统内测试,应该是可行的方法。

此外,存储器等公共资源必须尽可能在各个域之间独立,这样一个域中的故障就不会破坏多个域,导致整体ASIL等级降低。这一切都说得通,但由谁说了算?什么机制将负责监测问题和管理测试,并将这些问题传达给更大的系统?例如,发出驾驶员需要接管方向盘并靠边停车的信号?或者问题只需要打开警告灯,可以在下一个保养周期予以解决。

这就是安全岛的作用。它旨在管理和控制SoC中的所有安全内容,以支持芯片内复杂问题的恢复,并通过信号将故障告知外部系统,而且还能适应未来的需求和用例。

片上功能安全的实现

功能安全的目标是防止安全关键型系统的故障造成伤害。添加到设计中的功能安全机制通过检测两种不同类型的随机硬件故障来保护设计免受故障影响。潜在故障和瞬态故障的覆盖率将决定设计的整体诊断覆盖率,进而决定可达到的ASIL等级。

通常,所使用的安全机制是一组插入到设计中的嵌入式监测器。这些监测器既可以是结构性的,也可以是功能性的,并且可以根据需要分布到整个半导体器件中。

除了少数例外,这些监测器均是被动的,意味着它们可以设置为监测设计的某些方面,要么检查结构缺陷,要么检查功能异常。

因此,它们自己无法采取任何直接行动,只是通过全芯片范围内的通信基础架构反馈测试和分析数据。表1显示了一些常用的安全机制,以及一些可以决定在哪种应用中使用哪种机制的参数。

表1 用作安全机制的典型技术
image.png
这些监测器必须在不干扰正常功能的情况下运行,并且应当能够根据半导体器件的最终应用和相关的ASIL等级灵活地提供不同程度的分析数据。图1显示了一个支持分布式全系统监测的芯片级功能安全架构的示例。

image.png
图1.汽车SoC中功能安全的典型分配

即使是相当小的系统,设计中独立安全机制的数量也很容易与设计中功能IP的数量相当。与主要功能设计不同,独立安全机制IP可能不是都有通用或精心设计的通信基础架构。

使用西门子Tessent系统内测试IP作为安全机制时,通信基础架构已经得到解决。所有BIST IP(Built-in Self Test)均通过IEEE 1687 IJTAG网络连接到通用控制和通信基础架构,该网络可由Tessent Mission Mode控制器驱动。图2显示了使用IJAG并连接了Mission Mode的通用系统内测试设置的架构。

image.png
图2.Tessent Mission Mode架构SiB为分段插入比特,FSM为有限状态机

如何管理汽车IC的安全性

对于先进SoC,通过Tessent Mission Mode控制器将所有基于系统内测试的安全机制结合在一起,可实现单点控制。但是,Tessent Mission Mode控制器只是启用不同测试的配置和调度以及收集结果的机制。通过添加安全CPU,Mission Mode控制器可以成为专用安全岛。Tessent Mission Mode控制器的接口可以通过创建IP时提供的专用AMBA APB接口来实现。图3显示了典型的安全岛配置,其中添加了一个安全管理器CPU。
image.png
图3.基本安全岛架构

Tessent还提供完整的安全岛参考流程,支持与市售汽车级CPU轻松集成。

根据器件的目标ASIL,确保安全岛是一个孤立的逻辑部分要么是必须满足的要求,要么只是一种良好的做法,安全岛的名称正是由此而来。

例如,将安全管理器CPU作为器件的一部分嵌入其中,并确保某些设计方面的分离——逻辑分离、物理分离和电源分离,我们便可降低安全管理器受到器件功能部分的任何缺陷影响的可能性。物理分离和电源分离很容易理解,逻辑分离的意思是尽量减少安全岛和其他功能逻辑之间的数据连接。图3显示了仅通过IJTAG IEEE 1687接口连接到功能逻辑。然而,实际的安全机制仍然嵌入在功能逻辑中。

先进安全机制(非破坏性存储器BIST)的管理

最常见的片上结构安全机制形式之一是存储器BIST(MBIST)。MBIST引擎通过算法生成一系列读写操作(这些操作以所选算法定义的预定模式覆盖整个地址空间),以全面测试嵌入式存储器。

在车辆运行期间运行此类存储器测试的一个主要挑战是,存储器必须先脱机,以便BIST引擎接管控制。可能还需要在运行测试之前备份存储器内容,并在测试之后恢复内容,因为存储器测试会破坏测试前的所有存储器内容。

另一个问题是,让存储器脱机可能会降低系统性能,这在某些应用中可能是不可接受的。业界已开发出一种非破坏性MBIST技术来避免所有这些问题。在这种方法中,MBIST引擎会使用一系列的短事务序列对存储器进行测试,我们通常将此称为猝发。

猝发通常仅持续若干时钟周期(可能20到30个),并且每次针对不同的存储器位置。因此,可通过大量较短的MBIST会话对整个存储器进行测试。这一方法是非破坏性的,因为在每个猝发期间,猝发所修改的存储器位置均会由MBIST引擎进行保存和恢复。运行性能不会受到显著影响,因为只有当MBIST引擎与功能逻辑之间实现的仲裁逻辑判断存储器空闲时,才会启动猝发。图4显示了非破坏性存储器BIST方法如何逐区段测试功能存储器。猝发的调度需要利用系统握手来管理。这很容易通过作为安全岛一部分的安全管理器CPU来管理。

image.png

图4.非破坏性存储器BIST调度

管理不仅仅是测试

目前只是探讨了将BIST IP用作安全机制的具体用例。但是,一旦实现了安全岛,其范围可以进一步扩大。通过附加总线互连上的IJTAG接口,还可以连接一系列其他IP,用来提高IC安全性。图5显示了扩展的安全岛连接。

image.png

图5.扩展安全岛连接

Tessent–测试

如前所述,监测和触发BIST结构以测试有无结构缺陷,很容易通过与BIST IP一起在片上实现的IJTAG基础架构来管理。

Tessent–嵌入式分析

嵌入式分析IP扩大了安全范围,允许在SoC结构本身中进行监测和数据收集。这可以解决更高抽象级别的安全检查,并能够查找表现为意外硬件操作的软件和安全相关问题。嵌入式分析的典型实现如图6所示,其中可以看到与安全岛的连接。此安全岛实现可用来控制Tessent测试技术。
image.png
图6.嵌入式分析的典型实现

功能安全IP

正如前面的图1所示,许多不同类型的IP可用来充当功能安全机制。但是,这些IP也可以通过IJTAG基础架构或直接通过APBA MBA总线基础架构连接到安全岛实现中,并以类似于BIST IP的方式进行控制和监测。

“将数据转移到云端需要以结构化的方式进行管理。安全岛提供了对数据进行预处理和调节的机会,以确保数据带宽和存储得到高效利用。”

参数监测

汽车SoC中使用的另一类监测是参数监测,它不会像Tessent测试IP那样查找具体逻辑缺陷,也不会像Tessent嵌入式分析那样查找系统异常。

参数监测可发现由于电压、温度和工艺漂移的影响而出现的问题,这些问题可能影响器件的性能和/或可靠性。对这些参数的监测可广泛用于评估和编译可靠性数据。

外部通信

对于可以使用安全岛收集的所有数据,离线分析这些数据的能力至关重要,因此拥有一系列不同的外部通信选项非常重要。

监测和管理的软件要求

片上运行安全管理器可实现广泛的应用和用例。在产品运行的同时,Tessent测试或Tessent嵌入式分析子系统可以继续行使其监督功能,记录或传输反映主机状态的行为数据。或者它可以更进一步,执行干预以规避安全攻击,或在车载电子控制单元(ECU)中检测到严重错误时警告自动驾驶系统。但是,在所有需要安全管理器在部署的产品中自主运行的情况下,必须有一个监督程序在安全管理器本身上运行。该监督程序必须与片上运行的测试和嵌入式分析子系统对接,并管理其活动。

嵌入式SDK介绍

Tessent嵌入式SDK是一个软件库,旨在编译成目标代码并在SoC内的嵌入式安全管理器上运行。它提供了一种配置和控制嵌入式分析监测器的方法。Tessent嵌入式软件开发套件如图7所示。

image.png

图7.Tessent嵌入式软件开发套件

虽然仿真、硬件加速仿真和先进验证技术必不可少,但SoC的实际性能和运行必须在硅片上实现才能得到保证。在SoC设计的规格说明阶段纳入嵌入式分析,有助于解决这些挑战。设计人员之所以选择嵌入式分析,是因为它能帮助提升SoC的质量并加快其上市时间。

在IC制造前用于性能监测的嵌入式分析技术,在芯片部署到最终应用中后,也用于监测和保证性能。嵌入式SDK允许在片上创建一个独立的监测和分析环境。它由一组API组成,通过这些API可以访问Tessent嵌入式分析IP的全部功能,并能直接连接到Tessent消息基础架构。它提供了一个编程环境,设计团队可以将特定于手头任务的应用程序代码放入其中。

组合的嵌入式SDK和应用程序代码在目标SoC内的监督内核上运行。该嵌入式SDK以源代码形式提供,让设计团队能够快速高效地创建自定义应用程序,并将其编译到任何嵌入式系统中。Tessent IP为部署它的SoC的运行和状态带来了极高的系统级可见性。该嵌入式SDK支持实现一种自主机制来持续运行和管理分析子系统——提供一种从Tessent IP配置、控制、处理数据的方法—而无需连接外部软件实用工具。当部署到最终产品中时,这是非常宝贵的,因为在这种情况下,SoC根本不可能有外部连接。由此可实现一种完全在片上的配置和分析解决方案,它能独立配置和管理Tessent嵌入式分析IP。

通过嵌入式SDK获取和处理的信息可用于本地决策。例如,在自动驾驶汽车应用中,可以将嵌入式SDK库包含在SoC上运行的代码中,以便就车载ECU的异常状况发出警告,并让主CPU决定采取何种措施。或者可以捕获并处理系统和状态数据,然后要么采取措施,要么丢弃,要么记录下来供以后下载和离线处理。

结语

汽车IC受到不断提高的设计复杂性、尺寸、先进制造工艺和安全要求的影响。应对新挑战要求设计人员和设备制造商建立对管理片上测试、安全和安保IP的控制,然后捕获芯片数据。最终,片上监测和分析流程必须由软件控制。安全岛是一种面向未来的解决方案,它由软件驱动,因此能够在设备生命周期中更新安全管理方式。

作者:Mentor
来源:智车Robot
微信公众号:
汽车电子与软件.jpg

推荐阅读:

更多汽车电子干货请关注汽车电子与软件专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
5711
内容数
448
汽车电子与软件行业的相关技术报道及解读。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息