www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hardware-Mutliplizierer ATmega


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen, ich schreibe gerade an einer Arbeit über den ATmega32. 
Ein Unterkapitel widme ich dem Hardware-Multiplizierer.
Nun habe ich einige Fragen dazu: Wo befindet sich der Multiplizierer (in 
der ALU oder ausserhalb)?
Woher bekommt man die Pläne mit dem Aufbau der Schaltungen des 
Multiplizierers?


Mit freundlichen Grüssen
Thomas

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Atmel fragen, die werden ja wissen, was sie bauen.
Ob sie es Dir sagen, ist eine andere Frage...
Falls Du mal irgendeine andere Innenschaltung einer etwas komplexeren 
Logik gesehen hast (früher hatten Hersteller sowas durchaus in ihren 
Datenblätter, dann wurde zur Papierersparnis aus ökologischen Gründen 
nur noch ein Blockschaltbild abgedruckt): viel Spaß beim Verfolgen der 
Signalwege. :-)

Gruß aus Berlin
Michael

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas schrieb:

> Nun habe ich einige Fragen dazu: Wo befindet sich der Multiplizierer (in
> der ALU oder ausserhalb)?

Da irgendwo drauf: http://www.flylogic.net/blog/?p=23. Kannst ja Atmel 
fragen, aber ich fürchte von Flylogic kriegst du eher eine Antwort.

> Woher bekommt man die Pläne mit dem Aufbau der Schaltungen des
> Multiplizierers?

Vergiss es. Die letzte wirklich detaillierte Darstellung der 
Innenschaltung eines Mikroprozessors war glaube ich die vom Intel 8008. 
Und auch die erst aus Anlass eines Jubiläums.

Die für Multiplizierer verwendete Technik lässt sich übrigens ergoogeln. 
Kann zwar sein, dass die nicht 100% mit der Atmels übereinstimmt, aber 
da soll dir erstmal jemand das Gegenteil beweisen ;-).

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen Dank für die Antworten!

Autor: ?? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein multiplizierer ist nun nicht so eine grosse Sache. Es gab mal einen 
74LS183 oder so. Der machte 4x4bit und war kaskadierbar.

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der 74xx183 ist glaub ich ain addierer

Autor: Thomas P. (topla)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
?? schrieb:
> Ein multiplizierer ist nun nicht so eine grosse Sache. Es gab mal einen
> 74LS183 oder so. Der machte 4x4bit und war kaskadierbar.

Das ist ein Addierer, Multiplizierer waren 4089 und 4527.

Thomas

Autor: Reinhard R. (reirawb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Laut:
http://www.domnick-elektronik.de/elekttl.htm
74274
74284
74285

Reinhard

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
toller link, kannte ich noch nicht

Autor: Reinhard R. (reirawb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eben erst ergoogelt :-)

Reinhard

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
?? schrieb:

> Ein multiplizierer ist nun nicht so eine grosse Sache.

Strukturell nicht, klein wie gross sehen die dem Prinzip nach gleich 
aus.

Bei einem rein kombinatorischen Multiplizierer kommt es ein aber bischen 
sehr drauf an wieviele Bits beteiligt sind. Der Aufwand wächst immerhin 
quadratisch.

Autor: faustian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es existiert ein reverse-engineerter Schaltplan des 6502 auf 
Transistorlevel im Netz. Bin nur zu faul den jetzt zu suchen ;)

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mag sein, aber der hat keinen Multiplier.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm... aber es gibt doch verschiedene Multiplizierer (sequenzielle, 
parallele,....). Weiss jemand was für einer verwendet worden sein 
könnte? Man weiss ja, dass er signed und unsigned Multiplikationen (8x8 
Bit = 16 Bit Resultat) ausführen kann und das innerhalb von zwei Takten.

Gruss Thomas

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich gehe mal von einem parallelen Multiplizierer aus. Ansonsten würde 
das nicht hinkommen mit dem fast 16 MIPS bei 16MHz

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wo befindet sich der Multiplizierer (in der ALU oder ausserhalb)?

Da es sich bei der Multiplikation um eine arithmetische Operation
handelt und der Multiplizierer mit einem eigenen Befehl, der die
Operanden direkt aus den Universalregistern liest¹, angesprochen wird,
kann davon ausgegangen werden, dass der Multiplizierer Bestandteil der
ALU ist. Auch das Datenblatt (ATmega8) deutet dies an, da der
Multiplizierer dort im Abschnitt "Arithmetic Logic Unit" erwähnt ist.

> Woher bekommt man die Pläne mit dem Aufbau der Schaltungen des
> Multiplizierers?

Von offizieller Seite bekommt man wahrscheinlich gar keine Informationen
dazu, man ist also auf Vermutungen angewiesen. Da der MUL-Befehl nur
zwei Taktzyklen dauert, muss es sich um einen Parallelmultiplizierer
handeln. Dieser besteht im Prinzip aus 7 steuerbaren 8-Bit-Addierern,
ähnlich wie hier für 4 Bit gezeigt:

  http://de.wikipedia.org/wiki/Multiplizierer_%28Dig...

Der oberste Addierer im Bild wird nur für eine MAC-Operation (Multiply
and Accumulate) benötigt und entfällt bei einem reinen Multiplizierer.

Die Atmel-Leute haben sicher noch einige Tricks in den Detailaufbau
gesteckt, aber das Gesamtverfahren wird das gleiche wie in dem Link
sein. Das sollte für deine Arbeit auch genügen :)

¹) anders als etwa der MSP430, wo der Multiplizierer als Peripherie-
   einheit über I/O-Register angesprochen wird

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wobei reale Multiplizierer allerdings nicht aus normalen Addierern 
aufgebaut sind, wie im Link skizziert, sondern aus CSAs (Carry Save 
Adder) die 3 Operanden zu 2 reduzieren und den enorm beschleunigenden 
Vorteil haben, keinen klassischen Übertrag zu benötigen. Erst die 
abschliessenden beiden Resultate werden normal addiert.

Siehe 
http://fara.cs.uni-potsdam.de/~mandrasc/uni/9.Seme...

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
könnte das z.B. ein "Carry Save Array Multipliers" wie hier: 
http://www.andraka.com/multipli.htm sein?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte. Denkbar auch, dass ein solcherart aufgebauter 4x8 Multiplier 
nacheinander für 2 Partialprodukte verwendet wird. Passt etwas besser zu 
den 2 Takten und halbiert den Aufwand.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber wenn zwei 4x8 Multiplier verwendet wurden, was würde in den beiden 
Taktzyklen passieren?
1 Takt: erste vier bit von 1. operanden mit 2. Operanden und letzte vier 
mit mit 2. Operanden multiplizieren
2. Takt: beide Resultate addieren
möglich?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein. Ein einziger 4x8 Multiplier wird zweimal dabei nacheinander 
verwendet. Prinzip:

Aa * Bb = a*Bb + (A*Bb * 16)

also

1: temp = a*Bb
2: result = (A*Bb << 4) + temp

Die zusätzliche Addition ist relativ günstig zu haben, wenn man in dem 
CSA-Tree einen zusätzlichen Summanden vorsieht, der im ersten Takt 0 
kriegt.

So ähnlich, also nicht vollständig gepipelined, arbeiten auch die 
Integer-Multiplier einiger x86er.

Zumindest bei grösseren Breiten reduziert ein Booth encoding vorneweg 
den Aufwand etwas.

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]
  • [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.