科學頻道分析《超級瑪利歐64》上古Bug出現原因 都是宇宙射線搞的鬼?

遊戲角落 KYLAT

當電腦時好時壞,一般來說玩家直覺反應並不會想到是「宇宙射線」在作怪,但其實系統本身異常、硬體故障等狀況都排除,還是找不到問題的話,就有機會是來自外太空的射線在搞鬼。近期就有人分析《超級瑪利歐64》的上古級 Bug 會出現,可能跟宇宙射線有關。

Youtuber「Veritasium」最近分享一段影片,仔細分析宇宙射線會帶來的技術問題。其中美國太空總署噴氣推進實驗室的輻射效應工程師 Leif Scheick 博士,就證實這個射線確實可能影響地球上的電子設備,造成當機等問題。

沒想到不只會讓電腦當機,竟然還成了《超級瑪利歐64》發生神奇 Bug 的推手?

回到 2013 年,Speedrun 玩家「DOTA_Teabag」在挑戰《超級瑪利歐64》的「Tick Tock Clock」關卡,意外讓瑪利歐像裝了彈簧似的,飛到地圖上層。離奇的事件讓人爭相復刻,甚至有人懸賞 1,000 美元給能夠重現 Bug 的玩家,結果沒人辦到,讓疑惑懸而未解 6 年。

《超級瑪利歐64》離奇 Bug 片段

6 年之後,當初提供懸賞獎金的玩家,將瑪利歐的垂直位置座標參數,透過「位元翻轉」(bit flip) 從 1 調整到 0,結果順利再現 2013 年的 Bug。這樣的操作手法,或許就能牽扯出「宇宙射線」的影響。

Intel 在 1978 年也曾經遭遇過類似的自發性位元翻轉問題。因為當時半導體製造廠就設立在美國猶他州綠河鎮「鈾礦採集場」的下游,讓他們發現旗下的 16KB DRAM 陶瓷外殼的部分暴露在輻射之下。

這系列的 Intel DRAM 就是透過 1 和 0 的二進位制進行編碼,而編碼本身則是由「半導體阱」內所儲存的電子存在與否來決定的。他們發現了 DRAM 的外殼上只要出現了微量的鈾和釷,就會因為 α 粒子進入了晶片內部而造成位翻轉的現象,而同樣的粒子也存在於宇宙射線當中。這些粒子會直接穿過矽,產生「電子電洞對」(electron hole pairs)的現象,並解放電荷載體,在半導體阱中造成電子的堆積,進而導致位元參數從 1 轉換到 0。這個現象被稱為「單粒子翻轉」(Single Event Upset,SEU)。

經過後續測試,顯示暴露在「α 粒子」之下與「單粒子翻轉」現象確實存在著直接的關聯。在那之後,半導體製造流程也特別對此應對,藉此防止陶瓷外殼影響到晶片的功能。

製程改變意味著現代電腦晶片不太可能因為外殼暴露到輻射而產生「單粒子翻轉」的現象,但即使機率微乎其微,宇宙射線仍然有機會能夠與電子設備產生一些出乎意料的互動。加上半導體晶片的尺寸近年來有越縮越小趨勢,大幅提高晶片因為「α 粒子」造成位元翻轉現象的可能性。

簡單來說,或許就是因為宇宙射線讓 DOTA_Teabag 當初操作的設備產生單粒子翻轉,致使位元參數從 1 轉換到 0,才觸發《超級瑪利歐64》遊玩過程中的離奇畫面。

「單粒子翻轉」不只會影響個人電腦,也會讓飛機的自動駕駛模式出問題。一架於 2008 年從新加坡飛往澳洲珀斯就曾遭遇過此象,導致高度訊息出現錯誤,讓飛機快速俯衝。在 20 秒內下墜 200 公尺,乘客因此被拋飛座椅,導致多人受傷。此後所有飛機、火箭以及太空探測器的晶片都加入針對「單粒子翻轉」現象的保護措施。

即使許多航太相關科技近年來都針對宇宙射線添加層層保護,但一般民眾使用的電腦等設備還是有可能受到這個天文現象的影響。

參考原文:PC Gamer

瑪利歐 Intel 澳洲 多人 Speedrun

留言