基于SRAM型FPGA的软错误修复SEM加固技术

1 SEM加固技术简介

对配置RAM 的加固主要通过使用外部器件(通常为反熔丝FPGA)从配置RAM中回读配置位流文件,通过与外部存储中的原始位流文件进行比对,识别发生翻转的配置帧,再将正确的配置帧写回配置RAM中,实现单粒子翻转软错误的修复。这种加固方法被称为外部刷新。

近几年来,针对SRAM型FPGA配置RAM的单粒子防护问题,Xilinx公司在旗下的高性能FPGA上设计了专用的片内纠检错电路,从而使得内部刷新加固技术变为可能。

配置RAM刷新技术示意图如下图所示。

对单粒子翻转软错误的检测和修复,这项被称为SEM的加固技术主要基于在配置帧层面加入32bit的纠错码(ECC)和在整个位流文件上增加32bit的循环冗余码(CRC)校验来实现。

在片内专用电路的支持下,配置帧ECC可识别单帧内任意2bit的翻转错误,并纠正任意1bit的翻转错误。

仅使用ECC计算电路时,SEM工作在修复模式。位流文件CRC可进一步增强FPGA的纠检错能力,当CRC与配置帧ECC结合后,SEM工作在增强修复模式,可检测绝大多数的翻转错误,并纠正单帧内任意1bit或相邻2bit的翻转错误。

SEM同时支持通过外部存储器中读取原始位流文件进行比对的方法来识别和修复配置RAM翻转软错误,即使用替换模式,此时SEM可识别和修复任意的翻转软错误。

3种模式需要占用的资源略有不同,检错和纠错所需的时间也有所不同,可根据具体的设计需求进行选择。

2 SEM的应用优势

与传统的外部刷新技术相比,SEM最大的优势在于对软错误的纠检错效率。其中检错占用的时间与FPGA配置RAM的大小呈正比,而纠错占用的时间则主要受纠错模式的影响。

SEM检错延时列于下表。

不同纠错方式下,不同错误情况下的纠错延时列于下表。

以XC7K410T为例,在修复模式下,识别和修复1bit翻转错误的平均故障修复延时约为15.2+0.610 =15.810ms。

与之相对应,外部刷新通常采用32bit的SelectMap接口,受限于印制板走线和反熔丝FPGA时序性能,接口速率通常为10MHz左右。

当采用回读刷新时,回读全配置区需要用时303ms平均故障检测时间为152ms,刷新一帧错误的时间约为10μs,平均故障修复延时为152+0.01= 152.01 ms。

当采用盲刷新时,虽然没有了故障识别时间,但故障修复时间等同于刷新整个配置区的时间,此时平均故障修复延时为152ms,且刷新期间FPGA本身处于功能中断,所以刷新的频率不能太高,平均故障延时还会由于刷新频率下降而进一步增大。

平均故障修复延时直接决定了FPGA的软错误故障修复率。

在单粒子翻转率保持不变的情况下,提升故障修复率可有效增大平均故障时间,从而降低FPGA的故障(功能中断)率。

SEM技术在提升FPGA配置RAM的抗单粒子翻转加固效能方面,相比传统的外部刷新技术有着较大的优势。

3 SEM存在的问题

由于SEM IP核自身需要调用FPGA逻辑,包括配置RAM来实现其功能,这意味着其本身也存在发生单粒子翻转软错误的可能。

尽管相比FPGA本身的设计,SEM核调用的资源占比非常少,所以其发生单粒子翻转的概率也要低得多,但仍有必要在FPGA外部配备1套监控电路,在SEM自身发生单粒子功能中断时进行故障恢复,这点在可靠性要求较高的系统中尤为重要。

SEM核资源占用情况列于下表。

相关推荐
brave and determined2 小时前
可编程逻辑器件学习(day3):FPGA设计方法、开发流程与基于FPGA的SOC设计详解
嵌入式硬件·fpga开发·soc·仿真·电路·时序·可编程逻辑器件
咯哦哦哦哦2 小时前
vscode arm交叉编译 中 cmakeTools 编译器设置
linux·arm开发·vscode·编辑器
链上日记3 小时前
AIOT:用HealthFi重构全球健康金融体系的蓝海样本
人工智能·重构
Lee_yayayayaya5 小时前
锁相环技术及FPGA实现
fpga开发
GilgameshJSS6 小时前
STM32H743-ARM例程40-U_DISK_IAP
c语言·arm开发·stm32·单片机·嵌入式硬件
Js_cold9 小时前
Verilog局部参数localparam
开发语言·fpga开发·verilog
promising-w9 小时前
【FPGA】使用移位实现LED流水灯
fpga开发
盈创力和200710 小时前
从数据节点到决策基石:以太网温湿度压力传感器的系统价值重构
重构·poe供电·以太网温湿度传感器·多参量传感器·以太网温湿度压力传感器·多协议支持
爱吃汽的小橘10 小时前
ZYNQ介绍
fpga开发
ThreeYear_s20 小时前
电力电子技术学习路径与FPGA/DSP技术结合方向(gemini生成)
学习·fpga开发