This document summarizes an approach to instruction level parallelism using prediction by partial matching (PPM) branch prediction. It proposes a hybrid PPM-based branch predictor that uses both local and global branch histories. The two predictors are combined using a neural network. Key aspects of the implementation include:
1. Using local and global history PPM predictors and combining their predictions with a neural network.
2. Enhancements to the basic PPM approach like program counter tagging, efficient history encoding using run-length encoding, tracking pattern bias, and dynamic pattern length selection.
3. Details of the global history PPM predictor including the use of tables and linked lists to store patterns of different lengths and handle collisions