skip to main content
10.1145/1647420.1647439acmconferencesArticle/Chapter ViewAbstractPublication PagesadaConference Proceedingsconference-collections
research-article

Dynamic analysis of branch mispredictions in Ada

Published:01 November 2009Publication History

ABSTRACT

Developing high performance Ada applications not only depends on the chosen algorithms, but also on the time required to execute Ada itself. Timing Ada statements provides developers with insight into patterns of Ada program performance across various platforms. The purpose of this paper is to discuss the timing process and findings when timing Ada performance. The concentration will be on determining the timing differences in conditional code branching on Intel Pentium IV processors.

References

  1. Gerber, R. 2002. The Software Optimization Cookbook. Intel Press, United States Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Intel. 2009, June 30. Intel® 64 and IA-32 Architectures Optimization Reference Manual. Retrieved June 30, 2009, from Intel® 64 and IA-32 Architectures Software Developer's Manuals= http://www.intel.com/Assets/PDF/manual/248966.pdfGoogle ScholarGoogle Scholar

Index Terms

  1. Dynamic analysis of branch mispredictions in Ada

                Recommendations

                Reviews

                R. Clayton

                Processors attempt to improve performance by, among other things, predicting whether or not branches are taken; incorrect branch predictions reduce instruction throughput. Some Intel processors assume that forward conditional jumps are never taken, which implies that if -statement true blocks are always executed. This paper measures the performance penalty incurred by if statements that execute an alternate block. The measurement suite is written in the Ada programming language. The code runs on an embedded system, a laptop, a home machine, and a lab computer, all of which are Intel-based and run Windows XP Professional or a real-time operating system. The suite contains individual constituent statements, such assignments or null statements, and a sequence of if statements that contain from zero to 31 incorrect branch predictions. For comparison, the suite also contains case statements matching the if statements in the number of measured blocks. The measured performance shows that, on all four systems, if statements that cause incorrect branch predictions execute more slowly than if statements with correct predictions, and that execution time increases with the number of incorrect predictions per if statement. In contrast, case statements execute in time independent of the number of blocks. The paper is complete, covering the measurement theory and method in detail. The measurement analysis is to the point, although the graphs' x -axis values are unlabeled and, as they run from zero to 600, do not obviously represent the alternative blocks per if statement. Online Computing Reviews Service

                Access critical reviews of Computing literature here

                Become a reviewer for Computing Reviews.

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in
                • Article Metrics

                  • Downloads (Last 12 months)2
                  • Downloads (Last 6 weeks)1

                  Other Metrics

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader
                About Cookies On This Site

                We use cookies to ensure that we give you the best experience on our website.

                Learn more

                Got it!