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
Application number
DE3447729A
Other languages
English (en)
Other versions
DE3447729A1 (de
Inventor
Akira Hadano Jp Yamaoka
Kenichi Sagamihara Jp Wada
Kazunori Hadano Jp Kuriyama
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

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.
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)

  1. 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);
  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.
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 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)

* 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 日本電気株式会社 乗算回路
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)

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

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