Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus - Von der Theorie zur Praxis

Dr. Thilo Streichert

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus Vorlesung 5 Mikrocontroller

Marktspezifische Spezialisierung bekannter Mikroprozessoren

 Universalrechner  RISC (Reduced Instruction Set Computer)  Großer Adressraum, Speicherplatzverwaltung  Große Anzahl von Operationen pro Sekunde

 Steuerung/Regelung  Mikrocontroller  Flexible, vielfältige I/Os  Harte Echtzeitbedingungen  Sehr raue Umgebung

 Audio, Video, Signalverarbeitung  DSP (Digitaler Signalprozessor)  Hohe Rechenleistung  Multi plik ati on/Additi on/S chl eif e

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 2 Vorlesung 5 Gliederung

 Vorstellung gängiger Rechnerarchitekturen (, TriCore)

 UtUnterschi hidede zw isc hen e inge btttbetteten un dGd Genera l- Purpose Prozessoren

 Deterministische Ausführungszeit von Software (Cache- Einfluss, Pipeline-Effekte, Anomalien durch Cache- Strategien wie Pseudo-LRU)

 Ma ßnah men für e ine de term in is tisc he Aus führung

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 3 Vorlesung 5 NEC v850  Harvard-Architektur: Zwei unabhängige Busse für den simultanen Transfer von Daten und Instruktionen

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 4 Vorlesung 5 On Chip Units  CPU 5-stufige Pipeline mit Single-Clock-Cycle-Ausführung von Address- berechnungen, ALU-Operationen, Data-Transfer und weiteren Instruktionen.

con tro l un it (BCU) Die BCU s tart et d en nöti gen ext ernen B uszykl us basierend auf der Adresse von der CPU. Die BCU steuert den SDRAM-Controller (SDRAMC), Page-ROM-Controller (ROMC) und DMA-Controller (DMAC). Sie führt externe Speicherzugriffe und DMA-Transfers durch.

 RAM Instruktions-Mem (128 KB) und Daten-RAM (16 KB) sind vorhanden. Auf den Instruktions -Mem kann in einem Clock-Zyklus von der CPU zugegriffen werden, wenn Instruktionen geladen werden.  Cache Ein 2-fach assoziativer Instruktions-Cache (8 KB) ist vorhanden

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 5 Vorlesung 5 On Chip Units  Interrupt controller (INTC) INTC behandelt Hardware-Interrupts von On-Chip- I/O-Peripherie und externer Hardware. Acht Interrupt-Prioritäten können spezifiziert werden.  Clock generator (CG) Der Clock -Generator generiert die interne System -Clock (fCLK) mit Hilfe einer PLL.  Timer/Counter Mehrere 16-bit Timer/Ereigniszähler, 16-bit Intervall-Timer sowie 2-Kanal 16-bit up/down Counter/Timer  Serial Interfaces (SIO) Die seriellen Interfaces bestehen aus mehreren Asynchronous Serial Interface B (()UARTB) und Clocked Serial Interface 3 (CSI3).  A/D converter (ADC) Dieser 10-bit A/D-Converter besteht aus mehreren analogen Input-Pins. Die A/D-Wand- lung erfolgt mit Hilfe der sukzessiven Approximation.  Pulse Width Modulation (PWM) ZiKälfüPWMZwei Kanäle für PWM-Signa le m it 16-bit Auflösung stehen zur Verfügung.

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 6 Vorlesung 5 Pipeline  5-stufige Pipeline . IF: Instruction Fetch . ID: Instruction Decode . EX: Instruction Execute . MEM: Memory Access . WB: Write Back

 Pipeline hat Forwarding-Mechanismen

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 7 Vorlesung 5 Infineon TriCore Familie  -DSP Core  Load/Store Architektur (RISC)  Zwei 16x16 Bit MACs  Schneller Kontextwechsel  Superskalares Design mit 3 Pipelines  16/32-Bit-Instruktionen für geringeren Speicherbedarf  Zero-overhead-loop-Fähigkeiten  Optionale Floating-Point-Einheit  4 GB Adressbereich  SIMD-Instruktionen  Flexible Schnittstellen  Interruptsystem  I/O Prozessor  Speicher   Je 24 KB Daten- und Programmspeicher  Je 8 KB Daten- und Programm-Cache

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 8 Vorlesung 5 TriCore Konzept

 Entwickelt für Echtzeitsysteme im „Automotive“-Bereich  Kombination der Stärken von 3 bewährten Architekturen

Mikro- DSP TriCore controller

+ Schnelle Interrupt- + hohe Rechenleistung  behandlung +Adressierungsarten + Integrierte Peripherie RISC- Mikroprocessor

+Hohe Taktrate + Große Anzahl Register

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 9 Vorlesung 5 TriCore: DSP Eigenschaften

 Harvard Architektur zum parallelen Laden von Daten und Befehlen  16x16-Bit Multiplikation/Akkumulation in 1 Taktzyklus (Skalarproduktberechnung)  Kompakte SIMD (Single Instruction Multiple Data) Befehle z.B. für FFT  DSP Adressierungsarten z.B. für diskrete Filter, Ringpuffer, …  Kein Schleifen-Overhead (autoincrement)  Arithmetik  Begrenzung  Runden  Allgemeine Mathematik

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 10 Vorlesung 5 TriCore: RISC Eigenschaften

32-Bit Load/Store Harvard Architektur Superskalare Befehlsausführung 3 parallele 4-stufige Pipelines 2llbk62 universelle Registerbänke mit je 16 Registern f ür Daten und Adressen Speicherschutzmechanismen für Programm und Daten

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 11 Vorlesung 5 TriCore Architektur I

Data Program Peripherie Memory TriCore Memory (ADC0 Unit CPU Unit ADC1 (DMU) (PMU) GPTA GPTU FPI-Bus CAN Flexible Peripheral Interface ...) D-SRAM FPI-In Ports t

PCP erface Externe FPI-Interface Buseinheit P-SRAM

D-MEM P-MEM

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 12 Vorlesung 5 TriCore Architektur II  PMU – Program Memory Unit (intern)  1 Zyklus Zugriffszeit  bis 64K Gesamtspeicher, bis 16K Cache  DMU – Data Memory Unit (intern)  1Z1 Zykl us Z ugriff szeit  bis 64K Gesamtspeicher, bis 16K Cache  FPI – Flexible Peripheral Interface: Anschluss von Peripherie  PCP – Peripheral Control  PMEMP_MEM – externer Programmspeicher  D_MEM – externer Datenspeicher  MMU – Memory Management Unit (optional)  FPU – Floating Point Unit (optional)

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 13 Vorlesung 5 TriCore Architektur III  Harvard Architektur mit separaten Adress- und Datenbussen. Laden von Befehlen und Daten erfolgt parallel  Superskalarer Kern mit 2 Hauptpipelines (je 4 Stufen) und 1 Zusatzpipeline für Schleifen. Alle 3 Pipelines arbeiten parallel  RISC Load/Store Maschine. Alle arithmetischen Befehle arbeiten mit Registern; 2G2 Genera l-PRibäkij16RifüDdAdPurpose Registerbänke mit je 16 Registern für Daten und Adressen  Integer Unit mit Multiply Accumulate Module (MAC) und Arithmetic Logik Unit (()ALU)  Hohe Integer-Rechenleistung: Zwei 16 x 16 Multiplikation/Addition pro Taktzyklus  Flexibler Peripheral Interconnect Bus (FPI Bus) verbindet Kern, Speicher, interne und externe Peripherie oder andere CPUs  Minimalkonfiguration nur CPU und Core -Module, Peripherie - und Speichermodule können ergänzt werden

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 14 Vorlesung 5 CPU-Pipelines

 3 Pipelines: parallele Ausführung von bis zu 3 Operationen

Fetch Decode Decode Cache Buffer Execute Execute Loop Write Back Write Back Integer Unit Load/Store Unit Loop Unit  Integer Arithmetik und Speichern/Laden Zwischenspeicher logische Operationen Kontextwechsel Schleifenberechnung  Bitweise Operationen Systemoperationen Überprüfung der  Multi plik a tion/Akk umul a- Abbruchbedingung tion (MAC) Adressrechnung für  Integer Division absolute und bedingte  Bedingte Sprünge Sprünge  z.B.: Zwei 16*16-bit Multiplikations-/Additionsbefehle + Laden der nächsten Operanden + Schleifenbedingung in einem Clock-Zyklus

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 15 Vorlesung 5 Peripheral Control Processor (PCP)

 Datenübertragung zwischen beliebigen Speicheradressen ohne CPU Belastung  DMA-Ctll(DitMController (Direct Memory A ccess)

 Interrupt-Abarbeitung Übernimmt Funktion von Teilen des Interrupt-Handlers

 Parallele Abarbeitung von bis zu 64 Ereignissen, generiert durch Peripherie ohne CPU-Interrupt - z.B.  Timer-RlReload  Start/Stop eines Timers oder einer AD-Wandlung  Berechnung des nächsten Compare-Wertes für PWM

 Durchführunggg logischer und arithmetischer Op erationen

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 16 Vorlesung 5 Multitasking

 Haadrdwa aeureunte esürstützu ng fü r sc hne eellen K onte xtw ecseechsel  Automatische Sicherung eines Teils der Prozessorregister bei erforderlichem Kontextwechsel und  Automatische Wiederherstellung bei Rückkehr  Automatische Verwaltunggp der Speicherbereiche für die geretteten Kontexte  Zwei unabhängige Stackpointer  Für Nutzung durch Compiler bzw. für Nutzung in Interrupt Service Routinen  Stackpointer liegt im Register (A10) und wird für jede Task automatisch gerettet

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 17 Vorlesung 5 On-Chip Peripherie

 2 Analog-Digital-Wandler Einheiten (ADC0, ADC1)  General Purpose Timer Unit (GPTU)  Drei 32-bit Timer/Counter

 General Purpose Timer Array (GPTA)  Komplexe Verarbeitung und Generierung von I/O Signalen

 Serial Data Link Modul J1850 (KFZ-Schnittstelle)  CAN Mod ul  2 Synchrone/Asynchchrone Serielle Schnittstellen (bis 1.25 MBaud)  2 High Speed Synchrone Serielle Schnittstellen (bis 380 MBaud)  Watchdog Timer und System Timer

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 18 Vorlesung 5 Gliederung

 Vorstellung gängiger Rechnerarchitekturen (v850, TriCore, MPC55xx)

 UtUntersc hidhiede zwi sch en ei ngeb btttetteten und dG General - Purpose Prozessoren

 Deterministische Ausführungszeit von Software (Cache- Einfluss, Pipeline-Effekte, Anomalien durch Cache- Strategien wie Pseudo-LRU)

 Ma ßnah men für e ine de term in is tisc he Aus führung

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 19 Vorlesung 5 Instr. TLB 16 KByte Instruction Cache Pentium III (32 entries)

1 micro-op Branch Simple Decoder Target Buffer 1 micro-op Reorder Simple Decoder buffer (40 entries) 4 micro-ops General Decoder

Instruction Fetch Unit Micro-op Sequencer RAT RRF 32

Reservation Station (20 entries)

Store Store Load Integer/ I nteger/ FP MMX data addr addr MMX ISSE ISSE

Memory Reorder Buffer (MOB)

1 load 1 load Load data 32

Data TLB 16 KByte Dual-ported Data Cache (64 entries)

256

Entwurf und Analyse eingebetteter Netzwerke des AutomobilbausSystem Bus Interface 256 Kbyte Level-2 Cache 20 Vorlesung 5 Pentium III - Charakteristika

 Befehlsholeeinheit (Instruction Fetch Unit) lädt pro Takt 32 Bytes aus dem Code-Cache-Speicher  Die Sprungvorhersagetechnik implementiert einen gshare-Algorithmus und umfßfasst dazu 512 Bytes große Tabellen im sogenannten Branch Target Buffer  Decodiereinheit kann drei Befehle pro Takt dekodieren. . Bei der Dekodierung werden bis zu 6 sogenannte Micro-ops (je 118 Bits lang) erzeugt . 2 einfache, 1 allgemeiner Dekodierer, eventuell Mikroprogrammaufruf, das einige Dutzend Micro-ops umfassen kann, bereitgestellt durch den Micro-op Sequencer  Registerumbenennung der Micro-ops durch die Register Allocation Table RAT auf 40 physikalische Register  40 Micro-ops fassender Rückordnungspuffer (Reorder Buffer).  Ausführbereite Micro-ops werden in einen 20 Einträge fassenden, allen Ausführungseinheiten gemeinsamen Zuordnungspuffer (Reservation Station genannt) transportiert, und von dort werden bis zu fünf Micro-ops pro Takt den insgesamt 11 Ausführungseinheiten zugeordnet.  Rückordnungseinheit (Retirement RRF)

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 21 Vorlesung 5 Was hat Hardware mit Echtzeit-Analyse zu tun?  Einfaches Code-Beispiel:

 Messe Zeit pro Schleifen-Iteration für k=1..32

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 22 Vorlesung 5 Ergebnis mit NEC v850E

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 23 Vorlesung 5 Ergebnis mit Pentium 3

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 24 Vorlesung 5 Ergebnis mit Athlon

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 25 Vorlesung 5 Gliederung

 Vorstellung gängiger Rechnerarchitekturen (v850, TriCore, MPC55xx)

 UtUnterschi hidede zw isc hen e inge btttbetteten un dGd Genera l- Purpose Prozessoren

 Deterministische Ausführungszeit von Software (Cache-Einfluss, Pipeline-Effekte, Anomalien durch Cache-Strategien wie Pseudo-LRU)

 Ma ßnah men für e ine de term in is tisc he Aus führung

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 26 Vorlesung 5 Caches  Vier wesentliche Probleme gilt es bei Cache-Architekturen zu lösen: 1. Abbildung von Hauptspeicherblöcken im Cache 2. Suchstrategie 3. Ersetzungsstrategie 4. Konsistenz von Hauptspeicher und Cache beim Schreiben Zu 1.: a) direct-mapped: Jeder HS-Block ist eindeutig einem Block Frame im Cache zugeordnet b) voll-assoziativ: Jeder HS-Block kann einem beliebigen Block Frame im Cache zugeordnet werden c) set-assoziativ: Jeder HS-Block ist eindeutig einer Menge an Block Frames im Cache zugeordnet Zu 3.: ((gkeine Entscheidung bei direct-mapped nöti g, da Zuordnun g eindeuti g) a) FIFO: der älteste Eintrag wird ersetzt b) LRU (Least Recently Used): Der am längsten nicht mehr angesprochene Eintrag wird ersetzt c)LFU(L) LFU (Leas tFt Frequen tly Use d)Dd): Der am se ltens ten angesproc hene EitEintrag w idird ersetzt d) Random: Ein (pseudo)zufällig ausgewählter Block wird ersetzt

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 27 Vorlesung 5 Pseudo-LRU Replacement (z.B. PPC G3)  Pseudo Least Recently Used (PLRU): Für Caches mit großer Assoziativität (im Allgemeinen >4-fach) wird die Implementierung von LRU zu teuer. Falls ein probabilistisches Schema, das fast immer ein am längs ten n ic ht me hr angesproc henes Elemen t verw ir ft, ausre ic hen d ist, kann PLRU mit nur einem Bit pro Cache-Block arbeiten.  Funktionsweise: . Bei Zugriff/Update eines Cache -Blocks werden Bits entlang des Pfades so invertiert, dass der Zeiger auf die andere Baumhälfte zeigt . Jede Kombination der Bits B[0..2] zeigt auf einen bestimmten Cache-Block:

0 B0 1

01B1 1 0 B2

L0 L1 L2 L3

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 28 Vorlesung 5 4-fach PLRU Domino-Effekt

Zwei verschiedene zufällige Cache-Befüllungen

Sequenz: c, d, f, c, d, h

0 0 00 cd....f h 00 feabb 1 1 10 c: c dfh10 c: c eab 0 1 1 1 d: c d f h 00 d: c e d b 1 0 01 f: cdf h 01 f: c f db 1 1 11 c: c dfh11 c: c fdb 0 1 11 d: c d f h 01 d: c f d b 1 0 01 h: cdfh 00 h: c h db 1 1 11 c: c dfh10 Diese Sequenz c: c hdb 0 1 11 d: c d fh00 wiederholt sich d: chd b 1 0 f: c f db 01 f: cdf h 01  nur Cache-Hits 1 1 11 c: c dfh11 c: c fdb 0 1 ZiChZwei Cache-Misses pro 11 d: c d fh01 d: cfd b Sequenzdurchlauf  1 0 01 h: cdfh 00 h: c h db

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 29 Vorlesung 5 Pipelines  Beispiel DLX-Pipeline:

IF: Instruction Fetch ID: Instruction Decode EX: Execute MEM: Memory Load/Store WB: Write Back

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 30 Vorlesung 5 Pipeline-Mechanismen  Forwarding . Wenn ein Datum in einem Takt berechnet wird und im nächsten Takt wieder verwendet wird, helfen Forwarding- Mechanismen NOPs zu vermeiden  Ohne Forwarding . Die Befehlsreihenfolge: R1=R2+R3 R2=R1-R3 führt zum Einführen einer NOP-Operation in der EX-Phase  Durch Datenabhängigkeiten muss ein Taktzyklus extra berücksichtigt werden  Superskalare Einheiten . Statisches Scheduling: Compiler bestimmt Befehlsreihenfolge . Dynamisches Scheduling: CPU bestimmt Befehlsreihenfolge (Out-of-Order Execution) Integer Unit . Effekt auf Timing-Verhalten: Befehlsreihenfolge wirkt sich Multiplication auf Ausführungsdauer aus IF ID MEM WB FP Addition Division

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 31 Vorlesung 5 Timing-Anomalie 1  Annahme: CPU mit superskalarer Einheit und dynamischem Scheduling  Ausführungseinheiten: . LSU: Loa d/Store Un it . IU: Instruction Unit . MCIU: Multi-Cycle-Instruction Unit  Auszuführendes Programm:

 Anomalie: Ein Cache-Hit führt zu einer längeren Ausführungszeit als ein Cache-Miss

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 32 Vorlesung 5 Timing-Anomalie 2  Annahme: CPU mit superskalarer Einheit und dynamischem Scheduling  Parallele Ausführungseinheiten: . LSU: Load/Store Unit IU: Instruction Unit MCIU: Multi-Cycle-Instruction Unit  AfühdPAuszuführendes Programm:

 Anomalie: Instruktion D und B können in beliebiger Reihenfolge ausgeführt werden. Im 2. Fall führt das Tauschen der Reihenfolge zu einer Verlängerung der Gesamtausführungszeit von A, B, C, D

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 33 Vorlesung 5 Weitere Effekte  On-Chip-Busse: . Taktung eines Busses z.T. langsamer als Taktung des Cores  CPU muss ei ne unt erschi edli c he Anza hl an Ta kten war ten . Interferenz mit anderen Bus-Mastern  Multi-Core-Architekturen: . Interferenz auf gemeinsamen Ressourcen . Schwierige Analyse von gemeinsamen Caches

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 34 Vorlesung 5 Gliederung

 Vorstellung gängiger Rechnerarchitekturen (v850, TriCore, MPC55xx)

 UtUnterschi hidede zw isc hen e inge btttbetteten un dGd Genera l- Purpose Prozessoren

 Deterministische Ausführungszeit von Software (Cache- Einfluss, Pipeline-Effekte, Anomalien durch Cache- Strategien wie Pseudo-LRU)

 Ma ßnah men fü r ei ne d et ermi ni sti sch e A usfüh rung

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 35 Vorlesung 5 Maßnahmen  Wichtigster Grundsatz: Reduziere die Interferenz auf gemeinsamen Ressourcen  Für Speicherhierarchien ist empfehlenswert: . Cache mit LRU-Ersetzungsstrategie oder Scratchpad- Memory . Separiere L1 Instruction- and Data-Caches . Eine flaches lineares Speichermodell ohne Paging . Kein gemeinsamer Speicher, wo nur wenig gemeinsam in einer Anwendung gemacht wird  Für Pipelines ist empfehlenswert: . Verwende „Compositional Pipelines“, also ohne Domino- Effekte und möglichst ohne Anomalien

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 37 Vorlesung 5 Wirtschaftliche Aspekte Wichtige Kriterien für die Wahl bestimmter Prozessoren:  Wo wird Halbleiterprodukt hergestellt?  Gibt es e ine Secon d-S?Source? . Ja, befinden sich beide Fabs am gleichen Ort? . Nein, wie schnell kann eine Back-Up-Lösunggg aufgebaut werden?  Welche Langzeitverfügbarkeit hat das Device (gefordert 15 Jahre nach End-of-Production)?  WkttdiLWas kostet die Lagerh hltdDi?altung der Devices?

Entwurf und Analyse eingebetteter Netzwerke des Automobilbaus 38 Vorlesung 5