DE1956209B2 - Multipliziervorrichtung - Google Patents
MultipliziervorrichtungInfo
- 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
Links
- 239000000047 product Substances 0.000 description 56
- 238000000034 method Methods 0.000 description 29
- 238000004364 calculation method Methods 0.000 description 15
- 238000007792 addition Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 5
- 230000000717 retained effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
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/5235—Multiplying only using indirect methods, e.g. quarter square method, via logarithmic domain
-
- 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/552—Powers or roots, e.g. Pythagorean sums
-
- 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/552—Indexing scheme relating to groups G06F7/552 - G06F7/5525
- G06F2207/5523—Calculates 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. 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:
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
Operanden
(a) X (b)
(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
Dividieren durch 2
(Rechtsverschiebung)
Quadrieren
Differenz d.
beiden Quadratwerte
Produkt
!!0
KX)
KX)
1010
Aufgabe:
101
011001
011001
110
100
100
010
001
ΟΟΟΟϋί
ΟΟΟΟϋί
011001
000001
000001
011000
6X4
4
IO
IO
5
25
25
6
-4
-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
2Ί 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
4Ί von zwei Quadratwerten
4Ί 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
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
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:
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.
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:
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
+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
+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
Claims (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
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)
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 |
US6460065B1 (en) * | 1998-09-22 | 2002-10-01 | Ati International Srl | Circuit and method for partial product bit shifting |
US6393453B1 (en) * | 1998-09-22 | 2002-05-21 | Ati International Srl | Circuit and method for fast squaring |
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 |
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 |
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 |
US11615256B1 (en) | 2019-12-30 | 2023-03-28 | Ali Tasdighi Far | Hybrid accumulation method in multiply-accumulate for machine learning |
US11467805B1 (en) | 2020-07-10 | 2022-10-11 | Ali Tasdighi Far | Digital approximate multipliers for machine learning and artificial intelligence applications |
US11610104B1 (en) | 2019-12-30 | 2023-03-21 | Ali Tasdighi Far | Asynchronous analog accelerator for fully connected artificial neural networks |
US11416218B1 (en) | 2020-07-10 | 2022-08-16 | Ali Tasdighi Far | Digital approximate squarer for machine learning |
RU2744239C1 (ru) * | 2020-07-05 | 2021-03-04 | Федеральное государственное бюджетное образовательное учреждение высшего образования. "Юго-Западный государственный университет" (ЮЗГУ) | Устройство для возведения бинарной матрицы в квадрат |
Family Cites Families (6)
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 |
-
1968
- 1968-11-07 US US774138A patent/US3610906A/en not_active Expired - Lifetime
-
1969
- 1969-11-05 BE BE741276D patent/BE741276A/xx unknown
- 1969-11-06 BR BR213949/69A patent/BR6913949D0/pt unknown
- 1969-11-06 GB GB54421/69A patent/GB1280906A/en not_active Expired
- 1969-11-06 FR FR6938207A patent/FR2022785A1/fr not_active Withdrawn
- 1969-11-07 DE DE1956209A patent/DE1956209C3/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE1956209C3 (de) | 1980-02-28 |
DE1956209A1 (de) | 1970-06-18 |
BR6913949D0 (pt) | 1973-01-04 |
BE741276A (de) | 1970-04-16 |
US3610906A (en) | 1971-10-05 |
GB1280906A (en) | 1972-07-12 |
FR2022785A1 (de) | 1970-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1956209C3 (de) | Multipliziervorrichtung | |
DE2246968C2 (de) | Einrichtung zur Multiplikation zweier 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 | |
EP0629943B1 (de) | Multiplizierer für reelle und komplexe Zahlen | |
DE1499227C3 (de) | Schaltungsanordnung für arithmetische und logische Grundoperationen | |
DE19635113A1 (de) | Multiplizierer | |
DE19635111A1 (de) | Multiplizierer | |
DE1549485B2 (de) | Anordnung zur division binaerer operanden ohne rueckstellung des restes | |
DE2207566C3 (de) | Serien-Parallel-Multiplizierwerk |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |