Entry Calder:1995:CSB from sigplan1990.bib

Last update: Thu Apr 12 03:37:15 MDT 2012                Valid HTML 3.2!

Index sections

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