• 正文
  • 相关推荐
申请入驻 产业图谱

芯片设计里的chicken bits是什么

07/31 10:35
2102
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

芯片设计中,“Chicken Bits”是一种非常重要的风险管理机制,其核心功能是通过软件可配置的寄存器bit控制,在流片后动态禁用可能存在缺陷或性能隐患的电路模块。以下从技术原理、应用场景及实现方式等维度进行介绍。

1. 定义与功能介绍

Chicken Bits是芯片中的寄存器里的可配置比特位,设计者通过软件或固件修改其状态(0/1),用于启用或禁用特定的功能或者模块。其核心价值在于解决流片后发现的电路缺陷,避免因局部问题导致整个芯片失效。

命名来源: “Chicken”(胆小的)一词源于工程师对风险的规避心态——例如宁愿牺牲部分新功能的性能收益,也要确保芯片基本功能的稳定性。

2. 应用场景与设计价值

风险缓解:

芯片流片成本高昂且周期长,设计阶段难以覆盖所有极端场景(如时序违例、功耗激增)。

若某些新功能或模块在测试中表现不稳定,可通过Chicken Bit将其关闭,使芯片回退到已验证的保守模式。

典型案例:

太空级芯片:太空环境中单粒子效应(SEE)可能引发位翻转,若禁用模块的 Chicken Bit被意外激活,会导致任务风险。因此需权衡是否保留该功能,或通过滤波/屏蔽增强抗辐射能力。

高性能优化模块:如动态电压调节电路,若发现其在高温下时序违例,可通过Chicken Bit切换至默认模式。

还有一个典型例子是:曾经有人在苹果的M1和M2芯片中发现了一种chicken bit的设置,这一发现对于安全领域来说意义重大。这个特定的位能够关闭数据内存依赖预取器(DMP),这是之前被发现能够泄露加密密钥的一个硬件优化功能。然而,尽管这一发现看起来是一个潜在的解决方案,但它带来了一些顾虑和限制。

这种“chicken bit”的使用并没有得到苹果的官方支持,也没有在任何文档中被记录。这意味着,虽然它似乎能够关闭DMP功能,但目前还不清楚它可能会同时关闭什么其他功能。这种不确定性可能对系统的其他部分产生未知的副作用。

其次,目前这种方法仅适用于运行Linux操作系统的设备。对于大多数使用MacOS的苹果用户来说,这并不是一个可行的解决方案。MacOS系统中没有已知的方法来利用这些位,这限制了其实用性。

下图展示了一个Chicken bit的实现,通过一个MUX在两个逻辑中进行选择。一种保证Chicken bit的引入不影响其他模块功能的方法是Formal FEV。将Chicken bit禁用时的设计(IMP模型)和之前没有实现Chicken bits的设计(SPEC模型)进行等价性比对。

一般情况下可以通过combinational FEV实现,但是如果这个Chicken bit影响了时序就需要使用sequential FEV。

3. 实现机制与设计考量

技术实现:

通常集成在配置寄存器中,通过总线(如APB/AXI)访问,支持运行时动态修改。 需确保控制路径与其他逻辑隔离,避免功能模块禁用后产生信号冲突。

关键设计约束  例如抗干扰性:控制位需添加冗余锁存或纠错码(ECC),防止辐射或噪声导致误触发。

参考内容:

使用Formal FEV 验证某些Chicken bit 和clock gating

相关推荐