DE3447729A1 - Verfahren und vorrichtung zur dezimal-multiplikation - Google Patents

Verfahren und vorrichtung zur dezimal-multiplikation

Info

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
Application number
DE19843447729
Other languages
English (en)
Other versions
DE3447729C2 (de
Inventor
Kazunori Hadano Kuriyama
Kenichi Sagamihara Wada
Akira Hadano Yamaoka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3447729A1 publication Critical patent/DE3447729A1/de
Application granted granted Critical
Publication of DE3447729C2 publication Critical patent/DE3447729C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/491Computations with decimal numbers radix 12 or 20.
    • G06F7/4915Multiplying; 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)

Patentansprüche
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.
DE19843447729 1983-12-28 1984-12-21 Verfahren und vorrichtung zur dezimal-multiplikation Granted DE3447729A1 (de)

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)

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

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

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

* Cited by examiner, † Cited by third party
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進乗算回路

Patent Citations (2)

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

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