Erlangen Classification System
# Erlangen Classification System

Das Erlangen Classification System (ECS) wurde 1975 von Wolfgang Händler entwickelt und dient zur Beschreibung von Computer-Architekturen hinsichtlich ihrer Parallelität und ihres Pipelinings. Motivation war unter anderem die Einordnung der verschiedenen parallelen Rechnerarchitekturen, qualitative Leistungsvergleiche und ein möglicher Bezug zu Anwendungen Hierzu werden Tripel verwendet (Angaben in eckigen Klammern sind nicht zwingend erforderlich):

Hierbei bedeutet

* k die Anzahl der nebenläufigen Steuerwerke (Leitwerke)
   * k’ die Anzahl der spezialisierten Steuerwerke für Programm- bzw. Prozessorpipelining
* d die Anzahl der nebenläufigen Rechenwerke (je Steuerwerk)
   * d’ die Anzahl der Pipelining-Rechenwerke (je Steuerwerk)
* w die Anzahl der parallelen Bitstellen im Rechenwerk (ALU)
   * w’ die Anzahl der elementaren Teilwerke

Des Weiteren gibt es folgende Verbindungsoperatoren:

* +: inhomogene Zusatzeinheiten
* v: Betriebsmodi
* x: Makropipelining.

## Klassifikation von Rechnerstrukturen

* Serienrechner t = (1,1,1)
* Parallelrechner
   * Rechner mit Nebenläufigkeit
      * Multiprozessor (k>1)
      * Feldrechner (d>1)
      * Parallelwortrechner (w>1)
   * Pipelinerechner
      * Rechner mit Makropipelining (k’>1)
      * Rechner mit Befehlspipelining (d’>1)
      * Rechner mit Phasenpipelining (w’>1)

In Verbindung mit aktuellen Rechnerarchitekturen weist das ECS mehrere Schwächen auf, beispielsweise wenn inhomogene Wortlängen und Pipeliningtechniken oder Multithreading zum Einsatz kommen. Außerdem fokussiert sich das ECS auf die verarbeitenden Strukturen und lässt speichernde Strukturen unberücksichtigt.

## Beispiele

* 16-bit-Mikroprozessor Intel 8086 mit Prefetch-Queue

       $t_{8086}$ = (1*1, 1*1, 16*2)
* Sechskernprozessor Intel Core i7 970 (Westmere-Gulftown) mit SSE-Befehlserweiterung und 128-bit Verarbeitung:

       $t_{Corei7970}$ = (1*1, 1*6, 128*16)
* Ein i860 32-Bit-Rechner mit einem Gleitkomma-Koprozessor und dreistufiger Pipeline:

       $t_{i860}$ = (1*1, 1*1, 32*3) + (0*0, 1*1, 64*3)
* Ein Distributed Array Processor (verteilter Feldrechner) mit drei Betriebsarten:

       $t_{DAP}$ = (1, 64, 64) v (1, 128, 32) v (1, 4096, 1)
* Ein 60-Bit-Zentralprozessor mit neunfacher Superskalarität und 15 vorgeschalteten 12-Bit-Vorverarbeitungseinheiten:

       $t_{CDC7600}$ = (15, 1, 12) x (1, 1*9, 60)
