101
Entwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit edric Lichtenau [email protected] Lehrstuhl f ¨ ur Rechnerarchitektur und parallele Rechner FB-14 Informatik Universit¨ at des Saarlandes Saarbr¨ ucken, im M¨ arz 1996

Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ [email protected] Lehrstuhl f¨ur

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Entwurf und Realisierungdes Speicherboards

der SB-PRAM

Diplomarbeit

Cedric [email protected]

Lehrstuhl f ur Rechnerarchitekturund parallele Rechner

FB-14 InformatikUniversitat des Saarlandes

Saarbr¨ucken, im Marz 1996

Page 2: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur
Page 3: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Danke, Danke!

Mein herzlicher Dank gilt:

� Herrn Professor Paul f¨ur die Vergabe eines praktischen und interessanten Themas

� meinen Eltern f¨ur ihre Unterst¨utzung, vor allem bei der”Eindeutschung“ meiner Arbeit

� Jorg Keller fur meine Betreuung und Leitung des Hardware-Teams

� Thomas Walle f¨ur seine Geduld und Erkl¨arungen auf all meine Fragen bzgl. des Netzwerk-knotens und der vielen Protokolle

� Dieter Scheerer f¨ur seine Witze und den Prozessor, ohne den es keine PRAM g¨abe

� Peter Bach f¨ur das Prozessorboard, die sehr gute Zusammenarbeit beim Aufbau der Verbin-dung zwischen Speicher und Prozessor, die vielen LEDs und die bunten Stifte

� Michael Bosch f¨ur den PRAM–Simulator, die PRAM–Befehlsbeschreibung, die guten Ideen— insbesondere die Schaltung zur Maximum–Bestimmung — und die n¨achtlicheUberwa-chung des Labors

� Stefan Franziskus f¨ur den PRAM–Simulator und die Programmiertestumgebung

� Andreas Gr¨avinghoff fur die hervorragende Zusammenarbeit bei der Entwicklung und Reali-sierung der Verbindung zwischen Netzwerk und Speicher sowie Bereitstellung einer funktio-nierenden Netzwerktestumgebung f¨ur das Speicherboard

� Andreas Paul f¨ur die Modellierung des Speicherboards und nichtsdestotrotz f¨ur die Ent-deckung der Fehler im Netzwerk–Routing–Algorithmus

� Jochen R¨ohrig fur seinen Startup–Code und seine Hilfe bei der Suche nach Hardware–Feh-lern, die durch seine Programme aufgedeckt wurden

� dem Rest des Software-Teams f¨ur Anspruche und geplanten (Miß)brauch des PRAM-Speichers

� dem Chaos 11-Team f¨ur die gute Unterhaltung, ...

� Tante Emma f¨ur all die leckeren unn¨otigen Kalorien

� allen anderen des Lehrstuhls, die ein prima Arbeitsklima erm¨oglichten

� and last but not least...dem Server und seinen 12 L¨uftern fur die Unterhaltung bis sp¨at in die Nacht hinein

Page 4: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur
Page 5: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Inhaltsverzeichnis

1 Einleitung 1

2 Problemspezifikation 32.1 Beschreibung der PRAM . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1.1 Shared–Memory Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.2 Die SB–PRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Aufgaben des globalen Speichers . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.1 Datenaustausch mit dem PRAM–Netzwerk . . . . . . . . . . . . . . . . . 62.2.2 Datenaustausch mit dem Host . . . . . . . . . . . . . . . . . . . . . . . . 72.2.3 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 Voruberlegungen 93.1 Auswahl des Speichertyps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.1.1 Statischer Speicher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.1.2 Dynamischer Speicher . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.1.3 Bewertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2 Parallelisierung der Speicherzugriffe . . . . . . . . . . . . . . . . . . . . . . . . . 103.2.1 Global–Queue–Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2.2 Verteilte Queues–Modell . . .. . . . . . . . . . . . . . . . . . . . . . . . 113.2.3 Auswertung und Auswahl der Modelle . . . . . . . . . . . . . . . . . . . 11

3.3 Platzbedarf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4 Schnittstellen und Timings 174.1 Schnittstelle zum Netzwerkboard . . .. . . . . . . . . . . . . . . . . . . . . . . . 17

4.1.1 Hinweg–Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.1.2 Ruckweg–Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.2 Schnittstelle zum Host . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.3 Fehlererkennung und –behandlung bei der SB–PRAM . .. . . . . . . . . . . . . 27

4.3.1 Fehlererkennung . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.3.2 Fehlerbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5 Realisierung des Boards 315.1 Mechanischer Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.2 Datenpfade und Speichergr¨oße . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.3 Reset– und Clock–Logik . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5.3.1 Reset–Logik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.3.2 Clock–Logik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3

Page 6: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5.4 Netzwerklogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.4.1 Hinweglogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.4.2 Betrieb derUbervoll–FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . 425.4.3 Ruckweglogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.5 Hostlogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.5.1 Hostzugriffe auf den globalen Speicher . . . . . . . . . . . . . . . . . . . 485.5.2 Hostzugriffe auf das Error–Register . . . . . . . . . . . . . . . . . . . . . 495.5.3 Interruptgenerierung an den Host . . . . . . . . . . . . . . . . . . . . . . 49

6 Realisierung des Speicherprozessors 516.1 Realisierung und Reset–Vorgang . . .. . . . . . . . . . . . . . . . . . . . . . . . 516.2 Datenpfade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526.3 Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

6.3.1 Aufbau der Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.3.2 Implementierung der Kontrollogik . . . . . . . . . . . . . . . . . . . . . . 54

6.4 Empfang von Netzwerkanfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . 556.4.1 Empfang von 1–Paket–Anfragen . . . . . . . . . . . . . . . . . . . . . . . 566.4.2 Empfang von 2–Pakete–Anfragen . . . . . . . . . . . . . . . . . . . . . . 56

6.5 Empfang von Hostanfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566.6 Scheduling von Refresh–Zugriffen . . . . . . . . . . . . . . . . . . . . . . . . . . 56

6.6.1 Erzwungene Refreshs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576.6.2 Hidden–Refreshs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

6.7 Scheduling und Dekodierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586.7.1 Scheduling der Zugriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . 596.7.2 Dekodierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

6.8 Ausfuhrung der Speicherzugriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . 606.8.1 Lese– und Schreibzugriffe . .. . . . . . . . . . . . . . . . . . . . . . . . 616.8.2 Multi–Prefix–Zugriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626.8.3 Abgebrochene Zugriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626.8.4 Refresh–Zugriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

6.9 Ruckversand von Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636.10 Arithmetisch–logische Einheit. . . . . . . . . . . . . . . . . . . . . . . . . . . . 656.11 Fehlererkennung und –behandlung . .. . . . . . . . . . . . . . . . . . . . . . . . 67

6.11.1 Uberprufung der Netzwerkpaketparit¨at . . . . . . . . . . . . . . . . . . . 676.11.2 Generierung undUberprufung der Speicherparit¨at . . . . . . . . . . . . . . 686.11.3 Lesen des Error–Registers . .. . . . . . . . . . . . . . . . . . . . . . . . 69

7 Prototypboard und Tests 717.1 Stand–Alone–Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717.2 Test mit dem Netzwerkboard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727.3 Test der Hostschnittstelle . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737.4 Einprozessor–PRAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737.5 Vierprozessor–PRAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737.6 Testergebnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Page 7: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

8 Zusammenfassung und Ausblick 758.1 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758.2 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

8.2.1 Anderung der Queue–Strategie . . . . . . . . . . . . . . . . . . . . . . . . 768.2.2 Einsatz von EDRAMs. . . . . . . . . . . . . . . . . . . . . . . . . . . . 768.2.3 ASIC–Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

A Abbildung des Boards 79

B Old–Node Protokoll 81B.1 Ubertragung . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81B.2 Busy–Behandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82B.3 Board–Einstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

B.3.1 Verzogerungsglieder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82B.3.2 Speicherprozessor–Einstellung. . . . . . . . . . . . . . . . . . . . . . . . 82

Page 8: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur
Page 9: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Abbildungsverzeichnis

2.1 Idealisierte PRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Aufbau der SB–PRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.3 Routing der SB–PRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.1 Global–Queue–Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Verteilte Queues–Modell . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.3 Blockschaltbild einer Bank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.1 Ubertragungstiming beim New–Node–Protokoll .. . . . . . . . . . . . . . . . . . 214.2 BUSY–Behandlung auf dem Hinweg . . . . . . . . . . . . . . . . . . . . . . . . . 224.3 Ubertragungstiming auf dem R¨uckweg . . . . . . . . . . . . . . . . . . . . . . . . 234.4 BUSY–Behandlung auf dem R¨uckweg . . . . . . . . . . . . . . . . . . . . . . . . 244.5 Realisierung der Verbindung zwischen Speicherboard und Host. . . . . . . . . . . 254.6 Ubertragungstiming zwischen Host und Speicherboard . .. . . . . . . . . . . . . 27

5.1 Mechanischer Aufbau eines Speicherboards . . . . . . . . . . . . . . . . . . . . . 315.2 Datenpfade des Boards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.3 Aufbau der Reset–Schaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.4 Ubertragungfehler durch Clock–Skew verursacht. . . . . . . . . . . . . . . . . . 365.5 Clock–Verteilung der SB–PRAM und des Speicherboards . . . . . . . . . . . . . . 365.6 Ubertragungstiming ¨uber Long–Links (bestcase). . . . . . . . . . . . . . . . . . 375.7 Ubertragungstiming ¨uber Long–Links (worstcase). . . . . . . . . . . . . . . . . . 385.8 Skizze der Delay–Lines–Schaltung . . . . . . . . . . . . . . . . . . . . . . . . . . 385.9 Timing des Netzwerkpaketempfangs . . . . . . . . . . . . . . . . . . . . . . . . . 395.10 Schaltung zum Empfang und zur Verteilung der Pakete . . . . . . . . . . . . . . . 405.11 Paketverteilung an die vier B¨anke . . . . . . . . . . . . . . . . . . . . . . . . . . 415.12 Skizze der Anbindung derUbervoll–FIFO . . . . . . . . . . . . . . . . . . . . . . 435.13 Paketempfang und –verteilung derUbervoll–FIFO . . . . . . . . . . . . . . . . . 445.14 Skizze der Schaltung zum R¨uckversand der Pakete . . . . . . . . . . . . . . . . . 455.15 Zeitlicher Ablauf der Signale auf dem R¨uckweg–Link . . . . . . . . . . . . . . . . 455.16 Skizze der Hostanbindung .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.17 Ablauf eines Hostlese– und Hostschreibzugriffs .. . . . . . . . . . . . . . . . . . 485.18 Skizze der Hostinterruptschaltung . . . . . . . . . . . . . . . . . . . . . . . . . . 50

6.1 Logisches Diagramm des Speicherprozessors . .. . . . . . . . . . . . . . . . . . 526.2 Datenpfade zum Empfang von Netzwerkanfragen . . . . . . . . . . . . . . . . . . 556.3 Zeitlicher Ablauf des Empfangs von 1–Paket–Anfragen . .. . . . . . . . . . . . . 566.4 Zeitlicher Ablauf des Empfangs von 2–Pakete–Anfragen .. . . . . . . . . . . . . 57

7

Page 10: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6.5 Scheduling der Refresh–Zugriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . 596.6 Realisierung des DRAM–Kontrollers .. . . . . . . . . . . . . . . . . . . . . . . . 606.7 Idealisiertes Timing eines RAM–Lese– und eines RAM–Schreibzugriffs. . . . . . 626.8 Timingablauf eines Refresh–Zugriffs . . . . . . . . . . . . . . . . . . . . . . . . . 636.9 Datenpfade zum R¨uckversand von Antworten . . . . . . . . . . . . . . . . . . . . 646.10 Datenpfade der ALU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656.11 Datenpfade zurUberprufung der Netzwerkpaketparit¨at . . . . . . . . . . . . . . . 676.12 Datenpfade zur Berechnung undUberprufung der Speicherparit¨at . . . . . . . . . 68

7.1 Aufbau der Stand–Alone–Testschaltung. . . . . . . . . . . . . . . . . . . . . . . 727.2 Aufbau der Testumgebung f¨ur die Netzwerkschnittstelle . .. . . . . . . . . . . . . 727.3 Aufbau der Einprozessor–PRAM . . .. . . . . . . . . . . . . . . . . . . . . . . . 737.4 Aufbau der Vierprozessor–PRAM . .. . . . . . . . . . . . . . . . . . . . . . . . 74

8.1 Schaltbild einer Adreß/Daten–EingangsFIFO . . . . . . . . . . . . . . . . . . . . 76

A.1 Abbildung des Speicherboards. . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

B.1 Ubertragungstiming beim Old–Node–Protokoll .. . . . . . . . . . . . . . . . . . 81

Page 11: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Kapitel 1

EinleitungAm Anfang der Rechner¨ara war ein Computer nur ein sehr großer mechanischer Rechner, der f¨ureine bestimmte Aufgabe fest verdrahtet war. Die Ausf¨uhrung einer Multiplikation dauerte damalsnoch mehrere Sekunden [ENC92].

Mit Einf uhrung beschr¨ankt programmierbarer Rechner in der Mitte dieses Jahrhunderts zeigte sichzum ersten Mal der Bedarf an schnellen Speichern zum Festhalten von Zwischenergebnissen. DieseSpeicher wurden durch R¨ohren realisiert, die eine Zugriffszeit von etwa zwei Millisekunden hatten.

Etwa 50 Jahre sp¨ater mit Beginn frei programmierbarer Digital–Rechner kann eine Multiplikationuber 100 Millionen mal schneller als damals ausgef¨uhrt werden. Leider konnte dieser Geschwin-digkeitszuwachs nicht f¨ur alle Komponenten eines Rechners erbracht werden. Heutige Speicherbau-steine sind zwar sehr viel kleiner geworden, so daß große Speicherkapazit¨aten kein Problem mehrdarstellen, ihre Geschwindigkeit ist jedoch gegen¨uber fruheren Speicherr¨ohren nur um den Faktor1000 gestiegen.

Diese sehr unterschiedliche Entwicklung ist eines der Hauptprobleme moderner CPUs. Parallel zurWeiterentwicklung der Rechnerelemente wurden, um Probleme schneller l¨osen zu k¨onnen, neueMaschinen mit mehreren parallel arbeitenden Prozessoren untersucht, die auf gemeinsame Datenzugreifen. Da Zugriffe im Speicher auch weiterhin nur sequentiell ablaufen k¨onnen, treten dabeinoch großere Probleme auf als bei Einprozessorrechnern. Das nicht nur, weil mehr Zugriffe erfol-gen, sondern auch, weil gleichzeitige Zugriffe auf eine Adresse arbitriert werden m¨ussen.

Solch ein massiv–paralleler Rechner wird hier am Lehrstuhl f¨ur Rechnerarchitektur der Universit¨atdes Saarlandes gebaut: die SB–PRAM. Diese Arbeit befaßt sich mit dem Entwurf und der Realisie-rung des Speichers dieses Experimentalrechners.

Das nachste Kapitel beschreibt zun¨achst das zugrunde liegende Maschinenmodell der SB–PRAMund Anderungen, die bei der Saarbr¨ucker Implementierung durchgef¨uhrt wurden. Am Ende wer-den die Aufgaben der Speichermodule definiert. In Kapitel 3 sind Vor¨uberlegungen dargestellt, diehinsichtlich des Aufbaus angestellt wurden. Kapitel 4 befaßt sich mit der Beschreibung der An-schlußschnittstellen sowie der m¨oglichen Fehler und Schutzmechanismen der SB–PRAM. Auf dieRealisierung wird in den beiden darauf folgenden Kapiteln eingegangen, bevor die Tests des Proto-typboards vorgestellt weren.

1

Page 12: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

1 Einleitung

2

Page 13: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Kapitel 2

Problemspezifikation

Um die Rolle der Speicheranbindung zu verstehen, sind Grundkenntnisse des PRAM–Modells unddessen Saarbr¨ucker Implementierung notwendig. Am Anfang dieses Kapitels werden diese Kon-zepte soweit erl¨autert, als sie f¨ur die Ableitung der Funktionalit¨at und Aufgaben des Speicherboardsnotwendig sind.

2.1 Beschreibung der PRAM

2.1.1 Shared–Memory Modell

Ende der siebziger Jahre als die Entwicklung der ersten Parallelrechner begann, suchten Theoretikernach einem einfachen Modell f¨ur diese Maschinen, um die Komplexit¨at von Parallelalgorithmenuntersuchen zu k¨onnen. Ein solches Modell wurde von FORTUNE und WYLLIE in [FW78] unterdem NamenParallel Random Access Machine, kurz PRAM, vorgestellt. Bei diesem Modell, auchShared–Memory Modell genannt, greifenn Prozessoren parallel in konstanter Zeit auf einen ge-meinsamen Speicher zu. Dieses Modell entspricht dem der Abbildung 2.1.

Shared Memory

n1 2

Abbildung 2.1: Idealisierte PRAM

Solch ein skalierbares Modell kann mit heutiger Technik nicht realisiert werden, da es keine Spei-cherbausteine gibt, die gleichzeitign Lese– und Schreibzugriffe f¨ur n > 4 durchfuhren konnen.Eine Losung dieses Problems ist, das PRAM–Modell auf Parallelrechnern mit verteilten Speichernzu simulieren. Solange die von einem Prozessor ben¨otigten Daten vorwiegend in seinem lokalen

3

Page 14: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

2 Problemspezifikation

Speicher zu finden sind, ist die Simulation effizient. Wenn jedoch die Lokalit¨at der Daten nichtgewahrleistet ist, wird die zum Austausch der Daten zwischen den Prozessoren (Message–Passing)notwendige Zeit dominant gegen¨uber der Rechnerzeit. Auf der Suche nach einer besseren L¨osungveroffentlichte RANADE 1987 einen probabilistischen Algorithmus (siehe [Ran87]), der mit kon-stanter Knotenqueuel¨ange arbeitet, um Pakete zwischen Knoten eines Butterfly–Netzwerks zu rou-ten. Mit Hilfe dieses Algorithmus stellte er ein Jahr sp¨ater in einer theoretischen Arbeit [RBJ88] diesogenannteFluent Machinevor, die eine PRAM in mehreren Phasen auf einem Butterfly–Netzwerksimuliert. Dabei enthalten die Knoten dieses Netzwerks jeweils einen Prozessor und ein Speicher-modul. Diese Arbeit bildet die Grundlage der SB–PRAM.

2.1.2 Die SB–PRAM

Das Modell der Fluent–Machine wurde am Lehrstuhl f¨ur Rechnerarchitektur verbessert und anmogliche Hardwarel¨osungen angepaßt (siehe [AKP91], [Kel92]). Die SB–PRAM ist eine CRCW–Priority (Concurrent Read, Concurrent Write)–PRAM, d.h. es d¨urfen gleichzeitig mehrere Prozes-soren die gleiche Operation (lesen oder schreiben) auf der selben Speicherzelle ausf¨uhren. BeiSchreibkonflikten gewinnt immer der Prozessor mit der kleinsten Nummer.

GlobaleSpeichermodule

Lokaler Speicherund Platten

Butterfly Network

n1 2

n1 2

HOST

Prozessoren

Abbildung 2.2: Aufbau der SB–PRAM

Der Aufbau der SB–PRAM ist in Abbildung 2.2 gezeigt. Jedem Prozessor wurde ein kleiner lo-kaler Speicher f¨ur lokale Daten, ein Programmspeicher und zwei SCSI–Anschl¨usse fur Festplattenzugefugt. Der globale Speicher wurde in so viele Module unterteilt, wie es Prozessoren gibt. DerDatenaustausch zwischen beiden erfolgt ¨uber ein Butterfly–Netzwerk, das Anfragen mit gleicherAdresse und gleichem Anfragemodus kombiniert.

4

Page 15: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

2.1 Beschreibung der PRAM

Der Zugriff auf eine Adresse des gemeinsamen Speichers erfolgt durch ein Anfragepaket, das ¨uberdas Netzwerk verschickt wird. Um die Latenz dieser Anfrage zu verstecken, enth¨alt jeder physika-lische Prozessor 32 virtuelle Prozessoren, die der Reihe nach je einen Befehl ausf¨uhren (Runde).Des weiteren wird die Antwort auf eine Anfrage eines virtuellen Prozessors erst in der ¨ubernachstenRunde, nachdem sie gestellt wurde, erwartet (delayed load). Insgesamt darf das Sortieren und Rou-ten einer Anfrage, der eigentliche Speicherzugriff und das Routing der Antwort 64 Clock–Zyklennicht uberschreiten, da andernfalls die Prozessoren angehalten werden m¨ussen (siehe Abbildung2.3). Eine hinreichend gleichm¨aßige Verteilung der Zugriffe auf alle Module wird erreicht durchHashing des Adreßraumsf0; : : : ;m� 1g mit einer bijektiven Funktion der Formf (x) = ax modm (fur geeignetesa). Sollten die Prozessoren trotzdem zu oft angehalten werden, wird eine neueHash–Funktion gew¨ahlt ([Kel93]).

Butterfly Network

Butterfly Network

1 2 128

Prozessoren (je 32 virtuelle)

Sortierknoten (Hinweg)

Sortierknoten (Rückweg)

Butterfly (Hinweg)

Speichermodule

Butterfly (Rückweg)

MM MM MM

SN SN SN

SNSNSN

Hinweg Rückweg

Abbildung 2.3: Routing der SB–PRAM

Die Verbindung zur Außenwelt wird ¨uber einen Hostrechner (Sparc 10) durch eine spezielle Kartehergestellt. Diese ist zum einen an den globalen Speicher angeschlossen, um Ein– und Ausgabe von

5

Page 16: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

2 Problemspezifikation

Daten zu erlauben, andererseits aber auch an die Prozessoren, um sie zu unterbrechen bzw. auf ihrelokalen Ressourcen zugreifen zu k¨onnen (z.B. Programm laden, Festplatten auslesen).

Der Befehlssatz der PRAM ist im wesentlichen von der Berkeley–RISC abgeleitet (siehe [PS81]). Erwurde unter anderem um MP– (Multi–Prefix) und SY–Befehle (Sync – MP ohne Antwort) erweitert,die direkte ALU–Operationen auf dem Speicher ausf¨uhren. Diese Befehle, die sowohl vom Netz-werk als auch vom Speicher hardwareunterst¨utzt sind, erlauben eine Art parallelesRead–Modify–Write mit mehreren Prozessoren:

Def: Sei � 2 fADD; AN D; OR ; M AX g ein Operator undA eine Adresse mit InhaltD.Fuhren die Prozessoreni1 < i2 < :: : < ik den Befehl MP(A,�,Dj) aus fur j = 1; : : : ;k,dann gilt am Ende des Schritts:

� Inhalt(A)=D�D1 � � � � �Dk

� Prozessori j erhalt: D�D1� � � � �Dj�1

Adressen– und Datenbreite der SB–PRAM betragen grunds¨atzlich 32 Bit (Long). Speicheropera-tionen auf 16 Bit– (Word) und 8 Bit–Daten (Byte) werden hardwarem¨aßig nicht unterst¨utzt. DieAnzahl der physikalischen Prozessoren muß aus Designgr¨unden eine Zweierpotenz sein. F¨ur denPrototyp der SB–PRAM sind 128 Prozessoren vorgesehen.

2.2 Aufgaben des globalen Speichers

Im Mittelpunkt der SB–PRAM steht der globale Speicher. Dieser muß eine hinreichende I/O–Leistung besitzen, um mindestens dem maximalen Prozessor– und Hostanfragedurchsatz zu ge-nugen und außerdem gen¨ugend Rechenleistung aufweisen, um die Multi–Prefix–Befehle ohne we-sentliche Verz¨ogerung ausf¨uhren zu k¨onnen. Bei fehlerhaften Netzanfragen muß die Integrit¨at desSpeichers erhalten bleiben, und Fehler sollten f¨ur Debugging–Zwecke gemeldet werden.

Die Aufgaben des globalen Speichers k¨onnen in drei Kategorien eingeteilt werden:

� Datenaustausch mit dem Netzwerk

� Datenaustausch mit dem Host

� Debugging-Unterst¨utzung

2.2.1 Datenaustausch mit dem PRAM–Netzwerk

Die Prozessoranfragen k¨onnen in drei Arten unterteilt werden:

� Die erste beinhaltet einfache Lese– und Schreibanfragen, die nur einen RAM–Zugriff ben¨oti-gen.

� Die zweite Art besteht aus den verschiedenen Multi–Prefix–Anfragen, die zwei Speicherzu-griffe und eine ALU–Operation erfordern.

� Die dritte Art besteht aus fehlerhaften Anfragen, die entweder an ihrem Befehl oder an ihrerfalschen Parit¨at zu erkennen sind. Die Parit¨at einer Anfrage sollte daher vor jedem RAM–Zugriff uberpruft werden.

6

Page 17: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

2.2 Aufgaben des globalen Speichers

Um ein flussiges Arbeiten der Prozessoren zu erreichen, muß der Durchsatz des Speichers minde-stens so hoch sein wie der der Prozessoren. Bei optimaler Verteilung der Anfragen, was bedeutet,daß nicht zwei Prozessoranfragen mit unterschiedlicher Adresse gleichzeitig an das selbe Speicher-modul geschickt werden, muß h¨ochstens eine Anfrage pro Prozessortakt von jedem Speichermodulabgearbeitet werden. Da der SB–PRAM–Takt, der vom Netzwerk und den Speichermodulen benutztwird, viermal schneller ist als der Takt, der die Prozessoren versorgt, muß also, vom Speicher ausgesehen, eine Prozessoranfrage von den Speichermodulen alle vier Zyklen des SB–PRAM–Taktsabgearbeitet werden. Eine optimale Verteilung der Anfragen wird bei den meisten Anwendungspro-grammen jedoch nicht erreicht. Um die Ungleichm¨aßigkeit in der Verteilung auszugleichen, sollteder Speicherdurchsatz dementsprechend echt gr¨oßer sein als der der Prozessoren.

2.2.2 Datenaustausch mit dem Host

Die Hauptaufgabe beim Datenaustausch zwischen Speichermodulen und Host ist dieUbertragunggroßer Mengen von Ein– und Ausgabedaten, die von allen Prozessoren benutzt bzw. erzeugt werden,wie z.B. Matrizen fur numerische Anwendungen oder bei parallelen Rendering–Verfahren [Pod95].Die Behandlung dieserUbertragung sollte m¨oglichst parallel zur Abarbeitung der Netzanfragen er-folgen ohne Anhalten (Freeze) der Prozessoren, damit z.B. auch graphische Animationen in Echtzeitberechnet und angezeigt werden k¨onnen. Eine R¨uckmeldung von Netzfehlern mittels Interrupts anden Host sollte auch vorgesehen werden, da Fehler bei Anfragen ohne Antwortpaket sonst nicht andie Prozessoren signalisiert werden k¨onnen.

Ein vom Host generiertes Signal zum Initialisieren (Reset) der Speicherlogik ist ebenfalls w¨un-chenswert, damit die SB–PRAM in einem definierten Zustand neu gestartet werden kann.

2.2.3 Debugging

Das Abspeichern fehlerhafter Anfragen w¨are von großer Hilfe sowohl f¨ur das Hardware– (z.B.Queue–Overrun) als auch f¨ur das Software–Debugging (z.B. nicht kombinierbare Anfragen), umdie Ursache eines Fehlers schnell herauszufinden. Fehlerhafte Anfragen sind dann vom Host auszu-lesen, nachdem sie durch einen Interrupt signalisiert worden sind.

Im nachsten Kapitel werden einige M¨oglichkeiten der Implementierung der hier vorgestellten Auf-gaben untersucht. Ziel ist es, einen m¨oglichst hohen Durchsatz und geringe Latenz bei allen Anfra-gen zu erreichen.

7

Page 18: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

2 Problemspezifikation

8

Page 19: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Kapitel 3

Vor uberlegungen

In diesem Kapitel werden einigeUberlegungen und Berechnungen angestellt, die f¨ur die Reali-sierung des Speicherboards wichtig sind. Im ersten Teil werden die verschiedenen Speichertypenmit ihren Vor– und Nachteilen aufgef¨uhrt. Entsprechend wurde die Art des Speichers bestimmt. Imzweiten Teil werden die Untersuchungen vorgestellt, die zu einer Beschleunigung des Zugriffs aufein Speichermodul f¨uhrten. Im letzten Teil wird n¨aher auf das Boarddesign der gew¨ahlten Losungeingegangen.

3.1 Auswahl des Speichertyps

Grundsatzlich wird zwischen zwei Speichertypen unterschieden: den statischen (SRAM), die Datenbehalten, solange Strom da ist; und den dynamischen (DRAM), die regelm¨aßig aufgefrischt werdenmussen, um Daten zu halten. Neben diesen klassischen Speichertypen sind seit kurzem sogenannteFlash– und Enhanced–DRAM–Bausteine erschienen. Beide wurden hier jedoch nicht weiter un-tersucht, da die ersten zu hohe Zugriffszeiten haben und die zweiten noch zu teuer sind, und esaugenblicklich auch noch Beschaffungsprobleme gibt.

3.1.1 Statischer Speicher

Ein Zugriff auf einen statischen Speicher erfolgt durch Anlegen einer Adresse und im Falle einesSchreibzugriffs noch zus¨atzlich durch Anlegen von Daten und eines Schreibsignals. Diese einfacheZugriffsart hat den Vorteil, daß sie nur eine sehr einfache Logik zur Ansteuerung ben¨otigt. DieNachteile von SRAMs gegen¨uber DRAMs sind: ein sehr hoher Stromverbrauch und im allgemeinenentweder kleine Speicherkapazit¨aten oder hohe Zugriffszeiten. Ferner werden bei SRAMs viermalsoviele Transistoren pro Bit ben¨otigt wie bei DRAMs, was sich im Preis bemerkbar macht.

3.1.2 Dynamischer Speicher

Ein dynamischer Speicher ist intern als Matrix organisiert. Der Zugriff erfolgt in drei Phasen. Zuerstwird durch Anlegen der Zeilenadresse und Aktivieren des/RAS (Row Adress Strobe) eine Zeileaus dem Speicherfeld destruktiv ausgelesen und in einen Zwischenpuffer gespeichert. In der zweitenPhase wird durch Anlegen der Spaltenadresse, des/CAS (Column Adress Strobe) und bei Schreib-zugriffen noch der Daten und des/WR–Signals die gew¨unschte Zelle im Zwischenpuffer gelesenbzw. beschrieben. Intern braucht das DRAM noch eine dritte Phase, w¨ahrend der keine neuen Zu-griffe moglich sind, um den Zwischenpufferinhalt ins Speicherfeld zur¨uckzuschreiben. Diese drei

9

Page 20: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

3 Voruberlegungen

Phasen zusammen ergeben dieCycle–Time, die in der Regel fast doppelt so lang ist wie dieAccess–Time.

Da der Inhalt eines DRAMs nach einer vom DRAM–Typ abh¨angigen fixen Zeit verloren geht,mussen regelm¨assig alle Zeilen des Speicherfeldes aufgefrischt werden. Der sogenannteRefresheiner Zeile erfolgt entweder bei einem Zugriff auf eine Zelle dieser Zeile, oder durch Starten einesexpliziten Refresh–Zugriffs, der nichts anderes ist als ein Lesezugriff, bei dem nur die Zeilenadresseangegeben wird und keine Daten vom DRAM auf den Bus gelegt werden.

Die Zugriffsart, die bei DRAMs verwendet wird, halbiert die Adreßbusbreite, da Zeilen– und Spal-tenadresse den gleichen Bus benutzen. Sie erschwert aber die Kontrollogik im Vergleich zu SRAMs.Der Aufwand, der noch zus¨atzlich zur Durchf¨uhrung der Refreshs notwendig ist, wird bei moder-nen DRAM–Modulen durch Unterst¨utzung des”/CAS before /RAS Refresh”stark erleichtert (siehe[RAM94]).

3.1.3 Bewertung

Bei der SB–PRAM ist eine Speichergr¨oße von mindestens 4 Mega–Long (ML, 1 Long = 4 Byte) prophysikalischem Prozessor vorgesehen. Damit wird eine Kapazit¨at von mindestens 512ML f¨ur denglobalen Speicher der 128–Prozessor Maschine erreicht. Die Realisierung einer solchen Speicher-große mit schnellen SRAMs wurde aus Kostengr¨unden verworfen. Bei langsamen SRAMs geht derGeschwindigkeitsvorteil gegen¨uber DRAMs verloren. Ferner w¨urden bei SRAMs der hohe Strom-verbrauch und die erzeugte W¨arme zu Problemen f¨uhren. Aus all diesen Gr¨unden wurde der Einsatzvon DRAMs vorgezogen.

3.2 Parallelisierung der Speicherzugriffe

Schnelle DRAMs besitzen eineCycle–Timevon 110 Nanosekunden (ns), so daß bei 32MHz (ange-strebter SB–PRAM–Takt) ein Speicherzugriff alle vier Clock–Zyklen ausgef¨uhrt werden kann. BeiMulti–Prefix–Anfragen m¨ussen mindestens ein Lese– und ein Schreibzugriff im Speicher stattfin-den, was acht Zyklen dauert. Da die Prozessoren aber alle vier Zyklen des SB–PRAM–Takts eineAnfrage erzeugen k¨onnen, was einen h¨oheren Durchsatz als den des Speichers bedeutet, wurde einemogliche Parallelisierung der Zugriffe untersucht.

Dabei wurde der Speicher eines Moduls inn unabhangige Speicherb¨anke unterteilt, die jeweilsvon einem Speicherprozessor kontrolliert werden. Eine solche Aufteilung kann effizient anhand derAdresse realisiert werden, vorausgesetzt, daßn eine Zweierpotenz ist. Wie beim Netzwerk garan-tiert hierbei das Hashing der Adressen eine relativ gleichm¨aßige Verteilung der Zugriffe auf alleBanke (siehe [Kel92]). Bei paralleler Abarbeitung der Anfragen muß noch beachtet werden, daßdie Antworten in der gleichen Reihenfolge, wie die Anfragen eingetroffen sind, zur¨uckgeschicktwerden.

Um die ungleichm¨aßige Anfrageverteilung auf den Speichermodulen auszugleichen, wird eine FI-FO zwischen Netzwerk und Speicher geschaltet. Dabei gibt es zwei M¨oglichkeiten: entweder kann

10

Page 21: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

3.2 Parallelisierung der Speicherzugriffe

die FIFO in jede Speicherbank eingebaut werden oder nur einmal pro Modul. Die Vor– und Nach-teile beider Losungen werden im folgenden diskutiert.

3.2.1 Global–Queue–Modell

Dieses Modell besteht aus einer einzigen FIFO am Eingang des Moduls und mehreren Abarbei-tungseinheiten (B¨anke). Die vom Netz ankommenden Pakete werden in die FIFO abgelegt. EinPaket, das am FIFO–Ausgang anliegt, wird an die Bank, die f¨ur den Paketadreßbereich zust¨andigist, weitergeleitet, sobald diese frei ist.

FIFO

Netzwerk

Bank 1 Bank n

Eingangs

Einheit

Speicher

Einheit

Speicher

Abbildung 3.1: Global–Queue–Modell

Solange die Pakete auf alle B¨anke zyklisch verteilt werden k¨onnen, liefert dieses Modell gute Er-gebnisse. Kommen jedoch mehrere Pakete hintereinander f¨ur die gleiche Bank an, erh¨oht sich dieAnzahl der Pakete, die in der FIFO zwischengespeichert werden m¨ussen, schnell, da keine Paketean dieubrigenn�1 Banke verteilt werden k¨onnen.

3.2.2 Verteilte Queues–Modell

Bei diesem Modell besitzt jede Abarbeitungseinheit eine eigene FIFO. Die vom Netz ankommendenPakete werden direkt, anhand ihrer Adresse, an die entsprechende Bank geleitet. Dieses Modellhat den Vorteil, daß eine Paketverteilung, die nicht zyklisch auf alle B¨anke erfolgt, weniger insGewicht fallt als beim Global–Queue–Modell. Der Nachteil sind h¨ohere Hardwarekosten wegenVervielfachung der EingangsFIFOs.

3.2.3 Auswertung und Auswahl der Modelle

Zur Bewertung der Modelle wurde eine Simulation mit einer unterschiedlichen Anzahl von B¨ankenund FIFO–Tiefen durchgef¨uhrt. Um eine hohe Netzwerkbelastung zu simulieren, wurde ein Netz-paket mit zufalliger Adresse alle zwei Zyklen, vorausgesetzt die Ziel–FIFO war nicht voll, am Mo-duleingang generiert. Dies entspricht der Verteilung vonn verschiedenen Prozessoranfragen aufn=2 Speichermodule pro Prozessorzyklus. Dabei wurden — aufgrund der Ergebnisse der auf demSB–PRAM–Simulator gelaufenen Testprogramme (Apfelm¨annchen [Apf94], P4–Testprogramme

11

Page 22: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

3 Voruberlegungen

Netzwerk

FIFO FIFO

Bank 1 Bank n

Eingangs Eingangs

Einheit

Speicher Speicher

Einheit

Abbildung 3.2: Verteilte Queues–Modell

[P4B94], Radiosity [Pod95]) — Pakete im Verh¨altnis 60% load (LD), 20% store (ST ), 10% Multi–Prefix (M P ) und 10% Sync (SY ) gewahlt. Die Abarbeitung eines Pakets des TypsLD oderSTbenotigt nur einen Speicherzugriff, der bei 32MHz mit vier Zyklen bewertet wurde. In gleicherWeise wird fur M P – undSY –Pakete, die zwei Speicherzugriffe ben¨otigen, die Abarbeitungszeitmit acht Zyklen definiert. Um brauchbare Werte zu erreichen, wurde jede Simulation mit 1 MillionPaketen durchgef¨uhrt. Die Ergebnisse beider Modelle sind in den nachstehenden Tabellen und Gra-phen zusammengefaßt.

Es wurde zuerst die Zeit gemessen, w¨ahrend der eine EingangsFIFO voll war und deshalb dasSpeicherboard — um das Netzwerk anzuhalten —busy meldete. Diese Zeit ist in der n¨achstenTabelle in Anzahl von Zyklen, w¨ahrend derbusygemeldet wurde (Busy–Zyklen) aufgef¨uhrt, relativzu den insgesamt zur Abarbeitung aller Anfragen ben¨otigten Zyklen.

# Tiefe der FIFOBk 1 3 4 6 10

2 44.15 44.18 44.10 44.17 44.134 30.46 30.43 30.44 30.45 30.498 18.92 18.87 18.91 18.83 18.86

% Busy–Zyklen bei globaler Queue

# Tiefe der FIFOsBk 1 3 4 6 8

2 45.75 39.22 37.76 35.94 34.854 20.74 4.30 1.99 0.39 0.068 5.65 0.09 0.01 0.00 0.00

% Busy–Zyklen bei verteilten Queues

051015202530354045

1 2 3 4 5 6 7 8 9 10Tiefe der FIFO

3 3 3 3 3

+ + + + +

2 2 2 2 2

051015202530354045

1 2 3 4 5 6 7 8

%busy

Tiefe der FIFOs

3

3 3 3 3

+

+ + + +2

2 2 2 2

12

Page 23: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

3.2 Parallelisierung der Speicherzugriffe

In der nachsten Tabelle wird der Paketdurchsatz aufgezeichet. Dieser berechnet sich jeweils ausder Gesamtzahl der Zyklen, die ben¨otigt werden, um alle Anfrage abzuarbeiten, geteilt durch dieAnzahl der Anfragen.

# Tiefe der FIFOBk 1 3 4 6 10

2 3.58 3.58 3.58 3.58 3.584 2.87 2.88 2.87 2.87 2.878 2.47 2.47 2.46 2.46 2.47

mittlere Zyklenanzahl pro Paketbei globaler Queue

# Tiefe der FIFOsBk 1 3 4 6 8

2 3.69 3.29 3.21 3.12 3.074 2.52 2.09 2.04 2.01 2.008 2.12 2.00 2.00 2.00 2.00

mittlere Zyklenanzahl pro Paketbei verteilten Queues

2

2.5

3

3.5

4

1 2 3 4 5 6 7 8 9 10Tiefe der FIFO

3 3 3 3 3

+ + + + +

2 2 2 2 2

2

2.5

3

3.5

4

1 2 3 4 5 6 7 8

Zyklen

/Paket

Tiefe der FIFOs

3

3 33 3

+

+ + + +22 2 2 2

Die Simulationen zeigen, daß der Durchsatz beim Global–Queue–Modell unabh¨angig von der FIFO-Tiefe ist. Die Ergebnisse dieses Modells sind bei Erh¨ohung der FIFO–Tiefe folglich viel schlechterals beim Verteilte–Queues–Modell. Darum wurde das Global–Queue–Modell nicht weiter verfolgt.

Die Unterteilung in acht B¨anke beim Verteilte–Queues–Modell wurde ebenfalls fallengelassen, dasie kaum bessere Ergebnisse als das Vierer–Modell bringt, bei h¨oheren Hardwarekosten. Um dieEntscheidung zwischen dem Zweier– und dem Vierer–Bankmodell zu treffen, wurde eine weitereSimulation unter ¨ahnlichen Bedingungen wie bei den vorherigen Simulationen durchgef¨uhrt, jedochmit der Ausnahme, daß der Anteil der Multi–Prefix–Befehle (M P , SY ) in den generierten Anfra-gen variiert wurde. Die Ergebnisse dieser Simulation sind in den n¨achsten Tabellen aufgelistet:

% Tiefe der FIFOsMP 1 3 4 6 8

0 3.17 2.82 2.76 2.68 2.6425 3.81 3.41 3.32 3.23 3.1850 4.41 3.96 3.88 3.76 3.7175 4.99 4.51 4.41 4.29 4.23100 5.55 5.04 4.94 4.81 4.74

mittlere Zyklenanzahl pro Paketmit zwei Banken

% Tiefe der FIFOsMP 1 3 4 6 8

0 2.27 2.02 2.00 2.00 2.0025 2.59 2.12 2.06 2.01 2.0050 2.91 2.32 2.22 2.10 2.0575 4.99 4.51 4.41 4.29 4.23100 3.53 2.86 2.73 2.58 2.50

mittlere Zyklenanzahl pro Paketmit vier Banken

13

Page 24: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

3 Voruberlegungen

2

3

4

5

6

7

1 2 3 4 5 6 7 8Tiefe der FIFOs

100% MP 3

3

3 3 3 3

50% MP +

++ + + +

0% MP 2

22 2 2 2

2

3

4

5

6

7

1 2 3 4 5 6 7 8

Zyklen

/Paket

Tiefe der FIFOs

100% MP 3

3

3 3 3 3

50% MP +

++ + + +

0% MP 2

22 2 2 2

Bei der Unterteilung in zwei B¨anke kann der Speicher mit dem Prozessordurchsatz bei einemMulti–Prefix–Anteil von mehr als 50% nicht mehr mithalten. Darum wurde das Vierer-Bankmodellgewahlt. Diese Wahl impliziert jedoch einen h¨oheren Hardwareaufwand. Im n¨achsten Abschnittwird seine Realisierbarkeit untersucht.

3.3 Platzbedarf

Eine Bank muß mindestens folgende Hauptfunktionsbl¨ocke besitzen, um die in Kapitel 2 definiertenAufgaben zu erf¨ullen:

� zwei 36–bit EingangsFIFOs f¨ur Adreß– und Datenpakete

� eine 36–bit Parit¨atsuberprufungeinheit fur Netzpakete

� eine 36–bit Parit¨atsberechnungeinheit f¨ur Antwortpakete

� eine 32–bit ALU fur Multi–Prefix–Befehle

� ein 32–bit Register f¨ur den 2. Operand der Multi–Prefix– und Sync–Operationen

� einen DRAM–Kontroller

� eine Steuerungslogik zur Kontrolle der Funktionsbl¨ocke

� ein DRAM–Modul

Die Funktionsbl¨ocke und die Datenpfade, die sie verbinden, sind in Abbildung 3.3 skizziert.

Der diskrete Aufbau einer Bank mit Standard–ICs w¨are sehr teuer, unflexibel und platzaufwendiggewesen. Außerdem w¨aren bei einer solchen L¨osung noch Probleme bei der Vernetzung sowie derGeschwindigkeit aufgetreten.

Darum wurde ein FPGA–Chip (Field Programmable Gate Array, siehe [ACT94]) eingesetzt, aufdem die Funktionalit¨at einer Bank mit Ausnahme des DRAM–Moduls implementiert ist. DieseLosung erlaubt neben einer Geschwindigkeitserh¨ohung eine große Flexibilit¨at der Bankfunktio-nalitat, was Korrekturen und sp¨atere Erweiterungen erm¨oglicht durch Programmieren eines neuenChips. Aufgrund des Einsatzes eines FPGAs h¨angt die Tiefe der EingangsFIFO allein von der Gr¨oßedes gew¨ahlten FPGAs ab. Die FIFO–Tiefe wird entsprechend bei Realisierung des FPGAs spezifi-ziert. Eine Tiefe von mindestens drei Paketen w¨are aufgrund der Simulationsergebnisse w¨unschens-wert.

14

Page 25: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

3.3 Platzbedarf

FIFO

Adressen

36-bit

Daten

FIFO

36-bit

-Logik

Steuerungs

DRAM SIMM

ALU

32-bitO-Reg.

DRAM

Ctrl.

Datenbus Netzbus

Netzwerkrückweg

Paritäts-

Überprüf.

Berech.-

Paritäts

Netzwerkhinweg

Adreßbus

Abbildung 3.3: Blockschaltbild einer Bank

15

Page 26: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

3 Voruberlegungen

16

Page 27: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Kapitel 4

Schnittstellen und Timings

In diesem Kapitel werden im ersten Teil die verschiedenen Schnittstellen, Timings und Protokollebeschrieben, die zwischen Speicherboard, Netzwerkboard und Host benutzt werden. Im zweitenTeil wird der zeitliche Ablauf der Netz– und Hostanfragen auf dem Speicherboard vorgestellt, bevorabschließend die Fehlererkennung und –behandlung der SB–PRAM diskutiert wird.

4.1 Schnittstelle zum Netzwerkboard

Das Netzwerk sammelt die Anfragen der Prozessoren und leitet sie an das entsprechende Speicher-modul weiter. Eine ausf¨uhrliche Beschreibung des Netzwerkknotens und –boards ist in [Wal95] und[Gra95] zu finden.

Die Verbindung zwischen den verschiedenen Einheiten des Netzwerks (Sortierknoten und interneStufen des Netzwerks) und der Speichermodule sind alle einheitlich realisiert. Sie werden im wei-teren als Netzwerklink bezeichnet. Ferner wird unterschieden zwischen Hinweg und R¨uckweg. Aufdem Hinweg werden Adresse, Befehl und, falls n¨otig, Datum und Operation einer Prozessoranfra-ge vom Netzwerk an die Speichermodule geschickt. Auf dem R¨uckweg werden Antwortdaten vomSpeicher an die Prozessoren ¨uber das Netzwerk zur¨uckgeschickt.

4.1.1 Hinweg–Link

Im ersten Teil werden die verschiedenen Instruktionen aufgef¨uhrt, die vom Netzwerk weiterge-schickt bzw. erzeugt werden k¨onnen. Danach wird auf den Aufbau und dieUbertragungsprotokolleder Anfragepakete sowie die Behandlung der Busys n¨aher eingegangen.

Netzwerkinstruktionen

Alle Netzwerkanfragen enthalten einen Befehl und eine Adresse sowie, falls erforderlich, ein Datumund eine Operation. Unter Antwortpaket versteht man das Datum, das ¨uber den Netzwerkr¨uckwegan den Prozessor zur¨uckgeschickt wird, der die Anfrage an den globalen Speicher gestellt hat.

17

Page 28: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

4 Schnittstellen und Timings

Load/Store–Befehle:Bei LD–Anfragen wird der Inhalt einer Speicherzelle als Antwortpaket zu-ruckgeschickt. BeiST –Anfragen wird das Datum, das in solchen Anfragen enthalten ist, im Spei-cher abgelegt.

Mnemoric Operanden SemantikLD addr return S(addr)ST addr; data S(addr)=data

Multi–Prefix–Befehle: Bei M P – undSY –Befehlen wird die OperationOP 2 fADD; AN D;-OR ; M AX g auf Speicherinhalt und Datumdata ausgef¨uhrt und das Ergebnis im Speicher ab-gelegt. BeiM P –Befehlen wird zus¨atzlich vor Ausfuhrung der Operation der Speicherinhalt alsAntwortpaket zur¨uckgeschickt.

Mnemoric Operanden SemantikM P addr; OP; data return S(addr); S(addr)=S(addr) OP dataSY addr; data S(addr)=S(addr) OP data

Routing–Befehle: Diese Befehle werden vom Netzwerk selbst generiert, um Synkronit¨at sowieguten Ablauf des Routingalgorithmus zu gew¨ahrleisten. Routing–Befehle werden bei Ankunft imglobalen Speicher stets ignoriert.

Mnemoric Operanden SemantikGH addr –EOR addr –

Error–Befehle: Die im Netzwerk auftretenden Fehler k¨onnen inUbertragungs– und logische Feh-ler unterteilt werden. BeiUbertragungsfehlern (Bitfehler, die aus Leitungs¨ubersprechung entste-hen) wird der Befehl der Anfrage gem¨aß seinem Typ (mit oder ohne Antwortpaket) durch einenER R M – oderER R O–Befehl ersetzt und im Netzwerk weitergeleitet. Logische Fehler tretenbei Kombinierung von MP–Befehlen gleicher Adresse aber unterschiedlicher Operation sowie beiUberlauf einerADD–Operation auf. Solche Fehler werden in das Operation–Feld der Anfrage ko-diert. Da Fehler ohne Antwortpaket nicht ¨uber das Netzwerk an die Prozessoren zur¨uckgemeldetwerden konnen, ist im Speicherboard eine Fehlerr¨uckmeldung an den Host vorgesehen.

Mnemoric Operanden SemantikER R M addr return errorER R O addr –M P addr; OPERR; data return errorSY addr; OPERR; data –

Adreß– und Datenpaket–Format

Wegen der physikalischen Busbreite zwischen den Netzwerkchips aber auch zwischen den Boardswurden die Prozessoranfragen in zwei Teilpakete von je 36 Bits getrennt (Pipelining von Adresseund Daten). Diese Teilpakete sind wie folgt aufgebaut:

18

Page 29: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

4.1 Schnittstelle zum Netzwerkboard

Adreßpaket:

M OD35 33

P32

Arouting

31 24 22

A22=20

23 21 : : : 0

In die unteren 22 bzw. 24 Bits des Pakets ist die Adresse innerhalb eines Speichermoduls kodiert.Die Lange der Adresse h¨angt von der Speicherbest¨uckung (siehe Kap. 5) ab. In den folgenden Bitsbis Bit 31 ist die Routing–Adresse (Nummer des Speichermoduls) rechtsb¨undig kodiert. Die dreioberen Bits enthalten den Befehl (M ODus genannt), der gem¨aß Tabelle 4.1 kodiert ist.

Kodierung M ODus Beschreibung

000 LD Load Paket001 ST Store Paket010 M P Multi–Prefix Paket011 SY Synchronisation Paket100 GH Netzwerk Ghost Paket101 EOR End Of Round Paket110 ER R O Error Paket (ohne Antwort)111 ER R M Error Paket (mit Antwort)

Tabelle 4.1: Kodierung desM ODus

Das P-Bit enth¨alt die gerade Parit¨at fur alle 36 Bits des Adreßpakets und dient zur Kontrolle derIntegritat des Pakets. Dies ist n¨otigt, um Fehler, die aus physikalischen Gr¨unden wahrend derUbert-ragung auftreten k¨onnen, m¨oglichst zu erkennen.

Datenpaket:

OP35 33

P32

D32

31 : : : 0

Die 32 unteren Bits enthalten das Datum. Die drei oberen Bits kodieren entweder dieOP erationbei MP–Befehlen oder einen aufgetretenen Fehler (siehe Tabelle 4.2). Das P-Bit enth¨alt wie beim

19

Page 30: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

4 Schnittstellen und Timings

Kodierung OP eration BeschreibungOP 000 AN D logisches AND

010 OR logisches OR100 M AX Maximum110 ADD Addition

OP ERR 001 M P OP DI F F unterschiedliche MP Operation011 LI N K ER R OR Netzwerkfehler101 N :A : nicht vorhanden111 ALUOF Netzwerk–ALUUberlauf

Tabelle 4.2: Kodierung derOP eration

Adreßpaket die gerade Parit¨at fur alle 36 Bits des Pakets.

Die Steuerung des Hinweg–Links erfolgt durch zweiHandshake-Signale:

� VALIDINLINK verlauft parallel zu den Paketen und ist bei der Sampling–Flanke(Taktflanke, bei der Daten auf dem Bus ausgewertet werden) aktiv,wenn die Daten auf dem Link als Paket zu interpretieren sind.

� BUSYOUTLINK verlauft in Gegenrichtung zu den anderen Signalen des Hinwegsund wird vom Speicherboard aktiviert, wenn dieses kein Paket mehrvom Netzwerk aufnehmen kann.

Ubertragungsprotokoll

Bei der SB–PRAM erfolgt die Paket¨ubertragung ¨uber Netzwerklinks stets in einem einzigen Clock–Zyklus, d.h. bei steigender bzw. fallender Clock–Flanke abgesandte Daten werden von der Emp-fangseinheit immer bei der selben Taktflanke des n¨achsten Zyklus empfangen.

Im Laufe der Entwicklung der SB–PRAM wurden bis jetzt drei verschiedeneUbertragungsprotokol-le fur den Netzwerk–Link definiert. Alle drei Varianten sind auf dem Speicherboard implementiert.Die erste —Old–Node–Protokoll genannt — wurde vom alten Netzwerkchip benutzt. Der Routin-galgorithmus dieses Chips erwies sich als fehlerhaft, was den Chip f¨ur eine Mehr–Prozessor–PRAMunbrauchbar machte. Auf dieses Protokoll wird daher hier nicht weiter eingegangen (siehe AnhangB). Nachfolgend werden daher nur die Protokolle der neuen Netzwerkchips ([Bra96], [Wal96]) auf-gezeigt. Wie zwischen diesen Protokollen gew¨ahlt werden kann, wird erst in Kapitel ”Realisierungdes Boards” beschrieben. Dort sind auch die n¨otigen Setup– und Hold–Zeiten der verschiedenenSignale aufgef¨uhrt.

� New–Node:Beim neuen Netzwerkknoten werden im Gegensatz zum alten die Ausg¨ange derHinweg–Links gemultiplext, um Pins zu sparen. Der physikalische Link zwischen zwei Pla-tinen, der einen 36–Bit breiten Datenbus besitzt, wurde dagegen unver¨andert gelassen, umzusatzliche Register f¨ur dieLong–Linksauf dem Netzwerkboard zu sparen. Die Pakete wer-den dementsprechend auf diesem Link nicht gemultiplext, sondern in zwei zueinander ver-setzten Teilen verschickt (siehe Abbildung 4.1).

20

Page 31: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

4.1 Schnittstelle zum Netzwerkboard

VALIDIN LINK

LINKDINAddr[18:35] Data[18:35]

Data[0:17]Addr[0:17]

CLK

LINKBUSYOUT

[18:35]

[0:17]

Abbildung 4.1:Ubertragungstiming beim New–Node–Protokoll

Alle Prozessoranfragen bestehen aus einem Adreß– und einem Datenpaket, sebst bei Befeh-len, fur die kein Datenpaket notwendig ist. Beide Pakete werden immer in direkt aufeinanderfolgenden Takten abgeschickt. Selbst wenn einBusyder Empfangseinheit beim Sender nachAbschicken eines Adreßpakets eintrifft, sendet er immernoch das dazugeh¨orige Datenpaketab.

� New–Node–Fast:Diese Variante ist ¨ahnlich der vorherigen, mit Ausnahme derLD–, GH –undEOR –Anfragen, die keine Daten ben¨otigen und entsprechend nur aus einem Adreßpaketbestehen. DieseAnderung wurde durchgef¨uhrt, da Simulationen gezeigt haben, daß 60% bis80% der Anfragen Lesezugriffe sind. Diese Modifikation f¨uhrt zu einer drastischen Reduzie-rung der Netzbelastung [Wal95].

Busy–Behandlung

Bei allen Protokollen ist vorgesehen, daß, wenn die Eingangs–FIFO einer Einheit voll wird, weildie Anfrageverteilung nicht optimal war, diese Einheit die Vorg¨angereinheit anhalten kann. Ins-besondere kann die Speicherboardlogik den Vorg¨angernetzwerkknoten durch dasBUSYOUTLINK–Signal anhalten. F¨ur die Verbindung der letzten Netzwerkstufe mit den Speichermodulen wer-den lange Kabel benutzt. Um Probleme, die aufgrund schwacher Signalst¨arke und ungen¨ugenderUbertragungssynchronit¨at auftreten k¨onnen, zu vermeiden, werden alle Signale dieser sogenann-ten Long–Links einmal vor und einmal nach dem Kabel gespeichert. Aufgrund dessen dauert esmehrere Takte bis das ausgel¨osteBUSYOUTLINK–Signal die Vorg¨angereinheit erreicht und damit derPaketfluß angehalten wird.

Der Ablauf des Speicherboard–Busy–Signals ist in Abbildung 4.2 gezeigt. Wie in Kapitel 3 be-schrieben, besteht jedes Speichermodul aus vier B¨anken mit eigener FIFO. Die B¨anke arbeiten dieProzessoranfragen parallel ab. SeiP0das letzte Paket, das in die FIFO einer Speicherbank paßt, be-vor diese voll wird. Bei Empfang dieses Pakets wirdBUSYOUTMEM von der Bank aktiviert. Einen Taktspater wirdBUSYOUTLINK entsprechend aktiv, gefolgt einen weiteren Takt sp¨ater vonBUSYINNN, wasdem Netzwerkknoten signalisiert, daß das Speicherboard keine weiteren Pakete mehr empfangenkann. Wahrend der beiden Takte, die das Busy–Signal vom Speicherboard bis zum Netzwerkknotengenotigt, konnen h¨ochstens noch bis zu zwei Pakete (P1, P2) am Speicherboard ankommen, sowieein drittes (P3) noch auf demDLINK unterwegs sein.

21

Page 32: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

4 Schnittstellen und Timings

BUSYIN NN

BUSYOUT LINK

BUSYOUT MEM

P1 P3 P4P2P0 WAIT

BUSYIN NN BUSYOUT LINK

Netzwerk-

knoten BUSYOUT MEM

CLK

MEMDIN

LINKDIN

NNDfwd

P1 P3 P4P2P0

P1 P3 P4P2P0 WAIT

WAIT

Speicherboard

Netzwerk-Link

Netzwerkboard

Speicher-

bank

LINK MEMDIN DINNNDfwd

[0:17]

[0:17]

[0:17]

Abbildung 4.2: BUSY–Behandlung auf dem Hinweg

FallsP3das Adreßpaket einer Anfrage mit Datenpaket ist, dann wird wird auch noch das Datenpaketals P4 verschickt. Insgesamt k¨onnen also nur noch bis zu vier Pakete nach Busy–Meldung einerSpeicherbank am Speicherboard ankommen.

4.1.2 Ruckweg–Link

Der Ruckweg–Link ist dazu da, um Antworten der Speichermodule an die Prozessoren zur¨uck-schicken zu k¨onnen. Im folgenden werden Aufbau der Pakete sowie dasUbertragungsprotokoll desRuckwegs beschrieben.

Antwortpaket–Format

Ahnlich dem Hinweg werden auch die Pakete f¨ur den Ruckweg — im weiteren Antwortpaketegenannt — in zwei 18–Bit–breite Halbpakete zerlegt (Pipelining).

22

Page 33: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

4.1 Schnittstelle zum Netzwerkboard

E17

P16

D16

15 0

Die unteren 16 Bits enthalten die obere bzw. untere H¨alfte des 32–Bit–Antwortdatums. Das E–Bitdient der Signalisierung eines Fehlerpakets. Es wird vom Speicherboard in beide Halbpakete einerAntwort gesetzt, wenn die dazugeh¨orige Anfrage vom Netzwerk oder Speicherboard als fehlerhafterkannt wurde. Das P-Bit enth¨alt die gerade Parit¨at fur alle 18 Bits des Halbpakets.

Der Ruckweg–Link wird durch zwei Handshake-Signale gesteuert:

� VALIDOUTLINK verlauft parallel zu den Paketen und wird aktiv, wenn die Datenauf dem Link als Paket zu interpretieren sind.

� BUSYINLINK verlauft in Gegenrichtung zu den anderen Signalen des R¨uckweg–links und wird vom Netzwerkknoten aktiviert, wenn dieser keinPaket mehr vom Speicherboard aufnehmen kann.

Protokoll

Die ganzen Halbpakete werden bei steigender Taktflanke abgeschickt. Sie sind einzeln zu betrachtenund konnen mit Zwischenl¨ucken auftreten, unabh¨angig davon, ob sie zur selben Antwort geh¨oren(siehe Abbildung 4.3).

CLK

LINK

LINKVALIDOUT

BUSYIN

Data1 HiLINK

Data1 LoDOUT

Abbildung 4.3:Ubertragungstiming auf dem R¨uckweg

Die Reihenfolge, in der die beiden Halbpakete eines Antwortpakets zur¨uckgeschickt werden, h¨angtvon der dazugeh¨origen Prozessoranfrage ab. Bei allen Antworten auf Anfragen, außerM P M AX ,werden im ersten Halbpaket die unteren 16 Bits und im zweiten Halbpaket die oberen 16 Bits desAntwortdatums zur¨uckgeschickt. BeiM P M AX werden die beiden Halbpakete genau in umge-kehrter Reihenfolge abgeschickt, da zuerst die oberen Datenbits ben¨otigt werden, um das Maximumzu berechnen.

23

Page 34: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

4 Schnittstellen und Timings

Busy–Behandlung

Von der letzten Netzwerkstufe aus gesehen, ist der Verlauf desBUSYINLINK auf dem R¨uckweg (sieheAbbildung 4.4) identisch mit dem desBUSYOUTLINK–Signals auf dem Hinweg, wenn man die Rollevon Netzwerkboard (Sender) und Speicherboard (Empf¨anger) vertauscht.

Netzwerk-

knoten

CLK

Speicherboard

Netzwerk-Link

Netzwerkboard

Speicher-

bank

P1 P3P2P0

P1 P3P2P0

LINKDOUT

BUSYOUT

LINK

BUSYIN

NN

NNDbwd

DOUT

BUSYIN

MEM

MEM WAIT

WAIT

P1 P3P2P0 WAIT

LINKBUSYINNN MEMBUSYINBUSYOUT

MEMDOUTLINKDOUTNNDbwd

Abbildung 4.4: BUSY–Behandlung auf dem R¨uckweg

Bis dasBUSYINLINK –Signal das Speicherboard erreicht, k¨onnen, wie auf dem Hinweg, h¨ochstensdrei Pakete zum Netzwerk unterwegs sein. Danach d¨urfen keine Pakete mehr verschickt werden,unabhangig davon, ob dasBUSYINLINK zwischen zwei Halbpaketen der selben Antwort eingetroffenist oder nicht.

Es konnen also nur noch maximal drei Pakete nach Busy–R¨uckmeldung des Netzwerkknotens amSpeicherboard ankommen.

24

Page 35: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

4.2 Schnittstelle zum Host

4.2 Schnittstelle zum Host

Die Hostschnittstelle stellt die Haupt–I/O–Verbindung zwischen SB–PRAM und Außenwelt dar.Uber diese Schnittstelle werden die Daten eines Programms, wenn es gestartet wird, geladen, sowieI/O–Anfragen der laufenden Programme vom Host beantwortet.

Der Hostrechner ist eine SPARC 10 der Firma SUN. Der physikalische Anschluß an die PRAM er-folgt durch eine spezielle Platine (Hostinterface), in [Fri94] beschrieben, die f¨ur das Adreß–Hashingund die Behandlung der Interrupts zust¨andig ist. Die Verteilung der Hostanfragen und das Sammelnsowohl der Antworten als auch der Speicherinterrupts erfolgt ¨uber eine Fan–Out–Stufe. Diese ist in[Hol95] beschrieben.

BACKPLANE

0

...

Speicher

SpeicherBoard 0

Board 7

...

Speicher

Speicher

BACKPLANE

7

Board 63

Board 56

Fan-OutBoard

... HostInterface

HOST

Abbildung 4.5: Realisierung der Verbindung zwischen Speicherboard und Host

Signalbeschreibung

Die Signale der Hostschnittstelle k¨onnen in zwei Gruppen unterteilt werden.Die erste enth¨alt die Signale, die zum Lesen und Beschreiben des globalen Speichers der SB–PRAMbenotig werden:

25

Page 36: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

4 Schnittstellen und Timings

� AHOST Hostadreßbus

� DHOST Hostdatenbus

� /AS HOST Host Address Strobe; signalisiert den Anfang eines Zugriffs.

� RWHOST Host Read/Write; entscheidet zwischen Lese– und Schreibzugriffen.

� ESHOST Error Strobe; dient Debuggingzwecken. Wenn aktiv w¨ahrend einesLesezugriffs, wird statt eines Datums aus dem RAM der zuletztaufgetretene Fehler von der angesprochenen Speicherbank an denHost zuruckgeliefert.

� /ACKMEM Acknowledge; signalisiert das Ende des Zugriffs an den Host.

Die zweite Gruppe besteht aus Signalen, die f¨ur den Austausch der Interrupts verwendet werden:

� /HAVE RITR RAM–Fehler–Interrupt–Leitung; dient zur Signalisierung einesRAM–Paritatsfehlers an den Host.

� /RITR[0..2] Nummer der Bank, die den RAM–Fehler–Interrupt ausgel¨ost hat.

� /HAVE NITR Netzwerkfehler–Interrupt–Leitung; dient zur Signalisierung desEmpfangs an den Host eines fehlerhaften Netzwerkpaketsbeim Speicherboard.

� /NITR[0..2] Nummer der Bank, die den Netzwerkfehler–Interrupt ausgel¨ost hat.

� /RESETHOST Globales Reset, dient zur synchronen Initialisierung der SB–PRAM.

Protokoll

Uber die Hostschnittstelle kann jede beliebige Speicherzelle gelesen bzw. beschrieben werden undkann auch die Ursache eines aufgetretenen Fehlers, der durch Interrupt gemeldet wurde, festge-stellt werden. Die Daten¨ubertragung erfolgt gem¨aß dem Motorola–68xxx Prozessorfamilie–I/O–Zugriffsprotokoll (siehe [MOT90]). Das Timing derUbertragung zwischen Speicherboard und Back-plane ist in Abbildung 4.6 skizziert (vom Speicherboard aus gesehen). Die Anpassung der Signalezwischen Host– und SB–PRAM–Takt erfolgt auf dem Hostadapter.

Gultige Adressen werden angelegt und das/AS HOST–Signal aktiviert. Bei Schreibzugriffen folgeneinen Clock–Zyklus sp¨ater gultige Daten. Alle Eingangssignale bleiben dann solange unver¨andert,bis die Anfrage abgearbeitet ist. Das Ende des Zugriffs wird durch Aktivieren des/ACKNHOST si-gnalisiert. Gleichzeitig zu diesem Signal wird im Falle eines Lesezugriffs auch noch die Antwortauf den Host–Datenbus gelegt.

Das/RESETHOST–Signal kann vom Host ausgel¨ost werden, um die Speichermodule neu zu starten.Es wird auf den Speicherboards bei fallender Taktflanke bewertet. Die von den Speicherboards anden Host ausgel¨osten Interrupts werden bei steigender Taktflanke generiert bzw. gel¨oscht.

26

Page 37: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

4.3 Fehlererkennung und –behandlung bei der SB–PRAM

WRITE DATA

READ DATA

ES HOST

CLK

MEM

HOST

HOST

HOST

HOST

/ACK

D[0:31]

/AS

A[0:31]

, RW

Abbildung 4.6:Ubertragungstiming zwischen Host und Speicherboard

4.3 Fehlererkennung und –behandlung bei der SB–PRAM

Das Auftreten von Fehlern ist bei solcheinem Rechner nicht zu vermeiden. Um diese Fehler m¨o-glichst zu erkennen, sowie die Integrit¨at des Speicherinhalts und des Routing–Protokolls zu sch¨ut-zen, werden Parit¨atsbits den Netzwerkpaketen und Speicherdaten zugef¨ugt. Die auftretenden Fehlerkonnen in drei Kategorien eingeteilt werden:

1. logische Fehler, die bei Kombinierung von Paketen gleicher Adresse aber unterschiedli-chemM ODus oder unterschiedlicherOP eration auftreten; sowie beiUberlauf der Netzwerk-knoten–Queues.

2. physikalischeUbertragungsfehler, die durch Bitfehler in den Paketen bzw. fehlende Paketeentstehen.

3. Speicherfehler, die aufgrund defekter Speicherzellen oder einer fehlerhaften Refresh–Logikzustande kommen.

4.3.1 Fehlererkennung

Die logischen Fehler sind am einfachsten zu erkennen, da sie bei Auftreten im Netzwerk entwederin denM ODus oder in dieOP eration der Anfrage kodiert werden.

Um Bitfehler beiUbertragungen zwischen zwei Einheiten der SB-PRAM eventuell zu erkennen,wurde jedem Paket ein Parit¨atsbit zugef¨ugt, das bei jeder Empfangseinheit ¨uberpruft wird. Paritats-bits garantieren jedoch keine absolute Sicherheit, da damit nur Bitfehler einer ungeraden Anzahlin denubertragenen Daten erkannt werden k¨onnen. Je nachdem, in welchem Teil eines Pakets sieauftreten, haben sie sehr unterschiedliche Konsequenzen.

Zum Beispiel hat ein Bitfehler, erkannt oder nicht erkannt, imM ODus einer Anfrage viel schlim-mere Folgen als im Adreß– oder Datenteil, da hier nicht nur eine Speicherzelle korrumpiert wird,

27

Page 38: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

4 Schnittstellen und Timings

sondern auch noch zu wenige bzw. zu viele Antworten verschickt werden k¨onnen. BeimNew–Node–Fast–Protokoll konnen dadurch sogar Datenpakete und Adreßpakete verwechselt werden.

Fehlende Pakete, was nichts anderes ist als Bitfehler desVALIDIN LINK–Signals, ziehen die gleichenKonsequenzen nach sich, wie zuvor beiM ODus–Fehlern beschrieben. Solange keinEOR –Paketankommt, dessenM ODus–Kodierung eindeutig auf ein Adreßpaket hinweißt, k¨onnen solche Feh-ler nicht erkannt werden. Eine Resynchronisation nach jedemEOR –Paket kann auf dem Speicher-board durch Neuprogrammierung eines GALs erreicht werden; fehlerhafte Anfragen k¨onnen jedochnicht mehr korrigiert werden. Die Einf¨uhrung unterschiedlicher Parit¨aten (gerade und ungerade) f¨urAdreßpakete und Datenpakete w¨urde dagegen bei Anfragen, die aus zwei Paketen bestehen, einedirekte Erkennung des fehlenden Pakets erlauben, Voraussetzung ist jedoch, daß nicht gleich meh-rere fehlerhafte Pakete hintereinander folgen. Bei der aktuellen Version des Speicherboards wurdediese Moglichkeit jedoch noch nicht implementiert, da bei fehlenden Paketen — wegen m¨oglicherVerletzung des Routingalgorithmus und/oder der Speicherkonsistenz, f¨ur die beim aktuellen Proto-typ noch keine Schutzmechanismen vorgesehen sind — die SB–PRAM immer neu gestartet werdenmuß.

Den im Speicher abgelegten Daten werden zwei Parit¨atsbits pro Datum (32 Bits) zugef¨ugt — ahn-lich wie beim Netzwerk —, die beim nachtr¨aglichen Lesen der Daten ¨uberpruft werden. Dies ge-schieht sowohl bei Netzwerk– als auch bei Hostzugriffen, um dieUberprufung beim Lesen nicht zuverfalschen. Da keine Parit¨atsschaltung f¨ur den Hostadapter vorgesehen wurde, gibt es auch keineMoglichkeit, Fehler beiUbertragung zwischen Host und Speicherboards festzustellen.

4.3.2 Fehlerbehandlung

Bei Erkennen eines Netzwerkfehlers, sei es imM ODus, im OP eration oder in der Parit¨at desAdreß– bzw. Datenpakets, wird die Abarbeitung der Anfrage nicht durchgef¨uhrt. Dies garantiert,daß die Speicherintegrit¨at durch fehlerhafte Anfragen nicht beinflußt wird. Zus¨atzlich wird diebetroffene Anfrage und der Fehlertyp in einem speziell in jeder Bank daf¨ur vorgesehenen Error–Register (RegErr ) abgespeichert. Die Kodierung dieses Registers ist in Tabelle 4.3 beschrieben.

Bei Anfragen, die eine Antwort erzeugen (LD, M P , ER R M ), wird das Error–Bit (siehe Ab-schnitt 4.1.2) in beide Antwortpakete gesetzt, um Fehler an die Prozessoren, die das Datum an-gefragt haben zur¨uckzumelden. Besitzt die Anfrage keine Antwort, so ist es nicht m¨oglich, dieProzessoren von den Fehlern zu benachrichtigen. Um dieses Problem zu ¨uberwinden, kann jedeSpeicherbank Interrupts an den Host ausl¨osen. Der Host kann sich dann durch Auslesen des Error–Registers der betroffenen Bank ¨uber die aufgetretenen Fehler informieren und, falls erw¨unscht, dieArbeit der Prozessoren unterbrechen. Jede Bank besitzt zwei getrennte Interruptleitungen. Die einewird zur Ruckmeldung von Netzwerkfehlern, die andere zur R¨uckmeldung von Speicherparit¨ats-fehlern benutzt. Bei Speicherparit¨atsfehlern gibt es keine andere M¨oglichkeit, als den Rechner neuzu starten.

28

Page 39: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

4.3 Fehlererkennung und –behandlung bei der SB–PRAM

PQ31 30

APpar29

DPpar28

M OD27 25

OP24 22

ABANK

21 : : : 0

Signale Beschreibung

PQ enthalt die Anzahl der Netzanfragen, die sich gerade in derEingangsFIFO befinden.

APpar wird gesetzt, wenn die Parit¨at des Adreßpakets falsch ist.DPpar wird gesetzt, wenn die Parit¨at des Datenpakets falsch ist.M OD, OP , ABANK enthalt Modus, Operation und Adresse der fehlerhaften

Anfragen.

Tabelle 4.3: Kodierung des Error–Registers

Auf Wunsch des Software–Teams der SB–PRAM werdenUberlauffehler (ALUOF ) bei Multi–Prefix–Anfragen vom Speicherboard ignoriert. Solche Anfragen werden statt dessen mit ihremOriginalbefehl (Multi–Prefix–ADD) verarbeitet. Dies erlaubt, Berechnungen modulo 232 durch-zufuhren, ohne daß ein Fehler bei der Bereichs¨uberschreitung zur¨uckgemeldet wird.

29

Page 40: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

4 Schnittstellen und Timings

30

Page 41: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Kapitel 5

Realisierung des Boards

Die Realisierung des Speicherboards umfaßt zwei Teilaufgaben. Die erste besteht aus der Steuerungder Schnittstelle zum Netzwerk und zum Host, der Verteilung der Anfragen auf die vier B¨anke desModuls und dem R¨uckversand der Antwortpakete in der richtigen Reihenfolge. Die zweite Aufga-be befaßt sich mit der Bearbeitung von Netzwerk– und Hostanfragen innerhalb einer Bank. Wiein Kapitel 3 vorgeschlagen, wird die dazu notwendige Logik auf einem FPGA realisiert, im wei-teren Speicherprozessor genannt. Erst im n¨achsten Kapitel wird n¨aher auf diesen Chip eingegangen.

Zuerst werden die Vorgaben aufgezeigt, die die Basis der SB–PRAM–Realisierung bilden. Sie be-stimmten auch die Wahl des aktuellen Speicherboarddesigns. Ebenso werden Aufbau und Daten-pfade des Speicherboards vorgestellt. Danach werden Steuerungslogik der Netzwerk– und der Host-schnittstelle erkl¨art.

5.1 Mechanischer Aufbau

Backplane

HostanschlußNetzwerkanschluß

Netzwerkanschluß

Belüftung

SIMM

Abbildung 5.1: Mechanischer Aufbau eines Speicherboards

31

Page 42: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5 Realisierung des Boards

Um den sp¨ateren Zusammenbau der 128–Prozessor SB–PRAM zu erm¨oglichen, wurden zu Be-ginn Richtlinien fur die Große der Platinen festgelegt. Damit die Platinen sp¨ater in ein Standard19”–Rack passen, wurde als Breite f¨ur die Speicherboards das Doppel–Europaformat (ca. 21cm)gewahlt. Die Lange der Platinen entspricht in ungef¨ahr der geplanten L¨ange des Netzwerkboards,d.h. ca. 40cm. Die Positionierung der RAM–Module auf dem Board bedeutet eine weitere Ein-schrankung, da die Module den Bel¨uftungsfluß so wenig wie m¨oglich hindern d¨urfen. Die RAM–Module werden deshalb vertikal angeordnet (siehe Abbildung 5.1), um Probleme der K¨uhlung desSpeichers zu vermeiden. Die Positionierung der Schnittstellen war vom Aufbauplan ebenfalls vor-gegeben. Die Netzwerk–Links wurden mit Flachbandkabel geplant, deren Anschl¨usse auf der Front-seite der Boards plaziert sind. Die Verbindung zum Host wird ¨uber eine Backplane realisiert, in derjeweils 8 Speicherboards stecken.

Einheit IC–Flache

Netzwerklogik (Anschluß, Register und Logik) 35cm2

Hostlogik (Anschluß, Treiber und Logik) 42cm2

4 Banke (FPGA, Treiber und SIMMs) 4�51cm2

Clockerzeugung und –verteilung, Meßanschluß 40cm2

321cm2

+ 30% fur das Routing 96cm2

=) 417cm2

Maximale Boardgr¨oße 21cm�40cm 840cm2

Tabelle 5.1: Platzabsch¨atzung fur die verschiedenen Einheiten des Speicherboards

Um diese Anforderungen erf¨ullen zu konnen und eine maximale Nutzung der Platinenfl¨ache zugewahrleisten, konnte nach Berechnung des n¨otigen Platzes (siehe Tabelle 5.1) je Board die Funk-tionalitat von zwei Speichermodulen implementiert werden. Dabei wird die Clock– und Hostlogiknur einmal pro Board ben¨otigt, so daß die zwei Speichermodule ca. 728cm2 der moglichen 840cm2

beanspruchen. Bei dieser L¨osung wird sowohl die Anzahl der Boards als auch die der Hostan-schlusse halbiert.

5.2 Datenpfade und Speichergroße

Aus den funktionalen Anforderungen ergeben sich die Datenpfade, wie sie in Abbildung 5.2 darge-stellt sind.

Konvention: Fur die Busse werden folgende Suffixe verwendet:� LINK : fur die Signale, die vom bzw. zum Netzwerk laufen.� HOST: fur die Signale, die vom bzw. zum Host laufen.� MEM: fur die Busse, die zwischen Netzwerkstecker und den B¨anken laufen.� HMEM: fur die Busse, die zwischen Hoststecker und den B¨anken laufen.� RAM: fur Adreß– und Datenbus der RAM–Module.

Die Kontrollsignale werden durch ihre Suffixe in drei Kategorien eingeteilt:

32

Page 43: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5.2 Datenpfade und Speichergr¨oße

N

AHOST

DHOST

B

A

C

K

P

L

A

N

E

-

H

O

S

T

S

B

-

P

R

A

M

N

E

T

Z

W

E

R

K

18

18

18MEMDOUT

FPGAA ARAM

11

DHMEM

Kontrolle

DINMEM

32 DRAM

RAM

Module B

Module A

FPGA

22

2

32

RegIn

HiReg

OutReg

Mux

HA

Bank 0..3

HDDrv

FIFOÜbervoll

36

11

DrvAR

DrvHAR

DrvHDR

Queue

Order

AHMEM

DOUTLINK

LINKDIN

CON

C

O

N

C

O

Abbildung 5.2: Datenpfade des Boards

� MEM: fur alle Kontrollsignale, die von der Boardlogik erzeugt werden.� FPGA: fur die von den Speicherprozessoren erzeugten Signale.� OF: fur die Kontrollsignale derUbervoll–FIFO.

EineUbersicht aller Signale des Speicherboards findet sich am Ende dieses Kapitels.

Kontrollogik

Die gesamte Kontrollogik der Schnittstellen des Boards wurde auf GAL-Bausteinen (Generic ArrayLogic, [LAT94]) implementiert, die geringe Schaltzeiten besitzen. Ferner erlaubt diese L¨osung eineeinfache Korrektur der Kontrolle in der Debugging–Phase und erm¨oglicht einen flexiblen Wechseldes Netzwerkprotokolls durch erneute Programmierung nur eines GALs. Aus dem an alle Boardsder SB–PRAM einheitlich verteilten Netzwerktakt werden ebenfalls von der Kontrollogik mit Hilfespezieller Treiber die n¨otigen Clock–Signale des Speicherboards erzeugt. Diese Signale werden jenach Bedarf invertiert oder verz¨ogert.

Netzwerkanschluß

Das Speicherboard ist ¨uber Long–Links an die entsprechende Platine der letzten Netzwerkstufeangeschlossen. Die ¨uber den Hinweg–Link versetzt ankommenden Pakete werden beim Empfangdurch die RegisterRegHi undRegIn resynchronisiert und ¨uber denDINMEM –Bus an die B¨anke ver-

33

Page 44: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5 Realisierung des Boards

teilt, um in die FIFO des f¨ur den Adreßbereich der Anfrage zust¨andigen FPGAs geschrieben zuwerden. F¨ur Anfragen, die ein Antwortpaket ben¨otigen, wird zus¨atzlich die Nummer der Bank, diefur die Abarbeitung der Anfrage zust¨andig ist, in die Order–Queue abgelegt, um die chronologischeReihenfolge der Antworten zu gew¨ahrleisten. DieUbervoll–FIFO dient zur Zwischenspeicherungder Netzpakete, die nach Busy–R¨uckmeldung des Speicherboards noch ankommen k¨onnen (siehe4.1.1), aber nicht mehr in die FIFO der Zielbank passen. Diese Pakete werden dann an die zust¨andigeBank weitergeleitet, sobald diese wieder Platz in der EmpfangsFIFO hat. Auf dem R¨uckweg wer-den die von den B¨anken auf demDOUTMEM –Bus angelegten Halbpakete (halbes Antwortpaket, siehe4.1.2) im RegisterRegOut gespeichert, bevor sie auf dem R¨uckweg–Link des Netzwerkanschlusseszuruckgeschickt werden.

Hostanschluß

Um dasFan–Outder Busse auf die Backplane zu beschr¨anken, durchlaufen die Hostadressen einenMultiplexer (MuxHA ) und die Hostdaten einen Treiber (DrvHD), bevor sie an die Speicherbusse allerBankeuber Treiber (DrvHAR und DrvHDR) verteilt werden. Er kann damit den globalen Speicherbeliebig lesen bzw. beschreiben, sowie Daten, die von den FPGAs auf denDRAM –Bus gelegt werden,lesen. Das wird f¨ur Fehlerruckfragen vom Host ben¨otigt. Der Hostanschluß verf¨ugt ferneruber zweiInterruptbusse, um auftretende Fehler an den Host r¨uckmelden zu k¨onnen.

FPGA

Das FPGA enth¨alt die EingangsFIFO sowie die Ausf¨uhrungseinheit jeder Bank. Es ist f¨ur die Ar-bitrierung zwischen Host–, PRAM– und DRAM–Refresh–Zugriffen zust¨andig sowie f¨ur die Steue-rung der DRAMs und der externen Treiber (DrvHAR undDrvHDR) bei Hostzugriffen. Es beinhaltetweiter die arithmetisch–logische Einheit (ALU) zur Ausf¨uhrung von Multi–Prefix–Operationen.Die Realisierung des FPGAs wird in Kapitel 6 n¨aher beschrieben.

Globales RAM

Jede Bank besitzt vier DRAM–Steckpl¨atze, die wahlweise mit 1Mx9– oder 4Mx9–SIMMs (mit60ns bzw. 70ns Zugriffsgeschwindigkeit) best¨uckt werden k¨onnen. Dies erlaubt sp¨ater, die Spei-chergroße je nach Bedarf zu w¨ahlen und Programme, die einen bestimmten Minimalspeicherplatzfur ihre Eingabedaten ben¨otigen, bereits in einer Zwischenstufe der SB–PRAM zu testen. Dies istvor allem beim Ein–Prozessor– und beim Vier–Prozessor–Rechner erw¨unscht, um die Funktionalit¨atzu uberprufen. Die Gesamtspeichergr¨oße der 128-Prozessor SB–PRAM betr¨agt dann 512MLongbzw. 2GLong. Da die vier SIMMs, die parallel an denARAM–Bus angebunden sind, eine Last voninsgesamt 240p f erzeugen (siehe [THB94]), wof¨ur die Ausgange des FPGAs nicht ausgelegt sind,wurde ein Treiber (DrvAR) zwischengeschaltet.

Alle Signale des Boards, mit Ausnahme desRegHi –Registers, laufen synchron zur steigenden Flan-ke des global verteilten SB–PRAM–Takts (Netzwerktakt). Die maximale Taktrate des Boards istdurch die Geschwindigkeit der DRAMs beschr¨ankt und betr¨agt 35MHz.

5.3 Reset– und Clock–Logik

34

Page 45: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5.3 Reset– und Clock–Logik

5.3.1 Reset–Logik

Bei Einschalten des Speicherboards wird automatisch durch einenNE555–Baustein ein/RESETAUTO–Signal ausgel¨ost (Power–Up Reset), das auf eine halbe Sekunde eingestell wurde. Dieses Signalwird durch zweiFlip–Flops mit dem Platinentakt synchronisiert. Das so erzeugte/RESETMEM–Signal wird an die GALs und FPGAs verteilt, um das Speicherboard in einen definierten Zustandzu bringen (siehe Abbildung 5.3).

Zeit

/RESETMEM HOST/RESETPowerup

reset

NE555Powerup

rr

74F7474

s

auto

GAL/FPGA

Abbildung 5.3: Aufbau der Reset–Schaltung

Mit Hilfe dieses Signals werden die Register der GALs und der Kontrollogik der FPGAs asynchronin einen definierten Zustand (Set/Reset) gebracht. Das Reset–Signal wird ebenfalls in den Glei-chungen der kombinatorisch erzeugtenOutput–Enable–Signale ber¨ucksichtigt. Damit wird gew¨ahr-leistet, daß wederBus–Contentionsnoch ein undefinierter Startzustand auftreten. Das/RESETMEM

muß dafur mindestens 43nsdauern.

Sollte kein Takt an der Platine anliegen, garantiert der74F7474–Baustein, dessen Register beimPower–upauf 0 gesetz werden, daß das/RESETMEM–Signal immer aktiv bleibt. Somit ist also eben-falls gewahrleistet, daß keineBus–Contentionsstattfinden (asynchron Reset derOutput–enable–Signale).

Das Reset kann auch vom Host aus durch das/RESETHOST–Signal ausgel¨ost werden.

5.3.2 Clock–Logik

Die Taktsynchronit¨at aller Boards der SB–PRAM muß unbedingt gew¨ahrleistet sein, um einen ein-wandfreien Betrieb des Rechners zu garantieren. Eine absolute Synchronit¨at ist jedoch nicht er-reichbar, da einmal Treiber — die nicht alle die exakt gleiche Verz¨ogerung haben — eingesetztwerden m¨ussen, um die vielen ben¨otigten Clock–Signale zu verteilen und andererseits das Layoutdes Clock–Netzes auf den Platinen nicht absolut gleich ist. Die Flankenverschiebung zwischen denverschiedenen Taktsignalen, Clock–Skew genannt, sollte jedoch so gering wie m¨oglich sein, denndas hat Auswirkung auf die Kabell¨ange zwischen den Boards.

Wird der Clock–Skew nicht ber¨ucksichtigt, konnen beiUbertragung ¨uber Long–Links (Verbindun-gen zwischen den Boards) neu versandte Daten, die von der Empfangseinheit erst bei der n¨achstenClock–Flanke erwartet werden, bereits bei gleicher Taktflanke ankommen. Falls mehrere Pakete

35

Page 46: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5 Realisierung des Boards

P1

P0

P1

P1

P1

P0

t skew

CLK

REG

OUT

D OUT

IN

CLKOUTD

D

IND IN

OUTCLK INCLK

D REG

D

Abbildung 5.4:Ubertragungfehler durch Clock–Skew verursacht

unmittelbar nacheinander verschickt werden, geht dann, wie in Abbildung 5.4 gezeigt, ein Paketverloren.

Clock–Verteilung

Fur die 128-Prozessor PRAM werden ca. 270 Clock–Signale f¨ur die verschiedenen Boards ben¨otigt,die mit Hilfe der in Abbildung 5.5 skizzierten Schaltung erzeugt werden.

10... 10

10

...

...

3

10

Clock-Board

...

...

Speicherboard

8Speicherboards

Hostinterface

NetzwerkboardsSpeicherbackplanes

ProzessorbackplanesProzessorboards128

1664

1

48

120

80

1 Fanout-Board

4 Powerboard, Reserve

9

Abbildung 5.5: Clock–Verteilung der SB–PRAM und des Speicherboards

Die Vervielfachung des durch einen Quarz generierten Clock–Signals erfolgt durch einen spezi-ellen Clock–Treiber (74FCT805), der aus 1 Signal 10 erzeugt, die unter sich einen maximalenSkew vontSKEWINT = 0:5nsbesitzen ([IDT95]). Ferner betr¨agt der Skew zwischen Ausg¨angen zwei-er solcher Treiber, die mit dem selben Eingangssignal getrieben werden, h¨ochstenstSKEWEXT =

1ns (bei gleicher Temperatur und Last). Die damit erzeugten Clock–Signale werden dann ¨uberKoaxkabel der gleichen L¨ange an alle Boards der SB–PRAM verteilt. Alle Boards sind mit ei-ner einheitlichen Clock–Schaltung ausger¨ustet und haben identische Terminierung, Clock–Treiber(74FCT 805/8061), Leiterbahnlange und Last. Zus¨atzlich werden nochtRESERVE= 0:5ns Reservefur unvermeidbare kleine Unterschiede bei den Clock–Kabell¨angen sowie bei Geometrie und Lastder Clockschaltungen berechnet.

1Beide Treiber haben die selben Spezifikationen und unterscheiden sich nur in der Polarit¨at ihrer Ausgange (normaloder invertiert).

36

Page 47: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5.3 Reset– und Clock–Logik

Verzogerung GeschwindigkeitMedium ps=cm cm=ns

Luft (Funkwellen) 34 29Koaxkabel (µ= 2:3) 51 19FR4 PCB, Aussenlage 55–71 14–18FR4 PCB, Innenlage 71 14

Tabelle 5.2: Fortpflanzungsgeschwindigkeit des elektromagnetischen Feldes [HSD93].

Insgesamt durchlaufen alle Clock–Signale einen dreistuf igen Baum, was zwischen den auf denverschiedenen Boards verwendeten Clock–Signalen einen globalen Clock–Skew ergibt von:

tMAX SKEW= 3� tSKEWEXT + tRESERVE= 3�1ns+0:5ns= 3:5ns

Dieser Skew muß beiUbertragungen ¨uber Long–Links beachtet werden, damit neu versandte Datennicht bei gleicher Taktflanke die Empfangseinheit erreichen k¨onnen. Darum muß die Kabeldurch-laufzeit zwischen den Platinen gr¨oßer sein als der Clock–Skew und dieHoldtimedes Empfangsre-gisters (siehe Abbildung 5.6).

MAX_SKEWt

CABLEt

CLK->OUT_MINt

NEW DATA VALID

NEW DATA VALID

OLD DATA VALID

OLD DATA VALID

tREG_HOLD

LINKDIN

CLK

CLK

DOUTLINK

Send

er

Emp

fäng

er

Abbildung 5.6:Ubertragungstiming ¨uber Long–Links (bestcase)

Bei einem Skew vontMAX SKEW= 3:5nsbetragt die minimale L¨ange folglich:

tCABLEz }| {

(tMAX SKEW+ tREG HOLD� tCLK!OUT MIN)�vPROPAGATION =

(3:5ns+1:3ns�1:3ns)�19cm=ns = 66:5cm

Andererseits darf die Kabell¨ange eine bestimmte L¨ange nicht ¨uberschreiten, da dieUbertragungin einem Clock–Zyklus (30ns bei einer geplanten Betriebsfrequenz von 32MHz) erfolgen muß.Dazu mussen sowohl der Clock–Skew zwischen den Boards als auch die Verz¨ogerungszeit desSenderegisters und dieSetup–Zeit des Empfangsregisters (3:5ns fur die auf dem Speicherboardverwandten Bausteine) ber¨ucksichtigt werden (siehe Abbildung 5.7).Dies ergibt eine maximale Kabell¨ange von:

tCABLEz }| {

(TCLOCK� tMAX SKEW� tCLK!OUT MAX� tREG SETUP)�vPROPAGATION =

(30ns�3:5ns�5:4ns�3:5ns)�19cm=ns = 334:4cm

37

Page 48: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5 Realisierung des Boards

MAX_SKEWt

CABLEt

CLOCKT

tREG_SETUP

LINKDIN

CLK

CLK

DOUTLINK

tCLK->OUT_MAX

DATA VALID

DATA VALID

Send

er

Emp

fäng

er

Abbildung 5.7:Ubertragungstiming ¨uber Long–Links (worstcase)

Verzogerungsglieder

Die vom Netzwerk ankommenden Pakete werden vom Netzwerkknoten erzeugt, der wegen derinternen Realisierung seiner Clock–Schaltung mit einem verz¨ogerten Takt arbeitet. Die daraus ent-stehende Verschiebung beim Paketversand muß beim Empfang der Pakete auf dem Speicherboardberucksichtigt werden. Vor und nach jedem Link sind immer Register angebracht. Aus diesemGrund, und auch um dasOld–Node–Protokoll fahren zu k¨onnen (siehe Anhang B), wurdenDelay–Lines fur die Clock–Versorgung der Netzeingangs– und Netzausgangsregister sowie der Netzwer-klogik vorgesehen (siehe Abbildung 5.8).

CONTROLIN

DELAY

MEMDOUT

LINKDIN[18:35]

LINKDIN[0:17]

DOUTLINK

DELAY

DINMEM

ZW

TEN

ERK

RegHi

DIN

REG

Clock CLK

Speicherboard

Drivers

CONTROLOUT

RegIn

OutReg

D0

D2

D1

FIFOIn

Bank

DELAY

Abbildung 5.8: Skizze der Delay–Lines–Schaltung

Sie erlauben eine zwischen 0ns bis 25ns einstellbare Verschiebung der Sampling–Flanke (in 5ns–Schritten) auf dem Netzwerkhinweg sowie der Sendeflanke auf dem Netzwerkr¨uckweg.

Die vom Netzwerk ankommenden Pakete werden nach ihrer Aufnahme imRegIn –Register auf denDINMEM –Bus gelegt und danach in die FIFO einer Bank (FIFOIn ) bei nachst fallender Taktflanke

38

Page 49: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5.3 Reset– und Clock–Logik

aufgenommen.

Um den Empfang der verz¨ogerten Netzwerkpakete zu erlauben, m¨ussen die Takte desRegHi – unddesRegIn –Registers so verz¨ogert werden, daß ihreSetup– undHold–Zeit erfullt sind (siehe Abbil-dung 5.9). Dies geschieht mit Hilfe derDelay–LinesD0undD1. Der Takt derControl In –Logik, diedie Signale desRegHi –Registers bewertet, wird ebenfalls gleichm¨aßig verz¨ogert. Den inRegIn auf-genommenen Daten muß jedoch noch soviel Zeit bleiben, daß sie das Register durchlaufen k¨onnen(tCLK!OUT MAX = 5:4ns) und dieSetup–Zeit der Bank–FIFO (tFIFO SETUP= 1:2ns) erfullen.

tCLK->OUT_MAX

tCLK->OUT_MAX

LINKDIN[0:17]

DINMEM

CLK

tREG_SETUP

tREG_SETUP tREG_HOLD

tREG_HOLD

t

CLOCKT

DD0,D1

FIFO_SETUP

DATA HI VALID

DATA LO VALID

DATA HI VALID

DATA VALID

MEM

DIN[18:35]LINK

DINREG

CLKD0,D1

Abbildung 5.9: Timing des Netzwerkpaketempfangs

Die maximal mogliche Verzogerung der Sampling–Flanke beider Eingangsregister gegen¨uber demNetzwerktakt berechnet sich wie folgt:

DD0;D1 =12�TCLOCK� tCLK!OUT MAX� tFIFO SETUP

=12�30ns�5:4ns�1:2ns= 8:4ns

Ahnlich dem Hinweg arbeiten die FPGAs des Speicherboards mit einer verz¨ogerten Clock. Infol-gedessen muß die Sampling–Flanke desRegOut –Registers und derControlOut –Logik ebenfallsmit Hilfe der Delay–LineD2 verschoben werden. Da der Takt des Netzwerkknotens, der die Da-ten empfangt, ebenfalls verz¨ogert ist, stellt der verz¨ogerte Versand der Pakete kein Problem dar.Nach Simulation des Speicherprozessors und unter Ber¨ucksichtigung der Leiterbahnl¨ange betr¨agtdie notwendige Verz¨ogerung bei 32MHzworstcaseDD2 = 6:2ns.

39

Page 50: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5 Realisierung des Boards

5.4 Netzwerklogik

Die Netzwerklogik ist fur die Anpassung der verschiedenen Netzwerk–Link–Protokolle an dasSpeicherboardprotokoll zust¨andig. Ebenso ist sie verantwortlich f¨ur die Steuerung der Reihenfol-ge der Antwortpakete. Die Steuerung ist notwendig wegen der parallelen Ausf¨uhrung der Anfragen.Jedes Modul hat eine eigene Netzwerklogik, die aus zwei GALs (TOP und STRANGE genannt)und einem kleinen FPGA besteht.

5.4.1 Hinweglogik

Die Aufgabe der Hinweglogik ist zum einen die Verteilung der Pakete an die vier B¨anke, zumanderen die Generierung desBUSYOUTLINK –Signals und drittens das Speichern der Pakete, dienach Busy–Meldung noch ankommen k¨onnen.

MEMDIN36LINKDIN[0:17]

LINKDIN[18:35] 18

LINKVALIDIN

N

E

T

Z

W

E

R

K

...

GAL

MEMVALIDIN[1:3]

VALIDIN0 MEM

MEMVALINDTTop

BUSYOUT0

BUSYOUT[1:3]

Order

Queue

MEM

MEMMOD[0:2]

SPEICHERBOARD

18

HiReg

InReg

FPGA

FIFO

MEMCIN

BUSYOUTMEMBUSYOUTLINKOutReg

BKIN[0:1]

FPGA

B

FPGA

ANK0

Abbildung 5.10: Schaltung zum Empfang und zur Verteilung der Pakete

Empfang und Verteilung der Pakete

Die obere Halfte eines ankommenden Adreßpakets wird bei fallender Taktflanke imRegHi –Registergesamplet. Diese H¨alfte enthalt alle Daten, die zur Verteilung einer Anfrage notwendig sind, d.h.dieM ODus-Bits (MOD[0:2] MEM) sowie die zwei oberen Bits der Moduladresse. Diese beiden Bits(BKIN[0:1] MEM) dienen zur Auswahl der Bank, die f¨ur die Abarbeitung der Anfrage zust¨andigist. Die Position dieser Bits im Adreßpaket ist von der Speicherbest¨uckung abh¨angig und wird perJumper auf dem Board eingestellt. Anfragen vom TypGH und EOR werden hier erkannt undgeloscht. Fur die restlichen Pakete wird bei der n¨achsten steigenden Flanke einVALIDIN[i] MEM

2

an die zust¨andige Bank geschickt, und das Paket in die EingangsFIFO dieser Bank aufgenommen.Fur Anfragen, die noch ein Datenpaket verlangen, wird zus¨atzlich dasVALINDTMEM –Signal aktiv.

2KONVENTION: Der Indexi wird bei Signalen verwandt, die f¨ur die verschiedenen B¨anke einzeln erzeugt werdenmussen (i = 0. . . 3), jedoch die gleiche Funktion haben. Aus dem Kontext l¨aßt sich die Bank, f¨ur die das Signal bestimmtist, ableiten.

40

Page 51: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5.4 Netzwerklogik

Es bleibt solange aktiv, bis das Datenpaket ankommt. Der Ablauf der Paketverteilung ist in Abbil-dung 5.11 gezeigt.

Addr0[18:35]

Addr0[0:17]

0, LD

VALIDIN

DIN

MEM

LINK

LINK

, MOD

CLK

MEM 0, ST

Data1[0:17]

Data1[18:35]

Addr1[0:17]

Addr1[18:35]

1-Paket-Anfragemit Antwortpaket

VALINDT

DIN

CIN

MEM

MEM

MEM

Addr0 Data1Addr1

2-Pakete-Anfrageohne Antwortpaket

MEMVALIDIN0

BKIN

Abbildung 5.11: Paketverteilung an die vier B¨anke

Dieses Protokoll erlaubt eine flexible Unterst¨utzung aller Netzwerkprotokolle und erm¨oglicht jeder-zeit eineAnderung der Anzahl der Pakete pro Anfragetyp. Das geschieht durch Neuprogrammie-rung desTOP–GALs, ohne daßAnderungen an der Speicherprozessorhardware notwendig werden.

Festlegung der Reihenfolge der Antwortpakete

Sind die Anfragen einmal an die vier B¨anke verteilt, werden sie dort parallel abgearbeitet. Die Ant-wortpakete m¨ussen jedoch in der Reihenfolge, wie die Anfragen eingegangen sind, zur¨uckgeschicktwerden. Um dies zu gew¨ahrleisten, muß die Reihenfolge festgehalten werden. Diese Aufgabe ¨uber-nimmt die Order–FIFO–Queue (IDT72401). Sie speichert die Nummer der Bank, die eine Anfragemit Ruckpaket bearbeiten muß (Anfragen des TypsR D, M P und ER R M ). Dies wird erreicht,indem — zum gleichen Zeitpunkt an demVALIDIN[i] MEM aktiv wird — auch dasCINMEM –Signalwahrend einer halben Taktperiode an die Order–FIFO–Queue angelegt wird. Die FIFO speichertdann die Nummer der Bank, die f¨ur die Abarbeitung der Anfrage zust¨andig ist. Die Order–FIFO–Queue besitzt 32 Eintr¨age von denen ein Speichermodul h¨ochstens 24 verwendet. Das entsprichtdem Maximum der m¨oglichen Anfragen, die sich gleichzeitig in den verschiedenen Stufen einerSpeichermodul–Pipeline befinden k¨onnen.

Diese Zahl wird erreicht, wenn zum einen die AusgangsFIFOs der vier B¨anke, die die Anfrageant-worten zwischenspeichern, voll sind, weil das Netzwerk Busy gemeldet hat, und zum andern dieEingangsFIFO einer Bank, die die noch nicht bearbeiteten Anfragen sammelt, ebenfalls voll wird.Infolgedessen wird vom Speicherboard ein Busy an das Netzwerk geschickt, so daß danach nur nochhochstens vier Pakete, die zu maximal drei verschiedenen Anfragen geh¨oren, ankommen k¨onnen

41

Page 52: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5 Realisierung des Boards

(siehe 4.1.1). Diese Pakete werden in derUbervoll–FIFO abgespeichert. Zu diesem Zeitpunkt ent-halten die EingangsFIFOs der drei ¨ubrigen Banke hochstens eine Anfrage weniger, als sie maximalspeichern k¨onnen, da die Netzwerkpakete sequentiell verschickt werden. Somit k¨onnen auch nichtzwei FIFOs gleichzeitig voll werden. Die maximale Anzahl der Anfrage, die sich gleichzeitig imSpeicherboard befinden k¨onnen, laßt sich also berechnen zu:

4�Tie f eAusgangsFIFO+ 3� (Tie f eEingangsFIFO�1) +

Tie f eEingangsFIFO + #An f rageUbervollFIFO =

4�2+3� (4�1)+4+3 = 24

Die Information der FIFO dient dann der R¨uckweglogik, die Reihenfolge der Antworten zu steuern.

Paketempfang bei voller Bank–FIFO

Da Anfragen ungleichm¨aßig verteilt werden und infolgedessen schneller ankommen k¨onnen, alssie abgearbeitet werden, kann die EingangsFIFO eines Speicherprozessors voll werden. Dies mel-det der Speicherprozessor an die Hinweglogik durch Aktivieren desBUSYOUT[i] FPGA –Signals.Die BUSYOUT[i] FPGA –Signale der vier B¨anke werden zu einemBUSYOUTMEM ver’oder’t, in dasRegOut –Register aufgenommen und an den einspeisenden Netzwerkknoten weitergeleitet. Durchdie Latenz der Long–Links zwischen Netzwerk und Speicherboard k¨onnen danach noch bis zu vierPakete ankommen (siehe 4.1), die ebenfalls untergebracht werden m¨ussen.

Losung 1:Eine Moglichkeit ware, Platz f¨ur diese Pakete auf jeder Bank zu schaffen, durch Redu-zierung der benutzbaren EingangsFIFO–Tiefe um vier. Das hieße, es w¨aren 16 Eintr¨age pro Modulfur nur vier mogliche Pakete notwendig. Außerdem w¨urde die Reduzierung der FIFO–Tiefe eineschlechtere Performance nachsichziehen.

Losung 2:Als Alternative kann eine zus¨atzliche FIFO fur diese Pakete vorgesehen werden. Die dortgepufferten Pakete k¨onnen dann an die zust¨andige Bank weitergeleitet werden, sobald diese wiederPlatz in ihrer EingangsFIFO hat.

Letztere Losung mit einem zus¨atzlichen Baustein — im weiterenUbervoll–FIFO genannt — wurdefur das Speicherboard gew¨ahlt, um die Performance der B¨anke nicht signifikant zu reduzieren.

5.4.2 Betrieb derUbervoll–FIFO

Da es keine g¨unstige Losung aus Standard–Bauteilen gab, wurde dieUbervoll–FIFO auf einemA1020–FPGAimplementiert. Es verf¨ugt uber 500 freiprogrammierbare Module sowie 57 I/O–Pads(siehe [ACT92]). Die Datenpfade derUbervoll–FIFO sind in Abbildung 5.12 skizziert.

Nachdem ein Speicherprozessor Busy gemeldet hat, weil seine EingangsFIFO voll ist, k¨onnen nurnoch in den n¨achsten vier Zyklen Pakete vom Netzwerk ankommen (siehe 4.1.1). Die Pakete, diein dieser Zeitspanne noch ankommen, werden alle, unabh¨angig vom Busy-Zustand ihrer Zielbank,in die Ubervoll–FIFO gespeichert. Dadurch wird vermieden, daß die Reihenfolge der Pakete einerBank durcheinander kommt. Dies k¨onnte sein, wenn eine erste Anfrage in dieUbervoll–FIFO ge-schrieben werden mußte, weil die Zielbank Busy gemeldet hat, zwischenzeitlich die EingangsFIFOdieser Bank jedoch wieder frei geworden ist und eine weitere Anfrage annimmt, vor derjenigen, die

42

Page 53: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5.4 Netzwerklogik

N

E

T

Z

W

E

R

K

...

BANK 3

BANK 0

VALINDT MEM

VALIDIN[0:3]MEM

LOGIC

LINKDIN[18:35]

LINKVALIDIN RegHi

LINKBUSYOUTOutReg

InReg

NETEN

OF

LINKDIN[0:17]36

MEMDIN

SPEICHERBOARD

BUSYOUT[0:3]36

VALIDIN4

Übervoll-FIFO

FIFO4x36b

GAL

Top

BUSYOUTMEM

MEM

FPGA

MEM

VALIDIN OF

OF

OF

VALINDT

BKIN[0:1]

BUSYOUT4

Abbildung 5.12: Skizze der Anbindung derUbervoll–FIFO

in derUbervoll–FIFO bereits wartet.

Paketempfang derUbervoll–FIFO

Pakete werden entsprechend dem Protokoll der EingangsFIFOs der Speicherprozessoren mit Hil-fe desVALIDIN4 MEM – und desVALINDTMEM –Signals in dieUbervoll–FIFO geschrieben. (sieheAbbildung 5.13). Gleichzeitig wird bei Anfragen mit Antwortpaket, ¨ahnlich der Verteilung an dieBanke, die Abarbeitungsbanknummer in die Order–Queue gespeichert. Dies garantiert, daß die Rei-henfolge der Antworten koh¨arent bleibt.

Bereits beim ersten in derUbervoll–FIFO ankommenden Paket aktiviert die FIFO dasBUSYOUT4OF –Signal, das von der Steuerungslogik des Boards zu denBUSYOUT[i] FPGA –Signalen der vier B¨ankeebenfalls ver’oder’t wird, um dasBUSYOUTMEM zu erzeugen, das an das Netzwerk weitergeleitetwird. Dies hat zur Folge, daß h¨ochstens noch in den n¨achsten drei Takten Pakete vom Netzwerk an-kommen konnen, unabh¨angig davon, ob die B¨anke in der Zwischenzeit wieder Platz in ihrer FIFOhaben und deshalb nicht mehr Busy melden.

Paketverteilung der Ubervoll–FIFO

Vier Takte nachdem dieUbervoll–FIFO das erste Paket ¨ubernommen hat, disable’t das FPGA durchSetzen desNETENOF –Signals die Ausg¨ange desRegIn –Registers, um die in seiner FIFO zwischen-gespeicherten Pakete an die B¨anke verteilen zu k¨onnen, sobald diese wieder Platz in ihrer Eingangs-FIFO haben (siehe Abbildung 5.13).

43

Page 54: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5 Realisierung des Boards

CLK

1 32

VALINDTMEM

MEM

MEMVALIDIN0

VALIDIN4

DINMEM Data1 Data1Addr1Addr0

MEMBUSYOUT0

BUSYOUT4

NETEN

0

5

Addr1

Paketempfang Paketverteilung

OF

OF

OF

OF

BKIN[0:1]

VALIDIN

Abbildung 5.13: Paketempfang und –verteilung derUbervoll–FIFO

Ist dies der Fall, legt das FPGA das Paket auf denDINMEM –Bus, die Zielbanknummer auf denBKIN[0:1] OF–Bus und benachrichtigt die Netzwerklogik davon durch Aktivieren desVALIDIN OF –Signals. Die Hinweglogik generiert dann das entsprechendeVALIDIN[i] MEM– undVALINDTMEM–Signal, damit die Bank das Paket abholt. Erst wenn dieUbervoll–FIFO leer ist, werden dasBUSYOUT4OFvom FPGA weggenommen, die Ausg¨ange der FIFO abgedreht und wird dasOutput–EnabledesRegIn –Registers wieder aktiviert.

5.4.3 Ruckweglogik

Die Aufgabe der R¨uckweglogik besteht in der Arbitrierung des R¨uckwegbus zwischen den vierBanken und in der Steuerung des R¨uckversands der Pakete. Der Aufbau dieser Schaltung ist inAbbildung 5.14 skizziert.

Arbitrierung des R uckwegbus

Die Reihenfolge, in der die Antwortpakete abgeschickt werden, wird durch die Order–Queue fest-gelegt (BKOUT[0:1] MEM). Sobald eine Bank im Besitz der Antwort einer Anfrage ist, will sie dieseAntwort ins Netzwerk zur¨uckschicken. Wenn jedoch die chronologische Reihenfolge der Antwor-ten nicht gew¨ahrleistet ist oder die FIFO des empfangenden Netzwerkknotens voll ist, was durchdasBUSYINLINK signalisiert wird, dann muß das verhindert werden.

Dies wird erreicht, indem f¨ur jede Bank einBUSYIN[i] MEM –Signal generiert wird, das inaktivbleibt, solange die Bank mit der Antwort an der Reihe ist und keinBUSYINLINK vom Netzwerkgemeldet wird. Sobald dasBUSYIN[i] MEM –Signal eines Speicherprozessors aktiv wird, darf dieserweder Pakete abschicken, noch auf den R¨uckwegbus treiben. Da mindestens drei der vier erzeugtenBUSYIN[i] MEM immer aktiv sind, k¨onnen keineBus–Contentions entstehen.

44

Page 55: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5.4 Netzwerklogik

BANK0

N

E

T

Z

W

E

R

K

LINKVALIDOUT

InRegLINKBUSYIN

Order

Queue

MEM

SPEICHERBOARD

...

LINKDOUT DOUT

Strange

GAL VALIDOUT0

BUSYIN0MEM

MEMBUSYIN[1:3]

VALIDOUT[1:3]

Reg

Out

VALIDOUTMEM

18

BUSYINMEM

COUTMEM

FPGA

FPGA

FPGA

MEMBKOUT[0:1]

Abbildung 5.14: Skizze der Schaltung zum R¨uckversand der Pakete

Ruckversand der Pakete

Sobald keinBUSYIN[i] MEM vorliegt, schickt die Bank Pakete ab, indem sie Daten auf den R¨uck-wegbus legt und dasVALIDOUT[i] FPGA –Signal aktiviert (siehe Abbildung 5.15). Die vierVALIDOUT[i] FPGA

werden im GAL zu einemVALIDOUTMEM –Signal ver’oder’t und mit dem Antwortdatum vor Ver-lassen des Boards inRegOut festgehalten.

CLK

DOUTLINK

VALIDOUT

MEMDOUT

VALIDOUT

MEM

LINK

Data Low

Data High Data Low

Data High

MEM

FPGA

BUSYIN0

VALOUT0

LINKBUSYIN

MEM

MEMBKOUT

COUT

0 0

Abbildung 5.15: Zeitlicher Ablauf der Signale auf dem R¨uckweg–Link

45

Page 56: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5 Realisierung des Boards

Bei Versand des zweiten Halbpakets einer Antwort wird durch dasCOUTMEM –Signal der dazu-gehorige Eintrag aus der Order–Queue entfernt und die Bank selektiert, die f¨ur den Ruckversandder nachsten Antwort zust¨andig ist (BKOUT[0:1] MEM). Liegt einBUSYINLINK vor, wird der Pake-truckversand angehalten bis das Netzwerk wieder empfangsbereit ist.

46

Page 57: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5.5 Hostlogik

5.5 Hostlogik

Die Hostlogik ist fur die Hostzugriffe auf den globalen Speicher und auf das Error–Register (RegErr )jeder Bank zust¨andig. Die daf¨ur verwandte Schaltung ist in Abbildung 5.16 skizziert.

RAM

RAMA

D RAM

DHMEM

AHMEM

B

A

C

K

P

L

A

N

E

-

H

O

S

T

DHOST

AHOST

HOSTES, RW

/ASHOST

CASADDRMEM

HOSTSEL

HDDrv

DrvHDR

DrvHDR

32

EN 32

Bank 0..3

SPEICHERBOARD

Module A

Module B

11 22

3

FPGA

GAL

GAL

UP

DOWNMEM

DHOST

AHOST

HOSTES, RW

/AS0

/ACKMEMErrReg

ARAM

DRAM

MUX

HA

MEM/AS[4:7] /ACK[4:7]

/ACK0

FPGA

FPGA

/ACK[1:3]FPGA

/AS[1:3]MEM

Abbildung 5.16: Skizze der Hostanbindung

Die Steuerung der Zugriffe erfolgt durch zwei GALs,UP undDOWN genannt. Die vom Host an-gelegte Adresse (AHOST) ist wie bei Netzwerkzugriffen gehasht und wird durch das Fan–Out–Boardund die Backplanes zum richtigen Speicherboard geleitet. Die Nummer der Zielbank wird auf demSEL[0:2] HOST –Bus von der Backplane an das Speicherboard ¨ubermittelt. Sie entspricht entwederBit 20 bis 22 oder 22 bis 24 der Hostadresse, entsprechend der Gr¨oße der auf dem Speicherboardverwendeten DRAMs, und wird auf der Backplane per Jumper eingestellt.

Um dasFan–Outder Busse auf die Backplanes zu beschr¨anken, sind Hostadreß– (AHOST) und Host-datenbus (DHOST) nicht direkt an jede Bank des Boards angebunden, sondern werden zuvor nochauf dem Speicherboard durch einen Multiplexer (MuxHA ) fur die Adressen und einen Treiber(DrvHD) fur die Daten geschickt. Der Zugang des Hostadreß– (AHMEM) und Hostdatenbus (DHMEM)zu den RAM–Modulen der verschiedenen B¨anke erfolgt ¨uber Treiber (DrvHAR undDrvHDR), derenAusgange vom Speicherprozessor der entsprechenden Bank gesteuert werden.

47

Page 58: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5 Realisierung des Boards

Alle Signale, die vom Host ankommen, m¨ussen eineSetup–Timevon 5ns vor ihrer Sampling–Flanke erfullen und danach unver¨andert bleiben, bis das Speicherboard das Ende des Hostzugriffsdurch Aktivieren des/ACKMEM –Signals best¨atigt.

5.5.1 Hostzugriffe auf den globalen Speicher

Ein Hostzugriff wird durch Anlegen desRWHOST –Signals, einer Adresse sowie das Setzen des Adreß–Strobes (/AS HOST) gestartet. Um einen Zugriff auf den globalen Speicher durchf¨uhren zu k¨onnen,muß auch das Error–Strobe (ESHOST) inaktiv sein. Bei Schreibzugriffen m¨ussen einen Zyklus nach/AS HOST die Daten folgen, nachdem zuvor durchRWHOST die Datentreiber in die entsprechende Rich-tung geschaltet worden sind.

Die Zielbank einer Hostanfrage wird aus dem/AS HOST –Signal sowie denSELHOST –Bits vomDOWN–GAL dekodiert und durch Generieren eines/AS[i] MEM–Signals benachrichtigt.

CLK

/ASHOST

P.1 P.2 P.3 P.4P.-1P.-2 P.0

/ACK

DRAM

A

CASADDR

HOSTCNTMEM

MEM

RAM

HMEMA

WRITE

READ

HOST DATA

DATA VALID

HOST ROW ADDRESS HOST COLUMN ADDRESS

HOST ROW ADDRESS HOST COLUMN ADDRESS

0 1 2 03

/RAS

/CAS

RAM

RAM

RAM/WR

/ACK0

MEM

HOST

MEM/AS0

DATA (WRITE)

HOST ADDRESS, RW, ES

D

A, ES, RW

FPGA

HOST RW

Abbildung 5.17: Ablauf eines Hostlese– und Hostschreibzugriffs

Einen Zyklus bevor der Speicherprozessor den angefragten Hostzugriff startet (siehe Abbildung5.17), werden Adreß– und Datenbus des Speicherprozessors in denHi–Z–Zustand geschaltet und

48

Page 59: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5.5 Hostlogik

ein /ACK[i] FPGA –Signal wird nach außen gelegt. Durch dieses Signal werden die Treiber zwi-schen den Host– und DRAM–Bussen (DrvAHR und DrvDHR) der Bank eingeschaltet und die Ho-stadressen, im Falle eines Schreibzugriffs auch noch die Hostdaten, an die DRAMs gelegt. DerSpeicherprozessor k¨ummert sich w¨ahrend des Hostzugriffs dann nur noch um die Generierung derDRAM–Steuerungssignale (siehe Kapitel 6). Parallel dazu wird das/ACK[i] FPGA –Signal noch andasUP–GAL gefuhrt, was einen Z¨ahler starten l¨aßt. Mit Hilfe dieses Z¨ahlers wird der Hostadreß-multiplexer (MuxAH ) durch dasCASADDRMEM –Signal auf Spaltenadresse geschaltet, nachdem zu-vor der Speicherprozessor im ersten Zugriffszyklus die Host–Zeilenadresse durch das/RAS –Signalvalidiert hat. Wenn der Z¨ahler den Wert 2 erreicht, wird f¨ur einen Zyklus das/ACKMEM –Signal ak-tiv, was das Ende des Zugriffs an den Host signalisiert. Bei Lesezugriffen werden g¨ultige Datenparallel zum/ACKMEM auf dem Bus zur¨uckgeschickt. Diese Daten liegen mindestens 9ns vor derSampling–Flanke von/ACKMEM am Backplaneausgang vor und werden noch mindestens f¨ur 24nsdanach gehalten.

5.5.2 Hostzugriffe auf das Error–Register

Alle Banke besitzen auf ihrem Speicherprozessor ein spezielles Register — Error–Register genannt—, das den zuletzt aufgetretenen Fehler enth¨alt (siehe 4.3.2). Dieses Register kann vom Host ausgelesen werden. Ein Hostlesezugriff auf das Error–Register unterscheidet sich gegen¨uber einemgewohnlichen Hostlesezugriff nur durch das zus¨atzliche Setzen desESHOST –Signals. Bei einemsolchen Zugriff wird vom FPGA der entsprechenden Bank statt eines Datums aus dem globalenSpeicher der Inhalt desError–Registers auf denDRAM –Bus gelegt und an den Host zur¨uckgeschickt(siehe 6.11.3). Bei Netzwerkfehlern enth¨alt dieses RegisterM ODus,OP eration und Adresse derfehlerhaften Anfrage, um R¨uckmeldung an die Prozessoren zu erm¨oglichen bzw. fur Debugging-zwecke.

5.5.3 Interruptgenerierung an den Host

Jeder Speicherprozessor besitzt zwei Interruptleitungen, um Fehler an den Host r¨uckmelden zukonnen. Eine,/NITR[i] FPGA genannt, wird zur R¨uckmeldung von Netzwerkfehlern, die ande-re, /RITR[i] FPGA, zur Ruckmeldung von RAM–Parit¨atsfehlern benutzt. Die Interrupts der achtBanke eines Boards, die bei steigender Flanke auftreten k¨onnen, werden von zwei Priority–Enco-der–Bausteinen (74F148) gesammelt und sp¨atestens nach 21:5ns an die Backplanes weitergeleitet(siehe Abbildung 5.18). Zus¨atzlich wird das Auftreten eines Interrupts durch zwei LEDs auf demBoard signalisiert.

Die Speicherinterrupts aller Boards werden auf den Backplanes und dem Fan–Out–Board eben-falls mit Hilfe von Priority–Encodern zusammen gefaßt und an den Host weitergeleitet. Ein aus-geloster Speicherinterrupt bleibt solange aktiv, bis der Host den Empfang durch Zugriff auf dasError–Register best¨atigt. Dies garantiert, daß, falls mehrere Speicherboards gleichzeitig ein Interruptauslosen, diese sich nicht gegenseitig st¨oren, sondern hintereinander abgearbeitet werden k¨onnen.

49

Page 60: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

5 Realisierung des Boards

/?ITR0 FPGA

PRIORITY

HOST

PLANE

BACK

Speicherboard

Module A

Module BFPGA/?ITR7

8:3Bank 0

Bank 3

Bank 0

Bank 3...

...

/?ITR[0..2]

/HAVE_?ITRNCODER

E

Abbildung 5.18: Skizze der Hostinterruptschaltung

50

Page 61: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Kapitel 6

Realisierung des Speicherprozessors

In diesem Kapitel wird der Aufbau des Speicherprozessors dargestellt. Im ersten Teil wird auf dieDatenpfade des Chips und den Reset–Vorgang eingegangen. Der zweite Teil beschreibt die Pipelineund die Realisierung der einzelnen Stufen, die f¨ur die Anfrageabarbeitung notwendig sind. Die inKapitel 5 beschriebene Logik zur Steuerung der Host– und Netzwerkschnittstellen wird im weiterenText Boardlogik benannt.

6.1 Realisierung und Reset–Vorgang

Der Speicherprozessor wurde auf einem FPGAA1280–1der Firma Actel realisiert [ACT92]. EinFPGA besteht aus frei programmierbaren Macro-Zellen (Modulen) und Pads, die verschiedene lo-gische Funktionen (And, Or, Register, Halbaddierer, . . . ) bzw. I/O–Funktionen (Eingang, Tri–StateAusgang, bidirektionale Pads, . . . ) realisieren k¨onnen. Nach Eingabe der Schaltpl¨ane und Erzeu-gung einer Netzliste wird die Platzierung und das Verdrahten der Module und der Pads auf demFPGA durch ein Routing–Programm durchgef¨uhrt. Die vorgeschlagene Platzierung kann danachvon Hand verfeinert werden, um die Laufzeit kritischer Signale m¨oglichst zu minimieren. DieActel–FPGAs geh¨oren zur Antifuse–FPGA–Familie und werden wie PALs durch Wegbrennen derunnotigen Verbindungen programmiert.

Das auf dem Speicherboard eingesetzte FPGA verf¨ugt uber 160 Pins und besitzt eine Kapazit¨at von8000 Gatter¨aquivalenten, die als 600 sequentielle Module (Register) und 600 kombinatorische Mo-dule (logische Gatter) organisiert sind. Die aktuelle Version des Designs ben¨otigt 99% der benutz-baren Gatter sowie 119 der 124 frei verf¨ugbaren I/O–Pins1. Durch teilweises Handrouten kritischerSignale wurde in der Simulation eine maximale Taktrate von 34MHzoverall worst–caseund uber40 MHzaverage–caseerreicht.

Mit Anschalten des Boards wird, wie in 5.3.1 erw¨ahnt, automatisch f¨ur ca. eine halbe Sekundeein /RESET–Signal an jeden Speicherprozessor gelegt, um einen definierten Zustand der FPGAszu erreichen. DasBUSYOUT[i] FPGA–Signal bleibt wahrend des ganzen Reset–Vorgangs aktiv, umden Netzwerkpaketversand zu unterdr¨ucken. Nach einem Reset m¨ussen noch vier Refreshzugriffestattfinden, um einen einwandfreien Betrieb der DRAMs zu garantieren (siehe [RAM94]), bevorRAM–Lese– und RAM–Schreibzugriffe durchgef¨uhrt werden d¨urfen.

1der Rest dient zur Stromversorgung

51

Page 62: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6 Realisierung des Speicherprozessors

6.2 Datenpfade

Die Datenpfade des Speicherprozessors sind in Abbildung 6.1 skizziert. EineUbersicht aller Busseund Signale des FPGAs findet sich am Ende dieses Kapitels.

DINMEM MEMDOUT

Adreß- Daten-

EingangsFIFO

XOR

NetInReg

RegErr

MPReg

36

Kontrol-

logik

3

32

11

XOR

32

18

OPBOPA

DERR

34

DRA

M

FIFOA FIFOD

DALU

DRAM RAMPAR

DFPGA

FPGAA

MuxND

32

32

Speicherprozessor

Speicherboard

Kontroller

DRAM

ALU

22 25 3 32

2

32

36

S

FIFO

Ausgangs-

32

, ARAM

ODMux

ND DrvRPDrvDrvNA

DrvOD

Abbildung 6.1: Logisches Diagramm des Speicherprozessors

52

Page 63: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6.3 Pipeline

Der Speicherprozessor besteht aus folgenden Einheiten:

� EingangsFIFO zum Empfang der ankommenden Netzpakete� Schedulerzur Arbitrierung zwischen Netz–, Hostanfragen und Refreshs� Kontrollogik zur Steuerung des Abarbeitungsablaufs� DRAM–Kontroller zur Steuerung der DRAMs� ALU zur Ausfuhrung der MP–Operationen� AusgangsFIFOzum Versand der Antwortpakete� XOR–Schaltungenzur Berechnung undUberprufung der Netzpaket– bzw. Speicherpa-

ritat

6.3 Pipeline

Um den in Kapitel 3 genannten Durchsatz von einer Anfrage alle 4 Zyklen bzw. alle 8 Zyklen beiMulti–Prefix–Anfragen zu erreichen, — wobei bereits die Ausf¨uhrung des dazu n¨otigen Speicherzu-griffs so lange dauert — arbeitet der Speicherprozessor mitPipelining. Dies erlaubt, den Durchsatzeiner Schaltung zu erh¨ohen durch bessere Auslastung der einzelnen Komponenten eines Schaltkrei-ses.

Beim Pipelining werden große Schaltkreise in kleine Teilschaltungen zerlegt, die durch Register ge-trennt sind, die die Zwischenergebnisse der einzelnen Teilschaltungen speichern. Dadurch k¨onnenmehrere Berechnungen gleichzeitig auf verschiedenen Teilschaltungen durchgef¨uhrt werden. DieErgebnisse dieser Berechnungen werden dann in die Zwischenregister gespeichert, bevor sie an dienachste Teilschaltung weitergeleitet werden. Solche Teilschaltungen werden als Pipeline–Stufen be-zeichnet.

Die Frequenz mit der eine Pipeline betrieben werden kann, wird von der Laufzeit der langsam-sten Teilschaltung bestimmt. Infolgedessen sollten f¨ur einen effizienten Betrieb der Pipeline dieTeilschaltungen so ausgelegt werden, daß sie ¨ahnlich kurze Durchlaufzeiten haben. Die Hardware–Kosten fur die Zwischenregister hinter jeder Stufe k¨onnen bei Zerlegung eines Schaltkeises nichtaußer acht gelassen werden, was viele kleine Teilschaltungen bzw. eine Trennung an Stellen mitvielen Zwischenergebnissen ausschließt. Eine optimale Auslastung der einzelnen Teilschaltungenwird erreicht, indem die Teilschaltungen unabh¨angig voneinander arbeiten, womit eine neue Be-rechnung in jedem Zyklus gestartet werden kann. Ist dies der Fall, kann, nachdem das Ergebnisder ersten Berechnung einmal den Ausgang der letzten Pipeline–Stufe erreicht hat (Setup–Zeit), injedem Zyklus ein weiteres Ergebnis geliefert werden.

6.3.1 Aufbau der Pipeline

Die Pipeline des Speicherprozessors besteht aus 11 Stufen. Die Anzahl der Pipeline–Stufen, diebei der Abarbeitung einer Anfrage durchlaufen werden m¨ussen, h¨angt sowohl vom Netzwerk¨ubert-ragungsprotokoll als auch vom Anfragebefehl ab. Um ¨ahnlich kurze Durchlaufzeiten f¨ur die ver-schiedenen Pipeline–Stufen des Speicherprozessors zu erreichen, wurden die Speicherzugriffe aufvier Stufen verteilt. Diese Stufen k¨onnen darum nur sequentiell ausgef¨uhrt werden, da sie die selbeRessource — in diesem Fall den Speicher — ben¨otigen. Die Verteilung der Speicherzugriffe aufmehrere Pipeline–Stufen bringt keineAnderung im Durchsatz einer Speicherbank, jedoch wird dieLatenzzeit zwischen Ankunft einer Anfrage und R¨uckversand einer Antwort wesentlich verk¨urzt,

53

Page 64: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6 Realisierung des Speicherprozessors

da alle Funktionen bis auf die Speicherzugriffe des Speicherprozessors in einer Pipeline–Stufe ein-fach gegliedert werden k¨onnen. Ferner wird dadurch das Interface mit dem Netzwerk erheblichvereinfacht, da das Netzwerk dann mit der selben Geschwindigkeit wie der Speicherprozessor Pa-kete versenden bzw. empfangen kann. Die Funktionalit¨at der verschiedenen Pipeline–Stufen ist inTabelle 6.1 kurz zusammengefaßt.

Pipeline–Stufen Operation

P.-2– P.-1 * Adreßpaketempfang (2-Pakete–Anfragen) und Parit¨atsuberprufungP.-1– P.0 Adreßpaketempfang (1–Paket–Anfragen), Datenpaketempfang (2–Pakete–

Anfragen) oder Hostanfrageempfang und Parit¨atsuberprufung

P.0– P.1 Prefetch und DekodierungP.1 * Berechnung der Datumsparit¨atP.1– P.4 Ausfuhrung des Speicherzugriffs

P.3– P.4 * Uberprufung der Speicherparit¨atP.4 * Schreiben des gelesenen Datums in die AusgangsFIFOP.5– P.6 * Ruckversand einer Antwort

P.4– P.5 * Ausfuhrung der Multi–Prefix–Operation durch die ALUund Berechnung der Parit¨at des Ergebnisses

P.5– P.8 * Schreiben des Ergebnis in den Speicher

Tabelle 6.1: Pipeline–Stufen

Die mit einem Stern gekennzeichneten Stufen werden nicht von allen Anfragen durchlaufen. DerEmpfang aller Anfragen dauert drei Zyklen (P.-2bisP.0), mit Ausnahme von Host– und Netzwerk–LD–Anfragen, die nur zwei Zyklen ben¨otigen (P.-1 und P.0). Somit beginnt die Anfrageabarbei-tung unabh¨angig des Typs der Anfrage immer in StufeP.0. In den StufenP.0 und P.1 erfolgenArbitrierung und Dekodierung der Anfrage stets vor Ausf¨uhrung des f¨ur die Anfrage notwendigenSpeicherzugriffs (TaktP.1 bis P.4). Bei Anfragen mit Antwortpaket wird das Paket in TaktP.4 indie AusgangsFIFO geschrieben und in den beiden n¨achsten Takten zur¨uckgeschickt. Multi–Prefix–Befehle durchlaufen noch vier weitere Pipeline–Stufen, um die ALU–Operation auszuf¨uhren unddas Ergebnis in den Speicher zur¨uckzuschreiben.

6.3.2 Implementierung der Kontrollogik

Beim Speicherprozessor werden die Kontrollsignale durch eine festverdrahtete Kontrollogik er-zeugt. Diese L¨osung wurde gew¨ahlt, weil sie neben erheblich geringeren Kosten auch eine h¨ohereGeschwindigkeit erlaubt als die Implementierung einer Tabelle, die den Zustand der verschiedenenKontrollsignale fur alle Stufen der Pipeline vorgibt (Mikroprogrammierung). In der Arbitrierung–und Dekodierungsstufe der Pipeline werden nur die Steuersignale erzeugt, die notwendig sind,um den Pipeline–Ablauf der Anfrageabarbeitung zu steuern und die Kontrollsignale der einzelnenPipeline–Stufen zu generieren. Diese Steuersignale durchlaufen dann die verschiedenen Pipeline–Stufen parallel zur Abarbeitung ihrer dazugeh¨origen Anfrage. Die Kontrollsignale, die w¨ahrendeiner Stufe ben¨otigt werden, werden daher vor Beginn der Stufe berechnet, damit sie bei steigender

54

Page 65: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6.4 Empfang von Netzwerkanfragen

bzw. fallender Taktflanke der Stufe in Register zur sofortigen Verf¨ugung geladen werden k¨onnen(Kontrollpipeline).

6.4 Empfang von Netzwerkanfragen

Nach Empfang und Resynchronisation beider H¨alften eines Adreßpakets auf dem Board generiertdie Boardlogik an die f¨ur die Abarbeitung der Anfrage verantwortliche Bank einVALIDIN[i] MEM

und zusatzlich aktiviert sie dasVALINDTMEM, falls die Anfrage noch ein Datenpaket enth¨alt. DasVALINDTMEM bleibt dann solange aktiv, bis das Datenpaket im Speicherboard eingetroffen ist undan die Zielbank weitergeleitet wurde (siehe 5.4.1).

Einen Takt nach Empfang des Pakets auf dem Speicherboard wird es in dasRegNetIn –Registerder FPGA–Zielbank aufgenommen, bevor es gem¨aß seinem Typ (Adreß– oder Datenpaket) in dieAdreß– bzw. Daten–FIFO geschrieben wird. Jede FIFO kann bis zu vier Pakete enthalten. Die Da-tenpfade des Paketempfangs sind in Abbildung 6.2 skizziert.

22

Adreß- Daten-

EingangsFIFO

DIN

FPGA

NetInReg

FIFOO

P

FIFODFIFOA

XOR

36

RegIn

DIN

MEM

32

Kontrol-

logik

36 3

Speicherboard

Speicherprozessor

FPGABUSYOUT[i] MEM

MEMVALINDT

VALIDIN[i]

FIFOM

OD

EMPTY

FIFO

Abbildung 6.2: Datenpfade zum Empfang von Netzwerkanfragen

Entsprechend dem Anfragetyp (1–Paket– oder 2-Pakete–Anfragen) ist der Empfangsablauf unter-schiedlich, was nachfolgend n¨aher erlautert wird.

55

Page 66: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6 Realisierung des Speicherprozessors

6.4.1 Empfang von 1–Paket–Anfragen

Bei Anfragen, die nur aus einem Adreßpaket bestehen (LD–Anfragen), wird das Paket bei TaktP.-1 in RegNetIn aufgenommen und der Scheduler benachrichtigt, daß eine Netzwerkanfrage vorliegt.Beim letzten Paket vorUberlauf der Adreß–FIFO wird noch im gleichen Takt dasBUSYOUT[i] FPGA

aktiviert, was der Boardlogik mitteilt, daß kein Paket mehr an die Bank abgeschickt werden darf.Dieses Signal bleibt dann solange aktiv, bis ein freier Eintrag in der FIFO vorhanden wird. EinenZyklus spater (TaktP.0) wird dann das Paket in die Adreß–FIFO geschrieben und parallel dazu einfiktives Paket in die Daten–FIFO aufgenommen, so daß die Anzahl der Pakete in beiden Queuesimmer gleich ist (siehe Abbildung 6.3).

MEMVALIDIN[i]

MEMVALINDT

DFIFO

AFIFO

DINFPGA

CLK

DINMEM Adreßpaket

Adreßpaket

Adreßpaket

P.-1 P.0 P.1P.-2

Abbildung 6.3: Zeitlicher Ablauf des Empfangs von 1–Paket–Anfragen

6.4.2 Empfang von 2–Pakete–Anfragen

Bei solchen Anfragen (ST –, M P –, SY –Anfragen) wird in TaktP.-2das Adreßpaket insRegNetIn –Register aufgenommen, bevor es einen Zyklus sp¨ater (TaktP.-1) in die Adreß–FIFO geschriebenwird. Parallel dazu wird ebenfalls in TaktP.-1das Datenpaket inRegNetIn aufgenommen, um einenZyklus spater in die Daten–FIFO geschrieben zu werden (siehe Abbildung 6.4). Bei TaktP.-1wirdauch,ahnlich den 1–Paket–Anfragen, der Scheduler von Ankunft der Anfrage benachrichtigt. Beider letzten Anfrage vorUberlauf der Adreß– bzw. Daten–FIFO wird dasBUSYOUT[i] FPGA –Signalaktiviert.

6.5 Empfang von Hostanfragen

Hostanfragen werden von der Boardlogik dekodiert und durch Aktivieren eines/AS[i] MEM –Signalsan die entsprechende Bank weitergeleitet. Dieses Signal wird dann gleichzeitig mitESHOST undRWHOST bei TaktP.-1 in das FPGA aufgenommen und danach an den Scheduler weitergeleitet.

6.6 Scheduling von Refresh–Zugriffen

56

Page 67: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6.6 Scheduling von Refresh–Zugriffen

MEMVALIDIN[i]

MEMVALINDT

Adreßpaket

Adreßpaket

CLK

MEM

P.-2P.-3

DatenpaketDIN

FPGA

FIFO

FIFOD

A

DIN Datenpaket

Adreßpaket

Datenpaket

P.-1 P.0

Abbildung 6.4: Zeitlicher Ablauf des Empfangs von 2–Pakete–Anfragen

6.6.1 Erzwungene Refreshs

Die Speicherzellen eines DRAMs k¨onnen als kleine Kondensatoren angesehen werden, die als Feldorganisiert sind. Bei Schreiben einer ”1” in die Speicherzelle wird der Kondensator geladen undbei ”0” entladen. Beim Auslesen einer Speicherzelle wird ¨uberpruft, ob der Kondensator geladenoder leer ist.Ahnlich Kondensatoren, die elektrisch nicht v¨ollig isoliert sind, geht auch der Inhaltder DRAMs mit der Zeit verloren. Um den Verlust von DRAM–Daten zu vermeiden, m¨ussen re-gelmaßig Refreshzugriffe durchgef¨uhrt werden. Bei diesen Zugriffen wird jeweils eine Zeile desFeldes vom DRAM intern ausgelesen und neu beschrieben. Die Nummer der Zeile (Zeilenadresse),die aufgefrischt werden muß, wird entweder durch einen internen Z¨ahler des DRAMs bestimmt, dernach jedem Refresh–Zugriff erh¨oht wird, oder von der externen Logik auf dem Adreßbus angelegt.Die externe Logik ist auch f¨ur das regelm¨aßige Starten der Refreshs zust¨andig. Um die Kontrollogikmoglichst einfach zu halten, wird das”/CAS before /RAS”–Refresh–Verfahren angewandt, das miteinem internen DRAM–Refresh–Adreßz¨ahler arbeitet.

Um den Verlust der Daten zu vermeiden, m¨ussen alle Zeilen des DRAMs sowohl bei 1Mx9– als auchbei 4Mx9–SIMM in 8msIntervallen aufgefrischt werden. Dabei ist es egal, in welcher Reihenfolgedas geschieht und auch zu welchem Zeitpunkt (siehe [RAM94]). Beim Speicherboard werden die8msin soviele Zeitscheiben unterteilt, wie die eingesetzten SIMMs Zeilen besitzen:

� 1024 bei 1Mx9–SIMMs, die als 1024x1024x9 Zellen organisiert sind.

� 2048 bei 4Mx9–SIMMs, die als 2048x2048x9 Zellen organisiert sind.

In jeder Zeitscheibe muß dann jeweils ein Refreshzugriff stattfinden. Die Zeitscheibe wird mit Hilfeeines 9–Bit Watchdog–Z¨ahlers realisiert, der in jedem Zyklus um eins erh¨oht wird. Bei Erreicheneines Werts (Maximalwert genannt), der von der RAM–Gr¨oße und der Betriebsfrequenz des Boardsabhangt, wird eine Refresh–Anfrage ausgel¨ost und der Z¨ahler darauf auf Null zur¨uckgesetzt. DieRefresh–Anfragen haben h¨ochste Priorit¨at und werden noch vor den bereits empfangenen Netz–und Hostanfragen ausgef¨uhrt. Das hat zur Folge, daß der Watchdog–Z¨ahler auf keinen Fall einzweites Mal seinen Maximalwert erreichen kann, ohne daß die zuvor ausgel¨oste Refreshanfrage

57

Page 68: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6 Realisierung des Speicherprozessors

durchgefuhrt wurde.

Der Maximalwert wird mit Hilfe von Jumpern (REFRATE[0..1] ) auf dem Speicherboard einge-stellt. Die vorgesehenen Konfigurationen sind in Tabelle 6.2 aufgelistet2.

JP1 JP2 Konfiguration

– – 4MB SIMM Module, 10 MHz– X 4MB SIMM Module, 32 MHz– – 1MB SIMM Module, 5 MHzX – 1MB SIMM Module, 10 MHz– X 1MB SIMM Module, 16 MHzX X 1MB SIMM Module, 32 MHz

Tabelle 6.2: Jumperbest¨uckung fur die verschiedenen SIMM–Konfigurationen.

6.6.2 Hidden–Refreshs

Die zum Erhalt der DRAM–Daten notwendigen Refresh–Zugriffe reduzieren die f¨ur Netzwerk–und Hostanfragen verf¨ugbare Speicherbandbreite um bis zu 10%. Um einerseits die Bearbeitung derAnfragen so wenig wie m¨oglich zu behindern und da andererseits Refreshzugriffe nicht zu einemfesten Zeitpunkt stattfinden m¨ussen, wurde das sogenannteHidden–Refresh–Verfahren implemen-tiert. Bei dieser Technik wird in jeder Refresh–Zeitscheibe, sobald keine Netz– oder Hostanfragenmehr vorliegen und der Refresh–Zugriff dieser Zeitscheibe noch nicht durchgef¨uhrt wurde, ein sol-cher Zugriff gestartet und im Refresh–Scheduler vermerkt.

Erreicht der Refresh–Watchdog–Z¨ahler den Maximalwert und ist keine L¨ucke im Anfragefluß auf-getreten, dann wird am Ende der aktuellen Anfrage die Abarbeitung der Host– und Netzwerkanfra-gen unterbrochen und ein bedingter Refresh durchgef¨uhrt. Konnte dagegen ein Hidden–Refresh in-nerhalb der Zeitscheibe durchgef¨uhrt werden, so wird bei Erreichen des Maximalwerts der Watchdog–Zahler nur zur¨uckgesetzt, ohne daß eine Refresh–Anfrage ausgel¨ost wird. Das Scheduling der Re-freshs ist in Abbildung 6.5 gezeigt.

Simulationen, die unter ¨ahnlichen Bedingungen wie in Kapitel 3 beschrieben, durchgef¨uhrt wur-den, haben nach Implementierung von Hidden–Refreshs gezeigt, daß die f¨ur die Refreshs ben¨otigteSpeicherbandbreite bei durchschnittlicher Last vernachl¨assigt werden kann.

6.7 Scheduling und Dekodierung

2Die im Datenbuch aufgef¨uhrten 8ms fur den Refresh aller Zeilen eines DRAMs ist eine Worst–Case–Angabe.DRAMs halten in der Regel ihre Daten ohne Refresh f¨ur uber 30Sekunden, so daß die am Anfang des Speicherboard–Debuggings verwandte Betriebsfrequenz von 500kHzzu keinem Problem gef¨uhrt hat.

58

Page 69: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6.7 Scheduling und Dekodierung

Erzwungener Refresh

Host- und Netzzugriffe Refresh-Zugriffe

Hidden-Refresh

8ms

8ms / #RAM-Zeilen 8ms / #RAM-Zeilen

Abbildung 6.5: Scheduling der Refresh–Zugriffe

6.7.1 Scheduling der Zugriffe

In TaktP.0wird zwischen Netzwerkanfragen, Hostanfragen und Refresh–Zugriffen gew¨ahlt. Refresh–Zugriffe haben h¨ochste Priorit¨at, da sie regelm¨aßig durchgef¨uhrt werden m¨ussen, um den Verlustdes DRAM–Inhalts zu vermeiden. Danach kommen die Hostzugriffe noch vor den Netzwerkanfra-gen. Die Abarbeitung einer Netzwerkanfrage wird nur gestartet, wenn sie keine Antwort erzeugtoder noch mindestens ein Eintrag in der AusgangsFIFO frei ist. Ist dies nicht der Fall, wird TaktP.0solange wiederholt, bis ein Zugriff selektiert ist.

Diese Reihenfolge wurde gew¨ahlt, weil dadurch gew¨ahrleistet ist, daß im Falle eines Netzwerk–Lock–Outs der Host trotzdem noch auf den globalen Speicher zugreifen kann, um die Ursache desFehlers zu untersuchen (z.B. Zugriff auf das Error–Register). Ferner kann, da der Host wegen derTaktsynchronisation und der Backplane–Routing–Zeit nur einen Zugriff ca. alle 15 PRAM–Zyklenstarten kann und dieser in 4 Zyklen vom Speicherprozessor abgearbeitet wird, die Priorit¨atsstufedes Hosts zu keinemLock–Outdes Speichers f¨uhren. Dem SB–PRAM–Netzwerk bleibt zwischenzwei Hostzugriffen dann immernoch gen¨ugend Zeit, um mehrere Zugriffe auf der selben Speicher-bank durchzuf¨uhren. Diese L¨osung erlaubt ebenfalls, die Kommunikation zwischen PRAM undHostrechner — haupts¨achlich Programm–I/O —, die ¨uber den globalen Speicher mittelsPollingrealisiert wird, auch w¨ahrend hoher Netzwerklast nicht zu benachteiligen.

6.7.2 Dekodierung

Nach dem Scheduling einer Anfrage wird diese in TaktP.0undP.1dekodiert und die n¨otigen Steu-ersignale werden berechnet, um den Pipelineablauf der Anfrage zu steuern, und um die Kontrollsi-gnale der einzelnen Stufen erzeugen zu k¨onnen.

Bei Netzwerkanfragen erfolgt parallel zum Start des Speicherzugriffs die Berechnung der Steuersi-gnale anhand desM ODus, derOP eration und des Ergebnisses der Paketparit¨atsuberprufung. Weißtdie Dekodierung auf einen Fehler hin, wird der Speicherzugriff, der aus Geschwindigkeitsgr¨undenbereits gestartet wurde, noch rechzeitig invalidiert (abgebrochener Speicherzugriff) und damit derSpeicherinhalt unver¨andert gelassen.

Bei Hostzugriffen werden noch inP.0die RAM–Adreß– und die RAM–Daten–Ausgangstreiber desFPGAs (DrvNA und DrvND) — vorausgesetzt dasESHOST–Signal ist nicht aktiv (Zugriff auf dasError–Register) — in denHi–Z–Zustand geschaltet, und die externe Logik wird durch Aktivierendes /ACK[i] FPGA–Signals vom Start des Hostzugriffs unterrichtet. Dies f¨uhrt dann vier Zyklen

59

Page 70: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6 Realisierung des Speicherprozessors

spater zum Versand an den Host eines/ACKMEM und bei Hostlesezugriffen zus¨atzlich zum Versandder von der Bank angelegten Daten (siehe 5.5.1). In TaktP.1werden dann anhand des/AS[i] MEM–,desESHOST – und desRWHOST–Signals die Steuersignale erzeugt.

Bei Refresh–Zugriffen ist keine weitere Dekodierung n¨otig. In TaktP.0wird lediglich der DRAM–Kontroller vom Scheduling eines Refreshs benachrichtigt. In TaktP.1werden dann die entsprechen-den Steuersignale erzeugt.

6.8 Ausfuhrung der Speicherzugriffe

DRAM–Zugriffe erfolgen durch einen speziellen Kontroller, der f¨ur die Generierung der n¨otigenSteuerungssignale (/RASFPGA, /CASFPGA, /WRFPGA), das Multiplexing der Adressen und die re-gelmaßigen Refreshs zust¨andig ist.

DRAM-logik

/WR

FPGA

/CA

SFPG

A

/RAS

FPGA

FIFO

Adreß-

eingangs-

RAMD

Kontrol-logik

Control

Speicherboard

FPGA

RAM

A

FPGACASADDR

22

11 11

D

3211

RAMA

NAMux NDMux

Abbildung 6.6: Realisierung des DRAM–Kontrollers

Ein DRAM–Kontroller, der nur die vom Speicherboard ben¨otigten Zugriffe (Read, Write und Re-fresh) unterst¨utzt, wurde im Speicherprozessor realisiert (siehe Abbildung 6.6). Ein externer Kon-troller hatte Platz auf dem Board beansprucht und dar¨uber hinaus eine Steuerungslogik im Speicher-prozessor ben¨otigt. Die gewahlte Losung bringt auch eine Pin–Reduzierung, weil dabei die DRAM–Adreßbusbreite halbiert wird. DieOn–Chip–Implementierung der Refresh–Logik erlaubt ferner ei-ne maßgeschneiderte Steuerung der Refresh–Zugriffe, was die Verwendung von Hidden–Refreshssowie eine konstante Anzahl von Zyklen pro RAM–Zugriff–Typ erlaubt. Außerdem vereinfachtdiese Implementierung erheblich das Pipeline–Scheduling gegen¨uber einem externen Kontroller,der selbst ¨uber den Refresh–Zeitpunkt entscheidet und angefragte Lese– bzw. Schreibzugriffe beiAusfuhrung eines Refreshs um mehrere Takte verz¨ogert.

60

Page 71: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6.8 Ausfuhrung der Speicherzugriffe

Die Belegung des RAM–Adreß– (ARAM) und des RAM–Daten–Busses (DRAM) wahrend der DRAM–Zugriffe ist in Tabelle 6.3 aufgelistet. Der Ablauf aller Speicherzugriffe ist im ersten Zyklus immergleich, so daß das Ergebnis der Anfragedekodierung, das erst in TaktP.1 vorliegt, noch rechzeitigzur Auswahl des Zugriffstyps und zum Schalten derDRAM –Bustreiber (DrvND) des FPGAs berechnetwerden kann.

TaktZugriffstyp P.0 P.1 P.2 P.33 P.4 P.5 P.6 P.73 Bus

AROW

FIFOA

COL

FIFO– – AdreßbusLD

– – DRAM DRAM Datenbus

AROW

FIFOA

COL

FIFO– – AdreßbusST

– DFIFO DFIFO – Datenbus

M P AROW

FIFOA

COL

FIFO– – A

ROW

FIFOA

COL

FIFO– – Adreßbus

SY – – DRAM DRAM – DALU DALU – Datenbus

Host- AROW

HOSTA

COL

HOST– – Adreßbus

Read – – DRAM DRAM Datenbus

Host- AROW

HOSTA

COL

HOST– – Adreßbus

Write – DHOST DHOST – Datenbus

– – – – AdreßbusRefresh

– – – – Datenbus

Tabelle 6.3: Belegung der RAM–Busse w¨ahrend der Speicherzugriffe

6.8.1 Lese– und Schreibzugriffe

Diese Zugriffe werden beiLD–, ST –, Hostlese– und Hostschreibbefehlen verwandt. Sie werdenin Takt P.1 bis P.4 durchgefuhrt. Ihr zeitlicher Ablauf bei Netzwerkanfragen ist in Abbildung 6.7skizziert.

Mit Hilfe des Adreßmultiplexers (MuxNA) wird bei einer Netzwerkanfrage aus der Anfrageadres-se (AFIFO) die Spaltenadresse f¨ur den Zugriff erzeugt und auf denARAM –Bus gelegt. Bei fallenderFlanke des TaktsP.1 wird dann das/RASFPGA–Signal aktiv und die Spaltenadresse vom DRAMubernommen. Danach wird bei steigender Flanke von TaktP.2 derMuxNA–Multiplexer durch dasCASADDRFPGA–Signal auf Zeilenadresse umgeschaltet. Bei Schreibzugriffen wird zum selben Zeit-punkt das Schreibsignal/WRFPGA aktiviert und das Anfragedatum auf denDRAM –Bus gelegt. Einenhalben Taktzyklus sp¨ater wird, vorausgesetzt der Zugriff wurde wegen eines Fehlers nicht invali-diert, das/CASFPGA vom DRAM–Kontroller an das DRAM geschickt. Bei Schreibzugriffen spei-chert dann das DRAM das auf denDRAM –Bus gelegte Datum in die gew¨unschte Adresse. Bei Lesezu-griffen dagegen treibt das DRAM den Inhalt der gew¨unschten Adresse solange auf denDRAM –Bus,bis das/CASFPGA inaktiv wird. Bei steigender Flanke vonP.4 wird das/RASFPGA–Signal wiederentnommen, um dieRecovery–Timedes DRAMs zwischen zwei Zugriffen zu erf¨ullen. /CASFPGA

2DRAM–Recovery–Cycle: In diesem Zyklus schreibt das DRAM die Speicherzeile, auf der der Zugriff erfolgte, indas Speicherfeld zur¨uck. Die Speicherzeile kann n¨amlich nur destruktiv ausgelesen werden.

61

Page 72: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6 Realisierung des Speicherprozessors

CLK

P.1 P.2 P.3 P.4

RAM-READ

RAM-WRITE

COLUMN ADDRESSROW ADDRESS

DATA VALID

WRITE DATA

AFPGA

/RASFPGA

/CASFPGA

/WRFPGA

CASADDRFPGA

DRAM

Abbildung 6.7: Idealisiertes Timing eines RAM–Lese– und eines RAM–Schreibzugriffs

bleibt noch einen halben Zyklus l¨anger aktiv, damit g¨ultige Daten bei steigender Flanke von TaktP.4 in die AusgangsFIFO aufgenommen werden k¨onnen.

Bei Hostzugriffen auf den globalen Speicher ist der DRAM–Kontroller nur f¨ur die Erzeugung derSteuerungssignale/CASFPGA, /RASFPGA und /WRFPGA zustandig. Der RAM–Adreß– und RAM–Datenbus des FPGAs werden in denHi–Z–Zustand geschaltet. Die Versorgung des DRAMs mitAdressen, bei Schreibzugriffen auch noch mit Daten, sowie der R¨uckversand gelesener Daten wer-den von der Boardlogik ¨ubernommen (siehe Kapitel 5).

6.8.2 Multi–Prefix–Zugriffe

Diese Zugriffe werden beiM P – undSY –Befehlen verwandt. Sie lassen sich in einen Lese– undeinen Schreibzugriff unterteilen. In den ersten vier Zyklen (TaktP.1 bis P.4) wird ein Lesezugriffausgef¨uhrt, der wie beiLD–Befehlen abl¨auft. Bei M P –Befehlen wird ebenfalls wie beiLD–Anfragen eine Antwort ins Netzwerk zur¨uckgeschickt. Das aus dem Speicher gelesene Datum wirdbei TaktP.4 in dasRegMP –Register gespeichert. DieOP eration der Anfrage wird dann auf dasAnfragedatum und den Inhalt desRegMP –Registers von der ALU berechnet. Unmittelbar nachdem Lesezugriff wird in TaktP.5 bis P.8 ein Schreibzugriff mit ¨ahnlichem Ablauf wie beiST –Befehlen durchgef¨uhrt, um das Ergebnis der ALU–Operation in den Speicher zu schreiben. BeiM AX –Operationen wird, falls das Anfragedatum gr¨oßer ist als der Speicherinhalt, das Anfrageda-tum in den Speicher zur¨uckgeschrieben.

6.8.3 Abgebrochene Zugriffe

Diese Zugriffe werden bei allen Fehlern, sei es imM ODus, in derOP eration oder in der Pa-ritat, anstatt des normalen Zugriffs ausgef¨uhrt. Der Ablauf ist identisch mit dem eines Lese– bzw.Schreibzugriffs, mit Ausnahme, daß das/CASFPGA–Signal nie aktiv wird, womit der Speicherinhaltunverandert bleibt. Die Adresse, derM ODus und dieOP eration der Anfrage werden bei TaktP.4

62

Page 73: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6.9 Ruckversand von Antworten

ins Error–Register aufgenommen und die Boardlogik wird vom Auftreten eines Netzwerkfehlersdurch Aktivieren des/NITR[i] FPGA –Signals benachrichtigt. Ein solches Kommando dauert wieein gewohnlicher Lese- bzw. Schreibzugriff vier Zyklen. Bei fehlerhaften Multi–Prefix–Anfragenwird der Lesezugriff, der am Anfang solcher Anfragen ausgef¨uhrt wird, invalidiert und die Abar-beitung der Anfrage bereits nach vier Zyklen beendet.

Falls beiM AX –Operationen der Speicherinhalt gr¨oßer ist als das Anfragedatum, wird ebenfallsein abgebrochener Speicherzugriff durchgef¨uhrt und der Speicherinhalt unver¨andert gelassen. DasError–Register und der Netzwerkfehler–Interrupt bleiben dadurch unver¨andert, weil es sich in die-sem Fall nicht um einen Fehler handelt.

6.8.4 Refresh–Zugriffe

Um die Refresh–Logik m¨oglichst einfach zu gestalten, wurde f¨ur das Speicherboard das”/CASbefore /RAS”Refresh–Verfahren implementiert. Ein Refresh–Zugriff wird in TaktP.1 bis P.4 aus-gefuhrt. Sein zeitlicher Ablauf ist in Abbildung 6.8 skizziert.

FPGAA

/RASFPGA

/CASFPGA

FPGA/WR

CLK

P.1 P.2 P.3 P.4

Abbildung 6.8: Timingablauf eines Refresh–Zugriffs

Bei einem solchen Zugriff wird das/CASFPGA–Signal vor dem/RASFPGA–Signal angelegt. Dadurcherkennt das DRAM intern, daß es sich um einen Refresh handelt und frischt eine Zeile des Spei-cherfeldes auf. Die Adresse dieser Zeile wird aus einem daf¨ur vorgesehenen Register des DRAMsgenommen. Der Wert dieses Registers wird danach f¨ur den nachsten Refresh–Zugriff inkrementiert.Bei diesem Zugriff hat/RASFPGA den gleichen Ablauf wie bei Lesezugriffen. Das/CASFPGA wirddagegen nur einen halben Zyklus vor und nach Anlegen des/RASFPGA aktiv.

6.9 Ruckversand von Antworten

Bei LD–, M P – undER R M –Befehlen werden in TaktP.4das aus dem Speicher gelesene Datumund seine 2–Bit Parit¨at in die AusgangsFIFO aufgenommen (siehe Abbildung 6.9).Wird ein Fehler bei der Parit¨atsuberprufung der Anfrage festgestellt oder handelt es sich um einenER R M –Befehl, wird auch noch das Error–Bit in beide Halbpakete der Antwort gesetzt. Falls keinBUSYIN[i] MEM vorliegt, wird mit Hilfe desMuxNO –Multiplexers die Antwort in zwei Halbpaketezerlegt, die nacheinander auf denDOUTMEM –Bus gelegt werden. Gleichzeitig wird dasVALIDOUT[i] FPGA

63

Page 74: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6 Realisierung des Speicherprozessors

GA

SPEICHERBOARD

232

RegOut

18

MEMDOUT

RAMPARRAMD

FIFO

P.5Ausgangs-

P.6, P.7

Netzwerk

P.4

RAM

HaveError

D PAR

36

OE

VALIDOUT[i] BUSYIN[i]MEMFPGA

MuxNO

NODrv

FP

Abbildung 6.9: Datenpfade zum R¨uckversand von Antworten

aktiviert, um die Boardlogik vom Paketr¨uckversand zu informieren. In TaktP.5 und P.6 werdendiese Halbpakete insRegOut–Register aufgenommen und ins Netzwerk zur¨uckgeschickt (siehe5.4.3). Bei allen Antworten werden im ersten Halbpaket die 16 unteren Bits und im zweiten die16 oberen Bits des Antwortdatums abgeschickt, mit Ausnahme beiM P –M AX –Antworten, wodie Reihenfolge der Halbpakete vertauscht wird3. Liegt ein Busy vor, wird der Paketr¨uckversandsolange verz¨ogert, bis dasBUSYIN[i] MEM von der externen Kontrollogik wieder inaktiv ist. In derZwischenzeit k¨onnen Refresh–, Host– und Netzwerkanfragen, die keine Antwort erzeugen oder de-ren Antwort noch in die AusgangsFIFO paßt, weiterverarbeitet werden.

Der Einsatz einer FIFO anstelle eines Registers beim Paketr¨uckversand reduziert die Auswirkungkurzer Busy–Meldungen des Netzwerks, was ein fl¨ussigeres und effizienteres Arbeiten des Spei-cherprozessors erlaubt. Auch die Latenzzeit f¨allt weg, die sich sonst nach einer Busy–Phase f¨urNeustart der Abarbeitung einer Anfrage, Erzeugung einer Antwort und deren R¨uckversand ergebenwurde. Ferner k¨onnte ohne FIFO, solange das Ausgangsregister nicht frei w¨are, keine neue An-frage abgearbeitet werden bzw. m¨ußte die Pipeline in der Mitte eines Speicherzugriffs angehaltenwerden (Pipeline–Stall). Ein Speicherzugriff kann jedoch wegen der n¨otigen Refreshs nicht einfachverlangert werden, was zur Folge h¨atte, daß bei einem Pipeline–Stall der Zugriff gestoppt und dieAbarbeitung der betroffenen Anfrage nach dem Refresh aufs neue gestartet werden m¨ußte.

3Diese Reihenfolge wird vom Netzwerkchip ben¨otigt, da er dieM AX –Operation mit Hilfe eines Komparators be-rechnet, der aus Geschwindigkeitsgr¨unden zuerst die oberen Bits der Operands (Datum des ersten Halbpakets der Antwortund obere Bits der Netzwerkchip–MP–Queue) vergleicht und nur bei Gleichheit auch noch die unteren Bits beider Ope-rands betrachtet.

64

Page 75: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6.10 Arithmetisch–logische Einheit

Simulationen des Speicherboards, die ¨ahnlich den Bedingungen in Kapitel 3 durchgef¨uhrt wurden,haben fur die AusgangsFIFO eine optimale Tiefe von drei ermittelt. Die im Speicherprozessor reali-sierte FIFO mußte jedoch wegen der Anzahl der Gatter des Chips auf eine Tiefe von zwei beschr¨anktwerden.

6.10 Arithmetisch–logische Einheit

In Takt P.4 werden die arithmetischen und die logischen Operationen derM P – undSY –Befehledurch die ALU–Schaltung ausgef¨uhrt. Der erste Operand (das Anfragedatum) wird bereits in TaktP.0 gultig . Der zweite Operand (der Speicherinhalt der Anfrageadresse) wird bei TaktP.4 insRegMP –Register geladen.

ErrRegMAX

DRAM

P.4

OpBOpA

32

ADD

0 1

CO

P.0

Data

FIFO

32 32

FPGA

Speicherboard

OpA OpB

CI

RAM

P.5

MuxND

REGMP

BIT

Abbildung 6.10: Datenpfade der ALU

Beide Operanden werden f¨ur ADD–, AN D– undOR –Berechnungen als bin¨ar kodierte positiveGanzzahlen und bei Maximumbestimmung als bin¨ar kodierte Ganzzahlen inTwo’s Complement–Darstellung interpretiert. Im Zentrum der ALU befindet sich ein 32–BitCarry–Look–Ahead–Addierer,der dieADD–Operationen ausf¨uhrt. Ein gesetztesCarry–Out(Uberlauf der Addition) wird aufWunsch des Software–Teams nicht als Fehler behandelt, sondern stets ignoriert, ummodulo232

Berechnungen durchf¨uhren zu k¨onnen (siehe 4.3.2). DieM AX –Operation wird ebenfalls mit Hil-fe des Addierers berechnet. Ist dasCarry–Out–Ergebnis 0, so ist das Anfragedatum gr¨oßer als der

65

Page 76: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6 Realisierung des Speicherprozessors

Speicherinhalt und muß in den Speicher geschrieben werden.

Korrektheit: SeienA= (a30; � � � ;a0) undB= (b30; � � � ;b0) die Binardarstellung von zwei Ganzzah-len in2’s complementund

k(an; � � � ;a0) = �2n �an+∑n�1i=0 2i �ai Wert der2’s complementBinarzahl A

b(an; � � � ;a0) = ∑ni=0 2i �ai Wert der positiven Bin¨arzahl A

i(an; � � � ;a0) = (an;an�1; � � � ;a0)

Zur Bestimmung des Maximums vonk(A) undk(B) wird folgende Addition durchgef¨uhrt und dasCarry–Out–Ergebnis bewertet:

b(i(a31; � � � ;a0))+b(i(b31; � � � ;b0))+1= c32 �232+b(s31; � � � ;s0) (6.1)

Behauptung:c32= 0 , k(A)> k(B)

Dies kann in zwei Schritten bewiesen werden:

k(A)> k(B) , �2n+b(i(A))>�2n+b(i(B)) , b(i(A)) > b(i(B)) (6.2)

b(i(A))> b(i(B)) , (6.1) mitcn+1 = 0 (6.3)

Beweis von (6.2):

� k(A)< 0 : k(A) = k(1;an�1 � � � ;a0) =�2n+k(0;an�1 � � � ;a0)

= �2n+k(0;an�1 � � � ;a0) =�2n+b(i(A))

� k(A)> 0 : k(A) = k(0;an�1 � � � ;a0) = b(0;an�1 � � � ;a0)

= �2n+b(1;an�1 � � � ;a0) =�2n+b(i(A))

Beweis von (6.3):Seien A und B die Darstellung von positiven Bin¨arzahlen:

b(A)+b(B)+1 =n

∑i=0

2i � (1�ai)+n

∑i=0

2i �bi +1

=n

∑i=0

2i � (bi �ai)+2n+1 = 2n+1 �cn+1+b(S)

cn+1 = 0 ,n

∑i=0

2i � (bi �ai)< 0

, 9i minimal mit aj = bj fur i < j � n

undai = 1; bi = 0 (da∑mk=0 2k < 2m+1)

, b(A)> b(B)

2

Multi–Prefix–Befehle mit logischerOR – undAN D–Operation werden durch eine entsprechendeSchaltung imBit–Modul ausgef¨uhrt.

66

Page 77: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6.11 Fehlererkennung und –behandlung

Entsprechend der Anfrage–OP eration wird mit Hilfe desMuxND –Multiplexers das Anfragedatum,das Addierer–Ergebnis oder das BIT–Modul–Ergebnis selektiert und in TaktP.5 auf denDRAM –Bus gelegt, um in den Speicher geschrieben zu werden. BeiM AX –Operationen wird immer dasAnfragedatum selektiert, unabh¨angig vom Ergebnis des Vergleichs. Ist jedoch der Speicherinhaltgroßer als das Anfragedatum, wird der Schreibzugriff abgebrochen und somit das Anfragedatumnicht in den Speicher zur¨uckgeschrieben (siehe 6.8.2).

6.11 Fehlererkennung und –behandlung

Um Fehler bei der Paket¨ubertragung zwischen den Platinen der SB–PRAM und bei den im Speicherabgelegten Daten m¨oglichst zu entdecken, werden zus¨atzliche Parit¨atsbits mitversandt bzw. mitge-speichert. Welche Fehler auftreten k¨onnen, ihre Folgen und welche Sicherheit Parit¨atsbits bringen,wurde in Abschnitt 4.3 besprochen. Im weiteren werden die Schutzmechanismen aufgezeigt, diebeim Speicherboard vorgesehen sind, um Fehler soweit wie m¨oglich zu erkennen und damit dieIntegritat des Speichers zu gew¨ahren.

6.11.1 Uberpr ufung der Netzwerkpaketparitat

Die Uberprufung der Netzwerkpaketparit¨at geschieht in zwei Phasen (siehe Abbildung 6.11).DINMEM

XORXOR

3213

NetInReg

2

Kontrol-logik

XOR

3

Adreß- Daten-

EingangsFIFO

Par

1

DataAddrMOD

OP

OPMOD

DataAddr

Par[1..2]Par[0]

ParError

Speicherprozessor

Speicherboard

3

DPar[0..2]APar[0..2]

Abbildung 6.11: Datenpfade zurUberprufung der Netzwerkpaketparit¨at

In der ersten Phase werden nach Empfang eines Pakets imRegNetIn –Register — gleich, ob Adreß–oder Datenpaket — zwei Parit¨atsbits fur die 32–Bits der Adresse bzw. des Datums der Anfrage,sowie ein drittes f¨ur M ODus bzw.OP eration und Parit¨atsbit des angekommenen Pakets berechnet.Diese drei zus¨atzlichen Bits werden dann einen Zyklus sp¨ater mit der Adresse und demM ODus

67

Page 78: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6 Realisierung des Speicherprozessors

bei Adreßpaketen bzw. dem Datum und derOP eration bei Datenpaketen gemeinsam in die Ein-gangsFIFO aufgenommen.

Das Endergebnis der Paketparit¨atsuberprufung wird erst wahrend der Anfragedekodierung (TaktP.0) ermittelt, und zwar an Hand der drei zwischenberechneten Parit¨atsbits bei 1–Paket–Anfragenbzw. der sechs bei 2–Pakete-Anfragen. Wird ein Parit¨atsfehler festgestellt, wird anstatt der normalenAnfrageabarbeitung nur ein abgebrochener Speicherzugriff durchgef¨uhrt, womit der Speicherinhaltunverandert bleibt.

Auf Wunsch der Netzwerkchip–Entwickler kann durch Best¨uckung desMODE–Jumpers auf demSpeicherboard die Parit¨atsuberprufung der Netzwerkanfragen abgeschaltet werden.

6.11.2 Generierung undUberpr ufung der Speicherparitat

Um Fehler bei den im Speicher abgelegten Daten entdecken zu k¨onnen, werden je 32–Bit Datum,das in den Speicher geschrieben wird, zwei Parit¨atsbits hinzugef¨ugt, die bei sp¨ateren Lesezugriffenuberpruft werden.

22

DALU

NDDrv

XORHost/Check

XORNet/ALU

32

32

34

32

FPGA

Speicherboard

4

XOR

P.1, P.5

P.1, P.4

P.5

MuxND

/RITR[i]FPGA

RPDrv

RPMux Reg

D

Chk

RAM RAMPAR

FIFO

Ausgangs-

ALU

Abbildung 6.12: Datenpfade zur Berechnung undUberprufung der Speicherparit¨at

Die Paritatsbits m¨ussen bei allen Schreibzugriffen, die sowohl bei Netzwerk– als auch bei Host-anfragen anfallen, erzeugt werden. Aus Geschwindigkeitsgr¨unden werden dabei zwei getrennteSchaltungen (XORNet=ALU und XORHost=Check) verwandt (siehe Abbildung 6.12). Die Parit¨atsge-nerierung erfolgt beiST –Befehlen und Hostschreibzugriffen in TaktP.1 und in der ersten H¨alftedes TaktsP.2. Bei M P – undSY –Befehlen werden die zwei Parit¨atsbits fur das ALU–Ergebnis inTakt P.5und in der ersten H¨alfte des TaktsP.6berechnet. Beide werden dann gemeinsam mit demDatum in den Speicher geschrieben.

68

Page 79: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6.11 Fehlererkennung und –behandlung

Beim Lesen eines Speicherdatums (betrifftLD–, M P –, SY – und Hostlesebefehle) wird mit Hilfeder ParitatsschaltungXORHost=Check die Speicherparit¨at in TaktP.4undP.5 uberpruft (siehe Abbil-dung 6.12). Wird ein Fehler festgestellt, l¨ost der Speicherprozessor einen/RITR[i] FPGA –Interruptaus, der durch die Boardlogik an den Host weitergeleitet wird. Das Error–Register wird bei Spei-cherparitatsfehlern nicht beschrieben, da die Ursache eines solchen Fehlers weder bekannt, nochdie Adresse der betroffenen RAM–Zelle mehr in der Pipeline vorhanden ist. Da das Ergebnis derParitatsuberprufung, die zwei Takte ben¨otigt (P.4undP.5), erst verfugbar ist, nachdem das geleseneDatum in die AusgangsFIFO geschrieben wurde, werden f¨ur die Paritat der Netzwerkantwortpaketedie beiden Speicherparit¨atsbits des Antwortdatums benutzt. Im Falle eines Speicherparit¨atsfehlerswird ein Antwortpaket mit falscher Parit¨at und ungesetztem Error–Bit zur¨uckgeschickt. Trotzdemwird der Fehler vom Netzwerk entdeckt, da das Netzwerk die Paketparit¨at ebenfalls ¨uberpruft undbei Fehlern das Error–Bit setzt.

Um Paritatsfehler beim Lesen einer nicht initialisierten Speicherzelle zu vermeiden, muß entwederdas Betriebsystem nach jedem Start der SB–PRAM den ganzen Speicher initialisieren oder Pro-gramme m¨ussen daf¨ur sorgen, daß keine solche Lesezugriffe erfolgen.

6.11.3 Lesen des Error–Registers

Bei einem Fehler in Netzwerkanfragen wird ein abgebrochener Speicherzugriff durchgef¨uhrt. Adres-se, M ODus undOP eration der fehlerhaften Anfrage werden inRegErr abgespeichert und einNetzwerkfehler–Interrupt (/NITR[i] FPGA) wird an den Host geschickt.

Um den Grund des Fehlers herauszufinden, f¨uhrt der Host einen Lesezugriff mit gesetztemESHOST(Error Strobe) auf der Bank aus, die den Interrupt ausgel¨ost hat. Dabei wird vom Speicherprozessorein abgebrochener Speicherzugriff anstelle eines Lesezugriffs ausgef¨uhrt, was vermeidet, daß dasDRAM auf den Datenbus treibt. Statt dessen legt in TaktP.2 und P.3 das FPGA selbst den Inhaltseines Error–Registers auf denDRAM–Datenbus. Dieser Inhalt wird dann an den Host weitergeleitet,so als ob er das Antwortdatum eines gew¨ohnlichen Hostlesezugriffs w¨are. Gleichzeitig werden dasNetzwerkfehlerinterrupt (/RITR[i] FPGA) und das RAM–Parit¨atsfehlerinterrupt (/NITR[i] FPGA)der Bank gel¨oscht. Sind also Interrupts von mehreren Speicherb¨anken gleichzeitig gesetzt, geht kei-nes verloren, da erst beim Auslesen des Error–Registers die Interrupts einer Bank gel¨oscht werden.Der Ablauf eines solchen Zugriffs dauert vier Zyklen.

69

Page 80: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

6 Realisierung des Speicherprozessors

70

Page 81: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Kapitel 7

Prototypboard und Tests

Ein Prototyp–Speicherboard wurde entsprechend der Beschreibung in Kapitel 5 und 6 realisiert. Eswurde jedoch mit zus¨atzlichen Testpins best¨uckt, um auch Signale messen zu k¨onnen, die bei Chipsmit unter 0:7mmPinabstand nicht mehr direkt greifbar sind. Dieses Prototypboard k¨onnte selbst derSerie dienen, falls es sich als fehlerfrei erweist.

Die Prufung der Funktionalit¨at des Speicherboards wurde in f¨unf Schritten durchgef¨uhrt:

1. Stand–Alone–Test2. Test mit dem Netzwerkboard3. Test der Hostschnittstelle4. Einprozessor–PRAM–Test5. Vierprozessor–PRAM–Test

Der Aufbau, die Durchf¨uhrung und die Ergebnisse dieser Phasen werden im folgenden n¨aher erlau-tert.

7.1 Stand–Alone–Test

Nach dem elektrischen Test wurde das Prototypboard an die VMETEST–Karte von ANDREAS

GRAVINGHOFF angeschlossen, um die Funktionalit¨at des Speichers zu pr¨ufen. Die VMETEST–Karte, in [Gra95] ausf¨uhrlich beschrieben, besteht aus zwei RAM–B¨anken von 16kB Tiefe und128bit Breite, dieuber zwei Netzwerkstecker Daten gleichzeitig senden und empfangen k¨onnen.Diese Karte ist ¨uber eine SBUS–Bridge an eine SUN–Workstation angeschlossen, von der aus dieRAM–Banke gelesen und beschrieben werden k¨onnen bzw. der Versand der Daten gestartet werdenkann. Um das Netzwerk zu simulieren, wird das Sende–RAM mit vorberechneten Ausgangssigna-len eines Netzwerknotens beschrieben, bevor dieUbertragung gestartet wird. Bei jedem Clock–Zyklus wird dann ein Datum der Sende–RAM–Bank nach dem anderen an die Ausg¨ange der beidenNetzwerkstecker der Karte gelegt und gleichzeitig der Zustand der Netzwerksteckereing¨ange in derEmpfangs–RAM–Bank gespeichert. Nachdem der Versand beendet ist, wird das Empfangs–RAMgelesen und die vom Speicherboard zur¨uckgesandten Pakete werden mit den Antworten, die in derSimulation errechnet wurden, verglichen.

Der Testaufbau zurUberprufung des Zusammenspiels von Netzwerk mit Speicherboard ist in Ab-bildung 7.1 skizziert. In drei Schritten wurden mit Hilfe eines Testprogramms die Stimuli zur

71

Page 82: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

7 Prototypboard und Tests

DRAMSRAM

SRAM

SpeicherboardVME TestboardVME-SBUS Bridge

Abbildung 7.1: Aufbau der Stand–Alone–Testschaltung

Uberprufung samtlicher Funktionen des Speicherboards f¨ur alle Protokolle und die daraus resul-tierenden Antworten berechnet. Diese Antworten wurden dann, nachdem die Stimuli mit Hilfe derVMETEST–Karte an das Speicherboard gelegt wurden, mit den tats¨achlichen Antworten verglichen.Zuerst wurde nur eine Bank best¨uckt und getestet, um die Kosten bei einem eventuellen Fehler imFPGA auf nur einen Chip zu beschr¨anken. In der n¨achsten Phase wurde das Zusammenspiel zweierBanke getestet, bevor im dritten Schritt die Funktionalit¨at derUbervoll–FIFOuberpruft wurde.

Ein weitere Test war die Erweiterung des SB–PRAM–Simulators mit Hilfe von MICHAEL BOSCH,damit Speicheranfragen der Prozessoren nach jeder Runde direkt auf dem Speicherboard ausgef¨uhrtwerden konnten, anstatt sie im Workstation–Speicher zu simulieren.

Bei diesen Tests wurden zwei Fehler im Speicherprozessor entdeckt und behoben. Keine Fehlerwurden jedoch in der Netzwerkschnittstelle des Boards festgestellt.

7.2 Test mit dem Netzwerkboard

Um das Zusammenspiel zwischen Speicherboard und Netzwerkknoten zu testen, wurde ebenfallsdie im Abschnitt zuvor beschriebene Schaltung eingesetzt, dabei jedoch das Netzwerktestboardzwischen VMETEST–Karte und Speicherboard gef¨ugt. Bei diesem Test konnte wegen des altenNetzwerkknotens nur dasOld–Node–Protokoll verwandt werden. Der Aufbau dieser Schaltung istin Abbildung 7.2 skizziert:

DRAMSRAM

SRAM

Netzwerk Testboard SpeicherboardVME Testboard

Abbildung 7.2: Aufbau der Testumgebung f¨ur die Netzwerkschnittstelle

Ahnlich demStand–Alone–Test wurde diese Schaltung mit zuf¨alligen Paketen an beiden Eing¨angendes Netzwerkknotens getestet, einschließlich des Verhaltens bei Busy–Phasen sowohl auf dem Hin-weg als auch auf dem R¨uckweg. DieUbereinstimmung mit Simulationsdaten von ANDREAS PAUL

(siehe [Pau95]) wurde ebenfalls ¨uberpruft.

72

Page 83: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

7.3 Test der Hostschnittstelle

7.3 Test der Hostschnittstelle

Beim spateren Zusammenbau aller Boards der SB–PRAM wird die Verbindung zwischen dem Hostund den Speicherboards ¨uber Backplanes und Fan–Out–Board hergestellt. Beide befinden sich nochin der Entwicklung. Um die Hostschnittstelle trotzdem testen zu k¨onnen, habe ich eine Adapter-platine gebaut, die die unterschiedlichen Stecker, die fehlenden Signale und das unterschiedlicheTiming des Hostinterface an die Speicherboardschnittstelle anpaßt. Der Testaufbau wurde nur mit20MHzgetaktet, um Timing–Probleme bei der Adapterplatine auszuschließen. Nach Korrektur derFehler auf beiden Seiten der Schnittstelle wurden die Lese– und Schreibzugriffe des Hosts erfolg-reich getestet.

Die Debuggingschnittstelle — zum Empfang von Speicherinterrupts und zum Lesen von Fehler–Registern vorgesehen — konnte noch nicht getestet werden, weil notwendigeAnderungen in denGAL-Gleichungen des Hostinterface und die n¨otige Implementierung der kompleten Interruptlogikauf der Adapterkarte noch nicht durchgef¨uhrt wurden.

7.4 Einprozessor–PRAM

Die Einprozessor–PRAM besteht aus einem Prozessorboard und einem Speicherboard. Das Prozes-sorboard von PETER BACH (siehe [Bac95]) — best¨uckt mit Prozessor und Sortierknoten — ist dabeiohne Netzwerk direkt mit dem Speicherboard verbunden. Der Host wurde wie zuvor ¨uber Adapter,die die Backplanes ersetzen, sowohl an das Prozessor– als auch an das Speicherboard angeschlos-sen. Dies erlaubt, Programme im Programmspeicher zu laden, auf die Peripherie des Prozessorszuruckzugreifen, aber auch Eingaben zu schreiben bzw. Ergebnisse aus dem globalen Speicher zulesen (siehe Abbildung 7.3).

DRAM

SpeicherboardProzessorboard

P

SN

Hostadapters

Hostinterface

Hostrechner

Abbildung 7.3: Aufbau der Einprozessor–PRAM

Der Test der Schaltung war bei 20MHz mit demNew–Node–Fast–Protokoll auf Anhieb erfolgreich.Testprogramme waren u.a. ein paralleler Speichertest, ein paralleles Apfelm¨annchenprogramm vonVOLKER HOFMEYER, sowie verschiedene C–Programme, die mit dem PRAM–gcc kompiliert wur-den.

7.5 Vierprozessor–PRAM

Bei Abschluß dieser Arbeit wurde gerade ein Vierprozessor–Rechner fertiggestellt. Er besteht ausvier Einprozessor–PRAMs, den Backplanes und Fan–Out–Boards von HOLGER LEISTER — zurVerbindung zum Hostrechner — und dem Netzwerkboard von MICHAEL BRAUN, das zwischen

73

Page 84: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

7 Prototypboard und Tests

die Prozessorboards und die Speicherboards geschaltet ist (siehe Abbildung 7.4).

P

SN

P

SN

P

SN

P

SN

Proz.Bkplane

.Bkplane

MemDRAM

DRAM

Prozessorboards

Hostinterface

HostrechnerFan-out-boards

SpeicherboardsNetzwerkboard

Abbildung 7.4: Aufbau der Vierprozessor–PRAM

Diese Schaltung wurde bis jetzt bis 6MHz— beschrankt durch die Geschwindigkeit der Netzwerk-board–FPGAs — mit kleinen Programmen sowie einem parallelen Speichertest mit 128 virtuellenProzessoren auf gehashtem Adreßraum erfolgreich getestet.

7.6 Testergebnis

Das Speicherboard wurde erfolgreich”Stand–Alone“bei einer Frequenz von 500kHz (begrenzt

durch die DRAM–Refresh–Rate) bis 32MHz (begrenzt durch dieCycle–Timeder eingesetzten70ns–DRAMs) getestet, auch in Zusammenarbeit mit den beiden Schnittstellen des Boards (nurbis 20MHz). Die Korrektur eines Fehlers im Hostinterface des Prototypboards verlangte eine F¨ade-lung. Fur die Serienproduktion muß daher das Layout des Boards ge¨andert werden, was aber so-wieso notwendig wurde, aufgrund eines neuen Netzwerkprotokolls und der kaum mehr erh¨altlichen9–bit SIMMs.

74

Page 85: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Kapitel 8

Zusammenfassung und Ausblick

8.1 Zusammenfassung

Die Aufgabe dieser Diplomarbeit war der Entwurf und die Realisierung der Speichermodule f¨urden am Lehrstuhl f¨ur Rechnerarchitektur zu entwickelnden Parallelrechner. Zu Beginn wurden dieverschiedenen Implementierungsm¨oglichkeiten des Speicherboards und ihre Realisierbarkeit unter-sucht. Dabei kam der effizienten und flexiblen Anbindung an den Schnittstellen — die im Rahmender SB–PRAM–Entwicklung mehrmals ge¨andert werden mußten — besondere Bedeutung zu. Eswurde versucht, den best m¨oglichen Kompromiß zwischen folgenden — sich teilweise widerspre-chenden — Hauptkriterien zu finden:

� Hohe Geschwindigkeit, sowohl f¨ur Netzwerk– als auch f¨ur Hostanfragen

� Hohe Flexibilitat fur die Schnittstellenprotokolle

� Implementierung einer Debuggingschnittstelle f¨ur Hardware und Software

Der erste Punkt mag einem Außenstehenden am wichtigsten erscheinen. Bei einem solchen Projekt,bei dem die gesamte Hardware gleichzeitig entwickelt wurde, ist Geschwindigkeit allein, ohne Fle-xibilit at bei den Verbindungen der verschiedenen Einheiten, nicht denkbar. Auch dem dritten Punktwurde besonderer Wert beigemessen, um zum einen in der Entwicklungsphase das Debugging desSpeicherboards — insbesondere der FPGAs — sowie das Testen des Zusammenspiels aller Boardszu erleichtern, aber auch, um bei sp¨aterem Einsatz das Softwaredebugging zu erlauben.

Der zweite Teil meiner Diplomarbeit besch¨aftigte sich mit der Realisierung und dem Debugging desBoards. Dabei wurden aus Platz– und Flexibilit¨atsgrunden zum ersten Mal Quad–Density SMD–Bauteile eingesetzt, die einen Pin–Abstand von 0:5mm besitzen. Ferner wurden Schaltungen aufField Programmable Gate Arrays selbst entwickelt, vom Schematics–Entry bis zur Programmie-rung der Chips.

Der Prototyp des Speicherboards wurde mit wenigen Ab¨anderungen gleich zum Laufen gebracht.Die Zusammenarbeit des Speicherboards sowohl mit den Netzwerktestboards — best¨uckt mit demalten bzw. dem neuen Netzwerk–Chip — als auch mit dem Host und dem Prozessorboard wurde er-folgreich getestet. Mit der seit Mitte dieses Jahres auf den Markt gekommenenA12xx-XL–Familie— sie besitzt die gleiche Funktionalit¨at und das gleiche Pin–Out wie die f¨ur den Speicherprozessor

75

Page 86: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

8 Zusammenfassung und Ausblick

eingesetzteA12xx–Familie, ist jedoch 30% schneller und dazu billiger — kann dieoverall worst–caseGeschwindigkeit des Speicherprozessors auf ¨uber 40MHz erh¨oht werden.

8.2 Ausblick

8.2.1 Anderung der Queue–Strategie

Als endgultiges Netzwerkprotokoll sollte ein vomNew–Node–Fastabgeleitetes Protokoll gew¨ahltwerden. Wie in 4.1.1 beschrieben, hat dieses Protokoll den Vorteil, daßLD–Anfragen, die gem¨aßSimulationsergebnissen 60% bis 80% der Prozessoranfragen ausmachen (siehe 3.2.3), nur ein Adreß-paket ben¨otigen, was Netzbandbreite spart. Das hat zur Folge, daß die DateneingangsFIFO des Spei-cherprozessors noch ziemlich leer sein kann, wenn die AdreßeingangsFIFO bereits voll ist.

NETIN[0:35]

ADRR[0:25]

DATA[0:35]

Reg0

Reg6

Reg2Reg4

Reg7Reg5

Reg1Reg3

MX36

MX36 MX36

MX26

Abbildung 8.1: Schaltbild einer Adreß/Daten–EingangsFIFO

Eine bessere Auslastung der Queues kann erreicht werden durch Zusammenlegen der getrenntenEingangsFIFOs in eine gemeinsame FIFO. DieseAnderung wurde die durchschnittliche Anzahlder Anfragen, die in die EingangsFIFO passen, von vier auf ¨uber sechs erh¨ohen, bei 70%LD–Anfragen. Eine Implementierung auf dem z. Z. benutzten FPGA w¨urde jedoch die Grenze der be-nutzbaren Gatter ¨uberschreiten.

8.2.2 Einsatz von EDRAMs

Die aktuelle Hochstgeschwindigkeit der SB–PRAM ist durch dieCycle–Timeder DRAM–Moduleauf 35MHz beschr¨ankt. Die Erhohung des Takts w¨are nur durch mehr Zyklen pro RAM–Zugriffmoglich. Dies wurde aber die Performance des Speichers entscheidend reduzieren, ¨ahnlich den Er-gebnissen des Zweier–Bankmodells in Abschnitt 3.2.2. Die Einschr¨ankung konnte durch Einsatzvon Enhanced–DRAM–Modulen (siehe [RTR94]) wettgemacht werden, die mit fast doppelter Ge-schwindigkeit heutiger Standard–DRAMs arbeiten.

Aus Preis– und Verf¨ugbarkeitsgr¨unden konnten diese Module bei der Entwicklung des Speicher-boards der SB–PRAM noch nicht ber¨ucksichtigt werden. Die heutigen Einschr¨ankungen werdenjedoch mit Einsatz von EDRAMs bei der n¨achsten PC–Generation kein Thema mehr sein.

76

Page 87: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

8.2 Ausblick

8.2.3 ASIC–Implementierung

Eine weitere Verbesserung der Performance k¨onnte durch Umwandlung des SpeicherprozessorF-PGAs in einen ASIC erreicht werden. Dadurch w¨urden sich eine Geschwindigkeitsverbesserungsowie ein Platzgewinn ergeben. Der so gewonnene Platz w¨urde eine Vergr¨oßerung der Eingangs–und AusgangsFIFO erlauben. Die augenblickliche FPGA–Implementierung des Speicherprozessorsnutzt die zur Verfugung stehende DRAM–Bandbreite bereits voll aus. Der Geschwindigkeitsgewinndurch einen ASIC k¨ame nur in Verbindung mit EDRAMs zum Tragen, die eine Erh¨ohung des Zu-griffstakts erlauben.

Die Umwandlung des FPGA–Speicherprozessors in einen THM8000–ASIC der Firma Thesys wur-de bereits durchgerechnet. Unter Ber¨ucksichtigung der Entwicklungskosten war der Preis f¨ur dieASIC–Losung bei einer SB–PRAM mit 128 Prozessoren g¨unstiger als jener der eingesetzten 512FPGAs. Mit der Einfuhrung neuer funktionskompatibler, jedoch schnellerer und billigerer, FPGAshat sich das zwischenzeitlich wieder ge¨andert. Der aktuelle Speicherprozessorschaltkreis ben¨otigtauf einem THM8000–ASIC nur 70% des vorhandenen Platzes. Ein weiterer Vorteil des ASICs w¨areeine gesch¨atzte Geschwindigkeitserh¨ohung um den Faktor 1.5.

77

Page 88: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

8 Zusammenfassung und Ausblick

78

Page 89: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Anhang A

Abbildung des Boards

79

Page 90: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

A Abbildung des Boards

Abbildung A.1: Abbildung des Speicherboards

80

Page 91: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Anhang B

Old–Node Protokoll

DasOld–Nodegenannte Protokoll wurde vom alten Netzwerkknoten benutzt. Es wurde verworfen,als sich herausstellte, daß der Routing–Algorithmus dieses Chips fehlerhaft war. Trotzdem wurdedas Protokoll auf dem Speicherboard implementiert, damit die Kommunikation zwischen Speicherund Netzwerk ¨uberpruft werden konnte, sowie weitere Tests des defekten Netzwerk–Chips m¨oglichwaren.

Im folgenden werden dieses Protokoll und die daf¨ur notigen Einstellungs¨anderungen auf dem Spei-cherboard beschrieben.

B.1 Ubertragung

Beim Old–Node–Protokoll werden die Pakete im Gegensatz zum Protokoll des neuen Netzwerk-chips komplett bei steigender Taktflanke abgeschickt und empfangen (siehe Abbildung B.1). We-gen der n¨otigen Anpassung an die Paketempfangslogik (Verz¨ogerung der Sampling–Flanke desRegb f Hi) wird die Betriebsfrequenz des Speicherboards bei diesem Protokoll auf 28MHzbegrenzt,was jedoch oberhalb der Taktspezifikation des alten Netzwerkchips (20MHz) liegt und somit keineEinschrankung darstellt.

DLINK

VALIDINLINK

Address Data

CLK

LINKBUSYOUT

Abbildung B.1:Ubertragungstiming beim Old–Node–Protokoll

Jede Prozessoranfrage besteht aus einem Adreß– und einem Datenpaket, selbst bei Befehlen, diekein Datenpaket fordern. Beide Pakete sind — ¨ahnlich wie auf dem R¨uckweg (siehe 4.1.2) — un-abhangig von einander und k¨onnen im Abstand von mehreren Zyklen abgeschickt werden.

81

Page 92: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

B Old–Node Protokoll

B.2 Busy–Behandlung

Der Ablauf des Speicherboard–Busy–Signals beimOld–Node–Protokoll ist gleich dem desNew–Node–Protokolls (siehe Abschnitt 4.1.1). Erreicht das Busy–Signal des Speicherboards jedoch denNetzwerkknoten nach Versand des Adreßpakets einer Anfrage, wird das dazugeh¨orige Datenpaketbeim alten Protokoll nicht mehr weitergeschickt. Erst nachdem das Busy–Signal wieder inaktiv ist,wird der Paketversand mit dem gehalteten Datenpaket wieder fortgesetzt. Insgesamt k¨onnen alsonur noch 3 Pakete nach Busy–Meldung am Speicherboard ankommen.

B.3 Board–Einstellung

B.3.1 Verzogerungsglieder

Die Sampling–Flanken der Eingangs– und Ausgangsregister k¨onnen auf dem Speicherboard mitHilfe dafur vorgesehenerDelay–Lines(siehe Abschnitt 5.3.2) verz¨ogert werden.

Um dasOld–Node–Protokoll fahren zu k¨onnen, bei dem beide H¨alften eines Pakets gleichzeitig beisteigender Clock–Flanke abgeschickt werden, muß dieSampling–Flanke desRegHi –Registers, dienormalerweise mit der fallenden Taktflanke ¨ubereinstimmt, soweit wie m¨oglich bis zur nachst stei-genden Taktflanke verz¨ogert werden. Die inRegIn aufgenommenen Daten m¨ussen jedoch noch dasRegHi –Register durchlaufen (tCLK!OUT = 5:4ns) und dieSetup–Zeit sowohl desRegHi –Registers(tREG SETUP= 3:5ns) als auch derControl In –Logik (tGAL SETUP= 6:5ns) erfullen.

Die Maximalverzogerung desRegHi –Takts relativ zumRegIn –Takt laßt sich bei 20MHz(maximaleBetriebsfrequenz des alten Netzwerkknotens) wie folgt berechnen:

DRegHi!RegIn =12�TCLOCK� tCLK!OUT�maxftREG SETUP; tGAL SETUPg

=12�50ns�5:4ns�maxf3:5ns;6:5nsg = 13:1ns

Insgesamt kann dann dieUbertragung ¨uber Long–Links

12�TCLOCK+DRegHi!RegIn =

12�50ns+13:1ns= 38:1ns

dauern, was ¨uber der maximal m¨oglichenUbertragungszeit bei 32MHz liegt, so daß keine Timing–Probleme auftreten k¨onnen.

B.3.2 Speicherprozessor–Einstellung

Beim Empfang von 2–Pakete–Anfragen (siehe 6.4.2) wird im Speicherprozessor lediglich der TaktP.-1 wiederholt bis das Datenpaket eingetroffen ist (VALINDT wird inaktiv). Dafur werden wederzusatzliche Signale ben¨otigt, nochAnderungen im Design notwendig.

82

Page 93: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

Literaturverzeichnis

[AKP91] Ferri Abolhassan, J¨org Keller, Wolfgang J. Paul.On the Cost–Effectiveness ofPRAMs, Proceedings of the 3rd IEEE Symposium on Parallel and Distributed Pro-cessing, pp. 2–9, Dec. 1991

[Bac95] Peter Bach.Entwurf und Aufbau des PRAM–Prozessorboards, Diplomarbeit, Uni-versitat des Saarlandes, FB 14 Informatik, 1996

[Bra96] Michael Braun.FPGA Implementierung des PRAM–Netzwerks, Arbeitspapier, Uni-versitat des Saarlandes, FB 14 Informatik, 1996

[Cra95] Andreas Crauser.Entwicklung und Vergleich des Betriebssystems der SB–PRAM,PRAM–Seite, Diplomarbeit, Universit¨at des Saarlandes, FB 14 Informatik, vorauss.1996

[Fra95] Stefan Franziskus.Das Betriebssystem der SB–PRAM, Host–Seite, Diplomarbeit,Universitat des Saarlandes, FB 14 Informatik, vorauss. 1996

[Fri94] Jorg Friedrich.Entwurf und Realisierung der Hostanbindung der SB–PRAM, Di-plomarbeit, Universit¨at des Saarlandes, FB 14 Informatik, 1994

[FW78] Steven Fortune and James Wyllie.Parallelism in random access machines, Procee-dings of the 10th ACM Annual Symposium on Theory of Computing, pp. 114–118,1978

[Gra95] Andreas Gr¨avinghoff.Entwurf und Aufbau des PRAM–Netzwerk–Boards, Diplom-arbeit, Universitat des Saarlandes, FB 14 Informatik, 1996

[Hol95] Holger Leister.Entwurf und Realisierung der SB–PRAM–Backplanes, Fortgeschrit-tenenpraktikum, Universit¨at des Saarlandes, FB 14 Informatik, vorauss. 1996

[Kel92] Jorg Keller.Zur Realisierbarkeit des PRAM Modells, Dissertation, Universit¨at desSaarlandes, FB 14 Informatik, 1992

[Kel93] Jorg Keller. Fast Rehashing in PRAM Emulations, Proceedings of the 5th IEEESymposium on Parallel and Distributed Processing, pp. 626–632, 1993

[KPS94] Jorg Keller, Wolfgang J. Paul, Dieter Scheerer.Realisation of PRAMs: ProcessorDesign, Proceedings of WDAG ’94, 8th Int. Workshop on Distributed Algorithms,pp. 17–27, Sept. 1994

[ISB94] H. P. Sharangpani, M. L. Barton.Statistical Analysis of Floating Point Flaw in thePentiumTM Processor, Intel Corporation, November 1994

83

Page 94: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

LITERATURVERZEICHNIS

[Pau95] Andreas Paul.Eine Simulation der SB–PRAM–Hardware, Diplomarbeit, Univer-sitat des Saarlandes, FB 14 Informatik, April 1995

[Pod95] Axel Podehl.Implementierung eines Hierarchical–Radiosity–Verfahrens auf derSB–PRAM, Diplomarbeit, Universit¨at des Saarlandes, FB 14 Informatik, 1996

[PS81] David A. Patterson and Carlo H. Sequin.A VLSI RISC, IEEEC, pp. 8–21

[Ran87] Abhiram G. Ranade.How to emulate shared memory, Journal of Computer andSystem Sciences, 42(3):307–326, 1991

[RBJ88] Abhiram G. Ranade, Sandeep N. Bhatt, S. Lennart Johnson.The Fluent AbstractMachine, Proceedings of the 5th MIT Conference on Advanced Research in VLSI,1988, pp. 71–93, 1988

[Roh95] Jochen R¨ohrig. Implementierung der P4–Schnittstelle auf der Saarbrucker PRAM,Diplomarbeit, Universit¨at des Saarlandes, FB 14 Informatik, 1996

[Sch94] Dieter Scheerer.Der SB–PRAM Prozessor, Arbeitspapier, Universit¨at des Saarlan-des, FB 14 Informatik, 1994

[Sch95] Dieter Scheerer.Der Prozessor der SB–PRAM, Dissertation, Universit¨at des Saar-landes, FB 14 Informatik, 1995

[Wal95] Thomas Walle.Der Netzwerkchip der SB–PRAM, Dissertation, Universit¨at desSaarlandes, FB 14 Informatik, vorauss. 1996

[Wal96] Thomas Walle.Der neue Netzwerkchip der SB–PRAM, Arbeitspapier, Universit¨atdes Saarlandes, FB 14 Informatik, vorauss. 1996

[Apf94] Michael Bosch, Stefan Franziskus.Apfelmannchenberechnung auf der SB–PRAM,C-Programm, November 1994

[P4B94] P4-Package — Test Programs, C-Programme, Dezember 1994

[Sim94] Michael Bosch, Stefan Franziskus.”Damn-Fast“ SB–PRAM–Simulator, C-

Programme, November 1994

[ABT94] Advanced BiCMOS — ABT Bus Interface Logic. Texas Instruments, 1994

[ACT92] ACT Family Macro Library Guide. Actel, 1992

[ACT94] FPGA Data Book and Design Guide. Actel, 1994

[ALS94] Advanced LS Data Book. Texas Instruments, 1994

[HSD93] High–Speed Digital Design,A HANDBOOK OF BLACK MAGIC.Howard W. Johnson & Martin Graham, 1993.

84

Page 95: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

LITERATURVERZEICHNIS

[CLK94] Clock Distribution ICs Application & Data Book. Texas Instruments, 1994

[ENC92] The Electronic Encyclopedia. Webster, 1992

[FAS90] Fast TTL Logic Series Data Book. Philips, 1990

[FFO94] Advanced FIFO Interface Logic. Texas Instruments, 1994

[HIT94] Dynamic Memory IC Data Book. Hitachi, 1994

[IDT95] Clock Management Product, preliminary datasheet. IDT, 1995

[LAT94] Gal Data Book. Lattice, 1994

[MIC93] DRAM Data Book & Technical Notes. Micron, 1993

[MOS93] MOS Memory — Module Card Data Book. Toshiba, 1993

[MOT90] MC68xxx Processor Family Reference Book. Motorola, 1990

[PCB93] PC Board Layout Tools 386+. ORCAD Inc., 1993

[RAM94] MOS Memory — Dynamic RAM. Toshiba, 1994

[RTR94] Enhanced DRAM Data Book. Ramtron Inc., 1994

[SDT93] Schematic Design Tools 386+. ORCAD Inc., 1993

[THB94] Dynamic Memory Modules Data Book. Thoshiba, 1994

85

Page 96: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

LITERATURVERZEICHNIS

86

Page 97: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur
Page 98: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur
Page 99: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

N

E

T

Z

W

E

R

K

MEMDOUT18

MEMBKIN[0:1]

Order

Queue

MEMVALIDIN[i]

BUSYOUT[i]FPGA

LINKDIN[18:35] 18

LINKDIN[0:17]

HiReg

18

LINKVALIDIN

LINKBUSYIN

LINK

BUSYIN

VALIDINMEM

OFBUSYOUT4

OFVALIDINOFBKIN[0:1]

MEMDIN36

VALIDIN4MEM

GAL

Top FIFO

MEMBKOUT[0:1] FPGA

LINKDOUT[0:17]BUSYOUTLINK

LINKVALIDOUT MEMBUSYOUTMEM

VALIDOUT

RegOut

SPE HER R

MOD[0:2]MEM

MEMCOUT

CINMEM

FPGA

FPGA

VALIDOUT[i]

BUSYIN[i]

InReg

FIFO

Übervoll-

NETENOF

ARAM

RAMD

/WR

/CAS

/RASFPGA

FPGA

FPGA

RAM

Bank 0..3

MEMVALINDT

Signale des Netzwerk–Links Signale zur PaketverteilungDIN[0:17] LINK untere Bits des Anfragebusses (Hinweg) DIN[0:35] MEM Anfragebus zu den B¨ankenDIN[18:31] LINK obere Bits des Anfragebusses (Hinweg) MOD[0:2] MEM M ODus der AnfrageVALIDIN LINK Paket–g¨ultig–Signal (Hinweg) BKIN[0:1] MEM Zielbanknummer der AnfrageBUSYOUTLINK Busy–Signal des Speichers (Hinweg) VALIDIN MEM Paket–g¨ultig–SignalDOUT[0:17] LINK Antwortpaketbus (R¨uckweg) VALIDIN[i] MEM Paket–g¨ultig–Signal an die B¨ankeVALIDOUTLINK Paket–g¨ultig–Signal (Ruckweg) VALIDIN4 MEM Paket–g¨ultig–Signal an dieUbervollFIFOBUSYINLINK Busy–Signal des Netzwerks (R¨uckweg) VALINDTMEM Datenpaket–folgt–Signal

BUSYOUT[i] FPGA Busy–Signal der B¨ankeSignale fur den Antwortr uckversand BUSYOUT4OF Busy–Signal derUbervollFIFO

DOUTMEM Antwortpaketbus von den B¨anken BUSYOUTMEM Ver’oder’ung der Busy–Signale der vierVALIDOUT[i] FPGA Paket–g¨ultig–Signal der B¨anke Banke und derUbervollFIFOVALIDOUTMEM Ver’oder’ung derVALIDOUTs der Banke BKIN[0:1] OF Zielbank der Anfrage derUbervollFIFOBUSYINMEM Busy–Signal des Netzwerks VALIDIN OF Paket–g¨ultig–Signal derUbervollFIFOBUSYIN[i] MEM Busy–Signal fur die Banke NETENOF OE–Signal fur dasRegIn –Register

Order–Queue–Signale RAM–SignaleBKIN[0:1] MEM Zielbanknummer der Anfrage ARAM RAM–AdreßbusCINMEM Clock–In–Signal der Queue DRAM RAM–DatenbusBKOUT[0:1] MEM Nummer der Bank, die die n¨achste /RASFPGA Row Address Strobe

Antwort liefern muß /CASFPGA Column Address StrobeCOUTMEM Clock–Out–Signal der Queue /WRFPGA Write Strobe

RAM

HDDrv

DHMEM

AHMEM

HOSTES, RW

GAL

UP

ES, RWMEM

DrvHDR

DrvHDR

ARAM

DRAM

FPGA

Bank 0..7

FPGA/ACK[i]

/AS[i]MEM

FPGA/RITR[i],/NITR[i]

H

O

S

T

HOSTSEL

/ASHOST

AHOST

DHOST3232

11 22

3

GALDOWN

MUX

SPEICHERBOARD

/ACKMEM

MEM

CA

SAD

DR

HOST/HAVE_RITR,/RITR[0:2]

HOST/HAVE_NITR,/NITR[0:2]

EN

HA

PRIO

ENC.

Signale des Hosts Signale des Boards f ¨ur die Hostzugriffe/AS HOST Address Strobedes Hosts /AS[i] MEM Address Strobefur die BankeES, RWHOST Read/Write– u.Error–Strobe /ACK[i] FPGA Acknowledgeder BankeAHOST Hostadreßbus CASADDRMEM Select–Signal desMuxHASELHOST Nummer der Speicherzielbank AHMEM Hostadreßbus zu den B¨ankenDHOST Hostdatenbus DHMEM Hostdatenbus zu den B¨anken/HAVE RITRHOST RAM–Interrupt gultig /ACKMEM Acknowledgefur den Host/RITR[0:2] HOST Nr. der Bank, die das RAM–Interrupt ausl¨oste /RITR[i] FPGA RAM–Interrupt der Banke/HAVE NITRHOST Netz–Interrupt g¨ultig /NITR[i] FPGA Netz–Interrupt der B¨anke/NITR[0:2] HOST Nr. der Bank, die das Netz–Interrupt ausl¨oste

Page 100: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur
Page 101: Entwurf und Realisierung des Speicherboards der SB-PRAM fileEntwurf und Realisierung des Speicherboards der SB-PRAM Diplomarbeit Cedric Lichtenau´ cls@cs.uni-sb.de Lehrstuhl f¨ur

DINMEM MEMDOUT

Adreß- Daten-

EingangsFIFO

XOR

NetInReg

MPReg

3

32

XOR

32

18

OPBOPA

DERR

34

DRA

M

FIFOD

DALU

DRAM RAMPAR

MuxND

32

FIFOA

22

FPGAA , ARAM

DrvNA

11

36

Kontroller

DRAM

FPGA/CAS,/RAS,/WR

RegErr

325

XOR

Kontrol-

logik

MEMVALIDIN[i]

MEM

32

ALU

32

2

32

36

S

FIFO

Ausgangs-

32

ODMux

ND DrvRPDrv

DrvOD

FPGA

BUSYIN[i]FPGABUSYOUT[i] MEMVALINDT VALIDOUT[i]FPGA

MuxNA

DIN

FPGA

CASADDRFPGA

/FULLFPGA/ACK[i]

/AS[i]

ES

MEM

MEM

MEM

Speicherprozessor

Speicherboard

RW

FPGA/NITR[i]

/RITR[i]

FIFO

EMPTYFIFO

Signale fur den Anfrageempfang Signale fur den Antwortr uckversandDINMEM Anfragepaketbus (Hinweg) DOUTMEM Antwortpaketbus (R¨uckweg)DINFPGA Anfragebus nachSamplingin RegNetIn VALIDOUT[i] FPGA Paket–g¨ultig–SignalVALIDIN[i] MEM Paket–g¨ultig–Signal BUSYIN[i] MEM Netzwerk–Busy oder Bank ist mitVALINDTMEM Datenpaket–folgt–Signal Antwortruckversand nicht dran.BUSYOUT[i] FPGA Busy–Signal der EingangsFIFO

Signale fur die RAM–ZugriffeInterne Busse CASADDRFPGA Select–Signal desMuxNA

AFIFO Ausgangsbus der Adreß–FIFO /RASFPGA Row Address StrobeDFIFO Ausgangsbus der Daten–FIFO /CASFPGA Column Address StrobeEMPTYFIFO EingangsFIFO–leer-Signal /WRFPGA Write Strobe/FULL FIFO AusgangsFIFO–voll–Signal ARAM RAM–AdreßbusDERR Ausgangsbus des Error–Registers DRAM RAM–DatenbusDALU Ausgangsbus der ALU PARRAM RAM–ParitatsbusAFPGA,D FPGA Interner RAM–Adreß– u. –Datenbus

Signale fur die HostzugriffeInterrupt–Signale /AS[i] MEM Address Strobe

/RITR[i] FPGA RAM–Fehler–Interrupt RWFPGA,ES FPGA Read/Write– und Error–Strobe/NITR[i] FPGA Netzwerkfehler–Interrupt /ACK[i] FPGA Acknowledge–Signal der Bank