• Keine Ergebnisse gefunden

Sicheres Fenster = 5

Kapitel 5 - Hardware für die Simulation pulsverarbeitender neuronaler Netze

6.1. Aufbau der Evaluierungsplattform (PLD 53 -Karte)

6.1.2. Die Realisierung

Bei der RACER Beschleunigerkarte handelt es sich um eine sechslagige, lange PCI Er-weiterungskarte. Abbildung 72 zeigt die Erweiterungskarte bestückt mit einem Modul auf dem ersten Modulsteckplatz. Zwischen den Steckverbindern der unbelegten Modul-steckplätze sind die beiden FIFO Bausteine für den Modulsteckplatz wie auch die Crossbar-Switches zu erkennen. Links auf der Erweiterungskarte, oberhalb des PCI-Steckverbinders, befinden sich oberhalb des AMCC PCI-Controllers der FPGA des lo-kalen Controllers und links oberhalb der FPGA der Programmier- und Testeinheit. Alle Verbindungen zwischen den PCI-Controller und dem lokalen Controller sind über so genannte zero-delay-Switches miteinander gekoppelt, da der PCI-Controller mit 5 Volt

55 Programming and Test Unit

FIFO

Switch

Module M1

MIDU FIFO

FIFO

Module M2

MIDU FIFO

FIFO PT Port

Switch PCI Controller

AMCC5933

Local troller

Con-PTU

Module M0

MIDU FIFO

FIFO FIFO

PCI Bus

4 32

PT Port PT

Port

18 32

arbeitet und alle anderen Schaltkreise der Erweiterungskarte mit 3,3 Volt arbeiten. Am linken Rand der Karte sind drei EEPROMs zu erkennen, wovon zwei die Programmie-rung des lokalen Controllers aufnehmen und einer die ProgrammieProgrammie-rung der PTU. Um einen sicheren Betrieb der Module auf der Erweiterungskarte zu gewährleisten und gleichzeitig die PCI-Spezifikation von maximal 25 Watt pro Erweiterungskarte einzu-halten, wurde in der linken oberen Ecke der Erweiterungskarte eine zusätzliche Buchse zur Spannungsversorgung angebracht. So kann jedes der Module wahlweise über den PCI-Bus oder über diese Buchse mit Spannung versorgt werden.

An den Modulsockeln liegen 5 Volt, 3,3 Volt und eine zwischen 1 und 5 Volt über steckbare Widerstände eines Präzisionsspannungsreglers frei einstellbare Spannung an.

Die Module werden überdies mit einem gepufferten PCI-Takt versorgt.

Abbildung 72: RACER PCI – Erweiterungskarte, bestückt mit einem Modul auf dem ersten Modulsteck-platz.

Das erste im Rahmen dieser Arbeit aufgebaute Modul für den RACER-Beschleuniger ist mit einem Altera Flex 10K200S FPGA, einem gesockelten TTL-Taktgeber und einer PLL56 ausgestattet. Die PLL dient dazu, einen höheren synchronen Takt für den auf der Oberseite des Moduls befindlichen Speichersockel bereitzustellen. Der Sockel nimmt SO-DIMM Speichermodule mit einer Kapazität bis 256 MB auf. Das so ausgestattete Modul kann größere Datenmengen aufnehmen und dadurch längere Phasen autarker Be-rechnungen ermöglichen.

Neben 8 festen Eingängen, die über einen Stecker auf der Oberseite des Moduls an den FPGA herangeführt werden, können mit Hilfe eines vom FPGA steuerbaren Crossbar-Switch statt der oberen 12 Bit des 32 Bit FIFO-Eingangssignals 12 Signale eines zwei-ten Steckers von der Oberseite des Moduls an den FPGA geführt werden. Hierdurch ist

56 Phase Lock Loop

Hauptcontroller FPGA

PCI Controller

Modul

EEPROMs Buchse für zus.

Spannungsvers

PTU-FPGA

Ausgangs-FIFO

Eingangs-FIFO

es möglich, bis zu 20 digitale Signale von einer externen Quelle in den FPGA einzu-speisen, wobei gleichzeitig über die verbleibenden 20 Bit des FIFO-Eingangssignals Befehlssequenzen und Daten vom Host empfangen werden können.

In Abbildung 72 ist deutlich der unbestückte SO-DIMM Sockel auf der Oberseite des Moduls zu erkennen. Der FPGA befindet sich auf der Unterseite des Moduls. Eine de-taillierte Beschreibung des Modulaufbaus, inklusive der Steckerbelegungen und Konfi-gurationsmöglichkeiten, findet sich in [Flieck2000].

Befehle an den lokalen Controller werden mit Hilfe der Mailboxen des AMCC-Control-lers übermittelt. Wird eine der Mailboxen des AMCC-ControlAMCC-Control-lers beschrieben, so löst dies auf Seiten der Erweiterungskarte einen Interrupt aus, welcher durch die Implemen-tierung des lokalen Controllers behandelt wird.

Datentransfers in den FIFO der Programmier- und Testeinheit wie auch in die eingangs-seitigen FIFOs der Module erfolgen mit Hilfe eines so genannten Pass-Thru Transfers.

Tritt ein solcher Transfer auf, so wird dies vom AMCC-Controller über einen dedizier-ten Pin signalisiert. Die Implementierung des lokalen Controllers sorgt dann für die rechtzeitige Aktivierung der entsprechenden Steuersignale für die FIFOs.

Die von den Modulen berechneten Daten werden aus den ausgangsseitigen FIFOs der Module mit Hilfe eines Mastertransfers in den Speicher des Hosts übertragen. Die Aus-lösung eines solchen Transfers geschieht aufgrund eines der FIFO Füllstandssignale (leer (E), nahezu leer (AE), halb voll (HF), nahezu voll (AF) und voll (F))57. Welches dieser Signale den Transfer auslöst, lässt sich im lokalen Controller während des Be-triebs programmieren. Der lokale Controller stellt zudem sicher, dass bei mehreren akti-ven Auslösungssignalen die Module reihum die Gelegenheit erhalten, ihre Daten zu transferieren.

Neben den geschilderten Datentransfers stellt der lokale Controller beim Systemstart eine ordnungsgemäße Konfiguration des AMCC-Controllers und aller anderen Baugruppen auf der Erweiterungskarte sicher. Die Konfiguration der Erweiterungskarte und statistische Daten über die vergangenen Datentransfers lassen sich über einen entsprechenden Befehl vom lokalen Controller abrufen. Der lokale Controller überträgt in diesem Falle die Daten mit Hilfe eines Mastertransfers in einen eigens hierfür angelegten Speicherbereich des Hosts.

Für eine Programmierung mit Hilfe der Programmier- und Testeinheit sind lediglich entsprechende Daten in den FIFO der Programmier- und Testeinheit einzuspeisen. Die Daten müssen mit einem Prolog versehen sein, der angibt, welcher Baustein program-miert werden und mit welcher Taktrate dies geschehen soll. Sobald entsprechende Daten in den FIFO der Programmier- und Testeinheit eintreffen, beginnt diese, den betreffenden Baustein zu programmieren, sofern der Baustein zurzeit keine Berechnungen durchführt.

Die Dauer der Konfiguration hängt von der Größe des zu programmierenden Bausteins und von der maximalen Taktrate ab, mit der er programmiert werden kann. Bei der RACER-Hardware steht mit dem gepufferten PCI-Takt eine maximale Taktrate von 33 MHz zur Verfügung. Aktuelle Bausteine lassen sich mit Taktraten bis zu 33 MHz bzw. 57 MHz programmieren. Der Programmiertakt des Flex10K200S, welcher auf dem im Rahmen dieser Arbeit gefertigten Modul verbaut ist, kann maximal 16,7 MHz

57 E - empty, AE - almost empty, HF – half full, AF – almost full und F - full

betragen. Die erforderliche Datenmenge für eine Konfiguration des Bausteins beträgt 2.740.000 Bits. Daraus ergibt sich eine Konfigurationsdauer von 164,4 ms für diesen Baustein. Im Vergleich dazu benötigt die Konfiguration des zurzeit größten von der Firma Altera verfügbaren Bausteins 360,33 ms, mit 12.011.000 Bits und einer Taktrate von 33 MHz. Die Rekonfiguration eines Moduls während des Betriebs lohnt sich daher nur, wenn die zwischen zwei Konfigurationsvorgängen stattfindenden Berechungen ein Vielfaches der angegebenen Konfigurationszeiten in Anspruch nehmen, es sei denn, be-schränkte Ressourcen erfordern ohnehin eine Rekonfiguration.