软性错误
软性错误是电子学及电脑运算中的错误,是因为一个信号或资料不正确造成的错误。软性错误可能是因为缺陷而造成,多半认为是因为设计或是架构上的错误,或者是因零件损坏而产生。软性错误也是指信号或资料有错,但没有造成系统的异常动作。在确认软性错误及其影响后,无法得到有软性错误后的系统比原系统来的不可靠的结论。在航太领域中,这类错误称为单粒子翻转。
在电脑的记忆体中,软性错误会造成程式一个指令或是一个资料的改变。若将电脑冷启动后,软性错误造成的影响就会消失。软性错误不会破坏系统的硬体,唯一破坏的是当时正在处理的资料。
软性错误有两种:积体电路层级的软性错误,以及系统层级的软性错误。积体电路层级的软性错误一般是因为有高能粒子撞击到积体电路,例如积体电路本身材料中放射性原子的衰变,会放出α粒子撞击积体电路,因为α粒子带有正电荷以及能量,因此若撞击到某个记忆体单元,记忆体单元中的数值就可能会变化。上述例子中的原子反应非常小,不会影响到积体电路的硬体结构。系统层级的软性错误多半是在要处理的资料被杂讯所影响,多半是在资料在汇流排时发生此情形,电脑会将杂讯解读为资料位元,因此会造成程式定址或是处理程式码的错误。而有错的资料也可能会存到记忆体中,因此造成后续的问题。
若软性错误立刻就侦测到,可以直接重写正确的资料即可消除软性错误的影响。高可靠度的系统会用错误修正机制,直接在运作中修正错误。不过在大部份系统中,无法确定哪一个资料是正确的,甚至完全无法侦测软性错误。而且在修正软性错误前,系统可能已经崩溃,因此复原程序需包括重新启动。软性错误包括储存电路中资料的变化(例如储存电路中的电子),但没有影响到实际电路(原子)。只要重写正确的资料,电路就会恢复正常工作。软性错误可能发生在传输线、数位逻辑、类比电路、磁性储存媒介等,不过最常见的还是在积体电路中的软性错误。
软性错误的原因
封装材料中的α粒子衰变
自从1970年代开始使用动态随机存取存储器后,软性错误开始广为人知。在早期的元件中,陶瓷的晶片封装材料中含有少量的放射性污染物。若要避免软性错误,其衰变率需要非常低,而晶片厂商有时就会遇到因为α粒子衰变产生的问题。非常难维持材料到所需要的纯度。对于大部份的晶体电路来说,若要维持其性能可靠,需要控制其关键封装材料的α粒子放射率,要小到每小时每平方公分0.001次计数(0.001 cph/cm2),一般鞋底材料的放射率是在0.1到10 cph/cm2之间。
宇宙射线产生的高能中子和质子
当电子产业决心要控制封装材料的污染时,也就很清楚可以找到有其他造成软性错误的原因。James F. Ziegler在IBM有一个团队,累积出版了许多论文(Ziegler and Lanford, 1979)说明宇宙射线也会造成软性错误。在现代的零件中,宇宙射线是造成软性错误的主要原因。宇宙射线的粒子本身多半无法到达地球表面,会在大气层中会造成空气簇射,产生许多高能量的粒子。地球表面会造成软性错误的粒子中,有95%是高能量的中子,并馀的则是质子和π介子[1]。 IBM曾估计过,在1996年的桌上电脑中,每月每256MiB的RAM里,就会有一次软性错误[2]。 在软性错误的文献中,常会称这些高能中子通量为“宇宙射线”。中子本身不带电,也不会影响电路,但会让晶片里原子的原子核产生中子俘获,之后会产生带电子的粒子,例如α粒子或是氧原子核,这些都会造成软性错误。
相关条目
参考资料
- ^ Ziegler, J. F. Terrestrial cosmic rays. IBM Journal of Research and Development. January 1996, 40 (1): 19–39. ISSN 0018-8646. doi:10.1147/rd.401.0019.
- ^ Simonite, Tom. Should every computer chip have a cosmic ray detector?. New Scientist. March 2008 [26 November 2019]. (原始内容存档于2 December 2011).