第五章 标量处理机

  在图5.18中,初始冲突向量101010右移一位之后得到010101,两数作"按位或"运算101100∨010101=111111,11111是一个新的冲突向量,在初始冲突向量101010与新形成的冲突向量111111之间用一条带箭头的线连接,并在带箭头的线旁边注上数字1,表示初始冲突向量是经过一次右移产生的冲突向量111111。同样,初始冲突向量经过3次右移后再与原来的初始冲突向量进行"按位或"运算000101∨101010=101111,在初始冲突向量101010与新形成的冲突向量101111之间用一条带箭头的线连接,并在带箭头的线旁边注上数字3。初始冲突向量经过5次右移后再与原来的初始冲突向量进�"按位或"运算000001∨101010=101011,在初始冲突向量101010与新形成的冲突向量101011之间用一条带箭头的线连接,并在带箭头的线旁边注上数字5。初始冲突向量101010经过7次或大于7次的逻辑右移后再与原来的初始冲突向量进行"按位或"运算,结果必然还是初始冲突向量本身,在图5.18中用一条从初始冲突向量出发又指向它自己的弧形线表示,并在弧形线内标注数字7*,"7*"的意思是大于或等于7。至此,初始冲突向量已经全部处理完成。对于新形成的3个冲突向量111111、101111和101011也要采用与初始冲突向量相同的方法进行处理。冲突向量111111经过7次或大于7次的右移后与初始冲突向量进行"按位或"运算,又回到初始冲突向量,因此,在图5.18中用一条弧形线从冲突向量111111连向初始冲突向量101010,并在弧形线旁标注数字7*。冲突向量101111经过5次右移后与初始冲突向量进行"按位或"运算000001∨101010=101011,由于冲突向量101011已经存在,只要在冲突向量101111与101011之间用一条带箭头的线连接,并在带箭头的线旁边注上数字5。同样,冲突向量101011经过3次右移后与初始冲突向量进行"按位或"运算000101∨101010=101111,由于冲突向量101111也已经存在,只要在冲突向量101111与101011之间用一条带箭头的线连接,并在带箭头的线旁边注上数字3,同样,该冲突向量101011经过5次右移后与初始冲突向量进行"按位或"运算000001∨101010=101011,由于结果101011与冲突向量本身相等,只要在冲突向量101011旁用一条指向它自己的弧线,并在弧线的箭头旁边注上数字5。另外,冲突向量101111和101011经过7次或大于7次的右移后与初始冲突向量进行"按位或"运算,又回到初始冲突向量,因此,分别用两条弧形线从这两个中间冲突向量连向初始冲突向量101010,并在弧形线旁标注数字7*。处理结果如图5.18所示。


图5.18 非线性流水线的状态图