在FPGA模块层如何提供容错设计

电子说

1.2w人已加入

描述

作者:Paul S.Levy, 赛灵思功能安全系统高级工程师

“功能安全(Functional Safety)”研究的是机器发生故障或运行环境中断时如何降低其对人和设备造成的危害的方法和措施。

用功能安全领域的说法,这些错误被称为随机硬件或系统性故障,这些误判可能决定比赛的成败,当然这取决于你站在比赛的哪一方,所以在理想的体育竞技里,我们需要能够预见这些可能发生的误判问题,并及时避免。功能安全设计就是致力于解决系统设计中类似的问题,这些问题的代价可能是灾难性的或致命的,比如机器未能检测到那些敞开的轨排从而导致操作人员收到伤害,又或者铁路道口出现故障导致火车撞上公交车。从本质上讲,功能安全设计旨在试图预测系统可能出现故障的方式,以及当故障发生时可以执行的备用计划。

持续升温的功能安全系统需求

正如人们所预期的那样,功能安全系统的设计要遵循一定的标准,这些标准由官方管理机构或者被广泛认可的权威机构制定并发布。比较著名的权威机构有UL、ISO和IEC等,他们的存在促进了安全规范的完善和更新,比如安全完整性等级(SIL)定义了降低风险的目标水平,这些权威机构的努力推动了最先进的设计,并使得很多不同的行业开始关注功能安全设计。毫无疑问,飞机和汽车就遵循了政府制定的严格的安全标准,比如汽车里的安全气囊以及后视镜设计。在房屋建造领域,房屋改造必须遵循建筑规范,新房完工后还必须通过UL认证的电气标准。随着技术的演进,系统变得越来越复杂,符合功能安全标准的行业和最终应用会越来越多,自动驾驶汽车和机器人的时代已经到来,当然这些系统必须能够证明它们不能(也不会)伤害人类。

功能安全是复杂的

功能安全设计很大程度上是基于对系统如何发生故障以及发生故障后需要采取哪些措施的深刻理解来实现的,这是一项非常复杂的任务,并且被认为是系统工程领域的难点,它涉及到的技术包括了诸多规范的设计方法。广泛采用的一个方法是应用冗余,关键系统组件会被复制备份从而增强其可靠性。例如一个应用程序可以在两个独立的处理器上执行,从而检查输出结果是否相同,如果一个处理器输出的是非预期的结果,系统就会知道其中存在一定的错误。然而多组件通常会带来成本的提升,同时也会对功耗和性能带来挑战。不过不用担心,接下来,赛灵思系统工程师和架构师将会帮助大家降低这些方法的复杂性。

赛灵思简化功能安全设计和认证

赛灵思根据实际情况提供了基于器件的打包式解决方案,从而帮助用户克服功能安全系统设计的复杂性挑战,而且能够满足IEC 61508、DO-254以及ISO 26262等标准所规定的各种认证要求。这种预先架构的设计和验证解决方案可以极大的缩短公司项目的开发时间,并且消除用户在尝试实现功能过程中产生的相关成本花费和风险等。

对于OEM厂商来说需要做的是确定选择哪种器件。在性能和功耗方面通用CPU和GPU确实无法与ASIC或FPGA器件竞争,尤其对于一些实时性,低延迟类的任务。片上可编程系统芯片(SoC),比如Xilinx Zynq UltraScale+ MPSoC则具有最高的整体性价比,在单个器件中集成多个ARM CPU,同时具有一定的灵活性和可扩展性,可以根据所执行的不同任务动态地进行调整设计。

赛灵思提供的器件和工具集支持容错设计

赛灵思器件还具备硬件隔离特性,这使得安全和非安全的任务可以同时在一块芯片上执行,同时,设计的更新不会干扰或接触已经获得安全认证的部分。通过容错设计来控制系统故障模式的能力需要一种能够控制故障扩散的方法。赛灵思隔离设计流程(见下图)在FPGA模块层就提供了故障容器,支持单个芯片的容错处理。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分