Bridging the Gap Between Precise RT-Level Power/Timing Estimation and Fast High-Level Simulation
Total Page:16
File Type:pdf, Size:1020Kb
Fakultät II – Informatik, Wirtschafts- und Rechtswissenschaften Department für Informatik Bridging the Gap between Precise RT-Level Power/Timing Estimation and Fast High-Level Simulation A method for automatically identifying and characterising combinational macros in synchronous sequential systems at register-transfer level and subsequent executable high-level model generation with respect to non-functional properties Dissertation zur Erlangung des Grades eines Doktors der Ingenieurwissenschaften von Dipl.-Inform. Kai Hylla Gutachter: Prof. Dr. Wolfgang Nebel Prof. Dr. Wolfgang Rosenstiel Tag der Disputation: 13. Januar 2014 Abstract Knowing a system’s power dissipation and timing behaviour is mandatory for today’s system development and key to an effective design space exploration. Not only does battery lifetime or design of the power supply directly depend on the power dissipation of the system. Second-order effects such as thermal behaviour or degradation effects that are directly or indirectly affected by the power dissipation must be considered, too. Various techniques for power estimation exist at different levels of abstraction. Low-level approaches provide accurate estimation results but require a lot of computational effort. High- level approaches however, allow fast and early estimates, but lack of a deeper knowledge and understanding of the hardware, implementing the behaviour. Therefore, they can only give rough estimates. What is missing is an approach allowing fast and early estimates with respect to as many relevant hardware artefacts and physical properties as possible. This doctoral thesis tackles the problem of a fast, yet accurate power and timing estimation of embedded hardware modules at a high-level of abstraction. A comparatively time consuming low-level estimation is performed once in order to obtain an accurate estimate. By augmenting an executable high-level simulation model with this power and timing information, fast and comprehensive simulations at a high-level of abstraction using a large set of different use cases become possible. The abstraction gap between fast simulation and accurate estimation is closed. This work describes a technique for automatically identifying and characterising combi- national macros in synchronous sequential systems, such as co-processors or hardware accelerators. Using a high-level synthesis, a pure behavioural high-level system description is transformed into a cycle-accurate description at structural register-transfer level. So-called hardware basic blocks, comprising a set of jointly active RT components, are identified and characterised automatically. The characterisation uses sophisticated RT-level power models, which provide accurate power and timing estimates. The characterisation also considers as many relevant physical properties and synthesis artefacts as possible. These include schedul- ing and binding as well as parasitic functionality, for instance. Non-functional properties such as clock or controller power as well as static power dissipation are also considered. Using the characterised macros, a power and timing annotated high-level simulation model is generated. This C++-based virtual prototype allows a fast, yet accurate estimation of the given design with respect to various use cases and test stimuli. Beyond that, the generated prototype can be embedded into a virtual system prototype allowing a design space exploration, far more complex and comprehensive than would be feasible by using a common estimation approach at register-transfer level. Evaluation of the presented approach is performed using a set of several industrial and academic use cases. Results show that by having an average relative error per cycle of less than 6.93 % for most simulated clock cycles and a total error of around 1 %, a speed-up of approximately 160 × compared to an RT-level estimation is archived, while giving nearly cycle-accurate power estimates. i Zusammenfassung Das Wissen um die Verlustleistung und des zeitlichen Verhaltens eines Systems ist unerlässlich für den heutigen Systementwurf. Es ist der Schlüssel für eine effektive Exploration des Ent- wurfsraumes. Nicht nur die Laufzeit der Batterie oder die Auslegung der Energieversorgung hängen von der Verlustleistung ab. Nachrangige Effekte wie z. B. das thermische Verhalten des Systems oder auch Alterungseffeke, welche direkt oder indirekt von der Verlustleistung abhängen, müssen ebenfalls berücksichtigt werden. Es existieren verschiedene Techniken für die Abschätzung der Verlustleistung sowie des zeitlichen Verhaltens auf ganz unterschiedlichen Abstraktionsebenen. Verfahren auf niedriger Ebene ermöglichen genaue Vorhersagen, benötigen jedoch einen hohen Rechenaufwand. Verfahren auf hoher Ebene hingegen erlauben schnelle und frühzeitige Abschätzungen. Ihnen mangelt es jedoch an einen tieferen Verständnis der Hardware, welche das Verhalten imple- mentiert. Daher können sie lediglich ungenaue Vorhersagen machen. Es fehlt ein Verfahren, welches schnelle und frühe Vorhersagen unter Berücksichtigung so vieler physikalischer Eigenschaften und Hardware-Artefakten wie möglich, erlaubt. Diese Doktorarbeit adressiert das Problem schneller aber dennoch präziser Vorhersagen der Verlustleistung und des zeitlichen Verhaltens eingebetteter Hardware-Module auf einer hohen Abstraktionsebene. Eine vergleichsweise zeitaufwändige Abschätzung auf niedriger Ebene wird einmalig durchgeführt, um eine akkurate Abschätzung zu erhalten. Durch das Anreichern eines Modells auf hoher Abstraktionsebene mit den zuvor gewonnenen Informationen, werden schnelle und umfangreiche Simulationen auf hoher Abstraktionsebene unter Verwendung von einer Vielzahl an Anwendungsfällen möglich. Die Lücke zwischen schneller Simulation und akkurater Abschätzung wird geschlossen. Diese Arbeit beschreibt ein Verfahren für das automatisierte Erkennen und Charakterisieren von kombinatorischen Makros in synchronen sequentiellen Systemen, wie z. B. Co-Prozessor- en oder Hardware-Beschleunigern. Mit Hilfe einer High-Level Synthese wird eine, zunächst rein funktionale, High-Level Systembeschreibung in eine zyklengenaue Beschreibung auf struktureller Register-Transfer Ebene erzeugt. Sogenannte Hardware Basis Blöcke, welche eine Menge gemeinsam aktiver Register-Transfer Komponenten umfassen, werden automatisch identifiziert und charakterisiert. Die Charakterisierung nutzt fortgeschrittene Power-Modelle auf Register-Transfer Ebene, welche genaue Ergebnisse bezüglich zeitlichem Verhalten sowie der Verlustleistung liefern. Die Charakterisierung berücksichtigt darüber hinaus auch so viele physikalische Eigenschaften und Synthese-Artefakte wie möglich. Dazu zählen z. B. Scheduling, Binding so wie parasitäre d. h. ungewollte Funktionalität. Nich-funktionale Eigenschaften wie Verlustleistung durch den Controller oder den Takt ebenso wie Leckströme werden ebenfalls berücksichtigt. Mittels der charakterisierten kombinatorischen Makros wird ein High-Level Simulationsmo- dell erzeugt. Dieses ist um Informationen bezüglich zeitlichem Verhalten sowie der Verlust- leistung angereichert. Der so erzeugte, C++-basierte virtuelle Prototyp erlaubt eine schnelle iii aber dennoch genaue Abschätzung des gegebenen Systems bezüglich verschiedener Anwen- dungsfälle und Teststimuli. Darüberhinaus kann der erzeugte Prototyp in einen virtuellen Systemprototypen eingebettet werden. Dies erlaubt eine deutlich komplexere und umfassende- re Exploration des Entwurfsraumes, als unter Verwendung einer herkömmlichen Abschätzung auf RT-Ebene möglich gewesen wäre. Die Evaluation des hier vorgestellten Ansatzes erfolgte unter Verwendung von verschiedenen Anwendungsfällen aus akademischen und industriellem Umfeld. Die Ergebnisse zeigen, dass bei einem relativen Fehler von weniger als 6.93 % für die meisten der simulierten Takte und einem Gesamtfehler von ca. 1 %, eine Beschleunigung von ungefähr 160 × im Vergleich zu einer herkömmlichen Simulation auf RT-Ebene erreicht werden kann, wobei annähernd Takt-genaue Vorhersagen bezüglich der Verlustleistung möglich sind. iv We are like dwarfs standing upon the shoulders of giants, and so able to see more and see farther than the ancients. (Bernard of Chartres, around 1120) v Contents List of Figures xi List of Tables xv List of Algorithms xvii List of Listings xix 1 Introduction 1 1.1 Today’s Challenges in Hardware Design . .4 1.2 Challenges and Requirements for High-Level Power Estimation . .8 1.3 Scope and Contribution of this Doctoral Thesis . 11 1.4 Structure of the Thesis . 12 2 Fundamentals 13 2.1 Technical Terms . 14 2.2 System Design Methodologies . 16 2.3 Hardware Design and Synthesis Process . 17 2.4 Power Dissipation . 20 2.4.1 Dynamic Power . 20 2.4.2 Static Power . 22 2.4.3 Additional Sources of Power Dissipation . 23 2.4.4 Power Gating . 24 2.5 Simulation Models for Power and Timing Estimation . 25 2.5.1 Electrical Level . 25 2.5.2 Logic Level . 26 2.5.3 Register Transfer Level . 27 2.5.4 Above RT-Level . 28 2.6 Summary . 29 3 State of the Art 31 3.1 Power Estimation . 32 3.1.1 Pattern-Based Approaches . 34 3.1.2 Activation-Based Approaches . 39 3.1.3 Stochastic-Based Approaches . 42 3.1.4 Experience-Based Approaches . 44 3.1.5 System-Level Power Estimation . 45 3.1.6 Summary of Power Estimation Approaches . 47 3.2 RT-Level Abstraction Techniques . 49 3.2.1 Summary of Abstraction Techniques . 52 3.3 Summary . 53 vii 4 Power Estimation & Characterisation 55 4.1 The COMPLEX Design Space Exploration Process . 58 4.2 Power Estimation Process for Digital Hardware