2013-10-05 100 views
0

計算機是否有可能因硬件錯誤而導致錯誤結果?例如,如果我告訴CPU多次計算6次9(兩個整數),所有的計算都會給出正確的答案嗎?如果有一些計算出錯的可能性,爲什麼會這樣,並且有沒有任何機制可以阻止CPU內部的錯誤答案?正確的算法可能會給出錯誤的結果嗎?

+1

有趣的問題,雖然我不確定它是否適合[so],也許[su]或[electronics.se]會更合適。但是它似乎與[(When)硬件,尤其是CPU)是否提供了錯誤的結果/(與其緊密相關)/(與之密切相關)(http://stackoverflow.com/q/2566043)。 – Dukeling

+0

問題的標題讓我懷疑我們是否正在前往巴貝吉的報價:「有兩次我被問過,'請問巴貝奇先生,如果你把錯誤的數字放進機器,會得出正確的答案嗎?我不能正確地理解可能引發這樣一個問題的那種混淆思想。「 :-) –

回答

1

有幾種可能性:

  1. 操作CPU規範之外可能導致不穩定的行爲(如過多的熱量,過多的電壓)

  2. 如果一箇中斷觸發在非原子操作的中間,並且中斷修改了結果,可能會發生奇怪的行爲。 (例如:如果你在8位處理器上試圖執行16位操作,也許你計算的是A * B,但是你有一個計時器,在計算結果的中途觸發並改變值A,這真的被認爲是軟件錯誤,不是故障。

  3. 總是有cosmic rays。芯片是如此之小,這些天,你真的不能責怪他們的任何問題,但他們是一個問題,如果你有一個多年的自治系統。

至於預防故障,在太空競賽期間,發射計算機使用triple-redundant logic驗證每個計算。STMicroel ectronics擁有一系列容錯的雙核微控制器,它們使用相同的代碼運行兩個內核,如果任一內核不同意,則會出現故障情況。

+0

很棒的概述。 – probablyup

相關問題