Automated Design of Finite State Machine Predictors

Timothy Sherwood and Brad Calder

UCSD Techreport, CS2000-0656, June 2000


Finite State Machines (FSM) are a fundamental building block in computer architecture, and are used to control and optimize all types of prediction and speculation, now even in the embedded space. They are used for branch prediction, cache replacement policies, and confidence estimation and accuracy counters for a variety of optimizations.

In this paper, we present a framework for automated design of small FSM predictors for general purpose and customized processors. Our approach can be used to automatically generate small FSM predictors to perform well over a suite of applications for a general purpose processor, or tailored to a specific application, or even a specific instruction for a customized processor. We evaluate the performance of automatically generating FSM predictors for branch prediction and confidence estimation for value prediction.