登录 | 注册 退出 投稿

【汽车芯片】增强RISC-V片上系统的故障感知和可靠性

专栏作者 2023-11-06

内容提要:在这项工作中,我们提出了通过提供错误检测和监控来扩展SoC实现的故障可观测性的解决方案。为此,我们在系统的冗余结构中引入了观察功能,从而能够报告有价值的信息,支持增强的辐射测试并支持应用程序执行从严重故障中恢复的操作。因此,这项工作的主要贡献是提高故障意识和系统中故障模型分析的解决方案。


摘要

最近的研究表明人们有兴趣采用RISC-V处理器来实现高可靠性电子产品。该架构的开放性使得处理器功能的实现和定制成为可能,从而提高其可靠性。对面临恶劣辐射环境的强化RISC-V处理器的研究,在处理器核心和外围设备中应用了容错技术,利用了系统冗余。在之前的工作中,我们提出了一种强化的RISC-V片上系统(SoC),它可以在有限的故障感知范围内检测和纠正辐射引起的故障。因此,在这项工作中,我们提出了通过提供错误检测和监控来扩展SoC实现的故障可观测性的解决方案。为此,我们在系统的冗余结构中引入了观察功能,从而能够报告有价值的信息,支持增强的辐射测试并支持应用程序执行从严重故障中恢复的操作。因此,这项工作的主要贡献是提高故障意识和系统中故障模型分析的解决方案。为了验证该解决方案,我们在两个辐照设施中进行了补充实验,包括大气中子和混合场环境,事实证明该系统对于分析处理器核心及其外围设备的辐射影响非常有价值。在这些实验中,我们获得了一系列错误报告,使我们能够更深入地了解故障机制,并改进SoC的表征。

1.简介

在现代技术中,电子系统越来越依赖于开发复杂和关键的任务,这带来了与可靠性要求相关的一些挑战。许多系统都基于强大的处理单元,这些单元必须具有故障安全功能并保证连续的服务交付。每个应用领域都必须遵守标准和指南,以满足汽车、航空航天和军事行业中的要求。随着RISC-V架构的推出,多个项目和研究工作纷纷启动,以便在许多应用领域采用这些新型的基于RISC的处理器。特别是,该架构的开放性和模块化性质为其在高可靠性和关键系统中的采用提供了动力。

在这些应用领域中,一些可靠性要求源自这些系统所处的环境条件:温度变化、压力分布、机械应力和电离辐射。对于在高空或在轨飞行的航空电子设备来说,电离辐射严重威胁着此类系统的可靠运行。电离粒子与电子设备的相互作用会产生多种效应。单粒子效应(SEE)是一种重要的现象,它会引起瞬态、间歇性和永久性的错误行为。对于处理器来说,这些影响可以被观察为损坏的位、错误的计算和瞬态,这可能导致应用程序输出错误、数据损坏、意外终止和挂起。

为了确保这些处理系统的可靠性,一些容错技术被应用于处理器的架构和周围的外设。这些技术利用了时间、空间和信息冗余。最近的工作探索并分析了这些技术应用于具有故障注入活动的RISC-V架构的有效性,这些技术作为现场可编程门阵列(FPGA)器件内的软核模块实现。研究人员探索了改进处理器架构元素的不同方法。在(参考资料1和2,关注牛喀网公众号,后台咨询下载)中,实现并验证了具有三重模块冗余(TMR)的RISC-Vcore,实现了显著的可靠性改进,但资源利用率很高。提出了锁步RISC-V的设计来解决安全关键型应用。其他工作提出了具有类似策略的混合解决方案,以在性能、资源利用率和可靠性之间找到最佳权衡。

这些容错设计通常通过故障注入活动进行验证,无论是使用模拟环境、仿真策略、软件框架还是真实激励(例如,暴露于粒子加速器中的辐射)。所有这些策略都提供了有价值的数据来实现复杂系统的可靠性评估。对于具有高可靠性系统要求的应用领域(即航空航天、军事),利用真实激励执行故障注入活动是满足标准的强制性步骤。这些活动主要在新系统的开发和验证阶段采用。为此,设计人员通过观察点来检测他们的系统,并准备有意义的基准,以便能够观察和测量系统的故障敏感性。然而,文献中探讨的大多数容错RISC-V实现主要集中在容错上,由于缺乏信息,使得深入的可靠性分析变得复杂。因此,这种方法导致对恶劣辐射环境中这些复杂系统的了解有限。然而,鉴于硬核处理器不具备定制功能,并且FPGA中的软核处理器需要额外的配置结构,而这些配置结构也容易出现失效,因此实现观察结构是一项具有挑战性的任务。

在这项工作中,我们提出了一种策略,旨在通过运行时错误检测来扩展SoC实现的故障可观测性,从而增强HARVSoC中的错误跟踪。为此,我们监控SoC架构的关键结构,以报告有关辐射诱发事件触发的错误的相关信息。与替代策略相比,这种解决方案可以更好地了解SEE在设计中的潜在影响。此外,它还可以更有效地使用强化对策,并为应用程序提供在发生严重失效时执行恢复运行的方法。为了实施和验证这一概念,我们使用该解决方案对HARV-SoC进行检测,并通过中子和混合场辐照活动评估可观测性有效性。值得一提的是,该解决方案提出了许多技术挑战,因为必须为此目的准备许多内部结构。此外,先前的现场专业知识对于指导有效监测和报告的信息的定义也很重要。

本文的其余部分结构如下:第2节介绍相关工作;第3节描述了我们的RISC-V实现的关键方面及其容错和感知功能;第4节介绍了拟议的实验策略;第5节介绍结果和分析;第6节讨论这些结果和成果;第7节总结了这项工作。

2.相关工作

最近的研究探索了容错技术来提高RISC-V系统的可靠性,但对报告的错误进行了肤浅的分析。我们根据故障注入策略(分别是模拟、仿真或辐射),定义了六个类别进行比较:1.核心架构,提供所使用的RISC-V核心实现;2.强化策略,显示所应用的不同容错技术;3.配置内存检查,以证明其在注入活动中的影响;4.评估覆盖范围,显示观察到的要素;5.输出分类,对提供的执行分类进行比较;6.误差分析,其中描述了分析的类型。

对于基于仿真的验证,对其系统进行了初步验证,并且仅提供功能分析。这种方法提供了有关内部组件和故障行为的完整信息,但使用的故障模型有限。当使用仿真时,研究人员经常使用专用组件来注入和监视目标FPGA配置内存中的错误。在某些情况下,会采用更高级的技术在软件执行期间注入故障。然而,仿真与模拟类似,换句话说,它们与所使用的故障模型一样好,即与产生故障的真实现象相关。

对于使用辐射实验的注入,研究人员试图提供对观察到的错误及其对系统可能的影响的描述。然后,主要目标是评估观察到的现象并将其与已知故障模型关联起来,并测量系统对特定测试辐射源的敏感性。尽管如此,这种方法容易受到信息可用性的限制,导致得出的结论的错误率与架构元素或不确定的行为趋势不相关。

因此,这项工作有助于提供在辐照测试活动期间提供附加信息的解决方案。所提出的技术能够报告干预受保护的内部结构的错误。然后,在整个SoC或关键元件中采用强化技术的RISC-V实现中,可以报告与架构相关的主要错误。通过结合多个观察点和运行时生成报告,可以更好地监控实验,从而可以通过连贯且资源丰富的执行日志进行事后增强分析。这支持从不同角度对现象进行交叉分析,并增加观察到的硬件错误和软件行为之间的相关性。值得注意的是,报告的实验将极大地受益于这项工作中采用的观察策略,因为可以报告更有价值的结果和结论,甚至增加了架构和强化技术比较的机会。

3.容错意识

在之前的工作中,我们介绍了处理器核心,该核心在RISC-V组织中实现了可靠性改进。随后,我们将其扩展到片上系统,包含带有外设的总线实现,其可靠性也通过模拟进行了评估。之后,我们重点研究了中子辐照下SoC的表征和分析。

这项工作展示了利用大气中子辐照进行的新故障注入活动的结果,详细介绍了在处理器和SoC级别为我们的容错架构提出的改进建议。

3.1. RISC-V处理器内核

在之前的测试活动中,我们发现错误计数器可以量化所实施的容错技术检测到的辐射引起的故障数量。这些技术是控制端的TMR、算术逻辑单元(ALU)和纠错码(ECC),具有单处理器核心寄存器和数据存储器中的纠错和双错误检测(SECDED)。在此实现中,错误在后台检测并纠正,不会影响应用程序的执行时间。

尽管错误计数技术很有效,但提供的有关每个检测到的错误的信息非常稀少,仅包含每个错误发生的次数,这些信息随后由应用程序报告。因此,在这项工作中,我们提出了一种解决方案,利用更多的处理器资源来提供执行时间的更多信息。该解决方案包括在处理器核心中实现一个错误处理程序组件,该组件在检测到错误时请求陷阱。它监视来自容错结构的信号,保存有关检测到的错误的相关信息,如图1所示。陷阱控制器将请求作为异常处理,确保处理器尽快处理此错误。

图1.png

图1. 错误处理程序实现

错误处理程序中可检测到的错误包括处理器的以下错误:程序计数器(PC)单位和双位翻转、指令寄存器(IR)单位和双位翻转、寄存器文件单位和双位翻转 、控制TMR误差和ALU TMR误差。检测到的错误均通过异常报告,无论其可纠正性如何。除了报告处理器内核中的错误外,错误处理程序设计还包括外部错误输入,该输入可用作处理器内核输入信号。该信号的目的是使SoC能够报告其结构中的错误,例如互连和外围设备。

错误处理程序有一组寄存器,用于在检测到错误时存储信息。这些寄存器在错误处理程序组件中实现并映射到内存中。通过这种方式,我们可以在检测到错误时保存数据,并提供有关错误详细信息的附加信息。基本错误信息包括错误标识符、一个寄存器,其中每一位对应一种错误类型。应用程序必须清除该寄存器以指示错误已被处理,并且执行应继续。提供了支持额外错误分析的更多信息,例如ALU输出、PC、IR和周期寄存器的值。对于位翻转错误,记录位翻转的编码数据及其ECC。除此之外,还提供了应用程序上下文。错误处理程序有许多寄存器,每当调用函数时都会存储PC,并在函数返回时将其清除。这部分是通过旋转队列实现的,当函数被调用时,队列指针递增,当函数返回时,队列指针递减。利用此信息,可以识别发生错误的上下文。

3.2. RISC-V片上系统

错误处理程序的实现提供了有关RISC-V处理器中发生的错误的更多详细信息。然而,SoC层面也容易出现错误。为此,我们通过向总线主控制器添加额外的逻辑来提高SoC的可靠性,该控制器现在能够识别总线访问的超时。此外,我们将之前使用FPGA内部资源实现的存储器更改为外部同步动态随机存取存储器(SDRAM)。由于可用内存的大小显著增加,因此这种实现可以实现更复杂的应用程序。我们实现了一个专有的错误处理程序来提供SoC级别的可观察性,它通过外部错误输入向错误处理程序请求陷阱。

内核和SoC处理程序的这种分离简化了处理器内核错误处理程序的设计,因为它不需要考虑可能针对不同SoC设计实现的所有不同类型的错误。此外,它还为SoC错误处理程序提供了更大的灵活性,因为设计可能需要更复杂的错误处理。图2显示了HARV-SoC实现的概述,其中SoC错误处理程序监视来自总线主控器和内存控制器的错误,并在发生错误时向内核发出信号。

图2.png

图2.RISC-V SoC架构

以下小节介绍了将外部SDRAM集成到设计中的情况,包括添加纠错和检测功能的内存控制器,以及SoC错误处理程序的实现。

3.2.1.SDRAM EDAC控制器

SDRAM和标准SDRAM控制器都不为存储的值提供错误检测和纠正(EDAC)。因此,我们通过添加具有EDAC功能的组件来扩展Microchip SDRAM控制器的实现。为此,我们为每个32位字提供SECDED,并将数据和ECC都存储在内存中。考虑到ECC的7位和字的32位的大小,我们将前四分之三的内存用于数据,最后四分之一用于纠正码。这样,数据将具有其等效的ECC地址,方法是通过将数据地址除以4并加上内存大小的四分之三作为偏移量来计算。

需要三个组件来扩展该控制器的支持:总线桥、未对齐访问转换器和ECC适配器。总线桥连接通过总线支持的存储器访问。未对齐访问转换器将未对齐内存访问修改为对齐访问,在需要时将一次访问转换为两次。该转换器简化了ECC适配器逻辑。ECC适配器负责从SDRAM控制器读取数据并执行纠错和检测。当检测到错误时,该组件具有一个输出接口,将检测到的单位和双位翻转报告给SoC错误处理程序。

3.2.2. SoC错误处理程序

SoC错误处理程序通过外部错误输入直接向核心错误处理程序请求异常,使软件应用程序能够识别错误何时源自SoC。为我们的SoC错误处理器实现的错误,包括总线访问超时以及内存单位和双位混乱。除了该寄存器之外,它还为数据存储器本身提供附加信息,例如发现错误的存储器地址、与该字相关的ECC信息的地址、具有未校正字的编码数据以及先前的地址打乱。

此外,SDRAM存储器的上电值不一定全为零,因此如果是ECC有效值,则需要对存储器进行初始化,以避免初始化时出现一些异常。为此,存储器错误的异常由使能寄存器控制,该寄存器仅在存储器用零初始化之前被禁用,并在完成后立即启用。该使能寄存器是通过TMR实现的。

在相关工作中,人们发现SDRAM可能容易出现卡住位,这会导致软件应用程序停留在永久循环中,重复报告相同的错误。因此,我们保存最后两个翻转地址,并将每个报告的内存错误与这些地址进行比较。如果新错误的翻转地址等于这两者,则忽略该错误以继续应用程序执行。此外,SoC错误处理程序还提供总线访问超时错误报告。该错误由总线主控制器报告,如果总线访问响应时间过长,总线主控制器就会超时。

4.辐射实验

我们进行了辐照测试活动,以验证所提出的增强误差观察的方法。为此,我们使用了一种补充方法,其中实验研究了不同的辐射源并探索了故障感知的不同方面。以下小节介绍辐照设施、实验设置和测试执行。

4.1.辐照设施

进行了两次辐射实验:第一个是在英国卢瑟福阿普尔顿实验室的ChipIr光束线中进行的,这是ISIS中子和μ子源的一部分;第二个位于瑞士欧洲核研究组织(CERN)的CHARM混合场环境中。

ChipIr生成具有代表大气环境光谱的中子束。该设施能够产生通量比地球地面高几个数量级的中子辐照,从而能够加速设备和系统的表征。对于能量高于10 MeV的束流通量为5×10^6cm^−2/s。

CHARM提供了具有不同粒子光谱和通量的高穿透辐射环境,主要取决于屏蔽和位置。在我们的实验中,我们选择了一种主要与高能中子和质子相关的配置,但存在许多其他粒子种类,其SEE影响较小(例如电子、μ子)。它还积累了显著的总剂量。该设施监测并报告了四个主要类别的辐照:热中子(ThN),由较低能量的中子组成;高能强子(HEH),包括等效能量高于20 MeV的所有粒子类型;N1MeV,1 MeV中子;和总电离剂量(TID),显示累积的降解。在本研究中,SEE表征感兴趣的粒子种类和光谱表示为HEH,对于所选配置,其估计通量为8×10^9cm^−2/天。

4.2.实验装置

实验包括由相同板组成的系统级评估设置,其中ChipIr中使用了六块被测系统(SUT)板,CHARM中使用了两块板。这些板托管基于闪存的FPGA设备:Microchip的SmartFusion2 M2S010。每块板都包含一个SDRAM存储器,用作SoC的系统存储器。串行连接用于将SUT中生成的日志传输到辐照室外的主机。为此,使用定制收发器板来扩展这些串行接口。该装置固定在包含上述测试板和记录收发器的框架中。每个测试板都有独立且受监控的电源线。图3显示了为这些辐照活动准备的设置。用于这项工作的SUT和日志记录接口在两个图像中都突出显示,其他板属于不同的实验。

图3.png

图3.为辐照活动准备的实验装置。(a) ChipIr:六块测试板,两层,以及记录接口(突出显示)。(b) CHARM:两个并行测试板和记录接口(突出显示)

这些设置为HARV-SoC提供了一个紧凑且有效的测试平台。特别是在配置存储器方面,基于闪存的FPGA对SEE具有较高的抗扰性,从而提高了实验平台的可用性。此外,使用定制收发器解决方案可以减少可能影响辐照后分析的记录错误,因为它们基于强大的工业协议,可以减少辐照室中复杂和敏感组件的数量(例如串行到USB转换器、USB延长器)。

4.3.基准测试和测试执行

为了均匀地提高SoC的敏感性,实验期间使用了两种工作负载:CoreMark 和Embench。CoreMark是一种行业标准性能基准测试,由四种算法组成:列表处理、矩阵操作、状态机和循环冗余校验(CRC)。CRC不仅用作工作负载,还为基准测试执行的内部步骤提供自检功能。Embench是另一个性能基准测试,旨在提供更广泛的操作集,从而产生22种算法。由于内存大小限制,我们使用了这些算法的自定义子集。

使用建议的错误处理程序策略和异常触发器,应用程序可以处理辐射引起的事件,并可以相应地继续执行。例如,在出现不可纠正错误的情况下,应用程序可以继续执行,可以重新启动执行,甚至可以在错误导致可能的执行失败之前触发其恢复方法。对于所提出的实验,我们专注于报告错误,而不是触发具体的对策。因此,基准测试会循环执行,直到检测到错误为止。在执行期间,异常处理例程报告所有可用信息,根据强化配置纠正或忽略检测到的错误,并返回到先前的上下文(即正常基准测试执行)。基准测试提供包括通过和失败标准的最终结果。

对于ChipIr,每个FPGA托管一个RISC-V SoC,运行CoreMark,在系统的两种配置之间循环:按此顺序进行硬化和基线配置。强化配置由启用了所有容错技术的RISC-V SoC组成,而基准则禁用处理器核心ECC和TMR校正。同样,对于CHARM,CoreMark和Embench均采用指定的强化配置。此外,我们还单独监控每块板的功耗,以确保整个活动的正常运行和安全。

5.结果

本节首先讨论设计实现结果,包括资源使用和执行时间开销。之后,本节分析了ChipIr和CHARM设施进行辐照活动期间获得的结果。

5.1.合成

表1展示了之前的工作与本工作的基线(禁用强化)以及HARV-SoC的不同强化配置之间的资源使用情况比较。与之前的工作相比,本文提出的设计在处理器内核和SoC方面都有多项架构改进。经过这些修改,基准处理器的逻辑元件(LE)资源使用量增加了37.8%(从4649到6471),频率提高了38.6%(从33.71MHz到46.76MHz)。

表1.png

表1. 基于闪存的HARV-SoC不同配置的资源使用比较

1 LE(逻辑元件)报告结合4输入查找表(4LUT)和DFF(D型触发器);

2 不适用于(参考资料3,关注牛喀网公众号,后台咨询下载)中提出的 HARV-SoC 版本

实现容错和可观察性结构也会增加资源使用量,当仅包含冗余块时,开销为38%;当还包含错误处理程序块时,开销为64%(“使用开销”列)。由于实现了错误处理程序块,因此资源使用量增加,因为它需要多个寄存器来存储陷阱详细信息和处理器接口逻辑。

实施强化后,关键路径增加,导致最大工作频率(Fmax)降低,两个强化版本的最大工作频率均变为33 MHz左右。强化版本的最大频率相似,因为错误处理程序块不影响关键路径。尽管如此,处理器的多周期实现允许更高的实际最大工作频率,在验证和实验期间以50 MHz运行。

5.2.性能开销

除了FPGA资源使用方面的开销之外,错误处理还会引入执行时间开销。我们测量了每个错误报告的处理情况,得到了大约30毫秒的平均值。考虑到在具有加速照射环境的混合场环境中进行的实验,执行时间的开销可以忽略不计。

在处理例程中,执行时间较长的步骤是通过串行接口报告错误信息。实际的应用程序不需要从外部报告陷阱的详细信息,从而简化了错误处理程序并进一步减少了执行开销。

5.3. ChipIr:大气中子

在本次实验中,我们重点关注处理器架构中的错误,而在之前的工作中对这些错误的了解有限。总累积注量达到3.64×10^11n/cm^2。为了提供比较基础,根据器件特性和获得的通量,我们计算出受ECC保护的关键系统寄存器中预计会发生43次翻转。然而,还期望观察到的错误比该估计提供的要少,因为要作为错误进行观察和跟踪,寄存器必须由应用程序实际使用并影响其执行。例如,临时寄存器通常仅在短时间内保存值,而堆栈指针寄存器始终保留重要值,因此更容易受到位翻转的影响。因此,正如预期的那样,处理器内核中检测到的错误是寄存器文件中的单位翻转,这是最有可能出现错误的,因为它是具有最大数量寄存器的受监视结构。此外,PC和指令寄存器中未检测到任何异常。

5.3.1.错误分类

除了检测到的错误之外,还存在处理器执行失效,其中的根源无法识别。这些失效表现为加载异常故障,更具体地说,是对无效地址的内存访问。总的来说,我们在17次运行中发现了处理器核心陷阱,这些陷阱分布在用于实验的所有主板上。其中,14个陷阱与寄存器文件中的单位翻转相关,3个陷阱与加载异常故障相关。

关于已识别的错误,我们可以收集前面提到的错误详细信息。错误被识别为单位翻转,可以通过读取错误标识符寄存器来识别。我们还提供了使用已实施的错误处理程序解决方案检测到的所有错误的更多信息。例如,在一次运行中,我们报告了带有位翻转的编码数据,并且应用程序可以识别第30位的翻转。除此之外,我们还提供了支持错误分析的附加信息,例如PC、指令寄存器、mcycle寄存器和ALU输出。

在整个测试活动中,超过99.9%的执行没有检测到错误,CoreMark执行运行完美。只有少数执行出现了错误陷阱,考虑到前面提到的对翻转次数的分析,这是预期的。我们根据纠正和观察错误的能力对每个测试的处理器配置的错误进行了分类(表2)。大多数错误在强化配置中都是可纠正的,因为它们是单位翻转。有一些错误无法通过强化处理器配置来纠正,这些错误被识别为负载访问故障异常。另一方面,基线配置不能纠正单位翻转,这些翻转被归类为不可纠正的错误。值得注意的是,在一种情况下,基线配置遇到了可纠正的错误,这是数据的ECC部分的混乱,但不影响执行。

表2.png

表2.中子实验中的错误分类

尽管检测到了大多数错误,但还是有一些执行系统无法识别原因。这些错误被看门狗定时器(WDT)复位机制检测为超时,该机制通过复位整个SoC来重新启动处理器执行。考虑到处理器架构,这些错误很可能是由互连或外围组件故障引起的,从而导致处理器无限期地等待总线事务。

5.3.2.执行上下文

使用错误处理程序使应用程序能够识别发生错误的上下文。例如,在其中一次运行中,使用报告我们可以识别出在执行编译器标准库的乘法函数(由CoreMark的矩阵乘法例程调用)时发生了混乱。应用程序可以识别应用程序流所采用的整个路径,识别发生混乱的上下文。图4显示了触发错误陷阱的最常见上下文。最常见的错误函数是core_init_state和core_list_mergesort,它们对应于Coremark基准测试操作中执行时间最长的函数,因此更容易受到错误的影响。接下来,matrix_test在16.67%的错误中受到影响。有一些错误(16.67%)无法识别错误出现的上下文,因为这些错误发生在SoC的未受保护的部分。最后,_puts_r和core_init_matrix函数各有11.11%的错误。

图4.png

图4. 每个函数触发的错误

5.3.3. 失效表征

为了根据辐射环境中的注量关联失效,我们估计了平均失效注量(MFTF)和失效横截面(XS)。当设备需要电源循环来恢复处理器操作时,我们认为是失效,其中强化技术和软重置不起作用。MFTF指标是在实验中导致严重失效的影响力的平均值,而横截面是基于影响力对设备失效率的计算,以cm^2/设备为单位。

表3总结了每个测试板的MFTF和失效截面结果(与中子粒子注量相关)。值得注意的是,所有板材均在相同条件下进行测试,光束均匀性低于10%。

表3.png

表3. MFTF和每块板横截面的汇总

此外,我们还定义了两个应用程序,以根据其目标环境提供平均失效时间(MTTF)的具体估计:陆地(参考纽约海平面)和航空电子设备(在典型的航空电子巡航高度,约为海平面的300倍)通量。对于第一个环境,预期MTTF约为180566年。第二次估计需要601年。这些结果为大多数商业系统的运行提供了足够的安全裕度。

5.4.CHARM:混合场地环境

在CHARM中进行的实验是中子运动的后续实验。在第二次表征中,我们有兴趣扩展可观测性技术的验证。为了实现这一目标,我们根据报告的错误提供了相同的执行分类,并调查了其他方面来展示错误报告功能。此外,该活动还允许在另一个辐射源下对系统进行评估。实验期间两块板报告的总注量约为9.61×10^11 HEH/cm^2,总累积剂量约为3.62×10^1 krad。

5.4.1.错误分类

表4列出了CHARM实验的错误分类。我们根据SoC纠正和观察错误的能力对每个处理器和基准配置的错误进行了分类。因此,它包括可纠正、不可纠正和不可识别错误的百分比。这些错误使应用程序能够观察并报告有关SoC中辐射造成的影响的重要信息。仅观察到少数处理器执行故障,其中无法识别根源。大多数故障均已识别并可追踪,主要是在完全强化的版本中。其中,最常见的是寄存器文件中的单位翻转,内存中的单位和双位翻转,最不常见的是PC中的双位翻转。除了这些错误之外,加载和存储异常故障也会在执行过程中引起错误,这些错误是不可纠正的错误,并触发软错误重置处理器以恢复其执行。

表4.png

表4.混合场实验中的错误分类

大多数错误在强化配置中都是可纠正的,因为它们是单位翻转。对于强化处理器配置,存在一些无法纠正的错误,这些错误被识别为负载访问故障异常。另一方面,基线配置仍然启用存储器中的单位翻转校正,主要将寄存器和总线错误呈现为不可校正的错误。

5.4.2.失效表征

与ChipIr活动类似,我们通过报告不同电路板的MFTF和横截面来进行失效表征。这些指标的失效也被视为需要设备电源循环的严重失效。表5列出了这些结果,表明了相对于HEH颗粒注量的速率。

表5.png

表5. 混合场实验中MFTF和每块板横截面的汇总

5.4.3. 误差分析

来自错误处理程序的报告和数据可以对实验期间检测到的错误进行细致的分析。通过这次彻底的检查,使我们对这些错误有了全面的认识。

表6总结了混合场实验中检测到的错误,无论处理器配置如何。最常见的错误来自存储器,约占所有错误的78%,其次是来自寄存器文件的单位翻转、存储/访问故障异常,最后是PC双位翻转。

此外,报告还可以计算每个不同错误的横截面。这些横截面为估计实际辐射环境中的错误数量提供了有价值的信息。

表6.png

表6. 混合场实验中报告的错误

为了进一步分析检测到的错误详细信息,我们汇总了被中断处理异常的指令。表7显示了每条指令的错误发生次数以及总体百分比。我们注意到,最常见的指令是内存访问,这与之前报告的错误一致。但是,除了内存访问函数的错误之外,还有10个错误来自流程控制和算术指令。

这些指令所做的操作与触发的错误有关。例如,大多数存储器访问指令由于数据存储器中的错误而被中断。而流程控制和算术更容易受到寄存器错误的影响。除此之外,该表还提供了每个不同指令的横截面,这使得流量和有错误的指令之间存在相关性。

表7.png

表7.报告错误中的说明

5.4.4.检测到的块错误事件

在这里,我们描述了处理器使用强化配置执行CoreMark时发生的最显著的错误之一。在很短的时间内,由于相邻地址中SDRAM内存的多个单比特和双比特翻转,报告了多个陷阱。总共连续报告了72个错误,其中包括42个单位翻转和34个双位翻转。因此,我们将此错误识别为内存块错误,该错误发生在SDRAM内存中。

尽管出现块错误,但执行仍在继续,CoreMark基准测试结果仍然正确。为了进一步分析这种行为,我们进行了模拟,并将这些地址处的预期数据与无故障执行进行了比较。我们发现模拟和报告的地址实际上存储了相同的值,这表明ECC内存部分发生了多位翻转。

图5展示了内存逻辑位图表示中的块错误的可视化。块错误被放大并突出显示,因为它只影响存储器的一小部分区域。位以16位(即字大小)的垂直线表示,水平位置表示每个存储器地址。值得一提的是,实际的块错误可能比检测到的要大,但块错误的剩余部分在检测过程中并未被访问。

图5.png

图5. 显示块错误的SDRAM内存的逻辑位图表示

5.4.5.误差传播

我们还分析了错误对基准测试执行的影响。主要目标是找到能够干扰每个处理器强化配置执行的错误比例。即使对于强化配置,一些错误也可以在执行过程中被掩盖,或者不会对最终基准测试结果产生影响。因此,我们对与这种差异相关的强化配置所获得的改进感兴趣。

另一个有趣的结果是在基准处理器配置中,其中错误纠正被禁用。在此配置中,由于仅报告错误但未纠正错误,因此我们注意到某些错误导致了进一步的错误和随后的失效。例如,在特定情况下,寄存器文件中的一位翻转导致加载访问错误,从而导致由于访问无效内存地址而导致处理器执行失败。已识别出四次此类传播,其中寄存器文件本身的三个单位翻转和程序计数器的双位翻转。正如预期的那样,在强化配置中没有观察到同样的错误传播。

在表8中,我们展示了基准处理器版本和强化处理器版本的不同错误传播。#Errors列显示该特定错误的总数,而#Propagated错误则报告实际导致基准测试执行中出现错误的错误数量。值得注意的是,这个传播错误的数量与基准算法密切相关,并且对于不同的算法会有不同的结果。除了检测到的错误数量之外,我们还报告传播错误的HEH横截面。

表8.png

表8.错误传播

6.讨论

事实证明,所获取的错误信息对于识别和理解辐射环境中的SoC行为非常有用。更具体地说,这些信息提供了应用程序上下文、错误来源、受影响的结构和损坏的数据等详细信息。我们能够描述每个环境的系统特征,补充错误类型的分类并调查它们对系统的影响。例如,对于ChipIr活动,我们进行了MFTF分析,显示了系统的稳健性,并进行了执行分类,并在软件级别进行了进一步描述。对于CHARM,我们对错误横截面进行了更深入的分析,讨论了故障屏蔽,并详细研究了块错误。

对于处理器核心的受保护元素,这种观察机制支持应用程序级别的故障感知,这可以用于提高系统的可靠性,因为它可以实现考虑应用程序中受影响元素的恢复例程。有了这些细节,应用程序就可以通过防止错误传播来减轻执行时不可纠正错误(例如,双位翻转、加载/存储访问错误)的影响。例如,这种硬件级信息可用于实现软件回滚例程,从而形成混合强化解决方案。当错误处理程序检测到这些不可纠正的错误时,回滚将使用未损坏的状态恢复处理器上下文。

根据报告的信息,我们注意到,由于检测到一些加载/存储访问故障并导致执行错误,因此应该提高总线互连结构上产生的错误的恢复能力。此外,由于对观察到的块错误进行的分析,我们可以确定应该改进内存错误处理。为此,一种可能的解决方案是通过监控一段时间内的内存错误数量来实现早期块错误识别,并在达到某个阈值时触发恢复过程。

考虑到利用所提出的可观测性特征的许多替代方案,最重要的成就之一是通过增强分析来操作正确的SEE表征的可能性。这不是一项微不足道的工作,所提出的解决方案极大地支持了这项工作,如结果部分所示。此外,值得一提的是,识别错误并通过异常报告它们并不是一个新概念,但将这种方法应用于辐射引起的故障为处理器和SoC评估提供了许多新的机会,为研究社区做出了贡献。值得注意的是,以航空电子应用中的MTTF为例,该系统不仅提供了足够的可靠性,可用作关键航空电子系统的一部分,而且还可以进行更详细的表征和验证,以满足安全要求。

最后,所进行的实验的另一个结果是辐照活动之间的比较。从关键误差横截面中,可以观察到每个活动的敏感度存在显著差异。对ChipIr的所有板的横截面进行平均,我们获得4.97×10^−11 cm^2/器件,对于考虑HEH的CHARM,我们获得5.20×10^−12 cm^2/器件。正如预期的那样,不同的粒子和能谱会导致非常不同的错误率。在这种情况下,我们观察到了一个数量级的差异,其中SoC与FPGA相结合,表明比测试的混合场环境对大气中子更敏感。

7.结论

这项工作通过实施一种观察处理器架构和SoC中错误的解决方案,展示了容错RISC-V SoC (HARV-SoC)中的故障感知和可靠性改进。该解决方案提供了有关执行时应用程序错误的详细信息。这样,应用程序就可以识别错误的来源以及对处理器结构的影响。

我们通过在辐照设施中使用故障注入来验证实现,其中我们可以识别处理器核心发生的各种错误。值得一提的是,真实的辐射环境造成的影响不容易预测,并且取决于多种因素,而这些因素在模拟和基于仿真的实验中受到限制。因此,我们识别了辐射引起的事件,并提供了可以将应用程序指向受损结构的信息。

在未来的工作中,我们打算使用其他粒子类型(例如代表空间辐射环境的质子和重离子)对处理器进行进一步的辐射表征。此外,我们预计在检测到不可纠正的错误和块错误后,应用程序的恢复能力将进一步提高。

 

33.png
详询“牛小喀”微信:NewCarRen




作者:牛喀网专栏作者
牛喀网文章,未经授权不得转载!


下一篇: 【汽车芯片】使用SoC和MCU组合方法增强关键系统安全性的实例
上一篇: 【汽车芯片】通过FMEDA故障注入验证SPI安全架构
相关文章
返回顶部小火箭