為什么擁有巨大規(guī)模集成電路的cpu很少出錯(cuò)?

姓名:黎文淵

學(xué)號(hào):17021210909

轉(zhuǎn)載自:https://www.zhihu.com/question/68033587,有刪節(jié)

【嵌牛導(dǎo)讀】:cpu擁有大規(guī)模集成電路,數(shù)以億計(jì)的電路晶體管,由于量大,電路損壞或者失效的概率來說應(yīng)該不小,可是就日常使用的系統(tǒng)Windows或Macos或者Linux很少出現(xiàn)明顯的錯(cuò)誤。這是為什么呢?

【嵌牛鼻子】:UEFI固件、服務(wù)器、嵌入式產(chǎn)品、開源硬件從業(yè)者

【嵌牛提問】:為什么擁有巨大規(guī)模集成電路的cpu很少出錯(cuò)?

【嵌牛正文】

首先,我們要明確一點(diǎn),CPU會(huì)出錯(cuò),并且一旦出錯(cuò),會(huì)越來越頻繁的出錯(cuò)。

我們這里所說的錯(cuò)誤,主要指程序崩潰,或者是程序的運(yùn)算結(jié)果出錯(cuò)。后者SDC(silent data corruption)通常更嚴(yán)重,比如說計(jì)算機(jī)結(jié)果不對(duì)但程序沒有崩潰,錯(cuò)誤結(jié)果最終也許會(huì)導(dǎo)致更嚴(yán)重后果。

電路晶體管出現(xiàn)錯(cuò)誤并不少見,不過從整個(gè)計(jì)算機(jī)系統(tǒng)來看,統(tǒng)計(jì)講到某個(gè)特定的使用者,出現(xiàn)錯(cuò)誤,并且能被體驗(yàn)到并不會(huì)很頻繁。即使硬件出現(xiàn)錯(cuò)誤,并不會(huì)都傳遞到最上層的軟件,比方說,只有5%的錯(cuò)誤會(huì)影響到處理器的狀態(tài),最終用戶觀察到的比如程序崩潰,計(jì)算結(jié)果出錯(cuò)實(shí)際上會(huì)很少。

通常我們說的硬件錯(cuò)誤有兩種,一種是soft error;另一種是hard error。soft error,不是軟件錯(cuò)誤,是指因?yàn)楸尘拜椛洌╝lpha射線、高能輻射)造成的隨機(jī)翻轉(zhuǎn),0變成1或者1變成0。這種錯(cuò)誤是瞬時(shí)發(fā)生的,很難復(fù)現(xiàn)。hard error或者permanent faults就是題主說的電路損壞或者失效。

先講soft error,大部分soft error并不會(huì)影響結(jié)果,比如說某個(gè)晶體管臨時(shí)的位翻轉(zhuǎn),但是邏輯門的輸出不依賴這個(gè)晶體管的狀態(tài);或者出錯(cuò)的時(shí)候時(shí)鐘正好不在那個(gè)狀態(tài)去用那個(gè)值;或者說出現(xiàn)在一個(gè)位置,很快被新的值覆蓋;或者說那個(gè)錯(cuò)誤的值不影響軟件執(zhí)行結(jié)果。因?yàn)榉N種原因,只有很少的錯(cuò)誤會(huì)傳到到最終用戶可見的程度。在處理器架構(gòu)設(shè)計(jì)中,還會(huì)針對(duì)關(guān)鍵電路采用容錯(cuò)機(jī)制,檢測(cè)或者糾正錯(cuò)誤,常見的,比如奇偶校驗(yàn)、ECC等。

hard error,是永久性的電路失效,表現(xiàn)形式就是部分電路的輸出不變,永遠(yuǎn)是1或者0。有的器件,會(huì)有備份電路,有檢測(cè)手段可以測(cè)試并用備份電路替代壞掉的。另外在實(shí)際情況中,損壞的電路并不會(huì)每次都被用到,比方說,芯片上有個(gè)buffer,其中壞了一個(gè)bit,但因?yàn)槲业膶?shí)際應(yīng)用不會(huì)把這個(gè)buffer用完,也不會(huì)用到壞掉的那個(gè)bit,于是不會(huì)受那個(gè)壞掉的bit影響。

硬件也會(huì)提供機(jī)制向軟件報(bào)告錯(cuò)誤。軟件(操作系統(tǒng))也會(huì)有容錯(cuò)機(jī)制去處理硬件報(bào)告的異常。比如說重試,很可能就不會(huì)再出錯(cuò)。出現(xiàn)無(wú)法恢復(fù)的錯(cuò)誤就是變成我們常見的程序崩潰了、kernel panic、死機(jī)之類的。

實(shí)際上,很多錯(cuò)誤并不會(huì)影響用戶體驗(yàn),比如某個(gè)后臺(tái)程序報(bào)一個(gè)錯(cuò),或者崩潰了;再比如屏幕上某個(gè)像素值有一瞬間不對(duì);玩游戲的時(shí)候某個(gè)NPC走位不對(duì);或者點(diǎn)了下按鈕第一下沒動(dòng)... 這些我們都不會(huì)直接想到是某個(gè)晶體管工作不正常。

因此,硬件的糾錯(cuò)機(jī)制會(huì)讓細(xì)微的偶然錯(cuò)誤化于無(wú)形,同時(shí)也避免了數(shù)據(jù)的錯(cuò)誤,幫助計(jì)算機(jī)系統(tǒng)健康穩(wěn)定運(yùn)行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 姓名:韓政 學(xué)號(hào):16010188021 轉(zhuǎn)載自:https://www.zhihu.com/question/6...
    小聊善狼閱讀 406評(píng)論 0 0
  • error code(錯(cuò)誤代碼)=0是操作成功完成。error code(錯(cuò)誤代碼)=1是功能錯(cuò)誤。error c...
    Heikki_閱讀 3,532評(píng)論 1 9
  • error code(錯(cuò)誤代碼)=2000是無(wú)效的像素格式。error code(錯(cuò)誤代碼)=2001是指定的驅(qū)動(dòng)...
    Heikki_閱讀 2,191評(píng)論 0 4
  • 姓名:于川皓 學(xué)號(hào):16140210089 轉(zhuǎn)載自:https://www.zhihu.com/people/zh...
    道無(wú)涯_cc76閱讀 1,449評(píng)論 0 1
  • 夜,未央之境,難眠。清醒莫若高燒之時(shí),或酒后。風(fēng)過窗,入密葉。間有夢(mèng)語(yǔ),清晰而不明其邏輯。開便攜燈,意耗盡移動(dòng)電源...
    魚禮閱讀 253評(píng)論 0 0

友情鏈接更多精彩內(nèi)容