CPU 不可靠了?Google:晶片愈做愈小,反而讓 CPU 運算錯誤難以預測
https://buzzorange.com/techorange/2021/06/18/small-chip-cause-cpu-error/
作者:新智元
Google 正在警惕一件事情,那就是:電腦晶片已經發展到不再可靠的地步,並且可能無
法以可預測的方式執行運算。
但並不是說它們曾經完全可靠。
實際上,CPU 錯誤的存在時間與 CPU 本身一樣長。錯誤不僅產生於設計上的疏忽,也產
生於環境條件和產生故障的物理系統故障。
但是這些錯誤已經趨於罕見,只有最敏感的運算才會受到廣泛的核查。如果系統看起來像
預期的那樣運行。大多數情況下,電腦晶片被視為值得信賴的。
Google:晶片縮小可能是 CPU 錯誤無法預測的根本原因
Google 工程師 Peter Hochschild 在本週作為操作系統熱點話題(HotOS)2021 會議的
一部分發佈的影片中說:「我們的冒險,開始於生產團隊越來越多地抱怨慣犯機器破壞數
據。」
「這些機器被可靠地指控破壞了多個不同的、穩定的、經過調試的大規模應用程式。每台
機器都被獨立的團隊反覆指控,但傳統的診斷方法沒有發現它們有任何問題。」
在更深入地研究相關程式碼和來自他們機器的操作遙測數據後,Google 工程師開始懷疑
他們的硬體有問題。他們的調查發現,硬體錯誤的發生率比預期的要高,而且這些問題在
安裝後很久才零星出現,而且是在特定的、單獨的 CPU 核心上,而不是在整個晶片或部
件家族上。
Google 的研究人員在研究這些無聲的破壞性執行錯誤(CEEs)後得出結論:「易變的內
核(mercurial core)」是罪魁禍首——CPU 在不同情況下偶爾會計算錯誤,其方式無法
預測。
這些錯誤不是晶片架構設計失誤的結果,也不是在製造測試中檢測出來的。相反,
Google 工程師推斷,這些錯誤的出現是因為我們已經將半導體製造推到了一個故障越來
越頻繁的地步,而我們缺乏提前識別它們的工具。
在一篇題為「不算數的內核」(Cores that don’t count)的論文中,Hochschild 及其
同事列舉了電腦內核不可靠的幾個看似合理的原因,包括使罕見問題更加明顯的大型伺服
器群、對整體可靠性的關注增加,以及減少軟體錯誤率的軟體開發改進。
「但我們認為有一個更根本的原因:越來越小的特徵尺寸使其更接近 CMOS 的擴展極限,
再加上架構設計的複雜性不斷增加。」研究人員指出,現有的驗證方法不適合發現零星出
現的缺陷或部署後物理惡化的結果。
Facebook 也發現 CPU 的運算錯誤
今年 2 月,Facebook 發表了一篇相關的論文「規模化的無聲數據破壞」(Silent Data
Corruption at Scale),其中指出:『無聲數據破壞正在成為數據中心中比以前觀察到
的更常見的現象。」
該論文提出了緩解策略,但沒有解決根本原因。
在 Google 的研究人員看來,Facebook 發現了一個不可靠核心的症狀——無聲的數據損
壞。但確定問題的原因,並提出修復方法,將需要進一步的工作。
行為不端的內核所帶來的風險不僅包括崩潰(現有的錯誤處理的故障停止模型可以適應)
,還包括不正確的運算和數據丟失,這可能會被忽視,並在規模上構成特殊的風險。
「我們的一個易變的內核破壞了加密,」他解釋說,「它是以這樣一種方式做到的,即只
有它能解密它錯誤加密的內容。」
Google 的研究人員以「商業原因」為由拒絶透露其數據中心檢測到的 CEE 率,儘管他們
提供了一個大致的數字,「每幾千台機器有幾個易變的內核– 與 Facebook 報告的比率
相似。」
理想情況下,Google 希望看到自動化的方法來識別易變的內核,並建議在整個晶片的生
命週期內進行 CPU 測試,而不是只在部署前依賴燒機測試。
這家公司目前依靠的是人類驅動的內核完整性審訊,這不是特別準確,因為識別可疑內核
的工具和技術仍在進行中。