1999
DOI: 10.1145/330249.330254
|View full text |Cite
|
Sign up to set email alerts
|

Procedure placement using temporal-ordering information

Abstract: Instruction cache performance is important to instruction fetch efficiency and overall processor performance. The layout of an executable has a substantial effect on the cache miss rate and the instruction working set size during execution. This means that the performance of an executable can be improved by applying a code-placement algorithm that minimizes instruction cache conflicts and improves spatial locality. We describe an algorithm for procedure placement, one type of code placement, that significantly… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
33
0

Year Published

2001
2001
2009
2009

Publication Types

Select...
5
3

Relationship

0
8

Authors

Journals

citations
Cited by 77 publications
(33 citation statements)
references
References 31 publications
0
33
0
Order By: Relevance
“…The goal of our work was to find a low-overhead technique to provide moderate improvement, not a high-overhead technique that provides the best possible improvement. Like Gloy, we also realized that even small changes can make a difference in performance [9].…”
Section: Dynamic Round-robin Schedulingmentioning
confidence: 91%
See 1 more Smart Citation
“…The goal of our work was to find a low-overhead technique to provide moderate improvement, not a high-overhead technique that provides the best possible improvement. Like Gloy, we also realized that even small changes can make a difference in performance [9].…”
Section: Dynamic Round-robin Schedulingmentioning
confidence: 91%
“…This can be used as a compile time optimization to effectively reduce cache misses. Procedure placement using temporal ordering was improved upon by Gloy and Smith [3], using profile-driven code-placement with a weighted call graph to derive an improved procedure ordering.…”
Section: Related Workmentioning
confidence: 99%
“…Examples of these techniques include code compression to reduce the memory bus traffic [3][4] [5], efficient cache management strategies such as branch alignment [7] [8] and code placement [6] [9], scratchpad memories [10] and the addition of tiny memories on top of existing cache memories (loop cache [11] [12] and filter cache [13]). …”
Section: Introductionmentioning
confidence: 99%
“…They differ based on: 1) the granularity assumed by the algorithm, and 2) the conflict model used to guide the memory placement. Some of them apply to code [7,10,4,8], while others to data [2,11,3]. In the past, the improvement of cache memory performance was the main issue [7,10,4,2], today we start to see that other kind of memories, such as DRAM, may have a significant role in the optimization of system performance as well [3].…”
Section: Related Workmentioning
confidence: 99%
“…For code placement, procedures and basic blocks are by far the most natural code boundaries which have been considered [7,4]; however, some results refer to more complex code structures such as basic block traces [10] or global control-flow graphs where the procedure boundaries are disregarded [8]. Global variables, arrays and local variables allocated in the program stack are instead the typical objects considered by data placement algorithms [2,11,3].…”
Section: Related Workmentioning
confidence: 99%