Summary: | The manual design of microarchitecture is labour-intensive and unlikely to generate good counterintuitive solutions. A designer, guided solely by intuition, is forced to manipulate many interdependent parameters by hand, introducing simplifying assumptions that artificially limit the potential of the architecture. The sheer number of possible configurations precludes an exhaustive exploration of the entire search space. Evolutionary computation is a domain-independent, highly scalable technique capable of producing innovative designs with reasonable computational cost. === This study presents a software framework for designing microarchitecture. As a case study, a genetic algorithm is used to automatically synthesize two-level indirect branch predictors. The evolved designs routinely deliver enhanced performance as compared to the equivalent, highly optimized structures created by hand. The primary drawback associated with this method is the excessive design complexity induced by unconstrained evolution. Several methods of incorporating simplicity of design into the evolutionary process are investigated. A unified fitness metric, combining both simplicity and performance, leads to the evolution of simple and effective designs.
|