Last update: Thu Apr 12 03:37:15 MDT 2012
Top |
Symbols |
Numbers |
Math |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z
BibTeX entry
@Article{Calder:1995:CSB,
author = "Brad Calder and Dirk Grunwald and Donald Lindsay and
James Martin and Michael Mozer and Benjamin G. Zorn",
title = "Corpus-based static branch prediction",
journal = j-SIGPLAN,
volume = "30",
number = "6",
pages = "79--92",
month = jun,
year = "1995",
CODEN = "SINODQ",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160 (electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu May 13 12:37:27 MDT 1999",
bibsource = "http://www.acm.org/pubs/contents/proceedings/pldi/207110/index.html",
URL = "http://www.acm.org:80/pubs/citations/proceedings/pldi/207110/p79-calder/",
abstract = "Correctly predicting the direction that branches will
take is increasingly important in today's wide-issue
computer architectures. The name {\em program-based\/}
branch prediction is given to static branch prediction
techniques that base their prediction on a program's
structure. In this paper, we investigate a new approach
to program-based branch prediction that uses a body of
existing programs to predict the branch behavior in a
new program. We call this approach to program-based
branch prediction, {\em evidence-based static
prediction\/}, or ESP. The main idea of ESP is that the
behavior of a {\em corpus\/} of programs can be used to
infer the behavior of new programs. In this paper, we
use a neural network to map static features associated
with each branch to the probability that the branch
will be taken. ESP shows significant advantages over
other prediction mechanisms. Specifically, it is a
program-based technique, it is effective across a range
of programming languages and programming styles, and it
does not rely on the use of expert-defined heuristics.
In this paper, we describe the application of ESP to
the problem of branch prediction and compare our
results to existing program-based branch predictors. We
also investigate the applicability of ESP across
computer architectures, programming languages,
compilers, and run-time systems. Averaging over a body
of 43 C and Fortran programs, ESP branch prediction
results in a miss rate of 20\%, as compared with the
25\% miss rate obtained using the best existing
program-based heuristics.",
acknowledgement = ack-nhfb,
affiliation = "Dept. of Comput. Sci., Colorado Univ., Boulder, CO,
USA",
annote = "Published as part of the Proceedings of PLDI'95.",
classification = "C6150C (Compilers, interpreters and other
processors); C6150G (Diagnostic, testing, debugging and
evaluating systems)",
keywords = "algorithms; C programs; Compilers; Corpus-based static
branch prediction; Evidence-based static prediction;
Fortran programs; languages; Miss rate; Neural network;
New program behaviour; performance; Program structure;
Program-based branch prediction; Programming languages;
Programming styles; Run-time systems; Static feature
mapping; Wide-issue computer architectures",
subject = "{\bf D.3.4} Software, PROGRAMMING LANGUAGES,
Processors, Optimization. {\bf F.3.1} Theory of
Computation, LOGICS AND MEANINGS OF PROGRAMS,
Specifying and Verifying and Reasoning about Programs.
{\bf F.3.3} Theory of Computation, LOGICS AND MEANINGS
OF PROGRAMS, Studies of Program Constructs. {\bf D.3.4}
Software, PROGRAMMING LANGUAGES, Processors, Compilers.
{\bf D.3.2} Software, PROGRAMMING LANGUAGES, Language
Classifications, C. {\bf C.1.3} Computer Systems
Organization, PROCESSOR ARCHITECTURES, Other
Architecture Styles, Neural nets.",
thesaurus = "Computer architecture; High level languages;
Optimising compilers; System monitoring",
}
Related entries
- across,
25(6)28,
28(6)126,
28(6)278,
28(7)149,
29(11)25,
29(11)171,
29(11)286,
30(4)39,
30(6)130,
30(6)151,
30(8)199
- advantage,
25(6)9,
25(6)296,
26(4)28,
26(4)290,
27(7)116,
27(7)128,
28(6)187,
28(7)102,
29(6)107,
29(6)206,
29(6)266,
29(11)2,
29(11)38,
29(11)61,
29(11)219,
30(3)119,
30(6)151,
30(6)205,
30(11)50,
30(11)146-1
- applicability,
25(1)52,
27(7)188-1,
28(3)345,
29(6)186,
30(8)48
- ARCHITECTURES,
25(6)28,
26(6)229,
27(7)94,
27(7)188-1,
27(9)76,
27(9)85,
27(9)111,
27(9)149,
27(9)162,
27(9)175,
27(9)213,
27(9)262,
27(9)274,
27(9)285,
28(6)68,
28(6)112,
28(6)258,
29(6)36,
29(11)25,
29(11)38,
29(11)51,
29(11)61,
29(11)98,
29(11)196,
29(11)219,
29(11)232,
29(11)242,
29(11)252,
29(11)274,
31(9)2-1,
31(9)12,
31(9)26,
31(9)37,
31(9)50,
31(9)210,
31(9)279,
32(5)183,
32(5)334,
33(11)58,
33(11)159,
33(11)170,
33(11)181,
33(11)283
- associated,
25(6)66,
25(6)174,
26(6)145,
28(3)299,
28(3)367,
28(6)26,
29(6)107,
29(6)278,
29(8)22,
29(11)86,
29(11)319,
30(3)111,
30(6)301,
30(11)99,
30(11)125
- averaging,
28(6)278
- base,
27(7)311,
28(3)355,
29(11)171,
30(8)19,
30(8)68,
30(8)217,
33(12)66
- based, Corpus-,
30(6)79
- based, Program-,
28(6)300
- based, program-,
28(6)300
- behavior,
6(4)111,
6(4)159,
25(6)234,
26(6)59,
27(7)1,
27(7)12,
27(7)32,
27(7)55,
27(7)116,
28(3)69,
28(3)367,
28(3)369,
28(6)100,
28(7)44,
28(10)326,
28(10)326-1,
29(6)73,
29(11)61,
29(11)132-1,
29(11)145,
29(11)328,
30(3)35,
30(6)1,
30(6)67,
30(8)68,
30(11)20-1,
30(11)50,
30(11)70,
30(11)125,
32(10)1,
32(10)108,
33(7)27,
33(7)83,
33(11)12,
33(11)240,
34(7)35
- behaviour,
27(7)224,
29(6)278,
30(11)31
- best,
25(6)16,
25(6)92,
25(6)150,
26(4)28,
27(7)32,
27(7)283,
27(7)331,
28(7)83,
28(10)46,
29(2)44,
29(6)73,
29(11)25,
29(11)171,
29(11)252,
29(11)308,
29(11)328,
30(6)67,
30(6)151,
30(6)279,
30(8)123,
30(8)134,
30(11)88,
33(11)252
- body,
29(1)3,
29(6)135,
29(6)218,
34(8)25
- C.1.3,
26(6)229,
28(6)258
- C6150G,
25(12)85,
28(6)1,
28(6)13,
28(6)26,
28(6)46,
28(6)177,
28(7)44,
28(12)169,
29(1)37,
29(4)15,
29(6)1,
29(6)171,
29(6)196,
29(6)242,
29(6)278,
29(6)290,
29(6)302,
29(6)313,
29(9)140,
29(10)403,
29(11)122,
29(11)232,
29(12)38,
29(12)73,
30(3)1,
30(3)50,
30(3)62,
30(3)94,
30(6)67,
30(6)93,
30(6)218,
30(6)233,
30(6)258,
30(6)270,
30(6)291,
30(8)11,
30(11)20-1,
30(11)79,
30(11)88,
30(11)99,
30(11)117
- Calder, Brad,
29(11)242,
30(6)79,
32(5)171,
33(11)139,
33(11)159,
34(10)276
- compare,
25(6)234,
25(12)54,
27(7)188-1,
28(7)83,
28(8)57,
29(6)85,
29(11)12,
29(11)132-1,
30(6)13,
30(6)116,
30(8)1,
31(9)150,
33(7)51
- compared,
26(4)290,
28(7)218,
29(6)349,
29(6)349-1,
29(11)2,
30(4)13,
30(6)93,
30(6)279,
30(8)19,
30(8)123,
30(11)1,
30(11)60,
33(6)54,
33(7)83
- Corpus-based,
30(6)79
- correctly,
25(6)112,
27(7)152,
27(7)311,
29(6)302,
30(3)1,
31(5)108,
33(7)35
- Diagnostic,
25(12)85,
28(6)1,
28(6)13,
28(6)26,
28(6)46,
28(6)177,
28(7)44,
28(12)169,
29(1)37,
29(4)15,
29(6)1,
29(6)171,
29(6)196,
29(6)242,
29(6)278,
29(6)290,
29(6)302,
29(6)313,
29(9)140,
29(10)65,
29(10)403,
29(11)122,
29(11)232,
29(12)38,
29(12)73,
30(3)1,
30(3)50,
30(3)62,
30(3)94,
30(6)67,
30(6)93,
30(6)218,
30(6)233,
30(6)258,
30(6)270,
30(6)291,
30(8)11,
30(11)20-1,
30(11)79,
30(11)88,
30(11)99,
30(11)117,
31(5)249
- direction,
26(3)9,
27(9)85,
30(7)9,
30(7)9,
32(1)59,
32(1)94,
32(1)99,
32(10)162-1
- do,
24(3)34,
25(6)66,
25(6)92,
25(6)112,
25(6)127-1,
25(6)137,
25(12)85,
26(4)290,
27(7)300,
27(7)331,
28(3)347,
28(6)300,
28(7)83,
28(8)57,
29(2)44,
29(6)49,
29(6)349,
29(6)349-1,
29(8)74,
29(11)12,
29(11)51,
30(6)130,
30(6)139,
30(6)246,
30(6)279,
30(11)88,
32(9)15,
32(9)15-1,
32(10)253,
32(10)345-1,
32(10)345-5,
33(7)35,
33(10)45,
33(10)45-1
- each,
25(6)85-1,
25(6)234,
25(6)283,
26(4)290,
27(7)1,
27(7)22,
27(7)68,
27(7)82,
27(7)188-1,
27(7)212,
27(7)273,
27(7)322,
28(2)21,
28(3)299,
28(6)1,
28(6)26,
28(6)56,
28(6)90,
28(6)100,
28(6)126,
28(6)147,
28(8)90,
29(6)13,
29(6)85,
29(6)107,
29(6)171,
29(6)349,
29(6)349-1,
29(8)59,
29(8)101,
29(8)119,
29(11)61,
29(11)98,
29(11)171,
29(11)286,
29(11)297,
29(11)319,
30(3)35,
30(3)62,
30(6)23,
30(6)47,
30(6)93,
30(8)29,
30(8)80-1,
30(8)134,
30(8)189,
30(11)79,
30(11)125,
33(7)43
- effective,
25(6)53,
26(6)177,
26(6)177-1,
26(6)219,
27(9)238,
28(6)300,
28(7)229,
28(8)90,
29(6)159,
29(6)337,
29(6)337-1,
29(11)12,
29(11)76-1,
29(11)252,
29(11)328,
30(6)103,
30(6)130,
30(6)270,
30(6)301,
30(8)166,
31(5)149,
31(10)292,
31(11)28,
32(5)71,
32(5)320,
32(5)320-1,
32(7)112,
32(7)112,
32(7)264,
33(5)280,
34(7)10
- evaluating,
25(12)85,
28(6)1,
28(6)13,
28(6)26,
28(6)46,
28(6)177,
28(7)44,
28(12)169,
29(1)37,
29(4)15,
29(6)1,
29(6)171,
29(6)196,
29(6)242,
29(6)278,
29(6)290,
29(6)302,
29(6)313,
29(9)140,
29(10)65,
29(10)403,
29(11)122,
29(11)232,
29(12)38,
29(12)73,
30(3)1,
30(3)50,
30(3)62,
30(3)94,
30(6)23,
30(6)67,
30(6)93,
30(6)218,
30(6)233,
30(6)258,
30(6)270,
30(6)291,
30(8)11,
30(8)189,
30(11)20-1,
30(11)79,
30(11)88,
30(11)99,
30(11)117,
34(11)2
- existing,
27(7)22,
27(7)106,
28(3)299,
28(3)355,
28(3)359,
28(6)78-1,
28(7)13,
28(7)33,
28(7)83,
28(7)179,
29(6)107,
29(6)135,
29(6)186,
29(6)218,
29(6)230,
29(6)349,
29(6)349-1,
29(8)119,
29(11)196,
29(11)242,
29(11)308,
30(3)71,
30(3)119,
30(6)67,
30(6)301,
31(10)18,
31(12)73
- F.3.1,
30(3)13,
30(6)67,
31(5)23
- Fortran,
25(1)52,
25(6)257,
26(2)83,
26(6)145,
26(6)145-1,
27(4)11,
27(7)94,
27(7)200,
28(1)1,
28(1)72,
28(3)361,
28(6)278,
28(6)300,
28(7)13,
28(7)33,
28(7)92,
28(7)149,
29(6)107,
29(7)54,
29(11)196,
29(12)31,
30(4)61,
30(6)218,
30(7)5,
30(8)58,
30(8)102,
30(8)112,
30(8)134,
31(4)20,
31(4)20-1,
32(3)57,
32(7)13,
33(3)57,
33(8)34,
34(12)24,
34(12)24-1
- given,
25(6)28,
25(6)246,
25(6)322,
27(7)55,
27(7)188-1,
27(7)249,
28(3)149,
28(3)345,
28(3)365,
28(6)26,
28(6)126,
28(7)54-1,
28(7)102,
28(7)119,
29(6)36,
29(6)121,
29(11)308,
30(4)13,
30(6)186,
30(11)20-1,
30(11)50,
30(11)88,
34(5)z,
34(5)z-1
- Grunwald, Dirk,
27(12)71,
28(6)177,
28(7)159,
29(11)242,
30(6)79,
31(9)50,
31(9)50-1
- heuristic,
25(6)85-1,
28(6)248,
28(6)300,
29(6)36,
29(6)85,
29(9)72,
29(11)232,
30(6)67,
30(6)186,
30(8)29,
30(8)134,
31(5)1,
31(7)12,
31(7)12-1,
32(5)134,
33(7)83
- idea,
25(6)112,
25(12)93,
26(1)77,
26(6)219,
27(7)322,
28(3)1,
28(3)69,
28(3)133,
28(3)271,
28(7)83,
29(6)230,
29(8)111,
30(6)56,
30(8)39,
30(11)70,
32(10)301,
33(7)19,
33(7)27,
33(7)51
- important,
25(6)66,
25(6)209,
25(6)283,
26(6)219,
27(7)12,
27(7)212,
27(7)249,
27(7)283,
27(9)238,
27(9)285,
28(3)149,
28(6)156,
28(6)177,
28(7)44,
28(7)149,
28(7)179,
29(6)85,
29(6)206,
29(11)219,
30(3)71,
30(6)93,
30(6)218,
30(8)19,
30(8)58,
30(8)68,
30(8)112,
30(11)50,
30(11)88
- increasingly,
28(6)36,
29(6)186,
29(6)206,
29(11)110,
29(11)242
- infer,
25(6)127-1,
25(6)223,
27(7)1,
29(6)13
- investigate,
25(6)246,
29(11)25,
30(8)156
- issue, wide-,
29(11)242
- Lindsay, Donald,
30(6)79
- main,
25(6)197,
25(12)85,
28(3)359,
28(3)363,
28(8)90,
29(6)337,
29(6)337-1,
29(8)119,
29(11)12,
29(11)86,
29(11)86-1,
29(11)219,
30(11)125,
34(3)37
- map,
25(4)73,
25(6)283,
28(7)92,
29(10)301,
29(10)301,
29(11)171,
33(7)19
- mapping,
26(7)21,
27(7)1,
27(7)175,
28(1)72,
28(7)92,
29(10)176,
29(11)171,
30(3)62,
30(6)139,
30(6)205,
30(8)134,
30(11)60,
32(5)171,
32(7)168,
33(7)19,
33(11)24
- Martin, James,
30(6)79
- miss,
28(6)177,
28(6)278,
28(6)300,
29(11)12,
29(11)145,
29(11)158,
29(11)274,
29(11)328,
30(6)151,
30(6)279,
30(8)179,
30(8)189,
33(5)38,
33(11)228
- Mozer, Michael,
30(6)79
- name,
25(5)25,
25(5)95,
25(6)85-1,
27(7)235,
28(2)21,
28(3)299,
28(3)355,
29(6)159,
29(6)337,
29(6)337-1,
30(2)2,
30(11)146-1
- net,
33(3)16,
33(3)16-1,
34(1)117
- network,
25(7)11,
26(7)167,
27(7)22,
27(9)98,
27(9)111,
28(1)60,
28(7)218,
29(5)17-1,
29(8)101,
29(10)113,
29(11)2,
29(11)25,
29(11)38,
29(11)51,
29(11)183,
29(11)286,
29(11)297,
30(7)7,
30(8)207,
30(8)217,
30(10)358,
30(10)358-1,
30(11)79,
30(11)108,
30(11)134,
31(6)226,
31(9)160,
31(9)210,
31(9)222-1,
31(9)258,
32(5)320-1,
33(11)71,
33(11)92,
33(11)159,
33(11)193,
33(11)205,
34(1)86,
34(8)119,
34(8)163
- neural,
30(7)7
- obtained,
26(4)28,
27(7)128,
29(6)147,
29(11)274,
30(6)93,
30(6)205,
30(8)134,
30(11)70,
30(11)79,
30(11)99,
30(11)125
- PLDI'95.,
30(6)1,
30(6)13,
30(6)23,
30(6)32,
30(6)47,
30(6)56,
30(6)67,
30(6)93,
30(6)103,
30(6)116,
30(6)130,
30(6)139,
30(6)151,
30(6)163-1,
30(6)174,
30(6)186,
30(6)196,
30(6)205,
30(6)218,
30(6)233,
30(6)246,
30(6)258,
30(6)270,
30(6)279,
30(6)291,
30(6)301,
30(6)315
- predict,
28(6)187,
28(6)300,
29(6)73,
30(3)94,
30(6)67,
30(8)134
- predicting,
26(6)59,
27(9)85,
28(6)187,
28(6)300,
29(6)85,
30(11)1,
32(4)19
- prediction,
25(3)109,
27(9)76,
28(6)187,
28(6)300,
29(6)73,
29(6)97,
29(6)196,
29(11)122,
29(11)132-1,
29(11)232,
29(11)242,
30(6)67,
30(6)79,
30(10)108,
30(10)108-1,
30(11)1,
31(9)128,
31(9)138,
31(10)83,
33(11)170,
34(7)35,
34(8)151
- predictor,
28(6)187,
28(6)300,
29(11)145,
31(9)116,
31(9)116-1
- probability,
27(7)300,
29(6)186,
30(6)67
- PROCESSOR,
25(6)28,
26(6)229,
27(7)94,
27(7)188-1,
27(9)76,
27(9)85,
27(9)111,
27(9)149,
27(9)162,
27(9)175,
27(9)213,
27(9)262,
27(9)274,
27(9)285,
28(6)68,
28(6)112,
28(6)258,
29(6)36,
29(11)25,
29(11)38,
29(11)51,
29(11)61,
29(11)98,
29(11)196,
29(11)219,
29(11)232,
29(11)242,
29(11)252,
29(11)274,
31(9)2-1,
31(9)12,
31(9)26,
31(9)37,
31(9)50,
31(9)210,
31(9)279,
32(5)183,
32(5)334,
33(11)58,
33(11)159,
33(11)170,
33(11)181,
33(11)283
- program-based,
28(6)300
- range,
25(6)272,
27(7)1,
27(7)300,
27(7)311,
27(9)238,
28(3)359,
28(6)46,
28(6)100,
28(6)268,
28(6)268-1,
29(6)196,
29(6)257,
29(6)257-1,
29(6)290,
29(10)191,
29(11)2,
29(11)25,
29(11)86,
29(11)145,
29(11)242,
29(11)274,
29(11)297,
30(6)67,
30(6)103,
30(6)151,
30(6)270,
30(11)79,
33(7)59
- rate,
27(9)248,
28(6)177,
28(6)300,
29(6)97,
29(11)38,
29(11)86,
29(11)98,
29(11)145,
29(11)252,
29(11)274,
30(6)279
- reasoning,
25(10)212,
26(6)338,
29(4)23,
29(8)35,
30(3)13,
30(6)67,
30(10)200,
31(5)23,
33(10)329,
34(1)339
- rely,
25(6)311,
25(6)322,
27(7)55,
27(9)223,
28(6)26,
28(6)290,
28(6)300,
29(6)1,
30(6)246,
30(8)189,
30(11)88
- run-time,
25(4)20,
25(6)150,
26(6)145,
27(7)116,
27(7)224,
28(3)347,
28(6)13,
28(6)46,
28(7)139,
29(6)36,
29(6)61,
29(6)290,
29(6)313,
29(6)326,
29(9)135,
29(10)85,
29(11)25,
29(11)110,
29(11)122,
30(6)93,
30(6)218,
30(8)68,
30(8)102,
31(10)406,
31(11)49,
32(12)163,
33(5)224,
33(10)201,
34(3)146,
34(5)293,
34(5)293-1,
34(8)107
- significant,
17(9)18,
25(6)85-1,
26(4)28,
26(4)290,
27(7)55,
27(7)68,
27(7)273,
28(3)133,
28(3)149,
28(3)177,
28(3)209,
28(3)347,
28(4)58,
28(6)36,
28(6)187,
28(6)197,
28(7)64,
28(12)169,
29(6)36,
29(6)147,
29(6)206,
29(6)218,
29(6)349,
29(6)349-1,
29(8)35,
29(11)25,
29(11)51,
29(11)183,
30(3)119,
30(6)218,
30(6)315,
30(8)48,
30(11)125,
33(11)252
- specifically,
27(7)12,
27(7)283,
28(3)299,
29(6)206,
30(3)83,
30(11)50
- specifying,
25(10)169,
25(10)237,
26(6)338,
27(7)311,
29(8)13,
30(3)13,
30(6)67,
30(8)19,
30(11)41,
30(11)50,
31(5)23,
33(10)144,
34(10)70
- styles,
26(6)229,
27(9)124,
27(9)137,
27(9)149,
27(9)187,
27(9)262,
27(9)274,
28(3)69,
28(6)197,
28(6)258,
29(8)74,
29(8)101,
29(11)38,
29(11)61,
29(11)145,
29(11)158,
29(11)219,
29(11)286,
29(11)297,
30(11)31,
30(11)125,
31(5)237,
31(9)2-1,
31(9)12,
31(9)26,
31(9)84,
31(9)94,
31(9)198,
31(9)268,
31(9)279,
32(5)171,
32(5)334,
33(11)105,
33(11)181,
33(11)218,
33(11)228,
33(11)240,
33(11)252,
33(11)295,
33(11)307
- take,
25(6)165,
25(6)296,
26(4)28,
28(6)187,
28(6)227,
28(6)237,
28(8)90,
29(6)107,
29(6)196,
29(11)2,
29(11)242,
30(8)134,
30(8)189,
30(11)134,
30(11)146-1
- taken,
25(6)174,
27(7)322,
28(7)13,
29(8)111,
29(11)208,
30(6)67,
30(6)139,
30(11)79,
33(7)59
- time, Run-,
26(6)145,
28(3)347,
28(6)13,
28(7)139,
29(6)61,
30(6)93,
30(8)68,
30(8)102,
33(5)224,
33(10)201,
34(5)293
- time, run-,
25(4)20,
25(6)150,
26(6)145,
27(7)116,
27(7)224,
28(3)347,
28(6)13,
28(6)46,
29(6)36,
29(6)61,
29(6)290,
29(6)313,
29(6)326,
29(9)135,
29(10)85,
29(11)25,
29(11)110,
29(11)122,
30(6)93,
30(6)218,
30(8)68,
30(8)102,
31(10)406,
31(11)49,
32(12)163,
34(3)146,
34(5)293-1,
34(8)107
- today,
28(3)201,
29(6)61
- verifying,
26(9)106,
27(6)8,
29(6)230,
30(3)13,
30(6)67,
30(11)70,
31(5)23,
33(7)51
- wide-issue,
29(11)242
- will,
25(6)53,
27(7)82,
27(7)188-1,
27(7)311,
28(3)97,
29(6)107,
29(6)206,
29(6)218,
29(6)278,
29(8)59,
29(11)2,
29(11)145,
29(11)242,
29(11)297,
30(3)71,
30(6)116,
30(8)123,
30(11)41,
32(1)14,
32(10)345-1,
32(10)345-4
- Zorn, Benjamin G.,
6(4)159,
27(12)71,
28(6)187,
30(6)301,
33(11)12,
33(11)159