Einführung

Informationsverarbeitung

Die Digitaltechnik ist die Grundlage der Elektronischen Datenverarbeitung (EDV). Die Applikationen der EDV sind vielfältig:

  • Numerik
  • Steuerung von Maschinen
  • Reaktive Systeme mit Benutzerinteraktion
  • Digitale Signalverarbeitung
  • Programmgesteuerte Automaten Generische Mikroprozessoren!
  • Kommunikation

Die Informationsverarbeitung erfordert eine Mensch-Maschine Schnittstelle, d.h. die Kodierung von Informationen zu Daten, die eigentliche Datenverarbeitung, und die anschließende Rückgewinnung der Informationen aus Daten, wie in Abb. 1 gezeigt ist.

Informationsverarbeitung


figedv


Abb. 1. Informations- und Datenverarbeitung

Logik

Die Repräsentation und Kodierung von Informationen erfolgt durch Bitfolgen im Binärzahlensystem. Ein Bit enthält die Informationsmenge bestehend aus zwei Elementen:

{wahr,falsch}, {hell,dunkel}, {x0,x1} usw.
  • Die Kodierung dieser Informationsmenge und technische Umsetzung erfolgt durch Übergang von logischen auf technologische Größen wie Spannungen oder Ströme:
{1,0} → {H,L} → {3.3V,0V}

Logik

  • Ausgangspunkt und Motivation für anwendungs- und problemorientierte Digitallogik liegt in generischer Rechnerarchitektur und herkömmlichen programmbasierten Problemlösungen begründet.

Generisches Datenverarbeitungssystem Programmsteuerung

  • Generische EDV und Programmsteuerung bedeuten Einschränkung bei Optimierungsmöglichkeiten Die Maschine ist universell!

  • Dazu soll das Schichtenmodell einer konventionellen Datenverarbeitungsanlage näher betrachtet werden.

Generische EDV

figedvschichten

ISA Ebenen

Abstraktion ISA: Instruction Set Architecture

Die Instruktionsebene eines Mikroprozessors kann mit zwei unterschiedlichen Architekturen implementiert werden:

  1. Direkt mit digitaler Logik realisiert;

    • RISC Prozessoren
  2. Mikroarchitektur: Transformation von komplexen Maschinenbefehlen in eine Untermenge einfacher Maschinenbefehle (sequenzielle Komposition) Microcode

    • CISC Prozessoren
    • Vorteil: Microcode kann aktualisiert werden (Fehlerbeseitigung!)

ISA Ebenen

Man unterscheidet:

RISC

Reduced Instruction Set Computer Architektur

Kleine Instruktionsmenge besteht aus einfachen Operationen meist mit konstanter Instruktionslänge. Können auf ISA Mikroarchitektur verzichten (z.B. SUN Sparc, Motorola/IBM PowerPC, ARM)

CISC

Complex Instruction Set Computer Architektur

Große Instruktionsmenge mit komplexen Operationen und meist variabler Instruktionslänge ISA Mikroarchitektur bei vielen CISC-Prozessoren (z.B. Intel X86/X64 Pentium usw.);

ISA Ebenen

  • Die Betriebssystemebene ermöglicht die Abstraktion der Rechnerarchitektur, die ISA-Ebene ermöglicht die Abstraktion von der Digitallogikebene.

  • Ein klassisches Mikroprozessorsystem arbeitet ein Maschinenprogramm ( Ablaufvorschrift) sequenziell ab Limitierung!

  • Die einzelnen Instruktionen eines Maschinenprogramms werden in unterschiedlichen Werken im Mikroprozessor verarbeitet.

  • Zum näheren Verständnis der Programmsteuerung muss der Aufbau und die Architektur einer generischen von-Neumann-Anlage näher betrachtet werden.

Von-Neumann Rechner: Architektur

figneumann

Von-Neumann Rechner: Architektur

Die Rechnerarchitektur ist unterteilt in

  • das Rechenwerk,
  • das Leitwerk und ein
  • Satz allgemeiner Register (temporäre Datenspeicher).

Das Leitwerk enthält folgende spezielle Register:

BZ: Befehlzähler

Zeigt auf Speicheradresse des nächsten auszuführenden Maschinenbefehls.

BR: Befehlsregister

Enthält Kodierung des aktuell ausgeführten Befehls.

SR: Statusregister

Enthält Informationen über aktuelle oder bereits ausgeführte Operationen, wie Zero-oder Carry-Bits, und beeinflusst die Programmausführung (z.B. bedingte Verzweigung).

Von-Neumann Rechner: Architektur

  • Das Rechenwerk, das Leitwerk und der Registersatz sind über einen Daten- und Adressbus mit einem (einzigen) Hauptspeicher verbunden, dessen Speicherzellen über die Adresse ausgewählt werden.

  • Der Hauptspeicher enthält:

    • Programmbefehle (Code)
    • Programmdaten (Daten {Eingabe, Ausgabe, Zwischenergebnisse}) Limitierung
  • Ein Bussystem ist eine Gruppe von elektrischen Signalleitungen zur Datenübertragung, und verbindet mehrere Kommunikationsteilnehmer. Bei einem Datenaustausch auf einem Bus ist immer ein Teilnehmer schreibend und ein anderer lesend aktiv. Limitierung

Von-Neumann Rechner: Programmierung

  • Hello World Programm in Hochsprache C:
    main() { printf("hello, world\n"); }
  • Maschinenprogramm Assembler für den ZX81 (ca. 1981, Zilog Z80)
            CALL SPRINT
            DEFM HELLO WORLD.
            DEFB FF
            RET
    SPRINT    POP HL
            LD A,(HL)
            INC HL
            PUSH HL
            CP FF
            RET Z
            CALL PRINT
            JR SPRINT

Speicherhierarchie

  • In einem Datenverarbeitungssystem gibt es verschiedene Speichertechnologien und Architekturen
  • Einzelne Register sind i.A. direkt an Verarbeitungseinheiten gekoppelt, und bieten die kürzeste Zugriffszeit (schnell), bei niedriger Speicherdichte
  • RAM Blöcke als adressierbare Register Files können eng an die Verarbeitungseinheiten gekoppelt sein (z.B. Cache Speicher), bei mittlerer Zugriffszeit und Speicherdichte, oder als externer Speicher über einen Speicherbus bei hoher Zugriffszeit und Speicherdichte.

Speicherhierarchie eines SoC Designs [ECSOC,Rowen,2004]

figsoc_memory

Speicherhierarchie

figid


Abb. 2. Speicherhirarchie und Cache Speicher [Henessy, 2012]

Verteilte vs. Parallele Systeme

Verteiltes System

Ein verteiltes System ist eine Sammlung von lose gekoppelten Prozessoren oder Computern, die über ein Kommunikationsnetzwerk miteinander verbunden sind (Multicomputer).

  • Speichermodell: Verteilter Speicher Jeder Prozessor verfügt über privaten Speicher
  • Kommunikation: Nachrichtenbasiert über Netzwerke
  • Ressourcen: Nicht direkt geteilt
Paralleles System

Ein paralleles System ist eine Sammlung von stark gekoppelten Prozessoren (Multiprozessoren)

  • Speichermodell: Gemeinsamer Speicher
  • Kommunikation: Direkt über elektrische Signale Switched Network (Kreuzschiene) | Bus Punkt-zu-Punkt | Punkt-zu-N-Netzwerke
  • Ressourcen: Gemeinsam genutzt (Bus, Speicher, IO)

Verteilte vs. Parallele Systeme

Verteilter Speicher

  • Zugriff auf Speicher erfordert Netzwerkkommunikation
  • Vorteil: Speicher ist skalierbar mit Anzahl der Prozessoren
  • Nachteil: Langsamer Speicherzugriff zwischen Prozessen


figdismem

Unified Memory Architecture

  • Symmetrisches Multiprocessing (SMP)
  • Vorteil: Konstante Zugriffszeit auf Speicher
  • Vorteil: Schneller Speicherzugriff zwischen Prozessen

figuma

Non Unified Memory Architecture

  • Vorteil: Clustering von SMPs
  • Nachteil: Ungleiche Zugriffszeiten auf Speicher





fignuma[computing.llnl.gov]

Harvard Architektur

  • Der von Daten- und Instruktionen gemeinsam geteilte Hauptspeicher ist der Flaschenhals bei der Programmausführung.

  • Aufteilung von Daten und Programmcode in getrennten Speicher beschleunigt die Ausführung von Maschinenanweisungen.

  • Das Leitwerk des Prozessors kann direkt mit dem Codespeicher verbunden werden!

figharvard1


Abb. 3. Übergang von zentralem Hauptspeicher zu N-Speicher System [CC,Wolf,2008]

Parallele Systeme

Definition

  • Zerlegung (Partitionierung) eines sequenziellen Algorithmus oder eines Programms in parallele Tasks (Prozesse) Parallele Komposition

  • Ausführung der Prozesse parallel (nebenläufig und ggfs. konkurrierend) auf mehreren Verarbeitungseinheiten (u. A. generische programmgesteuerte Prozessoren)

Motivation für parallele Datenverarbeitung

  • Verkleinerung der Berechnungslatenz

Def. Latenz: Gesamte oder Teilbearbeitungszeit eines Datensatzes

  • Erhöhung des Datendurchsatzes

Def. Datendurchsatz: Anzahl der verarbeiteten Datensätze pro Zeiteinheit

Parallele Systeme

  • Latenz und Bandbreite sind zunächst unabhängig!

  • Pipelining kann die Bandbreite erhöhen (nur Sinnvoll bei Datenströmen)

  • Parallele Tasks können die Latenz verringern

figlatband


Abb. 4. Unterschied Latenz zu Bandbreite

Parallele Systeme

Man unterscheidet: Parallele Rechnerarchitektur und parallele Datenverarbeitung

Motivation für anwendungsspezifische parallele Datenverarbeitung

  • Steigerung der Energieeffizienz von mikroelektronischen Systemen:

    • Komplexe generische Einprozessoranlagen besitzen ungünstige Energieeffizienz, aber:
    • Anwendungsspezifizierung und Parallelisierung kann zu verbesserter Energieeffizienz des Gesamtsystems führen!
  • Skalierung von parallelen Rechnern auf reine Digitallogiksysteme für anwendungsspezifische Lösungen kann deutliche Reduktion der Hardware-Komplexität und der elektrischen Leistungsaufnahme bedeuten!

    • System-on-Chip Entwurf
    • Leistungsaufnahme eine CMOS Digitalschaltkreises (f: Frequenz, N: Schaltende Transistoren, U: Spannung, C: Technologieparameter):
(1)
\[  P(f,N,U,C) \sim fNU^{2}C
\]

Parallele Systeme

figparpowerperf[Qualcomm]


Abb. 5. Erhöhung der Performanz und der Energieffizienz durch Parallelisierung

Parallele Systeme

Anwendung anwendungsspezifischer paralleler Datenverarbeitung

  • Digitale Bildverarbeitung und automatische Bildinterpretation (Vision)

  • Datenkompression (Video, mpeg)

  • Komplexe Steuerungssysteme mit großer Anzahl von Freiheitsgraden, wie z.B. Positionierungssteuerung von Robotergelenken und Maschinen

  • Kommunikation, z. B. nachrichten-basiertes Routing

  • Kryptoverfahren

  • Parallele numerische Verfahren, wie z. B. Lösung von Differentialgleichungen (Strömungsmechanik, Elektromagnetische Wellenausbreitung, Wetter- und Klimamodelle)

Parallele Systeme

Beispiel Numerik und Digitale Bildverarbeitung

  • Welche Probleme und Nachteile gibt es?

figparsum[1,2]


Abb. 6. Parallele Berechnung der Summe von Bildpixeln mit Baumstruktur

Parallele Systeme

Ebenen der Datenverarbeitung in Abhängigkeit vom Parallelisierungsgrad

figparlevel

Parallele Systeme

Beispiel Sensorisches Material

figsensonet


Abb. 7. Beispiel eines verteilten und parallelen Systems: Sensornetzwerk (unten rechts) mit Maschen Topologie mit System-on-Chip Sensorknoten (oben rechts) mit massiv paralleler Datenverarbeitung. Sensorik: Dehnungsmessstreifen auf Gummiplatte (links)

Echtzeitverarbeitung

  • Echtzeitverarbeitung bedeutet die Ausführung eines Tasks innerhalb eines vorgegebenen Zeitintervalls [t0,t1]
    • Soft Realtime: Zeitüberschreitung bei weicher Echtzeitanforderung Tolerierbar
    • Hard Realtime: Zeitüberschreitung bei harter Echtzeitanforderung Systemfehler

figrealtimespec1


Abb. 8. Echtzeitspektrum: Wiche und harte Echtzeitanforderungen bei unterschiedlichen Applikationen [F]

Echtzeitverarbeitung

figtaskarrivel1


Abb. 9. Periodische, sporadische, und aperiodische Tasks [F]

Echtzeitverarbeitung

Preemption

  • Wenn schon nicht alles Tasks gleichzeitig verarbeitet werden können, dann wenigstens die wichtigsten vorrangig ausführen

  • Das erfordert aber:

    • Festlegung einer Priorität
    • Bei Echtzeitanforderungen die Unterbrechung von unterlegenen (kleiner Priorität) Tasks

figpreempt1


Abb. 10. Unterschied preemptive und nicht preemptive Ausführung von Tasks [F]

Parallele Datenverarbeitung und Prozesse

figparproc3


Abb. 11. Ebenen der parallelen Datenverarbeitung

Limitierungen der von-Neumann Rechnerarchitektur

Zusammenfassung

  1. Datendurchsatz ist durch geteilten Speicherbus begrenzt - schlechte Skalierung von Multiprozessor- und Multikernsystemen

  2. Programm (Befehle) und Daten (Operanden) müssen sequenziell aus dem gemeinsam geteilten Hauptspeicher geladen werden

  3. Nur geringe Möglichkeiten der Parallelisierung (Pipeline-Architektur)

  4. Befehlsausführung in sechs Phasen erhöht Bearbeitungslatenz

  5. Generizität der Programmierbarkeit geht zu Lasten der Performanz (Latenz, Datendurchsatz, Energiebedarf) - keine algorithmische Optimierung möglich