Dumme Frage: 32x32 Bit Multiplikation in 2 Zyklen ?

Gast #3909929
Lesenswert?

Hallo,
habe keine Erklärung dafür, wie ein Prozessor, der mit 80 MHz läuft, in 
2 Zyklen über einen Hardware Multiplikator eine 32x32 Bit Multiplikation 
durchführen kann (Datenblatte PIC 32....)

Eine Look up Tabelle für die Ergebnisse müsste ja eine Kapazität von  4 
Miliarden x 4 Miliarden x 32 Bit Einträge haben.

Wie kann er so schnell rechnen ?

LG Dirk
Gast #3909957
Lesenswert?

Ganz einfach: In dem sich beim Multiplizieren sehr beeilt.

OK. Scherz beiseite.

Die Frage kann man so umformulieren, dass sie für die Allgemeinheit 
interessanter wird: Wie sieht die Struktur eines binären parallelen 
Multiplizierers aus?

Auf solche Fragen hält das Internet sehr viele Antworten bereit. Es gibt 
da so "Suchmaschinen". Man gibt Worte ein und erhält eine Liste von 
Links die auf Seiten verweisen, in denen die eingegebenen Worte 
vorkommen.
#3909962
Lesenswert?

dirkf schrieb:
> Hallo,
> habe keine Erklärung dafür, wie ein Prozessor, der mit 80 MHz läuft, in
> 2 Zyklen über einen Hardware Multiplikator eine 32x32 Bit Multiplikation
> durchführen kann (Datenblatte PIC 32....)
>
> Eine Look up Tabelle für die Ergebnisse müsste ja eine Kapazität von  4
> Miliarden x 4 Miliarden x 32 Bit Einträge haben.
>
> Wie kann er so schnell rechnen ?

Z.B. mit einer 16x16 Bit Lookuptable und 3 Additionen:

(a1, a2) * (b1, b2) = (a1*b1)<<32 + (a1*b2)<<16 + (a2*b1)<<16 + (a2*b2)
Gast #3909992
Lesenswert?

dirkf schrieb:

> Wie kann er so schnell rechnen ?

Das tut er eigentlich garnicht (rechnen).

Er schreibt nur Bitmuster auf die Eingänge einer nicht getakteten 
Logikschaltung, wartet deren Gatterlaufzeiten ab und holt dann das 
Ergebnis von deren Ausgängen ab.

Nix Lookuptabelle, reine bool'sche Logik. Eine größere Ansammlung von 
Volladdern. Aber längst nicht so groß wie eine Lookup-Tabelle...
#3910026
Lesenswert?

A. K. schrieb:
>> Eine größere Ansammlung von Volladdern.
>
> Nö. Ein einziger Volladdierer. Um die beiden Teilsummen der Kaskade von
> Carry Save Addern zu addieren.

PS: Wenn man es bitweise sieht, kommt das Gleiche raus. Weil dann ein 
3:2 CSA ein FA ist dessen Übertrag diagonal statt horizontal läuft. Nur 
in der letzte Stufe nicht mehr.

> Was glaubst du, was ein Carry Save Adder ist? Das ist im Wesentlichen
> auch nur ein Volladder mit einem kleinen Extra.

Yep. Wortweise betrachtet v. bitweise.
Gast #3910095
Lesenswert?

A. K. schrieb:
> Was willst du denn damit in diesem Zusammenhang anstellen, wenn nicht
> grad um eine Zweierpotenz multipliziert wird?

Naja, die Adder werden ja immer um ein Bit verschoben, das könnte man 
sequenziell mit einem Barrel-Shifter machen. Gut, das geht dann nicht in 
zwei Taktzyklen (die ganze Multiplikation).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren