TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Integrierte Systeme FAST AND ACCURATE PERFORMANCE SIMULATION OF OUT-OF-ORDER PROCESSING CORES IN EMBEDDED SYSTEMS Roman Plyaskin Vollständiger Abdruck der von der Fakultät für Elektrotechnik undInformationstechnikderTechnischenUniversitätMünchen zur Erlangung des akademischen Grades eines Doktor-Ingenieurs (Dr.-Ing.) genehmigten Dissertation. Vorsitzender: Univ.-Prof. Dr.-Ing. Ulf Schlichtmann Prüfer der Dissertation: 1 . Univ.-Prof. Dr. sc. techn. Andreas Herkersdorf 2 . Univ.-Prof. Dr. rer. nat. Wolfgang Rosenstiel, Eberhard Karls Universität Tübingen 30102013 Die Dissertation wurde am . . bei der Technischen Uni- versität München eingereicht und durch die Fakultät für Elek- 23062014 trotechnik und Informationstechnik am . . angenom- men. ABSTRACT Recentembeddedsystemsemploymultipleprocessingcoresonasin- gle chip. Such multiprocessor system-on-chip (MPSoC) can incorpo- rate heterogeneous processing cores with diverse internal complex- ity in order to offer an optimized solution in terms of performance, powerconsumptionanddependability.ConsideringthegrowingMP- SoC complexity, system architects require fast and accurate perfor- mance simulation of out-of-order processing cores to enable design space exploration (DSE) of MPSoC in reasonable time. Interpretive cycle-accurateinstructionsetsimulators(ISS)employdetailedmodels of the core microarchitecture. Therefore, their use in iterative system- level DSE of MPSoC is limited because of low simulation speed. At the same time, recent approaches for fast software performance sim- ulation leveraging annotated source code are too abstract to consider the effects of out-of-order instruction execution. This thesis addresses the gap between interpretive cycle-accurate ISS and abstract source-level simulation and presents a novel ap- proachforsoftwareperformancesimulationconsideringout-of-order execution. The proposed approach enables fast and accurate repro- duction of the processor’s out-of-order behavior and accelerates DSE atthesystemlevel.Furthermore,thethesispresentsaSystemC-based simulationtoolforperformanceevaluationofmulticorearchitectures. Thetooladditionallysupportstrace-drivensimulationoftargetappli- cationsandincorporatesahigh-levelschedulerforflexibleevaluation of SW partitioning in MPSoC platforms. iii ZUSAMMENFASSUNG Moderne eingebettete Systeme setzen Chips mit mehreren Prozes- sorkernenein.SolcheMultiprozessorSysteme-on-Chip(MPSoC)kön- nen heterogene Prozessorkerne mit diverser interner Komplexität en- thalten und somit eine optimierte Lösung im Bezug auf Performanz, Leistungsverbrauch und Zuverlässigkeit bieten. Wegen der steigen- denKomplexitätderMPSoCbenötigenSystemarchitekteneineschnelle undgenauePerformanzsimulationderOut-of-Order-Prozessorkerne, umeineEntwurfsraumexplorationderMPSoCinannehmbarenZeiten zuermöglichen.Interpretierende,zyklenakkurateInstruktionssatz-Sim- ulatoren(ISS)enthaltendetaillierteModellederMikroarchitekturdes ProzessorkernsundkönnennurkleineSimulationsgeschwindigkeiten erreichen.AusdiesemGrundistdieNutzungdieserWerkzeugefürit- erative Entwurfsraumexplorationen der MPSoC auf Systemebene be- grenzt. Neueste Ansätze, die eine schnelle Software-Performanzsim- ulation basierend auf annotierten Quellcodes ermöglichen, sind zu abstrakt, um die Effekte der Out-of-Order-Ausführung der Instruk- tionen zu berücksichtigen. Diese Dissertation stellt ein neues Verfahren für eine Software-Per- formanzsimulation mit Berücksichtigung der Out-of-Order-Ausfüh- rung vor und schließt somit die Lücke zwischen den interpretieren- den, zyklenakkuraten ISS und einer abstrakten Simulation auf Quell- code-Ebene.DervorgeschlageneAnsatzermöglichteineschnelleund genaueWiedergabedesVerhaltensderOut-of-Order-Prozessorenund beschleunigtEntwurfsraumexplorationenaufSystemebene.Außerdem stellt diese Dissertation ein SystemC-basiertes Werkzeug für Perfor- manzabschätzungenderMehrkern-Architekturenvor.DasWerkzeug ermöglicht zusätzlich eine Trace-getriebene Simulation der Zielan- wendungen und enthält einen Scheduler für flexible Evaluierungen derSoftware-PartitionierungeninMPSoC-PlattformenaufhoherEbene. v ACKNOWLEDGMENTS I would like to sincerely thank Prof. Andreas Herkersdorf for super- vising this thesis and providing me with the opportunity to work and do the research at the institute. I particularly appreciate our dis- cussions on this project, which kept me motivated and helped me to gain a more comprehensive view on the research problems. I also would like to express my gratitude to Prof. Wolfgang Rosenstiel for co-examining this work and his comments which helped me to im- prove the dissertation. In addition, I would like to thank Prof. Walter Stechele and Dr. Thomas Wild for their help and valuable comments on this work. Specialthanksgotoallpresentandpastcolleaguesattheinstitutefor integrated systems for creating a nice working atmosphere. Finally, this work wouldn’t be possible without loving support of my family and my fiancée Michaela who always stood by my side during these years. vii CONTENTS 1 introduction 1 11 1 . Scope of the thesis . . . . . . . . . . . . . . . . . . . . . 12 2 . Problem statement . . . . . . . . . . . . . . . . . . . . . 13 3 . Contributions . . . . . . . . . . . . . . . . . . . . . . . . 14 4 . Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 prior art 5 21 5 . Instruction Set Simulation . . . . . . . . . . . . . . . . . 211 5 . . Interpretive ISS . . . . . . . . . . . . . . . . . . . 212 6 . . Compiled ISS . . . . . . . . . . . . . . . . . . . . 213 10 . . Sampled simulation . . . . . . . . . . . . . . . . 214 12 . . ISS-based simulation of multicore architectures 22 14 . Simulation based on target code . . . . . . . . . . . . . 221 14 . . Source-level simulation . . . . . . . . . . . . . . 222 16 . . Simulation based on intermediate representation 223 18 . . Instruction-level simulation . . . . . . . . . . . . 23 20 . Trace-driven simulation . . . . . . . . . . . . . . . . . . 24 23 . High-level OS modeling . . . . . . . . . . . . . . . . . . 25 28 . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 background of compiled sw simulation at binary level 31 31 32 . Functional behavior . . . . . . . . . . . . . . . . . . . . . 311 32 . . Binary-to-C translation . . . . . . . . . . . . . . . 312 33 . . Organization of translated code . . . . . . . . . 313 34 . . Modeling of target memory . . . . . . . . . . . . 32 36 . Timing behavior . . . . . . . . . . . . . . . . . . . . . . . 321 36 . . Annotation of timing information . . . . . . . . 322 37 . . Modeling of caches . . . . . . . . . . . . . . . . . 4 compiled sw simulation considering out of order - - instruction execution 41 41 41 . System-level effects of out-of-order execution . . . . . . 411 41 . . Classification of out-of-order effects . . . . . . . 412 . . Limitations of conventional host-compiled sim- 44 ulations . . . . . . . . . . . . . . . . . . . . . . . 42 47 . Derivation of basic block timing . . . . . . . . . . . . . 421 47 . . ISS enhancements. . . . . . . . . . . . . . . . . . 422 50 . . Identification of basic block boundaries . . . . . 43 51 . Context dependency of basic block timing . . . . . . . 431 51 . . Concept . . . . . . . . . . . . . . . . . . . . . . . 432 53 . . Derivation of context-dependent timing . . . . . ix x contents 433 56 . . Context-aware host-compiled simulation . . . . 44 57 . Reordering of memory accesses . . . . . . . . . . . . . . 441 57 . . Classification of basic blocks . . . . . . . . . . . 442 59 . . Simulation of memory reordering . . . . . . . . 45 61 . Non-blocking behavior of data cache . . . . . . . . . . . 451 61 . . Modeling of non-blocking behavior . . . . . . . 452 68 . . Dependency analysis of memory instructions . 46 69 . Optimizations . . . . . . . . . . . . . . . . . . . . . . . . 461 71 . . Optimization of binary-to-C translation . . . . . 462 73 . . Averaging of basic block timings . . . . . . . . . 463 74 . . Static reordering of memory accesses . . . . . . 5 system level simulation of multicore architec - - tures 85 51 86 . Simulation methods . . . . . . . . . . . . . . . . . . . . 511 86 . . Trace-Driven Simulation . . . . . . . . . . . . . . 512 91 . . Binary-level simulation . . . . . . . . . . . . . . 513 93 . . Summary . . . . . . . . . . . . . . . . . . . . . . 52 96 . High-level scheduler model . . . . . . . . . . . . . . . . 521 97 . . Task model . . . . . . . . . . . . . . . . . . . . . 522 99 . . Scheduler model . . . . . . . . . . . . . . . . . . 523 109 . . Implementation details . . . . . . . . . . . . . . 53 115 . SystemC models of hardware components . . . . . . . 531 115 . . Out-of-order core . . . . . . . . . . . . . . . . . . 532 123 . . Communication infrastructure and memory . . 6 experimental results 129 61 129 . Context-aware host-compiled SW simulation . . . . . . 611 129 . . Experimental setup . . . . . . . . . . . . . . . . . 612 132 . . Optimization of binary-to-C translation . . . . . 613 135 . . Context-aware compiled simulation . . . . . . . 614 143 . . Averaging of basic block timing . . . . . . . . . 615 147 . . Consideration of a data cache . . . . . . . . . . . 62 153 . System-level simulation based on SystemC . . . . . . . 621 153 . . Experimental setup . . . . . . . . . . . . . . . . . 622 155 . . Evaluation of BLS and TDS methods . . . . . . 63 163 . Multicore design space exploration: A use case . . . . . 631 163 . . Experimental setup . . . . . . . . . . . . . . . . . 632 166 . . Results . . . . . . . . . . . . . . . . . . . . . . . . 7 conclusions and future work 171 71 171 . Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 72 175 . Outlook for future work . . . . . . . . . . . . . . . . . . bibliography 177
Description: