Conditional Branch
The BCND (conditional branch) is a 2-word instruction. The conditions for the
branch are not stable until the fourth cycle of the branch instruction pipeline
execution, because the previous instruction must have completely executed
for the accumulators status bits to be accurate. Therefore, following the
branch, the pipeline controller stops the decode of instructions until the conditions
are valid. If the conditions defined in the operands of the instruction are
met, the PC is loaded with the second word and the CPU starts filling the pipeline
with instructions at the branch address. Because the pipeline has been
flushed, the branch instruction has an effective execution time of four cycles
if the branch is taken. If, however, any of the conditions are not met, the pipeline
controller allows the next instruction (already fetched) to be decoded. This
means that if the branch is not taken, the effective execution time of the branch
is two cycles.
