DE3447729C2 - - Google Patents
Info
- Publication number
- DE3447729C2 DE3447729C2 DE3447729A DE3447729A DE3447729C2 DE 3447729 C2 DE3447729 C2 DE 3447729C2 DE 3447729 A DE3447729 A DE 3447729A DE 3447729 A DE3447729 A DE 3447729A DE 3447729 C2 DE3447729 C2 DE 3447729C2
- Authority
- DE
- Germany
- Prior art keywords
- multiplier
- register
- digit
- multiplicand
- products
- 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.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/491—Computations with decimal numbers radix 12 or 20.
- G06F7/4915—Multiplying; Dividing
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Description
Die Erfindung betrifft eine Mulitplikationseinrichtung zur
Bildung eines binärkodierten Dezimalprodukts
nach dem Oberbegriff des Patentanspruchs.
In Fig. 1 ist eine Beispiel einer
bekannten Dezimalmultiplikationsvorrichtung dargestellt. Die
Dezimalmultiplikation wird mittels eines Registers A, das
einen Multiplikator speichert, eines Registers C, das einen
Multiplikanden speichert, zwei Registern B und D, deren An
fangswert 0 ist und die Teilprodukte speichern, einem Multi
plikator-Dekodierer 3, der eine Ziffer des Multiplikators
vom Register A extrahiert und einen Addierer 1 und ein Gatter
4 steuert, einer Stellenverschiebeeinrichtung
2 und einem Wähler 5 ausgeführt.
Eine Ziffer "n" des Inhalts des Registers A,
das heißt des Multiplikators, wird vom Multiplikator-Dekodierer 3
herausgezogen. Der Inhalt
X des Registers B und der Inhalt des Registers C, das ist der
Multiplikand, der mit n multipliziert wird, werden gesteuert
vom Multiplikator-Dekodierer 3, abhängig von n, addiert und das Er
gebnis wieder in Register B gesetzt. Dies ist der Multiplizier
vorgang für eine Ziffer. Die Multiplikationen für jede Ziffer
höheren Stellenwerts werden aufeinanderfolgend durchgeführt.
Zu diesem Zweck werden gemäß dem folgenden Verfahren die
Ziffernstellen verschoben. Das Teilprodukt für die eine obengenannte
Ziffer ist in Register B gespeichert. Dieser Inhalt wird um
eine Ziffer (hier ist eine Ziffer durch 4 Bits dargestellt)
nach rechts von der Stellenverschiebeeinrichtung 2 verschoben (die höchstwertige
Ziffer wird mit dem Binärwert 0000 aufgefüllt). Das Ergebnis
wird ins Register B gesetzt und die eine nach rechts heraus
geschobene Ziffer zum linken Ende des Registers D geführt,
dessen Inhalt um eine Ziffer nach rechts verschoben wird.
Das heißt, daß, wenn die Register B und D als Registerfolge
betrachtet werden, der Gesamtinhalt um eine Ziffer nach
rechts verschoben ist und daß die niederwertigeren Ziffern
im Teilprodukt im Register D und die höherwertigeren Ziffern
im Register B gespeichert sind. Der Multiplikationsvorgang
wird sowohl durch die den Multiplikanden n-mal addierende
innere Schleife, bei der n eine aus dem Multiplikator heraus
extrahierte Ziffer ist als auch durch die äußere, die oben
beschriebene Verschiebung für die aufeinanderfolgenden Ziffern
wiederholende Schleife durchgeführt, und das Produkt kann in
den Registern B und C erhalten werden.
In einem weiteren Beispiel wird, wenn eine aus dem Multipli
kator extrahierte Ziffer n groß ist (z. B. gleich oder größer
als 6), der Multiplikand Y vom Inhalt X des Registers B, das
die höherwertigeren Ziffern des Teilprodukts darstellt, 10 minus
n-mal subtrahiert und in der Additions/Subtraktionsschleife für
die um eins höherwertige Ziffer als die laufende Ziffer, eine
Addition mehr oder eine Subtraktion weniger ausgeführt. Dieses
Verfahren, das die Anzahl der Additionen bzw. Subtraktionen
zur Erhöhung der Verarbeitungsgeschwindigkeit insgesamt ver
ringert, ist an sich bekannt.
Bei dem anhand der Fig. 1 beschriebenen Dezimalmultipli
kationsverfahren gibt es folgende die Erhöhung der Verarbei
tungsgeschwindigkeit hindernde Probleme:
- 1. Die Verarbeitung wird mittels zweier Schleifen durchge führt, d. h. der inneren Schleife für die Addition/Subtrak tion und der äußeren Schleife für die Verschiebung um eine Ziffernstelle, und diese Prozeduren der verschiedenen Schlei fen werden getrennt voneinander durchgeführt.
- 2. Da die bei der Operation anfallenden Teilprodukte zum Speichern in Register B und Register D aufgeteilt sind, muß die Verschiebung für jede Ziffer in einem Register ausge führt werden, das zweimal so lang wie ein gewöhnliches Register ist.
- 3. Da das Endergebnis, nämlich das Produkt, getrennt in den Registern B und D gespeichert ist, müssen die zwei Teile zu einem Er gebnis zusammengesetzt werden, wozu nachfol gende Prozeduren nötig sind.
Durch die DD-PS 1 19 891 ist eine Schaltungsanordnung zur
Multiplikation und Division von Dualzahlen bekannt geworden.
Diese Anordnung ist mit zwei Stellenverschiebeeinrichtungen
ausgestattet, wovon die eine für eine Stellenverschiebung nach
rechts in Richtung der niedrigwertigen Stellen am Ausgang eines
Paralleladdierers angeschlossen ist, während die andere zur
Stellenverschiebung nach links vor einem Eingang des Parallel
addierers angeordnet ist. Diese zweite Stellenverschiebeeinrichtung
steht mit einem Multiplikator-Dekodierer in Verbindung. Die
Anordnung unterscheidet sich von der vorliegenden Erfindung
nicht nur durch die ausschließliche Durchführung der Operationen
mit Dualzahlen sondern auch dadurch daß mehrere
Multiplikatorziffern während eines Operationszyklus zusammen verarbeitet
werden.
Eine Anordnung zur Durchführung verkürzter Multipli
kationen und Divisionen ist in der DE-AS 12 59 122 beschrieben.
Auch diese Anordnung arbeitet im Gegensatz zur vorliegenden
Erfindung ausschließlich mit Dualzahlen. Sie weist neben mehreren
Registern zur Aufnahme der Operanden und der Teilprodukte
auch Stellenverschiebeeinrichtungen nach beiden Richtungen auf,
die vor bzw. nach einem Paralleladdierwerk angeordnet sind.
Wegen der weitgehend anderen Verfahrensabläufe können die bei
Rechenanordnungen für Dualzahlen verwendeten Einrichtungen nicht
ohne weiteres für die Behandlung von binärkodierten Dezimalzahlen
eingerichtet werden. Ausgehend von solchen Binärrechenwerken
ist nicht ersichtlich, wie die in Fig. 1 angegebene Multiplikations
einrichtung weiter entwickelt werden könnte.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine
Multiplikationseinrichtung für binärkodierte Dezimalzahlen
der eingangs genannten Art zu schaffen, die gegenüber der als
bekannt vorausgesetzten Einrichtung mit geringerem Aufwand eine
schnellere Durchführung der Multiplikation ermöglicht.
Gelöst wird diese Aufgabe durch die im kennzeichnenden
Teil des Patentanspruchs angegebenen Merkmale.
Die Erfindung wird im folgenden anhand der Zeichnung näher
beschrieben. Es zeigt
Fig. 1 ein Blockdiagramm, das die bekannte Dezi
malmultiplikationseinrichtung erläutert;
Fig. 2 ein Blockdiagramm, das ein Ausführungsbeispiels
der Erfindung erläutert;
Fig. 3 ein Blockdiagramm, das den Schaltungsaufbau
des Multiplikator-Dekoders 3 in Fig. 2 zeigt;
Fig. 4 ein Schema, das die Betriebsweise eines Dekoders
20 in Fig. 3 erklärt; und
Fig. 5 ein Schema, das den Multiplikationsbetrieb bei
der Erfindung erläutert.
In Fig. 2 ist ein Blockschaltbild eines Ausführungsbeispiels
der Erfindung dargestellt.
Zur Durchführung der Dezimalmultiplikation weist dieses Aus
führungsbeispiel folgende Komponenten auf:
Ein Register A, das den Multiplikator und Teilprodukte spei chert, ein Multiplikandenregister B, ein Addier/Subtrahier werk 1, eine Stellenverschiebeeinrichtung 2, die den Inhalt des Registers A um eine Dezimalstelle nach rechts schiebt, einen Multiplikator-Dekodierer 3, der aufeinanderfolgend eine Ziffer aus dem Multiplikator aus dem Register A von der niedrigwertigsten Stelle über eine Leitung 10 herauszieht und die Verarbeitung steuert sowie ein Gatter 4, das den Ausgang des Multiplikandenregisters B zu 0 setzt und einen + 0 oder - 0 Betrieb ermöglicht.
Ein Register A, das den Multiplikator und Teilprodukte spei chert, ein Multiplikandenregister B, ein Addier/Subtrahier werk 1, eine Stellenverschiebeeinrichtung 2, die den Inhalt des Registers A um eine Dezimalstelle nach rechts schiebt, einen Multiplikator-Dekodierer 3, der aufeinanderfolgend eine Ziffer aus dem Multiplikator aus dem Register A von der niedrigwertigsten Stelle über eine Leitung 10 herauszieht und die Verarbeitung steuert sowie ein Gatter 4, das den Ausgang des Multiplikandenregisters B zu 0 setzt und einen + 0 oder - 0 Betrieb ermöglicht.
Im folgenden wird die Wirkungsweise des in Fig. 2 dargestell
ten Ausführungsbeispiels erläutert.
Bei zwei mittels einer Multiplikationsoperation zu verarbeiten
den Operanden wird derjenige, dessen Absolutwert größer ist,
Multiplikand und der andere Multiplikator genannt. Letzterer
wird im Register A gespeichert. Der Multiplikand ohne Vorzei
chen wird um diejenige Stellenanzahl nach links verschoben,
die gleich der Anzahl relevanter Stellen des Multiplikators ist und wird
im Multiplikandenregister B gespeichert. In diesem Fall laufen,
vorausgesetzt, daß es sich um eine Multiplikation handelt,
deren Verarbeitungsergebnis, das ist das Produkt in einem
Register gespeichert werden kann, keine bedeutsamen Stellen
vom Register über, auch wenn der Multiplikand nach links ver
schoben wird. Umgekehrt kann diese Anzahl bedeutsamer Stellen
ebenfalls durch die Position der höchstwertigen Ziffer des
Multiplikators , die nicht "0" ist, einschließlich des Vor
zeichens bestimmt werden.
Eine Ziffer des Multiplikators wird über die Leitung 10 aus
dem Register A herausgezogen. Der Multiplikator-Dekodierer 3
dekodiert diese Ziffer und steuert das Addier/Subtrahierwerk 1, die Stellenverschiebe
einrichtung 2 und das Gatter 4.
Fig. 3 stellt ein Blockdiagramm des Multiplikator-Dekodierers 3
dar. Fig. 4 zeigt Einzelheiten der Wirkungsweise eines Dekoders
20 in Fig. 3.
Der Multiplikator-Dekodierer 3 weist ein Kennzeichen (Flag) H 21, das
abhängig von der obengenannten einen Ziffer des Multiplikators
angibt, ob die Operation die erste Addition/Subtraktion unter
allen Additionen/Subtraktionen ist (H = 0) oder nicht (H = 1),
ein Kennzeichen S 22, das angibt, ob es sich um eine Addition
(S = 0) oder um eine Subtraktion (S = 1) handelt und einen
Zähler M 25 auf, der die verbleibende Anzahl (0-4) der Additionen/
Subtraktionen angibt, die für die obengenannte eine Ziffer
des Multiplikators auszuführen sind.
Im folgenden wird die Wirkungsweise des Multiplikator-Dekodie
rers 3 erläutert. Das Zeichen "⁰X" bedeutet, daß der Inhalt
"X" des Registers A um eine Ziffer, das sind 4 Bit nach
rechts verschoben ist und daß die vakante Ziffer am linken
Ende mit einer Dezimal "0" (binär 0000) aufgefüllt wurde.
Diese Schiebeoperation wird von der Stellenverschiebeeinrichtung 2 ausgeführt, wenn
die Leitung 11 vom Dekoder 20 "1" ist.
Das Zeichen "⁰X + Y" bedeutet, daß "⁰X", für das der Inhalt "X"
des Registers A um eine Ziffer nach rechts verschoben wurde
und die vakante Ziffer am linken Ende mit Dezimal "0" aufge
füllt wurde mit dem Inhalt "Y" des Registers B addiert wurde.
Das Zeichen "⁹X" bedeutet, daß der Inhalt "X" des Registers A
um eine Ziffer nach rechts verschoben wird und daß die vakante
Ziffer am linken Ende mit einer dezimalen "9" (binär 1001)
aufgefüllt wurde. Die Stellenverschiebeeinrichtung 2 führt diese Verschiebung
durch, wenn die Leitung 11 vom Dekoder 20 "2" ist.
In dem Zustand, in dem die Anfangswerte sowohl des Kennzei
chens H = 0 als auch des Kennzeichens S = 0 sind, werden, wie
im oberen Teil a) der Fig. 4 dargestellt, abhängig vom Wert
der Leitung 10 die dargestellten Werte der Kennzeichen H 2 1
und S 22, des Zählers M 23 und der Leitung 11 bis 13 ausge
geben.
Wenn die Leitung 12, "0" ist, wird das Gatter 4 eingeschaltet
und der Inhalt des Multiplikandenregisters B unverändert ausgegeben.
Umgekehrt wird, wenn die Leitung 12 "1" ist, das Gatter 4 aus
geschaltet und der Eingang des Addier/Subtrahierwerks 1 auf
"0" gesetzt. Wenn die Leitung 13 "0" ist, addiert das Addier/
Subrakhierwerk 1. Wenn die Leitung 13 "1" ist, subtrahiert
das Addier/Subtrahierwerk 1. Beispielsweise werden beim Zustand
H = 0, S = 0, L 10 von "1" bis "5" vom Dekoder 20 auf den
Leitungen 11, 12 und 13 jeweils 1, 0 und 0 ausgegeben und
die Operation ⁰X + Y ausgeführt.
Umgekehrt werden vom Dekoder 20, wenn die Leitung 10 Werte von
"6" bis "9" führt, auf den Leitungen 11, 12 und 13 jeweils
1, 0 und 1 ausgegeben und die Operation ⁰X - Y ausgeführt.
Wenn die Leitung 10 "0" ist, gibt der Dekoder 20 auf den Lei
tungen 11, 12 und 13 jeweils 0, 0 und 0 aus und bewirkt die
Operation ⁰X + 0. Auf diese Weise wird durch das Steuern der
Stellenverschiebeeinrichtung 2, des Gatters 4 und des Addier/Subtrahierwerks 1
abhängig von den Werten der Leitungen 11, 12 und 13 eine der
Operationen ⁰X + 0, ⁰X + Y und ⁰X - Y ausgeführt. Das Kennzei
chen H ist 1, wenn die Werte der Leitung 10 von "2" bis "8"
gehen. Dies bedeutet, daß die Addition/Subtraktion für diese
Ziffern noch nicht durch eine Operation beendet ist. Beim
nächsten Zyklus wird mit dem im untersten Abschnitt c) in
Fig. 4 mit H = 1 bezeichneten Zustand weitergefahren. Weiter
hin ist das Kennzeichen S = 1, falls die Leitung 10 die
Werte von "6" bis "9" annimmt. Das bedeutet, daß die Addition/
Subtraktion für diese Ziffer eine Subtraktion ist.
Die Bedingung H = 0 und S = 1 bedeutet, daß die laufende
Addition/Subtraktion die erste Addition/Subtraktion der
einen Ziffer des Multiplikators ist und daß die Operation
für die vorangehende Ziffer eine Subtraktion war. Mit dieser
Bedingung werden die Kennzeichen H 21, S 22 und der Zähler M 23
abhängig vom Wert der Leitung 10 so gesetzt, wie der mittlere
Aschnitt b) in Fig. 4 zeigt und gleichzeitig eine der Operationen
⁹X + Y, ⁹X - Y und ⁹X - 0 ausgeführt.
Unter diesen Bedingungen muß, weil die Operation für die
vorangehende Ziffer eine Subtraktion war, für die laufende
Ziffer eine Addition mehr oder eine Subtraktion weniger durch
geführt werden. Folglich ist H = 1, wenn der Wert der Leitung
10 von "1" bis "7" geht und S = 1, wenn der Wert der Leitung 10
von "5" bis "9" geht.
Der Zustand H = 1 und S = 0 bedeutet, daß die laufende Opera
tion eine zweite oder eine der folgenden Operationen und eine
Addition ist. Mit dieser Bedingung werden abhängig vom Inhalt
des Zählers M 23, das die verbleibende Anzahl von Additionen
angibt, das Kennzeichen H auf 0 (M ≦ 1) oder auf 1 (M < 1) und
das Kennzeichen S auf 0 gesetzt, wie Abschnitt d) des untersten
Teils c) in Fig. 4 zeigt, und der Inhalt des Zählers M 23 wird
um 1 verringert. Außerdem wird die Leitung 11 auf 0 gesetzt,
so daß der Inhalt X des Registers A durch die Stellenverschiebeeinrichtung
unverändert durchgehen kann. Die Leitung 12 wird auf 0 gesetzt,
so daß der Inhalt Y des Multiplikandenregisters B das Gatter 4 passieren
kann. Die Leitung 13 wird auf 0 gesetzt, so daß vom Addier/
Subtrahierwerk 1 die Werte X und Y addiert werden. Diese Operation
ist durch X + Y angegeben.
Der Zustand H = 1 und S = 1 bedeutet, daß die laufende Operation
eine zweite oder eine der folgenden Operationen und eine Sub
traktion ist. Unter dieser Bedingung wird abhängig vom Inhalt
des Zählers M 23, der die verbleibende Anzahl der Subtraktionen
anzeigt, das Kennzeichen H zu 0 (M ≦ 1) oder 1 (M < 1), während
das Kennzeichen S zu 1 wird, wie Abschnitt e) des untersten
Teils c) in Fig. 4 zeigt, und der Inhalt des Zählers M 23 wird
um 1 vermindert. Gleichzeitig wird die Operation X - Y durch
geführt. Das heißt, daß der Inhalt des Multiplikandenregisters B vom In
halt des Registers A vom Addier/Subtrahierwerk 1 in Fig. 2 ab
gezogen wird.
Das heißt, daß mit der Bedingung H = 1 abhängig vom Wert des
Kennzeichens S Additionen oder Subtraktionen solange ausge
führt werden, bis der Inhalt des Zählers M 23 kleiner als 1 ist.
Dann wird, wenn die vorletzte Addition/Subtraktion für diese
Ziffer beendet ist, H auf 0 gesetzt und die Operation kehrt
entweder zum obersten Abschnitt a) oder zum mittleren Abschnitt
b) in Fig. 2 zurück.
Die Operationen für eine Ziffer sind mit dem obenbeschriebenen
Vorgang abgeschlossen.
Das erzielte Produkt kann durch Wiederholung der obenbeschrie
benen Additionen/Subtraktionen bis zur höchstwertigen Ziffer
der relevanten Ziffern des Multiplikators erhalten werden.
Um die Wirkungsweise der durch die Fig. 2 bis 4 dargestellten Erfindung
genauer zu zeigen, wird der Betrieb bei der Anwendung
der Erfindung anhand eines praktischen Beispiels erläutert.
Fig. 5 ist ein Schema, das die Inhalte der Register A und B in
jedem Schritt während der Multiplikation nach dem angewendeten
Dezimalmultiplikationsverfahren zeigt. Als Beispiel
wird die Rechnung 1012 × 902 = 912842 ausgeführt.
In Fig. 5 gibt Schritt 0 die in Register A und B vor dem Be
ginn der Multiplikation gesetzten Inhalte an. Zur Vereinfachung
wird angenommen, daß die Register A und B jeweils 4 Byte Länge
haben und daß ihre Inhalte durch 8 Ziffern in BCD-Form ange
geben sind. Weil 1012 < 902 ist, wird "902" als Multiplika
tor in Register A gespeichert. Hexadezimal "C" am rechten
Ende bedeutet, daß der Multiplikator "902" positiv ist. Ein
schließlich des Vorzeichens ist die Anzahl der bedeutsamen
Stellen 4. Der größere Wert, nämlich "1012" ist als Multipli
kand um 4 Stellen nach links verschoben und im Multiplikandenregister B
gespeichert.
Die Leitung 10 in Fig. 2 steht hier auf der zweiten Stelle,
vom rechten Ende in Register A gezählt, wie durch das Zeichen
"" in Fig. 5 angedeutet ist. In diesem Beispiel ist die
Dezimalziffer "2" die erste Ziffer.
In Schritt I sind H = 0, S = 0 und Leitung 10 hat den Wert "2".
Fig. 4 zeigt, daß dann H = 1, S = 0 und M = 1 gegeben sind.
Gleichzeitig werden die Leitungen 11, 12 und 13 jeweils auf
1, 0 und 0 gesetzt und die Operation ⁰X + Y ausgeführt. Das
heißt, daß dann ein durch Addition ⁰X = "00000902" mit Y =
"10120000" und Ersetzen der niedrigstwertigen Ziffer (das ist
in diesem Fall "2") durch das positive Zeichen "C" erhaltener
Wert "1012090C" in das Register A gespeichert wird.
In Schritt II sind H = 1, S = 0 und M = 1. Fig. 4 zeigt, daß
dann H = 0, S = 0 und M = 0 gegeben sind. Gleichzeitig werden
die Leitungen 11, 12 und 13 jeweils auf 0 gesetzt und die
Operation X + Y ausgeführt. Das heißt, daß durch Addition der
Werte X = "1012090C" und Y = "10120000" und Ersetzen der
niedrigstwertigen Ziffer (das ist in diesem Fall "C") durch
das positive Zeichcn am rechten Ende der Wert "2024090C"
erhalten und am Register A gespeichert wird.
In Schritt III ist H = 0, S = 0 und die Leitung 10 hat den
Wert "0". Fig. 4 zeigt, daß dann H = 0, S = 0 und M = 0
gegeben sind. Gleichzeitig wird die Operation ⁰X + 0 ausge
führt. Das heißt, daß ein durch Ersetzen der niedrigstwerti
gen Ziffer (in diesem Fall "0") durch das positive Zeichen
erhaltener Wert "0202409C" in Register A gespeichert wird.
In Schritt IV ist H = 0, S = 0 und die Leitung 10 hat den
Wert "9". Fig. 4 zeigt, daß dann H = 0, S = 1 und M = 0
gegeben sind und gleichzeitig die Operation ⁰X - Y ausge
führt wird. Das heißt, daß ein durch Subtraktion des Wertes
Y = 10120000" vom Wert ⁰X = "00202409" und durch Ersetzen
der niedrigstwertigen Ziffer (das ist in diesem Fall "9")
durch das positive Zeichen erhaltener Wert "9009240C" im
Register A abgespeichert wird.
In Schritt V sind H = 0, S = 1 und die Leitung 10 hat den Wert
"0". Dann sind gemäß Fig. 4 H = 0, S = 0 und M = 0 gegeben
und es wird die Operation ⁹X + Y ausgeführt. Das heißt, daß
ein durch Addition der Werte ⁹X = "99008240" und Y =
"10120000" und Ersetzen der niedrigstwertigen Ziffer (in
diesem Fall "0") durch das positive Zeichen erhaltener Wert
"0912824C" im Register A gespeichert wird.
Auf diese Weise kann im Register A das Produkt 1012 × 902 =
912824 erhalten werden. Die Multiplikation ist außerdem bei
dem Schritt beendet, wo das n-te H = 0 verwendet wird, wobei
n die Anzahl relevanter Ziffern des Multiplikators einschließ
lich des positiven Vorzeichens ist. In diesem Beispiel ist es
Schritt V, weil H = 0 für die Schritte II bis V mit Ausnahme
des Schrittes I gegeben ist.
Gemäß den obigen Ausführungen wird durch Er
mittlung der Anzahl der bedeutsamen Stellen des Multiplikators
einschließlich des Vorzeichens und durch Hinzufügen des Vor
zeichens zum Teilergebnis jeder Addition/Subtraktion das ge
wünschte Ergebnis mit dem Vorzeichen, nämlich "0912824C"
im letzten Schritt in Register A erhalten. Deshalb ist vor
teilhafterweise kein weiterer Nachverarbeitungsschritt zur
Kombination der über zwei benachbarte Register verteilten
Produktteile oder zum Addieren des Vorzeichens wie beim be
kannten Multiplikationsverfahren nötig.
Obwohl im vorangehend beschriebenen Ausführungsbeispiel der
Multiplikator und die Teilprodukte im selben Register ge
speichert wurden, muß das nicht notwendigerweise so sein. Es
ist deutlich, daß sie in verschiedene Register gesetzt werden
können. Durch die mögliche Trennung der Register für Multipli
kator und die Teilprodukte kann das Extrahieren der jeweiligen
Ziffern aus dem Multiplikator und das Dekodieren vom
Additions/Subtraktionsvorgang getrennt werden. Dann ist leicht
ein Verfahren realisierbar, bei dem diese Vorgänge, die bei
diesem Ausführungsbeispiel im gliechen Zyklus ablaufen, in
verschiedenen Zyklen ablaufen. Dadurch lassen sich Probleme
wegen verschiedener Gatterlaufzeiten vermeiden.
Bei der erfindungsgemäßen Multiplikationseinrichtung
wird der Vorgang zur Addition/Subtraktion des Multiplikan
den entsprechend dem Wert jeder Ziffer des Multiplikators
und der Vorgang für die Stellenverschiebung für die Verarbeitung
der folgenden Ziffer in einer Folge von Verarbeitungen bewirkt.
Da durch den Multiplikator-Dekodierer ent
schieden wird, ob die Stellenverschiebeeinrichtung verschieben soll oder nicht,
kann das Multiplika
tionsverfahren in nur einer Schleife, die Register, eine Stellenver
schiebeeinrichtung und ein Addier/Subtrahierwerk enthält, aus
geführt werden. Da außerdem die Teilprodukte und der Multipli
kator im selben Register gespeichert werden können, kann die
Nachverarbeitung zur Vereinigung der Werte, die in mehreren Registern
gespeichert sind
entfallen, wodurch die Verarbeitungsgeschwindig
keit erhöht wird.
Claims (2)
- Multiplikationseinrichtung zur Bildung eines binärkodier ten Dezimalprodukts aus jeweils einem binärkodierten dezi malen Multiplikanden (Y) mit einem Multiplikator (X) durch Summierung von Teilprodukten, von denen jeweils eines das Produkt aus einer Multiplikatorziffer mit dem Multiplikan den ist, wobei die Summierung so erfolgt, daß ein Teilpro dukt für eine Multiplikatorziffer zu einem Zehntel der Summe der Teilprodukte der niedrigeren Stellen des Multi plikators addiert wird und die Bildung des Zehntels der Teilprodukte durch Stellenverschiebung erfolgt, und wobei die Addition der Teilprodukte vorgenommen wird, wenn bei einem Wert einer Multiplikatorziffer gleich n eine n-malige Addition des Multiplikanden oder eine 10 minus n-malige Subtraktion des Multiplikanden, mit nachfolgender Korrektur, erfolgt, wobei die Multiplikationseinrichtung aufweist:
- - ein Register (A) zur Aufnahme der aufzusummierenden Teilprodukte;
- - ein Multiplikandenregister (B) zur Aufnahme des Multi plikanden;
- - einen Multiplikator Dekodierer (3);
- - ein Addier/Subtrahierwerk (1), an dessen ersten Eingang der Mulitplikand anliegt; und
- - eine Stellenverschiebeeinrichtung (2);
- dadurch gekennzeichnet,
daß das Register (A) an den Ausgang des Addier/Subtrahier werks (1) angeschlossen ist zur Aufnahme der Resultate der wiederholten Additionen bzw. Subtraktionen;
daß die Stellenverschiebeeinrichtung (2) zwischen dem Ausgang des Registers (A) und dem zweiten Eingang des Addier/Subtrahierwerks (1) liegt;
daß der Multiplikator-Dekodierer (3) die Stellenver schiebeeinrichtung (2) je Multiplikatorziffer so steuert, daß deren Ausgang bei der ersten Ausführung einer wiederholten Addition bzw. Subtraktion ein Zehntel der aufsummierten Teilprodukte an das Addier/
Subtrahierwerk (1) anlegt und daß während der weiteren Abarbeitung der wiederholten Additionen bzw. Sub traktionen für die betreffende Ziffernmultiplikation keine Stellenverschiebung erfolgt;
wobei der Multiplikator (X) zu Beginn der Operationen im niederwertigsten Teil des Registers (A) angeordnet ist, und der Multiplikand (Y) vor der ersten Teilproduktbildung um so viele Ziffernstellen im Multiplikandenregister (B) zu höherwertigen Stellen verschoben ist, wie der Multipli kator (X) besetzte (bedeutsame) Stellen hat.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58246929A JPS60140429A (ja) | 1983-12-28 | 1983-12-28 | 10進乗算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3447729A1 DE3447729A1 (de) | 1985-07-18 |
DE3447729C2 true DE3447729C2 (de) | 1989-12-21 |
Family
ID=17155851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19843447729 Granted DE3447729A1 (de) | 1983-12-28 | 1984-12-21 | Verfahren und vorrichtung zur dezimal-multiplikation |
Country Status (3)
Country | Link |
---|---|
US (1) | US4745569A (de) |
JP (1) | JPS60140429A (de) |
DE (1) | DE3447729A1 (de) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4947364A (en) * | 1985-10-23 | 1990-08-07 | Hewlett-Packard Company | Method in a computing system for performing a multiplication |
JPH07107664B2 (ja) * | 1987-02-13 | 1995-11-15 | 日本電気株式会社 | 乗算回路 |
FR2738365A1 (fr) * | 1987-10-23 | 1997-03-07 | Thomson Csf | Procede et circuits pour la multiplication modulo un nombre binaire n de deux nombres binaires et leurs utilisations aux calculs d'exponentiations |
JP2653470B2 (ja) * | 1988-05-20 | 1997-09-17 | 株式会社日立製作所 | 10進乗算装置 |
JPH07118630B2 (ja) * | 1989-06-29 | 1995-12-18 | 三菱電機株式会社 | 乗算用信号処理回路 |
KR100389082B1 (ko) * | 1995-04-24 | 2004-09-04 | 삼성전자주식회사 | 가산기와감산기의조합을이용한승산기 |
JP2000322235A (ja) * | 1999-05-07 | 2000-11-24 | Sony Corp | 情報処理装置 |
US7167889B2 (en) * | 2003-05-12 | 2007-01-23 | International Business Machines Corporation | Decimal multiplication for superscaler processors |
US7136893B2 (en) * | 2003-07-10 | 2006-11-14 | International Business Machines Corporation | Decimal multiplication using digit recoding |
US7519647B2 (en) * | 2005-02-09 | 2009-04-14 | International Business Machines Corporation | System and method for providing a decimal multiply algorithm using a double adder |
US7475104B2 (en) | 2005-02-09 | 2009-01-06 | International Business Machines Corporation | System and method for providing a double adder for decimal floating point operations |
US8417761B2 (en) * | 2008-12-08 | 2013-04-09 | International Business Machines Corporation | Direct decimal number tripling in binary coded adders |
US8495124B2 (en) * | 2010-06-23 | 2013-07-23 | International Business Machines Corporation | Decimal floating point mechanism and process of multiplication without resultant leading zero detection |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1053686A (de) * | 1964-07-22 | |||
US3500026A (en) * | 1965-09-10 | 1970-03-10 | Vyzk Ustav Matemat Stroju | Multiplication apparatus utilizing either a positive or a negative multiplier wherein form conversion at each interface of the multiplying unit is unnecessary |
JPS5127977A (de) * | 1974-09-03 | 1976-03-09 | Takeo Kobayashi | |
DD119891A1 (de) * | 1975-05-15 | 1976-05-12 | ||
JPS54159833A (en) * | 1978-06-08 | 1979-12-18 | Hitachi Ltd | Decimal multiplier |
JPS5624645A (en) * | 1979-08-08 | 1981-03-09 | Hitachi Ltd | Decimal multiplication system |
JPS58119047A (ja) * | 1982-01-11 | 1983-07-15 | Hitachi Ltd | 10進乗算又は除算装置 |
JPS58129653A (ja) * | 1982-01-29 | 1983-08-02 | Hitachi Ltd | 乗算方式 |
JPS6011927A (ja) * | 1983-07-01 | 1985-01-22 | Hitachi Ltd | 10進乗算装置 |
JPS60247735A (ja) * | 1984-05-24 | 1985-12-07 | Nec Corp | 10進乗算回路 |
-
1983
- 1983-12-28 JP JP58246929A patent/JPS60140429A/ja active Granted
-
1984
- 1984-12-21 DE DE19843447729 patent/DE3447729A1/de active Granted
- 1984-12-27 US US06/686,692 patent/US4745569A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US4745569A (en) | 1988-05-17 |
JPS60140429A (ja) | 1985-07-25 |
DE3447729A1 (de) | 1985-07-18 |
JPH053614B2 (de) | 1993-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2246968C2 (de) | Einrichtung zur Multiplikation zweier Gleitkommazahlen | |
DE3447729C2 (de) | ||
DE2628473C3 (de) | Digitales Faltungsfilter | |
DE1549476C3 (de) | Anordnung zur Ausführung von Divisionen | |
DE2353421B2 (de) | Elektronischer rechner | |
DE2712224A1 (de) | Datenverarbeitungsanlage | |
DE3229452C2 (de) | Anordnung zur Durchführung von arithmetischen und logischen Operationen | |
DE1549508B2 (de) | Anordnung zur uebertragsberechnung mit kurzer signallaufzeit | |
DE3440680C2 (de) | ||
DE3303269C2 (de) | ||
DE3447634C2 (de) | ||
DE2203143C3 (de) | Rechenanordnung zum Dividieren von Dezimalzahlen | |
DE3302885C2 (de) | ||
DE3302013C2 (de) | ||
DE2142636C3 (de) | Rechenwerk für die Durchführung digitaler Multiplikationen | |
DE2203144C3 (de) | Rechenanordnung zum Dividieren | |
DE1181459B (de) | Multiplikationsschaltung fuer elektronische Zifferrechenmaschinen | |
DE1303692C2 (de) | Binaerrechner | |
DE2902488C2 (de) | ||
DE1524146C (de) | Divisionseinrichtung | |
WO1994015278A1 (de) | Schaltungsanordung zum bilden der summe von produkten | |
DE2211445A1 (de) | Vorrichtung zur Bildung des Qua drats einer Binarzahl | |
DE2150853C3 (de) | Divisions-Vorrichtung für ein serielles Vier-Spezies-Rechenwerk | |
DE1136139B (de) | Resultatwerk fuer elektronisch zaehlende oder rechnende Maschinen | |
DE1963030C3 (de) | Anordnung zum Umsetzen einer Binärzahl in eine tetradisch codierte Dezimalzahl in einem Rechner |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |