mikrocontroller.net

Forum: FPGA, VHDL & Co. Bandbreitenberechnung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Mutluit M. (mutluit)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: asdf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dergute W. (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

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

Komm' ich getz' in Fernsehn?

Gruss
WK

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Mutluit M. (mutluit)
Datum:

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

Ich muss falsch gerechnet haben:
2.5 * 1024^3 * 10 / 8 / 1024^2 = 3200 MBps
2.5 * 1024^3 * 8  / 8 / 1024^2 = 2560 MBps
(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
Autor: Mutluit M. (mutluit)
Datum:

Bewertung
0 lesenswert
nicht 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? :-)

Autor: Mathelehrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mutluit M. (mutluit)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Mutluit M. (mutluit)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Samuel C. (neoexacun)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Dergute W. (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mutluit M. (mutluit)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Blechbieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dergute W. (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.