嗯… 没人邀… 凑一发热闹。
有谬误欢迎指正, 非核工程专业.
非常大。
电路是靠着电容上积累的电荷确定0或者1的
电路是靠着电容上积累的电荷确定0或者1的
电路是靠着电容上积累的电荷确定0或者1的
任何形式的辐射, 都会伤害无保护的ASIC电路。 方式多种多样, 最终目的无非一个: 以电离, 撞击等方式, 导致Soft Error (软错误, 也即可以纠正的, 不影响硬件本身的错误), 其中 single event effect(SEE, 单事件错误)是这里面主要的参量 。严重的, 甚至会导致硬件本身损坏(Hard Error ), 也即不可修复的错误. 这一点放到后面讲.
也就是说, 我往内存里存了个数, 二进制 0000 1111; 结果粒子一打过来,哟呵~ 变成
0001 0111
了。
如果是数学运算,… 加减法做不对会导致计算轨道错误啊之类的; 如果是控制位… 那你最好保证反转的那两个比特没有控制什么飞船弹射之类的参数。 不然本来输入0不要弹射, 一反转变成1赶紧弹射。玩儿脱了…
比如说切尔诺贝利事件之后, 苏联令人发指的召集志愿者去清理辐射, 原因是
机器人进去就不听使唤了. 更严重的是, 这些机器人拿出来以后, 也不能使用了.
------------偏题开始-----------
那么怎么知道我这个电路会不会这样呢? 标准方法叫做 SEE testing, 单次事件测试。
这个测试简单粗暴: 用一束已知能量的粒子去轰击测试芯片, 同时进行外部操作, 看最终结果会不会翻转。这一束粒子可以是任何粒子, 包括alpha射线, beta射线, 中字束, 混合各种各样的粒子等等. 粒子束的强度统一以入射粒子的能量, linear energy transfer, LET来记。具体到数量级上的话, 如果是目前普通的家用计算机,大概电离辐射量 在 0.x keV cm2 /mg 就挂了。 (挂了=出现了软件诸如 ECC 无法修复的错误)
*对于伽马射线, LET的计算方式不太一样, 因为这货是光子; 计算的时候一般是算由伽马射线引发的电子束强度.
太空的标准参考LET是 60-120 MeV cm2 /mg
垮了噻… 差了几个数量级啊!
原因是家里面的电脑由于地球母亲磁场和大气层的保护, 基本不会受到轰击。 设计的时候, 设计师们都表示呵呵呵呵谁要管你。
太空工程师表示瓦日你哥… 我们怎么办…
说一下LET是如何用来测量的: 一般来说, 用一束粒子轰击这个芯片, 如果这个轰击有效 (改变了某些元器件电容上的电荷), 那么这个芯片上会向外射出粒子.
LET, 顾名思义, 线性 能量 转移, 就指的是在这个有效轰击里, 有多少能量被转移出来了.
LET_thresh, 是对于一个器件来说, 不断地给它施加高能粒子束, 高到某一个能级的时候, 飞出来的粒子能量不再提升了.
那么一般来说, 家用机LET_thresh非常低, 表现形式就是稍稍拿粒子轰击一下, 就会飞出来一堆电子; 但是如果我逐步加大这个粒子束的强度, 出来的电子不会变多!
什么意思呢? 就是说: 家用机无论你怎么轰击, 就只能出来这么多电子了. 再多的电子在原子内层, 你轰不出来.
为什么这是一个坏事呢? 半导体里面可用的电子密度就那么点点, 结果一点点粒子束就全把它轰出来了剩下的原子核和内层电子等着结婚咩...
所以说, 环境里面的LET越高, 说明
这个环境有能力轰出更多的电子;
而
器件的LET_thresh越高, 说明这个器件能承受被轰出更多的电子, 也即在高辐射下更加稳定.
在CMOS出生的同时, 太空/核 工程师们就找到了一种能让标准CMOS 承受高辐射的方法:
把CMOS设计成这样: