計算機是否有可能因硬件錯誤而導致錯誤結果?例如,如果我告訴CPU多次計算6次9(兩個整數),所有的計算都會給出正確的答案嗎?如果有一些計算出錯的可能性,爲什麼會這樣,並且有沒有任何機制可以阻止CPU內部的錯誤答案?正確的算法可能會給出錯誤的結果嗎?
0
A
回答
1
有幾種可能性:
操作CPU規範之外可能導致不穩定的行爲(如過多的熱量,過多的電壓)
如果一箇中斷觸發在非原子操作的中間,並且中斷修改了結果,可能會發生奇怪的行爲。 (例如:如果你在8位處理器上試圖執行16位操作,也許你計算的是
A * B
,但是你有一個計時器,在計算結果的中途觸發並改變值A
,這真的被認爲是軟件錯誤,不是故障。總是有cosmic rays。芯片是如此之小,這些天,你真的不能責怪他們的任何問題,但他們是一個問題,如果你有一個多年的自治系統。
至於預防故障,在太空競賽期間,發射計算機使用triple-redundant logic驗證每個計算。STMicroel ectronics擁有一系列容錯的雙核微控制器,它們使用相同的代碼運行兩個內核,如果任一內核不同意,則會出現故障情況。
+0
很棒的概述。 – probablyup
相關問題
- 1. 算術給出不正確的結果
- 2. 排序算法給出錯誤結果
- 3. 如果我輸入錯誤的dos命令,shellexecute會給出正確的結果
- 4. Bin Fu的算法實現沒有給出正確的結果
- 5. Dijkstra的算法實現給出了不正確的結果
- 6. 功能給出了錯誤的結果
- 7. 算術運算給出不正確的結果
- 8. 舍入錯誤在DFT中給出不正確的結果?
- 9. 錯誤地使用array_multisort()給出正確的結果?
- 10. 多邊形算法中的點有時會給出錯誤的結果
- 11. vsize給數字給出正確的結果嗎?
- 12. 整數作爲SQL別名不會錯誤,但給出不正確的結果
- 13. 算法構建DeBruijn圖給出了錯誤的結果
- 14. NsNumberFormatter沒有給出正確的結果
- 15. DiracDelta沒有給出正確的結果
- 16. dateByAddingTimeInterval:給出的結果不正確
- 17. mySQL給出不正確的結果
- 18. Xpath沒有給出正確的結果
- 19. Linregress給出不正確的結果
- 20. BigDecimal.Divide給出的結果不正確
- 21. hitTestPoint沒有給出正確的結果
- 22. Java BoxLayout給出不正確的結果
- 23. os.path.join給出不正確的結果
- 24. DateUtils.getRelativeTimeSpanString沒有給出正確的結果
- 25. 爲什麼php str_replace與多個數組給出錯誤的結果,但for循環給出正確的結果?
- 26. 模運算符沒有給出正確的結果
- 27. str_replace給出錯誤結果
- 28. Math.cos()給出錯誤結果
- 29. tseries:get.hist.quote()給出錯誤結果
- 30. Karatsuba算法不正確的結果
有趣的問題,雖然我不確定它是否適合[so],也許[su]或[electronics.se]會更合適。但是它似乎與[(When)硬件,尤其是CPU)是否提供了錯誤的結果/(與其緊密相關)/(與之密切相關)(http://stackoverflow.com/q/2566043)。 – Dukeling
問題的標題讓我懷疑我們是否正在前往巴貝吉的報價:「有兩次我被問過,'請問巴貝奇先生,如果你把錯誤的數字放進機器,會得出正確的答案嗎?我不能正確地理解可能引發這樣一個問題的那種混淆思想。「 :-) –