一种符合ISO26262的汽车视觉处理器容错缓存系统
摘要
随着电压波动、宽工作温度范围以及提高时钟频率,缓存系统对瞬态错误的敏感性日益增加。纠错码是一种用于瞬态错误检测与纠正的有效方法。然而,用于纠错码的冗余内存显著增加了成本,并提高了瞬态错误率。本文提出了一种面向汽车视觉处理器的容错缓存系统。该缓存系统通过所提出的机制,在考虑数据缓存特性的基础上,实现了较小的冗余内存开销并降低了瞬态错误率,同时提升了错误恢复率。此外,该缓存系统的设计符合 ISO26262标准。结果表明,相较于最先进的汽车视觉处理器所采用的缓存系统,本系统的错误陷阱减少了80%。
索引术语 —容错性,缓存,汽车,视觉处理器,ISO26262
一、引言
随着电压波动、工作温度范围扩大以及时钟频率提高,片上多处理器(CMP)正变得越来越容易受到瞬态错误、永久性错误、制造缺陷和工艺变化的影响。为了实现错误检测与恢复,基于双模冗余(DMR)的CMP通过在另一个核心上进行冗余执行来运行程序[1]。该技术已进一步发展,将冗余执行与同时多线程(SMT)以及恢复功能相结合[2]。近年来,随着片上线程上下文数量的增加,带来了三个主要问题:1)支持线程的大核心,2)用于比较主线程与跟随线程所增加的控制逻辑,3)缓存对瞬态错误的脆弱性[3]。在我们的方法中,占据处理器约2/3面积的缓存系统,是受PVT变化影响的关键脆弱模块。因此,缓存系统需要具备容错特性。
为了设计容错缓存系统,ECC(纠错码)是一种用于瞬态错误检测和纠正的有吸引力的方法[4]。然而,用于ECC的冗余内存对成本有显著影响,并且由于增加了包含错误码内存的芯片尺寸,可能会提高瞬态错误率[5]。
汽车发动机控制单元(ECU)中的微控制器单元(MCU)没有缓存系统。因此,在微控制器单元的容错特性中未考虑缓存系统的容错特性。但随着汽车的发展,汽车的高级驾驶辅助系统(ADAS)需要具备1GHz时钟频率和缓存系统的视觉处理器,以识别行人、车辆碰撞、道路车道[6]。此外,汽车用处理器必须具备安全性及容错特性。
如今,汽车用半导体需要符合ISO26262标准以实现功能安全。ISO26262是确保功能安全的标准,旨在消除因汽车电气系统 malfunctioning 行为引发的危害所带来的不合理风险[7]。辐射、噪声以及电压、电流和温度的变化会引发故障。该故障会导致半导体中逻辑电路和触发器的失效。进而,汽车用处理器和缓存发生故障,产生汽车相关的危害。
因此,我们开发了汽车视觉处理器。该处理器工作频率为1 GHz,具有13级流水线、指令缓存和数据缓存,以满足高级驾驶辅助系统应用所需的足够计算能力。在该处理器中,缓存系统占处理器面积的70%,因此需要设计容错特性,以防止由于电压下降、高温等因素引起的瞬态错误导致缓存中的内存内容发生变化。本文提出了一种用于汽车视觉处理器的容错缓存系统。该缓存系统相比[8]中提出的ECC所使用的冗余内存更小,并通过所提出的机制降低了瞬态错误率,该机制提高了错误恢复率,并考虑了数据缓存特性,同时重新配置缓存中的内存,以避免严重和永久性故障,且无需使用[9]中的地址交叉技术。此外,我们对符合ISO26262标准的汽车视觉处理器中的容错缓存系统进行了分析。
本文由以下四章组成,第一章介绍了符合ISO26262的汽车视觉处理器,其架构满足高级驾驶辅助系统的需求。第二章将介绍具有ECC、故障管理及可重构功能的容错缓存架构。第三章将介绍符合ISO26262的故障分析,包括芯片实现和开发板。第四章为结论。
II. 汽车视觉处理器
ADAS旨在降低车辆驾驶过程中的危险性。该系统包括前向碰撞预警(FCW)、行人碰撞预警(PCW)、车道偏离预警(LDW)以及带限速指示的交通标志识别(TSR)。这些功能需要通过处理摄像头获取的图像来识别物体,并计算距离和相对速度。因此,车辆ADAS所用的处理器需具备视觉处理能力[6]。同时,为保障车辆安全及事故证据留存,前方行驶视频需要被记录。
因此,我们设计了如图1所示的汽车视觉处理器。该处理器由识别引擎(RE)组成,用于识别行人和前方车辆;高效视频编码编解码器(HEVC Codec),用于压缩行车图像并通过闪存控制器将其存储到NAND闪存中;以及四个处理器,用于控制RE、HEVC编解码器和外设,并具备容错缓存系统。此外,汽车视觉处理器还包括DDR3控制器、闪存控制器、内部RAM(iRAM)、内部ROM(iROM)、外设、外部故障管理器(eFTM),eFTM比较一个处理器的存储数据(Wdata)与另一个处理器的存储数据,当两者不同时生成故障陷阱并发送至恢复模块;恢复模块接收来自eFTM及处理器内FTM的故障陷阱,并向复位模块发送复位服务信号(SVC_RST);以及复位模块,用于复位汽车视觉处理器中的各个模块。
处理器由处理器核心、指令缓存(ICACHE)、数据缓存(DCACHE)和故障管理器(FTM)组成,检测并纠正指令缓存和DCACHE中的错误,以及用于测试 FTM性能的故障注入器(FTINJ)。
因此,处理器检测到瞬态故障后从中恢复,并重构处理器以使其能够抵御永久性故障,然后使用FTM重启处理器以从永久性故障中恢复。FTM运行恢复机制,并利用下级缓存、SDRAM以及缓存的特性来恢复缓存的数据。
eFTM监控两个处理器核心的加载与存储单元,通过比较两个处理器核心的缓存写入来检测故障,并通过恢复模块进行恢复。
A. 符合ISO26262的容错特性
处理器检测瞬态故障并从中恢复,同时重构处理器以抵御永久性故障,并使用FTM重启处理器以从永久性故障中恢复
1) FTM运行恢复机制,并利用下级缓存、SDRAM以及缓存的特性来恢复缓存的数据。
2) FTM监控两个处理器核心的加载与存储单元,通过比较两个处理器核心的缓存写入来检测故障,并通过恢复模块进行恢复。
在符合ISO26262的半导体中,该半导体具有针对永久性故障的容错设计,包括磨损预防和内置自测试(BIST),多核锁步和分块校验器用于瞬态故障,以及针对相关性故障的容错设计。针对瞬态、永久性和相关性故障的容错设计通过失效模式影响分析(FMEA)、故障树分析(FTA)、定性分析和故障注入进行分析和验证。
为符合ISO26262要求,我们定义了危害分析与风险评估,以识别在包括所提出的半导体在内的车辆系统中需要预防的危害和危险事件,并针对每个危险事件和汽车制定安全目标。
III. 容错缓存架构
容错缓存中的内存包括用于存储地址最高有效位的标签存储器、通过地址最低有效位寻址8个字数据的数据存储器、脏位存储器(用于指示是否被处理器写入)、有效位存储器(用于指示数据存储器是否包含如图2所示的8个字数据)。缓存中的单错误通过与标签、有效位、脏位和数据一同存储的ECC进行检测,但该错误无法通过ECC纠正。当检测到严重错误时,FTM将触发恢复机制,利用下级缓存或SDRAM恢复缓存数据,并对各存储器中的错误进行监控,在检测到严重错误时生成故障陷阱,同时统计安全错误。当安全错误率达到阈值时,重构模块(RECON)被激活,通过隔离标签和数据存储体来减小内存尺寸,防止永久性错误,并通过缩减的标签和数据存储器部分访问有效位和脏位内存。故障注入器(FTINJ)通过片上调试器(OCD)命令接收故障注入信息,并在标签、有效位、脏位和数据存储器中注入错误。
容错缓存系统由三种架构组成。该容错缓存系统包括:1)内存的纠错码,2)带有缓存可重构模块的故障管理器,以及3)如图2所示的故障注入器。
A. 纠错码
所有用于支持容错功能的缓存都具有ECC。我们比较了单奇偶校验码和SECDED(单错误纠正双错误检测)之间的冗余内存,其中SECDED是缓存的通用ECC。
我们必须使用8位数据块来实现按字节的低延迟访问。对于单奇偶校验码,冗余位为1位。但对于单错误纠正双错误检测,冗余位为5位。
单错误纠正双错误检测(SECDED)的冗余位比单奇偶校验码大5倍,用于纠正错误。采用SECDED的缓存比采用单奇偶校验码的缓存大1.4倍,且采用SECDED的内存比采用单奇偶校验码的内存更容易受到错误影响。因此,为了减少冗余内存,我们选择了单奇偶校验码,并通过故障管理器利用缓存的特性添加了错误纠正功能。
B. 带有可重构模块的故障管理器
故障管理器有8个输入,分别是命中、标签错误、有效位、有效位错误、脏位、脏位错误、数据错误和最近最少使用(LRU)路,以及3个输出,表示读取SDRAM、生成故障陷阱、安全故障计数,还包括错误处理程序和安全故障计数器,如图3所示。
错误处理程序通过分析每个内存的错误(具有8个输入)来恢复错误,并在产生严重错误时生成故障陷阱,同时故障管理器恢复的安全故障计数存储在安全故障计数器中,并由可重构模块使用。
错误处理程序通过分析8个输入来查找错误情况,如表 I 所示。首先,检查有效位错误。如果有效位存在错误(如错误情况1~3),则检查脏位的值。如果所有路的脏位均为0,则这些行将变为无效,请求的数据通过从SDRAM读取数据来恢复,对应错误情况2。但是,如果任何一路的脏位不为0或存在错误,则处理器写入的数据因错误而无法恢复,此时产生故障陷阱,对应错误情况1,3。
其次,如果有效位没有错误(如错误情况4~13),则检查标签错误。如果存在命中路且发生标签错误(如错误情况4~6),则检查该命中路的脏位。如果命中路的脏位为0(如错误情况5),则使对应行无效,并通过从SDRAM读取数据来恢复请求的数据。如果命中路的脏位为1(如错误情况6)或脏位出错(如错误情况4),则触发故障陷阱。当发生未命中且任意路存在标签错误(如错误情况7~9)时,若所有路的脏位均为0(如错误情况8),则通过使所有路的对应行无效来恢复数据,即使任意路的标签存在错误。但是,如果任意路的脏位为1或脏位出错(如错误情况7,9),则触发故障陷阱。
第三,当标签无错误且存在命中路时,若命中路的行出现错误情况10,且脏位为0,则通过失效并读取SDRAM来恢复数据;但若脏位为1且命中路的行出现错误情况11,则生成故障陷阱。此外,即使标签无错误且无命中路,若LRU路出现错误情况13,仍可生成故障陷阱。但是,若LRU路的脏位为0且出现错误情况14,则通过失效LRU路来恢复数据。
由FTM恢复的错误被归类为安全错误,安全错误按照图4所示在缓存的各个区域内进行计数。如果某区域的错误计数超过预定义值,则预测该区域因安全错误频率较高将产生永久性错误和多点错误。此时,RECON将切断该区域内内存的电源,以防止因永久性错误或多点错误导致缓存故障。可重构模块监控缓存中四个区域的计数器,并控制这四个区域的电源,如图4所示。
表 I 标签、有效位、脏位和数据错误的故障恢复与错误情况
| 错误情况 | 有效位 | 标签 | 脏位 | 行 | 错误处理 |
|---|---|---|---|---|---|
| 1 | 错误 | 无关 | 所有路 | 0 | 失效 读取SDRAM |
| 2 | 错误 | 无关 | 非0 | 无关 | 故障陷阱 |
| 3 | 无错误 | 命中 | 错误 | 无关 | 故障陷阱 |
| 4 | 无错误 | 命中 | 错误 | 无关 | 故障陷阱 |
| 5 | 无错误 | 命中 | 错误 | 0 | 失效 读取SDRAM |
| 6 | 无错误 | 未命中 | 错误 | 1 | 故障陷阱 |
| 7 | 无错误 | 未命中 | 错误 | 所有路 0 | 失效 |
| 8 | 无错误 | 未命中 | 错误 | 无关 | 故障陷阱 |
| 9 | 1 | ||||
| 10 | 无错误 | Hit | 0 | 1 | 失效 读取SDRAM 故障陷阱 |
| 11 | 无错误 | Hit | |||
| 12 | 无错误 | Miss | LRU 0 | LRU 错误 | 失效 |
| 13 | 无错误 | Miss | 最近最少使用 1 | LRU | 故障陷阱 |
| ## C. 故障注入器 | |||||
| 故障注入器通过JTAG接口接收片上调试器(OCD)命令,如图6(a)所示。OCD命令由缓存ID、内存ID、区域ID和错误类型组成。错误类型包括单错误或双错误。由于OCD命令可以使用TCL脚本语言进行编程,因此我们可以在较长时间内注入各种故障。FTINJ能够在指令缓存或数据缓存的有效位、脏位、标签和数据存储器的各个四个区域中注入故障。 |
IV. 实施与ISO26262分析
我们实现了带有所提出的缓存系统的汽车视觉处理器。该汽车视觉处理器采用三星28nm CMOS工艺制造,其芯片面积和规格如图5所示。
容错缓存包含指令缓存和数据缓存。每个缓存可存储32K数据和4K校验码。
通过在搭载LDW软件的SoC板上进行故障注入,对瞬态故障进行了分析,如图6(a)所示。该容错缓存系统具有可重构大小的缓存性能,如图6(b)所示,并且与没有故障管理器和可重构功能的情况相比,错误陷阱减少了80%,如图6(c)所示。所提出的缓存系统与先前的工作相比,具有较高的故障覆盖率和较低的开销,表现出良好的容错性能,如图6(d)所示。
针对汽车视觉处理器中带有容错缓存系统的处理器,按照ISO26262的脱离上下文的安全要素(SEooC)进行功能安全分析。SEooC是指针对特定车辆级应用在上下文之外开发的安全要素。如第二章所述,半导体必须结合车辆系统进行分析,且FSR和TSR需在系统级定义。然而,功能安全则是在对ADAS系统级和FSR做出假设的前提下,使用SEooC进行分析的。
所提出的缓存与先前工作的比较。)
因为我们无法用车辆级别的方法分析处理器应用。通过实现该处理器,我们对永久性故障进行了硬件指标测量,并通过故障注入进行验证。图7显示,在采用安全机制的情况下,关于永久性故障的单点故障度量为99.64%,潜在故障度量为93.23%。
V. 结论
实现了一种容错缓存系统以用于汽车视觉处理器。该容错缓存系统在ECC无法纠正错误时恢复内存,并通过预测重新配置标签/数据内存的尺寸,以防止错误并降低处理器的错误陷阱率。因此,与最先进的缓存系统相比,得益于汽车视觉处理器的可变容错策略下缓存系统引起的错误陷阱减少了80%。
53

被折叠的 条评论
为什么被折叠?



