DocumentCode :
1992833
Title :
Instruction overhead and data locality effects in superscalar processors
Author :
Annavaram, Murali ; Tyson, Gary S. ; Davidson, Edward S.
Author_Institution :
Dept. of Electr. Eng. & Comput. Sci., Michigan Univ., Ann Arbor, MI, USA
fYear :
2000
fDate :
2000
Firstpage :
95
Lastpage :
100
Abstract :
To reduce software development and maintenance costs, programmers are increasingly using object oriented programming languages, such as C++, and relying on highly flexible data structures, such as linked lists. Object oriented programming languages provide features that help manage complex software systems, but object oriented programs tend to suffer increased instruction counts, e.g. due to generalized class implementations and many more calls to small functions. Using linked data structures increases programming flexibility by allowing easy addition and deletion of nodes, and by dynamically allocating memory to satisfy applications that use large memory space. However, successive elements in linked data structures may be allocated noncontinuously in memory, leading to poor spatial locality for list traversals which in turn increases cache misses and reduces performance. This paper evaluates the impact of both the increased instruction overhead and poor spatial locality on superscalar processor performance as issue width increases. We show that underutilized resources of wide-issue processors can partially alleviate the impact of the instruction overhead. However, poor locality tends to cause more performance degradation as the processor issue width increases. Finally we show that the spatial locality of some programs can be improved by using a vector representation to replace linked list structures. Vectors exhibit better spatial locality during list traversals, but suffer from instruction overhead and memory copy overhead when nodes are added to and deleted from the structure
Keywords :
data structures; object-oriented programming; software engineering; software performance evaluation; C++; cache misses; data locality effects; dynamic memory allocation; flexible data structures; instruction overhead effects; linked lists; list traversals; memory copy overhead; node addition; node deletion; object oriented programming languages; programming flexibility; software development cost; software maintenance cost; superscalar processors; underutilized resource; vector representation; wide-issue processors; Computer science; Costs; Data engineering; Data structures; Degradation; Libraries; Operating systems; Programming profession;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Performance Analysis of Systems and Software, 2000. ISPASS. 2000 IEEE International Symposium on
Conference_Location :
Austin, TX
Print_ISBN :
0-7803-6418-X
Type :
conf
DOI :
10.1109/ISPASS.2000.842287
Filename :
842287
Link To Document :
بازگشت