推測執行
編輯預測執行是一種優化技術,其中計算機系統執行一些可能不需要的任務。 在知道是否實際需要之前完成工作,以防止在知道需要之后才進行工作而導致的延遲。 如果最終發現不需要該工作,則該工作所做的大部分更改將被還原,結果將被忽略。
目標是在有額外資源可用時提供更多并發性。 這種方法用于各種領域,包括流水線處理器中的分支預測、利用值局部性的值預測、預取內存和文件以及數據庫系統中的樂觀并發控制。
概覽
編輯現代流水線微處理器使用推測執行來降低條件分支指令的成本,使用基于分支執行歷史預測程序執行路徑的方案。 為了提高計算機資源的性能和利用率,可以將指令調度在尚未確定需要執行指令的時間,在分支之前。
變體
編輯推測計算是一個相關的早期概念。
急切執行
Eager Execution 是推測執行的一種形式,條件分支的兩邊都被執行; 但是,只有當謂詞為真時才會提交結果。 在資源無限的情況下,eager execution在理論上將提供與完美分支預測相同的性能。 在資源有限的情況下,應謹慎使用 Eager Execution,因為隨著 Eagerly Executive 的每一級分支,所需資源的數量呈指數級增長。
預測執行
預測執行是推測執行的一種形式,其中預測某些結果并且執行沿著預測路徑進行,直到知道實際結果。 如果預測為真,則允許提交預測的執行; 但是,如果預測錯誤,則必須展開并重新執行執行。 常見的形式包括分支預測器和內存依賴預測。 廣義形式有時稱為值預測。
相關概念
編輯惰性執行
懶惰執行與急切執行相反,不涉及推測。 將推測執行合并到 Haskell 編程語言(一種惰性語言)的實現中是當前的研究課題。
Eager Haskell 是該語言的一種變體,是圍繞推測執行的思想設計的。
安全漏洞
編輯從 2017 年開始,在通用處理器架構上的推測執行實現中發現了一系列安全漏洞,這些漏洞有效地實現了特權提升。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/196091/