Q
猜測與預測的區別
9
A
回答
11
分支預測由處理器完成,試圖確定在條件跳轉之後執行的位置將繼續,以便它可以從內存中讀取下一條指令。
推測執行更進一步,並確定執行下一條指令的結果。如果分支預測正確,則使用結果,否則將被丟棄。
請注意,即使代碼中沒有實際的條件分支,也可以應用推測執行。處理器可以從幾個通常會連續執行的指令中確定結果,但是可以通過例如算術溢出中斷來停止執行。
0
嗯,我是編程和計算機科學的小老頭,但這是我的結論。這兩種'技術'的目的是保持管道充滿,防止浪費資源。當處理器激發條件測試指令時,通常您會希望它在進入下一條指令之前等待條件已經過測試。
在推測性執行中,無論如何希望條件測試是TRUE而不是拖延管道並傷害資源,您都要執行指令。否則,你只是放棄結果。
在分支預測中,您會更進一步,根據過去的條件測試結果(您預測程序將分支到的方向)來預測條件是否爲TRUE。
希望能夠解決問題。從這裏得到了這個學期的信息和一門課程。 http://www.pcguide.com/ref/cpu/arch/int/featSpeculative-c.html
0
如果你想推測性地做某件事情,你可以通過準確預測推測哪條路徑來增加它有用的機會。
在某些情況下,預測是微不足道的(例如預測加載/存儲不會出現段錯誤)。在其他情況下,這很難(分支預測)。
在任何一種情況下,如果發生異常,您需要能夠恢復/丟棄推測性計算。
是可能的推測沒有預測,到推測的方式從分支的兩個方向執行指令,並只保留結果從後來發現已經在正確的道路線。
當前的硬件沒有使用這個分支,但同樣的事情發生在像x86指令的並行解碼這樣的小得多的本地規模上。解碼器在每個可能的指令邊界開始解碼,並且只有在先前指令的解碼確定長度時才確定哪個開始位置是正確的。
相關問題
- 1. jQuery Ajax猜測類型/預測問題
- 2. Vowpal Wabbit原始預測(-r)和預測之間的區別(-p)
- 3. 「預測」包中模擬()和預測()之間的區別
- 4. 與類的猜測遊戲
- 5. 在PHP中猜測用戶的時區
- 6. 猜測技術
- 7. R預測區間
- 8. Java猜測遊戲(特別是JOptionPane)
- 9. 預測與qlickview
- 10. 猜測模式:猜測MySQL數據庫中的日期模式
- 11. Python猜測我的號碼(反向號碼猜測)UnboundLocalError
- 12. 功能測試與系統測試的區別?
- 13. 驗收測試與系統測試之間的區別?
- 14. 集成測試與rspec的正常測試有什麼區別?
- 15. 猜測隨機數
- 16. 猜測列表Python
- 17. Python猜測遊戲
- 18. Java字段猜測
- 19. 蟒蛇數猜測
- 20. TALEND猜測模式
- 21. Python猜測遊戲
- 22. 猜測遊戲Java
- 23. Javascript猜測遊戲
- 24. Java中的測驗(平均猜測)
- 25. C#猜測遊戲與定製按鈕
- 26. 猜測遊戲 - 如何記住猜測範圍
- 27. 隨機數猜測遊戲 - 限制猜測次數
- 28. 彩色猜測game.How猜測後停止循環是正確
- 29. 猜數字遊戲。猜測次數。
- 30. Java的猜測遊戲