Kann mir jemand zeigen, wie die Rechenwerke eines DSP aufgebaut sind, die z.B. in einem Takt zwei 64 Bit Zahlen multiplizieren können?
DoDi
Kann mir jemand zeigen, wie die Rechenwerke eines DSP aufgebaut sind, die z.B. in einem Takt zwei 64 Bit Zahlen multiplizieren können?
DoDi
Am Dienstag, 10. September 2019 10:48:28 UTC+2 schrieb Hans-Peter Diettrich :
iplizierer.
Das stimmt nicht.
Am Dienstag, 10. September 2019 11:28:23 UTC+2 schrieb wernertrp:
ch:
ltiplizierer.
... aber wie viel mal stimmt nun ?
Am 10.09.2019 um 10:48 schrieb Hans-Peter Diettrich:
mal im Internet gesucht:
Ich glaube nicht, dass sich Multiplikationen von 64Bit-Zahlen mit einer LUT abbilden lassen. Ansonsten wird häufig so gerechnet, wie in der Grundschule (Aufspalten in kleinere Multiplikationen und dann addieren, es muss auch nicht alles Taktsyncron laufen).
Am 12.09.2019 um 11:14 schrieb Stefan Engler:
Hier ist eine sehr gute Erklärung, wie das prinzipiell funktioniert:
Bei 64-Bit wird's nochmal heftiger. Mit dieser Methode packt man die
64Bit Multiplikation dann in log2(64)=6 Takten. Wenn man das dann in einem Takt schaffen will, muss man das Ganze dann noch 6x bauen und in einer Pipeline organisieren. Eventuell geht's etwas einfacher, wenn man das Design teilweise zusätzlich noch mit kleinen LUTs mischt.Gruß Andreas
Am 12.09.2019 um 11:14 schrieb Stefan Engler:
Darin kann ich nichts über die digitale Architektur finden?
Das ist durchaus denkbar, aber bei 64 Bit sehe ich da schon erhebliche Grenzen in der Taktvervielfachung. Es wäre ja auch gemogelt, wenn man die (externe) Taktfrequenz so weit reduziert, bis alle aufwendigen Operationen (Division!) in 1 Takt ablaufen können, und der DSP dann eben nur noch mit 32kHz Uhrenquarz läuft.
Asynchron würde das doch ein Alptraum, wenn man nicht vorhersehen oder feststellen kann, wann eine Operation abgeschlossen ist?
DoDi
Am 12.09.2019 um 13:39 schrieb Andreas Fecht:
Das ist aber noch nicht alles. Meine Erfahrung mit 74181 Rechenwerken war, daß die ohne Carry Lookahead (74182) elend langsam waren.
Beim parallelen Multiplizieren ist das Hauptproblem nicht die Multiplikation selbst, da reicht ein UND Gatter für 1x1 Bit, aber dann kommen bei 64x64 Bit bis zu 64 Additionen mit bis zu 64 Carry Ripples dazu, und die kosten alle Zeit.
Ich sehe nicht, wie das mit nur 6x Hardware schneller werden soll? Wenn Die Verweildauer in der Pipeline egal ist, könnte man das ja auch in 64 einfachen Stufen erledigen, mit vielfach höherer Pipeline-Taktfrequenz.
Das könnte durchaus was bringen.
DoDi
Have something to add? Share your thoughts — no account required.
Ask the community — no account required