ZNO Frontend
The front-end of a modern microprocessor is mostly concerned with keeping a constant stream of instructions moving into the machine.
Branch Prediction attempts to predict the direction/target of individual control-flow instructions by caching branch target addresses and tracking the history of previous branch outcomes.
Next-Fetch Prediction attempts to predictively guide instruction fetch by caching branch predictions and associating them with the names of previously-fetched blocks.
Instruction Fetch retrieves instructions from memory.
Instruction Predecode extracts immediate data/control bits from instructions, and attempts to discover control-flow instructions early in the pipeline.
Instruction Decode transforms instructions into macro-ops.