DE1956209B2 - Multipliziervorrichtung - Google Patents

Multipliziervorrichtung

Info

Publication number
DE1956209B2
DE1956209B2 DE1956209A DE1956209A DE1956209B2 DE 1956209 B2 DE1956209 B2 DE 1956209B2 DE 1956209 A DE1956209 A DE 1956209A DE 1956209 A DE1956209 A DE 1956209A DE 1956209 B2 DE1956209 B2 DE 1956209B2
Authority
DE
Germany
Prior art keywords
bit
squaring
circuit
operands
operand
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.)
Granted
Application number
DE1956209A
Other languages
English (en)
Other versions
DE1956209C3 (de
DE1956209A1 (de
Inventor
William A. Hatboro Pa. Stampler (V.St.A.)
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.)
Unisys Corp
Original Assignee
Burroughs 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 Burroughs Corp filed Critical Burroughs Corp
Publication of DE1956209A1 publication Critical patent/DE1956209A1/de
Publication of DE1956209B2 publication Critical patent/DE1956209B2/de
Application granted granted Critical
Publication of DE1956209C3 publication Critical patent/DE1956209C3/de
Expired 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/5235Multiplying only using indirect methods, e.g. quarter square method, via logarithmic domain
    • 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/552Powers or roots, e.g. Pythagorean sums
    • 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/552Indexing scheme relating to groups G06F7/552 - G06F7/5525
    • G06F2207/5523Calculates a power, e.g. the square, of a number or a function, e.g. polynomials

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

IO
15
20
25
J5
gekennzeichnet durch
a) eine arithmetische Einheit zum Aufnehmen der beiden Operanden, die mindestens Additionen ausführen kann,
b) mindestens eine nachgeschaltete Quadrierschaltung mit
bl) einem Eingangsregister zum Aufnehmen einer zu quadrierenden Binärzahl,
b2) einer Anzahl daran angeschlossener UND-Glieder zum Bilden der Partialprodukte aus j&i:m Bit der Binärzahl mit jeweils einem von allen Bits derselben,
b3) einer auf die UND-Glieder folgenden Vereinfachungsschaltung, die so ausgebildet ist daß jeweils nur ein aus ungleichen Faktoren gebildetes Partialprodukt um eine Stelle nach links verschoben dem Addierer zugeführt wird und daß an Stelle der aus gleichen Faktoren gebildeten Partialprodukte lediglich der betreffende Faktor an die (2n- l)te Stelle des Addierers geführt wird, wobei η die Stel1 ? des Faktors im Operanden ist (F i g. 4), M
b4) einem an die Vereinfachungsschaltung angeschlossenen Addierer und
b5) einem Ausgangsregister zum Speichern der Teilergebnisse aus der /ereinfachungsschaltung.
2. Multipliziervorrichtung nach Anspruch 1, dadurch gekennzeichnet daß die arithmetische Einheit (13 — 10) die Summe der beiden Operanden bildet und daß diese Summe der nachgesschalteten Quadrierschaltung (13 —12) zugeleitet wird, daß eine erste Subtrahiereinrichtung (13 — 14) vorgesehen ^St, die den kleineren von dem größeren Operanden subtrahiert, daß eine zweite Quadrierschaltung (13—16) an diese Subtrahiereinrichtung angeschal- v·, tet ist und daß eine Subtrahiereinrichtung (13— 18) zum Subtrahieren der Ausgangswerte der Quadrierschaltungen vorgesehen ist sowie eine Dividiereinrichtung (13 — 20) zum Dividieren der gebildeten Differenz durch vier (Fig. 13). w
3. Multipliziervorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die arithmetische Einheit die Summe der beiden Operanden bildet und daß diese Summe der nachgeschalteten Quadrierschaltung zugeleitet wird, daß eine zweite Multipli- ->-> ziervorrichtung nach Anspruch 1 zum Quadrieren des ersten Operanden und eine dritte Multipliziervorrichtung nach Anspruch I zum Quadrieren des zweiten Operanden vorgesehen ist, daß auf diese beiden Multipliziervorrichtungen eine zweite Ad- &o diereinrichtung zum Addieren der Quadratwerte folgt, daß an die erste Multipliziervorrichtung und die zweite Addiereinrichtung eine Subtrahiereinrichtung angeschaltet ist zum Bilden der Differenz der Ausgangswerte und daß auf diese Subtrahiereinrichtung eine Dividiereinrichtung folgt zum Teilen des Ausgangswertes durch zwei.
Bei einer bekannten derartigen Multipliziervorrichtung (US-PS 31 91 017) sind für die Multiplikation eine Vielzahl von Einzeloperationen erforderlich, wobei der Schaltungsaufwand mit zunehmender Wortlänge der Operanden rasch ansteigt
Der Erfindung Hegt die Aufgabe zugrunde, eine digitale Multipliziervorrichtung der eingangs genannten Art zu schaffen, welche eine Vereinfachung der Berechnung und damit einen geringeren Schaltungsaufwand ermöglicht
Die Lösung dieser Aufgabe zeichnet sich aus durch folgende Merkmale:
a) eine arithmetische Einheit zum Aufnehmen der beiden Operanden, die mindestens Additionen ausführen kann,
b) durch mindestens eine nachgeschaltete Quadrierschaltung mit
bl) einem Eingangsregister zum Aufnehmen einer zu quadrierenden Binärzahl,
b2) einer Anzahl daran angeschlossener UND-Glieder zum Bilden der Partialprodukte aus jedem Bit der Binärzahl mit jeweils einem von allen Bits derselben,
b3) einer auf die UND-Glieder folgenden Vereinfachungsschaltung, die so ausgebildet ist daß jeweils nur ein aus ungleichen Faktoren gebildetes Partiaiprodukt um eine Stelle nach links verschoben dem Addierer zugeführt wird und daß an Stelle der aus gleichen Faktoren gebildeten Partialprodukte lediglich der betreffende Faktor an die (2n-1)te Stelle des Addierers geführt wird, wobei π die Stelle des Faktors im Operanden ist
b4) einem an die Vereinfachungsschaltung angeschlossenen Addierer und
b5) einem Ausgangsregister zum Speichern der Teilergebnisse aus der Vereinfachungsschaltung.
Eine besondere Ausführungsform ist darin zu sehen, daß die arithmetische Einheit die Summe der beiden Operanden bildet und daß diese Summe der nachgpschalteten QuadrVerschaltung zugeleitet wird, daß eine erste Subtrahiereinrichtung vorgesehen ist die den kleineren von dem größeren Operanden subtrahiert, daß eine zweite Quadrierschaltung an diese Subtrahieroinrichtung angeschaltet ist und daß eine Subtrahiereinrichtung zum Subtrahieren der Ausgangswerte der Quadrierschaltungen vorgesehen ist sowie eine Dividiereinrichtung zum Dividieren der gebildeten Differenz durch vier.
Eine andere Ausführungsform zeichnet sich dadurch aus, daß die arithmetische Einheit die Summe der beiden Operanden bildet und daß diese Summe der nachgeschalteten Quadrierschaltung zugeleitet wird, daß eine zweite Multipliziervorrichtung der erfindungsgemäßen Art zum Quadrieren des ersten Operanden und eine dritte Multipliziervorrichtung der erfindungsgemäßen Art zum Quadrieren des zweiten Operanden vorgesehen ist, daß auf diese beiden Multipliziervorrichtungen eine zweite Addiereinrichtung zum Addieren der Quadratwerte folgt, daß an die erste Multipliziervorrichtung und an die zweite Addiereinrichtung eine
Subtrahiereinrichtung angeschaltet ist zum Bilden der Differenz der Ausgangswerte und daß auf diese Subtrahiereinrichtung eine Dividiereinrichtung folgt zum Teilen des Ausgangswertes durch zwei.
Ausführungsbeispiele der Erfindung sind im folgenden anhand schematischer Zeichnungen ergänzend beschrieben.
F i g. 1 veranschaulicht eine Anzahl Verfahren zum Multiplizieren;
F i g. 2 zeigt ein bekanntes System zum Multiplizieren von zwei 3-Bit-Operanden;
F ι g. 3 zeigt das System zum Multiplizieren von zwei 3-Bit-Operanden mittels Quadrieren;
F i g. 4 zeigt die Weiterbildung des Systems für eine 10-Bit-Quadrierschaltung;
F i g. 5 ist ein vereinfachtes Schaltbild einer Quadrierschaltung;
F i g. 6a bis 6u zeigen die erforderlichen Schaltungskreise für jedes Bit beim Quadrieren eines 10-Bit-Operanden. Die Verknüpfungsglieder für die Ableitung der Partiaiprodukte und der einstufige Addierer sind in diesen Figuren zusammen dargestellt;
F i g. 7a zeigt die übliche Übertragweiter'eitung bei einem 10-Bit-Einstufenaddierer;
F i g. 7 b zeigt die Abkürzung der längsten Übertragketie in demselben lO-Bit-Einstufenaddierer;
Fig.8 zeigt ein vereinfachtes Schaltbild einer Multipliziervorrichtung;
Fig.9 zeigt den der Vorrichtung nach Fig.8 entsprechenden Algorithmus;
F i g. 10 zeigt einen abgeänderten Algorithmus;
F i g. 11 zeigt die Schiebeoperation am Eingang der Quadrierschaltung;
Fig. 12 ist ein algorithmisches Diagramm, welches den minimalen Schaltungsaufwand erkennen läßt;
Fig. 13 und 14 sind Blockschaltbilder von Multipliziervorrichtungen.
F i g. 1 zeigt drei verschiedene Verfahren zum Multiplizieren unter Verwendung von logischen Schaltungen, nä.nlich das direkte Verfahren unter Verwendung einer Einstufenmultiplizierschaltung, das direkte Quadrierverfahren mit einer einstufigen Quadrierschaltung und ein Multipliziersystem unter Verwendung einer Quadrierschaltung. Bei letzterem werden die Operanden an eine arithmetische Einheit gegeben zum Addieren und Subtrahieren, bevor sie an die einstufige Quadrierschaltung und den Speicher weitergegeben werden.
Fig. la zeigt ein theoretisches Multiplizierverfahren, bei dem das Produkt direkt aus den Operanden (Multiplikand und Multiplikator) gebildet wird. Wegen der Komplexität der erforderlichen logischen Schaltung hat dieses Verfahren kaum Bedeutung erlangt. Beim Multiplizieren von zwei 20-Bit-Wörtern sind aufgrund der 220 möglichen Kombinationen jedes Operanden 1 048 576 Bit-Anordnungen in den einzelnen Operanden möglich. Die Gesamtzahl der Kombinationen, die multipliziert werden müßten, wäre dann 2*° entsprechend etwa to12.
Fig. Ib zeigt ein Quadrierverfahren mit einem verringerten Schaltungsaufwand, da die beiden Operanden identisch sind. Das Quadrieren eines 20-Bit-Wortes erfordert dann lediglich 1 048 576 Eingangsmöglichkeiten, und die Verringerung der Komplexität der logischen Schaltung ist beachtlich. Gemäß Fig. Ic werden die beiden Operanden in der arithmetischen Einheit so behalten, GiQ die logische Schaltung zwei Quadrieroperationen ausführen muß und anschließend eine Subtraktion erfolgt, wobei die Vorteile der logischen Einfachheit des Quadrierens in allen Fällen erhalten bleiben, auch wenn die Operanden nicht gleich sind.
Um die Größenordnung der Vereinfachung zu verstehen, die sich mit dem Verfahren nach der Erfindung erreichen läßt, sei die Multiplikation von zwei 3-Bit-Wörtern anhand des linken Teils von Fig.2 gezeigt Die erforderliche logische Schaltung zur direkten Multiplikation ist auf der rechten Seite von F i g. 2 dargestellt F i g. 3 zeigt die Multiplikation eines 3-Bit-Wortes (a, b und c) mit sich selbst (Quadrieren) und die dazu erforderliche logische Schaltung. Man erkennt, daß das nicht vereinfachte Produkt ist:
(a2)2* + 2 ab{23) + {2 ac+ V)22 + (2 bcJP +
Dieser Ausdruck läßt sich gemäß den folgenden Überlegungen vereinfachen:
Quadrieren einer Binürzahl
jedes Bit λ* ist gemäß den bJnärarithmctischcn Gesetzen gleich x, wenn η eine positive Zahl ungleich Null ist Zum Beispiel:
0< = 0; 02 = 0; (P = 0; etc. 1- = 1; P= 1; P = ljetc.
Daher ist bei dem Beispiel nach F i g. 3 a2 = a, b2 = öunde* = c.
Das Multiplizieren mit zwei wird gewöhnlich ausgeführt durch Stellenverschiebung nach links um 1 Bit. Daher ist:
(2 abJP = (ab)2*\ (2 acjl2 = (ac/23; (2 bc}?> = (bcjl1. Vereinfachtes Produkt
Gemäß F i g. 3 führen die beiden obigen Überlegungen zu dem folgenden vereinfachten Produkt:
(a + abp* f (acJP + (b + bcfi? + (0)2' + (CpP.
Wenn gemäß dem obigen Beispiel irgendeine ganze Bir.ärzahl quadriert wird, ist das Bit O1 immer gleich Null, und es ist nur eine einfache logische Schaltung erforderlich, um diesen Teil des Produktes zu bilden. Da c2 - c ist in dem Beispiel nach F i g. 3, ist das niederrangigste Bit (2°) des Produktes immer gleich demselben Bit des Operanden. Das Quadrieren einer ungeraden Zahl erzeugt eine gerade Zahl. Das Quadrieren einer geraden Zahl erzeugt ebenfalls eine gerade Zahl. Es ist daher ebenfalls nur ein geringfügiger Schaltaufwand erforderlich, um das Bit 2° des Operanden in das Bit 2° des Produktes zu übertragen.
Unter Berücksichtigung der obigen Vereinfachungen läßt sich zum Quadrieren eines 3-Bit-Wortes die im rechten Teil von F i g. 3 dargestellte Schaltung verwen den. Hierbei wird das Register zum Speichern des Produktes gelöscht (auf Null gestellt), bevor das Produkt hineingegeben wird. F i g. 3 zeigt, daß die Quadrierlogik lediglich acht Verknüpfungsglieder erfordert während die Multipltzierlcgik nach F i g. 2 neun Verknüpfungs glieder sowie drei Volladdierer und drei Halbaddierer erfordert. Die dargestellte Quadrierlogik ist nicht nur wesentlich einfacher als die Multipiizierlogik, sondern auch schneller. Man erkennt, daß bei dem Ausführungsbeispiel nach Fig.3 keine Übertragweiterleitung erforderlich ist.
Die folgende Tabelle zeigt, wie ein Produkt von zwei unterschiedlichen Operanden sich durch die Differenz zweier Quadrate erzielen läßt
Tabelle A
Operanden
(a) X (b)
Übliches Produkt
Gleichwertiges Produkt
20X20
21X19
22X18
23X17
24X16
25X15
26X14
27X13
28X12
29X11
30X10
31X9
32X8
33X7
34X6
35X5
35X4
37X3
38X2
39X1
40X0
41X(-1)
42X(-2)
400 399 396 391
384 375 364 351 336 319 300 279 256 231 204 175 144 111 76 39 0
-41 -84
400-0 400-1 400-4 400-9 400 400 400 400 400 400 400- 400-121 400 400-169 400 400-225 400-256 400 400 400-361 400 400 400-484
Tabelle B Übliches Gleichwertiges
Operanden Produkt Produkt
(a)X(b) 90,25 90,25-0
9,5X9,5 90 90,25-0,25
9X10 88 90,25 - 2,25
8X11 84 90,25-6,25
7X12 78 90,25 -12,25
6X13 70 90,25-20,25
5X14 60 90,25-30,25
4X15 48 90,25-42,25
3X16 34 90,25 - 56,25
2X17 18 90,25-72,25
1X18 0 90,25-90,25
0X19 -20 90,25-110,25
-1X20 -42 90,25 -132,25
-2X21 -66 90.25 -156,25
-3X22
Die linke Spalte zeigt die Operanden, deren arithmetisches Mittel 20 ist (ι. B. = 2o) . Die nächste Spalte zeigt das übliche Produkt jedes Operanden. Die letzte Spalte zeigt ein gleichwertiges Produkt (z. B. 364 = 400 - 36). Die Zahl 400 ist das Quadrat des Durchschnittswertes der Operanden, und die von 400 subtrahierten Ziffern sind gleich dem Quadrat der halben Differenz der Operanden, in dem Beispiel 36 = () . Die Tabelle zeigt, daß das Verfahren der Differenzbildung aus zwei Quadratwerten das übliche Multiplikationsverfahren ersetzen kann. Tabelle A gilt für den Fall, daß beide Operanden entweder ungeradzahlig oder geradzahlig sind. Wenn einer der Operanden ungeradzahlig und der andere geradzahlig ist. erfolgt der Rechenablauf gemäß Tabelle B.
Für das Beispiel 7 χ 12 = 84 ergibt sich nach dem beschriebenen Verfahren ein Mittelwert aus 7 und 12 von 9.5 und eine zweite Potenz dieses Mittelwertes von 90,25. Sodann werden die Operanden subtrahiert (12 — 7 = 5), durch zwei dividiert ('■= = 2.5 J und quadriert (2,5J = 6.25). Schließlich wird dieser Wert 6,25 von 90,25 subtrahiert, so daß man als Ergebnis 84 erhält. Die folgende Darstellung zeigt die Anwendung des neuen Verfahrens mit Binäroperanden an dem Beispiel b χ 4. Die äquivalenten Dezimalwertc der ßinär/iffcrn sind der Klarheit halber dargestellt. Das Dividieren durch zwei geschieht durch Verschiebung nach rechts.
Binärrechnung
Dezimalrechnung
Aufgabe: 110XIOO = ?
Π ι
npranflpn
Summe d. Operanden
Dividieren durch 2
(Rechtsverschiebung)
Quadrieren
Operanden
Differenz d. Operanden
Dividieren durch 2
(Rechtsverschiebung)
Quadrieren
Differenz d.
beiden Quadratwerte
Produkt
!!0
KX)
1010
Aufgabe:
101
011001
110
100
010
001
ΟΟΟΟϋί
011001
000001
011000
6X4
4
IO
5
25
6
-4
25 J
24
Die Rechtsverschiebung läßt sich zur gleichen Zeit ausführen, während die Summe oder Differenz der Operanden in das Eingangsregister der Quadrierlogik gegeben wird. Es entsteht dann kein Zeitverlust durch den Verschiebevorgang.
Die oben beschriebene Quadricrlogik erzeugt das Quadrat einer Zahl in einem Schritt mit hoher Geschwindigkeit. Es sind keine Taktimpulse od. dgl. erforderlich. Die Komplexität der Quadrierlogik hängt von der Länge der Operanden ab.
F i g. 4 zeigt ein Verfahren zum Entwickeln der logischen Schaltung für einen 10-Bit-Operanden. Hierbei wird in gleicher Weise vorgegangen wie vorst~hend anhand des 3-Bit-Wortes beschrieben ist Die logischen Schaltungen für Operanden mit mehr als 10 Bit lassen sich in ähnlicher Weise entwickeln.
In Fig.4 ist j das niederrangigste Bit (2°) des Operanden und a das höchstrangige Bit desselben (29J. Die Partialprodukte werden durch Multiplizieren jedes Bit des Operanden mit sich selbst und mit jedem anderen Bit gewonnen. Wie oben beschrieben, erfordert die Quadratbildung a2 = a; fi2 = b usw. keinen Logikaufwand. Die Partialprodukte aus ungleichen Bits treten jeweils doppelt auf (z. B. / χ j = ij; Jx i = ij; ij + ij = 2 ij) Der Koeffizient 2 wird durch Rechtsverschiebung eliminiert, wie in Fig.4 durch die schräg verlaufenden Pfeile dargestellt ist
&5 In der. Zeichnungen äst das Produkt zweier verschiedener Bits, z. B. /und/ als ij dargestellt Die Tabelle, die die Multiplikation von /undy'zeigt, zeigt den Binärwert 0 am Ausgang mit Ausnahme, wenn /undy beide gleich 1
sind. In diesem Fall is! das Produkt gleich dem Binärwert I.
Die logische Schaltung zum Multiplizieren von /und j bildet ein einfaches UND-Glied mit zwei Eingängen.
Da die Partialprodukte sich mittels einfacher UND-Glieder erzeugen lassen, braucht man lediglich eine zusätzliche Addierschaltung vorzusehen und diese Parti.:fprodukte zu addieren, um die gewünschte Antwort, d. h. das Quadrat des Operanden, zu erhalten.
Die Partialprodukte werden in einer Igosischen Operation kombiniert, die sich als einstuiige Addition ansehen läßt.
Es sei angenommen, daß getrennte Register vorgesehen sind für den zu quadrierenden Operanden (Eingangsregister) und für das Ergebnis des Quadrierens (Ausgangsregister), wie in Fig. 5 dargestellt ist. Die Funktionen der beiden Register lassen sich mit Registern ausführen, welche zu anderer Zeit für anderr Zwecke verwendet werden.
Der unten beschriebene Einschritt-Addierer kombiniert die Partialprodukle des 10-Bit-Operanden (oder geringfügiger Variationen desselben) und erzeugt die genaue 20-Bit-Antwort direkt. Die gesamte Quadrierlogik arbeitet synchron, da weder Taktimpulse noch Zähler erforderlich sind. Lediglich das Eingeben eines Operanden in das Eingangsregister läßt eine Antwort in dem Ausgangsregister erscheinen.
Der Einstufen-Addierer zum Addieren der Partialprodukte kann so aufgebaut sein, daß jedes Bit des Ergebnisses direkt ohne Übertrag gebildet wird. Jedes Bit cics Ergebnisses läßt sich auch durch Verwendung üblicher Halbaddierer, Volladdierer und zugeordneter Übertragsschaltkreise erzeugen. Um eine möglichst schnelle Rechnung zu erzielen ohne übermäßigen Schaltungsaufwand, wird die Kombination beider Verfahren gemäß der Erfindung gewählt. Der Einstufen-Addierer erzeugt Vielfachüberträge praktisch gleichzeitig. Die zum Weiterleiten der Überträge zwecks Erzeugen des 20-Bit-Ergebnisses erforderliche Zeit ist niedriger als die zum Weiterleiten eines einzigen Übertrags bitweise von der niederrangigsten zur höchstrangigen Stelle in einem üblichen 20-Bit-Addierer erforderliche Zeit, wie bei der Beschreibung zu F i g. 6 erläutert ist.
Ferner ist neben den üblichen Verknüpfungsgliedern noch ein Anlivalcnz-ODER-Giied nötig. Dieses im folgenden auch NOR-Glied genannte Schaltungselement erzeugt ein Ausgangssignal (den logischen Wert 1) nur dann, wenn beide Eingangsinformationen voneinander verschieden sind. Wenn die Eingänge Ä und //(nicht B) sind, ist der Ausgang gleich 1, ebenso wenn die Eingänge den Wert A (nicht A) und B führen. Die Bezeichnungen HA und FA bedeuten Halbaddierer bzw. Volladdierer.
Genaue Beschreibung der einstufigen Quadrierlogik für einen 10-Bit-Operanden
Die Logik zum Quadrieren eines 10-Bit-Operanden ist in den Fig.6 dargestellt Diese Figuren zeigen sowohl die Verknüpfungsglieder zum Erzeugen der Partialprodukte als auch den Einstufen-Addierer. Sie sind in F i g. 5 in getrennten Blocks dargestellt, um die Operation der Quadrierlogik besser erläutern zu können.
Die Logik für jedes Bit des zweifach genauen 20-Bit-Produktes ist unten beschrieben. Die drei niederrangigsten Bits des Produktes (2°, 2", 22J sind wegen ihrer Einfachheit zu einer Gruppe zusammengeschlossen.
Bits 2°,2' und 22(F ig. 6a)
Die logische Schaltung braucht lediglich das 2°-Bit des Allsgangsregisters auf I zu stellen, wenn dasselbe Bit des Operanden in dem Eingangsregister gleich 1 ist. Das Bit 21 in dem 20-Bit-Ausgangsregister ist immer gleich Null. In der logischen Schaltung für das 22-Bit sind die
ίο Verknüpfungsglieder gemäß den Erfordernissen der F i g. 4 eingestellt, wonach das Addieren der Partialprodukte ij und / die Summe für das Bit 22 des Ausgangsregisters erzeugt. Die logische Schaltung stellt das 22-Bit in dem Ausgangsregister lediglich auf 1 ein, wenn das Bit /des Operanden gleich 1 ist und das Bit j des Operanden gleich Null ist.
Bit 23(F ig. 6b und 6c)
Ein Aniivdieiii-ODER-Glicu und ein UND-Glied ilii'i
2Ii drei Eingängen erzeugen die Summe für das Bit 23 des Ausgangsregisters. Es sind keine Überträge von vorhergehenden Stufen zu verarbeiten. Obwohl die Quadrierschaltung ein Ausgangssignal ohne Taktimpulse erzeugt, könnte es erforderlich sein, ein übliches Freigabesignal einzuführen (in den Fig. 6a, 6b und 6c dargestellt), um den Ausgang der logischen Schaltung an das Ausgangsregister durchzuschallen, so daß Schaltvorgänge keinen Flip-Flop umkippen, der im NuII-Zustand bleiben sollte. Dieses Freigabesignal kann
so angelegt werden, nachdem sämtliche Überträge weitergeleitet und alle Schaltvorgänge genügend abgeklungen sind. Ein Vorteil des Freigabesignals und der zugeordneten Verknüpfungsglieder besteht darin, daß die Quadrierlogik irgendein verfügbares Register in dem Rechner als Ausgangsregister verwenden kann. Das Eingangsregister in Fig. 5 läßt sich z.B. für das Ergebnis des Quadrierens verwenden, wenn die NuII- und Einerausgänge an die Quadrierschaltung gelegt werden. Die Schaltung kann gemäß F i g. 6c oder auch andersartig geändert werden, um die Null- und Einerausgangswerte zu ergeben, so daß das Register für die Aufnahme des Ausgangswertes der Quadrierschaltung nicht auf Null gestellt werden muß.
Zur Vereinfachung der Erläuterungen sei angenommen, daß das Ausgangssignal der Quadrierschaltung in ein vorher gelöschtes Register durch Freigabe von Gattern gegeben wird, welche in den Zeichnungen fortgelassen sind. Zur weiteren Vereinfachung sind die Flip-Flops des Eingangsregisters in den übrigen Zeichnungen fortgelassen, und lediglich die in bestimmten Flip-Flops gespeicherten Signale sind dargestellt. F i,». 4 zeigt z. B., daß das Signal g des Operanden in dem Flip-Flop 21 des Eingangsregisters gespeichert ist Es sind nur das Signal g und/oder dessen Negation g dargestellt
Bit 2« (Fi g.6d)
Man erkennt daß die logische Schaltung nach F i g. 6d den Wert ensprechend dem Bit 2* des Ausgangsregisters
ohne Überträge von vorhergehenden Stufen erzeugt Die normalerweise von Volladdierern oder Halbaddierern für die nächste Stufe erzeugten Überträge sind ersetzt durch die Schaltung nach F i g. 6e, welche den »Übertragw-Eingang für die Schaltungsstufe 25 erzeugt
Die logische Schaltung wird um so komplizierter, je größer das Eingangsregister wird. Bei Verwendung üblicher Addierer und zugeordneter Übertragungsstufen in der Quadrierschaltung ist die einzige merkliche
Belastung des Eingangsregisters von den UND-Gliedern gebildet, welche normalerweise die Partialprodukte kombinieren zur Verwendung in dem einstufigen Addierer. In der optimalen Bemessung werden bei diesem System mehr übliche Schaltungskreise mit Übertragweiterleitung in den meisten aufeinanderfolgenden Stufer verwendet, um eine zu große Kompliziertheit und übermäßige Belastung des Eingangsregisters zu vermeiden.
Bit2'i(Fig.6fund6g)
Es werden zwei Volladdierer verwendet zum Erzeugen des 25-Bit-Ausgabewertes. Obwohl zwei Überträge (C5a und C5b)d\irch diese Addierer erzeugt werden, brauchen sie nicht verwendet zu v/erden. Um die Übertragkette zu kürzen und die Rechengeschwindigkeit der Quadrierlogik auf diese Weise ;tu erhöhen, werden die Überträge für die 26-Bit-Schaltung gemäß F i g. 6 direkt erzeugt.
Bit26(Fig. 6h)
In dieser Stufe sind zwei Volladdierer vorgesehen zum Erzeugen der Summe für das Bit 26 des Ausgaberegisters und zum Erzeugen der Überträge C6aund C6b zur Verwendung in der27-Bit-Stufe.
Bits 27 bis 2" (F i g. 6i bis 6s)
Die Schaltung dieser Stufen ist in herkömmlicher Weise aufgebaut. Vielfachüberträge werden je nach Bedarf erzeugt und/oder weitergeleitet.
Bit218(Fig.6t)
Diese Stufe verwendet lediglich ein UND-Glied mit zwei Eingängen und ein Antivalenz-ODER-Glied zum Erzeugen der Summe für das Bit 218 des Ausgaberegisters. Es wird kein Übertrag für die Stufe 2'1· erzeugt.
Bit2>9(Fig.6u)
Diese Stufe erhält den Übertrag direkt von der Stufe 217 (C 17). Durch diese Technik wird die Übertragweitergabe (unter Umgehung der Stufe 218) ohne merkliche Erhöhung des Schaltungsaufwandes beschleunigt.
Ubertragvereinfachung
Bei Verwendung üblicher Volladdierer und Übertragerzcuguüg für die Stufen 27 bis 219 würden die Überträge gemäß den horizontalen Linieii in Fig. 7a weitergegeben werden. Es sei bemerkt, daß bis zu vier Übsrträge gleichzeitig von der Stufe Ί* bis zur Stufe 213 auftreten können. Aufgrund der beschriebenen Schaitungstechnik für die Bits 23, 23 t 2·, 2!8 und 2'9 wird die Weitergabekette für die Oberträge gemäß F i g. 7 durch die logische Schaltung für den einstufigen Addierer verkürzt Der längste Übertrag beginnt bei der Stufe 25 und endet bei der Stufe 2'9, wobei die Stufe 218 umgangen wird. Die Übertragweiterleitung wird daher auf Kosten einer geringfügig komplexeren Schaltung erhöht
Vorhergehend ist die Einbeziehung einer logischen Schaltung für den Einstufen-Addierer vorgeschlagen. Zur weiteren Verkürzung der Rechenzeiten kann die Obertragweitergabe durch einen komplexeren Schaltungsaufwand weiter beschleunigt werden.
Die Weitergabe verschiedener Überträge zur gleichen Zeit verlangsamt die Obertragweitergabe nicht in großem Maße. I.η wesentlichen bestimmt der Weitergabeweg für den längsten Übertrag diese Zeit. Es lassen sich Techniker, zum Gruppieren der Überträge von zwei oder mehr Stufen und zum Weiterleiten des sich ') daraus ergebenden Übertrages verwenden.
Vereinfachung für einfach genaue Multiplikation
Die bisherige Beschreibung betrifft 10-Bit-Operanden
in und ein 20-Bit-Produkt, wie es als Ergebnis beim Rechnen mit ganzen Zahlen auftritt. Fin derartiges 20-Bit-Produkt wird gewöhnlich als zweifach genaues Wort bezeichnet, da es die doppelte Anzahl von Bits aufweist wie das grundlegende Operandenwort. Für die
i") meisten Anwendungen ist jedoch eine einfach genaue Multiplikation ausreichend. Unter diesen Umständen läßt sich die Quadrierschaltung vereinfachen.
Bei einfach genauen Operationen kann die weniger bedeutende Hälfte des Produktes vernachlässigt wer-
:o den. Überträge der logischen Schaltung für die weniger bedeutende Hälfte des Produktes werden der niederrangigsten Bit-Stelle der höherrangigen Hälfte des Produktes zugegeben. Dies ist anhand von Fig. 6i bei dem Bit 210 mit den Überträgen C9a. C9b, C9c und
C9dgezeigt. Im allgemeinen kann die in den F i g. 6a bis 6f dargestellte Schaltung für einfach genaue Ergebnisse fortgelassen werden. Die Schaltung nach F i g. 6g wird beibehalten. Die Schaltung für die Bits 2* bis 2s* (F i g. 6h bis 6k) wird unter geringfügigen Vereinfachungen
in beibehalten, da die Summenausgabewerte der niederrangigen Hälfte des 20-Bit-Ausgabewertes nicht benötigt werden. Es lassen sich Techniken anwenden zum direkten Erzeugen von Überträgen ohne Durchlaufen der Addierschaltung vorhergehender Stufen (Fig.6g),
r. um die Übertrageingangswerte C9a. C9b. C9c und C9dfür die Stufe 2'°zu erzeugen.
Wenn diese Überträge direkt erzeugt werden, können die Schaltungen nach den Fig. 6a bis 6k fortgelassen werden. Die Multiplikationsgeschwindig-
4(i keit wird dann erhöht, da die Übertragkette beträchtlich gekürzt ist.
Algol zum Multiplizieren durch Differenzbildung
von zwei Quadratwerten
Im folgenden ist die logische Schaltung des Quadrierens in Verbindung mit einer arithmetischen Schaltung des Rechners beschrieben.
F i g. 8 zeigt ein vereinfachtes Diagramm eines schnellen Multiplikators. Die arithmetische Einheit des Rechners arbeilet unabhängig von der Quadrierstufe, Wenn die arithmetische Einheit ein Wort an das Eingangsregister der Quadrierschaltung gibt kann die Einheit wieder ihre normale Funktion des Addierens, Subtrahierens, Vergleichens usw. ausführen. Diese Fähigkeit zur unabhängigen Operation ist wesentlich für die hohe Geschwindigkeit bei der Multiplikation nach der Erfindung.
Im folgenden sind drei Rechenschemata angegeben. Die ersten beiden Rechenschemata ergeben eine hohe Rechengeschwindigkeit, erfordern jedoch den doppelten Aufwand an Schaltungsteilen im Vergleich zu dem dritten Rechenschema.
o5 Das Schema nach F i g. 9 entspricht dem vereinfachten Diagramm von F i g. 8 mit der Ausnahme, daß zwei arithmetische Einheiten und zwei Quadrierschaltungen für Parallelbetrieb erforderlich sind.
Stufe I
Anfangszustände
Bei diesem Rechenschema ist angenommen, dfiß die beiden zu multiplizierenden Operanden beide in übliche arithmetische Einheiten eingegeben sind. Bei Gleitkommabetrieb werden die Operanden normalisiert, um Null-Bits am Anfang der Operanden zu beseitigen. Da bei Gleitkommaoperation der Exponentialanteil addiert wird (um den Exponentialanteil des Ergebnisses zu erzeugen), wird dieser Teil der Multiplikation nicht weiter beschrieben, da es sich hierbei um einen getrennten und üblichen Rechenschritt handelt, der viel eher ausgeführt ist, bevor die Mantissenanteile der Operanden verarbeitet sind. Die folgende Beschreibung bezieht sich auf die Mantissenanteile für Gleitkommaoperanden (d. h. auf den gesamten Teil der ganzzahligcn Operanden).
Die Quadrierschaiiung verwendet die Absolutwerte (|λ·|;|>1) der Eingangsoperanden χ und y. also ohne Berücksichtigung der Vorzeichen. Das Addieren von χ und y bildet immer die erste Rechenoperation, da beide Operanden als positiv angenommen werden und keine ergänzenden Operationen innerhalb eines üblichen Addierers erforderlich sind.
Zur Berücksichtigung des Umstandes, daß der eine Eingangsoperand geradzahlig und der andere ungeradzahlig ist. erfordert die Quadrierschaltung in diesem Fall ein extra Bit. Für 10-Bit-O;;eranden müssen also Quadrierschaltungen für 1! Pit vorhanden sein. Verfahren, welche unter diesen Umständen kein extra Bit erfordern, sind in den folgenden Algolangaben enthalten.
Stufe 2
Quadrieren der Summe und der Differenz der Operanden
In einer arithmetischen Einheit werden die Operanden .v und y addiert und die halbe Summe (in F i g. 9 mit A bezeichnet) in die Quadrierschaltung gegeben. Dazu wird die Summe nach rechts um eine Stelle verschoben, was einer Division durch zwei entspricht.
Der Ausgabewert der Quadrierschaltung
ist mit A2 bezeichnet. Dieser Wert wird in den Minuendenteii des Addierers gegeben. Währenddessen sind die Operanden χ und y verglichen worden, so daß der kleinere Operand von dem größeren subtrahiert werden kann. Falls der Vergleich zeigt, daß die Subtraktion einen negativen Wert ergibt, werden die Operanden innerhalb der arithmetischen Einheit gewechselt.
Wenn nun χ und y in den richtigen Registern der arithmetischen Einheit eingespeist sind, wird y von χ subtrahiert und der halbe Wert dieser Differenz (als B bezeichnet) an das Eingangsregisier der Quadrierschaltung gegeben. Der Ausgabewert der Quadrierschaltung beträgt f J und ist mit B2 bezeichnet. Dieser Wert wird als Subtrahendenteil in denselben Addierer gegeben, der den Wert A2 enthält.
Stufe 3
Bildung der Differenz A7 minus B2
Wenn die beiden Werte A2 und B2 in eines der beiden arithmetischen Einheiten eingespeist sind, wird die
Subtraktion ausgeführt, die das gewünschte Ergebnis bringt.
Modifiziertes Rechenschema für hohe ' Geschwindigkeit
Dieses in Fig. 10 dargestellte Rechenschema erfordert eine weitere Addition, jedoch kein Extra-Bit für die Multiplikation einer geradzahligen mit einer ungerad-
K) zahligen Ziffer. Das Multiplizieren von 10-Bit-Operanden erfordert eine 10-Bit-Quadrierschaltung.
Bei diesem Rechenschema werden die Operanden χ und y gemäß Fig. 11 addiert. Bei der Stellenverschiebung nach rechts wird das niederrangigste Bit der
r, Summe in das Speicherbit M verschoben. Dieses Speicherbit erhält den Wert Null, falls * und y be'de gerade sind. Wenn einer der Operanden ungerade und der andere gerade ist, erhält das Bit M den Wert 1. Dicsci Fäii erforderi eine besondere Behandlung, da der
Jn Durchschnittswert aus einer geraden und einer ungeraden Zahl einen Bruch ergibt (z. B. ist das Mittel aus 9 und 10 gleich 9,5). Bei dem betrachteten Rechenschema wird der Anteil hinter dem Komma (0,5) vernachlässigt und später kompensiert.
>-> Bei der ersten Subtraktion wird y von Af subtrahiert, wie oben beschrieben ist. Der Operand /muß immer der kleinere von beiden sein. Diese Unterscheidung muß unbedingt gemacht werden, da der kleinere Operand y zeitweilig in einem Register gespeichert wird, wenn das Bit M gleich 1 ist.
Nach der zweiten Subtraktion (A1 - B2) wird das Bit M untersucht. Falls es Null ist, liegt das gewünschte Ergebnis vor. Es sei angenommen, daß die zweite Subtraktion in derselben arithmetischen Einheit durchgeführt wird, welche den vorher berechneten Exponententeil des Produktes speicherte. Die Beendigung der Subtraktion bewirkt, daß das gesamte Produkt in einem Register gespeichert ist. Wenn das Bit M gleich 1 ist, wird der in einem RegistP·· gespeicherte Operand y zu dem Ergebnis der Subtraktion addiert (y wird zu B2 - A2 addiert), so daß das gewünschte Ergebnis erzielt wird. Das Addieren von y zu der Differenz aus A2 und B2 bildet die Kompensation für die Verrachlässigung des Bruchteiles bei der Rechtsverschieoung der Summe aus xuxiay.
Betrachtungen über den Schaltungsaufwand
Ein Schaltungsaufbau mit lediglich einer arithmetischen Einheit und einer Quadrierschaltung ist bei v\ Anwendung von Mikroschaltungen praktisch, obgleich die Bauteiizahl unter den gegenwärtigen Umständen hoch ist. Zum Beispiel findet man die Zahl η von UND-Gliedern mit zwei Eingängen, die zum Erzeugen der Partialprodukte erforderlich ist, gemäß der Formel:
η = b
(b-l)
worin b die Anzahl der Bits in dem Operanden ist Eine Quadrierschaltung für ein 10-Bit-Wort erfordert also etwa 45 UND-Glieder mit zwei Eingängen. Diese Anzahl ändert sich bei Einführung logischer Sparmaßnahmen, wie sie etwa in Fig.6 dargestellt sind. Eine Quadrierschaltung für 35 Bit erfordert etwa 595 UND-Glieder mit zwei Eingängen (für ein zweifach genaues 70-Bit-Ergebnis).
Im folgenden sind Verfahren zum Verringern des Schaltungsaufwandes angegeben.
Dieses Verfahren der Multiplikation unterteilt die Quadrierschaltung gemäß Fig. 12. Anfänglich sind die Operanden |x| und \y\ in der üblichen arithmetischen Einheit
Stufe 1
Hierbei werden χ und y addiert und in die Quadrierschaltung verschoben. Das niederrangigste Bit der Summe wird in dem Bit-Speicher //gespeichert Zur gleichen Zeit vergleicht ein Komparator od. dgl. χ und y miteinander, um den niedrigsten Operanden herauszufinden.
Stufe 2
Die Quadrierschaltung quadriert A und erzeugt A2. Inzwischen sind χ und y, falls erforderlich, in der arithmetischen Einheit vertauscht worden, damit der kleinere Operand an der Stelle y steht Sodann wird y von χ subtrahiert und y ferner kurzzeitig gespeichert, wenn das Bit M gleich 1 ist.
Stufe 3
Das Produkt A2 wird in die arithmetische Einheit gegeben, während die Hälfte der Differenz von χ und y (B)\n die Quadrierschaltung gegeben wird.
Stufe 4
Die Quadrierschaltung quadriert den Eingangswert B und erzeugt den Wert B2. Inzwischen wird y von der betreffenden Speicherstelle in die arithmetische Einheit gegeben und zu A2 addiert falls das Bit M gleich 1 ist.
Stufe 5
Sobald die Quadrierschaltung den Wert B2 gebildet hat wird das Ergebnis in die arithmetische Einheit gegeben und von A2 subtrahiert (oder von A2 + y, falls das Bit Mgleich 1 ist). Die Differenz ist das gewünschte Ergebnis.
Aus Fig. 12 ist zu entnehmen, daß die Multiplikationszeit die Summe der folgenden Zeiten ist:
Stufe 1 — eine Addition (x + y) Stufe 2 - eine Quadratbildung (A — A2) Stufe 3 - ein Übertragungsvorgang Stufe 4 - eine Quadratbildung (B-* B2) Stufe 5 — eine Subtraktion
Dezimal: 0,5 χ 0,5 = 0,25
Binär: 0.1 χ 0.1 = 0.01
^- anfängliche Null
In einem solchen Fall wird das Ergebnis normalerweise eine Stelle nach links verschoben und der Exponentenanteil des Produktes dementsprechend eingestellt.
Das Bit 2* des zweifach genauen Produktes bildet das Bit mit der niedrigsten Ordnung bei dem normalisierten einfach genauen Produkt Das höchstrangige Bit von y wird zu dem betreffenden Bit des zweifach genauen Produktes vor dem Normalisieren addiert, um die Genauigkeit zu wahren, falls eine Verschiebung nach links erforderlich ist Zusätzliche Abrundungsbetrachtungen sind im folgenden nicht beschrieben. Der Schaltungsaufwand für die Quadrierschaltung läßt sich verringern, wenn ein einfach genaues Ergebnis anstatt eines doppelt genauen Ergebnisses gewünscht wird, selbst wenn ein Teil der Summe aus A2 und y wegen der Genauigkeit beibehalten werden müssen.
Die Fig. 13 und 14 zeigen mögliche Schaltungsaufbauten zur Realisierung der oben beschriebenen Rechenschemen.
Quadrieren für erhöhten Durchsatz
Wenn der Rechner die Subtraktion durch Komplementbildung des Subtrahenden und durch Addition ausführt, kann die für die letzte Subtraktion (A2 - B2) erforderliche Zeit verkürzt werden, indem die Komplementbildung fortgelassen und statt dessen die Null-Werte des Produktes B2 an die Einereingänge der arithmetischen Einheit gegeben werden. Hierdurch wird eine Komplementbildung während der Übertragung von B2 erreicht.
Am Ende des Multipliziervorganges muß y zu A2 in ganzen Operationen addiert werden. Beim Gleitkommabetrieb, bei dem die niederiangigste Hälfte des zweifach genauen Produktes gewöhnlich fallengelassen wird, dürfte das Addieren von y nicht erforderlich sein, da y zu dem nicht weiter betrachteten Teil des Produktes addiert wird.
In manchen Fällen führt das Endprodukt beim Gleitkommabetrieb am Anfang eine Null. Zum Beispiel:
Die oben beschriebene Quadrierschaltung ermöglicht
nicht nur eine schnelle Multiplikation, sondern läßt sich auch zum Hinzufügen einer neuen Maschineninstruktion verwenden, was man als »Quadrierbefehl« bezeichnen könnte. Dies? Operation bildet das Gegenteil von der Quadratwurzelbildung. Bei einer ganzzahligen Operation kann es vorkommen, daß ein Programm das Quadrieren eines Wortes aus einem Speicher, einem Akkumulator oder einem anderen Teil derarithmetischen Einheit aufruft. Das einzelne Wort wird sodann direkt in die Quadrierschaltung gegeben, welche den
j, Ausgabewert in einer einstufigen Operation bildet. Dabei ist keine Addition oder Subtraktion in der arithmetischen Einheit erforderlich. Die Quadratbildung geschieht schneller als bei irgendeinem der bekannten Quadrierverfahren, da lediglich ein Operand in die Quadrierschaltung eingegeben werden muß, während bei üblichen Multipliziervorrichtungen beide Operanden getrennt eingegeben werden müssen, selbst wenn sie identisch sind, oder aber von einem einfach eingegebenen Operanden vor dem Multiplizieren ein Duplikat gebildet werden muß. Die Logik des Quadrierens eines Operanden nach der Erfindung isl auch einfacher und schneller als mit einer logischen Schaltung, die für zwei verschiedene Operanden vorgesehen ist
Bei Gleitkommaoperationen wird der Exponententeil des Operanden verdoppelt, während der Mantissentei! quadriert wird. Das Verdoppeln läßt sich einfach durch Linksverschiebung in der arithmetischen Einheit um eine Stelle verwirklichen, wie unten vorgeschlagen ist:
— OPERAND-
EXPONENT
MANTISSE
LINKS VERSCHIEBUNG
QUADRATBILDUNG
65 EXPONENT
MANTISSE
PRODUKT-
Das Potenzieren kann äußerst schnell ausgeführt werden. Beim Erheben eines Operanden in geradzahlige Potenzen (x2, x4, x* usw.) brauchen außer der Verwendung der sehr schnellen Quadrierschaltung lediglich einfache Linksverschiebungen durchgeführt zu werden. Das Erheben eines Operanden in ungeradzahlige Potenzen (x3, Xs, x7 usw.) erfordert eine oder mehrere Quadrieroperationen sowie eine anschließende einfache Multiplikation.
Die üblichen Programmierungen brauchen nicht geändert zu werden, um Vorteil aus dem Quadrierbefehl
to
zu ziehen. Der Operator kann die Quadrierfunktion aus den Programmerfordernissen ergänzen und braucht nicht die Multiplikation zwei identischer Operanden einzuleiten.
Im folgendes ist gezeigt, wie das Produkt aus einer ungeraden und einer geraden Zahl gebildet wird. Um die Verwendung einer Quadrierschaltung für π + 1 Bits zu vermeiden, wenn ungeradzahlige oder geradzahlige Operanden mit jeweils π Bits multipliziert werden sollen, wird ein Verfahren verwendet zum Kompensieren des »Fallenlassens« eines Bit
BINÄR
DEZIMAL
1000
+0011
10) 1011
0101
XOIOl
■ 00011001
Verschieben dieses Bit in die Bitspeicherstelle M
1000 -0011
10) 0101
0010 φ dieses Bit nicht berücksichtigen XOOlO
00000100*
00011001 -00000100«
00010101 +0011
00011000
Produkt 2)
8
+3
2) 11
5, © nicht berücksichtigen X5
25
8 -3
2, ® nicht berücksichtigen X2
25 -4«
21 +3
24
(0.5.x + 0,5 >■ - 0.52 - 0,5.x - 0,5 y - O,52 = Z xy — y= Z
Wie in der linken Seite dieser Darstellung zu erkennen ist, wird das niederrangigste Bit (1 sb) der Hälfte der Summe der Operanden nicht berücksichtigt, und das niederrangigste Bit der Hälfte der Differenz ebenfalls nicht. Nachdem die Differenz der beiden derart gekürzten Quadratwerte gebildet ist, wird der kleinere der beiden ursprünglichen Operanden zu dieser Differenz addiert so daß das genaue Ergebnis entsteht.
Der rechte Teil der obigen Darstellung zeigt, wie der Bruchteil 0,5 beim Multiplizieren von 8 mit 3 vernachlässigt wird und wie die 3 mit 21 addiert wird und das Ergebnis 24 liefert. Die Rechtfertigung dieses Ausgleichsverfahrens Für irgendwelche Operanden (x und y) ist ebenfalls dargestellt. Gemäß der Darstellung wird der Bruch 0,5 von der halben Summe aus χ und y subtrahiert sowie von der halben Differenz aus χ und y. Nach der Vereinfachung und Lösung ergibt sich die Antwort Zzu xy y. Man erkennt daß die Antwort um die Ziffer y niedriger ist als das gewünschte Produkt xy. Durch Hinzufügen von y ergibt sich das genaue Ergebnis. Praktisch kann y zu dem Quadrat der halben Summe der Operanden hinzugegeben «verden, und die Endsubtraktion ergibt das gewünschte Ergebnis. Dieses Verfahren ist schneller bei einem geringeren Bauteileaufwand. Als Beispiel sind die links unten angegebenen Operationen durch die rechten Operationen ersetzt.
55 25
— 4 (Endsubtraktion) 21
+ 3 24
25 + 3 (Kompensation)
28 - 4
Hierzu 11 Blatt Zcichniinücn

Claims (1)

  1. Patentansprüche:
    J. Digitale Multipliziervorrichtung zum Bilden eines Produktes gemäß einem der beiden Algorithmen:
    Die Erfindung betrifft eine digitale Multipliziervorrichtung zum Bilden eines Produktes gemäß einem der beiden Algorithmen
    κ ■ y=*((x+y)/2¥-({x-yy2yoder
DE1956209A 1968-11-07 1969-11-07 Multipliziervorrichtung Expired DE1956209C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US77413868A 1968-11-07 1968-11-07

Publications (3)

Publication Number Publication Date
DE1956209A1 DE1956209A1 (de) 1970-06-18
DE1956209B2 true DE1956209B2 (de) 1979-06-28
DE1956209C3 DE1956209C3 (de) 1980-02-28

Family

ID=25100348

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1956209A Expired DE1956209C3 (de) 1968-11-07 1969-11-07 Multipliziervorrichtung

Country Status (6)

Country Link
US (1) US3610906A (de)
BE (1) BE741276A (de)
BR (1) BR6913949D0 (de)
DE (1) DE1956209C3 (de)
FR (1) FR2022785A1 (de)
GB (1) GB1280906A (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3749898A (en) * 1971-10-26 1973-07-31 Litton Systems Inc Apparatus for multiplying binary signals based on the binomial theorem
JPS5416603Y2 (de) * 1977-05-25 1979-06-29
US4313174A (en) * 1980-03-17 1982-01-26 Rockwell International Corporation ROM-Based parallel digital arithmetic device
US4514825A (en) * 1982-03-09 1985-04-30 Kinex Corporation High speed digital modem
JP2816624B2 (ja) * 1991-04-01 1998-10-27 モトローラ・インコーポレイテッド 2乗演算を実行する速度改良型データ処理システム及びその方法
KR100195178B1 (ko) * 1992-12-31 1999-06-15 윤종용 제곱 계산 회로
FR2712410B1 (fr) * 1993-11-08 1996-02-09 Sgs Thomson Microelectronics Circuit élévateur au carré de nombres binaires.
US5956265A (en) * 1996-06-07 1999-09-21 Lewis; James M. Boolean digital multiplier
US6018758A (en) * 1997-07-30 2000-01-25 Lucent Technologies Inc. Squarer with diagonal row merged into folded partial product array
US6393453B1 (en) * 1998-09-22 2002-05-21 Ati International Srl Circuit and method for fast squaring
US6460065B1 (en) * 1998-09-22 2002-10-01 Ati International Srl Circuit and method for partial product bit shifting
US6301598B1 (en) * 1998-12-09 2001-10-09 Lsi Logic Corporation Method and apparatus for estimating a square of a number
US6584483B1 (en) * 1999-12-30 2003-06-24 Intel Corporation System and method for efficient hardware implementation of a perfect precision blending function
US7080114B2 (en) * 2001-12-04 2006-07-18 Florida Atlantic University High speed scaleable multiplier
US20040128336A1 (en) * 2002-08-22 2004-07-01 Zierhofer Clemens M. Method and system for multiplication of binary numbers
US9292283B2 (en) * 2012-07-11 2016-03-22 Intel Corporation Method for fast large-integer arithmetic on IA processors
US10884705B1 (en) 2018-04-17 2021-01-05 Ali Tasdighi Far Approximate mixed-mode square-accumulate for small area machine learning
US11016732B1 (en) 2018-04-17 2021-05-25 Ali Tasdighi Far Approximate nonlinear digital data conversion for small size multiply-accumulate in artificial intelligence
US11144316B1 (en) 2018-04-17 2021-10-12 Ali Tasdighi Far Current-mode mixed-signal SRAM based compute-in-memory for low power machine learning
US11467805B1 (en) 2020-07-10 2022-10-11 Ali Tasdighi Far Digital approximate multipliers for machine learning and artificial intelligence applications
US11615256B1 (en) 2019-12-30 2023-03-28 Ali Tasdighi Far Hybrid accumulation method in multiply-accumulate for machine learning
US11416218B1 (en) 2020-07-10 2022-08-16 Ali Tasdighi Far Digital approximate squarer for machine learning
US11610104B1 (en) 2019-12-30 2023-03-21 Ali Tasdighi Far Asynchronous analog accelerator for fully connected artificial neural networks
RU2744239C1 (ru) * 2020-07-05 2021-03-04 Федеральное государственное бюджетное образовательное учреждение высшего образования. "Юго-Западный государственный университет" (ЮЗГУ) Устройство для возведения бинарной матрицы в квадрат

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3065423A (en) * 1959-10-30 1962-11-20 Herbert L Peterson Simultaneous hybrid digital-analog multiplier
US3191017A (en) * 1962-09-11 1965-06-22 Hitachi Ltd Analog multiplier
US3393308A (en) * 1963-07-12 1968-07-16 Bendix Corp Electronic function generator
US3290493A (en) * 1965-04-01 1966-12-06 North American Aviation Inc Truncated parallel multiplication
US3444360A (en) * 1965-07-12 1969-05-13 United Geophysical Corp Digital multiplier followed by a digital-to-analog converter
DE1524253A1 (de) * 1965-09-10 1970-04-30 Vyzk Ustav Matemat Stroju Multiplikationsrechenwerk

Also Published As

Publication number Publication date
DE1956209C3 (de) 1980-02-28
US3610906A (en) 1971-10-05
GB1280906A (en) 1972-07-12
FR2022785A1 (de) 1970-08-07
DE1956209A1 (de) 1970-06-18
BR6913949D0 (pt) 1973-01-04
BE741276A (de) 1970-04-16

Similar Documents

Publication Publication Date Title
DE1956209C3 (de) Multipliziervorrichtung
DE2246968C2 (de) Einrichtung zur Multiplikation zweier Gleitkommazahlen
DE69131458T2 (de) Hardware-Anordnung zur Addition und Subtraktion von Gleitkommazahlen
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE1162111B (de) Gleitkomma-Recheneinrichtung
DE2018452A1 (de) Arithmetische Einrichtung
DE3888230T2 (de) Einrichtung und Verfahren zur Durchführung einer Schiebeoperation mit einer Multipliziererschaltung.
DE2814078A1 (de) Addierschaltung mit zeitweiliger zwischenspeicherung des uebertrags
DE4101004A1 (de) Paralleler multiplizierer mit sprungfeld und modifiziertem wallac-baum
DE2758130C2 (de) Binärer und dezimaler Hochgeschwindigkeitsaddierer
DE2816711A1 (de) Divisionseinrichtung mit uebertrags- rettungsaddierwerk und nicht ausfuehrender vorausschau
DE1549508C3 (de) Anordnung zur Übertragsberechnung mit kurzer Signallaufzeit
DE2221693B2 (de) Schaltungsanordnung zur Ausführung einer Multiplikation zwischen zwei Binärzahlen
DE3447634C2 (de)
DE3440680C2 (de)
DE2826773A1 (de) Verfahren und schaltungsanordnung zum feststellen der wertigkeit von ziffern in arithmetischen operationen mit dezimalrechnern
DE3424078A1 (de) Dezimalmultiplikations-einrichtung
DE2727051C3 (de) Einrichtung zur binären Multiplikation einer ersten Zahl als Multiplikand mit einer den Multiplikator ergebenden Summe aus einer zweiten und dritten Zahl im Binärcode
DE2017132C3 (de) Binärer ParaUel-Addierer
DE2800598A1 (de) Parallel-addierwerk
DE1499227C3 (de) Schaltungsanordnung für arithmetische und logische Grundoperationen
DE19635113A1 (de) Multiplizierer
EP0629943B1 (de) Multiplizierer für reelle und komplexe Zahlen
DE19635111A1 (de) Multiplizierer
DE1549485B2 (de) Anordnung zur division binaerer operanden ohne rueckstellung des restes

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee