Forum: FPGA, VHDL & Co. Bandbreitenberechnung


von Mutluit M. (mutluit)


Lesenswert?

Hi,
kann mir bitte einer sagen, wie man unten gerechnet hat um auf die
besagten 312MBps bzw. 250MBps zu kommen? Ich krieg irgendwie ganz andere 
Zahlen raus :

Zitat: "The extra bits are sent using a scheme called 8b/10b encoding, 
so that for each 8 bit of useful data, 10 bits are actually transmitted 
(a 20% overhead) in a specific way that guarantees enough signal 
transitions. But that also means that at 2.5GHz, we only get 250MBps of 
useful bandwidth per pair (instead of the 312MBps we would get without 
the encoding overhead)."
(Quelle: https://www.fpga4fun.com/PCI-Express2.html )

Thx

: Bearbeitet durch User
von asdf (Gast)


Lesenswert?

Rein von den Zahlen her, müssten mit 2,5 GHz 2,5 GBit/s gemeint sein. 
Das gibt dann 312,5 MByte/s und das multipliziert mit 8/10 sind 250 
MByte/s

von Dergute W. (derguteweka)


Lesenswert?

Moin,

2.5e+3/8 = 312.5
2.5e+3/10 = 250

Komm' ich getz' in Fernsehn?

Gruss
WK

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mutluit M. schrieb:
> Ich krieg irgendwie ganz andere Zahlen raus :
Welche denn, und wie?

2500/8 = 312 (ohne "Overhead", wenn also mit "jedem Flankenwechsel" ein 
Bit übertragen würde)

2500/10 = 250 (weil beim 8/10 Encoding 10 Bitzeiten für 1 Byte 
verwendet)

: Bearbeitet durch Moderator
von Mutluit M. (mutluit)


Lesenswert?

Lothar M. schrieb:
> Mutluit M. schrieb:
>> Ich krieg irgendwie ganz andere Zahlen raus :
> Welche denn, und wie?

Ich muss falsch gerechnet haben:
1
2.5 * 1024^3 * 10 / 8 / 1024^2 = 3200 MBps
2
2.5 * 1024^3 * 8  / 8 / 1024^2 = 2560 MBps
3
(kann man natürlich kürzen, aber soll nicht das Thema sein)


> 2500/8 = 312 (ohne "Overhead", wenn also mit "jedem Flankenwechsel" ein
> Bit übertragen würde)
>
> 2500/10 = 250 (weil beim 8/10 Encoding 10 Bitzeiten für 1 Byte
> verwendet)

Jo, danke!

: Bearbeitet durch User
von Mutluit M. (mutluit)


Lesenswert?

asdf schrieb:
> Rein von den Zahlen her, müssten mit 2,5 GHz 2,5 GBit/s gemeint sein.
> Das gibt dann 312,5 MByte/s und das multipliziert mit 8/10 sind 250
> MByte/s

Jo, danke allen.

Aber ich ging davon aus dass hierbei bei jedem Takt 10 bits über die 
Leitung geschickt werden.
Wird das in der Praxis denn nicht so gemacht? :-)

von Mathelehrer (Gast)


Lesenswert?

Mutluit M. schrieb:
> Wird das in der Praxis denn nicht so gemacht? :-)

doch, deshalb sind es ja 1/10 der Taktrate. Die Bruttocodierung ist eben 
nicht gleich Nettodaten, weil die Bruttobits alleine eben keine direkten 
Daten sind.

Eingangsseitig kann man folglich auch nur 250M reinschicken.

Vlt liest du dir einfach man den Artikel zu der 8/10 Thematik durch.

von Mutluit M. (mutluit)


Lesenswert?

Mathelehrer schrieb:
> Mutluit M. schrieb:
>> Wird das in der Praxis denn nicht so gemacht? :-)
>
> doch, deshalb sind es ja 1/10 der Taktrate.

Wo steht denn das wieder?

> Die Bruttocodierung ist eben
> nicht gleich Nettodaten, weil die Bruttobits alleine eben keine direkten
> Daten sind.
>
> Eingangsseitig kann man folglich auch nur 250M reinschicken.
>
> Vlt liest du dir einfach man den Artikel zu der 8/10 Thematik durch.

Welchen Artikel zu 8/10 meinst du? Hier oder bei wikipedia? Welche 
Passage?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mutluit M. schrieb:
> Aber ich ging davon aus dass hierbei bei jedem Takt 10 bits über die
> Leitung geschickt werden.
Das ginge ja nur, wenn es ein paralleler Bus wäre, der parallel mit 
einem (virtuellen) 2,5GHz Takt 10 Bits übertragen könnte.
Aber ein serieller Bus, der 2,5 Gigabit pro Sekunde übertragen kann, 
kann eben nur (ohne jeglichen Protokolloverhead) maximal 312 Megabytes 
pro Sekunde übertragen. Und wenn dann z.B. noch Informationen zur 
Taktwiedergewinnung auf der gleichen seriellen Leitung übertragen 
werden, dann kann man mit 2,5Gbit/Sekunde lediglich 250MByte/Sekunde 
übertragen.
Wenn du mehr willst, dann musst du mehrere solches Lanes parallel 
aufsetzen...

von Mutluit M. (mutluit)


Lesenswert?

Lothar M. schrieb:
> Mutluit M. schrieb:
>> Aber ich ging davon aus dass hierbei bei jedem Takt 10 bits über die
>> Leitung geschickt werden.
> Das ginge ja nur, wenn es ein paralleler Bus wäre, der parallel mit
> einem (virtuellen) 2,5GHz Takt 10 Bits übertragen könnte.
> Aber ein serieller Bus, der 2,5 Gigabit pro Sekunde übertragen kann,
> kann eben nur (ohne jeglichen Protokolloverhead) maximal 312 Megabytes
> pro Sekunde übertragen. Und wenn dann z.B. noch Informationen zur
> Taktwiedergewinnung auf der gleichen seriellen Leitung übertragen
> werden, dann kann man mit 2,5Gbit/Sekunde lediglich 250MByte/Sekunde
> übertragen.
> Wenn du mehr willst, dann musst du mehrere solches Lanes parallel
> aufsetzen...

Ja, ich meine auch genau das serielle Kabel bzw. Bus. Das Kupferkabel 
verkraftet doch viel mehr (hab letztens von Terabits/s gelesen), und 
erst recht Glassfaser.
Kann man das denn nicht so machen dass bei jedem Takt mehr als 1 bit 
übertragen werden kann?
Wo genau liegt denn das Hauptproblem um sowas realisieren zu können?

: Bearbeitet durch User
von Samuel C. (neoexacun)


Lesenswert?

Mutluit M. schrieb:
> Wo genau liegt denn das Hauptproblem um sowas realisieren zu können?

Ich würde mal vermuten, der Grund heißt Geld. Den Spaß gibt es, aber 
wenn's kompliziert und schnell wird, wird's halt auch teuer. Deine 
Endstufe kann hier nunmal maximal 2,5GHz. Wenn du mehr Bits in der 
selben Zeit willst, brauchst du eine schnellere Endstufe.

Die billigere Lösung ist parallele Übertragung.

: Bearbeitet durch User
von Dergute W. (derguteweka)


Lesenswert?

Moin,

Mutluit M. schrieb:
> Kann man das denn nicht so machen dass bei jedem Takt mehr als 1 bit
> übertragen werden kann?

Klar, haben wir doch hier erst im Nachbarthread in epischer Breite 
erlaeutert.

> Wo genau liegt denn das Hauptproblem um sowas realisieren zu können?
Warum haben normale Ampeln denn 3 verschiedenfarbige Lichter? Das 
koennte man doch auch alles mit einer einzigen Lampe machen, die 
verschieden hell leuchtet...

Gruss
WK

von Mutluit M. (mutluit)


Lesenswert?

Dergute W. schrieb:
> Moin,
>
> Mutluit M. schrieb:
>> Kann man das denn nicht so machen dass bei jedem Takt mehr als 1 bit
>> übertragen werden kann?
>
> Klar, haben wir doch hier erst im Nachbarthread in epischer Breite
> erlaeutert.

Ja, Stichwort PAM & Co. Eben deswegen habe ich mich gewundert bzw. war 
etwas irritiert, warum beim PCIe-Bus denn nicht davon Gebrauch gemacht 
wird.
https://en.wikipedia.org/wiki/Pulse-amplitude_modulation

Aber wie der Vorposter richtig erkannt hat, kommt es auf die Endstufe 
an...
Alles eine Kostenfrage.

>> Wo genau liegt denn das Hauptproblem um sowas realisieren zu können?
> Warum haben normale Ampeln denn 3 verschiedenfarbige Lichter? Das
> koennte man doch auch alles mit einer einzigen Lampe machen, die
> verschieden hell leuchtet...

Es fällt mir schwer solche Metapher zu verstehen.  :-)

: Bearbeitet durch User
von Blechbieger (Gast)


Lesenswert?

Grund deiner anderen Zahlen ist das Kuddelmuddel mit Zehner- und 
Zweierpotenzen für die Einheiten.

Für Datenübertragung gilt meistens 1 MB (Megabyte) = 1000 KB aber für 
Speicher 1 MB (fälschlicherweise auch Megabyte, korrekt Mebibyte (MiB)) 
= 1024 KiB.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Mutluit M. schrieb:
> Es fällt mir schwer solche Metapher zu verstehen.  :-)

Tja, hm. Da ist nicht viel mit Metapher. Voellig ernst und ohne 
Hintergedanken: Warum arbeitet man bei der Ampel mit 3 verschiedenen 
Lampen und nicht mit einer Einzigen, die 4 verschiedene Helligkeiten 
(und duster) anzeigt? Damit koennte man informationstechnisch exakt die 
selben Infos uebertragen. Versuch' das zu ergruenden und dir wird 
einiges Andere auch klarer werden.

Gruss
WK

von Weltbester FPGA-Pongo (Gast)


Lesenswert?

Dergute W. schrieb:
> Warum arbeitet man bei der Ampel mit 3 verschiedenen
> Lampen und nicht mit einer Einzigen, die 4 verschiedene Helligkeiten
> (und duster) anzeigt?

Das wäre aber ein Gegenargument gegen PAM. Beim ETH wird es aber 
erfolgreich verwendet. Das begründet noch nicht, warum man es beim PCI 
nicht macht.

Treibertechnisch geht das über die kurze Distanz ohne Probleme. Wir 
übertragen ja auch 5Ghz analog mit 60dBS/N über eine enstprechende 
Strecke. Das sind mit 20dB Störabstand SQR(1000) = ca. 32 Zeichen. 
Umgerechnet auf eine PAM etwa das 6-8 fache der aktuellen Bandbreite.

von Mutluit M. (mutluit)


Lesenswert?

Weltbester FPGA-Pongo schrieb im Beitrag #5867704:
> Dergute W. schrieb:
>> Warum arbeitet man bei der Ampel mit 3 verschiedenen
>> Lampen und nicht mit einer Einzigen, die 4 verschiedene Helligkeiten
>> (und duster) anzeigt?
>
> Das wäre aber ein Gegenargument gegen PAM.

Hmm. wieso das denn? MMn ist es doch sehr zutreffend beschrieben:
eine Lampe mit 4 Farben/Helligkeiten ist doch sowas wie PAM
https://en.wikipedia.org/wiki/Pulse-amplitude_modulation

> Beim ETH wird es aber erfolgreich verwendet.
> Das begründet noch nicht, warum man es beim PCI nicht macht.
>
> Treibertechnisch geht das über die kurze Distanz ohne Probleme. Wir
> übertragen ja auch 5Ghz analog mit 60dBS/N über eine enstprechende
> Strecke. Das sind mit 20dB Störabstand SQR(1000) = ca. 32 Zeichen.
> Umgerechnet auf eine PAM etwa das 6-8 fache der aktuellen Bandbreite.

Ich finde diese Methode, PAM, verspricht die grössten Bandbreiten, nicht 
die FM-Methoden.
Nachteil ist natürlich dass ADC-Sampler benötigt werden, die zudem 
relativ sehr teuer sind.

Weiss jemand in welchen (lokalen) Bus-Systemen PAM angewendet wird?
Setzt AMD das bei dessen Infinity Fabric ein?

: Bearbeitet durch User
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.