推测执行

编辑
本词条由“匿名用户” 建档。

预测执行是一种优化技术,其中计算机系统执行一些可能不需要的任务。在知道是否实际需要之前完成工作,以防止在知道需要之后才进行工作而导致的延迟。如果最终发现不需要该工作,则该工作所做的大部分更改将被还原,结果将被忽略。 目标是在有额外资源可用时提供更多并发性。这种方法用于各种领域,包括流水线处理器中的分支预测、利用值局部性的值预测、预取内存和文件以及数据库系统中的乐观并发控制。 推测多线程是推测执行的...

推测执行

编辑

预测执行是一种优化技术,其中计算机系统执行一些可能不需要的任务。 在知道是否实际需要之前完成工作,以防止在知道需要之后才进行工作而导致的延迟。 如果最终发现不需要该工作,则该工作所做的大部分更改将被还原,结果将被忽略。

目标是在有额外资源可用时提供更多并发性。 这种方法用于各种领域,包括流水线处理器中的分支预测、利用值局部性的值预测、预取内存和文件以及数据库系统中的乐观并发控制。

推测多线程推测执行的一个特例。

概览

编辑

现代流水线微处理器使用推测执行来降低条件分支指令的成本,使用基于分支执行历史预测程序执行路径的方案。 为了提高计算机资源的性能和利用率,可以将指令调度在尚未确定需要执行指令的时间,在分支之前。

变体

编辑

推测计算是一个相关的早期概念。

急切执行

Eager Execution 是推测执行的一种形式,条件分支的两边都被执行; 但是,只有当谓词为真时才会提交结果。 在资源无限的情况下,eager execution在理论上将提供与完美分支预测相同的性能。 在资源有限的情况下,应谨慎使用 Eager Execution,因为随着 Eagerly Executive 的每一级分支,所需资源的数量呈指数级增长。

预测执行

预测执行是推测执行的一种形式,其中预测某些结果并且执行沿着预测路径进行,直到知道实际结果。 如果预测为真,则允许提交预测的执行; 但是,如果预测错误,则必须展开并重新执行执行。 常见的形式包括分支预测器和内存依赖预测。 广义形式有时称为值预测。

相关概念

编辑

惰性执行

懒惰执行与急切执行相反,不涉及推测。 将推测执行合并到 Haskell 编程语言(一种惰性语言)的实现中是当前的研究课题。

推测执行

Eager Haskell 是该语言的一种变体,是围绕推测执行的思想设计的。

安全漏洞

编辑

从 2017 年开始,在通用处理器架构上的推测执行实现中发现了一系列安全漏洞,这些漏洞有效地实现了特权提升。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/196091/

(1)
词条目录
  1. 推测执行
  2. 概览
  3. 变体
  4. 急切执行
  5. 预测执行
  6. 相关概念
  7. 惰性执行
  8. 安全漏洞

轻触这里

关闭目录

目录