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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/491—Computations with decimal numbers radix 12 or 20.
- G06F7/4915—Multiplying; Dividing
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
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 A ∼ I
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 E ∼ I 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 A ∼ I 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 A ∼ I 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,
+ ("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")}],
+ {("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
×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.
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.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1549590A1 (de) * | 1966-10-04 | 1971-03-18 | Zentralen Inst Iztschislitelna | Multiplikationsschaltung,insbesondere fuer elektronische Tischrechner |
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 | 乗算方式 |
-
1983
- 1983-07-01 JP JP58119556A patent/JPS6011927A/ja active Granted
-
1984
- 1984-06-27 US US06/625,131 patent/US4677583A/en not_active Expired - Fee Related
- 1984-06-29 DE DE19843424078 patent/DE3424078A1/de active Granted
Also Published As
Publication number | Publication date |
---|---|
US4677583A (en) | 1987-06-30 |
JPS6011927A (ja) | 1985-01-22 |
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 | |
DE3303269C2 (de) | ||
DE3447634C2 (de) | ||
EP0265555B1 (de) | Verfahren und Schaltungsanordnung zur Addition von Gleitkommazahlen | |
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 | |
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) | ||
DE2046685A1 (de) | Einrichtung zum Konvertieren einer Dezimalzahl in eine Binarzahl | |
DE2855946A1 (de) | Pla-addierschaltung | |
DE1549105C3 (de) | Codeprüfanordnung für die Korrektur fehlerhaft übertragener Zeichen | |
DE1549461C3 (de) | ||
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 | |
DE4408789A1 (de) | Ein rechnergestütztes Verfahren zum Konstruieren eines Addierers mit vorgreifender Übertragsbildung |
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 |