比如像图1寻样处理A,B,C,D,E,F,G,H数据指令,如果D的数据是E+F的结果,那么D的数据在进行E和F处理之后如果不结束就无法进行处理。由于处理器的运算器是预备了复数的,因此如果等待E+F演算结束,那么进行数据D处理器的演算器只有进行等待而无法有效利用。
【图1】In-Order执行方式和Out-Of-Order执行方式
在这里,会无视程序上编写好的运算顺序,因此D的计算要推迟,那么就会处理以后的计算任务,这样就是In-Order和Out-Of-Order进行连续不断得进行运算处理。相比而言Out-Of-Order执行效率会更高,而这也是P6(Pentium Pro/Pentium II/PentiumIII)以后的IA32处理器产品所一直支持的。
●利用HT技术弥补In-Order执行
使用Out-Of-Order方式最大的效果就是可以有效提升运算执行效率,不过这也将会成为弱点。因为为了实现Out-Of-Order微处理器架构将会相当复杂。而这也会导致处理器尺寸的增加和功耗的增加,因此P6,NetBurst,Core微处理器架构就在功耗上要更高一些。而正是因为这个原因,Silverthorne则基于的是In-Order微架构这种更加简单的构造。这样除了可以尽可以减少执行单元的尺寸以外,还可以有效控制处理器的尺寸。不过In-Order方式如果发生像前面介绍的那种数据依存关系,那么处理器内部资源利用率就会下降从而导致性能的降低。不过由于Silverthorne导入了HT技术之后可以有效提高使用效率。通过HT技术,在操作系统里就会好像变成了双核心处理器,而这也可以进行多线程处理。总之,如果要通过In-Order让处理器内部变得更简单,那就就需要通过HT技术弥补执行效率的降低,那么这就是Silverthorne能够实现1.8GHz 2W以及900MHz0.6W超低功耗的原因吗?