Spezialprozessoren

Mikrocontroller

Mikrocontroller: Schalenmodell (壳层模型)

Kosten spielen meist die dominante Rolle

  • einfacher als der Kern eines Mikroprozessors

Mikrocontroller: Prozessorkern - Varianten

Verwendung älterer Kerne von Mikroprozessoren 使用旧核

  • Leistungsvermögen meist ausreichend 性能足够

  • Modifikationen:

    • Stromsparmodus
    • kein Cache
    • keine virtuelle Speicherverwaltung
      → Reduktion des Stromverbrauchs, Verbesserung des Echtzeitverhaltens

Mikrocontroller: Peripherie

Mikrocontroller: Speicher

Mikrocontroller: I/O Module

Analog/Digital Converter (ADC)

  • Verwandelt analoge Signale in digitale Datenströme

  • Amplitude eines kontinuierlichen analogen Signals wird zu bestimmten Zeitpunkten gesampelt und das Ergebnis in einem Register abgelegt.

  • Spannungsbereich und Auflösung hängen vom Controller ab

Pulsweitenmodulation (PWM)

  • Wird zur Intensitätssteuerung von Aktoren verwendet
  • Änderung des On-/Off-Verhältnisses innerhalb eines festen Zyklus (duty cycle) steuert Intensität
  • Beispiele:
    • Änderung des duty cycle ändert Geschwindigkeit von Motoren
    • Änderung des duty cycle ändert Helligkeit von LEDs

Mikrocontroller: Zähler und Zeitgeber

Anwendung:

  • Zählen von Ereignissen, Messen von Zeiten kommen mit einem Zähler bzw. Zeitgeber aus
  • Pulsweitenmodulation, Frequenz- oder Drehzahlmessung, Schrittmotorsteuerungen benötigen mehrere Einheiten

Mikrocontroller: Watchdog

Watchdog zur Überwachung der Programmaktivitäten eines Mikrocontrollers 用于监视微控制器的程序活动

Programm muss in regelmäßigen Abständen Lebenszeichen liefern 定期发送正常的信息

  • Bleiben diese aus, so nimmt Watchdog einen Fehler im Programmablauf an => Reset 否则会重置

Mikrocontroller: Anwendungen

Steuerungsdominante Anwendungen

  • kontrollfluss-dominanter Code 控制流主导代码
    • viele Verzweigungen und Sprünge
  • weniger komplexe arithmetische Operationen
  • geringer Datendurchsatz
  • Multitasking ≅ schnelle Kontextwechsel

Mikrocontroller: Low-Cost

  • Systeme mit 4/8/16-Bit Prozessoren
  • Codegröße dominiert die Chipfläche und damit die Kosten 代码量会对芯片面积和功耗影响较大
  • Performanzanforderungen oftmals gering 性能要求很少
  • optimiert auf bestimmte Anwendungsgebiete 针对特定领域优化
    • Industriesteuerungen, Regelungstechnik, Bedienschnittstellen, …

Q&A

Was ist ein Mikrocontroller?

Mikrocontroller ist ein spezieller Mikrorechner, die einen Prozessor und zugleich auch Peripheriefunktionen enthalten.

Gib Beispiele für 8/16/32/64 bit Mikrocontroller

8-Bit, Intel-8051(MCS51)

16-Bit, MSP430

32-Bit, ARM

Warum ist der 8051 ein 8 bit Mikrocontroller?

kann gleichzeitig 8 Bit Daten verarbeiten

Was ist der Unterschied zwischen einem Mikroprozessor und einem Mikrocontroller?

  • einfacher als der Kern eines Mikroprozessors
  • Kosten spielen meist die dominante Rolle

Digitale Signalprozessoren (DSPs)

Architektur spezialisiert auf digitale Signalverarbeitung

DSP: Signalverarbeitungs-Anwendungen

  • Datenfluß-dominanter Code
  • viele arithmetische Operationen
  • wenig Sprünge und Verzweigungen
  • oftmals große Parallelisierung möglich
  • sehr große Datenmengen, hoher Datendurchsat

DSP: Datenpfad- / Architektur Optimierung

Harvard-Architektur, Mehrfachzugriffe auf Operanden

  • MAC-Instruktion: Zugriff auf Instruktion und zwei Operanden in einem Zyklus 在一个周期内访问指令和两个操作数
    • Speicherarchitektur mit Mehrfachzugriff notwendig
  • Architektur muss für Instruktionen und Daten getrennte Busse haben
    • Harvard-Architektur: mehrere Datenbusse für mehrfachen Operandenzugriff
  • Erste DSPs: getrennte externe Busse für Instruktionen und Daten.
  • Moderne DSPs: nur interne Harvard-Architektur, aber extern oft zwei identische Speicherschnittstellen, über die gleichzeitig auf verschiedene Off- Chip Speicherbausteine zugegriffen wird (heute oft auch On-Chip!). 仅是内部哈佛架构,但在外部通常是两个相同的存储器接口,通过它们可以同时访问不同的片外存储器模块

Parallel-Instruktionen (MAC - Multiply & Accumulate)

  • MAC-Operation ist oft benötigte Operatorverkettung
    d.h., in einem Befehlszyklus werden 2 Operanden multipliziert und das Resultat in einem Register akkumuliert
  • Multiplikationsdatenpfad optimiert in Hardware realisiert
    DSP 首次具有乘法器,可用于浮点运算

Zero-Overhead Schleifen

  • Schleifen mit bekannter Anzahl von Durchläufen enthalten speziellen Zähler 循环内包含计数器,与0比较
  • DSPs besitzen hierzu Spezial-Register zur Hardwareunterstützung
    • mit Anfangs- und End-Adresse der Schleife sowie dem Zähler geladen 加载了循环的开始和结束地址以及计数器
    • Während Schleifendurchlauf: Zähler wird parallel dekrementiert und die Adresse der entsprechenden Instruktion (Zurückspringen oder nicht!) gesetzt 在循环运行期间:计数器并行减少,并设置相应指令的地址(是否跳转!)
  • keine Takte für die Schleifensteuerung notwendig

spezielle DSP-Adressierungsarten (circular, bit-revers)

  • Adressgeneratoren arbeiten parallel zur eigentlichen Instruktionsabarbeitung 地址生成器与指令的实际处理并行工作
  • Einsparung von Prozessorzyklen für die Adressberechnung

DSP: Multiply and Accumulate

image-20200613193618713

DSP: Wichtige Eigenschaften

  • Eingeschränkte Parallelität 有限的并行性, Viele DSPs haben nur 1-2 MAC-Einheiten
  • Heterogene Register 异构寄存器

    • mehrere verschiedene Registersätze (Zugriff nur durch spezielle Funktionseinheiten)
    • Standardprozessoren verwenden dagegen meist nur einen General-PurposeRegistersatz
  • Echtzeitfähigkeit

    • Oft ist Angabe der maximalen Laufzeit (nicht das Mittel) wichtig. 通常,指定最大持续时间(而不是平均值)很重要。
  • mehr Rechenleistung pro Watt als bei Standardprozessoren 每瓦的计算能力比标准处理器高
    => wichtig bei portablen Geräten

DSP: Zahlenformate

Mantisse bestimmt die Genauigkeit
Exponent bestimmt die Dynamik

Fixed Point (FX)

  • gleiche Mantissenbreite: kleiner (billiger) + schneller als Floating-Point 相同的尾数宽度: 比浮点更小+更快
  • Entwurf von manchen Anwendungen durch Rundungs- und Skalierungsprobleme erschwert 由于四舍五入和缩放问题,一些应用程序的设计很困难

Floating Point (FP)

  • Große Dynamik des Zahlenbereiches
  • einfacherer Entwurf von Anwendungen
  • Aber: teure Hardware (komplex, große Fläche)

DSP: Arithmetik / Genauigkeit

Blocked Floating-Point: einzelner Exponent für Gruppe von Zahlen

  • Exponent wird in extra Variable gespeichert
  • Nach Operation müssen die Ergebnisse entsprechend diesem Exponenten durch Schiebeoperationen wieder angepasst werden

DSPs stammen eigentlich von analogen Signalprozessoren (ASP)

Begrenzung bei Arithmetiküberläufen: Sättigungs-Arithmetik 算术溢出的局限性:饱和算术

DSP: Programmentwicklung

Assembler, Compiler

  • bisher nur in Assembler nutzbar 以前只能用汇编
  • Programmierung in C 现在可以使用C语言

Codegeneratoren

  • Spezielle Entwicklungsumgebungen
    • Modellierung, Simulation + Codegenerierung
    • Beispiele: Matlab, Synopsys COSSAP, SPW

OpenMP Einführung

  • API zur Programmierung von Multiprozessor-Systemen mit Shared Memory

  • Bestehend aus Compilerdirektiven, Bibliotheksfunktionen und Umgebungsvariablen

  • Parallelisierung auf Thread- bzw. Schleifenebene
  • Programmablauf nach fork/join-Modell:

BSP. data parallelism

Vorteile:

  • Erweiterung der C-Programmierbarkeit
  • Beschleunigter Softwareentwurf
  • Hohe Portierbarkeit, da standardisiert und plattformunabhängig 高可移植性,因为它是标准化的且与平台无关
  • Wachsende Zahl an unterstützenden Compilern Threadhandling läuft automatisch ab 越来越多的支持编译器线程处理自动运行

Nachteile:

  • Datenabhängigkeiten werden nicht erkannt
  • Synchronisation der Threads nötig

Q&A

Was ist ein digitaler Signalprozessor?

Architektur spezialisiert auf digitale Signalverarbeitung

Was ist der Unterschied zwischen einem Mikroprozessor und einem digitalen Signalprozessor?

Architektur spezialisiert auf digitale Signalverarbeitung

Wie werden DSPs heute programmiert?

Programmierung in C

Wie kann Parallelität realisiert werden?

openMP verwenden

Grafik Prozessoren (GPU)

Was ist eine GPU?

GPU ist Heterogener Chip Multi-Prozessor, spezial für Grafikanwendungen

CPU-style Kerne

Einfacher Prozessorkern

Wie viele Fragmente sollen sich einen Instruktionsstrom teilen?

  • Idee: Amortisieren von Kosten/Komplexität bei der Verwaltung von Instruktionsströmen zwischen vielen ALUs 摊销许多ALU之间的指令流的成本/复杂性

Hinzufügen von ALUs ➔ SIMD

  • Neu kompilierter Shader sollte auf Anzahl der im Shader Core vorhandenen ALUs angepasst sein
    • Hier: 8 parallele Fragmente für 8 ALUs

SIMD Prozessierung

  • SIMD Prozessierung impliziert nicht SIMD Instruktionen SIMD处理并不意味着SIMD指令
  • Option 1: Explizite Vektor Instruktionen
  • Option 2: Skalare Instruktionen, implizite Hardware Vektorisierung
    • Hardware entscheidet Verteilung der Instruktionsströme auf ALUs
  • Realität: 16 bis 64 Fragmente teilen sich einen Instruktionsstrom

Stalls und Interleaved Processing

  • Stalls kommen vor, wenn ein Kern aufgrund einer Abhängigkeit
  • Aber wir haben eine Menge unabhängiger Fragmente
    • Idee #3:
      Die Ausführung vielr Fragmente verschachteln um stalls durch Operationen mit hoher Latenz zu vermeiden.

Durchsatz

image-20200614232557250

Q&A

Was ist eine GPU?

GPU ist Heterogener Chip Multi-Prozessor, spezial für Grafikanwendungen

Was ist ein Shader Core?

Shader sind Hardware- oder Software-Module, die bestimmte Rendering-Effekte bei der 3D-Computergrafik implementieren.

Wieso gibts es mehrere ALUs pro Kern?

Amortisieren von Kosten/Komplexität

Wie kann der Durchsatz erhöht werden?

Increase run time of one group

Wie kann hoher Durchsatz bei geringer Leistungsaufnahme erreicht werden? 如何以低功耗实现高吞吐量?

Wieso kann eine Vielfache Beschleunigung gegenüber GPProzessoren erreicht werden? 与GPP相比,为什么可以实现多重加速?