A data processing system with a microprocessor. The microprocessor has an instruction
execution pipeline including fetch and decode stages and several functional execution
units. Fetch packets contain a plurality of instruction words. Execute packets
include a plurality of instruction words that can be executed in parallel by two
or more execution units. An execution packet can span two or more fetch packets.
A predetermined bit in each instruction marks whether the next instruction is executed
in parallel with the current instruction. Instructions in an execute packet are
dispatched to appropriate functional execution units based on instruction type.
Upon a branch into an execute packet instructions at memory addresses before the
branch location are not executed in parallel with instructions following the branch location.