1999
DOI: 10.1007/978-3-540-49051-7_18
|View full text |Cite
|
Sign up to set email alerts
|

Virtual Cache Line: A New Technique to Improve Cache Exploitation for Recursive Data Structures

Abstract: Abstract. Recursive data structures (lists, trees, graphs, etc.) are used throughout scientific and commercial software. The common approach is to allocate storage to the individual nodes of such structures dynamically, maintaining the logical connection between them via pointers. Once such a data structure goes through a sequence of updates (inserts and deletes), it may get scattered all over memory yielding poor spatial locality, which in turn introduces many cache misses. In this paper we present the new c… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
21
0

Year Published

2002
2002
2017
2017

Publication Types

Select...
6
1
1

Relationship

1
7

Authors

Journals

citations
Cited by 13 publications
(21 citation statements)
references
References 17 publications
0
21
0
Order By: Relevance
“…This is a sparse array structure which allows for efficient insertion and deletion of elements while preserving locality. A similar approach is taken by Rubin et al [27], who describe a data structure that maintains groups of adjacent linked list nodes in such a way that they are loaded into a cache line simultaneously. This concept is called virtual cache lines.…”
Section: Related Workmentioning
confidence: 99%
“…This is a sparse array structure which allows for efficient insertion and deletion of elements while preserving locality. A similar approach is taken by Rubin et al [27], who describe a data structure that maintains groups of adjacent linked list nodes in such a way that they are loaded into a cache line simultaneously. This concept is called virtual cache lines.…”
Section: Related Workmentioning
confidence: 99%
“…Chilimbi (1999) suggested packing the homogeneous nodes of a BST into contiguous blocks of memory. Rubin et al (1999) proposed a similar idea for linked lists. These techniques do not eliminate pointers, but improve spatial access locality by grouping nodes that are likely to be accessed contemporaneously (Askitis, 2007).…”
Section: Introductionmentioning
confidence: 99%
“…However, when the code is too complex to be transformed-a situation common in programs that manipulate pointer-based data structures-one must resort to transforming the layout of data structures, improving spatial locality. Many data-layout optimizations have been proposed [3,4,7,8,9,11,15,16,21,23,24], with their specific goals ranging from reordering structure fields [7] to object inlining [11].…”
Section: Introductionmentioning
confidence: 99%
“…The insufficiency of static analysis information has been recognized by existing data-layout optimizations, which are all either profile-guided or exploit programmer-supplied application knowledge [3,7,8,9,11,15,16,21,23,24]. Although many of these techniques manage to sidestep the problem of analyzing the program's memory behavior by observing it at run-time, they are still fundamentally limited by the hard problem of synthesizing a good layout for the observed behavior [20].…”
Section: Introductionmentioning
confidence: 99%