宇宙射線對計算機訊號傳遞的錯誤率有多大影響?

曾經似乎看過一篇paper對宇宙射線和bug率的研究,請問伽馬射線 貝塔射線對處理器或內存及bug率有多大影響?


嗯… 沒人邀… 湊一發熱鬧。
有謬誤歡迎指正, 非核工程專業.

非常大。

電路是靠著電容上積累的電荷確定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設計成這樣:

這叫做 enclosed layout transistor。 很噁心吧! 這玩意兒的 長寬比不再可以簡單的算出來了, 而是要用一套複雜的公式計算。

這樣可以把微米級別的電子晶元做到幾十MeV cm2/ mg。看起來不錯哦~

(該技術依然廣泛應用於目前的航天/高能物理場所)。

但是! 地上的工程師們呵呵一笑: 我們的 sub-micron technology要不要? 要不要? 不要的話我們就繼續奔向納米級別了, 你們微米級別慢慢玩~~

太空工程師一計算, 0.25um 的 CMOS 只能承受 大概 15MeV cm2 / mg… 表示不開心。

然後, 在CERN 製作 LHC的時候, 又繼續發揚光大, 縮小器件的同時,加入了harden mode(也即在上面那個ELT的基礎上在外圈再加入一圈兇殘的guardring, 這樣可以抵禦相對強烈的粒子束轟擊)

然後就做到了89MeV cm2 / mg, 反正CERN 表示我們的LHC夠用了。

記得太空里是60-120 MeV cm2 /mg吧… 太空工程師欲哭無淚… 你們做這個才剛剛達標啊!

(原話: 那沒辦法啦… 硬體差不多到頭了…剩下的只能靠軟體了…)

改為: 電路方法克服這些錯誤 基本到頭了, 剩下的靠屏蔽+架構來解決.

克服Soft Error 有兩個無堅不摧的法寶: 把電路做大或者頻率減低. 但是這兩個都會拖慢計算機的效率.

架構上的方式, 基本可以總結為: 加冗餘, 交織設計, 和家用機里也會有的ECC(Error Correct Code). 當然這裡的ECC會不同. (感謝太初有為 的指正! )

加冗餘就是把本來一個電路能完成的份額用三個或者更多個(奇數個)電路做, 做出來之後取多數答案當做正確答案. 假設本來某個粒子有50%的可能會翻轉一個比特, 三份冗餘之後, 就只有50% * 50%= 25% 的概率了. 另外, 據太初有為 說以及查證, 標準的三份冗餘會使用不同的時鐘等, 這樣更是降低了一個粒子干擾一片電路的可能性.

交織設計在太初有為 的答案里有詳細的介紹.不再贅述.

引用:

F.Sturesson , TEC-QEC, 「Single Event Effect (SEE) Testing」, EPFL
Space Center 9 th Conference., June 2009.[Presentation Slides]

Wikipedia, 「Linear Energy Transfer (LET)」., 2012, obtained :
Linear energy transfer
.

F. Faccio, K. Kloukinas, A. Marchioro, T. Calin, J.
Cosculluela, M. Nicolaidis and R. Velazco, CERN and TIMA/INPG Laboratory, 「Single
Event Effects in Static and Dynamic Registers in a 0.25pm CMOS Technology」.,
IEEE TRANSACTIONS ON NUCI.EAR SCIENCE, VOL 46, NO 6, DECEMBER 1999

G. Anelli, M. Campbell, M. Delmastro, F. Faccio, S. Florist,
A. Giraldo, E. Heijne, P. Jarron, K. Kloukinas, A. Marchioro, P. Moreira and W.
Snoeys, CERN and University of Padova
INVN, 「Radiation Tolerant VLSI Circuits in Standard Deep Submicron CMOS
Technologies for the LHC Experiments: Practical Design Aspects」., IEEE TRANSACTIONS
ON NUCLEAR SCIENCE, VOL. 46, NO 6, DECEMBER 1999


所謂的宇宙射線,也叫空間輻照,主要對CMOS體硅工藝的器件會有比較大的影響。很不幸地,我們大部分的計算機晶元都屬於這個範疇。空間輻照主要考慮有這樣幾個影響:總劑量效應和單粒子效應。總劑量效應是一個類似電子遷移一樣的累積過程,比如會造成一個反相器的翻轉電壓降低,最後不能工作。這個效應在地球上基本不必考慮,一是因為到達地球大氣層的高能粒子數量較少,第二大部分電子器件的壽命沒有設計的過長。但是在空間就不一定了,在空間環境里長期的粒子能量積累,最終會造成器件的損傷。總劑量效應的度量單位是拉德(材料),一般按照nasa的要求,近地軌道要求在器件生命周期內能抗200k拉德(硅)的輻照量,而深空環境裡面,一般都是要求抗1M拉德(硅)以上的總輻照劑量。那麼在地球上,其實不必特別考慮總劑量的影響。其次是單粒子效應。單粒子效應就是指一個高能粒子打穿CMOS的某些敏感區域,造成器件的失效。這種失效有硬失效有軟失效。硬失效就是器件損傷了。一般這種硬失效表現為閂鎖。閂鎖的現象就是器件電流突然增大,最終被燒毀。閂鎖就是CMOS中襯底和阱之間的pnpn結被導通,最終形成一個正反饋迴路。閂鎖在地面也會發生,但不一定是高能粒子造成的,也有可能是相鄰兩個cell靠的比較近產生互感。這個一般晶元設計商在設計的時候都會考慮這個效應,但是不會細緻到考慮高能粒子擊穿器件那個地步,所以閂鎖在地面會發生,但幾率不大,即使發生了也不一定會燒毀器件(閂鎖在某些條件下是可以退出的),屬於小概率事件。然後,單粒子效應還會造成軟失效,就是所謂單粒子翻轉或單粒子脈衝。單粒子脈衝的發生也是需要高能粒子打在cmos器件上,然後形成一個毛刺,這個毛刺如果運氣好,可以被下一級的DFF吸收掉,運氣不好,正打在DFF的建立保持時間窗內,寄存器就翻轉了。最可怕的是打在時鐘樹的根節點上,那就會造成大面積的寄存器錯誤翻轉。即使被打中,這個會不會造成bug也是個概率問題,假設打中了某個通用寄存器,但是這個寄存器可能不會被使用,或下一拍就被刷新了,那就和沒打中一樣。除了單粒子脈衝,還有單粒子翻轉,這個發生的粒子能量閾值條件是最低的,因此是軟失效中最常見的現象。這種軟失效不一定會由宇宙射線造成,在地球上發生的幾率也很大。記得很久以前,某次太陽黑子爆發,某廠家的伺服器的CPU因為沒有做軟失效加固,造成大面積失效,丟失大量市場份額。在這方面現在做的最好的是SUN,他家的伺服器以穩定著稱,但是當我知道他們的CPU做的加固手段之全面,也還是被折服了。一般來講所有的軟失效的發生是個概率事件,發生了會不會造成bug也是個概率事件,造成了bug你會不會觀察到,又是個概率事件,觀察到了對主功能會不會造成影響還是個概率事件。針對軟失效,晶元廠家會在硬體上進行加固,所謂的加固,一般來說就是增加校驗,你看很多伺服器的內存都是帶ECC的,這種校驗一般可以糾正一位錯誤,檢查到兩位錯誤。還有一個就是在內存上進行交織設計,就是讓一個word的bit盡量分散在不同區域,不要一個粒子打中後一下錯一片。所有不重要的寄存器做parity,重要的做ecc,反正就是能想到的全給你加上。抗單粒子軟失效還有一個手段就是換材料和工藝,比如在硅上再生長一層,被稱為外延增長技術的矽片,或者乾脆換成絕緣體上硅材料,這個是IBM研發的,AMD曾經有幾條產線,以前所有的powerpc都是基於這個材料工藝的。這個工藝的初衷是降功耗和面積,後來還發現他有個抗單粒子效應的自帶屬性,後來就被美國軍方關注了,再後來因為這個工藝成本還是比較大,逐漸就被商業棄用了。所以總體上來講,宇宙射線對bug還是有一定的影響的,但取決於你的可靠性要求。在某一個閾值上任何增加可靠性的設計都是昂貴的,軟失效設計是一門系統工程,如果只是想簡單防一下,其實採用高等級的伺服器,多加校驗方式,還是提升比較明顯的。


不是所有錯誤都叫bug。


才看到知乎上有人討論這個話題。之前有很多人介紹過單粒子效應的基本概念了,不再重複。在這裡澄清幾點:

1. Cisco 公告的摘要說,軟錯誤問題的可能原因是單粒子效應(single event effect),並沒有提到宇宙射線。我沒有cisco賬號,沒看到報告的全文,但猜測在全文里也沒有提宇宙射線。對於地面應用,引起單粒子效應的輻射源,更有可能是晶元封裝材料里的放射性同位素在alpha 衰變中放出的alpha粒子,而不是宇宙射線。在沒有充分證據的情況下怪罪老天,會遭天遣的。

2. 地面設備因為單粒子效應出現軟錯誤,並不是什麼新鮮事。2001年底,Sun 公司的 UltraSparc 高端伺服器出現無規律的死機,就是緩存晶元里的軟錯誤造成的。等到幾個月後 Sun 公司找到原因並更開始換出問題的緩存時,這個事件已經對 Sun 的信譽造成了無可挽回的負面影響。2004年,Xilinx 公司的部分 FPGA 晶元也出過類似的單粒子效應問題。這兩次事件都是由於晶元封裝材料中的放射性同位素引起的,和宇宙射線沒啥關係。如下圖所示,出問題的 Xilinx FPGA 晶元採用了倒封裝工藝,Flip-Chip焊球距離晶片上的晶體管有源區只有幾個微米的距離。焊錫(鉛錫合金)中的微量放射性同位素會發生alpha衰變。例如,同位素釙210 (鉛210的衰變產物)會發射 5.3 MeV 的 alpha 粒子,並衰變成鉛206。這個alpha粒子會在電路中產生單粒子效應,引起軟錯誤。

來源:Xilinx White Paper 208 (2004)

3. 如果 Cisco 在調查後把錯誤原因歸結為放射性同位素引起的單粒子效應,那麼他們應當可以找到引發問題的晶元;然後該晶元的生產商應該可以找到發射過量alpha粒子的材料供應商——這才算找到根本原因了。如果有誰下載到 Cisco 的報告全文的話,可以看一下(我也有興趣看看)。

4. 當然,先進CMOS工藝的器件,其軟錯誤也有會有新的物理機制。例如,宇宙射線中的 mu 和 tau 粒子,穿透大氣的能力(相比中子)比較強,並且可能在 28nm 等先進工藝生產的晶元中引起單粒子翻轉。這個機制算是近年的一個研究熱點吧。如果 Cisco 在調查後發現這次軟錯誤事件是某種新機製造成的,那他們應該發論文仔細報道實驗和分析的細節。對此我就更有興趣了。

5. Cisco 在單粒子效應/軟錯誤領域的投入是很大的。花了很多錢,做了很多實驗,發了很多不錯的論文。他們說這次的軟錯誤問題是單粒子效應造成的,在沒看到報告全文之前,我暫且是相信他們的。但這次暴露出來的軟錯誤似乎太頻繁了,似乎超過了通常經驗中的軟錯誤率。這讓人懷疑Cisco是不是在設計中有所疏漏。當然,這只是猜測,有待分析。

6. 題主提到的beta射線和gamma射線,在一般的地面應用中可以忽略不計,和這次 Cisco 事件沒什麼關係。在空間應用中,通常比較關注 beta/gamma 射線對總劑量效應的貢獻,一般不考慮它們對軟錯誤的直接貢獻。其他輻射環境下的 beta/gamma 射線,有其他效應。這些課題比較小眾,就不展開講了。


只是對於航天有影響,說宇宙射線其實絕大多數是太陽射線。

高度越高越明顯。並且好像巴西附近海域因為輻射產生的soft error比其他地方多一個數量級(國際空間站的數據)。而且地球磁場對射線的防護有時會讓情況變得更複雜,比如在太空中的射線基本大家以及研究透了,而地面情況,尤其是火星表面(最近火星太熱門)情況還有不少研究盲點。

對於輻射,電子束基本可以靠薄屏蔽解決絕大多數。而質子中子屏蔽效果不大,需要很厚屏蔽,這樣會加大發射重量,況且在比如太陽能電板,攝像頭等場合不允許屏蔽,所以需要點路自己負責。

工藝級別防護:用.18um的老工藝;用高電壓;用SOI。電路級別防護:DFF重複採樣;提高FF 以及memory自增益;對於SET大家好像沒什麼辦法,只是期望它別打到FF的採樣點上。系統上:基本就是各種冗餘了,比如ECC,DMR,TMR。然後如果上天就是無休止的測試了。

總的來說,對於logic,大家沒有太好辦法,只有重複做比較;對於memory,有ECC這個大殺器,所以解決得很好。但是一般晶元上9.5成是各種memory,所以這個做好問題就會減輕很多了。

對於地面,基本很少看到有人關注這,我能感覺到的是數據中心,因為雖然單比特概率小,但蓋不住數據多。記得典型大數據中心錯誤數是一天一次?解決辦法主要也是ECC。

關於Cern這種地方也在關心這,但我覺得離大家生活太遠了。總結關心這個的代表機構是NASA,ESA,Boeing,AirBus,Intel,Oracle。至於你?出現bug還是老實調試吧,別怪太陽射線了。


對這個一點兒不了解,但是有些興趣,太空中具體的錯誤率數據不知道,在平常環境里幾乎不可能碰見這種問題,前陣子聽的一個電路可靠性分析報告給的總錯誤率是十的負幾十次方 per bit per cycle(包括射線等等種種因素的總錯誤率),總之在一台電腦的整個生命周期裡面都很難見到一次。

但在外太空就是另一回事了,上去的晶元得做防輻射加固。前陣子聽了一個為日本宇航局做防輻射的電路層加固的科學家給的報告,就記得這麼兩個數字;不做加固,在輻射中工作不到一秒就掛了,做了加固,打開蓋子施加輻射能撐超過六十秒。當時的PPT裡面標註了輻射強度,但是因為我實在不懂這個方向,不知道他們的地面模擬試驗的強度是比太空輻射更強還是更弱。


老師是做衛星設計的,上課的時候稍微提到一些……
具體數字我也不清楚
伽瑪射線和X射線屬於電磁波電離輻射,不會在短時間內破壞晶元,但是對壽命的影響很大。長時間的衝擊會導致晶元上晶體管閘極漏電,初期會導致功耗上升。長期會導致晶體管失效,結果就是門電路失效以至於整個晶元失效
Beta射線是電子流,打在晶元上可以直接在電路中產生電流,這個影響太明顯了沒必要說太多了吧= =
常見問題之一,單粒子反轉。樓上的都提到過了,就是指存儲元件中的0和1反轉。單粒子反轉對程序文件是致命的,錯一位就很大概率運行失敗。已經編譯的Binary文件中的二進位串對應的是機器碼和參數。參數反轉會導致運行失常,因為輸出結果大概率會便宜很多【二進位高位一位翻轉頂得上低位所有加一起反轉的影響,跟著就是後續程序全趴下了。如果是機器碼翻轉問題更嚴重,晶元會執行錯誤指令,或者乾脆因為指令不存在罷工。
所以在設計的時候要考慮這種情況,比如狀態機編碼,4狀態地面上可以用00 01 10 11,兩位。太空中一般用的就是4位,0001,0010,0100,1000。這樣就要同時反轉兩位才能導致設備進入錯誤狀態。
不過,失效一般不是整個晶元一起失效的,是一點一點來的。航天器上的晶元有一部分是用的FPGA晶元,如果晶元一部分失效可以修改配置文件繞開損壞的部分。ROM和RAM同理,通過給處理器重新編程可以避開損壞的單元。當然了,前提是系統還能響應指令……


以前Intel提過ECC內存,碰到1bit,2bit so ft error的概率。我找找哈。


敝廠前段時間有個外派瑞士出差的活,就是帶幾台交換機去給粒子加速器折♂磨。

大概是大佬們覺得我們kernel組寫的人為模擬內存錯誤的內核模塊來測試ECC還不夠底層、不夠勁爆,想試試看真傢伙……


也就太空中有這個考慮。摘抄天宮一號的新聞

太空中,計算機最怕什麼?專家說宇宙射線是計算機運行最大的危害。

地球上的計算機,因為有地球大氣層的保護,可以擋住大部分來自太陽的高能粒子射電流,而在太空,天宮一號控制計算機將遭到質子、中子、重離子、電子的轟炸。

「總劑量效應」和「單粒子效應」是兩種典型的太空射線對空間計算機造成的損害,也是星載計算機同其它地面計算機的最大不同。

專家所說「閂鎖效應」是指空間重粒子作用到計算機晶元造成短路,進而引發「可控硅」效應,嚴重的會造成計算機電路「燒毀」。若發生「閂鎖效應」,地面控制中心的工程技術人員即可察覺,相比之下,「單粒子翻轉效應」使計算機存儲單元的內容發生「位翻轉」,造成物理損壞,只是悄無聲息地改變存儲內容,造成不易發現的破壞。

從天宮一號控制計算機地面遙測數據分析,天宮一號控制計算機今年已發生6次存儲器單粒子翻轉事件,其中有一次就發生在第二次交會對接前幾小時。天宮一號控制計算機系統能有有效抵禦單粒子翻轉的危害,在軌穩定工作、表現優異。

劉波講述的空間計算機測試,完全顛覆記者想像。

溫度要承受攝氏零下35度到70度的巨大變化,抗輻射、抗靜電、抗震動,考核試驗綜合應力時,一面震動、一面溫度急劇變化、同時多個條件載入,考驗產品的極限性能。

神舟九號與天宮一號對接就像兩架飛機進行空中加油一樣困難,一樣危險,其中自動交會對接是對神舟九號和天宮一號控制計算機的最大考驗,我們不能想像交會對接過程及控制權交接瞬間對兩航天器控制計算機可靠性的甚高要求。


這個已經不是bug的問題,由於光電效應,你用強光手電筒照射pi2的soc可以導致其瞬間重啟
如果來電高能的γ射線的話,可能就損壞了
相當於小型EMP了


電腦里的各種晶元和CPU本身都是半導體CMOS工藝,CMOS只是工藝的叫法,實際只是N型MOSFET和P型MOSFET,前者電子負責導電,後者空穴負責導電。從本質上說兩者都只是開關器件,更本質一點它們都是電容,中間有二氧化硅(現在技術進步可能已經是其它的了我已經out了)作為絕緣層,不管怎樣當二者工作時其中電子或空穴的濃度都是一定的。但當收到射線輻射後,一方面硅原子本身可能會移位,另一方面由於電離輻射,電子空穴濃度也會發生變化,甚至二氧化硅絕緣層性質也會改變從而使整個器件失效。所以半導體器件如果要想在太空中使用是必須要有輻射的防護的,否則根本就不能正常工作。所以宇宙射線對於計算機就不只是BUG的問題了,而是幾本就不能正常工作。半導體知識忘了好久了,基本概念是這樣的,但更具體的我就往了。。。。有大牛來指正或補充那也是極好的&>.&<
現在電視機頻道調錯的時候可能會有雪花點,百分之一的情況都是宇宙大爆炸時產生的宇宙射線的作用。


宇宙射線也許真的有影響,但是是不是問題根源就不知道了,反正之前我司研發第一次給我這個解釋的時候,我覺得他在逗我玩,不過給國內客戶和海外客戶解釋的時候,人家到是都信了!


內存方面宇宙射線會導致ddr跳變。。好像還蠻難解決的


看你是啥工藝


只知道大氣中子輻射有一定概率影響PN結,造成信號翻轉。這個影響對半導體器件是很嚴重的


之前在一個問題裡面看過一個答案,大概是醫院裡面的什麼設備射線較強,導致程序經常崩潰。
什麼樣的 BUG 會讓你目瞪口呆? - 知乎用戶的回答


推薦閱讀:

廣義相對論中時空彎曲的方向是如何定義並計算的?
如何在一個封閉的玻璃球內裝滿水?
二維空間的封閉是圓,三維空間的封閉是球,四維空間的封閉是什麼?
假如一個人通過隨意門進入自己的腸子,會發生什麼?
宇宙這麼大 我想去看看 怎麼辦?

TAG:中央處理器(CPU) | 物理學 | 內存(RAM) | 計算機科學 | 宇宙 |