下面这个程序中,包含有跳转指令:
指令在普通 Cache上存放的位置根据程序地址决定,指令这样存储:
而在Trace Cache中,指令的存储方式如下:
在P4中,一个 Trace Cache line...指令的调度(Schedule)是乱序执行内核的核心,调度器根据uop操作数的准备情况和执行单元的准备情况决定uop什么时候开始执行。内存的访问和ALU指令的运算分别放在不同的队列中。...ALU( double speed)表示 Exec Port每半个Cycle就能分派1个简单的ALU uop,于是在最理想的情况下, Exec Port0和 Exec Port 11每个 Cycle分别发射两条...不过这只是理论上的情况,实际情况由于指令的依赖性,远远达不到6条uoop并行。...实时上,处理器流水线每个阶段能并行处理的最大指令数都不一样,如 Trace Cache一个 Cycle输出3条uop,因此 Intel处理器几乎在每个阶段都有 Buffer来隔离它们之间的速率偏差。