原创:半导体功能安全后端设计要求初探
功能安全的理念已被应用于多个行业,也由此衍生出大量互相关联、但细节上有所差异的标准,典型如汽车(ISO 26262)、电气/电子/可编程电子安全相关系统(IEC 61508)、医疗设备(IEC 60601)等。在这些标准的应用过程中,为保证追溯性,功能安全的要求往往会沿着产品 OEM 的供应链链条不断上溯,并对各个层级的供应商施加影响。
对于汽车相关的供应链,习惯上将整车厂(OEM)作为 Tier0,零部件(传统上的 PCBA 级产品)作为 Tier1。而从 ISO 26262 的第二版开始,引入了 Part11 分标准,由此也将 ISO 26262 的要求,以具体条款的形式细化到了芯片/IP 产品上。这两者在传统上可以被划分为 Tier2/Tier3,当然,这类传统的划分方式也随着行业发展有所变化。
而在 ISO 26262 的 Part11 中,除了较多关于失效分析的内容源自基于 ISO 26262 Part5(硬件部分)的拓展以外,标准也多次提及了涉及后端设计相关的内容。如以关键词统计,有 Layout:39 处,Placement:11 处,Routing:29 处等等。不过,这些与后端相关的信息,主要都是以流程/规则检查的形式存在,大多不会直接对应到具体的产品技术特性或是参数要求。
从参数选择、具体规则设置等角度,本文中选取了一些较为具体的业内参考资料,并初步分析和探讨了其合理性,也希望对于未来更具实质性的讨论能够起到抛砖引玉的作用。
1.参考例:双核锁步电路的设计
双核锁步(Dual-core lockstep,简称为 DCLS)是常见的安全设计,也是目前 ASIL D 级别 MCU 和 SoC 的常用架构形式。DCLS 架构设置了 2 个相同的处理器副本,并在输出端增加比较器,以双核锁步的方式,对原始副本的输出进行校验,以检查处理器对指令执行的正确性。
也正因为如此,该设计如何保证副本间的独立性,并在比较动作中避免干扰和共因失效,也就是设计中所必须考虑的问题。常见的针对性设计包括但不限于:
· 延迟锁步
对其中一个副本增加信号延迟,以错开指令的执行时间,在比较器端重新对齐,从而避免因为同一时刻的瞬态干扰导致两个核出现同类(共因)故障;
· 比较器复制/诊断
对比较器自身也进行一次复制,或者通过增加比较器诊断的方式来检查其工作是否正确,以保证比较功能的正确性,确保其能够发现核的故障;
· 触发器设置
在任一通路输出端,均设置至少一个触发器,某种程度上也作为隔离手段,防止比较器侧的故障蔓延到核的一端。
图 1:常见用于避免双核锁步电路相关失效的针对性设计,
基于 ARM 公开资料有简化
除上述的种种措施之外,很少会有厂家在其芯片资料里披露设计中对后端的具体要求,特别是参数方面的约束。TI 部分产品的安全手册提供了一些参考,可以通过下图进行总结:
图 2:常见的后端布局要求总结,基于 TI 公开资料
在该设计参考中,使用 2 个完全一致、直接进行复制(Duplication)的核。而涉及后端设计的内容,主要可以归纳为以下 3 点:
· 距离
在物理上,两个 Core 的硬核(Hard Macro)保持一定距离,以避免潜在的干扰。在某些 TI 产品的安全手册中,该距离被设定为一个固定的数值,即 100μm;
· 朝向
进行复制的两个核,应保持不同朝向,如一个向北(North),一个向西(West),以避免特定工艺条件、布局规则等因素导致的共因失效;
· 镜像
进行复制的两个核,其中一个要做镜像翻转(flip)操作(相对于另一个核),以避免特定工艺条件、布局规则等因素导致的共因失效。
2.解读和进一步分析
事实上,上述这种思路并不局限于双核锁步电路的设计,而完全可以被拓展到所有利用两个副本进行 Duplication/Lockstep 以获得安全架构设计的产品中。其中的关键后端设计,实质上分为两点:
· 两副本间需保持一个最小距离;
· 两副本间需以某种方式保证差异化的后端布局。
那么,第二部分中所提供的参考,是否是最合理,或者说唯一的思路与设计模式呢?以下就对这两点分别进行讨论。
1. 两副本间距离
在 TI 的产品说明中,副本间的最小距离被提供为一个绝对数值(100μm),但这只是基于特定产品(参考产品为 65nm 工艺)下的一个特定要求。关于 100μm 的源头,在原材料中并未提及。但在另一篇基于 180nm 产品的安全 SoC 设计文章中,基于 IEC 61508-2,Annex E 中的要求进行了包含计算过程的说明。
在 IEC 61508-2,Annex E 中:
"f) The minimum distance between boundaries of separate physical blocks shall be sufficient to avoid short circuit and cross talk between these blocks.
……
NOTE 9 The minimum distance should be chosen regarding the relevant design rules with a safety factor typically between 10 and 50. "
而在论文中:
“In order to guarantee freedom from interference, IEC 61508 requires that the distance must be sufficient to avoid short circuits or crosstalk between the channels. The safety factor should be between 10 and 50. For the 180 nm process used, the specified minimum distance between the metal layers on Metal-1 is 0.56μm and on Metal-6 is 1.6μm. It is assumed that this distance could be used as a basis for calculating the distance. With a safety factor of 50, this results in a distance of 80μm. This was rounded up to 100μm from a conservative safety point of view.”
解读:基于所使用的 180nm 制程,考虑 Metal-1 层和 Metal-6 层所对应的最小层间距离分别为 0.56μm 和 1.6μm,其中的较大值被选取作为同一片 Die 上 Component(例如两个 Processor Core)之间的参考距离计算基数。取 IEC 61508 的 10-50 倍系数后,最保守的安全距离为 1.6μm x 50 倍,即 80μm,在进一步预留余量后即得到 100μm。
显然,上述距离与特定工艺下的基本参数直接相关,随着车规产品的制程从 130/90nm 工艺,逐步推进到 90/65nm、55/40nm,乃至 28nm 以下,假如使用同样的计算方式,上述距离的计算结果肯定会有所不同。
除此之外,利用单元 Cell 作为 Fence 的思路在其他材料中也有提及。举例而言,XILINX 的 FPGA 和可编程 SoC 产品的 Isolation Design Flow 中,其工具主要通过将部分未使用的“块”(Tile)设置为 Fence 的方式来实现隔离。这些未使用的 Tile 将隔离两侧用于不同副本的 Tile,而基于此规则,副本间的最小距离也就会通过每个 Tile 特定方向的边长来决定(取值为该边长或其整数倍),如下图所示。
图 3:将未使用的 Logic Tile 作为 Fence,
基于 XILINX 公开资料
2. 两副本间的差异化后端设计
本文第 2 部分中所提出的翻转+旋转 90 度,确实是一种合理的思路,但未必是唯一的思路。举例来说,在对于 Hard Marco 进行 Duplication 且不进行任何修改的思路下,两个副本的出 Pin 的方向、数量、安排都是固定的,也同样会旋转 90 度,这可能会对后端设计带来其他的不便。此外,即便做了翻转与转向,这两个副本本身依然进行了 Duplication,本身也无法完全避免一些特定的相关失效引发源,可以视为试图控制成本和工作量的一种解决方案。
如果成本支持,完全可以在 Layout 时完全基于 2 个核独立进行布局,而不做任何复制。这样带来的工作量更大,但从避免相关失效、获得更合适布局方案的角度而言,可能更为合理,即:进行布局时采用两个副本单独硬化的方式,按照独立核来完成实现,不做任何复制操作。此外,两个副本的出 Pin 方向上,应互相之间保持不同,避免在不同副本上使用同方向出 Pin。
3.其他思考
上述讨论是针对特定产品类型和工艺的思考,仍有更进一步的空间。在以上所述的两个要点之外,还有其他一些需要在锁步核后端设计中考虑的要点,距离如下:
· 对于时钟,每个锁步核的时钟树宜独立完成,并尽量靠近 PLL 完成对应的分叉;
· 在进行布局规划、布局、布线时,对不同的区域(如锁步核 0,锁步核 1,两个锁步核公用的资源,以及锁步核之外的部分,都被视为不同的区域),设置对应的线距、区域进出和跨越规则、其他限制约束条件等。
当然,对于以上种种考量,在不同的设计-生产合作模式下,基于实际分工情况,功能安全设计的任务可能会被分配给不同的利益相关方,并带来各种各样的问题。在软核许可模式下,IP 供应商对于后端的话语权相对有限;而在硬核授权模式下,某些方案(例如,将 2 个副本独立进行布局的方案)的实现则较为困难。至于工艺相关的关键参数,Fab 侧通常只提供最底层、普遍性的约束规则。而从标委会的角度来看,标准的迭代进度通常略慢于行业发展,如何能够尽量让标准可以适应最新的技术动态,同样也是一个挑战。
4.总结
综上所述,这个领域依然有很多可以提升的内容,需要业内的专家共同努力。本文的参考资料有限,讨论也有较多局限性,倘若多个领域、不同环节的专业人士,能够共同在更基础的技术层面一起探讨上述问题,也许会得出更有价值的解答。
参考文献
[1] ISO 26262-11:2018 - Road vehicles - Functional safety - Part 11:Guidelines on application of ISO 26262 to semiconductors, ISO, 2018
[2] IEC 61508-2:2010 - Functional safety of electrical/electronic/programmable electronic safety-related systems - Part 2: Requirements for electrical/electronic/programmable electronic safety related systems, IEC, 2010.
[3] IEC 61508-6:2010 - Functional safety of electrical/electronic/programmable electronic safety related systems - Part 6: Guidelines on the application of IEC 61508-2 and IEC 61508-3, IEC, 2010.
[4] Texas Instruments, Safety Manual for TMS570LS31x and TMS570LS21x Hercules™ and ARM® Safety Critical Microcontrollers: User´s Guide,
[5] Stylianos Ganitis, Lockstep Analysis for Safety-Critical Embedded Systems, Airbus Defense & Space, 2015
[6] Josef Börcsök, Waldemar Müller, Eike Hahn, Michael Schwarz, Mohamed Abdelawwad , “Approach for a Safe-SoC for Cyber-physical Application according to IEC 61508”, INTERNATIONAL JOURNAL OF COMPUTERS, 2020
[7] Satya Pitaka, Isolation Design Flow for Xilinx 7 Series FPGAs or Zynq-7000 SoCs (Vivado Tools), XILINX, 2020
[8] Automotive Features in Implementation, Cadence, 2020
[9] Application Note: Cortex-M33 Dual Core Lockstep, ARM, 2017
[10] IEC 60601-1 Medical electrical equipment - Part 1: General requirements for basic safety and essential performance, IEC, AMD2:2020 CSV
END
作者:傅翀
文章来源:sasetech
推荐阅读
- 汽车信息安全 -- S32K1 如何更新 BOOT_MAC
- 软件单元测试的设计方法
- 如何考虑芯片的功能安全设计
- 万字长文解读汽车信息安全框架
- 汽车网络安全 -- IDPS 如何帮助 OEM 保证车辆全生命周期的信息安全
更多物联网安全,PSA 等技术干货请关注平台安全架构(PSA)专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入PSA 技术交流群,请备注研究方向。