3、设置两个指令缓冲栈
  一种比较有效的方法是再增加一个指令目标缓冲栈。当指令分析器分析到条件转移指令时,按照转移成功的方向预取指令到这个指令目标缓冲栈中。原先的指令缓冲栈仍然按照转移不成功的方向继续预取指令。当指令执行部件产生转移条件码时,如果转移不成功,则继续分析原先指令缓冲栈中指令,如果转移成功,则分析新增设的指令目标缓冲栈中的指令。

  IBM 370/165机就采用了两个指令缓冲栈。其中,指令目标缓冲栈AIB的缓冲深度为4。另外,为了简化对两个指令缓冲栈的控制,在转移成功时,交换指令目标缓冲栈AIB和原先的指令缓冲栈IB中内容,使指令分析器仍然从指令缓冲栈IB中的取指令。