Forum: FPGA, VHDL & Co. I/O-Anbindung zwischen einem FPGA-Board und einem PC


von Daniel K. (Firma: Fraunhofer) (danielkrause)


Lesenswert?

Hi,
ich habe eine Frage: ich soll mich mit dem Thema beschäftigen was für 
ein Übertragungsprotokoll wie z.B. Hypertransport-III oder PCIe-II für 
eine High-Speed-Datenübertragung von einem PC (oder Server)zu einem 
FPGA-Board die z.Z. optimale Variante ist.
Das gewählte Protokoll sollte eine Komplexität aufweisen, die es 
gestattet,
das System auf einem FPGA (in VHDL) oder auf dem Board (Chipsatz) zu
implementieren und es sollte:
- 10-20 Gbps Duplex Datenrate
- 100%ige Datenintegrität
- Routbarkeit
- Protokoll-/Filesystem-Unterstützung
- Verfügbarkeit kommerzieller Hardware- und Softwarekomponenten
Kennt jmd eine Seite die sich damit schonmal beschäftigt hat? Oder hat 
jmd eininge hilfreiche Links zu diesem Thema. Ich weiss nicht exakt nach 
was ich suchen soll und das muss eigendlich noch bis Ende der Woche 
fertig sein.
Gruß Daniel

von Bustle (Gast)


Lesenswert?

Im Core Generator von Xilinx sind verschiedene PCI-Cores integriert 
(Kosten jedoch teilweise etwas)

Jedoch ob die deinen Geschwindigkeitsansprüchen gerecht werden weiß ich 
nicht.

von Jan M. (mueschel)


Lesenswert?

PCI schafft max 133 Mbyte/s , PCIe32 auch nur 8 Gigabyte pro Sekunde - 
bis zu den geforderten 20 Gigabyte ist es noch ein Stueck. Ein einzelner 
PC duerfte damit definitiv ueberfordert sein.

von Stephan (Gast)


Lesenswert?

Es sind ja nur 10-20 GBit/s gefordert nicht GByte/s...

PCIe16 hat theoretisch 32 Gbps, ist aber vmtl. nur bei sehr kurzen 
Verbindungen verwendbar.
Infiniband, 10GBit-Ethernet, Myrinet, etc. liegen zumindest in der Nähe 
der geforderten Datenrate und sind für längere Verbindungen geeignet.

Routbarkeit ist abhängig vom Protokoll. Kommerzielle Komponenten in 
diesem Bereich dürften bei PCIe nicht existieren.
Für Infiniband und 10GB-Ethernet gibts die dagegen sicher, teilweise 
auch mit Bündelung bis 40Gbps. Alles aber nicht ganz billig.

Tja und 100%-ige Datenintegrität gibts nicht, außer vielleicht mit 
Quanten-sonstwas.
Auch wenn die Daten mit Prüfsummen beliebiger Länge und 5-fach redundant 
übertragen werden kann es immer noch passieren, dass auf allen 5 
Leitungen die gleichen Bits umfallen und am Ende 5 mal das gleiche 
ankommt. Und wenn das auch noch ein gültiger Code ist (Prüfsumme) ist 
der Fehler nicht erkennbar. Wenn ich die Daten insgesamt oder eine neue 
Prüfsumme an den Absender zurücksende kann auch wieder ein Fehler 
passieren.
=> mit entsprechenden Redundanzinformationen kommst du auf 99,(viele 
Neunen)%, aber nie auf 100

von Falk B. (falk)


Lesenswert?

@ Stephan (Gast)

>PCIe16 hat theoretisch 32 Gbps, ist aber vmtl. nur bei sehr kurzen
>Verbindungen verwendbar.

Was heisst kurz? Ich kenn die Spezifikation jetzt nciht, würde aber mal 
aus 1m tippen.

>Tja und 100%-ige Datenintegrität gibts nicht, außer vielleicht mit
>Quanten-sonstwas.

Käse! Solide designte Übertragungsstrecken haben eine Bitfehlerrate von 
weit unter 10^-15!

>=> mit entsprechenden Redundanzinformationen kommst du auf 99,(viele
>Neunen)%, aber nie auf 100

Blödsinn! Beschäftige dich mal mit CRC und FEC. Und vor allem mal mit 
realem Hintergrund. Wenn in hundert Jahren mal wirklich in Bit falsch 
durchkommen sollte ist das bei den meisten Sachen sowas von egal. 
Sicherheitsrelevante Dinge funktionieren sowieso anders.

MFG
Falk

von Stephan (Gast)


Lesenswert?

@ Falk

1m für PCIe halte ich über den Daumen auch für nen sinnvollen Wert. 
Nachdem aber von Routbarkeit die Rede war gehe ich eher von größeren 
Strecken aus (10...100m).

Ansonsten sind wir hier aber nicht im heise-Forum (obwohl Freitag 
ist)...
Die Größenordnung 10^-15 ist mir wohl bekannt, je nach Codierung auch 
beliebig zu verbessern. Für die Verbindung selbst sind mir aber Werte um 
die 10^-12 geläufig.

[akademische Betrachtung]
Die Fehlerrate kann beliebig klein werden, aber nie 0.
[/akademische Betrachtung]

Praktisch relevant wird die Fehlerrate kaum sein, denn wie du sagtest 
kann man die auf statistisch einen Fehler in 10 oder auch 100 Millionen 
Jahren hin trimmen, je nach Anforderung.
Falls mit "Firma Fraunhofer" die Fraunhofer Gesellschaft gemeint ist 
handelt es sich aber wohl um eine akademische Fragestellung und da hat 
meine akademische Antwort mE auch ihren Platz.

Offen bleibt auch ob es wirklich um Datenintegrität (also auch Echtheit 
der Daten) geht, oder um die Fehlerfreiheit der Übertragung. Ich denke 
eher nur die Fehlerfreiheit.

Grüße, Stephan

von Falk B. (falk)


Lesenswert?

@ Stephan (Gast)

>Nachdem aber von Routbarkeit die Rede war gehe ich eher von größeren
>Strecken aus (10...100m).

Dann führt kein Weg an optischen Tranceivern vorbei. Allerding ist das 
mit der "Routebarkeit" Spekutlation, die hab ich mir abgewöhnt. Die 
meisten Anfragen in diesem Forum sind einfach schlecht formuliert bzw. 
von Leuten mit wenig fachlichem Hintergrund, da wird mal fix übertrieben 
und komisch formuliert.

>Ansonsten sind wir hier aber nicht im heise-Forum (obwohl Freitag
>ist)...

;-)

>[akademische Betrachtung]
>Die Fehlerrate kann beliebig klein werden, aber nie 0.
>[/akademische Betrachtung]

Jaja, ;-)

>handelt es sich aber wohl um eine akademische Fragestellung und da hat
>meine akademische Antwort mE auch ihren Platz.

Das sollen dann die Herren Akademiker mal in ihrem Elfenbeinturm 
auskaspern.

MfG
Falk

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.