推测执行
编辑预测执行是一种优化技术,其中计算机系统执行一些可能不需要的任务。 在知道是否实际需要之前完成工作,以防止在知道需要之后才进行工作而导致的延迟。 如果最终发现不需要该工作,则该工作所做的大部分更改将被还原,结果将被忽略。
目标是在有额外资源可用时提供更多并发性。 这种方法用于各种领域,包括流水线处理器中的分支预测、利用值局部性的值预测、预取内存和文件以及数据库系统中的乐观并发控制。
概览
编辑现代流水线微处理器使用推测执行来降低条件分支指令的成本,使用基于分支执行历史预测程序执行路径的方案。 为了提高计算机资源的性能和利用率,可以将指令调度在尚未确定需要执行指令的时间,在分支之前。
变体
编辑推测计算是一个相关的早期概念。
急切执行
Eager Execution 是推测执行的一种形式,条件分支的两边都被执行; 但是,只有当谓词为真时才会提交结果。 在资源无限的情况下,eager execution在理论上将提供与完美分支预测相同的性能。 在资源有限的情况下,应谨慎使用 Eager Execution,因为随着 Eagerly Executive 的每一级分支,所需资源的数量呈指数级增长。
预测执行
预测执行是推测执行的一种形式,其中预测某些结果并且执行沿着预测路径进行,直到知道实际结果。 如果预测为真,则允许提交预测的执行; 但是,如果预测错误,则必须展开并重新执行执行。 常见的形式包括分支预测器和内存依赖预测。 广义形式有时称为值预测。
相关概念
编辑惰性执行
懒惰执行与急切执行相反,不涉及推测。 将推测执行合并到 Haskell 编程语言(一种惰性语言)的实现中是当前的研究课题。
Eager Haskell 是该语言的一种变体,是围绕推测执行的思想设计的。
安全漏洞
编辑从 2017 年开始,在通用处理器架构上的推测执行实现中发现了一系列安全漏洞,这些漏洞有效地实现了特权提升。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/196091/