Title :
Reducing fetch architecture complexity using procedure inlining
Author :
Santana, Oliverio J. ; Ramirez, Alex ; Valero, Mateo
Author_Institution :
Univ. Politecnica de Catalunya, Barcelona, Spain
Abstract :
Fetch engine performance is seriously limited by the branch prediction table access latency. This fact has lead to the development of hardware mechanisms, like prediction overriding, aimed to tolerate this latency. However, prediction overriding requires additional support and recovery mechanisms, which increases the fetch architecture complexity. In this paper, we show that this increase in complexity can be avoided if the interaction between the fetch architecture and software code optimizations is taken into account. We use aggressive procedure inlining to generate long streams of instructions that are used by the fetch engine as the basic prediction unit. We call instruction stream to a sequence of instructions from the target of a taken branch to the next taken branch. These instruction streams are long enough to feed the execution engine with instructions during multiple cycles, while a new stream prediction is being generated, and thus hiding the prediction table access latency. Our results show that the length of instruction streams compensates the increase in the instruction cache miss rate caused by inlining. We show that, using procedure inlining, the need for a prediction overriding mechanism is avoided, reducing the fetch engine complexity.
Keywords :
cache storage; instruction sets; memory architecture; program compilers; storage management; branch prediction table access latency; execution engine; fetch architecture complexity; fetch engine complexity; fetch engine performance; instruction cache miss; instruction stream; multiple cycles; prediction overriding; prediction unit; procedure inlining; recovery mechanisms; software code optimizations; stream prediction generation; Bandwidth; Cache storage; Clocks; Computer architecture; Delay; Engines; Feeds; Frequency; Hardware; Parallel processing;
Conference_Titel :
Interaction between Compilers and Computer Architectures, 2004. INTERACT-8 2004. Eighth Workshop on
Print_ISBN :
0-7695-2061-8
DOI :
10.1109/INTERA.2004.1299514