• DocumentCode
    2073452
  • Title

    WCET-driven branch prediction aware code positioning

  • Author

    Plazar, Sascha ; Kleinsorge, Jan ; Marwedel, Peter ; Falk, Heiko

  • Author_Institution
    Comput. Sci. 12, Tech. Univ. Dortmund, Dortmund, Germany
  • fYear
    2011
  • fDate
    9-14 Oct. 2011
  • Firstpage
    165
  • Lastpage
    174
  • Abstract
    In the past decades, embedded system designers moved from simple, predictable system designs towards complex systems equipped with caches, branch prediction units and speculative execution. This step was necessary in order to fulfill increasing requirements on computational power. Static analysis techniques considering such speculative units had to be developed to allow the estimation of an upper bound of the execution time of a program. This bound is called worst-case execution time (WCET). Its knowledge is crucial to verify whether hard real-time systems satisfy their timing constraints, and the WCET is a key parameter for the design of embedded systems. In this paper, we propose a WCET-driven branch prediction aware optimization which reorders basic blocks of a function in order to reduce the amount of jump instructions and mispredicted branches. We employed a genetic algorithm which rearranges basic blocks in order to decrease the WCET of a program. This enables a first estimation of the possible optimization potential at the cost of high optimization runtimes. To avoid time consuming repetitive WCET analyses, we developed a new algorithm employing integer-linear programming (ILP). The ILP models the worst-case execution path (WCEP) of a program and takes branch prediction effects into account. This algorithm enables short optimization runtimes at slightly decreased optimization results. In a case study, the genetic algorithm is able to reduce the benchmarks´ WCET by up to 24.7% whereas our ILP-based approach is able to decrease the WCET by up to 20.0%.
  • Keywords
    embedded systems; genetic algorithms; integer programming; linear programming; software engineering; branch prediction aware code positioning; embedded system design; genetic algorithm; integer-linear programming; static analysis technique; worst case execution time; worst-case execution path; Equations; Layout; Mathematical model; Optimization; Pipelines; Prediction algorithms; Timing; Branch Prediction; Code Positioning; WCET;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Compilers, Architectures and Synthesis for Embedded Systems (CASES), 2011 Proceedings of the 14th International Conference on
  • Conference_Location
    Taipei
  • Print_ISBN
    978-1-4503-0713-0
  • Type

    conf

  • Filename
    6062042