Die Präsentation wird geladen. Bitte warten

# Statische Laufzeitanalyse bei modernen Prozessorarchitekturen

## Präsentation zum Thema: "Statische Laufzeitanalyse bei modernen Prozessorarchitekturen"—  Präsentation transkript:

Statische Laufzeitanalyse bei modernen Prozessorarchitekturen
André Hergenhan Ladies and Gentlemen, I welcome you to my talk on Static Timing Analysis for Advanced Processor Architectures.

Überblick Statische Laufzeitanalyse
Untersuchungen zur statischen Laufzeitanalyse Fazit/Schlußfolgerungen Zusammenfassung The talk is split into three major parts: First of all, I will give a general view on timing analysis, especially static timing analysis. Secondly, I‘ m going to talk about superscalar architectures, specific features and their modeling. This is the base for timing behavior modeling and therefore I present some specific modeling strategies for it. In the third part I have a closer look at a well-known modeling approach using integer linear programing and enlosed complexity problems. Here we did some studies on computing time problems which are characteristic for this approach by modeling instruction caches. The presentation will be finished by conclusions and a summary of the talk. But lets have a look on static timing analysis in general. 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Ziel der statischen Laufzeitanalyse
Programm(e) C-Kode void sort (){ int i,j,v; for (i=1;i<10;i++){ v=a[i]; j=i; while (j>0&&a[j-1]>v){ a[j]=a[j-1]; j--; } a[j]=v; sort: li 8,1 addis addi addis addi .L40: slwi 0,8,2 lwzx 7,6,0 mr 0,8 cmpwi 1,8,0 bc 4,5,.L42 .L45: slwi 10,0,2 lwzx 11,10,9 ... Compilierung C-Kode Assemblierung Compilierung Binden Programm Maschinenkode Daten The timing performance analysis of software running on a microprocessor or microcontroller has been of growing importance. If a system does not meet its timing constraints it does not meet its functional requirements either. Therefore timing analysis techniques should provide information about worst-case or best-case or average-case timing behavior. The program running on the processor is given by machine code which has been derived from programs written in a high level language like C. The programs are then transformed by a process of compiling, assembling and linking into machine code which is equivalent to the here shown assmbly code. The objects of our studies are processors of the PowerPC family. Laufzeit Prozessoren worst case best case average case 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Wesen und Ziel der statischen Laufzeitanalyse
Laufzeitanalyse zur Kompilerzeit anstatt zur Ausführungszeit Fehler bei worst-case-Abschätzungen von unter 100% verschiedene Architektureigenschaften werden unterschiedliche Einflüsse auf das Abschätzungsergebnis haben Programm Maschinenkode Daten Prozessoren 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Untersuchungsgegenstand der Laufzeitanalyse
PPC403 MPC750 eingebetteter 32-bit RISC Controller skalare Architektur Integer CPU PPC403 Untersuchte Prozessoren unterliegen der PowerPC-Spezifikation Portabilit unterschiedliche Prozessorimplementierungen bieten eine gute Möglichkeit Laufzeiteffekte unterschiedlicher Architektureigenschaften zu beobachten They all comply to the PowerPC specification, above all, to the user instruction set architecture. This eases the portability of programs, but first of all, it offers a good oportunity to study timing effects of different architectural properties. Hence, we have choosen two different PowerPC implementations - the PPC 403 and the MPC750. The embedded microcontroller PPC403 is a 32 bit implementation with a scalar architecture which provides a fixed-point or integer processing unit. 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Untersuchungsgegenstand der Laufzeitanalyse
PPC403 MPC750 32-bit RISC Prozessor superskalare Architektur Integer/Gleitkomma CPU eingebetteter 32-bit RISC Controller skalare Architektur Integer CPU FXU1 FXU2 FPU LSU GPRs Rename Buffers FPRs 32K ICache 32K DCache L2 Tags L2 Cache BIU 60X Completion Instruction Fetch Branch Unit Dispatch System Unit BHT/ BTIC The MPC750 provides a superscalar architecture with 5 execution units in parallel. A maximum of two instructions can be issued per clock cycle. The instructions are strongly dispatched as well as completed in order of the instruction stream. The MPC750 has some additional features like branch prediction. 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Bestandteile der statischen Laufzeitanalyse
. Laufzeitanalyse des Programms Laufzeit = xi ci Modellierung Analyse Programm Prozessorarchitektur Bestimmung der Analysestruktur . Laufzeitanalyse der Analyseblöcke Laufzeit einer Befehlssequenz = Kosten ci Abstraktion Verhaltensbeschreibung Modellierung Analyse Programm Prozessorarchitektur Bestimmung der Analysestruktur . Laufzeitanalyse der Analyseblöcke Laufzeit einer Befehlssequenz = Kosten ci Abstraktion Verhaltensbeschreibung sort: li 8,1 addis addi addis addi .L40: slwi 0,8,2 lwzx 7,6,0 mr 0,8 cmpwi 1,8,0 bc 4,5,.L42 .L45: slwi 10,0,2 lwzx 11,10,9 ... Kosten ci Anzahl Ausführungen xi Funktions- einheiten Register Befehls- speicher Befehls- steuerung Befehlsarchitektur There are different tasks to be done by static timing analysis. A program implementation is translated into an internal representation, here a control flow graph. The basic analysis blocks, here given by basic blocks, are then modeled by providing characteristic values like cost c for the runtime or the execution count x. The cost ci depends on the underlaying processor architecture. The execution count xi depends on the data set given with the program implementation. Thus, static timing analysis is divided into three major tasks: program path modeling, architectural modeling and the analysis composition. The analysis composition starts with timing analysis of the basic analysis blocks. In the second stage the execution time is the sum of all analysis blocks along the worst-case execution path. 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Statische Laufzeitanalyse am FZI
GROMIT: experimentelles Werkzeug Ansatz der impliziten Pfadenumeration (ILP-Ansatz von Li/Malik) analysierbare Prozessoren - PowerPC PPC403, MPC750 Analysestruktur: Basisblöcke, Lineblöcke Architekturmodellierung/Laufzeitanalyse der Analyseblöcke Pipelining skalarer/superskalarer Architekturen Befehlscaches - unterschiedliche Laufzeit (Kosten) für Hits/Misses Laufzeitanalyse des Programms Optimierungsproblem Zielfunktion: Laufzeit = max xi ci Schleifenbeschränkungen/Pfadbeziehungen als Nebenbedingungen Beschreibung des Cacheverhaltens über Angabe von zusätzlichen Nebenbedingungen 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Modellierung von Multi-Issue-Pipelines
Vorhersagegenauigkeit steigt um bis zu 25% Je kleiner der Analyseblock, umso kleiner der Genauigkeitsgewinn Ergebnisse hängen stark von der Befehlsverteilung ab 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Rechenzeit für die Befehlscachemodellierung
Befehlscache (PPC403GA): 2 KByte, 64 Einträge von 16 Bytes (4 Befehlsworte) 2-Wege mengen-assoziativer Cache Modellierungsvarianten: CCG (Cache Conflict Graph, Typ A) vs. reduzierter CCG (Typ B), direct mapped vs. 2-Wege mengen-assoziativer Cache Here you can see some results for computation complexity on generating cache conflict graph, cache state transition graph and the cache constraints. The x-axsis is the ratio of program size to cache size. The y-axis shows the time nedded. We carried out some experiments on benchmark programs running on the PPC403 with the shown characteristics. The diagram shows that there can be significant reduction for the computing time by modeling our approach, here refered to as the type B modeling instead of the original approach the different options reduced instead of CCG or lower level of cache associtivity. 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Rechenzeit für die Lösung des ILP-Problems
Rechenzeit liegt in etwa derselben Größenordnung wie für die Berechnung (Modellierung) des Problems kleine Probleme bedingen großen Aufwand This diagram shows the time needed for computation the integer linear programing results for the same experiments. As you might see, the time is in the same order of magnitude as the modeling time. Unfortunately some results could not be gathered due to a bug in the program lp_solve. 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Zusätzliche Modellierungsfehler
Vereinfachung der Modellierung führt zu Genauigkeitsverlust unwesentlicher Genauigkeitsverlust bei der Modellierung des reduzierten CCG (Type B) anstatt des CCG (type A) signifikanter Genauigkeitsverlust bei der Modellierung einer geringeren Assoziativität 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Fazit - Schlußfolgerung
Probleme bei der Modellierung: Modellierung skalarer/superskalarer Pipelinearchitekturen Basisblöcke bzw. Lineblöcke sind i.a. sehr klein Superskalarität kann dadurch nur recht ungenügend modelliert werden Modellierung von Befehlscaches große Berechnungszeiten bei kleinen Problemen Weitergehende Modellierungsaspekte Modellierung von Datencaches? Modellierung von Sprungvorhersageverhalten? Modellierung von Bibliotheksroutinen innerhalb des Programms? Þ Veränderung des Analyseparadigmas 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Veränderung der Analysestruktur
Analyseblock (ci, xi) Analysekante (ci, xi) Verwendung der Kanten zwischen Analyseblöcken zur Analyse ermöglicht: Modellierung der Beziehungen zwischen Analyseblöcken Verringerung des durch Artefakte bedingten Analysefehlers Modellierung von Sprungvorhersagemechanismen Eigenschaften der Kanten zwischen Basisblöcken Kanten nach bedingten Sprungbefehlen können verschiedene Kosten haben (abhängig von der Sprungvorhersage und -entscheidung) 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Einführung einer Analysehierarchie
Einführung von Befehlscaches aufgrund relativer Lokalität von Software Modellierung des Verhaltens von Befehlscaches ebenfalls lokal Einführung einer Analysehierarchie (gegeben als call-Graph) Bestimmung von Analysecluster aufgrund der Berechenbarkeitsanalysen Einführung eines mehrstufigen Programmanalyseverfahrens Bemerkung: worst-case-Abschätzung wird nicht verletzt Modellierung von Bibliotheksroutinen durch Analyseproxy möglich 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Zusammenfassung Statische Laufzeitanalyse
Probleme bei der statischen Laufzeitanalyse Berechenbarkeit Modellierung weiterführender Architektureigenschaften Schlußfolgerungen Veränderung der Analysestruktur Ansatz der hierarchischen impliziten Pfadenumeration 19. April 2000 A. Hergenhan Mini-Workshop Paderborn

Ähnliche Präsentationen