DE3447729A1 - Verfahren und vorrichtung zur dezimal-multiplikation - Google Patents
Verfahren und vorrichtung zur dezimal-multiplikationInfo
- Publication number
- DE3447729A1 DE3447729A1 DE19843447729 DE3447729A DE3447729A1 DE 3447729 A1 DE3447729 A1 DE 3447729A1 DE 19843447729 DE19843447729 DE 19843447729 DE 3447729 A DE3447729 A DE 3447729A DE 3447729 A1 DE3447729 A1 DE 3447729A1
- Authority
- DE
- Germany
- Prior art keywords
- register
- multiplier
- digit
- value
- decimal
- 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
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
HITACHI, LTD.
6, Kanda Surugadai 4-chome,
Chiyoda-ku, Tokyo, Japan
Verfahren und Vorrichtung zur Dezimal-Multiplikation
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Dezimalmultiplikation. In Figur 1 ist ein Beispiel einer herkömmlichen
Dezimalmultiplikationsvorrichtung dargestellt. Die Dezimalmultiplikation wird mittels eines Registers A, das
einen Multiplikator speichert, eines Registers C, das einen Multiplikanten speichert, zwei Registern B und D, deren Anfangswert
0 ist und die Teilprodukte speichern, einem Multiplikator-Dekodierer 3, der eine Ziffer des Multiplikators
vom Register A extrahiert und einen Addierer 1 und ein Gatter 4 steuert, einem Schieber 2 und einem Wähler 5 ausgeführt.
Das heißt, daß eine Ziffer "n" des Inhalts des Registers A, das heißt des Multiplikators herausgezogen wird. Der Inhalt
X des Registers B und der Inhalt des Registers C, das ist der Multiplikant der mit η multipliziert wird, werden gesteuert
81-A9346/AtAl
vom Multiplikatordekoder 3 abhängig von η addiert und das Ergebnis
wieder in Register B gesetzt. Dies ist der Multipliziervorgang 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
Ziffern 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 vom Schieber 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 herausgeschobene
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 in Register D und die höherwertigeren Ziffern
in Register B gespeichert sind. Der Multiplikationsvorgang wird sowohl durch die den Multiplikanten η-mal addierende
innere Schleife, bei der η eine aus dem Multiplikator heraus extrahierte Ziffer ist als auch durch die äußere die obenbeschriebene
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 Multiplikator extrahierte Ziffer η groß ist (z.B. gleich oder größer
als 6) , der Multiplikant Y vom Inhalt X des Registers B, das die höherwertigeren Ziffern des Teilprodukts darstellt (10-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 verringert, hat eine weite Anwendung gefunden.
Bei dem anhand der Figur 1 beschriebenen Dezimalmultiplikationsverfahren
gibt es folgende die Erhöhung der Verarbeitungsgeschwindigkeit hindernde Probleme.
1 . Die Verarbeitung wird mittels zweier Schleifen durchgeführt, d.h. der inneren Schleife für die Addition/Subtraktion
und der äußeren Schleife für die Verschiebung um eine Ziffer, und diese Prozeduren der verschiedenen Schleifen
werden getrennt bewirkt.
2. Da die bei der Operation anfallenden Teilprodukte zum Speichern in Register B und Register D geteilt sind, muß
die Verschiebung für jede Ziffer in einem Register ausgeführt werden, das zweimal so lang wie das gewöhnliche
Register ist (d.h. die Register B und D sollten als Registerfolge betrachtet werden).
3. Da das Endergebnis, nämlich das Produkt,getrennt in Register
B und D erhalten wird, müssen die zwei Teile zu einem Ergebnis zusammengesetzt werde"n, wozu verschiedene nachfolgende
Prozeduren nötig sind.
Es ist Aufgabe der Erfindung, die obengenannten Probleme zu lösen und ein Verfahren und eine Vorrichtung zur Dezimalmultiplikation
zu ermöglichen, die die Prozedur für die innere Schleife für Addition/Subtraktion und die äußere Schleife für
die Verschiebung um eine Ziffer nicht getrennt sondern zusammen ausführen. Ferner sollen sowohl der Multiplikator als auch die
Teilprodukte in einem gemeinsamen Register gespeichert sein, so daß keine Verarbeitungszeit für irgendeine Nachverarbeitung
zur Kombination mehrerer in verschiedenen Registern gespeicherter Teile zu einem gemeinsamen Ergebnis nötig ist, was die
Verarbeitungszeit verringert.
Zur Lösung der obigen Aufgabe weist das erfindungsgemäße Verfahren,
bei dem ein Register A den Multiplikator speichert,
ein Register B den Multiplikanten speichert, ein Schieber den Ausgang des Registers A verschiebt und ein Addierer/Subtrahierer
Addition bzw. Subtraktion ausführt, folgende Verfahrensschritte auf:
a) eine bestimmte Ziffer des Inhalts des Registers A wird erfaßt;
b) der Ausgang des Registers A wird um eine Ziffer nach rechts verschoben;
c) der Ausgang des Registers B wird zum Ergebnis das durch die Verschiebung im Schritt b) erhalten wird, so oft
addiert, wie es die in Schritt a) erfaßte Zahl angibt; und
d) Rückkehr zu Schritt a) und Wiederholung der Verfahrensschritte für alle Ziffern des Multiplikators.
Die Vorrichtung, die die obige Aufgabe löst, weist folgende Komponenten auf:
Ein Register A , das den Multiplikator speichert, ein Register B, das den Multiplikanten speichert,
einen Schieber, der den Ausgang des Registers A unverändert oder nach dessen Verschiebung abhängig von einem ersten Signal
ausgibt,
ein Gatter, das den Ausgang des Registers B oder "0" abhängig von einem zweiten Signal ausgibt,
einen Addierer/Subtrahierer, der den Ausgang des Schiebers und den des Gatters addiert und das Ergebnis in Register A
speichert, und
eine Einrichtung, die den Wert einer vom Inhalt des Registers A gewählten Ziffer empfängt und das Gatter und den Schieber
durch Erzeugung des ersten Signals und des zweiten Signals aufgrund des empfangenen Werts steuert, so daß der Multiplikant
η-mal zum Inhalt des Registers A addiert oder (10-n) mal vom Inhalt des Registers A subtrahiert wird, wobei η dem
empfangenen Wert entspricht.
-S-
Die Erfindung wird im folgenden anhand der Zeichnung näher beschrieben. Es zeigen:
Fig. 1 ein Blockdiagramm , das das herkömmliche Dezimalmultip
likat ions verfahren erläutert;
Fig. 2 ein Blockdiagramm, das ein Ausführungsbeispiel der Erfindung erläutert;
Fig. 3 ein Blockdiagramm, das den Schaltungsaufbau
des Multiplikator-Dekoders 3 in Figur 2 zeigt;
Fig. 4 ein Schema, das die Betriebsweise des Dekoders 20 in Figur 3 erklärt; und
Fig. 5 ein Schema, das den Multiplikationsbetrieb des erfindungsgemäßen Verfahrens erklärt.
In Figur 2 ist ein Blockschaltbild eines Ausführungsbeispiel der Erfindung dargestellt.
Zur Durchführung der Dezimalmultiplikation weist dieses Ausführungsbeispiel
folgende Komponenten auf:
Ein Register A, das den Multiplikator und Teilprodukte speichert,
ein Register B, das den Multiplikanten speichert, einen
Dezimaladdierer/Subtrahierer 1, einen Vorschieber 2 , der den Inhalt des Registers A arithmetisch um eine Dezimalstelle
nach rechts schiebt, einen Multiplikator/Dekodierer 3, der aufeinanderfolgend eine Ziffer aus dem Multiplikator aus dem
Register A von der niedrigswertigen Ziffer an über eine Leitung 10 herauszieht und die Verarbeitung steuert sowie ein Gatter 4,
das den Ausgang des Registers B zu 0 setzt und einen +0 oder -0 Betrieb ermöglicht.
Im folgenden wird die Wirkungsweise des in Figur 2 dargestellten Ausführungsbeispiels erläutert.
Bei zwei mittels einer Multiplikationsoperation zu verarbeitenden Operanden wird derjenige,dessen Absolutwert größer ist,
Multiplikant und der andere Multiplikator genannt. Letzterer wird im Register A gespeichert. Der Multiplikant ohne Vorzeichen
wird um diejenige Ziffernanzahl nach links verschoben,
die gleich der Anzahl relevanter Ziffern des Multiplikators ist und in Register 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 effektiven Ziffern
vom Register über, auch wenn der Multiplikant nach links verschoben wird. Umgekehrt kann diese Anzahl relevanter Ziffern
ebenfalls durch die Position der höchstwertigen Ziffer des Multiplikators , die nicht "0" ist, einschließlich des Vorzeichens
bestimmt werden.
Eine Ziffer des Multiplikators wird über die Leitung 10 aus dem Register A herausgezogen. Der Multiplikatordekodierer 3
dekodiert diese Ziffer und steuert den Addierer 1, den Vorschieber
2 und das Gatter 4.
Fig. 3 stellt ein Blockdiagramm des Multiplikatordekodierers dar. Figur 4 zeigt Einzelheiten der Wirkungsweise des Dekodierers
20 in Figur 3.
Der Multiplikatordekodierer3 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 eine Subtraktion (S = 1) handelt und einen Zähler M 23 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-Dekodierers 3 erläutert. Das Zeichen "0X" 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 vom Vorschieber 2 ausgeführt, wenn
die Leitung 11 vom Dekoder 20 "1" ist.
Das Zeichen "0X + Y" bedeutet, daß "0X", 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" aufgefüllt
wurde mit dem Inhalt "Y" des Registers B addiert wurde.
Das Zeichen "9X" 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. Der Vorschieber 2 führt diese Verschiebung durch, wenn die Leitung 11 vom Dekoder 20 "2" ist.
In dem Zustand, in dem die Anfangswerte sowohl des Kennzeichens H=O als auch des Kennzeichens S=O sind, werden, wie
im oberen Teil a) der Fig. 4 dargestellt, abhängig vom Wert der Leitung 10 die dargestellten Werte der Kennzeichen H 21
und S 22, des Zählers M 23 und der Leitung 11 bis 13 ausgegeben .
Wenn die Leitung 12 "0" ist, wird das Gatter 4 eingeschaltet und der Inhalt des Registers B unverändert ausgegeben.
Umgekehrt wird, wenn die Leitung 12 "1" ist, das Gatter 4 ausgeschaltet
und der Eingang des Addierers/Subtrahierers 1 auf "0" gesetzt. Wenn die Leitung 13 "0" ist, addiert der Addierer/
Subtrahierer 1 . Wenn die Leitung 13 "1" ist, subtrahiert der Addierer/Subtrahierer 1. Beispielsweise werden beim Zustand
H=O, S=O, L10 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 Leitungen
11, 12 und 13 jeweils 0, 0 und 0 aus und bewirkt die Operation X + 0. Auf diese Weise wird durch das Steuern des
Vorschiebers 2, des Gatters 4 und des Addierer/Subtrahierers 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 Kennzeichen 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 Figur 4 mit H = 1 bezeichneten Zustand weitergefahren. Weiterhin
ist das Kennzeichen S = 1, falls die Leitung 10 die Werte von "6" bis "9" annimmt. Das bedeutet, das die Addition/
Subtraktion für diese Ziffer eine Subtraktion ist.
Die Bedingung H=O 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 abhängig vom Wert der Leitung 10 so gesetzt, wie der mittlere
Aschnitt b) in Fig. 4 zeigt und gleichzeitig eine der Operationen 9X+Y, 9X-Y und 9X-O 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 durchgefü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
von "5" bis "9" geht.
Der Zustand H = 1 und S=O bedeutet, daß die laufende Operation 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 den Vorschieber 2 unverändert durchgehen kann. Die Leitung 12 wird auf 0 gesetzt,
so daß der Inhalt Y des Registers B das Gatter 4 passieren kann. Die Leitung 13 wird auf 0 gesetzt, so daß vom Addierer/
Subtrahierer 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 Subtraktion
ist. Unter dieser B dingung 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 durchgeführt . Das heißt, daß der Inhalt des Registers B vom Inhalt
des Registers A vom Addierer/Subtrahierer 1 in Fig. 2 abgezogen wird.
Das heißt, daß mit der Bedingung H = 1 abhängig vom Wert des Kennzeichens S Additionen oder Subtraktionen solange ausgefü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 obenbeschriebenen
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 Multiplikation genauer zu zeigen, wird das erfindungsgemäße
Verfahren 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 erfindungsgemäßen
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 Beginn 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 angegeben
sind. Weil 1012 > 902 ist, wird "902" als Multiplikator in Register A gespeichert. Hexadezimal "C" am rechten
Ende bedeutet, daß der Multiplikator "902" positiv ist. Einschließlich des Vorzeichens ist die Anzahl der relevanten
Ziffern 4. Der größere Wert, nämlich "1012" ist als Multiplikant um 4 Ziffern nach links verschoben und in Register B
gespeichert.
Die Leitung 10 in Figur 2 steht hier auf der zweiten Ziffer,
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=O5S=O und Leitung 10 hat den Wert "2".
Figur 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 durchAddition 0X = "00000902" mit Y =
"10120000" und Ersetzen der niedrigswertigen 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=O und M = 1. Figur 4 zeigt , daß
dann H=0,S=0 und M=O 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 Zeichen am rechten Ende der Wert "2024090C" erhalten und im Register A gespeichert wird.
In Schritt III ist H = 0, S = 0 und die Leitung 10 hat den Wert "0". Figur 4 zeigt, daß dann H=O5S=O und M=O
gegeben sind. Gleichzeitig wird die Operation X + 0 ausgeführt. Das heißt, daß ein durch Ersetzen der niedrigstwertigen
Ziffer (in diesem Fall "0") durch das positive Zeichen erhaltener Wert "0202409C" in Register A gespeichert wird.
In Schritt IV ist H=O, S=O und die Leitung 10 hat den Wert "9". Figur 4 zeigt, daß dann H=O5S=I und M=O
gegeben sind und gleichzeitig die Operation X-Y ausgeführt wird. Das heißt, daß ein durch Subtraktion des Wertes
Y = "10120000" vom Wert 0X = "00202409" und durch Ersetzen
der niedrigstwertigen Ziffer (das ist in diesem Fall "9" )
durch das positive Zeichen erhaltener Wert "9009240C" in
Register A abgespeichert wird.
In Schritt V sind H = 0, S = 1 und die Leitung 10 hat den Wert "0". Dann sind gemäß Figur 4H=O5S=O und M=O gegeben
und es wird die Operation X+Y ausgeführt. Das heißt , daß
ein durch Addition der Werte 9X = "99008240" und Y = "10120000" und Ersetzen der niedrigstwertigen Ziffer (in
diesem Fall "0") durch das positive Zeichen erhaltener Wert "0912824C" in Register A gespeichert wird.
Auf diese Weise kann in Register A das Produkt 1012 χ 902 = 912824 erhalten werden. Die Multiplikation ist außerdem bei
dem Schritt beendet, wo das n-te H=O verwendet wird, wobei η die Anzahl relevanter Ziffern des Multiplikators einschließlich
des positiven Vorzeichens ist. In diesem Beispiel ist es Schritt V, weil H=O für die Schritte II bis V mit Ausnahme
des Schrittes I gegeben ist.
Gemäß den obigen Ausführungen wird erfindungsgemäß durch Ermittlung
der Anzahl der relevanten Ziffern des Multiplikators einschließlich des Vorzeichens und durch Hinzufügen des Vorzeichens
zum Teilergebnis jeder Addition/Subtraktion das gewünschte Ergebnis mit dem Vorzeichen, nämlich "0912824C"
im letzten Schritt in Register A erhalten. Deshalb ist vorteilhafterweise kein weiterer Nachverarbeitungsschritt zur
Kombination der über zwei benachbarte Register verteilten Produktteile oder zum Addieren des Vorzeichens wie beim bekannten
Multiplikationsverfahren nötig.
Obwohl im vorangehend beschriebenen Ausführungsbeispiel der Multiplikator und die Teilprodukte im selben Register gespeichert
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 gleichen Zyklus ablaufen, in verschiedenen Zyklen ablaufen. Dadurch lassen sich Probleme
wegen verschiedener Gatterlaufzeiten vermeiden.
Erfindungsgemäß wird also bei einem Dezimalmultiplikationsverfahren
der Vorgang zur Addition/Subtraktion des Multiplikanten entsprechend des Wertes jeder Ziffer des Multiplikators
und der für das Verschieben der Ziffern für die Verarbeitung der folgenden Ziffer in einer Folge von Verarbeitungen bewirkt
Da erfindungsgemäß durch den Multiplikator-Dekodierer entschieden wird, ob der Vorschieber verschieben soll oder nicht
und dies dem Vorschieber mitgeteilt wird, kann das Multiplikationsverfahren
in nur einer Schleife,die Register, einen
Vorschieber und einen Addierer/Subtrahierer enthält, ausgeführt werden. Da außerdem die Teilprodukte und der Multiplikator
im selben Register gespeichert werden können, kann die Nachverarbeitung zur Kombination mehrerer Register entfallen.
Folglich ist vorteilhafterweise die Verarbeitungsgeschwindigkeit
erhöht.
- Leerseite -
Claims (9)
1. Vorrichtung zur Dezimalmultiplikation, gekennzeichnet durch
ein Register (A ) ,das den Multiplikator speichert, ein Register (B),das den Multiplikanten speichert,
einen Schieber (2), der den vomRegister (A) ausgegebenen Wert
abhängig von einem ersten Signal unverändert oder verschoben abgibt,
ein Gatter 4, das den Ausgang des Registers (B) oder "0"
abhängig von einem zweiten Signal ausgibt,
einen Addierer/Subtrahierer (1), der den Ausgang des Schiebers (2) und des Gatters (4) addiert und das Ergebnis
in Register(A) speichert, und
einen Multiplikator-Dekodierer (3), der den Wert einer vom Inhalt des Registers (A) gewählten Ziffer empfängt und durch
Erzeugung des ersten und des zweiten Signals das Gatter (4) und den Schieber (2) aufgrund des empfangenen Werts
so steuert, daß der Multiplikant η-mal zum Inhalt des Registers A addiert oder (10-n)-mal von diesem abgezogen
wird, wobei η dem empfangenen Wert entspricht.
2. Dezimalmultipliziervorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß
81-(A9346)AtAl
der zumindest um die Ziffernlänge N des Multiplikators
nach links verschobene Multiplikant in Register B eingespeichert wird.
3. Dezimalmultipliziervorrichtung nach Anspruch 1, da durch gekennzeichnet, daß
der Multiplikant ein Vorzeichen (C) enthält:
4. Dezimalmultipliziervorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß
die Länge N des Multiplikanten durch die Anzahl der relevanten Ziffern des Multiplikators einschließlich des Vorzeichenteils
bestimmt wird.
5. Dezimalmultipliziervorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß
der Schieber (2) die ihm eingegebenen Daten, wenn das erste Signal einen ersten Wert hat, um eine Ziffer nach rechts
verschiebt und am linken Ende "0" dazusetzt, die eingegebenen Daten um eine Ziffer nach rechts verschiebt
und am linken Ende "9" dazusetzt, wenn das erste Signal einen zweiten Wert hat und
die eingegebenen Daten nicht verschiebt, wenn das erste Signal einen dritten Wert hat.
6. Dezimalmultipliziervorrichtung nach Anspruch 5, dadurch gekennzeichnet, daß
der Addierer/Subtrahierer (1) abhängig von einem dritten Signal den Ausgang des Schiebers (2) zum Ausgang des Gatters
(4) addiert bzw. letzteren vom ersteren abzieht, und der Multiplikator-Dekodierer (3) das dritte Signal abhängig
davon erzeugt, ob der empfangene Wert größer als ein vorgegebener Wert ist oder nicht.
7. Dezimalmultipliziervorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß
der Multiplikator-Dekodierer (3) das erste Signal mit dem ersten Wert oder mit dem zweiten Wert abhängig davon erzeugt,
ob die für die vorangehende Ziffer des Multiplikators ausgeführte Operation eine Addition oder Subtraktion
war.
8. Verfahren zur Dezimalmultiplikation mittels eines den Multiplikator speichernden Registers (A), eines den Multiplikanten
speichernden Registers (B),eines den Ausgang des Registers (A) verschiebenden Schiebers (2) und eines Addierers/
Subtrahierers (1),
gekennzeichnet durch folgende Verfahrensschritte:
a) Erfassen einer bestimmten Ziffer vom Inhalt des Registers
b) Verschieben des Ausgangs des Registers(A) um eine Ziffer
nach rechts mittels des Schiebers (2),
c) Addieren des Ausgangs des Registers (B)zum Ergebnis der in Schritt b) bewirkten Verschiebung so oft, wie die
in Schritt a) erfaßte Zahl angibt, und
d) Wiederholen des gesamten Verfahrens für alle Ziffern des Multiplikators jeweils beginnend mit Schritt a).
9. Dezimalmultiplikationsverfahren nach Anspruch 8, da durch gekennzeichnet, daß
der zumindest um die Länge des Multiplikators nach links verschobene Multiplikant in Register B gespeichert
ist.
. Dezimalmultiplikationsverfahren nach Anspruch 8,
dadurch gekennzeichnet, daß von zwei Operanden eines Dezimalmultiplikationsbefehls
der kleinere als Multiplikator und der größere als Multiplikant verwendet werden.
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 true DE3447729A1 (de) | 1985-07-18 |
DE3447729C2 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3836188A1 (de) * | 1987-10-23 | 1997-05-22 | Thomson Csf | Verfahren und Schaltungsanordnung zur Multiplikation Modulo eine Binärzahl N von zwei Binärzahlen sowie die Anwendung auf die Berechnung von Exponentialwerten |
Families Citing this family (12)
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 | 日本電気株式会社 | 乗算回路 |
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 |
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 |
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 |
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 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1259122B (de) * | 1964-07-22 | 1968-01-18 | Ibm | Schaltungsanordnung zur Durchfuehrung verkuerzter Multiplikationen oder Divisionen |
DD119891A1 (de) * | 1975-05-15 | 1976-05-12 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1524253A1 (de) * | 1965-09-10 | 1970-04-30 | Vyzk Ustav Matemat Stroju | Multiplikationsrechenwerk |
JPS5127977A (de) * | 1974-09-03 | 1976-03-09 | Takeo Kobayashi | |
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
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1259122B (de) * | 1964-07-22 | 1968-01-18 | Ibm | Schaltungsanordnung zur Durchfuehrung verkuerzter Multiplikationen oder Divisionen |
DD119891A1 (de) * | 1975-05-15 | 1976-05-12 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3836188A1 (de) * | 1987-10-23 | 1997-05-22 | Thomson Csf | Verfahren und Schaltungsanordnung zur Multiplikation Modulo eine Binärzahl N von zwei Binärzahlen sowie die Anwendung auf die Berechnung von Exponentialwerten |
Also Published As
Publication number | Publication date |
---|---|
JPH053614B2 (de) | 1993-01-18 |
DE3447729C2 (de) | 1989-12-21 |
US4745569A (en) | 1988-05-17 |
JPS60140429A (ja) | 1985-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2246968C2 (de) | Einrichtung zur Multiplikation zweier Gleitkommazahlen | |
DE2712224A1 (de) | Datenverarbeitungsanlage | |
DE2930441C2 (de) | Anzeigeeinrichtung zur wahlweisen dynamischen oder statischen Anzeige | |
DE3229452C2 (de) | Anordnung zur Durchführung von arithmetischen und logischen Operationen | |
DE3447729A1 (de) | Verfahren und vorrichtung zur dezimal-multiplikation | |
DE2524749C2 (de) | Digitale Filteranordnung | |
DE1169166B (de) | Modulí¬9 Pruefzahl-Rechner | |
DE3303269C2 (de) | ||
DE3440680C2 (de) | ||
DE1524114B2 (de) | Adreßrecheneinrichtung fur eine Datenverarbeitungsanlage | |
DE3447634A1 (de) | Dividiervorrichtung | |
DE2203143C3 (de) | Rechenanordnung zum Dividieren von Dezimalzahlen | |
DE3302013C2 (de) | ||
DE2029467B2 (de) | Schaltungsanordnung in einer datenverarbeitungsanlage zur steuerung der bearbeitung von programmen unterschiedlicher prioritaet | |
DE1126163B (de) | Verfahren und Vorrichtung zur Multiplikation | |
DE1549485C3 (de) | Anordnung zur Division binärer Operanden ohne Rückstellung des Restes | |
DE1549461C3 (de) | ||
DE2203144C3 (de) | Rechenanordnung zum Dividieren | |
DE1181459B (de) | Multiplikationsschaltung fuer elektronische Zifferrechenmaschinen | |
DE1234055B (de) | Anordnung zur Addition oder Subtraktion | |
DE1303692C2 (de) | Binaerrechner | |
DE1524253A1 (de) | Multiplikationsrechenwerk | |
DE2211445A1 (de) | Vorrichtung zur Bildung des Qua drats einer Binarzahl | |
DE1111429B (de) | Multiplikationsschaltung fuer eine Daten verarbeitende Maschine | |
DE2262751A1 (de) | Dynamisches sichtgeraet, z.b. fuer elektronische tischrechner |
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 |