DE3424078C2 - - Google Patents

Info

Publication number
DE3424078C2
DE3424078C2 DE3424078A DE3424078A DE3424078C2 DE 3424078 C2 DE3424078 C2 DE 3424078C2 DE 3424078 A DE3424078 A DE 3424078A DE 3424078 A DE3424078 A DE 3424078A DE 3424078 C2 DE3424078 C2 DE 3424078C2
Authority
DE
Germany
Prior art keywords
carry
decimal
digit
sum
adder
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
DE3424078A
Other languages
English (en)
Other versions
DE3424078A1 (de
Inventor
Toru Ohtsuki
Yoshio Oshima
Sako Ishikawa
Hideaki Yabe
Masaharu Hadano Jp Fukuta
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 DE3424078A1 publication Critical patent/DE3424078A1/de
Application granted granted Critical
Publication of DE3424078C2 publication Critical patent/DE3424078C2/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)

Description

Die Erfindung bezieht sich auf eine Dezimalmultiplikations­ einrichtung für binärcodierte Dezimalzahlen (BCD) nach dem Oberbegriff des Patentanspruchs 1. Mit dieser Erfindung verwandt sind die US-PSen 46 03 397 und 46 35 220.
Wenn ein binärcodierter Dezimalmultiplikand mit einem binär­ codierten Dezimalmultiplikator zu multiplizieren ist unter Bildung eines binärcodierten Dezimalendprodukts (vgl. Fig. 1), wird üblicherweise eine Einrichtung verwendet, in der Multiplikationen eines Multiplikanden mit einem Multiplikator vorbestimmter Abarbeitungsbreite (z. B. 1 Ziffer) unter Bildung von n Teilprodukten durchgeführt werden, wonach das Endprodukt durch Addition dieser Teilprodukte 1-n gebildet wird.
Ein Beispiel einer bekannten Dezimalmultiplikations- Einrichtung zur Durchführung der Operation gemäß Fig. 1 ist in Fig. 2 gezeigt. Dabei erfolgt die Multiplikation eines in ein Multiplikator-Register 1 gesetzten Multiplikators mit einem in Multiplikand-Register 2 gesetzten Multiplikanden wie folgt. Wenn ein Dezimalteilproduktgeber 4 aktiviert wird, erfolgt eine erste Dezimalteilprodukt-Operation des in das Multiplikand- Register 2 gesetzten Multiplikanden mit der vorbestimmten Abarbeitungsbreite, die von der Ziffer niedriger Ordnung des im Multiplikator-Register 1 gesetzten Multiplikators abgetrennt ist, und dieses erste Dezimalteilprodukt wird in ein Teilprodukt­ register 6 gesetzt. Gleichzeitig wird in ein Zwischenproduktregister 5 Null (0) (als Anfangswert) gesetzt, und der in das Multiplikator-Register 1 gesetzte Multiplikator wird von einem Verschiebeglied 3 um die abgetrennte Datenbreite nach rechts verschoben und wieder in das Multiplikator-Register 1 gesetzt. Dann werden der in dem Zwischenproduktregister 5 gesetzte Anfangswert 0 und das erste Dezimalteilprodukt, das in das Teilproduktregister 6 gesetzt ist, in einem Dezimalschleifen­ addierwerk 7 addiert, und das erste Dezimalzwischenprodukt wird um Zwischenproduktregister 5 übertragen und in dieses gesetzt. Praktisch wird der Ausgang des Dezimalschleifenaddierwerks 7 um die vorbestimmte Abarbeitungsbreite des Multiplikators nach rechts verschoben und in das Zwischenproduktregister 5 gesetzt. Die niedrigste Ordnung des Ausgangs des Dezimalschleifenaddierwerks 7 entsprechend der vorbestimmten Abarbeitungsbreite des Multiplikators wird mit der vorbestimmten Abarbeitungsbreite des Multiplikators über Leitung 99 übertragen und als niedrigste Ordnung des Endprodukts in das Multiplikator-Register 1 in die Stelle höchster Ordnung der vorbestimmten Abarbeitungsbreite des Multiplikators gesetzt. Die gleiche Operation wird für sämtliche bedeutsamen Ziffern des Multiplikators durchgeführt, so daß der niedrigere Anteil des Dezimalendprodukts der bedeutsamen Ziffernbreite des Multiplikators linksbündig ausgerichtet im Multiplikator-Register 1 enthalten ist und der höhere Anteil des Dezimalendprodukts als Ausgang des Dezimalschleifenaddierwerks 7 in einem letzten Operationszyklus erhalten wird. Danach wird der höhere Anteil des Dezimalendprodukts, der als Ausgang des Dezimalschleifen­ addierers 7 erscheint, auf Leitung 98 zum Multiplikand-Register 2 übertragen und in dieses gesetzt.
In der vorgenannten Weise kann das durch binärcodierte Dezimalziffern dargestellte Produkt erhalten werden, indem der binärcodierte Dezimalmultiplikand mit dem binärcodierten Dezimalmultiplikator multipliziert wird. Eine Beschleunigung der Operationsgeschwindigkeit des Dezimalschleifenaddierwerks 7 ist eine Möglichkeit, eine Hochgeschwindigkeits-Dezimalmultiplikation zu realisieren.
Normalerweise ist das Dezimalschleifenaddierwerk entsprechend Fig. 3 aufgebaut. Die Funktionsweise ist wie folgt: Vor einer Addition von zwei Eingängen A und B wird zuerst dem Eingang A für jede Ziffer der binärcodierten Dezimalzahl 6 hinzuaddiert in 6-Addiergliedern 9 i , 9 i+1, . . . (i = jede Ziffer) (unter Bildung von A′), und dieser Ausgang A′ sowie der weitere Eingang B werden in einer Binäroperation addiert (unter Bildung von R). Während der binären Addition wird, wenn (in einem ersten Fall) kein Übertrag von einer Ziffer der binärcodierten Dezimalzahl erfolgt, 6 von R subtrahiert für jede Ziffer der binärcodierten Dezimalzahl, und zwar in 6-Subtraktionsgliedern 11 i , 1 i+1. Wenn (in einem zweiten Fall) ein Übertrag auftritt, werden 6-Subtraktions-Korrekturglieder 12 i , 12 i+1 angesteuert, so daß der Wert von R selbst als Ausgang des Dezimalschleifenaddierwerks verwendet wird. Fig. 4a zeigt ein Beispiel des ersten Falls, und Fig. 4b zeigt ein Beispiel des zweiten Falls. Ein solches Vorgehen ist ferner von H. Hellermann in "Digital Computer System Principles Book Co., 1967), S. 300-301, angegeben. In der vorstehend erläuterten Weise werden zwei binärcodierte Dezimalzahlen eingegeben und binäraddiert, und ihre Summe wird gebildet. Da jedoch bei der binären Addition der nächste Operationszyklus erst beginnen kann, wenn der Übertrag von einem wertniedrigsten Bit zu einem werthöchsten Bit weitergeleitet ist, ergibt sich dabei eine systembedingte Einschränkung des Hochgeschwindigkeits-Betriebs.
Fig. 5 zeigt dageben einen beispielhaften Aufbau, bei dem in einer Binärmultiplikations-Einrichtung der Hochgeschwindigkeits- Betrieb eines Schleifenaddierwerks realisiert ist. Ein solcher Aufbau ist von K. Hwang in "Computer Arithmitic Principles, Architecture, and Design" (Hohn Wiley & Sons, Inc., 1979), etc. angegeben. Dabei wird der während der Multiplikation auftretende Übertrag im Schleifenaddierwerk als zwischengespeicherter Übertrag einbehalten bzw. zwischengespeichert, und nachdem sämtliche bedeutsamen Ziffern eines Multiplikators abgearbeitet sind, findet die Operation zur Weitergabe des Übertrags statt. In Fig. 5 wird die Multiplikation mit einem in das Register 1 gesetzten Multiplikator und einem in das Register 2 gesetzten Multiplikanden wie folgt durchgeführt. Wenn ein Binärteilproduktgeber 13 aktiviert wird, wird eine erste Binärteilproduktoperation des in das Multiplikand- Register 2 gesetzten Multiplikanden und der vorbestimmten Abarbeitungsbreite, die aus dem Bit niedriger Ordnung des Multiplikators im Multiplikator-Register 1 abgetrennt ist, durchgeführt, und das erste Teilprodukt wird in die Teilprodukt- Register 16 und 17 gesetzt. Normalerweise wird ein Übertrags­ zwischenspeicher-Addierwerk ebenfalls als Binärteilproduktgeber 13 verwendet. In Fig. 5 ist das Teilprodukt ferner auch im Teilprodukt-Summenregister 16 und im Teilprodukt-Übertrags­ register 17 in Form einer Summe (Teilsumme) bzw. eines zwischengespeicherten Übertrags enthalten. Gleichzeitig wird Null (0) in ein Zwischensummen-Register 14 und in ein Zwischenprodukt-Übertragsregister 15 als Anfangswert gesetzt, und der in das Multiplikator-Register 1 gesetzte Multiplikator wird von dem Verschiebeglied 3 nach Abtrennung einer erforderlichen Datenbreite nach rechts verschoben und in das Multiplikator- Register 1 gesetzt. Der in das Zwischenprodukt-Summenregister 14 und das Zwischenprodukt-Übertragsregister 15 gesetzte Anfangswert Null und die erste Teilproduktsumme bzw. der Teilproduktübertrag, die in das Teilprodukt-Summenregister 16 bzw. Teilprodukt-Übertragsregister gesetzt sind, werden in zwei Stufen von Übertragszwischenspeicher-Addierwerken 18 und 21, die beide mit einer Strichlinie 23 umschlossen sind, zur Übertragszwischenspeicherung addiert, und die Summe und der Übertrag des ersten Zwischenprodukts werden zu dem Zwischenprodukt- Summenregister 14 bzw. dem Zwischenprodukt-Übertragsregister 15 übertragen und in diese gesetzt. Wenn dann der Übertragsausgang des Übertragszwischenspeicher-Addierwerks zu einer nächstfolgenden Stufe des Addierwerks übertragen wird, wird er zur Übertragsausrichtung von Verschiebegliedern 19, 20 und 22 um ein Bit nach links verschoben. Der Summenausgang des Übertragszwischenspeicher-Addierwerks 21 und der Ausgang des Verschiebeglieds 22 werden von Verschiebegliedern 24 und 25 um die vorbestimmte Datenverarbeitungsbreite des Multiplikators nach rechts verschoben und in das Zwischenprodukt-Summenregister 14 bzw. das Zwischenprodukt-Übertragsregister 15 gesetzt. Die Daten der niedrigsten Ordnung der vorbestimmten Multiplikator-Abarbeitungsbreite des Summenausgangs des Übertragungszwischenspeicher-Addierwerks und des Ausgangs des eine Ein-Bit-Verschiebung nach links durchführenden Verschiebeglieds 22 sind beide gleich der vorbestimmten Abarbeitungsbreite des Multiplikators und werden einem Überlaufaddierwerk 26 zugeführt, in dem sie einer Binäraddition unterzogen werden. Dieser Ausgang des Überlaufaddierwerks 26, d. h. die niedrigste Ordnung des Endprodukts mit der vorbestimmten Multiplikator- Abarbeitungsbreite, wird zum Multiplikator-Register 1 übertragen und in die werthöchste Stelle der vorbestimmten Multiplikator- Abarbeitungsbreite des Registers 1 gesetzt.
Sämtliche anderen bedeutsamen Ziffern des Multiplikators werden in gleicher Weise abgearbeitet. So wird der Anteil niedriger Ordnung des Endprodukts mit bedeutsamer Multiplikator-Ziffernbreite im Multiplikator-Register 1 linksbündig ausgerichtet, und der Anteil höherer Ordnung des Endprodukts wird aus dem Summenausgang des Übertragszwischenspeicher-Addierwerks 21 und dem Ausgang des Verschiebeglieds 22, der durch Linksverschiebung des Übertragsausgangs des Übertragszwischenspeicher- Addierwerks 21 um ein Bit erhalten ist, in einem letzten Operationszyklus in Form einer Summe bzw. eines Übertrags erhalten. Die Summe und der Übertrag des Anteils höherer Ordnung des Endprodukts werden in Volladdierwerk 27 eingegeben und dort einer Binäraddition unterzogen. Der Ausgang des Volladdierwerks 27, d. h. der Anteil höherer Ordnung des Endprodukts, wird zum Multiplikand-Register 2 übertragen und in dieses gesetzt.
In der vorgenannten Weise wird ein Binärprodukt erhalten durch Multiplikation eines binären Multiplikanden mit einem binären Multiplikator. Wie Fig. 5 zeigt, können in diesem Fall die Übertragszwischenspeicher-Addierwerke 18 und 21 mit einer oder zwei Torstufen ausgebildet sein, und ein Warten auf die Beendigung der Übertrags-Weitergabe vom wertniedrigsten Bit des Addierwerks auf das werthöchste Bit desselben ist nicht erforderlich, so daß ein Hochgeschwindigkeits-Schleifenaddierwerk aufgebaut werden kann. Im Gegensatz zu einem Binärcode verwendet jedoch eine binärcodierte Dezimalzahl zur Darstellung einer Ziffer eine Vier-Bit-Breite und arbeitet mit 0-9 nur als Zahlenwerte, so daß ein Übertragszwischenspeicher-Addierwerk für die Binärzahl, an dessen Summenausgang und Übertragsausgang Binärwerte (1010)₂-(1111)₂ erscheinen, die für eine binärcodierte Darstellung von Dezimalzahlen nicht anwendbar sind.
In der DE-OS 29 52 229 ist eine dezimale Multiplikations-Einrichtung beschrieben, bei der die Teilprodukte durch ein Teilprodukt-Geber geliefert werden, der diese durch wiederholte Addition des Multiplikanden bildet. Um die Additionsvorgänge hierbei abzukürzen, wird geprüft ob die jeweilige Multiplikatorziffer größer oder kleiner als fünf ist. Ist die Ziffer größer als fünf, so wird nach Komplementbildung sooft der Multiplikand subtrahiert als dies dem komplementären Wert entspricht. Im Gegensatz zur vorliegenden Erfindung werden bei der bekannten Einrichtung jedoch keine Übertragungszwischen­ speicher-Addiereinheiten angewendet.
In IBM Technical Disclosure Bulletin, Vol 14, S. 1813 bis 1816, ist eine rein binär arbeitende Einrichtung zur Multiplikation und Division beschrieben, die mit Übertragszwischenspeicher-Addiereinheiten ausgerüstet ist. Eine entsprechende binäre Multiplikationseinrichtung ist vorstehend im Zusammenhang mit Fig. 5 der Zeichnungen als vorbekannt beschrieben worden.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ausgehend von einer ausschließlich dezimal arbeitenden Multiplikations- Einrichtung, die mit einem Dezimalschleifenaddierwerk arbeitet, eine Dezimalmultiplikations-Einrichtung mit den im Oberbegriff des Anspruchs 1 angegebenen Merkmalen zu schaffen, bei der die Zeit für die Weitergabe der Überträge von der niedrigsten zur höchsten Resultatziffernstelle nicht berücksichtigt werden muß.
Gelöst wird diese Aufgabe durch die im kennzeichnenden Teil des Anspruchs 1 angegebenen Merkmale. Zweckmäßige Ausgestaltungen und Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
Die Dezimalmultiplikations-Einrichtung nach der Erfindung bildet das Produkt eines Multiplikanden und eines Multiplikators, die jeweils binärcodierte Dezimalziffern sind. Die Dezimalmultiplikations-Einrichtung unterteilt den Multiplikator in mehrere Gruppen, deren jede wenigstens eine Ziffer enthält, erzeugt die Teilprodukte des Multiplikanden mit den jeweiligen Gruppen in aufeinanderfolgenden Operationszyklen und addiert das jeweilige Teilprodukt zu einem Zwischenprodukt, das die Summe der aufeinanderfolgenden Teilprodukte ist. Das Zwischenprodukt wird in Form einer Summe und eines Übertrags erhalten. Die Dezimalmultiplikations-Einrichtung enthält eine Übertragszwischenspeicher- Addiereinheit, die in jedem Operationszyklus eine zur Übertragszwischenspeicherung dienende Addition des Teilprodukts und des Zwischenprodukts durchführt, so daß eine Zwischensumme und ein Übertrag erhalten werden.
In einem ersten Operationszyklus ist das Zwischenprodukt Null, und jeder Ziffer eines der Zwischenprodukte, d. h. der Zwischensumme oder dem Zwischenübertrag oder dem Teilprodukt, wird eine 6 hinzuaddiert. Die Übertragszwischenspeicher-Addiereinheit enthält ein Überlaufaddierwerk und Korrektureinheiten. Die Korrektureinheiten korrigieren den Wert der Summe oder das Resultat der der Übertragszwischenspeicherung dienenden Addition ziffernweise und gleichzeitig und korrigieren erforderlichenfalls die Übertrags-Weiterleitung ziffernweise am Teilprodukt eines nachfolgenden Operationszyklus auf der Basis der Regel, die aus einer Kombination der Werte der Summe und des Übertrags, also den Resultaten der Übertragszwischenspeicher-Addition, abgeleitet ist.
Der Ausgang der Übertragszwischenspeicher-Addiereinheit dient als Zwischenprodukt im nachfolgenden Operationszyklus. In einem letzten Operationszyklus werden die Summe und der Übertrag aus der Übertragszwischenspeicher-Addiereinheit binär volladdiert, und jede Ziffer des Endprodukts wird dadurch erhalten, daß entweder das Resultat der binären Volladdition selbst gewählt wird, wenn in der jeweiligen Ziffernstelle ein Übertrag erzeugt wird, oder der durch Subtraktion von 6 vom Resultat erhaltene Werte gewählt wird, wenn kein Übertrag gebildet wird.
Anhand der Zeichnung wird die Erfindung beispielsweise näher erläutert. Es zeigen:
Fig. 1 eine Darstellung, die die Multiplikation eines Multiplikanden mit einem Multiplikator veranschaulicht;
Fig. 2 den Aufbau einer bekannten Dezimalmultiplikations- Einrichtung;
Fig. 3 den Aufbau eines Dezimaladdierwerks;
Fig. 4a und Fig. 4b Darstellungen zur Erläuterung des Betriebs des Dezimaladdierwerks von Fig. 3;
Fig. 5 eine Darstellung von Hochgeschwindigkeits-Binärmultiplikations- Einrichtung mit Übertragszwischenspeicher- Addiereinheiten;
Fig. 6 eine Darstellung des Operationskonzepts der Dezimalmultiplikations-Einrichtung nach der Erfindung;
Fig. 7 eine Additionstabelle zur Erläuterung der Dezimal­ übertrags-Korrektur gemäß der Erfindung;
Fig. 8 ein Beispiel der Dezimalübertrags-Korrekturtabelle für einen Summenausgang einer Übertragszwischenspeicher- Addiereinheit;
Fig. 9 ein Beispiel der Dezimalübertrags-Korrekturtabelle für eine Dezimalziffer höherer Ordnung;
Fig. 10 ein Ausführungsbeispiel eines Dezimaladdierwerks, umfassend Übertragszwischenspeicher- Addiereinheiten und Dezimalübertrags-Korrekturglieder, die bei der Erfindung verwendet werden.
Fig. 11 ein weiteres Beispiel der Dezimalübertrags-Korrekturtabelle für einen Summenausgang einer Übertrags­ zwischenspeicher-Addiereinheit;
Fig. 12 ein weiteres Beispiel der Dezimalübertrags- Korrekturtabelle für Dezimalziffern höherer Ordnung;
Fig. 13 ein weiteres Beispiel eines Dezimal­ addierwerks aus Übertragszwischenspeicher- Addiereinheiten und Dezimalübertrags- Korrekturgliedern;
Fig. 14 eine Ansicht der gesamten Dezimalmultiplikations- Einrichtung nach der Erfindung, aufgebaut unter Verwendung des Dezimaladdierwerks von Fig. 10;
Fig. 15 eine Darstellung eines Dezimalschleifenaddierwerk- Abschnitts der Dezimalmultiplikations-Einrichtung nach der Erfindung unter Verwendung des Dezimaladdierwerks von Fig. 13; und
Fig. 16 eine Darstellung einer weiteren Ausführungsform der Dezimalmultiplikations-Einrichtung nach der Erfindung.
Bevor die Ausführungsbeispiele erläutert werden, soll das Operationsprinzip der Einrichtung unter Bezugnahme auf die Fig. 6 und 7 beschrieben werden.
Fig. 6 dient der Erläuterung des Operationsprinzips der Einrichtung für die Erzeugung des Endprodukts oder Resultats durch die Wiederholung der Dezimalschleifenaddition unter Verwendung eines Dezimalschleifenaddierwerks mit einer Übertragszwischenspeicher- Addiereinheit. Die wiederholt dargestellten Einheiten wie eine binäre Übertragungszwischenspeicher-Addiereinheit (CSA) 29 werden in jedem Zyklus wiederholt eingesetzt; PP₁-PP₃ sind Dezimalprodukte für jeweilige Operationszyklen; P ist das Dezimalendprodukt; S₁-S₃ und C₁-C₃ sind Summen- und Übertragsausgangswerte der Übertragszwischenspeicher-Addiereinheiten in den jeweiligen Operationszyklen; S′₁-S′₃ sind Summen, die jeweils durch das Summenausgangskorrekturglied 31 während der Übertragskorrekturphase korrigiert werden; C′₁-C′₃ sind Überträge, die jeweils von der Verschiebeeinheit 30 bitmäßig ausgerichtet werden, und PP′₁-PP′₃ sind Dezimalteilprodukte, die jeweils während der Übertragskorrekturphase von dem Korrekturglied 32 für Dezimalziffern höherer Ordnung modifiziert werden. Eine Schleifenaddition beginnt durch Addition von 6 zu jeder Ziffer einer Dezimalzahl als Anfangssetzwert durch ein 6-Additions- Korrekturglied 28. Die erste Dezimaladdition des Zwischenprodukts in Form einer Summen- und Übertragsbildung und des Dezimalteilprodukts PP₁ läuft wie folgt ab:
  • (1) Das Zwischenprodukt in Form der Summe und des Dezimalteil­ produkts PP, erhalten durch weitere Betriebsmittel, wird von einer Übertragszwischenspeicher-Addiereinheit (CSA) 29 mit drei Eingängen zur Übertragszwischenspeicherung addiert. Der Übertrags­ ausgang C₁ des CSA 29 wird von der Verschiebeeinheit 30 um ein Bit nach links verschoben, so daß seine Bitposition ausgerichtet wird (Übertragszwischenspeicher-Additionsphase).
  • (2) Die Werte jeder Ziffer des Summenausgangs S₁ und des Übertragsausgangs C₁ werden geprüft, und der Korrekturwert für die Summe S₁ und die Dezimalziffer höherer Ordnung werden festgelegt, so daß ein richtiges Zwischenprodukt erhalten wird, wenn die Summe S′, der Ausgang des Summenausgang-Korrekturglieds 31 nach Übertragskorrektur sowie der Übertrag C′, der Ausgang der Verschiebeeinheit 30, die die Ausrichtung des Bitabschnitts durchführt, in binärer Form volladdiert werden (Übertragskorrekturphase).
  • (3) Wenn die Summe S′ nach Übertragskorrektur und der Übertrag C′ nach Bitstellenausrichtung im nächsten Zyklus in die Übertragszwischenspeicher-Addiereinheit 29 eingegeben werden, werden sie durch Verschiebeeinheiten 33 und 34 um die Verarbeitungsbreite der Einrichtung nach rechts verschoben, um die hohen Ziffernstellen des Zwischenprodukts gegenüber einem zweiten Zwischenprodukt PP₂ auszurichten (Ziffernstellen-Ausrichtungs­ phase).
Eine solche Verarbeitung ist ein Operationszyklus. Die Operationszyklen, die durch die Anzahl der dezimalen Teilprodukte PP entsprechend den bedeutsamen Ziffern des Multiplikators bestimmt sind, werden zur Erzeugung eines Endprodukts wiederholt.
Fig. 6 zeigt den Fall, daß zwei Dezimalteilprodukte PP₁ und PP₂ dezimaladdiert werden. Wenn 2 oder 3 Dezimalüberträge in dem bzw. durch den Summenausgang S₂ der Übertragszwischenspeicher- Addiereinheit 29 und den Übertrag C′₂ nach Bitstellenausrichtung infolge der Schleifenaddition für das Dezimalteilprodukt in einem zweiten Zyklus zwischengespeichert werden, also für den Operationszyklus, der der letzten Ziffer des Multiplikators entspricht, wird die Übertragskorrektur durch die Übertrags­ zwischenspeicher-Addition beendet, wobei das Dezimalteilprodukt PP₃ in einem dritten bzw. letzten Zyklus den Wert Null hat. Die Summe S′₃ und der Übertrag C′₃ werden in binärer Form volladdiert unter Verwendung eines binären Volladdierwerks 35. Jede Ziffer des Dezimalendprodukts P wird erhalten entweder durch Auswahl des Ergebnisses der binären Volladdition selbst, wenn ein Übertrag an der Ziffer erzeugt wird, oder durch Wahl des vom Resultat subtrahierten Werts durch das 6-Subtrahier- Korrekturglied 36, wenn kein Übertrag gebildet wird. In der vorgenannten Weise wird die gesamte Operation der Dezimalmultiplikations- Einrichtung unter Erzeugung eines richtigen Endprodukts durchgeführt.
Es wird noch erläutert, daß der Dezimalübertrag 0-3 durch den Summenausgang S von der Übertragszwischenspeicher- Addiereinheit und dem Übertrag C′ nach Bitstellenausrichtung zwischengespeichert ist.
Fig. 7 ist eine Additionstabelle der Ausgänge der Übertrags­ zwischenspeicher-Addiereinheit und die Zahl in jeder Stelle der Tabelle ist eine Dezimalzahl, die das Resultat der Addition des Summenausgangs S und des Übertrags C′, die die Breite einer Dezimalziffer haben, sein soll. Der Summenausgang S und der Übertragsausgang C der Übertragszwischenspeicher-Addiereinheit haben eine Dezimalziffernbreite, und der Übertrag C′ ist ein zur Bitstellenausrichtung um ein Bit nach links verschobener Ausgang des Übertrags C. In der Figur sind S, C und C′ sedezimal, und (S)₁₀ und (C′)₁₀ sind dezimal geschrieben. Die Zahlen 0-40, die dort eingeschrieben sind, wo sich S und C kreuzen, sind dezimal geschrieben, obwohl sie nicht als ( )₁₀ ausgedrückt sind. Nachstehend bedeutet ( )₂ binäre Schreibweise, ( )₁₀ bedeutet dezimale Schreibweise, und " " bedeutet sedezimale Schreibweise. Eine Ziffer der dezimalen Schreibweise ist ersichtlich die gleiche wie diejenige der sedezimalen Schreibweise, so daß in einigen Fällen die Schreibweise nicht angegeben ist.
Die als Resultat der Addition des Summenausgangs und des Übertragsausgangs der Übertragszwischenspeicher-Addiereinheit zu erhaltende Summe wird errechnet unter Verwendung des Ausdrucks (S)₁₀ + (C′)₁₀-(6)₁₀, da die Operation nach Addition von (6)₁₀ für jede Dezimalziffer als Anfangssetzwert für ein Schleifenaddierwerk durchgeführt wird. Wenn z. B. der Summenausgang S und der Übertragsausgang C des Übertrags­ zwischenspeicher-Addierwerks für eine bestimmte Dezimalziffer S = "6" bzw. C = "3", so ist C′ = "6" oder C′ = "7" je nachdem, ob der Wert von C die Ziffer niedrigerer Ordnung der momentanen Dezimalziffer "0"-"7" oder "8"-"F" ist.
Wenn der Wert von C der Ziffer "0"-"7", dann ist C′ = "6", und wenn der Wert von C der Ziffer niedrigerer Ordnung "8"-"F", dann ist C′ = "7". In der Praxis wird C = "3" als (0011)₂ geschrieben und wird zu (011X)₂, wenn es um ein Bit nach links verschoben wird. X bezeichnet ein bedeutsamstes Bit von C der Ziffer mit niedrigerer Ordnung, und sein Wert ist entweder Null oder Eins. Wenn daher der Wert von C der Ziffer niedriger Ordnung "0"-"7" ist, wird er als (0XXX)₂ geschrieben, und das bedeutsamste Bit ist 0, so daß diese 0 das wertniedrigste Bit der vorgenannten Ziffer (011X)₂ wird. (011X)₂ ist somit (0110)₂, d. h., es hat den Wert "6". Wenn der Wert von C der Ziffer niedriger Ordnung "8"-"F" ist, wird er als (1XXX)₂ geschrieben, und das bedeutsamste Bit ist 1, so daß diese 1 das wertniedrigste Bit der vorgenannten Ziffer (011X)₂ wird. (011X)₂ ist somit (0111)₂, d. h., es zeigt den Wert "7". Wenn S = "6" und C = "3", dann ist C′ = "7", wenn der Wert von C der Ziffer niedriger Ordnung "8"-"F" ist, und die Zahl "7" in den sich kreuzenden Einträgen der Tabelle wird aus der Berechnung
(S)₁₀ + (C′)₁₀-(6)₁₀ = "6" + "7" - "6" = "7"
erhalten.
Bei dem System nach Fig. 6 können der Summenausgang S, der Übertragsausgang C und der Übertrag C′ der Übertragszwischenspeicher- Addiereinheit "0" ∼ "F" sedezimal geschrieben sein, und die Summe und der Übertrag werden im binären Volladdierwerk volladdiert. Eine ordnungsgemäße Korrektur muß für die Summe S und die höherwertige Ziffer der betreffenden Dezimalziffer auf der Grundlage einer Kombination der Werte der Summe S, des Übertrags C und des Übertrags C′ vorgenommen werden, so daß die richtigen Werte erzeugt werden, d. h. unter Anwendung des Dezimal-Operationssystems, das den Wert selbst auswählt, wenn an der Dezimalziffer ein Übertrag erzeugt wird, und das den um (6)₁₀ vom Ergebnis der Volladdition subtrahierten Wert auswählt, wenn kein Übertrag erzeugt wird, werden Dezimalzahlen entsprechend Fig. 7 gebildet (nachstehend als Dezimalzahl- Operationssystem bezeichnet).
Die Additionsstelle von Fig. 7 ist in 9 Abschnitte AI unterteilt, basierend auf der Anzahl von Dezimalüberträgen, und der Summenausgang S, der Übertragsausgang C und der Übertrag C′ der Übertragszwischenspeicher-Addiereinheit sowie richtige Dezimalübertragskorrekturen werden wie folgt für die entsprechenden Abschnitte durchgeführt.
Im Abschnitt A genügen die Werte der Summe S und des Übertrags C′ der Bedingung "0" S + C′ "5", die tatsächlich nicht auftritt, da eine Operation durchgeführt wird, nachdem als Anfangseinstellung eine (6)₁₀-Addition für jede einzelne Dezimalziffer erfolgt. Bei dem Operationssystem nach Fig. 6, das unter Verwendung von Übertragszwischenspeicher-Addiereinheiten und Übertragsbestimmungs-Korrekturgliedern, die der Dezimal­ übertragungslogik der Additionstabelle von Fig. 7 genügen, aufgebaut ist, ist es erforderlich, damit die Werte der Summe und des Übertrags eines Endprodukts wie etwa S₃′ und C₃′ von Fig. 6 der Bedingung "0" S₃′ + C₃ 5 genügen, daß eine Operation gestartet wird, ohne daß eine Addition von (6)₁₀ für jede Dezimalziffer als Anfangseinstellung für die Operation erfolgt, so daß die Kombination der Summe S und des Übertrags C, die der Bedingung "0" S + C′ 5 genügt, nicht auftritt.
In Abschnitt B genügen die Werte der Summe S und des Übertrags C′ der Bedingung "6" S + C′ "F", und ein Übertrag zur höherwertigen Ziffer erfolgt nicht. Daher kann das Dezimalzahl- Operationssystem an den Abschnitt B in der vorliegenden Form angepaßt werden, und die Summe S und der Übertrag C′ werden binär volladdiert, und anschließend erfolgt die (6)₁₀-Subtraktionskorrektur. Mit S = "6", C′ = "7" ist z. B.
S + C′ - "6" = "6" + "7" - "6" = "7".
Somit sind für den Abschnitt B die Dezimalübertragskorrekturen für den Summenausgang S nach der Übertragszwischenspeicherungs-Addition und für die Dezimalziffer höherer Ordnung nicht erforderlich.
Im Abschnitt C genügen die Werte der Summe S und des Übertrags C′ der Bedingung "10" S + C′ "19", und der in S und C′ um 1 zwischengespeicherte Übertrag wird durch die binäre Volladdition zur Dezimalziffer höherer Ordnung weitergeleitet. Infolgedessen kann der resultierende Additionswert ein richtiger Ausdruck einer Dezimalzahl in ihrer normalen Form sein. Daher kann das Dezimalzahl-Operationssystem an den Abschnitt C ohne Modifikation angepaßt werden. Somit sind die Dezimalübertrags­ korrekturen am Summenausgang S nach der Übertragszwischenspeicherungs- Addition und an der Dezimalziffer höherer Ordnung nicht erforderlich. Mit S = "A", C′ = "F" ist z. B.
S + C′ = "A" = "F" = "19".
Wenn im Abschnitt D der Übertragsausgang C vom Übertrags­ zwischenspeicher-Addierwerk zur Bitstellenausrichtung um ein Bit nach links verschoben wird, um den Übertrag C′ zu erhalten, so ist der Wert des Übertrags C derart, daß der explizite Übertrag nicht zur Dezimalziffer höherer Ordnung weitergegeben wird infolge der Übertragszwischenspeicherungs-Addition, d. h., "0" C "7", und die Werte der Summe S und des Übertrags C′ genügen der Bedingung "1A" S + C′ "1E". "1A" bezeichnet ferner (26)₁₀, und "1E" bezeichnet (30)₁₀. In Abschnitt D wird der Übertrag in S und C′ um 2 zwischengespeichert. Die eine 1 wird in S und C′ gespeichert, da der Übertrag durch das Dezimal-Operationssystem zur Dezimalziffer höherer Ordnung weitergegeben wird, während die andere 1 der Dezimalübertragskorrektur unterliegt, da die binäre Volladdition von S und C′ in einem Wert "A""E" resultiert, der die binärcodierte dezimale Schreibweise überschreitet, und daher muß der Resultatwert als "10" ∼ "14" geschrieben werden. Die Dezimal­ übertragskorrektur in Abschnitt D wird so durchgeführt, daß die (6)₁₀-Addition unter Verwendung von (16)₁₀ als Modul an der Dezimalziffer des Summenausgangs von der Übertragszwischenspeicher- Addiereinheit erfolgt, und der Ziffer höherer Ordnung der gültigen Dezimalziffer wird Eins zuaddiert. Nachstehend wird die (16)₁₀ als Modul verwendende Addition als (mod 16) bezeichnet. Wenn z. B.
S = "E", C = "6" und C′ = "D",
so ist
S′ = S + "6" (mod 16) = "E" + "6" (mod 16) = "4",
vorausgesetzt, daß die Summe nach der Dezimalübertragskorrektur S′ ist und daß die Addition von Eins zu der Ziffer höherer Ordnung der Dezimalziffer durch die Addition von "10" ausgedrückt ist, und somit resultiert die Operation in
S′ + C′ + "10" = "4" + "D" + "10" = "21".
In den Abschnitten EI ist der Wert des Übertragsausgangs C von der Übertragszwischenspeicher-Addiereinheit "8" C "F", so daß, wenn ein Übertragsausgang C zur Bitstellenausrichtung um ein Bit nach links verschoben wird zum Erhalt eines Übertrags C′, ein Übertrag explizit zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer weitergegeben wird. Infolgedessen gilt "10" C′ "1F". Und zum Erhalt einer korrekten Dezimalzahl unter Anwendung des Dezimalzahl-Operationssystems auf den Übertrag C′ und den Summenausgang S erfolgt die Addition von 6 (mod 16) zur Dezimalziffer des Summenausgangs. Wenn z. B.
S = "0", C = "8" und dann C′ = "10", S′ = S + "6" (mod 16) = "0" + "6" (mod 16) = "6",
somit
S′ + C′ - "6" = "6" + "10" - "6" = "10",
wenn S′ die Summe der Dezimalübertragskorrektur ist.
Im Abschnitt E tritt die Übertragsverschiebung zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer explizit im Übertrag C′ wie oben erwähnt auf, d. h., "8" C "F", und die Werte der Summe und des Übertrags C′ genügen der Bedingung "10" S + C′ "19". Im Abschnitt E erfolgt die Dezimalüber­ tragungskorrektur zum Summenausgang S, die aus der vorgenannten expliziten Übertragsverschiebung im Übertrag C′ resultiert, d. h., die (6)₁₀ (mod 16)-Addition, an der einschlägigen Dezimalziffer der Summe S. Wenn z. B. S = "4", C = "A" und dann C′ = 15, ist die Summe S′ nach Dezimalübertragungskorrektur
S′ = S + "6" (mod 16) = "4" + "6" (mod 16) = "A",
und somit resultiert die Operation in
S′ + C′ - "6" = "A" + "15" - "6" = "19".
Im Abschnitt E erfolgt die Übertragsverschiebung zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer explizit im Übertrag C′, d. h. "8" C "F", die Werte der Summe S und des Übertrags C′ genügen der Bedingung 1A S + C′ 23, und die Summe S genügt ebenfalls der Bedingung "0" S 9. Im Abschnitt F gibt es zwei Überträge; der eine wird explizit zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer im Übertrag C′ verschoben, und der andere wird in der Summe S und im Übertrag C′ einbehalten. Die Dezimalübertragskorrektur infolge der expliziten Übertragsverschiebung zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer im Übertrag C′ erfolgt durch die Addition von (6)₁₀ (mod 16) zur Summe S, wie bereits beschrieben wurde. Andererseits bleibt der in der Summe S und dem Übertrag C′ einbehaltene Übertrag dort einbehalten, da ein Übertrag zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer weitergegeben werden kann durch Anwendung des Dezimalzahl- Operationssystems auf den Wert der Summe nach der Dezimal­ übertragskorrektur an der Summe S, die aus der expliziten Übertragsverschiebung zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer im Übertrag C′ resultiert, sowie auf den Übertrag C′. Somit erfolgt die Dezimalübertragskorrektur des Abschnitts F durch die Addition (6)₁₀ (mod 16) zur Dezimalziffer des Summenausgangs S von der Übertragszwischenspeicher-Addiereinheit. Wenn z. B. S = "8", C = "D", und dann C′ = "1B", so ist die Summe S′ nach der Dezimalübertragskorrektur
S′ = S + "6" (mod 16) = "8" + "6" (mod 16) = "E".
Infolgedessen resultiert die Operation in
S′ + C′ = "E" + "1B" = "29".
In Abschnitt G erfolgt die Übertragsverschiebung zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer explizit im Übertrag C′, d. h., "8" C "F", die Werte der Summe S und des Übertrags C′ genügen der Bedingung "1A" S + C′ "23", und die Summe S genügt ebenfalls der Bedingung "A" S "F". Im Abschnitt G gibt es zwei Überträge; der eine wird explizit zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer im Übertrag C′ verschoben, und der andere wird in der Summe S und im Übertrag C′ einbehalten. Die Dezimalübertragskorrektur unter expliziter Übertragsverschiebung zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer im Übertrag C′ erfolgt durch die (6)₁₀-Addition (mod 16) zur Summe S, wie vorstehend erläutert. Andererseits erfolgt die Dezimalübertragskorrektur an dem in der Summe S und dem Übertrag C′ einbehaltenen Übertrag durch (6)₁₀-Addition (mod 16) zum Wert der Summe S und durch die Addition von Eins zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer. Dies erfolgt, um eine korrekte Dezimalzahl zu erhalten, indem das Dezimalzahl-Operationssystem auf den Wert der Summe nach der Dezimalübertragskorrektur der Summe S, resultierend aus der expliziten Verschiebung zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer im Übertrag C′, und auf den Übertrag C′ angewandt wird. Somit erfolgt die Dezimalübertrags­ korrektur im Abschnitt G durch die Addition von (12)₁₀ (mod 16) zu der jeweiligen Dezimalziffer des Summenausgangs S von der Übertragszwischenspeicher-Addiereinheit und durch die Addition von Eins zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer. Wenn z. B. S = "B", C = "8" und dann C′ = "11", ist, so ist
S′ = S + "C" (mod 16) = "B" + "C" (mod 16) = "7",
vorausgesetzt, daß die Summe nach der Dezimalübertragskorrektur als S′ bezeichnet ist und daß die Addition von Eins zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer durch die Addition von "10" ausgedrückt wird, und somit resultiert die Operation in
S′ + C′ + "10" - "6" = "7" + "11" + "10" - "6" = "22".
Im Abschnitt H erfolgt die Übertragsverschiebung zur Ziffer höherer Ordnung der entsprechenden Dezimalziffer explizit im Übertrag C′, d. h., "8" C "F", und die Werte der Summe S und des Übertrags C′ genügen der Bedingung "24" S + C′ "2D". Im Abschnitt H gibt es drei Überträge; der eine soll explizit zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer im Übertrag C′ verschoben werden, und zwei Überträge werden in der Summe S und im Übertrag C′ einbehalten. Die Dezimalübertragskorrektur der expliziten Übertragsverschiebung zur entsprechenden Dezimalziffer im Übertrag C′ erfolgt durch die Addition von (6)₁₀ (mod 16) zu der Summe S, wie bereits erläutert. Ferner bleiben der eine der beiden Überträge, die in der Summe S und im Übertrag C′ einbehalten sind, weiterhin einbehalten, da ein Übertrag zur Ziffer höherer Ordnung einer einschlägigen Dezimalziffer durch Anwendung des Dezimalzahl-Operationssystems weitergegeben wird. Andererseits unterliegt der weitere eine Übertrag der Dezimal­ übertragskorrektur durch die Addition von (6)₁₀ (mod 16) zum Wert der Summe S und durch die Addition von Eins zur Ziffer höherer Ordnung der Dezimalziffer. Somit erfolgt die Dezimal­ übertragskorrektur im Abschnitt H durch die Addition von (12)₁₀ (mod 16) zur Dezimalziffer des Summenausgangs S aus der Übertrags­ zwischenspeicher-Addiereinheit und durch die Addition von Eins zur Ziffer höherer Ordnung der Dezimalziffer. Wenn z. B. S = "D", C = "B" und dann C′ = "17", dann ist
S′ = S + "C" (mod 16) = "D" + "C" (mod 16) = "9",
vorausgesetzt, daß die Summe nach der Dezimalübertragskorrektur als S′ ausgewiesen ist und daß die Addition von Eins zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer durch die Addition von "10" ausgedrückt wird, und somit resultiert die Operation in
S′ + C′ + "10" = "9" + "17" + "10" = "30".
Im Abschnitt I erfolgt die Übertragsverschiebung zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer explizit im Übertrag C′, d. h., "8" C "F", und die Werte der Summe S und des Übertrags C′ genügen der Bedingung S + C′ = "2E". Im Abschnitt I gibt es vier Überträge; der eine wird explizit zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer im Übertrag C′ verschoben, und drei Überträge werden in der Summe S und dem Übertrag C′ einbehalten. Die Dezimalübertragskorrektur für die explizite Übertragsverschiebung zur Dezimalziffer im Übertrag C′ erfolgt durch die Addition von (6)₁₀ (mod 16) zur jeweiligen Dezimalziffer der Summe S, wie vorstehend erwähnt. Ferner bleibt einer der drei Überträge, die in der Summe S und im Übertrag C′ einbehalten sind, dort einbehalten, da ein Übertrag zur Ziffer höherer Ordnung einer einschlägigen Dezimalziffer verschoben wird durch Anwendung des Dezimalzahl-Operationssystems. Andererseits werden die übrigen zwei Überträge der Dezimalübertragskorrektur durch die Addition von (12)₁₀ (mod 16) zum Wert der Summe S und von 2 zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer unterworfen. Somit erfolgt die Dezimalübertragskorrektur im Abschnitt I durch die Addition von (18)₁₀ (mod 16) zur Dezimalziffer des Summenausgangs S von der Übertragszwischenspeicher-Addiereinheit und durch die Addition von 2 zur Ziffer höherer Ordnung der jeweiligen Dezimalziffer. Wenn z. B. S = "F", C = "F" und C′ = "1F", so ist
S′ = S + "12" (mod 16) = "F" + "12" (mod 16) = "1",
vorausgesetzt, daß die Summe nach der Dezimalübertragskorrektur als S′ erscheint und daß die Addition von 2 zur Ziffer höherer Ordnung der jeweiligen Dezimalzahl durch die Addition von "20" ausgedrückt ist, und somit resultiert die Operation in
S′ + C′ + "20" = "1" + "1F" + "20" = "40".
Die Dezimalübertragskorrekturen in den Abschnitten AI der Additionstabelle von Fig. 7 werden wie folgt zusammengefaßt.
In Abschnitt A erfolgt keine Kombination von S und C′. In den Abschnitten B und C ist die Korrektur nicht erforderlich. Im Abschnitt D erfolgt die Korrektur durch die Addition von (6)₁₀ (mod 16) zur Summe S und durch die Addition von Eins zur Ziffer höherer Ordnung einer einschlägigen Dezimalziffer. In den Abschnitten E und F erfolgt die Korrektur durch die Addition von (16)₁₀ (mod 16) zu der Summe S. In den Abschnitten G und H erfolgt die Korrektur durch die Addition von (12)₁₀ (mod 16) zur Summe S und durch die Addition von Eins zur Ziffer höherer Ordnung der einschlägigen Dezimalziffer. In Abschnitt I erfolgt die Korrektur durch die Addition von (18)₁₀ (mod 16) und durch die Addition von Zwei zur Ziffer höherer Ordnung der einschlägigen Dezimalziffer.
Einige Kombinationen der Summe S und des Übertrags C′ erfolgen tatsächlich nicht in den Abschnitten I und H, was beweisbar ist. Insbesondere im Fall der Implementierung der vorliegenden Einrichtung ist der Abschnitt I nicht erforderlich. Wenn ferner die Dezimalübertragskorrektur der Kombinationen von S und C′, die in den Abschnitten C, D, F und H enthalten sind, erfolgt und das Dezimalzahl-Operationssystem darauf angewandt wird, erfolgt eine Übertragsverschiebung zur Ziffer höherer Ordnung der einschlägigen Dezimalziffer in der binären Volladdition der Summe S′ nach der Korrektur und des Übertrags C′. Daher kann in den Abschnitten C und F die Übertragsverschiebung vorher erfaßt werden, so daß die Dezimalübertragskorrektur in diesen Abschnitten zwangsweise erfolgen kann. D. h., im Abschnitt C können die Addition (6)₁₀ zum Summenausgang S und die Addition von Eins zur Ziffer höherer Ordnung der einschlägigen Dezimalziffer erfolgen, während im Abschnitt F′ die Addition von (12)₁₀ (mod 16) zum Summenausgang S und die Addition von Eins zur Ziffer höherer Ordnung der einschlägigen Dezimalziffer stattfinden.
Die Fig. 8 und 9 zeigen das erste Ausführungsbeispiel von Dezimalübertragskorrektur-Tabellen, die den Dezimalübertrags­ korrekturen des Summenausgangs und der Ziffer höherer Ordnung der einschlägigen Dezimalziffer in den Abschnitten AI der Additionstabelle von Fig. 7 genügen und die zur Implementierung eines Dezimalschleifen-Addierwerks unter Verwendung einer Übertragszwischenspeicher-Addiereinheit auf der Basis des vorgenannten Prinzips dienen. Fig. 10 zeigt ein Ausführungsbeispiel einer Dezimalkorrekturschaltung zur Durchführung dieser Korrekturren.
Fig. 8 zeigt ein Beispiel der Dezimalübertragskorrektur des Summenausgangs von einer Übertragszwischenspeicher-Addiereinheit und Fig. 9 zeigt ein Beispiel der einschlägigen Dezimalziffer. Der Korrekturbetrag und die Bedingung in der Tabelle von Fig. 8 sind: wenn
("A" S "F") · ("4" C "7") + ("0" S "3") · ("8" C "F")
+ ("0" S "9") · ("8" C "B") = 1,
so erfolgt die Korrektur des Summenausgangs S durch die Addition von (6)₁₀ (mod 16) dazu, und wenn
("A" S "F") · ("8" C "F") + ("4" S "F") · ("C" C "F") = 1,
erfolgt die Korrektur zum Summenausgang S durch die Addition von (12)₁₀ (mod 16) dazu, und in den anderen Fällen wird keine Korrektur durchgeführt. Der Korrekturbetrag und die Bedingung in der Tabelle von Fig. 9 sind: wenn
("A" S "F") · ("4" C "F") + ("4" S "F") · ("C" C "F") = 1
erfolgt die Korrektur durch Addition von Eins zur Ziffer höherer Ordnung der einschlägigen Dezimalziffer, und in den anderen Fällen erfolgt keine Korrektur.
Fig. 10 zeigt einen Teil des Dezimaladdierwerks, das für jede Dezimalziffer (vier Bits), die den Korrekturen der Fig. 8 und 9 genügt, ein Dezimalübertragskorrekturglied verwendet. Dabei ist die Einheit mit einer Dezimalziffernbreite (((d +1)-te Dezimalziffer) auf der linken Seite eine Dezimalziffer höherer Ordnung der Einheit (d-te Dezimalziffer) auf der rechten Seite. Die Korrektur des Summenausgangs aus der Übertragszwischenspeicher-Addiereinheit erfolgt durch das Summenausgangs-Korrekturglied 31 auf der Basis des Entscheidungs­ ergebnisses eines Korrektur-Entscheidungsglieds 37 unter Nutzung der Werte des Summenausgangs S und des Übertrags­ ausgangs C der Übertragszwischenspeicher-Addiereinheit 29 als Eingänge für jede Dezimalziffer wie folgt: Wenn die Bedingung
[{("A" S "F") · ("4" C "7")} + {("0" S "3") · ("8" C "F")}
+ {("0" S "9") · ("8" C "B")}],
gemäß Fig. 8 erfüllt ist, wird der aus der Addition von 6 (mod 16) zur Summe S resultierende Wert als Summe S′ nach der Korrektur gewählt; wenn die Bedingung
[{ ("A" S "F") · ("8" C "F")} + {("4" S "F") · ("C" C "F")}],
die ebenfalls in Fig. 8 angegeben ist, erfüllt ist, wird der aus der Addition von 12 (mod 16) zur Summe S resultierende Wert als Summe S′ nach der Korrektur gewählt, und wenn keine der beiden genannten Bedingungen erfüllt ist, wird der Wert der Summe S selbst als die Summe S′ nach der Korrektur gewählt.
Die Korrektur der Addition von Eins zur Ziffer höherer Ordnung der einschlägigen Dezimalziffer erfolgt für den Dezimalteileingang PP der Übertragszwischenspeicher-Addiereinheit in der nächsten Stufe und wird von dem Dezimalziffer-höherer-Ordnung- Korrekturglied 31 auf der Basis des Entscheidungsergebnisses des Korrekturbetrags-Entscheidungsglieds 37 unter Nutzung der Summe S und des Übertrags C als Eingänge wie folgt durchgeführt. Wenn die Bedingung
[{("A" S "F") · ("4" C "F")} + {("4" S "F") · ("C" C "F")}]
erfüllt ist, wie in Fig. 9 angegeben, wird der aus der Addition von Eins zu dem Dezimalteilprodukteingang PP der Übertragszwischen­ speicher-Addiereinheit für die Ziffer höherer Ordnung der einschlägigen Dezimalziffer in der nächsten Stufe als Dezimal­ teilprodukteingang PP′ nach der Korrektur gewählt, und wenn die vorgenannte Bedingung nicht erfüllt ist, wird der Dezimalteil­ produkteingang PP selbst als Dezimalteileingang PP′ nach der Korrektur gewählt. Wenn der Übertragsausgang C der Übertrags­ zwischenspeicher-Addiereinheit dem Übertragszwischenspeicher- Addierwerk der nächsten Stufe eingegeben wird zum binären Volladdierer für die binäre Volladdition der Summe und des Übertrags des Endprodukts, wird der Übertragsausgang C durch die Verschiebeeinheit 30 um ein Bit nach links verschoben und als Eingang C′ der nächsten Stufe genutzt.
Wenn z. B. S = "0" und C = "8", wird, da die Korrekturbedingung
{("0" S "3") · ("8" C "F")}
erfüllt ist, der aus der Addition von 6 (mod 16) zur Summe S resultierende Wert als die Summe S′ nach der Korrektur gewählt, und da andererseits keine Korrekturbedingung für die Ziffer höherer Ordnung erfüllt ist, wird der Wert des Dezimalteil­ produkts PP selbst als Dezimalteilprodukt PP′ der Übertrags­ zwischenspeicher-Addiereinheit höherer Ordnung der einschlägigen Dezimalziffer in der nächsten Stufe genutzt. Infolgedessen
S′ = S + "6" (mod 16) = "0" + "6" (mod 16) = "6", C′ = "10" oder C′ = "11",
und die Ziffer PP′ höherer Ordnung ist PP′ = PP. Wenn ferner S = "4", C = "C", wird, da eine der Korrekturbedingungen
{("4" S "F") · ("C" C "F")}
erfüllt ist, der aus der Addition von 12 (mod 16) zur Summe S resultierende Wert als die Summe nach der Korrektur gewählt, und da andererseits eine der Korrekturbedingungen der Ziffer höherer Ordnung
{("4" S "F") · ("C" C "F")}
ebenfalls erfüllt ist, wird der aus der Addition von Eins zu dem Dezimalteilprodukteingang PP resultierende Wert als der Dezimalteilprodukteingang PP′ der Übertragszwischenspeicher- Addiereinheit höherer Ordnung der einschlägigen Dezimalziffer in der nächsten Stufe gewählt. Infolgedessen ist
S = S + "C" (mod 16) = "4" + "C" (mod 16)
und die Ziffer höherer Ordnung PP′ ist PP′ = PP + 1.
In Fig. 10 weisen die Leitungen S, S′, C, C′, PP und PP′ jeweils 4 Bits auf. Selbst wenn also ein Übertrag vom höchstwertigen Bit im Korrekturglied 31 infolge der Addition von (6)₁₀ ((0110)₂ wird dem S-Eingang mit 4 Bits zuaddiert) oder der Addition von (12)₁₀ ((1100)₂ wird dem S-Eingang mit 4 Bits zuaddiert) auftritt, wird er vernachlässigt.
Fig. 11 und 12 zeigen weitere Beispiele der Dezimalübertrags- Korrekturtabellen, die die Dezimalübertragskorrekturen des Summenausgangs und der Ziffer höherer Ordnung der einschlägigen Dezimalziffer in den Abschnitten A I der Additions­ tabelle von Fig. 7 erfüllen und zur Implementierung eines Dezimalschleifen-Addierwerks unter Verwendung einer Übertrags­ zwischenspeicher-Addiereinheit dienen. Fig. 13 zeigt ein weiteres Ausführungsbeispiel einer Dezimalübertrags-Korrekturschaltung zur Durchführung dieser Korrekturen.
Fig. 11 zeigt ein weiteres Ausführungsbeispiel der Dezimal­ übertragskorrektur des Summenausgangs von einer Übertragszwischenspeicher- Addiereinheit. Der Korrekturbetrag und die Korrekturbedingung in Fig. 11 bestehen aus zwei Schritten. Bei der ersten Korrektur, wenn ("8" C "F") = 1, erfolgt die Addition von 6 (mod 16) zum Summenausgang S der Übertragszwischenspeicher- Addiereinheit, und in den anderen Fällen erfolgt keine Korrektur desselben. Der Summenausgang S, der der ersten Korrektur unterzogen wird, wird als S′ gewählt, und der aus der Linksverschiebung um ein Bit des Übertragsausgangs der Übertrags­ zwischenspeicher-Addiereinheit resultierende Wert wird als C′ genutzt. Bei der zweiten Korrektur, wenn
("A" S "F") · ("8" C "F") + ("A" S′ "F") · (G = 1) = 1,
erfolgt die Addition von 6 (mod 16) zu S′, und in den anderen Fällen erfolgt keine Korrektur, wobei
G′ = g₀′ + p₀′ · g₁′ + p₀′ · p₁′ · g₂′ + p₀′ · p₁′ · p₂′ · p₃′,
g i ′ = S i ′ + C i (i = 0 ∼ 2)
p i ′ = S j ′ + C j (j = 0 ∼ 2)
S₀′ ∼ S₃′ und C₀′ ∼ C₃′ sind Bitdarstellungen von S′ und C′, die jeweils eine Dezimalziffer haben, und S₀′ und C₀′ sind die höchstwertigen Bits, während S₃′ und C₃′ die niederwertigsten Bits sind. G′ ist eine Bedingung, wobei ein Übertrag als Resultat einer binären Volladdition von S′ und C′ erzeugt wird.
Fig. 12 zeigt ein weiteres Ausführungsbeispiel der Dezimalübertrags- Korrekturtabelle für die Ziffer höherer Ordnung der einschlägigen Dezimalziffer. Der Korrekturbetrag und die Korrekturbedingung in Fig. 12 sind nachstehend gezeigt: wenn
("A" S "F") · ("8" C "F") + ("A" S′ "F") · (G′ = 1) = 1,
erfolgt die Addition von Eins zur Ziffer höherer Ordnung, und in anderen Fällen erfolgt keine Korrektur. S′, C′ und G′ haben die vorstehend erläuterten Definitionen.
Fig. 13 zeigt einen Teil des weiteren Ausführungsbeispiels des Dezimaladdierwerks, das ein Dezimalübertragungs-Korrekturglied für jede Dezimalziffer (vier Bit) verwendet, die die Korrekturbedingungen der Fig. 11 und 12 erfüllt. Die linke Einheit mit einer Dezimalzifferbreite ((d + 1)-te Dezimalziffer) ist eine Dezimalziffer höherer Ordnung der Einheit (d-te Dezimalziffer) auf der rechten Seite. Die erste Korrektur des Summenausgangs von der Übertragszwischenspeicher- Addiereinheit erfolgt durch ein erstes Summenausgangs-Korrekturglied 48 auf der Basis des Entscheidungsergebnisses eines ersten Korrekturbetrag-Entscheidungsglieds 47 unter Nutzung des Werts des Übertragsausgangs der Übertragszwischenspeicher- Addiereinheit als Eingang für jede Dezimalziffer wie folgt: Wenn die Bedingung ("8" C "F") erfüllt ist, wird der aus der Addition von 6 (mod 16) zur Summe S resultierende Wert als die Summe S′ nach der ersten Korrektur gewählt, und wenn die vorgenannte Bedingung nicht erfüllt ist, wird der Wert der Summe S selbst als die Summe S′ nach der ersten Korrektur gewählt. Dann erfolgt die zweite Korrektur des Summenausgangs S′ des ersten Summenausgangs-Korrekturglieds 48 durch ein zweites Summenausgangs-Korrekturglied 50 auf der Grundlage des Entscheidungsergebnisses eines zweiten Korrekturbetrag- Entscheidungsglieds 49 unter Verwendung der Werte des Summen­ ausgangs S und des Übertragsausgangs C aus der Übertragszwischenspeicher- Addiereinheit und der Werte der Summe S′ nach der ersten Korrektur und des Übertrags C′, der aus der Linksverschiebung um ein Bit durch das Verschiebeglied 30 resultiert, als Eingangswerte, wenn die Bedingung
[{("A" S "F") · ("8" C "F")} + {("A" S′ "F") · (G′ = 1)}]
erfüllt ist, wird der aus der Addition von 6 (mod 16) zu S′ nach der ersten Korrektur resultierende Wert als die Summe S′′ nach der zweiten Korrektur gewählt, und wenn die vorgenannte Bedingung nicht erfüllt ist, wird der Wert der Summe S′ nach der ersten Korrektur selbst als die Summe S′′ nach der zweiten Korrektur gewählt.
Die Korrektur der Addition von Eins zu der Ziffer höherer Ordnung der einschlägigen Dezimalziffer erfolgt für das Dezimal­ teilprodukt PP für die nächste Stufe der Übertragszwischenspeicher- Addiereinheit und wird von dem Dezimalkorrekturglied 32 höherer Ordnung auf der Basis des Entscheidungsergebnisses des zweiten Korrekturbetrag-Entscheidungsglieds 49 durchgeführt, wobei als Eingänge der Summenausgang S, der Übertragsausgang C, der Summe S′ nach der ersten Korrektur und der Übertrag C′ nach der Linksverschiebung um ein Bit wie folgt verwendet werden: Wenn die Bedingung
[{("A" S "F") · ("8" C "F")} + {("A" S′ "F") · (G′ = 1)}]
erfüllt ist, wird der aus der Addition von Eins zu dem Dezimalteilprodukteingang PP der nächsten Stufe der Übertrags­ zwischenspeicher-Addiereinheit der Ziffer höherer Ordnung der einschlägigen Dezimalziffer als Dezimalteilprodukteingang PP′ nach der Korrektur gewählt, und wenn die vorgenannte Bedingung nicht erfüllt ist, wird das Dezimalteilprodukt PP selbst als Dezimalteilprodukteingang PP′ nach der Korrektur gewählt.
Wenn z. B. S = "A" und C = "2", so ist, da die erste Korrektur­ bedingung für den Summenausgang ("8" C "F") nicht erfüllt ist, die Summe S′ nach der ersten Korrektur S′ = S = "A", und ebenso ist C′ = "6" oder C′ = "7", so daß die binäre Volladdition von S′ und C′ die Übertragsverschiebung zur Ziffer höherer Ordnung der einschlägigen Dezimalziffer erzeugt und damit (G′ = 1) erfüllt ist. Da somit die Bedingung der zweiten Korrekturbedingungen
{("A" S′ "F") · (G′ = 1)}
erfüllt ist, wird der aus der Addition von 6 (mod 16) zur Summe S′ nach der ersten Korrektur resultierende Wert als die Summe S′′ nach der zweiten Korrektur gewählt, und der aus der Addition von Eins zum Dezimalteilprodukteingang PP erhaltene Wert wird als Dezimalteilprodukteingang PP′ zur nächsten Stufe der Übertrags­ zwischenspeicher-Addiereinheit der Ziffer höherer Ordnung der einschlägigen Dezimalziffer gewählt, da eine der Korrektur­ bedingungen
{("A" S′ "F") · (G′ = 1)}
ebenfalls erfüllt ist. Infolgedessen ist
S′′ = S′ + "6" (mod 16) = "0", und C′ = "6" oder C′ = "7"
und PP′ der Ziffer höherer Ordnung ist PP′ = PP + 1. Wenn S = "8" und C′ = "E", so ist, da die erste Korrekturbedingung für den Summenausgang ("8" C "F") erfüllt ist, die Summe S′ nach der ersten Korrektur
S = S + "6" (mod 16) = "8" + "6" (mod 16) = "E" und ferner C′ = "C" oder C′ = "D",
so daß die Volladdition von S′ und C′ die Übertragsverschiebung zur Ziffer höherer Ordnung der einschlägigen Dezimalziffer erzeugt und damit (G′ = 1) erfüllt ist. Da somit eine der zweiten Korrekturbedingungen
{("A" S′ "F") · (G′ = 1)}
erfüllt ist, wird der aus der Addition von 6 (mod 16) zur Summe S′ nach der ersten Korrektur resultierende Wert als die Summe S′′ nach der zweiten Korrektur gewählt. Und der aus der Addition von Eins zu dem Dezimalteilprodukteingang PP erhaltene Wert wird als Dezimalteilprodukteingang PP′ zur nächsten Stufe der Übertragszwischenspeicher-Addiereinheit der höheren Ziffer der einschlägigen Dezimalziffer gewählt, da eine der Korrektur­ bedingungen
{("A" S′ "F") · (G′ = 1)}
ebenfalls erfüllt ist. Infolgedessen ist
S′′ = S′ + "6" (mod 16) = "E" + "6" (mod 16) = "4", und C′ = "C" oder C′ = "0"
und PP′ der Ziffer höherer Ordnung ist PP′ = PP + 1.
Der vorgenannte Korrekturvorgang bedeutet, daß die Korrekturen der Addition von 12 (mod 16) zur Summe S und der Addition von Eins zum Dezimalteilprodukteingang PP der Ziffer höherer Ordnung durch das erste und das zweite Korrekturglied erfolgten. Dies zeigt, daß das Dezimaladdierwerk so aufgebaut sein kann, daß es nicht derart vom Schaltungsaufbau abhängt, daß die Übertragszwischenspeicher- Addiereinheit das Korrekturglied aufweist, das der Dezimalübertragskorrektur des Summenausgangs und der Dezimalziffer höherer Ordnung in den Fig. 11 und 12 genügt und ferner den Bedingungen in den Abschnitten A I der Additionstabelle von Fig. 7 genügt.
Fig. 14 zeigt ein Ausführungsbeispiel der Dezimalmultiplikations- Einrichtung, die unter Verwendung des Dezimaladdierwerks von Fig. 10 aufgebaut ist. Dabei erfolgt die Multiplikation eines Multiplikators einer binärcodierten Dezimalzahl, die in das Multiplikator-Register 1 gesetzt ist, mit einem Multiplikanden einer binärcodierten Dezimalzahl, die in das Multiplikand-Register 2 gesetzt ist, wie folgt.
Wenn ein Dezimalteilprodukt-Geber 46 aktiviert wird, wird durch die erste Dezimalteilproduktoperation des Multiplikanden, der in das Multiplikand-Register 2 gesetzt ist, und des Multiplikators vorbestimmter Verarbeitungsbreite (z. B. eine Ziffer), die aus der niedrigen Ordnung des in das Multiplikator-Register 1 gesetzten Multiplikators abgetrennt ist, das erste Dezimal­ teilprodukt erzeugt. Dabei wird das durch eine Dezimalteil­ produktoperation erhaltene Teilprodukt in zwei Zahlen DH und DL unterteilt, die in die Teilproduktregister 16 bzw. 17 gesetzt werden. DH und DL sind nachstehend angegeben. Wenn z. B. der Multiplikand (35)₁₀ mit 2 Ziffern mit dem eine Ziffer aufweisenden Multiplikator (6)₁₀ multipliziert wird, ist das Resultat
   35
 ×06 
   30 (= 5 × 6)
 +18  (= 3 × 6)
 0210
DH und DL bezeichnen eine Ziffernfolge (130)₁₀ von Ziffern höherer Ziffernstellen und eine Ziffernfolge (080)₁₀ von Ziffern der niedrigeren Stellen, z. T. "Ordnung" genannt, die in den Produkten von zwei Ziffern enthalten sind, deren jede das Resultat der Multiplikation jeder einzelnen Ziffer des Multiplikanden mit einer Ziffer des Multiplikators ist.
Das Zwischenprodukt-Summenregister 14 und das Zwischenprodukt- Übertragsregister 15 sind ursprünglich jeweils auf Null gesetzt. Zur gleichen Zeit, wenn das Teilprodukt im ersten Zyklus erzeugt wird, wird der in das Multiplikator-Register 1 gesetzte Multiplikator um die abgetrennte Datenbreite nach rechts verschoben und dort wieder gesetzt. Wenn der in das Zwischenprodukt-Summenregister 14 und der in das Zwischenprodukt- Übertragsregister 15 ursprünglich gesetzte Wert Null und das in das Teilproduktregister 16 gesetzte Dezimalteilprodukt DH in einer ersten Stufe der Übertragszwischenspeicher-Addiereinheit 29 a zur Übertragszwischenspeicherung addiert werden, wird ein 6-Additionsglied 28 angesteuert und addiert 6 zu jeder Dezimalziffer des Ausgangs des Zwischenprodukt-Summenregisters 14, in das der Anfangswert Null gesetzt ist, auf der Basis des Systems zur Addition von zwei Zahlen, die durch binärcodierte Dezimal­ schreibweise bezeichnet sind, unter Verwendung des Binäraddierers von Fig. 3 zur Erzeugung einer korrekten Summe von binärcodierten Dezimalzahlen. Ein 1-Additions-Korrekturglied 32 a wird so angesteuert, daß der Ausgang des Teilproduktregisters 16 selbst als Eingang zur Übertragszwischenspeicher-Addiereinheit gewählt wird. Der Summenausgang der Übertragszwischenspeicher- Addiereinheit 29 a und das in das Teilproduktregister 17 gesetzte Dezimalteilprodukt DL werden der Dezimalziffernkorrektur für jede Dezimalziffer - wie oben ausgeführt - unterzogen, und zwar durch ein Summenausgangs-Korrekturglied 31 a und ein Korrektur­ glied 32 b für Dezimalziffern höherer Ordnung, jeweils auf der Grundlage des Entscheidungsergebnisses eines Korrekturbetrag- Entscheidungsglieds 27 a, das die Werte des Summenausgangs und des Übertragsausgangs von der Übertragszwischenspeicher-Addiereinheit 29 a prüft. Der Übertragsausgang von der Übertragszwischenspeicher- Addiereinheit wird durch eine Verschiebeeinheit 30 a zur Bitstellen­ ausrichtung um ein Bit nach links verschoben. Die der Dezimalübertragskorrektur durch das Summenausgangs-Korrekturglied 31 a unterzogene Summe, der um ein Bit durch die Verschiebeeinheit 30 a nach links verschobenen Übertragsausgang und das der Übertragskorrektur zur Ziffer höherer Ordnung unterzogene Dezimalteilprodukt werden unter Übertragszwischenspeicherung durch eine zweite Stufe der Übertragszwischenspeicher- Addiereinheit 29 b addiert, und das Resultat wird in Form einer Summe und eines Übertrags erhalten. Eine Dezimalübertragskorrektur des Summenausgangs von der Übertragszwischenspeicher-Addiereinheit 29 b erfolgt durch ein Summenausgangs-Korrekturglied 31 b auf der Grundlage des Entscheidungsergebnisses eines Korrekturbetrag- Entscheidungsglieds 37 b, das die obigen Werte des Summenausgangs und des Übertragsausgangs prüft. Das Entscheidungs­ ergebnis des Korrekturbetrag-Entscheidungsglieds 37 b wird in das Entscheidungsresultat-Register 42 gesetzt, das das 1-Additions-Korrekturglied 32 a ansteuert, so daß der Ziffer höherer Ordnung am Dezimalteilprodukt-DH-Eingang der Übertrags­ zwischenspeicher-Addiereinheit in einem nächsten Zyklus Eins zuaddiert wird. Ein Übertragsausgang von der Übertragszwischenspeicher- Addiereinheit 29 b wird durch eine Verschiebeeinheit 30 b zur Bitstellenausrichtung um ein Bit nach links verschoben. Die der Dezimalübertragskorrektur durch das Summenausgangs-Korrekturglied 31 b unterzogene Summe und der von der Verschiebeeinheit 30 b um ein Bit nach links verschobene Übertragsausgang werden von Verschiebeeinheiten 33 und 34 um eine vorbestimmte Datenverarbeitungsbreite des Multiplikators nach rechts verschoben und in das Zwischenprodukt-Summenregister 14 sowie das Zwischenprodukt-Übertragsregister 15 gesetzt. Die Daten mit der vorbestimmten Multiplikator-Verarbeitungsbreite niedriger Ordnung des Ausgangs des Summenausgangs-Korrekturglieds 31 b und des Ausgangs der Verschiebeeinheit 30 b, die eine Verschiebung nach links um ein Bit bewirkt, d. h., die Summe und der Übertrag der niedrigsten Ziffernstelle des Endprodukts mit der vorbestimmten Multiplikator-Verarbeitungsbreite, werden in ein Überlaufaddierwerk 43 eingegeben und dort binär volladdiert. Wenn ein Übertrag zu einer Ziffer einer höheren Stelle der einschlägigen Dezimalziffer weitergegeben wird, wird das Additionsergebnis selbst als der Wert dieser Dezimalziffer gewählt, und wenn kein Übertrag weitergegeben wird, erfolgt die Korrektur durch Subtraktion von 6, d. h., der aus der Subtraktion von 6 durch das 6-Subtraktionsglied 44 resultierende Wert wird als der Wert dieser Dezimalziffer des Endprodukts gewählt. Diese Operationen werden für jede Dezimalziffer durchgeführt. Der erhaltene Wert als Teil des Endprodukts mit der vorbestimmten Verarbeitungsbreite des Multiplikators wird in das Multiplikator-Register 1 übertragen und dort in den Teil höchster Ordnung mit der vorbestimmten Verarbeitungsbreite des Multiplikators gesetzt.
Die gleiche Verarbeitung wird für sämtliche bedeutsamen Ziffern des Multiplikators wiederholt, wobei allerdings die Addition von 6 durch das 6-Additionsglied 28 nicht erfolgt. So wird der Teil niedriger Ordnung des Endprodukts mit der Breite der bedeutsamen Ziffern des Multiplikators im Multiplikator- Register 1 nach links ausgerichtet, während der Teil höherer Ordnung des Endprodukts am Summenausgang und am Übertragsausgang der Übertragszwischenspeicher-Addiereinheit 29 b im Operationszyklus für eine bedeutsame Endziffer erhalten wird. Wie in der Additionstabelle von Fig. 7 gezeigt ist, gibt es Fälle, in denen die Addition von Eins zur Ziffer höherer Ordnung der einschlägigen Dezimalziffer für bestimmte Kombinationen des Summen- und des Übertragsausgangs erforderlich ist. Nachdem daher die Verarbeitung für sämtliche bedeutsamen Ziffern des Multiplikators in der oben angegebenen Weise wiederholt wurde, wird die Verarbeitung in noch einem Zyklus wiederholt unter Verwendung von Null der höheren Ordnung zu den bedeutsamen Ziffern des Multiplikators. Damit wird die Addition von Eins zu Ziffern höherer Ordnung der einschlägigen Dezimalziffer beendet. Die erhaltene Summe bzw. der Übertrag des Endprodukts, d. h., der Ausgang des Summenausgangs-Korrekturglieds 31 b und der Ausgang der Verschiebeeinheit 30 b, werden in einem binären Volladdierwert 35 binär volladdiert. Wenn danach ein Übertrag zu einer Ziffer höherer Ordnung der einschlägigen Dezimalziffer weitergegeben wird, wird das Additionsergebnis selbst als der Wert dieser Dezimalziffer gewählt, und wenn kein Übertrag weitergegeben wird, erfolgt die Korrektur durch Subtraktion von 6, d. h., der aus der Subtraktion von 6 durch das 6-Subtraktionsglied 36 erhaltene Wert wird als der Wert dieser Dezimalziffer des Endprodukts gewählt. Diese Operationen werden für jede Dezimalziffer durchgeführt. Der erhaltene Wert des Teils höherer Ordnung des Endprodukts wird zum Multiplikand-Register 2 übertragen und in dieses gesetzt.
In der vorgenannten Weise wird die Dezimalmultiplikation eines Multiplikators mit binärcodierten Dezimalzahlen und eines Multiplikanden gleicher Schreibweise durch eine Dezimalmultiplikations- Einrichtung durchgeführt, die ein Dezimal- Addierwerk aufweist, das eine Übertragszwischenspeicher- Addiereinheit und ein Dezimalübertrag-Korrekturglied aufweist, und somit kann das Produkt der binärcodierten Dezimalzahlen erhalten werden.
Fig. 15 zeigt einen Teil des Dezimalschleifenaddierwerks, das das Dezimaladdierwerk von Fig. 13 aufweist. Dieses Dezimalschleifenaddierwerk kann auch ein binärcodiertes Dezimalprodukt durch die Dezimalmultiplikation eines binärcodierten Dezimalmultiplikators mit einem binär­ codierten Dezimalmultiplikanden mit Hilfe der gleichen Abarbeitung, die unter Bezugnahme auf Fig. 14 erläutert wurde, bilden. Die Operation läuft vollständig entsprechend derjenigen nach Fig. 14 ab, so daß sie nicht erläutert wird.
Wie unter Bezugnahme auf Fig. 14 erläutert wurde, wird die Dezimalmultiplikations-Einrichtung so gesteuert, daß die Summe und der Übertrag des im Dezimalschleifenaddierwerk erhaltenen Endprodukts in einem binären Volladdierwerk volladdiert werden, wonach die Korrektur durch Subtraktion von 6 für jede Dezimalziffer in Abhängigkeit davon erfolgt, ob eine Übertragsweiterleitung an eine Ziffer höherer Ordnung erfolgt, so daß eine korrekte binärcodierte Dezimalzahl erhalten wird, und zwar in solcher Weise, daß nach Wiederholung der Abarbeitung für sämtliche bedeutsamen Ziffern des Multiplikators die Operation in einem weiteren Zyklus wiederholt wird unter Verwendung von Null der höchsten Ordnung der bedeutsamen Ziffern des Multiplikators, um dadurch die Additionskorrektur um Eins der Ziffer höherer Ordnung zu vervollständigen.
Fig. 16 zeigt ein weiteres Ausführungsbeispiel der Dezimal­ multiplikations-Einrichtung. Damit der letzte Operationszyklus unter Verwendung von Null der Ziffer höherer Ordnung zu den bedeutsamen Ziffern nicht erforderlich ist, werden der Ausgang eines 1-Additions-Korrekturglieds 55 sowie die Summe und der Übertrag des Endprodukts in das binäre Volladdierwerk 54 eingegeben, das drei Eingänge für jede Dezimalziffer aufweist, und wenn die 1-Additionskorrektur der Ziffer höherer Ordnung jeder einschlägigen Dezimalziffer erforderlich ist infolge der Operation für die bedeutsamste Ziffer, erfolgen die 1-Additions-Korrekturen der Ziffern höherer Ordnung durch das drei Eingänge aufweisende binäre Volladdierwerk.
Die hier angegebene Dezimalmultiplikations-Einrichtung bietet den Vorteil, daß ihr Dezimalschleifenaddierwerk im wesentlichen ebenso wie ein binäres Multiplikators-Schleifenaddierwerk betrieben werden kann. Das Dezimalschleifenaddierwerk ist unter Verwendung eines Dezimaladdierwerks aufgebaut, in dem ein zur binären Hochgeschwindigkeits-Multiplikation verwendete Übertragszwischenspeicher-Addiereinheit mit einem Dezimalübertrags-Korrekturglied ausgerüstet ist. Die Dezimalübertragskorrektur ist durch eine relativ geringe Hardware-Menge implementierbar. Die Dezimalmultiplikation nach der Erfindung erfolgt mit ungefähr der vierfachen Hochgeschwindigkeit der Schleifenoperation wie bei der konventionellen Dezimalmultiplikations-Einrichtung.
Da ferner die Dezimalmultiplikations-Einrichtung unter Ausbildung einer binären Übertragszwischenspeicher-Addiereinheit als Grundkonstruktionselement mit einem Dezimalübertrags- Korrekturglied aufgebaut ist, macht eine geringfügige Modifikation der Steuerung des Schleifenaddierwerks in der Einrichtung die Anwendung sowohl für Binär- als auch für Dezimal-Multiplikation möglich.

Claims (6)

1. Dezimalmultiplikations-Einrichtung für binärcodierte Dezimalzahlen (BCD) mit:
  • - einem Multiplikator, der in n Gruppen, mit jeweils wenigstens einer Ziffer, unterteilt ist,
  • - in n Zyklen gebildeten Teilprodukten und
  • - der Bildung jeweils eines neuen Zwischenprodukts durch die Addition eines in einem Zyklus gebildeten Teilprodukts zu einem bisherigen Zwischenprodukt, wobei die Dezimalmultiplikations-Einrichtung aufweist:
    • a) einen Dezimalteilprodukt-Geber zur Bildung von n Teilprodukten,
    • b) ein Zwischenprodukt-Register,
    • c) ein Addierwerk zur Addition der Teilprodukte, geliefert vom Dezimalteilprodukt-Geber, mit dem Zwischenprodukt, gespeichert im Zwischenprodukt-Register,
      wobei das Addierwerk binäre Volladdierer zur Addition der binärcodierten Dezimalziffern und
      Addierglieder zur Addition von 6 zu jeder Ziffer, entweder des Teilprodukts oder des Zwischenprodukts, aufweist und an dessen Ziffernausgang Subtraktionsglieder zur Subtraktion von 6 angeordnet sind zur Korrektur der Resultatziffern nach Maßgabe eines in der betreffenden Ziffernstelle vorhandenen Übertrags,
dadurch gekennzeichnet, daß
  • d) das Zwischenglied-Register in ein Zwischenprodukt- Summenregister (14) und ein Zwischenprodukt-Übertragsregister (15) zur Speicherung des Zwischenprodukts in Form von Summe und Übertrag aufgeteilt ist,
  • e) das Addierwerk als binäre Übertragszwischenspeicher- Addiereinheit (29; 29 a, 29 b) ausgebildet ist zur dezimalen Übertragszwischenspeicher-Addition des Teilprodukts vom Dezimalteilprodukt-Geber (46), der Zwischenproduktsumme aus dem Zwischenprodukt- Summenregister (14) und dem Betrag aus dem Zwischenprodukt- Übertragsregister (15), wobei das Additionsergebnis in Form von Summe (S) und Übertrag (C) ausgegeben und an das Zwischenprodukt-Summenregister (14) bzw. an das Zwischenprodukt-Übertragsregister (15) zurückgeführt wird,
  • f) die Übertragszwischenspeicher-Addiereinheit (29; 29 a, 29 b) Korrekturglieder (31, 32, 37) aufweist zur Korrektur des Summenausgangs jeder Ziffer der Übertragszwischenspeicher-Addiereinheit (29; 29 a, 29 b) und jeder Ziffer des Teilprodukts, geliefert vom Dezimalteilprodukt-Geber (46) in einem auf die vorhergehende Summenbildung nachfolgenden Zyklus (n) wobei die Korrekturen auf der Basis der Werte von Summe (S) und Übertrag (C) am Ausgang der Übertragszwischenspeicher- Addiereinheit (29; 29 a, 29 b) erfolgen, und wobei die Korrekturglieder (31, 32, 37) bestehen aus:
    • - Korrekturbetrag-Entscheidungsgliedern (37, 41, 47, 49) zur Entscheidung ob eine Korrektur des Summenausgangs (S) in der zugehörigen Ziffernstelle und des Übertrags zur nächsthöheren Ziffernstelle erforderlich ist aufgrund des Ergebnisses von Summe (S) und Übertrag (C) am Ausgang der Übertragszwischenspeicher-Addiereinheit (29; 29 a, 29 b),
    • - Summenausgangs-Korrekturgliedern (31 a, 31 b) zur Durchführung der Korrektur des Summenausgangs (S) in jeder Ziffernstelle der Übertragszwischenspeicher- Addiereinheit (29; 29 a, 29 b), ausgelöst durch die Korrekturbetrag-Entscheidungsglieder (37, 41, 47, 49), und
    • - Korrekturglieder (32), angeordnet zwischen dem Dezimalteilprodukt-Geber (46) und der Übertragszwischenspeicher- Addiereinheit (29; 29 a, 29 b) zur Korrektur des Teilprodukts in dem auf die Summenbildung nachfolgenden Zyklus (n), wobei durch die Korrekturbetrag-Entscheidungsglieder (37, 41, 47, 49) festgestellt wird ob aufgrund der Werte von Summe (S) und Übertrag (C) der Übertragszwischenspeicher-Addiereinheit (29; 29 a, 29 b) eine Addition von 6 oder 12 mod 16 erforderlich ist oder nicht, und
  • g) mit einem Volladdierwerk (35) die Werte von Summe (S) und Übertrag (C) am Ausgang der Übertragszwischenspeicher- Addiereinheit (29; 29 a, 29 b) addiert werden.
2. Dezimalmultiplikations-Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Übertragszwischenspeicher-Addiereinheit (29; 29 a, 29 b) eine erste Verschiebeeinheit (30; 30 a) aufweist, die den Übertrag (C) der Übertragszwischenspeichereinheit (29 a) in eine um ein Bit höhere Stelle verschiebt und ausgibt.
3. Dezimalmultiplikations-Einrichtung nach Anspruch 2, gekennzeichnet durch zweite Verschiebeeinheiten (33, 34), die Summe (S) und den Übertrag (C) aus der Übertragszwischenspeicher- Addiereinheit (29; 29 a, 29 b) des vorhergehenden Zyklus zur Ziffernausrichtung im nächstfolgenden Zyklus jeweils verschieben und die resultierende Summe (S) bzw. den resultierenden Übertrag (C) dem Zwischenprodukt- Summenregister (14) bzw. dem Zwischenprodukt-Übertrags­ register (15) zuführen.
4. Dezimalmultiplikations-Einrichtung nach Anspruch 3, gekennzeichnet durch ein Überlaufaddierwerk (43) zur Addition der jeweils stellenniedrigsten Ziffern der korrigierten (31 b) Summe (S) und des stellenmäßig ausgerichteten (durch Verschiebeeinheit 30 b) Übertrags (C) der Übertragszwischenspeicher-Addiereinheit (29 b), und ein 6-Subtraktionsglied (44), das, je nach dem, ob ein Stellenübertrag vorliegt oder nicht, das Resultat des Überlaufaddierwerks (43) unverändert, oder um den Wert 6 verringert, ausgibt.
5. Dezimalmultiplikations-Einrichtung nach Anspruch 1, dadurch gekennzeichnet,
daß der Dezimalteilprodukt-Geber (46) jedes Teilprodukt in Form von jeweils zwei Ziffernabschnitten ausgibt, von denen der eine den höheren Ziffernstellen (DH) und der andere den niedrigeren Stellen (DL) zugeordnet ist,
daß das Dezimaladdierwerk zwei in Serie geschaltete Übertragszwischenspeicher-Addiereinheiten (29 a, 29 b) aufweist; und
daß der Ziffernabschnitt mit den höheren Stellen (DH), die Zwischenproduktsumme des Zwischenprodukt-Summenregisters (14) und der Zwischenproduktübertrag des Zwischenprodukt-Übertragsregisters (15) den Eingängen der ersten Übertragszwischenspeicher-Addiereinheit (29 a) zugeführt sind, während deren Ausgänge von Summe (S) und Übertrag (C) zusammen mit dem Ziffernabschnitt der niedrigeren Stellen (DL) den Eingängen der nachfolgenden Übertragszwischenspeicher-Addiereinheit (29 b) zugeführt sind.
DE19843424078 1983-07-01 1984-06-29 Dezimalmultiplikations-einrichtung Granted DE3424078A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58119556A JPS6011927A (ja) 1983-07-01 1983-07-01 10進乗算装置

Publications (2)

Publication Number Publication Date
DE3424078A1 DE3424078A1 (de) 1985-01-10
DE3424078C2 true DE3424078C2 (de) 1989-06-29

Family

ID=14764235

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19843424078 Granted DE3424078A1 (de) 1983-07-01 1984-06-29 Dezimalmultiplikations-einrichtung

Country Status (3)

Country Link
US (1) US4677583A (de)
JP (1) JPS6011927A (de)
DE (1) DE3424078A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60140429A (ja) * 1983-12-28 1985-07-25 Hitachi Ltd 10進乗算装置
US4947364A (en) * 1985-10-23 1990-08-07 Hewlett-Packard Company Method in a computing system for performing a multiplication
DE3608914A1 (de) * 1986-03-18 1987-10-01 Thomson Brandt Gmbh Verfahren zur korrektur
JPH0769784B2 (ja) * 1987-09-29 1995-07-31 日本電気株式会社 10進加算装置
US7546328B2 (en) * 2004-08-31 2009-06-09 Wisconsin Alumni Research Foundation Decimal floating-point adder
US7743084B2 (en) * 2004-09-23 2010-06-22 Wisconsin Alumni Research Foundation Processing unit having multioperand decimal addition
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
US8577952B2 (en) * 2008-12-08 2013-11-05 International Business Machines Corporation Combined binary/decimal fixed-point multiplier and method
US8566385B2 (en) * 2009-12-02 2013-10-22 International Business Machines Corporation Decimal floating point multiplier and design structure

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1196298A (en) * 1966-10-04 1970-06-24 Zentralen Inst Istchislitelna Electric Circuit for Performing the Operation 'Multiplication', Especially in Electronic Calculators
US3958112A (en) * 1975-05-09 1976-05-18 Honeywell Information Systems, Inc. Current mode binary/bcd arithmetic array
DE2952229A1 (de) * 1979-01-03 1980-07-17 Honeywell Inf Systems Verfahren und einrichtung zur multiplikation von dezimalzahlen in einer dv-anlage
US4484300A (en) * 1980-12-24 1984-11-20 Honeywell Information Systems Inc. Data processor having units carry and tens carry apparatus supporting a decimal multiply operation
JPS58129653A (ja) * 1982-01-29 1983-08-02 Hitachi Ltd 乗算方式

Also Published As

Publication number Publication date
JPS6011927A (ja) 1985-01-22
US4677583A (en) 1987-06-30
DE3424078A1 (de) 1985-01-10
JPH0234054B2 (de) 1990-08-01

Similar Documents

Publication Publication Date Title
DE1956209C3 (de) Multipliziervorrichtung
DE2712224A1 (de) Datenverarbeitungsanlage
DE3424078C2 (de)
DE2623986A1 (de) Parallelrechenwerk
DE2018452A1 (de) Arithmetische Einrichtung
DE3229452A1 (de) Arithmetiklogikeinheit
DE2758130C2 (de) Binärer und dezimaler Hochgeschwindigkeitsaddierer
DE3303269C2 (de)
DE3447634C2 (de)
DE69030169T2 (de) Hochleistungsaddierer mit Carry-Vorhersage
DE3434777C2 (de)
DE3784684T2 (de) Fehlerkorrekturdecoder fuer schnelle behandlung von pufferueberlaeufen.
DE2743575A1 (de) Verfahren und einrichtung zur multiplikation einer ersten zahl mit einer zweiten zahl
EP0265555B1 (de) Verfahren und Schaltungsanordnung zur Addition von Gleitkommazahlen
DE3440680A1 (de) Verfahren und vorrichtung zur dezimaldivision
DE2727051C3 (de) Einrichtung zur binären Multiplikation einer ersten Zahl als Multiplikand mit einer den Multiplikator ergebenden Summe aus einer zweiten und dritten Zahl im Binärcode
DE1449564C3 (de) Recheneinrichtung zur Subtraktion mehrerer Operanden oder zu deren Addition durch Verwendung von Komplementärwerten eines der Operanden
DE3302013C2 (de)
DE2855946A1 (de) Pla-addierschaltung
DE1549105C3 (de) Codeprüfanordnung für die Korrektur fehlerhaft übertragener Zeichen
DE1549461C3 (de)
DE1094020B (de) Periodisch arbeitende numerische Rechenmaschine
DE1549485B2 (de) Anordnung zur division binaerer operanden ohne rueckstellung des restes
DE2737483C3 (de) Korrektur-Schaltungsanordnung für Additions- oder Substraktionsoperationen mit nicht-hexadezimalen Operanden in hexadezimalen Rechenwerken
DE1499227B2 (de) Schaltungsanordnung für arithmetische und logische Grundoperationen

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