FPGA三模冗余TMR工具(二)

学术和商业领域有许多自动化的三模冗余TMR工具,本文介绍当前主流的基于寄存器传输级的三模冗余工具(Register-Transfer Level,RTL),基于重要软核资源的三模冗余工具 ,以及新兴的基于高层次综合的三模冗余工具(High Level Synthesis,HLS)

>>>>>>>>>>>接上》》》》》》》》》》》》

FPGA三模冗余TMR工具(二)

2.基于HLS的工具

使用HLS进行FPGA开发,可以极大缩短开发周期,这对于设计周期冗长的TMR设计来说非常重要。Xilinx分析了使用CPU, GPU等标准专用处理器进行项目设计与使用FPGA平台进行项目设计的时间与性能对比,如下图所示,使用FPGA平台开发与标准专用处理器相同的应用无论是初始版本还是优化版本都具有更高的性能,然而采用RTL设计实现FPGA开发需要较长的开发时间,甚至超出了典型软件开发时间的允许范围。在采用HLS技术之后,FPGA开发的时间大大降低,甚至低于DSP和GPU。

此外,HLS还可以降低设计的资源利用率。Xilinx高层次综合工具Vitis HLS的前身AutoPi-lot曾将Sphere解码器的4000行C代码算法成功综合到Virtex5 FPGA上, 取得了比Xilinx的Sphere解码器IP更少的逻辑资源使用量。这个结果即便在现在看来也是非常出色的,它很好地证明了HLS有潜力取得比RTL级IP更为出色的性能,基于HLS的TMR工具有潜力降低TMR设计带来的巨额资源消耗。

HLS技术可以成为解决TMR技术在FPGA上的实现所面临的效率及实用性挑战的一种良好尝试。

2.1 TLegUp

TLegUp是新南威尔士大学研究的一款在高层次综合阶段实现TMR的工具,该工具基于多伦多大学开发的开源高层次综合工具LegUp,以C语言程序为输入,输出 Verilog的TMR设计。

该工具使用了上述的系统分级技术以及触发器状态同步技术。首先,TLegUp将输入的C程序通过LLVM(Low Level Virtual Machine)编译器转化为LLVM中间代码(Intermediate Representation,IR);之后从LLVM IR中创建更适合进行系统分级和查找反馈周期的数据流图(Data Flow Graph,DFG);然后使用最大流最小割算法将数据流图划分为大小基本相等的分级,并进行调度与绑定的操作;然后TLegUp会通过深度优先的策略来确定同步表决器的插入位置;在完成全部HLS操作和确定表决器的插入位置后,最后会将每个LLVM IR指令写入RTL块3次,并在先前被标记指令插入的表决器电路,生成TMR设计的 Verilog。

TLegUp中的关键技术在于表决器的插入,这里TLegUp使用上面所说的系统分级技术和状态同步技术的思想。通过表决器的插入,不仅可以将设计进行多级的分区,增加设计的容错性,同时还可以同步各个域之间的状态,防止错误的扩散。

精简表决器插入顶层模块输出端口,将电路的每个三模输出信号转换为单个输出信号。TLegUp生成的分级电路中,每个分级对应一个TMR组件,该组件具有3个功能相同的模块,分级表决器被插入到每个分级边界的输出信号之后,来防止错误的积累。此外,为了重新同步各域之间的状态,防止错误扩散,同步表决器插入到每个数据路径的循环部分; 而由于电路必须在每个时钟周期更新FSM寄存器,故FSM的下一个逻辑状态中也需要插入同步表决器进行同步。

该工具由于LegUp后续的商业化,失去了最新开源版本的更新支持,目前已经发展停滞,但是作为在HLS阶段插入TMR的"先锋",该工具开辟了FPGA的TMR工具研究的新领域,为该方向的研究搭建了整体的研究框架。

2.2 C-TMR

德克萨斯大学达拉斯分校提出了一种新型的容错硬件加速器的设计方法,该方法为C程序实现TMR,以三模化后的C程序作为HLS工具的输入,从而能够为容错硬件提供更丰富的搜索空间,来探索面积、性能、可靠性的最优平衡。

该方法分两阶段进行,如下图所示,第1阶段对HLS的C语言行为输入描述Cin进行源到源的转换,并自动将TMR加入新的行为描述CTMR。第2阶段通过修改HLS工具的设计空间资源管理器,在成本函数中加入可靠性参数,对新生成的行为描述CTMR执行HLS空间探索,从而产生具有面积、性能、可靠性平衡的最优配置列表,最后生成可以容错的硬件电路。

该方案目前还没有形成完整的工具,但是其对于C行为描述的TMR直接插入与当前基于RTL描述的TMR工具的发展相呼应,是超前而又合理的研究思路。

在高层次综合阶段插入TMR,可以大幅缩短TMR电路复杂而冗长的设计周期,并且提供流水线设计的机会减轻TMR设计带来的负面时序影响,还可以对设计进行HLS空间探索,从而产生面积、性能、可靠性最均衡的硬件电路,是探索快速便捷、适用广泛的TMR工具的新方向。

3.基于软核的工具

软核是使用FPGA的逻辑和资源搭建的CPU系统,具有一定的灵活性,Xilinx的MicroBlaze就是常见的软核,由于是使用FPGA的通用逻辑搭建的CPU,因此也会受到单粒子效应的干扰,并且由于其CPU的特殊地位,当受到干扰时,对系统造成的影响也更致命。

Xilinx在其推出的FPGA设计套件Vivado中也加入了MicroBlaze TMR子系统的IP,旨在提高其软核处理器MicroBlaze的可靠性。MicroBlaze是一种经过优化专门实现在FPGA中的RISC软核处理器,具有使用生成脚本的高度可定制的特性,MicroBlaze TMR子系统包含TMR Manager,TMRVoter,TMR Comparator,TMR Inject和TMRSEM5个IP,如下图所示,是Xilinx开发的一个IP集合,用来自动管理和屏蔽影响MicroBlaze软核的故障。

MicroBlaze子系统属于容错-故障安全类型,它会在第1次故障后继续工作而不会停止,并将检 测到第2次故障。TMR Manager是TMR子系统IP中的核心组件,它通过持续分析比较器状态来监控故障的出现,如果其中一个出现不匹配,就会断言一个特殊的Break中断信号,并强制出现故障的MicroBlaze子模块开始恢复过程,剩下的两个正常软核将以锁步状态运行,比较器将持续比较它们的输出,如果发生不匹配,则进入崩溃状态,停止MicroBlaze TMR子系统。

MicroBlaze TMR子系统为软核提供了功能完备的TMR保护策略,但是它仅针对MicroBlaze提供TMR优化,使用范围过于单一局限,是一种针对特殊重要资源的局部保

相关推荐
qq 137401861134 分钟前
ISTA 3L 2023 电商包装安全测试与质量试验全解析
功能测试·安全·可用性测试·安全性测试
用户6757049885021 小时前
密码泄露了?别慌!GitHub、微软、Google都在用的“虚拟MFA”,到底有多强?
后端·安全
ALINX技术博客1 小时前
【黑金云课堂】FPGA技术教程Vitis开发:PS端UART与CAN通信
fpga开发·fpga
步步为营DotNet2 小时前
深挖.NET 11 中 Native AOT 在边缘计算设备性能与安全的突破应用
安全·.net·边缘计算
开开心心就好2 小时前
吾爱大佬原创的文件时间修改工具
安全·智能手机·pdf·电脑·智能音箱·智能手表·1024程序员节
Flynt2 小时前
Dirtyfrag漏洞:我花了一下午搞清楚这个Linux内核提权漏洞到底在搞什么
linux·运维·安全
黎阳之光2 小时前
黎阳之光:深耕视频孪生核心领域 构筑数字孪生全域数智新标杆
大数据·人工智能·算法·安全·数字孪生
贫民窟的勇敢爷们2 小时前
Spring Security OAuth2.0 技术详解:分布式系统安全认证的标准方案
java·安全·spring
S1998_1997111609•X3 小时前
元组件HCG&&单元量泄露数据爬虫植入syatem,造成系统ioc dark and agent of China gov 的犯罪心理学依据行为
网络协议·安全·百度·哈希算法·开闭原则
开开心心_Every3 小时前
安卓免费证件照制作软件,无广告弹窗
linux·运维·服务器·安全·elasticsearch·zookeeper·pdf