mikrocontroller.net

Forum: FPGA, VHDL & Co. You can improve the performance of the multiplier.


Autor: Hans-Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was bedeutet denn diese Meldung ?

You can improve the performance of the multiplier XYZ by adding two 
registers

Wo sollte oder könnte man denn da zwei Register spendieren ?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieh dir das an, da sind 2 Registerebenen hinzugekommen
Beitrag "Re: Latch bei Berechnung mittels FSM"
--> das Design kann schneller getaktet werden,
    der Multiplizierer hat aber Latency
    (der braucht letztendlich gleich lang ;-)

EDIT:
Das mit dem "improve" bezieht sich also nur auf die maximale 
Taktfrequenz des Designs, nicht auf die absolute Rechendauer der 
Multiplikation.

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vorsicht,
wenn das ein DSP48 aus dem Spartan3DSP ist, dann schafft der Synthesizer 
(noch) nicht, verfuegbare Register auch zum Pipilinen zu verwenden.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> der Synthesizer
Welche XST Version? Welches Service Pack?

Duke

Autor: Hans-Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, jetzt ja.
Aber was bringt der schnellere Takt als solcher wenn die Ausführungzeit 
gleich bleibt ?
Eigentlich Nichts.

Autor: spartanne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
klar bleibt die Ausführungszeit deines multipliers u.U. gleich. Aber der 
Rest des Designs ist schneller, dein multiplier ist nicht mehr der 
kritische Pfad welcher die max Frequenz runterzieht. Und du wirst ja 
nicht nur den multiplier im Design haben?!?
Hat Lothar auch schon geschrieben:
> Das mit dem "improve" bezieht sich also nur auf die maximale
> Taktfrequenz des Designs, nicht auf die absolute Rechendauer der
> Multiplikation.

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier fehlen irgendwie die Begriffe "Latenz" und "Durchsatz".
Die Latenz verbessert sich durch das Pipelining nicht, die Zeit vom 
Start bis zum Ergebnis bleibt ungefähr gleich. Allerdings verdreifacht 
sich der Durchsatz, weil ja mit dem höheren Takt gearbeitet wird.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Die Latenz verbessert sich durch das Pipelining nicht,
Doch, sie steigt!

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> >Die Latenz verbessert sich durch das Pipelining nicht,
> Doch, sie steigt!

Damit verschlechtert sie sich aber.

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Die Latenz verbessert sich durch das Pipelining nicht,
>Doch, sie steigt!

Sinn?

Autor: Uli W. (uliw2008)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>>Die Latenz verbessert sich durch das Pipelining nicht,
>>Doch, sie steigt!
>Sinn?

Kein Sinn, sondern negativer Begleitumstand zugunsten des höheren 
Taktes. Lohnt immer dann, wenn die Summe an zu bearbeitenden Daten gross 
gegen die Latenz ist, weil N+D clocks abzuwarten sind ud die Zeit dann 
sinkt.

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist nun N und D schon wieder? Die Latenz steigt im Idealfall doch 
nur um 3 setup-Zeiten für die FFs, oder? In der Realität kommt wohl noch 
ein bischen was dazu, weil man die Arbeit sicher nicht exakt dritteln 
kann. In Anbetracht der Gesamtdauer für eine rein kombinatorische 
Multiplikation würde ich die Latenz eben als beinahe gleich ansehen.

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Latenz steigt im Idealfall doch nur um 3 setup-Zeiten für die FFs, oder?

Die setup-Zeit ist erstmal vernachlässigbar klein.

> In der Realität kommt wohl noch ein bischen was dazu,
> weil man die Arbeit sicher nicht exakt dritteln kann.

Gut erkannt. In einer Pipeline macht das den größten Teil der 
"verschwendeten" Zeit aus und ist i.A. weit mehr als nur "ein bischen". 
Gerade bei komplizierteren Pipelines wird ein Riesenaufwand betrieben, 
um die Dauer der einzelnen Stufen auszugleichen.

Dieser spezielle Fall mit dem Multiplier ist aber wohlbekannt und es 
gibt sicher haufenweise Doku, wo genau die Register eingefügt werden 
sollen, d.h. jemand anderes hat dir schon die schlimmste Arbeit 
abgenommen.

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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