UCSC-CRL-01-08: THE DYNAMIC CONDITIONAL EXECUTION IN A MULTIPATH CONTROL INDEPENDENT ARCHITECTURE

06/01/2001 09:00 AM
Computer Engineering
On-chip large tables allow to record history of past branches to later use it to predict the outcome of future branches. Even though branch predictors reach a good performance, misprediction penalty and cache alignment problems still represent a limit for performance. Our analysis brings a new insight into branches. We show that some techniques can be applied in order to take advantage of locality. We then present an analysis of 18 benchmarks of the SPEC95 suite and we show that techniques like multipath execution can be implemented with no significant impact in the instruction cache as previous works were concerned about. We also present a concept called DCE - Dynamic Conditional Execution. DCE allows to fetch multiples paths within one single cache access, single pass, when certain conditional branches are found. These paths can be conditionally executed using multipath techniques, reducing misprediction penalties. Because DCE takes advantage of locality features, cache misalignment effects can be reduced as well. Furthermore, control independence may be exploited in order to avoid to squash useful work when mispredictions are detected. Thus, DCE improves the benefit of multipath execution and speculation as a form to reduct penalties associated with control flow dependencies.

UCSC-CRL-01-08