DE1774483A1 - Binaeres Multiplizierwerk - Google Patents

Binaeres Multiplizierwerk

Info

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
Application number
DE19681774483
Other languages
English (en)
Inventor
Dines Bjoerner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE1774483A1 publication Critical patent/DE1774483A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5306Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products
    • G06F7/5312Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products using carry save adders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining

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
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:
Vo Vo Vo Vo Vo Vl Vl Vl Vl Vl
V2 Vz V2 V2 V2
Vs Vs Vs Vs Vs
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
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.
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)

- 22 - 27. Juni 1968 km» oc PATENTANSPRÜCHE
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
DE19681774483 1967-06-30 1968-06-29 Binaeres Multiplizierwerk Pending DE1774483A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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