DE1774483A1 - Binaeres Multiplizierwerk - Google Patents
Binaeres MultiplizierwerkInfo
- Publication number
- DE1774483A1 DE1774483A1 DE19681774483 DE1774483A DE1774483A1 DE 1774483 A1 DE1774483 A1 DE 1774483A1 DE 19681774483 DE19681774483 DE 19681774483 DE 1774483 A DE1774483 A DE 1774483A DE 1774483 A1 DE1774483 A1 DE 1774483A1
- Authority
- DE
- Germany
- Prior art keywords
- bits
- cells
- column
- lines
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5306—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products
- G06F7/5312—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products using carry save adders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Description
IBM Deutschland
Internationale Büro-Maschinen Gesellschaft mbH
Böblingen, 27. Juni 19 68 km-hn-oc
Anmelde rin:
International Business Machines Corporation, Armonk, N, Y. 10 504
Amtliches Aktenzeichen:
Neuanmeldung
Aktenzeichen der Anmelderin: Docket SW 9-66-001 Binäres Multiplizierwerk
Die Erfindung bezieht sich auf ein binäres Multiplizierwerk zur parallelen
.Multiplikation eines N-stelligen Multiplikanden mit einem N-stelligen Multiplikator.
Es ist bekannt, zur schnellen binären Multiplikation eine Vielzahl untereinander
gleicher Multiplikationss chaltungen zu verwenden, denen die Bits der
beiden Operanden parallel zugeführt werden ("Digitale Rechenanlagen1' von
A. P. Speiser, Berlin 1961, Seiten 199, 200). Die von den Multiplikationsschaltungen
gebildeten Teilprodukte werden über eine Kaskade von Paralleladdierwerken zusammengefaßt. Beispielsweise werden η Teilprodukte paarweise
in n/2 Paralleladdierern zu n/2 Teilsummen addiert, die wiederum in n/4 Paralleladdierern zu n/4 Tailsummen vereinigt werden, usw., bis
109885/1462
die Endsumme vorliegt. Es wird auf diese Weise eine einschrittige oder
vollständig parallele Multiplikation erreicht. Der Aufwand, den diese Einrichtungen erfordern, ist jedoch beträchtlich. Zudem geht ein Teil
des angestrebten Vorteiles einer sehr hohen Arbeitsgeschwindigkeit durch die zahlreichen hintereinandergeschalteten Verknüpfungs stufen wieder
verloren.
Es ist außerdem bereits vorgeschlagen worden, die Reihe der zur Operandenverknüpfung
verwendeten logischen Schaltungen eines Rechenwerkes in Datenflußrichtung in Abschnitte zu unterteilen. Jedem dieser Abschnitte
ist ein mehrstufiger binärer Zwischenspeicher zur Aufnahme der Resultatdaten des betreffenden Abschnittes zugeordnet. Dem Rechenwerk werden
paarweise Operandenziffernsätze in einem zeitlichen Abstand zugeführt, welcher der Durchlaufzeit eines Abschnittes entspricht. Gleichzeitig
mit der Zuführung eines neuen Paares Operanden-Ziffernsätze werden die in den Zwischenspeichern eingestellten Zwischenresultate
jeweils zum nächsten Abschnitt weitergeleitet. Es befinden sich so im Rechenwerk gleichzeitig mehrere Paare Operanden-Ziffernsätze in Bearbeitung,
wodurch die Schaltungen des Rechenwerkes günstig ausgenutzt und die Rechenzeit gering gehalten wird.
Aufgabe vorliegender Erfindung ist es, ein Multiplizierwerk anzugeben,
das einen regelmäßigen, zur Ausführung als integrierte Schaltung geeig-
109885/U62
neten Aufbau besitzt und bei einem geringeren Aufwand als die bekannten
rein parallel arbeitenden Multiplizierwerke eine sehr hohe Arbeitsgeschwindigkeit ermöglicht. Das Multiplizierwerk gestattet die Anwendung
des vorausgehend erläuterten Prinzips der zeitlich überlappten Ausführung von Rechenoperationen an verschiedenen Operandensätzen,
wodurch die Multiplikationszeit zweier mehrstelliger Faktoren auf einen
einzigen binären Multiplikations-Additionstakt reduziert werden kann. J
Die erfindungsgemäße Aufgabe wird dadurch gelöst, daß eine Matrix
untereinander gleicher Multiplikations-Additionszellen vorgesehen ist,
die aus N den Multiplikandenbits teilen zugeordneten Zeilen und aus 2N Spalten besteht, von denen die N ersten den Multiplikator bits teilen zugeordnet
sind und die übrigen eine zur Übertragsverarbeitung dienende, sich stufenförmig vermindernde Anzahl Zellen aufweisen, daß jede der
Zellen eine Schaltung zur Bildung eines Teilproduktes aus/inem Multiplikandenbit
und einem Multiplikätorbit und zur Addition dieses Teilproduktes zu einem Teilresultatbit und einem Teilresultatübertragsbit
aus einer vorausgehenden Zelle enthält, daß jede der Zellen ferner binäre Zwischenspeicher für ein Multiplikandenbit, für ein Teilsummenbit
und für ein Teilsummenübertragsbit enthält, daß eine Taktsteuerschaltung vorgesehen ist, die die Multiplikandenbits den Zellen der ersten
Spalte und die Multiplikator bits den Zellen der N ersten Zeilen/zuführt
und die eine Übertragung der Resultate aus den Zellen einer jeden Spal-"
1 09885/U62
te zu den Zellen der nächsten Spalte über Verbindungsleitungen steuert-,
von denen die Multiplikandenleitungen und die Ubertragsleitungen direkt,
die Endsummenleitungen aber jeweils "um eine Zeile vernetzt von Matrixspalte
zu Matrixspalte verlaufen, und daß das Resultat von den Summe nleitungender ersten Zeile erhalten wird.
Durch die Zusammenfassung der binären Teilprodukterzeugung und Teil-
W produktakkumulation in einer Zelle ist ein dicht gepackter Aufbau der
Schaltung möglich. Dies hat zur Folge, daß die bei sehr hohen Rechengeschwindigkeiten
eine Rolle spielenden Si gnalübertragungs zeiten weitgehend reduziert werden können. Der durch die Matrixstruktur mit einheitlichen
Rechenzellen erhaltene regelmäßige Schaltung saufbau eignet sich besonders günstig für eine Instrumentierung als moiiolythische Schaltung.
Verschiedene vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung
sind aus den Ansprüchen ersichtlich. Nachfolgend werden mehrere Ausführungebeispiele der Erfindung anhand von Zeichnungen erläutert.
Es zeigent
Fig. l! ein Ausführungsbeispiel des erfindung β gemäßen Multipli
zierwerkes,
Fig. 2: eine Multiplikation -Additionszelle, wie sie in der Anord
nung nach Fig, I verwendet wird,
10988S/U62
Fig. 3: eine Abwandlung des in Fig« 1 dargestellten Multiplizier -
werkes zur Ausführung von Rechnungen nach dem Schema S + A · B und
Fig. 4: ein weiteres vorteilhaftes Ausführungsbeispiel, das unter
Verwendung der Anordnung nach Fig. 3 aufgebaut ist und
sich besonders zur Berechnung von Produktensurnmen eignet.
Bevor auf eine detaillierte Beschreibung des Ausführungsbeispieles eingegangen
wird, soll kurz der Algrd^thmus erläutert werden, von welchem
die Erfindung Gebrauch macht. Es handelt sich dabei um einen bei der
parallelen Multiplikation in Ziffernrechnern weithin angewendeten, bekannten
Algorithmus.
Wenn zwei ganzzahlige und positive binäre Werte
N-I
A= Ί> a.2j
A= Ί> a.2j
N-I
miteinander multipliziert werden, so erfolgt dies, indem zuerst die
109885/1462
Ziffer a in A parallel mit allen Ziffern b. in B multipliziert wird.
Danach wird ein zweites Teilprodukt gebildet, durch Multiplikation von a: und B, und die beiden Teilprodukte werden addiert, wobei zuvor das
erste Teilprodukt a · B um eine Ziffernstelle nach rechts verschoben
wurde. Ein dritter Multiplikations zyklus ergibt das Teilprodukt a_ · B,
das zu der um eine Stelle nach rechts verschobenen Summe der vorausgehenden
Teilprodukte addiert wird. , Die folgende Tabelle zeigt dieses ■ Multiplikations s ehe ma für N = 5:
V2 Vz V2 V2 V2
V4 V4 V4 V4 V4
P PPPPPPP P P
F9 8 7 6 5 4 3 2 1 0
Es ist festzustellen, daß in jedem Additions zyklus eine Resultatziffer
erzeugt wird, nämlich in jeder einzelnen Addition die Summenziffer, die der niedrigsten Stelle des zu addierenden Teilproduktes entspricht.
Jedes Teilprodukt a. · B besteht aus einer Anzahl sogenannter Teilproduktbits
.
(D
109885/1462
welche durch eine binäre Und-Verknüpfung der tatsächlichen a- und b-Bits
erhalten wird.
Im erfindungs gemäßen Multiplizier werk besteht jede gemäß dem obigen
Alorithmus durch Teilprodukt-Akkumulation erzeugte Summe aus zwei Bits für jede Ziffernstelle«, Diese sogenannten Teilsummenbits und Teil
übertragsbits sind wie folgt definiert:
psi,j >ppi,j ® psi+i, j-i
=Maj f(ppij), (psi+lhl), (P% .J (3)
worin @ die binäre Modulo-Zwei-Summe bedeutet und die Maj-Funktion
eine Schwellwertfunktion ist, die den Wert "1" hat, wenn wenigstens zwei der drei Eingangsbits "1" sind, ansonsten aber den Wert "0" hat.
In den dargestellten Beziehungen geben ferner j die Zahl der tatsächlichen
Zyklen und i die Bitstelle in dem zu addierenden Teilprodukt an.
Aus den Gleichungen (2) und (3) ist ersichtlich, daß die zwei Ausgangsbite
ps. . und pe. . von der Bitposition i bei der Akkumulation des Teil-Produktes
j eine Funktion von drei Bits sind, nämlich einem Teilproduktbit
pp. . vom jeweiligen Zyklus und der jeweiligen Bitposition, einem
l»3
109885/1462
Teilsummenbit ps. . . . von der nächsthöheren Bitstelle des voraus -
l+l, J-I
gehenden Zyklus und einem Teilübertragsbit pe. . von der jeweiligen
1J J-J-
Bitstelle des vorausgehenden Zyklus. Es ist zu beobachten, daß die Überträge
in jeder Akkumulation nicht bis zu den ,Endstellen weitergeleitet werden, sondern zusammen mit den Teilsummenbits als Eingangsbits
bei der Akkumulation des nächsten Teilproduktes behandelt werden. In der niedrigsten Ziffernstelle im Teilprodukt ist das Teilsummenbit ps
" gleich der Resultatziffer für diese Ziffernstelle. In jedem Zyklus wird
daher ein Resultatbit erzeugt. Nach N Zyklen sind N Teilprodukte akkumuliert
und N Resultatbits gebildet. Es sind daraufhin N weitere Zyklen notwendig, um die Überträge zu bearbeiten.
Unter Bezugnahme auf Fig. 1 wird nun die Ausführungsform eines Multiplizierwerkes
für vier Operandenziffernstellen und acht Resultatziffernstellen
beschrieben. Das Multiplizierwerk besteht aus einer Anordnung } von untereinander gleichen Zellen 1, die in Reihen und Spalten geordnet
und in einheitlicher Weise untereinander verbunden sind. Die Zellen bilden
so eine Matrix, Jede der Zellen ist in der Lage, die oben beschriebenen Funktionen (1), (2) und (3) für eine Ziffernstelle zu erfüllen. Der
Multiplikand B wird der Matrix von links in Zeilenrichtung über die Leitungen b , b]S b und b zugeführt. Die MuItipikandenziffern breiten
sich von links nach rechts in der Matrix aus und werden mit den Ziffern des Multiplikators A kombiniert, die über Spaltenleitungen a , a ,
10988S/U62
a und a zugeführt werden. Die Resultatbits erscheinen auf Resultatleitungen
p0, ρχ, .... p?.
Jede der Zellen 1, die in Fig. 1 nur schematisch dargestellt sind, enthält
drei Speicherelemente 2, 3 und 4 zur zeitweisen Speicherung eines b-Bits, eines pc-Bits und eines ps-Bits. Jede Zelle enthält weiterhin
eine logische Schaltung 5, die zur Kombination der in den Speicherelementen
2, 3 und 4 gespeicherten Bits sowie eines a-Bit-Signales vom
zugeordneten Spaltenleiter a bis a dient. Die logische Schaltung 5 ist
so aufgebaut, daß sie sich in Abhängigkeit von den Eingangs Signalen innerhalb einer bestimmten Stabilisierungsperiode auf einen Verknüpfungs zustand
entsprechend dem Inhalt der Speicherelemente 2, 3 und 4 und dem Signal auf der a-Leitung einstellt.
Das beschriebene Multiplizierwerk arbeitet synchron, d.h. den Zellen
1 werden Taktimpulse aus einer gemeinsamen Impulsquelle zugeführt.
Die Anordnung kann jedoch auch für eine asynchrone Arbeitsweise ausgelegt werden, ohne daß dadurch der Rahmen der vorliegenden Erfindung
verlassen wird. Der Einfachheit halber wurden in Fig. 1 die Taktsignalleitungen
nicht dargestellt. Die periodisch auftretenden Taktimpulse werden, ebenfalls nicht dargestellt, den Tor schaltungen zugeführt, die in die
Eingangsleitungen der Zellen 1 geschaltet sind.
Nachfolgend wird die Arbeitsweise des Multiplizierwerkes von Fig. 1
109885/U62
anhand der Multiplikation der Operanden A1, B beschrieben. Die Bits
b , b , b und b. des Operanden B werden in die b-Speicherelemente
2 der ersten Spalte zur Zeit des ersten Taktimpulses eingeschrieben. Gleichzeitig wird ein Signal auf Leitung a , das das Bit der niedrigsten
Ziffernstelle des Operanden A darstellt, allen Zellen der ersten Spalte
zugeführt. Die logischen Schaltungen 5 der Zellen 1 in der ersten Spal-
»te multiplizieren jedes der Bits b , b" , b und b mit dem Bit a und
UXwO U
addieren die so erzeugten Teilproduktbits pp zum Inhalt des ps-Speicher elementes
3 und des pc-Speicherelementes 4, so daß neue ps- und pc-Bits an den Ausgängen der logischen Schaltungen 5 erhalten werden. Die
in den Speicherelementen 3 und 4 der ersten Spalte der Matrix von Fig.
1 enthaltenen Bits sind alle 0, so daß die Teilproduktbits pp aus der ersten Spalte unverändert zu der ρs-Ausgangsleitung 8 der logischen
Schaltungen 5 übertragen werden. Das ps-Bit der niedrigsten Bitstelle wird zum Resultatausgang ρ gebracht. Bei Auftreten des zweiten Taktimpulses werden die Signale auf den Ausgangsleitungen 6, 7 und 8 der
Zellen 1 in der ersten Spalte zu den Speicherelementen 2, 3 und 4 der
zweiten Spalte übertragen. Gleichzeitig wird das Bit a. des Multiplikators
A. dem zweiten Spaltenleiter zugeführt, worauf wiederum in der beschriebenen Weise eine Multiplikation und eine Akkumulation ausgeführt
werden. Am Resultatausgang ρ wird daraufhin ein zweites Resultatbit
erzeugt. Zur Zeit des dritten und vierten Taktimpulses werden die Teilprodukte a · B1 und a · B. in gleicher Weise in der dritten
109885/1462
- Ii -
und vierten Spalte akkumuliert. Die Binär zahl B1 ist nun mit allen Ziffern
des Multiplikators A multipliziert worden, -wobei die Summe der
vier Teilprodukte gebildet worden ist. Diese Summe hat jedoch noch nicht ihre vollständige Form. Die Summenbits der vier niedrigsten Ziffernstellen
sind zwar bereits in ihrer endgültigen Form auf den Leitungen Pn>
P1) P9 und P eingestellt, aber der höherstellige Teil der Summe
vj J. Cd
S ...
liegt noch in Form von Teilsummenbits und Teilübertragsbits vor. In
vier -weiteren Zyklen werden diese Bits durch die vier letzten Spalten
geführt. Hierbei breiten sich die Überträge über die höheren Ziffernstellen aus, und es wird jeweils ein Resultatbit in jedem Zyklus gebildet.
Nach insgesamt acht Zyklen stehen somit acht Resultatbits auf den Ausgangsleitungen
ρ bis ρ zur Verfügung.
Aus Fig. 1 ist ersichtlich, daß sich die Zahl der Zellen 1 in den vier
rechten Spalten stufenweise verringert. Dies rührt daher, daß die bearbeiteten
Bits in jedem Zyklus um eine Stelle verschoben werden und daß (
keine neuen Teilproduktbits in den letzten vier Zyklen erzeugt werden. In den höhe rs te Hi gen Bitpositionen erscheinen daher keine weiteren Bits,
wodurch die Zellen in diesen Positionen wegfallen können.
Aus dem vorhergehenden ist zu ersehen, daß zur gleichen Zeit jeweils
nur eine Spalte der Matrix wirksam ist. Wenn N die Zeilenzahl der Matrix
ist (irri vorliegenden Falle N=4), hat die Matrix 2 N Spalten. In
109885/1462
jeder dieser Spalten können daher Daten eines bestimmten Datensatzes
verarbeitet werden. Es kann so in jedem Zyklus ein neuer Operand B den Zellen 1 der ersten Spalte zugeführt werden, und 2 N Resultatbits,
die zu 2' N verschiedenen Datensätzen gehören, werden den Resultatleitungen
ρ , ρ ... P7n ·, zugeführt. Auf diese Weise kann die
Verarbeitung eines neuen Datensatzes bereits eingeleitet werden, wenn · k die Verarbeitung eines vorausgehenden Datensatzes in der ersten Kolonne
der Matrix abgeschlossen ist. Es können daher zur gleichen Zeit maximal
acht Datensätze in der Matrix verarbeitet werden, wobei die Resultatbits dieser Datensätze nacheinander von den Resultatleitungen abgenommen
werden können. Die durchschnittliche Multiplikationszeit ist bei einer
derartigen Arbeitsweise gleich der Dauer eines Zyklus. Die Zeit zwischen der Einleitung der Multiplikation mit einem bestimmten Datensatz und
dem Vorliegen aller Resultatbits eines Datensatzes entspricht wie im obigen Beispiel der Dauer von 2 N Zyklen.
In Fig. 2 ist eine der Zellen 1 von Fig. 1 detaillierter dargestellt. Die
bei der Erläuterung der Fig. 2 verwendeten Bezugsziffern entsprechen, soweit gleiche Teile betroffen sind, den Bezugs ziffern von Fig. 1. Zur
Unterscheidung der Stellenordnung werden den Bezugszeichen der ausgangsseitigen
Leitungen Apostroph-Zeichen zugeordnet.
Wenn ein Taktsignal von einer nicht dargestellten Taktsigi Ölquelle der
109885/U62
Leitung 9 zugeführt wird, werden die auf den Leitungen 6, 8 und 7 anliegenden
Aus gangs Signale b, pe und ps von der im Datenfluß vorausgehenden
Zelle über Und-Schaltungen 13 bis 18 zu den Speicherelementen
2, 3 und 4 übertragen. Gleichzeitig mit dem Taktsignal erscheint
ein a-Bit-Signal auf einer Leitung 22. Eine Und-Schaltung 19 und eine
Schwellwertschaltung 20 werden in Abhängigkeit von den binären Speicherelementen
2, 3 und 4 konditioniert, so daß sie auf Signalen 23 und 81 das Teilproduktbit pp und das Teilübertragsbit pe1 anzeigen. Die
Schwellwertschaltung 20 spricht stets dann an, wenn wenigstens zwei seiner drei Eingänge binäre Eins-Signale führen. Unmittelbar nach Vorliegen
der pp- und pc'-Signale auf den Leitungen 23 und 81 wird eine
Schwellwertschaltung 21 konditioniert, um ein Teilsummensignal psf
auf einer Leitung 7r zu erzeugen. Die Schwellwertschaltung 21 ist so
ausgebildet, daß sie stets nur dann ein Ausgangs signal liefert, wenn
der Signalwert aller Eingangsleitungen 1 nicht überschreitet. Während
den mit den Speicherelementen 3 und 4 verbundenen Eingängen und dem
der
an die Leitung 23 angeschlossenen Eingang jeweils Signalwert 1 zugeordnet
ist, hat der an die Leitung 8l angeschlossene Eingang den Signalwert
-2. Auf diese Weise wird am Ausgang der Schaltung 21 stets ein ps-Signal erhalten, das die oben angegebene Gleichung (2) erfüllt.
Mit Erscheinen des ps'-Signals auf Leitung 7« ist der Zyklus beendet.
Wenn daraufhin ein weiterer Taktimpuls auf Leitung 9 erscheint, werden
neue Eingangs signale b, pe, ps über die Leitungen 6 bis 8 den Speicher-
103885/U62
zellen 2 bis 4 zugeführt und in Abhängigkeit von dem Signal a neue
Ausgangs signale ps1 und pe' erzeugt.
Eine maximale Arbeitsgeschwindigkeit der erfindungsgemäßen Einrichtung
wird bei asynchroner Arbeitsweise erhalten. In diesem Falle werden die Funktionen der verschiedenen Zellen nicht durch eine gemeinsame
Taktimpuls quelle gesteuert, sondern jede Zelle enthält eine Steuerschaltung,
welche Signale zur Anzeige des Zustandes der Zelle und zur ' Betätigung der Schaltungselemente in der Zelle erzeugt« Asynchron arbeitende
Zellen, die sich zur Verwendung im Multiplizier werk gemäß
der Erfindung eignen, sind für sich bekannt. Es wird hierzu beispielsweise
auf den Artikel "Antiparallel Control Logic" von J. Goldberg und R.A. Schort in IEEE Transactions on Electronic Computers, Vol. EC 14,
Nr. 3, Juni 1965, Seiten 383 bis 393 Bezug genommen, wo ein Beispiel einer derartigen asynchron arbeitenden Zelle beschrieben wird.
Bei asynchroner Arbeitsweise werden die a-Bits nicht parallel zu allen
Zellen einer Kolonne zugeführt, sondern nur zu der der obersten Reihe angehörenden Zelle der jeweiligen Kolonne. Die a-Bits laufen dann in
dieser Kolonne von Zelle zu Zelle und werden mit dem jeweiligen b-Bit
in jeder Zelle in der Weise verknüpft, wie es vorausgehend für die snychrone Arbeitsweise beschrieben worden ist. Die b-Bits und die ps-
und pc-Bits laufen ebenfalls von Zelle zu Zelle und hierbei stellen die
109885/U62
Steuer schaltungen sicher, daß einer bestimmten Zelle jeweils die richtigen
a-, b-, pe- und ps-Bits zugeführt werden. Eine Zelle (i, *j)
empfängt ein a-Bit von Zelle (i-1, j), ein b-Bit und ein ps-Bit von
Zelle (i, j-1) und ein pc-Bit von Zelle (i+1, j-1). Diese Signale müssen jeweils dem gleichen Datensatz (A, B) angehören. Es ist festzustellen,
daß ein Bit a. zwei Zellen (i, j-1) und (i-1, j-1) durchlaufen
muß, bevor die ps- und pc-Bits für die Zelle (i, j) erzeugt worden sind. J
Dies schließt ein, daß die Zelle (i-1, j-1) einen Zyklus warten muß, bevor
das nächste pc-Bit gebildet werden kann, wodurch nur die Hälfte der
Zellen zur gleichen Zeit wirksam sein kann.
Obgleich die Zahl der Zyklen, die bei asynchroner Arbeitsweise zur Ausführung
einer Multiplikation benötigt werden, annähernd doppelt so groß ist als bei synchroner Arbeitsweise, wird dennoch eine höhere Rechengeschwindigkeit
erzielt, da diese Zyklen viel kürzer sind. Die Hauptbegrenzung
für die Arbeitsgeschwindigkeit der dargestellten Matrix bei
synchroner Arbeitsweise ist die Zeit, die erforderlich ist, um die a-Bits und die Taktimpulse auf alle Zellen innerhalb einar Spalte zu verteilen.
Außerdem kann eine Verstärkung zwischen der Taktimpuls quelle
und den Zellen sowie zwischen den a-Bit-Treibern (nicht gezeigt) und
den Zellen notwendig sein, die eine weitere Verzögerung mit sich bringt.
In Fig. 3 ist eine Abwandlung der in Fig. 1 dargestellten Einrichtung
10988 5/U6 2
gezeigt. Bei der Matrix von Fig. 3 sind gegenüber der Matrix von Fig. 1
fünf zusätzliche Zellen am rechten Matrixrand hinzugefügt, von denen zwei Zellen in der untersten Matrixzeile und eine Zelle in jeder der übrigen
Zeilen hinzugekommen sind. Die Zahl der Zeilen beträgt nach wie vor vier,
die Zahl der Spalten jedoch neun. Allgemeiner ausgedrückt ist bei der Matrix von Fig. 3 die Zeilenzahl N und die Spaltenzahl 2N + 1, Wie bereits erwähnt,
werden die ps-Speicherelemente 4 in der ersten Spalte der Matrix von Fig. nicht benötigt, und ebenso werden die ps-Speicherelemente 4 in der untersten
Matrixzeile nicht verwendet. In der Ausführung von Fig. 3 sind diesen Spei«
cherelementen Eingangsleitungen ps bis ps^ zugeordnet.
Es sei angenommen, daß S eine 2N Bitstellen umfassende Binärzahl der
Form
2N-1
s = ^S> s. χ 2
s = ^S> s. χ 2
ist und A, B ein Paar Binärzahlen sind, die wie in Verbindung mit Fig. 1
beschrieben miteinander zu multiplizieren sind. Zur gleichen Zeit, wenn die Zahl B zu den ^Speicherelementen der ersten. Spalte übertragen werden,
gelangen die N niedrigstelligen Ziffern s , s., .,. sN . der Zahl S über die
Eingangsleitungen ps bis ps,- zu den ps-Speicherelementen 4 in der ersten
Spalte. Wenn die Zahl B von der ersten zur zweiten Spalte übertragen wird, erfolgt eine Zuführung der Ziffer S^ zu dem ps-Speicherelement, welches
sich am Schnittpunkt der untersten Zeile mit der zweiten Spalte befindet,
109885/1462
Im nächsten Zyklus würde dann die Ziffer s der Speicherzelle zugeführt,
die der untersten Zeile und der dritten Spalte angehört usw. Es ist hieraus ersichtlich, daß die Resultatbits, welche auf den Ausgangsleitungen p_ bis
ρ .^j. am oberen Rand der Matrix erscheinen, die Quantität
R is A χ B + S
darstellen. Es können hierbei wiederum mehrere Datensätze A, B, S gleichzeitig
verarbeitet werden, wie oben in Verbindung mit Fig. 1 erläutert
wurde. Die effektive Rechenzeit ist dann bei synchroner Arbeitsweise wiederum ein Zyklus und die Durchlaufzeit eines Operandensatzes durch die
Matrix beträgt 2N Zyklen.
wurde. Die effektive Rechenzeit ist dann bei synchroner Arbeitsweise wiederum ein Zyklus und die Durchlaufzeit eines Operandensatzes durch die
Matrix beträgt 2N Zyklen.
Die Quantität R kann mitunter größer sein als 2 " , welches die obere
Grenze für die Resultatstellenzahl ist. In diesem Falle dient die letzte Zelle
.. N
in jeder Reihe zur Anzeige eines Überlaufes, wenn R größer ist als 2 - 1.
In Fig. 4 ist eine gemäß den Prinzipien vorliegender Erfindung aufgebaute
Einrichtung dargestellt, die zur Berechnung von Produktsummen verwendet werden kann und die sich daher insbesondere zur Ausführung einer Matrixmultiplikation
eignet. Die Einrichtung enthält eine Multiplikationseinheit 24 mit N Zeilen und 2N+1 Spalten. Dabei handelt es sich um ein Multiplizierwerk,
wie es in Fig. 3 dargestellt ist, mit der Ausnahme, daß die unterste
Zelle in Spalte N+2 durch eine Inklusiv-Oder-Schaltung 25 ersetzt wurde.
SW 9-66.001
109885/1462
Die ersten N«l Resultatausgangsleitungen prt bis ρ τ „ sind mit je einem
Schieberegister SRn bis SR T o verbunden. Diese Schieberegister werden
synchron mit dem Multiplizierwerk 24 betätigt. Das Schieberegister SR
umfaßt N«=l Stufen. Das Schieberegister SR umfaßt N-2 Stufen usw., so daß
die ersten N Resultat ziffern, die bei Verarbeitung eines bestimmten Datensatzes
A, B erhalten werden, an den Ausgängen ρ· bis ρ* o der Schiebe-
U ΧΜ — Δ
register SRn Ms SRAT auftreten und zwar gleichzeitig mit der Resultatziffer
auf dem Ausgang p^ der Multipliziereinrichtung 24, Dies geschieht N
Zyklen nach der Einleitung der Verarbeitung des Datensatzes A, B. Die Schieberegisterausgänge ρ* bis ρ* und die Ausgänge pN bis ρ „ des
Multiplizierwerkes 24 sind zu den Eingangsleitungen ps bis ps„N des Multiplizierwerkes
24 zurückgeführt. Die entsprechenden Verbindungen sind in Fig. 4 der Einfachheit halber weggelassen. Wie bei der Einrichtung von
Fig. 3 wird auch hier die letzte Zelle einer jeden Reihe zur Anzeige einer Überlaufbedingung benutzt mit Ausnahme der untersten Zeile, wo die letzte
Zelle durch die Inklusiv-Oder-Schaltung 25 ersetzt ist.
Im folgenden wird die Arbeitsweise der Einrichtung von Fig. 4 bei der Durchführung
einer Matrixmultiplikation erläutert. Es sei angenommen, daß /A 7 und /Bf . zwei Matrizen sind, welche zu multiplizieren sind;
L J mn L J nk ^
L J mk L J mn LJnk
Bekanntlich ist ein Element c in der Produktmatrix /Cl , wie folgt
rs I- J mk
•definiert}
10988571462
c = a ., · b., +a „ · bo --»a -. · b. - « + a · b
rs r, 1 1, s r, 2 2, s r, 3 js r,n n, s
Wenn nun die Datensätze
K, V \ .'S (ar, 2= b2, .»i - - -
<ar, j- \ s>
- " "
zu dem Muli tpli zierwerk 24 in einer solchen Weise zugeführt werden, daß
die Multiplikation der einzelnen Datensätze im Ausdruck (6) in der ersten Spalte der Matrix 24 jeweils zu Zeitpunkten eingeleitet wird, die um N Zyklen
gelangen "
auseinander liegen,/die Resultatziffern eines Produktes a . 1 « b· -t ge"·
- zu den Eingängen ps bis p_ zu den gleichen Zeiten, in denen die
Ziffern des Datensatzes (a .; b. ) den entsprechenden Spalten der Matrix
24 zur Ausführung einer Multiplikation zugeführt werden, so daß eine Produktensumme
entsprechend der Beziehung (5) errechnet wird.
Zur gleichen Zeit können N-I weitere c«Elemente berechnet werden. Die
c-Elemente werden jeweils somit in Gruppen von N Elementen errechnet,
wobei η Rechenschleifen innerhalb einer jeden Gruppe gebildet werden, d.h.
für jedes ceElement werden η Produkte gebildet und akkumuliert. Wenn man
eine reihenweise Erzeugung der c-Elemente in der Folge*
1,1 1,2 1, k' 2, 1 1,] m, k
wünscht, werden N Datensätze dem Eingang des Multiplizierwerkes 24 in
der j*ten Schleife für eine Gruppe
cr, sJ Cr, s+1 " " " Cr, k: cr+l, 1 °r+l, N-k+s-1
zugeführt, worin N k-s+1 ist
109885/U62
(a
r+l,f ^,
N Datensätze, die zu N aufeinanderfolgenden c~Elementen
gehören
Nach der Einführung der N Datensätze wird der Spaltenindex für a und der
Zeilenindex für b, die stets identisch sind, um 1 erhöh!, Dies ist anhand
des allerletzten Datensatzes dargestellt. Damit wird eine neue Rechenschleife
eingeleitet, in welcher nun die Produktbits aus dem vorherigen N Datensätzen zu den ps-Eingängen zurückgeführt werden und zu den N neuen Produkten
addiert werden. Wenn η Schleifen ausgeführt worden sind, wird wiederum die
Berechnung der η folgenden c«Elemente eingeleitet.
Es ist ersichtlich, daß die c-Elemente/n Gruppen von N Elementen erzeugt
werden mit der Ausnahme der letzten Gruppe in dem Fall, daß die Gesamt,
zahl der cElemente m . k durch N nicht teilbar ist. Die Gesamtzahl der
Elemente m · k kann durch
m · k = ρ · N + q
109885/U62 .
ausgedrückt werden, worin ρ und q positive ganzzahlige Werte sind und
q ^ N ist. Die Rechenzeit für alle Elemente beträgt dann
für q = 0 T = m . k . η + 2N Zyklen
für 1 j 0 T= (ρ+ 1)ηΝ + 2N Zyklen,
109885/U62
Claims (7)
1. Binäres Multiplizierwerk zur parallelen Multiplikation eines N-stelligen
Multiplikanden mit einem N-stelligen Multiplikator, dadurch gekennzeichnet, daß eine Matrix untereinander gleicher Multi plika ti ons-Additionszellen
(1) vorgesehen ist, die aus N den Multiplikanden-Bitstellen zugeordneten Zeilen und aus 2N Spalten besteht, von denen die
N ersten den Multiplikatorbitstellen zugeordnet sind und die übrigen eine zur.Übertragsverarbeitung dienende, sich stufenförmig verringernde
Anzahl Zellen aufweisen, daß jede der Zellen eine Schaltung (5) zur Bildung eines Teilproduktes aus einem Multiplikandenbit und einem
Multiplikatorbit und zur Addition dieses Teilproduktes zur einem Teilresultatbit
und einem Teilresultatübertragsbit aus einer vorausgehenden Zelle enthält, daß jede der Zellen ferner binäre Zwischenspeicher (2,
3, 4) für ein Multiplikandenbit, für ein Teilsummenbit und für ein Teilsummenübertragsbit
enthält, daß eine Taktsteuerschaltung vorgesehen ist, die die Multiplikandenbits den Zellen der ersten Spalte und die
Multiplikatorbits den Zellen der N ersten Zeilen zuführt und die eine Übertragung der Resultate aus den Zellen einer jeden Spalte zu den
Zellen der nächsten Spalte über Verbindungsleitungen (6, 7, 8) steuert, von denen die Multiplikandenleitungen (6) und die Übertragsleitungen
(8) direkt, die, Summenleitungen (7) aber jeweils um eine Zeile versetzt von Matrixspalte zu Matrixspalte verlaufen, und daß das Resultat von
von den Summenleitungen der ersten Zeile erhalten wird,
109885/U62
2. Multipli zierwerk nach Anspruch 1, dadurch gekennzeichnet, daß
die Matrix durch die Taktsteuerschaltung nach der Übertragung der Multiplikandenbits und der Teilsummenbits sowie Teilsummentibertragsbits
von der ersten Spalte zur zweiten Spalte N neue Multiplikandenbits
zugeführt erhält, so daß mehrere Multiplikandensätze zeitlich überlappt mit einem Satz Mulitplikatorbits multipliziert werden.
3. Multiplizierwerk nach Anspruch 1 oder 2, dadurch gekennzeichnet,
daß die Matrix zum Zwecke der parallelen Addition einer weiteren binären Größe zu dem zu bildenden Produkt zusätzliche Eingangsleitungen
(ps bis ps„) aufweist, die an die Teilsummenzwischenspeicher
(4) der Zellen (1) in der ersten Spalte und, bei einer N überschreitenden Stellenzahl dieser Größe, auch in der letzten Zeile angeschlossen sind,
und daß die Bits der zu addierenden Größe parallel mit den Multiplikandenbits
der Matrix zugeführt werden.
4. Multiplizierwerk nach Anspruch 3, dadurch gekennzeichnet, daß die
zu addierende Größe die Produktstelleuzahl 2N aufweist und daß die N niedrigstelligen Bits dieser Größe den Teilsummenzwisehenspeiehern
(4) in den Zellen der ersten Spalte der Matrix und die N hochstelligen
Bits den Teilsummenzwisehenspeichern (4) in den Zellen der letzten
(hochstelligen) Zeil« der Matrix zugeführt werden.
5. Multiplizierwerk nach einem oder mehreren der Ansprüche 1 bis 4,
dadurch gekennzeichnet, daß die Resultatausgangsleitungen (pn bis p9TT)
109885/U62
der Matrix zum Zwecke der Errechnung von Produktensummen A B + AB + .. . über das sequentielle Auftreten der Resultatbits
ί £
auf den Resultatausgangsleitungen kompensierende Verzögerungsleitungen (SR) an die zusätzlichen Eingangsleitungen (ps bis ps„,T)
rückgekoppelt sind.
6. Multiplizierwerk nach 5, dadurch gekennzeichnet, daß nur den Resultatausgangsleitungen der N ersten Spalten Verzögerungsleitungen
(SR) zugeordnet sind, während die Ausgangsleitungen der übrigen N
Spalten direkt an die zusätzlichen Eingangsleitungen (ps^ bis p
der Teilsummenspeicher (4) in den Zellen der letzten (hochstelligen) - Zeile zurückgeführt sind.
7. Multiplizierwerk nach den Ansprüchen 5 oder 6, dadurch gekennzeichnet,
daß als Verzögerungsleitungen Schieberegister (SR bis SR ) unterschiedlicher
Stufenzahl verwendet werden, die synchron mit den Wertübertragungen von Spalte zu Spalte durch die Takt Steuer schaltung weitergeschaltet
werden.
109885/U62
Leerseite
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE1020367A SE308413B (de) | 1967-06-30 | 1967-06-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE1774483A1 true DE1774483A1 (de) | 1972-01-27 |
Family
ID=20291890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19681774483 Pending DE1774483A1 (de) | 1967-06-30 | 1968-06-29 | Binaeres Multiplizierwerk |
Country Status (4)
Country | Link |
---|---|
DE (1) | DE1774483A1 (de) |
FR (1) | FR1575934A (de) |
GB (1) | GB1216559A (de) |
SE (1) | SE308413B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2936763A1 (de) * | 1978-09-15 | 1980-03-27 | Philips Nv | Multiplikationsanordnung fuer dualzahlen in zweikomplementdarstellung |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE8202741L (sv) * | 1981-05-11 | 1982-11-12 | Rca Corp | Kompatibelt, transkodningsbart och hierarkaliskt digitaltelevisionssystem |
EP0086904B1 (de) * | 1982-02-18 | 1985-11-21 | Deutsche ITT Industries GmbH | Digitale Parallel-Rechenschaltung für positive und negative Binärzahlen |
US20210117157A1 (en) * | 2020-12-24 | 2021-04-22 | Martin Langhammer | Systems and Methods for Low Latency Modular Multiplication |
-
1967
- 1967-06-30 SE SE1020367A patent/SE308413B/xx unknown
-
1968
- 1968-06-04 FR FR1575934D patent/FR1575934A/fr not_active Expired
- 1968-06-20 GB GB2942568A patent/GB1216559A/en not_active Expired
- 1968-06-29 DE DE19681774483 patent/DE1774483A1/de active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2936763A1 (de) * | 1978-09-15 | 1980-03-27 | Philips Nv | Multiplikationsanordnung fuer dualzahlen in zweikomplementdarstellung |
Also Published As
Publication number | Publication date |
---|---|
FR1575934A (de) | 1969-07-25 |
SE308413B (de) | 1969-02-10 |
GB1216559A (en) | 1970-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3854321T2 (de) | Populationszählung in Rechnersystemen. | |
DE3901995C2 (de) | ||
DE19758079A1 (de) | Verfahren und Vorrichtung zur Galoisfeld-Multiplikation | |
DE3700991A1 (de) | Digitaler uebertragsvorgriffsaddierer | |
DE1549476B2 (de) | Anordnung zur ausfuehrung von divisionen | |
DE2803425A1 (de) | Digitaleinrichtung zur ermittlung des wertes von komplexen arithmetischen ausdruecken | |
DE2913327A1 (de) | Multiplizierer fuer binaerdatenwoerter | |
DE4101004A1 (de) | Paralleler multiplizierer mit sprungfeld und modifiziertem wallac-baum | |
DE2034841B2 (de) | Matrixanordnung für Digital Rechenanlage | |
DE1774483A1 (de) | Binaeres Multiplizierwerk | |
EP0090298A1 (de) | In MOS-Technik integrierter schneller Multiplizierer | |
DE2017132A1 (de) | Binarer Parallel Addierer | |
EP0333884B1 (de) | CMOS-Parallel-Serien-Multiplizierschaltung sowie deren Multiplizier- und Addierstufen | |
DE2046685A1 (de) | Einrichtung zum Konvertieren einer Dezimalzahl in eine Binarzahl | |
DE1094020B (de) | Periodisch arbeitende numerische Rechenmaschine | |
DE1094490B (de) | Verfahren und Anordnung zur Umwandlung von Binaerzahlen in Dezimalzahlen und umgekehrt | |
EP0752130B1 (de) | Multiplizierer mit geringer laufzeit | |
DE69209826T2 (de) | Schnelle Addierkette | |
EP0424410B1 (de) | Multiplizierer | |
DE1524156B2 (de) | Digitale elektronische recheneinrichtung | |
DE1181459B (de) | Multiplikationsschaltung fuer elektronische Zifferrechenmaschinen | |
DE10139099C2 (de) | Carry-Ripple Addierer | |
DE19635111A1 (de) | Multiplizierer | |
DE2902488C2 (de) | ||
DE1524177C (de) | Multiplikationseinrichtung zur teilweise parallelen Multiplikation binärer Faktoren |