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 (v850, 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.
Bus 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 Microcontroller-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 Memory Management Unit 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 Processor 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 Register File 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