DocumentCode
2997623
Title
Reducing fetch architecture complexity using procedure inlining
Author
Santana, Oliverio J. ; Ramirez, Alex ; Valero, Mateo
Author_Institution
Univ. Politecnica de Catalunya, Barcelona, Spain
fYear
2004
fDate
15 Feb. 2004
Firstpage
97
Lastpage
106
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;
fLanguage
English
Publisher
ieee
Conference_Titel
Interaction between Compilers and Computer Architectures, 2004. INTERACT-8 2004. Eighth Workshop on
Print_ISBN
0-7695-2061-8
Type
conf
DOI
10.1109/INTERA.2004.1299514
Filename
1299514
Link To Document