Optimization 运行程序的动态优化

Optimization 运行程序的动态优化,optimization,dynamic,assembly,hardware,hardware-acceleration,Optimization,Dynamic,Assembly,Hardware,Hardware Acceleration,有人告诉我,运行程序会生成用于优化重复指令的概率数据。 例如,如果一个“if-then-else”控制结构的计算结果为真8/10次,那么下次计算“if-then-else”语句时,条件为真的可能性为80%。假设结果为真,此统计信息用于提示硬件将适当的数据加载到寄存器中。目的是加快这一进程。如果语句的计算结果为TRUE,则数据已加载到相应的寄存器。如果该语句的计算结果为FALSE,则加载其他数据,并将其简单地写在“更有可能”的决定上。 我很难理解概率计算如何不超过它试图改进的决策的性能成本。这是真

有人告诉我,运行程序会生成用于优化重复指令的概率数据。
例如,如果一个“if-then-else”控制结构的计算结果为真8/10次,那么下次计算“if-then-else”语句时,条件为真的可能性为80%。假设结果为真,此统计信息用于提示硬件将适当的数据加载到寄存器中。目的是加快这一进程。如果语句的计算结果为TRUE,则数据已加载到相应的寄存器。如果该语句的计算结果为FALSE,则加载其他数据,并将其简单地写在“更有可能”的决定上。
我很难理解概率计算如何不超过它试图改进的决策的性能成本。这是真的吗?它是否发生在硬件级别?这个有名字吗?
我似乎可以找到有关该主题的任何信息。

完成了。这叫做分支预测。成本是不小的,但它是由专用硬件处理的,因此成本几乎完全是额外的电路——它不会影响执行代码所需的时间

这意味着真正的成本将是失去的机会——也就是说,如果有其他方法设计CPU,将大量的电路用于其他目的,并从中获得更多。我的直接猜测是答案通常是否定的——就投资回报而言,分支预测通常相当有效