DE19846828A1 - Kombinierter Binär-/Dezimal-Addierer - Google Patents

Kombinierter Binär-/Dezimal-Addierer

Info

Publication number
DE19846828A1
DE19846828A1 DE19846828A DE19846828A DE19846828A1 DE 19846828 A1 DE19846828 A1 DE 19846828A1 DE 19846828 A DE19846828 A DE 19846828A DE 19846828 A DE19846828 A DE 19846828A DE 19846828 A1 DE19846828 A1 DE 19846828A1
Authority
DE
Germany
Prior art keywords
logic
carry
decimal
sum
decimal place
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19846828A
Other languages
English (en)
Other versions
DE19846828B4 (de
Inventor
Wilhelm Dr Haller
Ulrich Krauch
Thomas Ludwig
Holger Wetter
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE19846828A1 publication Critical patent/DE19846828A1/de
Application granted granted Critical
Publication of DE19846828B4 publication Critical patent/DE19846828B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/4912Adding; Subtracting
    • 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • G06F7/507Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using selection between two conditionally calculated carry or sum values

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Description

Gebiet der Erfindung
Die Erfindung betrifft einen kombinierten Binär-/Dezimal- Addierer zur Verwendung in Computersystemen, um schnelle binä­ re und dezimale Additionen und Subtraktionen mit Operanden auszuführen, die eine Vielzahl binärer und dezimaler Stellen enthalten.
Hintergrund der Erfindung
Additionen und Subtraktionen vielstelliger dezimaler Operanden werden in den folgenden Publikationen offenbart: Hill und Pat­ terson, "Digital Logic and Microprocessors", veröffentlicht von Wiley & Sons, New York 1984, Seiten 113 bis 123; Omond, "Computer Arithmetik Systems, Algorithms, Architecture and Implementation", veröffentlicht von Prentice Hall, Englewood Cliffs, USA, 1994, Seiten 447 bis 456; und Stein und Munro, "Introduction to Machine Arithmetic", Addison-Wesley Publi­ shing Company Inc., New York, 1971, Seiten 96 bis 100. Solche Operationen werden von binären Additions- oder Subtraktions­ gruppen mit jeweils vier binären Stellen ausgeführt, von denen jede eine Dezimalstelle des Operanden darstellt. Da jede die­ ser aus vier Binärstellen bestehenden Gruppen die Dezimalzif­ fern 0 bis 9 sowie sechs ungültige Werte A, B, C, D, E und F darstellt, sind Korrekturoperationen erforderlich, um einen Übertrag sicherzustellen, wenn X'9' überschritten wird, und um zu verhindern, daß das Ergebnis einer dezimalen Addition oder Subtraktion Dezimalstellen enthält, die ungültige Werte auf­ weisen. Bei schnellen Dezimaladdierern werden solche Korrek­ turoperationen in zwei Operationszyklen ausgeführt. Im ersten Zyklus wird im Falle einer Addition ein Korrekturwert von sechs zu jeder Dezimalstelle eines der Operanden addiert. Im zweiten Operationszyklus werden die Rohsummen, die während des ersten Zyklus erzeugt worden sind, wieder neu korrigiert, wenn das Ergebnis der Übertragsverarbeitung anzeigt, daß eine Kor­ rektur auf einer Dezimalstelle nicht erforderlich war. Zu die­ sem Zweck wird auf jeder Dezimalstelle ein Übertragsausgangs­ signal von eins verwendet, um die Subtraktion der sechs von der Rohsumme der entsprechenden Dezimalstellen zu steuern. Im Falle einer Subtraktion wird im zweiten Zyklus für jede Dezi­ malstelle eine Korrektur mit minus sechs vorgenommen, wenn auf dieser Position kein Übertragseingangssignal auftritt.
Somit benötigt die bekannte Art und Weise der Ausführung dezi­ maler Additionen und Subtraktionen auf jeder Dezimalstelle drei Operationen innerhalb einer Folge: erstens, eine +6-Ope­ ration zu jeder Dezimalstelle, wenn eine Addition durchgeführt wird; zweitens, eine binäre Addition der beiden Operanden; und drittens, eine bedingte und auf jede Dezimalstelle bezogene -6-Operation unabhängig davon, ob eine Addition oder Subtrakti­ on ausgeführt wird. Dieser Lösungsansatz erfordert eine Durch­ laufverzögerung von 15 logischen Gatterebenen.
Der zeitkritische Pfad dieser Operationen befindet sich auf der höchsten Dezimalstelle, für die das Übertragseingangssig­ nal am Ende der Operationen der Übertragsverarbeitung erzeugt wird. Somit erfordern die Neukorrekturen der Summe und der Differenzen durch die -6-Operation eine zusätzliche Operationsverzögerung, welche die Zyklusfrequenz der Prozesso­ reinheit, in welcher die dezimalen Additionen und Subtraktio­ nen ausgeführt werden müssen, begrenzt.
Zusammenfassung der Erfindung
Es ist eine Aufgabe der Erfindung, die Ausführungszeit dezima­ ler Additionen und Subtraktionen in einer kombinierten Binär- /Dezimal-Addierereinheit zu verringern. Eine weitere Aufgabe besteht darin, eine erhöhte Zyklusfrequenz der Prozessorein­ heit zu gestatten, in welcher die kombinierte Binär-/Dezimal- Addierereinheit verwendet wird. Die Erfindung wird in den An­ sprüchen definiert.
Gemäß der Erfindung werden für jede Dezimalstelle parallel zur Erzeugung und Verteilung der Übertragssignale über die gesam­ ten Dezimalstellen der Addierereinheit Vorsummen erzeugt. Die Vorsummen nehmen das Auftreten des Übertragseingangssignals der Dezimalstellen und die Notwendigkeit der Ausführung der Sechskorrekturen nach der Erzeugung des Übertragssignale für die Höchstwerte Dezimalstelle vorweg. Die Übertragsausgangs­ signale der Dezimalstellen werden in Kombination mit Opera­ tionssteuersignalen zur Auswahl der korrekten Vorsummen als Ergebnis der Addition oder Subtraktion verwendet.
Kurze Beschreibung der Zeichnungen
Im folgenden wird eine bevorzugte Ausführungsform einer kombi­ nierten Binär-/Dezimal-Addierereinheit gemäß der Erfindung unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, worin:
Fig. 1 ein schematisches Blockschaltbild der Dezimalstellen einer kombinierten Binär-/Dezimal-Addierereinheit zeigt;
Fig. 2 ein Blockschaltbild der niedrigstwertigen Dezimal­ stelle einer kombinierten Binär-/Dezimal-Addierer­ einheit gemäß der Erfindung zeigt;
Fig. 3 ein Blockschaltbild einer zweitniedrigstwertigen Dezimalstelle der Binär-/Dezimal-Addierereinheit gemäß Fig. 2 zeigt;
Fig. 4 ein Blockschaltbild eines Operationsdecoders zeigt, wie er in der Einheit von Fig. 2 und 3 verwendet wird; und worin
Fig. 5 ein Blockschaltbild einer Vorsummenlogik zeigt, wie sie in der Einheit von Fig. 2 und 3 verwendet wird.
Detaillierte Beschreibung einer bevorzugten Ausführungsform der Erfindung
Eine kombinierte Binär-/Dezimal-Addierereinheit 10, wie sie in Fig. 1 dargestellt ist, enthält 16 Dezimalstellen D0 bis D15, von denen jede eine Dezimalziffer der Operanden A, B als Ein­ gangssignal empfängt und eine Dezimalstelle des Ergebnisses SUM erzeugt. Die Einheit 10 umfaßt 64 Bitpositionen, welche in 8 Bytes unterteilt sind. Jedes Byte wird durch zwei Dezimal­ ziffern dargestellt, die aus 4 Bits bestehen. Die Ziffernposi­ tion D15 stellt die niedrigstwertige Dezimalstelle dar, und die Ziffernposition D0 stellt die höchstwertige Dezimalstelle dar. Jede Dezimalstelle empfängt ein Übertragseingangssignal DCy-in von der nächstniedrigeren Dezimalstelle und liefert ein Übertragsausgangssignal DCy-out an die nächsthöhere Dezimal­ stelle. Die niedrigstwertige Dezimalstelle empfängt ein An­ fangsübertragssignal Anfang CY-in, welches "eins" ist, wenn eine Subtraktion ausgeführt werden soll. Bei binären Operatio­ nen werden die Dezimalstellengruppen und die Bytegrenzen igno­ riert, und die 64 Bits der Einheit stellen 64 binäre Bitposi­ tionen dar.
Eine Realisierung von zwei Dezimalstellen D15 und D14 wird in den Fig. 2 und 3 dargestellt. Fig. 2 zeigt die niedrigst­ wertige Dezimalstelle, welche die niedrigstwertigen Dezimal­ ziffern der beiden Operanden A und B empfängt, die die Bits 60 bis 63 enthalten, und welche desweiteren ein Anfangs- Übertragseingangssignal DCy-in empfängt.
Die Addition/Subtraktion beruht auf den folgend üblichen Re­ geln:
Dezimaladdition/-Subtraktion
Ai + Bi = Ai + 6 + Bi wenn DCy = 1
Ai + Bi = (Ai + 6 + Bi) - 6 wenn DCy = 0
Ai - Bi = Ai - Bi wenn DCy = 1
Ai - Bi = (Ai - Bi) - 6 wenn DCy = 0
Binäraddition/-Subtraktion
Ai + Bi = Ai + Bi
Ai - Bi = Ai - Bi
wobei i die Ziffernpositionen (0 bis 15) kennzeichnet. Der längste Pfad durch die Logik wird für Dezimaladditionen/- Subtraktionen erforderlich und enthält die folgenden Schritte:
  • - zu jeder Dezimalstelle eines Operanden wird +6 addiert,
  • - die Operanden Ai, Bi werden addiert/subtrahiert, wobei die Übertragsverarbeitung am zeitkritischsten ist,
  • - in Abhängigkeit vom Übertragsausgangssignal jeder Dezi­ malstelle wird das Ergebnis dezimalstellenweise um -6 verringert.
Gemäß der beschriebenen Ausführungsform der Erfindung werden die Regeln für die dezimale Addition/Subtraktion wie folgt modifiziert, während die Regeln für die binäre Addition/Subtraktion die oben dargestellte Form beibehalten.
Dezimaladdition/-Subtraktion:
Ai + Bi = Ai + 6 + Bi wenn DCy_out = 1
Ai + Bi = Ai + Bi wenn DCy_out = 0
Ai - Bi = Ai - Bi wenn DCy_out = 1
Ai - Bi = Ai - 6 - Bi wenn DCy_out = 0
wobei diese Summen und Differenzen während der Verarbeitung der Übertragssignale der einzelnen Stellen als Vorsummen und Vordifferenzen parallel erzeugt werden und wobei für jede De­ zimalstelle das erzeugte Dezimalstellen-Übertragssignal DCy­ out verwendet wird, um eine der Vorsummen oder Vordifferenzen als korrekte Summe oder Differenz auszuwählen.
In der Fig. 2 entsprechenden Ausführungsform werden die Bits 60 bis 63 der niedrigstwertigen Dezimalstelle des Operanden A in einer Gruppe Zwischenspeicher 20 gespeichert, und die ent­ sprechenden Bits 60 bis 63 des Operanden B werden in einer Gruppe Zwischenspeicher 22 gespeichert, wobei jede der Zwi­ schenspeichergruppen einen wahren und einen invertierten Aus­ gang umfassen. Mit den Ausgängen der Zwischenspeicher 20 ist eine Minus-sechs-Logik 24 verbunden, um das -6-Dekrement einer Dezimalstelle des Operanden A zu bilden. Genauso ist eine Plus-sechs-Logik 26 mit beiden Ausgängen der Zwischenspeicher 22 verbunden, um das +6-Inkrement der Dezimalstellen des Ope­ randen B zu bilden. Alternativ kann die Zuordnung der Minus­ sechs-Logik zum Operanden Bi und die Zuordnung der Plus-sechs- Logik zum Operanden Ai erfolgen. Die Logikschaltungen 24, 26 führen die sechs Dekrementier- und Inkrementieroperationen auf konventionelle Weise durch logische Operationen gemäß den fol­ genden Gleichungen aus:
+6-Logik:
Dezimalstelle PLUS 6 BIT (3) = (3)
Dezimalstelle PLUS 6 BIT (2) = (2)'
Dezimalstelle PLUS 6 BIT (1) = ((1) Antivalenz (2))'
Dezimalstelle PLUS 6 BIT (0) = (0)'.(1)+(0)'.(2)+(0).(1).(2)
-6-Logik
Dezimalstelle MINUS 6 BIT (3) = (3)
Dezimalstelle MINUS 6 BIT (2) = (2)
Dezimalstelle MINUS 6 BIT (1) = (1) Antivalenz (2)
Dezimalstelle MINUS 6 BIT (0) = (0)'.(1)'+(0) '.(2)'+(0).(1).(2)
worin ' das Komplement eines Bits oder Terms kennzeichnet.
Die Ausgänge der Zwischenspeicher 22 sind ebenfalls mit einem Multiplexer M1 verbunden, der aus zwei UND-Schaltungen 28, 29 gefolgt von einer ODER-Schaltung 30 besteht. Die UND-Schaltung 28 empfängt ein Steuersignal ANY_SUB zusammen mit den komplementären Ausgangssignalen der Zwischenspeicher 22, und die UND-Schaltung 29 empfängt ein Steuersignal ANY_ADD zusammen mit den wahren Ausgangssignalen der Zwischenspeicher 22. Die Steuersignale ANY_SUB und ANY_ADD werden von einem Operationsdecoder 32 erzeugt, welcher mit ein Befehlsregister 33 wie in Fig. 4 dargestellt verbunden ist. Der Operationsdecoder liefert zu einem bestimmten Zeitpunkt entweder die Steuersignale ANY_ADD oder ANY-SUB, jedoch niemals beide gleichzeitig. Der Multiplexer M1 besitzt vier Ausgangsleitungen, die den Bits 60 bis 63 zugeordnet sind, um gemäß einer Auswahl den wahren Operanden B im Fall einer Addi­ tion oder den komplementären Operanden B im Fall einer Sub­ traktion durchzuschalten.
Die Ausgangsleitungen der Sechsfach-Inkrementierlogik 26 und des Multiplexers M1 sind über einen Vier-Wege-Multiplexer M2, dessen Steuereingänge mit dem Steuersignalausgang DEC_ADD des Operationsdecoders 32 verbunden sind, an eine Dezimalstellen- Übertragslogik 34 angeschlossen. Im Fall einer dezimalen Addi­ tion, was durch ein Steuersignal DEC_ADD angezeigt wird, wird der inkrementierte Operand B auf die Dezimalstellen-Übertrags­ logik 34 geschaltet, während die Abwesenheit des Signals DEC_ADD, wie es durch das Vorhandensein des Inverters 35 dargestellt ist, eine Übertragung des wahren oder komplementären Operanden B vom Ausgang des Multiplexers M1 auf die Dezimalstellen-Übertragslogik 34 bewirkt. Die Dezimalstellen-Übertragslogik 34 empfängt desweiteren von den Zwischenspeichern 20 die wahren Bits 60 bis 63 des Operanden A. Ein weiteres Eingangssignal der Dezimalstellen- Übertragslogik 34 ist das Anfangs-Übertragseingangssignal INIT_CARRY in.
Die Dezimalstellen-Übertragslogik 34 erzeugt ein DCy_out Signal der Dezimalstelle D15 für die Bitposition 59 der Dezimalstelle D14. Die Dezimalstellen-Übertragslogik 34 arbeitet gemäß dem konventionellen Parallelübertragskonzept, indem Generierungsfunktionen Gi und Weitergabefunktionen Pi der Operandenbits verwendet werden, wobei die Generierungsfunktion durch die UND-Verknüpfung der Operandenbits und die Weitergabefunktion durch die ODER- Verknüpfung der Operandenbits gebildet werden:
Generierungsfunktion: Gi = Ai.Bi
Weitergabefunktion: Pi = Ai + Bi.
Die logischen Operationen, die von der Dezimalstellen- Übertragslogik 34 der niedrigstwertigen Dezimalstelle ausge­ führt werden, sind folgende:
DCy_out=G0 + G1.P0 + G2.P0.P1 + G3.P0.P1.P2 + P0.P1.P2.P3.Cy_in
wobei Cy_in der Übertrag in die niedrigstwertige Dezimalstelle ist, auch als Einheiten-Übertragseingangssignal oder Anfangs- Übertragssignal INIT_CARRY in bezeichnet, und verwendet wird, um zur Ausführung von Subtraktionen das 2er-Komplement zu er­ zeugen.
Die Ausgangsleitungen der Schaltungen 20, 24, 26 und M1 sind desweiteren entweder direkt oder über die Multiplexer M3 und M4 mit einer Vorsummenlogik verbunden, die aus den Vorsummen- Logikschaltungen 36 und 38 besteht. Die Vorsummen-Logikschal­ tung 36 erzeugt aus den Operandenbits unter der Annahme, daß das Übertragseingangssignal in diese Dezimalstelle null ist (DCy_in = 0), die vorläufigen Ergebnisse A + B und A - B sowie desweiteren die vorläufigen Ergebnisse Ai+Bi und Ai-Bi unter der Voraussetzung, daß das Übertragseingangssignal in diese Dezimalstelle eins ist (DCy_in = 1) . Genauso erzeugt die Vorsummen-Logikschaltung 38 aus den Operandenbits derselben Dezimalstelle die vorläufigen Ergebnisse Ai+Bi+6 und Ai-6-Bi unter der Voraussetzung, daß das Übertragseingangssignal in diese Dezimalstelle null ist (DCy_in = 0), sowie die vorläufi­ gen Ergebnisse Ai+Bi+6 und Ai-6-Bi unter der Voraussetzung, daß das Übertragseingangssignal in diese Dezimalstelle eins ist (DCy in = 1).
Zu diesem Zweck empfängt die Vorsummen-Logikschaltung 36 von den Zwischenspeichern 20 die Bits des wahren Operanden A und vom Multiplexer M1 die wahren oder komplementären Bits des Operanden B. Die Vorsummen-Logikschaltung 38 empfängt vom Mul­ tiplexer M1 über den Vier-Wege-Multiplexer M3 die komplementä­ ren Bits des Operanden B, wenn der Operationsdecoder 32 ein Signal DEC_SUB liefert, und wenn der Operationsdecoder 32 ein Signal DEC_ADD liefert, empfängt sie von der Plus-sechs-Logik 26 über den Multiplexer M3 den inkrementierten Operanden B. Die Vorsummen-Logikschaltung 38 empfängt desweiteren über den Vier-Wege-Multiplexer M4 die Bits des wahren Operanden A, wenn der Operationsdecoder 32 ein Signal DEC_ADD liefert, und wenn der Operationsdecoder 32 ein Signal DEC_SUB liefert, empfängt sie von der Minus-sechs-Logik 24 den dekrementierten Operanden B.
Fig. 5 zeigt eine Realisierung der Vorsummen-Logikschaltungen 36, 38 von Fig. 2, wobei, da die beiden Schaltungen identisch sind, nur eine der Vorsummen-Logikschaltungen 36, 38 darge­ stellt ist. Über 4-Draht-Eingangsleitungen 40, 41 empfangen die Vorsummen-Logikschaltungen 36 oder 38 die Operanden A und B in der oben beschriebenen Weise, d. h. die Bits der wahren, komplementären, inkrementierten oder dekrementierten Operan­ den. Aus diesen Eingangssignalen erzeugt eine Bitfunktions­ schaltung 42 mittels UND-Schaltungen 43 die Generierungsfunk­ tionen Gi und mittels ODER-Schaltungen 44 die Weitergabefunk­ tionen Pi. Beide Sätze Bitfunktionen werden für die Übertrags­ logikschaltungen 45 und 46 und die Rohsummenlogik 48 bereit­ gestellt. Die Übertragslogikschaltung 45 führt die Übertrags­ signalverarbeitung innerhalb der dargestellten Dezimalstelle unter der Voraussetzung aus, daß das Signal DCy_in null ist, wobei unter Verwendung der Generierungs- und Weitergabefunk­ tionen Gi und Pi, wie sie von der Schaltung 42 bereitgestellt werden, die folgenden Operationen ausgeführt werden:
Cy3 = 0
Cy2 = G3
Cy1 = G2 + G3.P2
Cy0 = G1 + G2.P1 + G3.P1.P2.
Dementsprechend führt die Übertragslogikschaltung 46 die Über­ tragssignalverarbeitung unter der Voraussetzung, daß das Sig­ nal DCy_in eins ist, durch Umsetzen der folgenden Operationen aus:
Cy3 = 1
Cy2 = P3
Cy1 = G2 + P2.P3
Cy0 = G1 + G2.P1 + P1.P2.P3.
Die Rohsummenlogik 48 führt die Antivalenzverknüpfung der Ope­ randen A und B, die auf den Leitungen 40, 41 empfangen werden, mittels Inverterschaltungen 49 und UND-Schaltungen 50 aus, um die Generierungsfunktionen Gi zu invertieren und eine UND-Ver­ knüpfung der Pi-Funktionen und der invertierten Gi-Funktionen folgendermaßen zu bilden:
Ai xor Bi = Ai.Bi' + Ai'.Bi = (Ai.Bi)'.(Ai+Bi) = Gi'.Pi
worin i die Bits der Dezimalstelle und ' das Komplement des entsprechenden Terms kennzeichnet.
Zwei Antivalenzschaltungen 51, 52 verknüpfen die Ausgangssig­ nale der Übertragslogikschaltungen 45, 46 und die Ausgangs­ signale der Rohsummenlogik 48, um SUM0 und SUM1 der Ziffern­ stelle zu erzeugen, wobei SUM0 auf der Voraussetzung beruht, daß das Signal DCy_in null ist, und SUM1 beruht auf der Vor­ aussetzung, daß das Signal DCy_in eins ist.
Wie in Fig. 2 dargestellt sind die Vorsummen-Logikschaltungen 36 und 38 parallel zueinander und parallel zu der Dezimalstellen-Übertragslogik 34 angeordnet. Somit arbeiten diese drei Schaltungen bei der Erzeugung des Dezimalstellen­ übertrags und der Vorsummen Ai+Bi oder Ai-Bi mit und ohne Übertragseingangssignal und der Vorsummen Ai+Bi+6 oder Ai-6-Bi mit und ohne Übertragseingangssignal gleichzeitig. Während der entsprechenden Operationen innerhalb der Dezimalstellen der Einheit 10 ist der Gesamtzeitbedarf der Dezimalstellen-Über­ tragslogikschaltungen aller 16 Dezimalstellen der kritische Faktor bezüglich der Arbeitsgeschwindigkeit der Einheit 10. Das Übertragsausgangssignal einer Dezimalstelle wird, sobald es verfügbar ist, verwendet, um eine der Vorsummen als die richtige Summe der nächsthöheren Dezimalstelle auszuwählen. In der niedrigstwertigen Dezimalstelle hängt diese Auswahl von dem Anfangs-Übertragseingangssignal INIT_CARRY in ab. Die Aus­ wahl der Vorsumme wird mittels der Multiplexer M5 bis M8 aus­ geführt. Eine UND-Schaltung 54 des Multiplexers M5 empfängt von der Vorsummen-Logikschaltung 36 die Bits der Vorsummen Ai+Bi oder Ai-Bi, die unter der Voraussetzung erzeugt worden sind, daß das Signal DCy_in null ist, und eine UND-Schaltung 56 empfängt von der Vorsummen-Logikschaltung 36 die Bits der Vorsummen Ai+Bi oder Ai-Bi, die unter der Voraussetzung er­ zeugt worden sind, daß das Signal DCy_in eins ist. Das Anfangs-Übertragseingangssignal INIT_CARRY in auf Leitung 57 wählt eine dieser Vorsummen aus. Die UND-Schaltung 54 empfängt ihr Steuersignal von einer Inverterschaltung 55, welche das Anfangs-Übertragseingangssignal INIT_CARRY in invertiert, um die Vorsummen Ai+Bi oder Ai-Bi, die unter der Voraussetzung erzeugt worden sind, daß das Signal DCy_in null ist, auf die Ausgangsleitungen 58 des Multiplexers M5 zu schalten. Eine UND-Schaltung 56 wird direkt durch das Anfangs-Übertragsein­ gangssignal INIT_CARRY_in gesteuert, um die Vorsummen Ai+Bi oder Ai-Bi, die unter der Voraussetzung erzeugt worden sind, daß das Signal DCy_in eins ist, auf die Ausgangsleitungen 58 zu schalten.
Genauso ist der Multiplexer M6 mit dem Ausgang der Vorsummen- Logikschaltung 38 verbunden, um entweder die Vorsumme Ai+Bi+6 oder Ai-6-Bi, die unter der Voraussetzung erzeugt worden sind, daß das Signal DCy_in null ist, oder die Vorsumme Ai+Bi+6 oder Ai-6-Bi, die unter der Voraussetzung erzeugt worden sind, daß das Signal DCy_in eins ist, auf seine Ausgangsleitungen 60 zu schalten. Die Leitungen 58 und 60 bilden die Eingänge des Mul­ tiplexers M7, welcher das Ausgangssignal des Multiplexers M5 oder das Ausgangssignal des Multiplexers M6 als die richtige Summe oder Differenz auswählt. Diese Auswahl hängt von dem Signal DCy aus der Dezimalstellen-Übertragslogik 34 und von dem aktiven Operationssteuersignal ab. Das Signal DCy ist das Übertragsausgangssignal der niedrigstwertigen Dezimalstelle, welches über die Leitung 59 zum Multiplexer M8 und zu der nächsthöheren Dezimalstelle übertragen wird. Der Multiplexer M8 empfängt von dem Operationsdecoder 32 die Steuersignale DEC_ADD und DEC_SUB und erzeugt auf seiner Ausgangsleitung 61 ein Auswahlsignal, wenn das Signal DCy eins ist und ein Signal DEC_ADD vorhanden ist und wenn das Signal DCy null ist und ein Signal DEC_SUB vorhanden ist. Um den letztgenannten Fall zu realisieren, enthält der von DEC_SUB gesteuerte Eingang vom M8 eine Inverterschaltung 61, welche das Komplement des Signals DCy erzeugt. Das Auswahlsignal auf Leitung 62 wird verwendet, um das Ausgangssignal des Multiplexers M6 als richtiges Signal SUM der niedrigstwertigen Dezimalstelle auf den Ausgang 64 der Einheit zu schalten. Das Komplement des von der Inverterschaltung 63 erzeugten Auswahlsignals wird verwendet, um das Ausgangssignal des Multiplexers M5 als richtiges Signal SUM auf den Ausgang 64 der Einheit zu schalten. Die beschriebene Auswahlfunktion beendet die Dezimaladdition oder -Subtraktion, ohne daß der Bedarf nach einer weiteren +/- Sechskorrektur besteht.
Fig. 3 zeigt die nächsthöhere Dezimalstelle D14 der Einheit 10 und entspricht der Dezimalstelle D15, die in Fig. 2 dargestellt ist. In Fig. 3 sind die Komponenten, die den in Fig. 2 dargestellten Komponenten entsprechen, mit denselben Referenznummern gekennzeichnet, jedoch den Bitpositionen 56 bis 59 der Dezimalstelle D14 zugeordnet. In Fig. 3 wird das Dezimalstellen-Übertragseingangssignal DCy59 von Leitung 59 von Fig. 2 über Leitung 66 zu den Multiplexern M5 und M6 übertragen, um die Vorsummen auszuwählen, die in der Dezimalstelle D14 erzeugt werden. Das Ausgangssignal der Dezimalstellen-Übertragslogik 34 der Dezimalstelle D14 erscheint auf Leitung 67, welche zum Multiplexer M8 und zur Bitposition DCy55 der Dezimalstelle D13 führt.
Die Operation der Vorsummenauswahl, die in jeder der Dezimalstellen mittels der Übertragssignale DCy(15 bis 0) ausgeführt wird, beginnt mit der Verfügbarkeit des Übertragseingangssignals DCy59 und ist beendet, wenn das Übertragsausgangssignal DCy0 der höchstwertigen Dezimalstelle D0 erzeugt worden ist.
Bezüglich der binären Addition und Subtraktion ist zu beachten, daß diese Operationen ausschließlich von den Steuersignalen ANY_ADD und ANY_SUB gesteuert werden. In diesen Fällen treten die Steuersignale DEC_ADD und DEC_SUB nicht auf, und die Schaltungen 24, 26, 38 sowie die Multiplexer M3, M4, M6 und M8 haben keinerlei Funktion.
Wenn die Erfindung auch unter Bezugnahme auf eine bevorzugte Ausführungsform beschrieben worden ist, so liegen doch Veränderungen, Modifikationen und andere Ausführungsformen der Erfindung innerhalb des Gebietes der Erfindung, wie es in den anhängenden Ansprüche definiert wird.

Claims (12)

1. Kombinierte Binär-/Dezimal-Addierereinheit (10), eine Summenlogik zum Erzeugen einer binären Rohsumme jeder Dezimalstelle, eine Dezimalstellen-Übertragslogik (34) zum Erzeugen von binären Übertragssignalen innerhalb der Dezimalziffern sowie von Übertragsausgangssignalen der Dezimalziffern und eine Korrekturlogik zu einer Sechs­ korrektur dezimaler Summenziffern, deren Werte innerhalb eines ungültigen Bereiches liegen, umfassend, gekennzeichnet durch:
  • (a) eine erste Korrekturlogik (26), die einen Korrektur­ wert von plus sechs zu jeder Dezimalziffer eines der Operanden addiert;
  • (b) eine zweite Korrekturlogik (24), die einen Korrek­ turwert von minus sechs zu jeder Dezimalziffer eines der Operanden addiert;
  • (c) eine Vorsummenlogik (36, 38) zum Erzeugen innerhalb jeder Dezimalstelle eines ersten Satzes von Summen korrigierter und unkorrigierter Operanden unter der Annahme, daß ein Übertragseingangssignal von null für die Dezimalstelle auftritt, sowie eines zweiten Satzes von Summen korrigierter und unkorrigierter Operanden unter der Annahme, daß ein Übertragsein­ gangssignal von eins für die Dezimalstelle auftritt;
  • (d) eine Auswahllogik (M5 bis M8), die auf ein Übertragseingangssignal in die Dezimalstelle (INIT_CARRY_in, DCy59), auf Übertragsausgangssignale der Dezimalstellen-Übertragslogik (34) und auf ein Operationssteuersignal (DEC_ADD, DEC_SUB) reagiert, um eine der Vorsummen aus dem ersten oder zweiten Satz Vorsummen als die richtige Summe der Dezimal­ stelle auszuwählen.
2. Addierer gemäß Anspruch 1, wobei die Vorsummenlogik (36, 38) parallel zu der Dezimalstellen-Übertragslogik (34) angeordnet ist und ihre Ausgangssignale gleichzeitig mit der Dezimalstellen-Übertragslogik bereitstellt.
3. Addierer gemäß Anspruch 1, wobei die Vorsummenlogik um­ faßt
  • (c1) eine erste Vorsummen-Logikschaltung (36), um in je­ der Dezimalstelle eine Summe oder Differenz der un­ korrigierten Operanden unter der Annahme, daß ein Übertragseingangssignal von null für die Dezimal­ stelle auftritt, zu erzeugen, sowie eine Summe oder Differenz der unkorrigierten Operanden unter der Annahme, daß ein Übertragseingangssignal von eins für die Dezimalstelle auftritt;
  • (c2) eine zweite Vorsummen-Logikschaltung (38), um in jeder Dezimalstelle eine Summe oder Differenz der um sechs korrigierten Operanden unter der Annahme, daß ein Übertragseingangssignal von null für die Dezi­ malstelle auftritt, zu erzeugen, sowie eine Summe oder Differenz der um sechs korrigierten Operanden unter der Annahme, daß ein Übertragseingangssignal von eins für die Dezimalstelle auftritt; und
wobei die Auswahllogik (M5 bis M8) so angeordnet ist, daß eine der von der ersten und zweiten Vorsummen-Logikschal­ tungen erzeugten Vorsummen als die richtige Summe oder Differenz ausgewählt wird.
4. Addierer gemäß den Ansprüchen 1 bis 3, wobei die Auswahl­ logik umfaßt:
  • (d1) einen ersten Multiplexer (M5), der den Ausgangssig­ nalen der ersten Vorsummen-Logikschaltung (36) zu­ geordnet ist und auf ein Übertragseingangssignal in die Dezimalstelle (INIT_CARRY in, DCy59) reagiert, um eine Vorsumme der unkorrigierten Operanden auszu­ wählen, die unter der Annahme erzeugt worden ist, daß ein Übertragseingangssignal von eins für die Dezimalstelle auftritt, und der auf das Komplement eines Übertragseingangssignals in die Dezimalstelle (INIT_CARRY_in, DCy59) reagiert, um eine Vorsumme der unkorrigierten Operanden auszuwählen, die unter der Annahme erzeugt worden ist, daß ein Übertrags­ eingangssignal von null für die Dezimalstelle auf­ tritt; und
  • (d2) einen zweiten Multiplexer (M6), der den Ausgangs­ signalen der zweiten Vorsummen-Logikschaltung (38) zugeordnet ist und auf ein Übertragseingangssignal in die Dezimalstelle (INIT_CARRY_in, DCy59) reagiert, um eine Vorsumme der korrigierten Operanden auszuwählen, die unter der Annahme erzeugt worden ist, daß ein Übertragseingangssignal von eins für die Dezimalstelle auftritt, und der auf das Komplement eines Übertragseingangssignals in die Dezimalstelle (INIT_CARRY_in, DCy59) reagiert, um eine Vorsumme der korrigierten Operanden auszuwählen, die unter der Annahme erzeugt worden ist, daß ein Übertragseingangssignal von null für die Dezimalstelle auftritt.
5. Addierer gemäß den Ansprüchen 1 bis 3, wobei die Auswahllogik umfaßt:
  • (d3) einen dritten Multiplexer (M7) der mit den Ausgängen der ersten und zweiten Multiplexerschaltungen (M5,
  • M6) verbunden ist, um zwischen den Vorsummen zu un­ terscheiden, die von den Multiplexerschaltungen (M5,
  • M6) in Reaktion auf das Ausgangssignal der Dezimalstellen-Übertragslogik (43) und auf das Ope­ rationssteuersignal (DEC_ADD, DEC_SUB) durchgeschal­ tet worden sind,
    wobei ein Ausgangssignal der Dezimalstellen- Übertragslogik (34) von null zusammen mit einem Additionsoperation-Steuersignal (DEC_ADD) oder ein Ausgangssignal der Dezimalstellen-Übertragslogik (34) von eins zusammen mit einem Subtraktionsoperation-Steuersignal (DEC_SUB) die Vorsumme der unkorrigierten Operanden auswählt, und
    wobei ein Ausgangssignal der Dezimalstellen- Übertragslogik (34) von eins zusammen mit einem Additionsoperation-Steuersignal (DEC_ADD) oder ein Ausgangssignal der Dezimalstellen-Übertragslogik (34) von null zusammen mit einem Subtraktionsoperation-Steuersignal (DEC_SUB) die Vorsumme der korrigierten Operanden auswählt.
6. Addierer gemäß Anspruch 1, eine Operandenmodifikations­ logik (M1 bis M4) umfassend, welche die Eingangssignale der Dezimalstellen-Übertragslogik (34) und der Vorsummen­ logik (36, 38) durch Auswahl der wahren Operanden (A, B), des Einerkomplementes der Operanden (B) oder der um sechs korrigierten Operanden (A-6 oder B+6) bestimmt und die ausgewählten Operanden auf die Dezimalstellen-Übertrags­ logik (34) und die Vorsummenlogik (36, 38) schaltet.
7. Addierer gemäß Anspruch 6, wobei die Operandenmodifika­ tionslogik eine erste Multiplexerschaltung (M1) umfaßt, die von Additions- und Subtraktionssteuersignalen (ANY_ADD, ANY_SUB) gesteuert wird, um den wahren Operanden (B) oder dessen Komplement auszuwählen, eine zweite Multiplexerschaltung (M2), die von Dezimaladditions-Steuersignalen (DEC_ADD) gesteuert wird, um den wahren Operanden (B) oder dessen Komplement oder den um +6 korrigierten Operanden (B) auf die Dezimalstellen-Übertragslogik (34) zu schalten, sowie eine dritte und eine vierte Multiplexerschaltung (M3, M4), die von Dezimaladditions- und Dezimalsubtraktions- Steuersignalen (DEC_ADD, DEC_SUB) gesteuert werden, um den wahren Operanden (B), oder dessen Komplement, den wahren Operanden (A), den mit +6 korrigierten Operanden (B) und/oder den mit -6 korrigierten Operanden (A) auf die Vorsummenlogik (36, 38) zu schalten.
8. Addierer gemäß Anspruch 3, wobei die Vorsummen- Logikschaltung eine Bitfunktionsschaltung (42) umfaßt, die aus den Binärziffern der Dezimalziffernstelle eine Generierungsfunktion (Gi) und eine Weitergabefunktion (Pi) erzeugt, wobei die Bitfunktionen von einer Bitübertragslogik (45, 46) und einer Rohsummenlogik (48) verwendet werden, um eine Vorsumme zu erzeugen.
9. Addierer gemäß Anspruch 8, wobei die Bitübertragslogik eine erste Bitübertragslogik (45), welche mit einem Übertragseingangssignal in die Dezimalstelle von null arbeitet, sowie eine zweite Bitübertragslogik (46) umfaßt, welche mit einem Übertragseingangssignal in die Dezimalstelle von eins arbeitet.
10. Addierer gemäß Anspruch 8, wobei die Rohsummenlogik (48) eine Schaltung (49, 50) zur Ausführung von Antivalenzver­ knüpfungen der Weitergabefunktionen (Pi) und der komple­ mentären Generierungsfunktionen (Gi) enthält.
11. Addierer gemäß Anspruch 8, wobei die Vorsummenlogik Schaltungen (51, 52) zum Verknüpfen des Ausgangssignals der Rohsummenlogik (48) mit den Ausgangssignalen der ersten und zweiten Bitübertragsschaltungen (45, 46) zum Erzeugen der beiden Vorsummen (SUM1 und SUM0) umfaßt.
12. Addierer gemäß Anspruch 1, wobei die Dezimalstellen- Übertragslogik (34) ein Parallelübertragsaddierer ist.
DE19846828A 1997-11-07 1998-10-10 Kombinierter Binär-/Dezimal-Addierer Expired - Lifetime DE19846828B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP97119479.0 1997-11-07
EP97119479 1997-11-07

Publications (2)

Publication Number Publication Date
DE19846828A1 true DE19846828A1 (de) 1999-05-20
DE19846828B4 DE19846828B4 (de) 2005-04-21

Family

ID=8227586

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19846828A Expired - Lifetime DE19846828B4 (de) 1997-11-07 1998-10-10 Kombinierter Binär-/Dezimal-Addierer

Country Status (2)

Country Link
US (1) US5928319A (de)
DE (1) DE19846828B4 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292819B1 (en) * 1998-09-04 2001-09-18 International Business Machines Corporation Binary and decimal adder unit
CN1731344A (zh) * 2004-08-05 2006-02-08 国际商业机器公司 快速多周期二进制及十进制加法器单元的高度并行结构
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
US7519645B2 (en) * 2005-02-10 2009-04-14 International Business Machines Corporation System and method for performing decimal floating point addition
US8489663B2 (en) * 2009-06-05 2013-07-16 Advanced Micro Devices Decimal floating-point adder with leading zero anticipation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5007010A (en) * 1985-01-31 1991-04-09 Unisys Corp. (Formerly Burroughs Corp.) Fast BCD/binary adder
JPS62500474A (ja) * 1985-01-31 1987-02-26 バロ−ス・コ−ポレ−シヨン 高速bcd/バイナリ加算器
WO1990002994A1 (de) * 1988-09-09 1990-03-22 Siemens Aktiengesellschaft Schaltungsanordnung zur addition oder subtraktion von im bcd-code oder dual-code codierten operanden
GB9510834D0 (en) * 1995-05-27 1995-07-19 Int Computers Ltd Decimal arithmetic apparatus and method

Also Published As

Publication number Publication date
US5928319A (en) 1999-07-27
DE19846828B4 (de) 2005-04-21

Similar Documents

Publication Publication Date Title
DE2755273C2 (de)
DE69435047T2 (de) Schaltung und Verfahren zur parallelen Addition und Mittelwertbildung
DE2724125C2 (de)
DE1549476C3 (de) Anordnung zur Ausführung von Divisionen
CH644461A5 (de) Digitale multipliziereinrichtung.
DE2758130C2 (de) Binärer und dezimaler Hochgeschwindigkeitsaddierer
DE2816711A1 (de) Divisionseinrichtung mit uebertrags- rettungsaddierwerk und nicht ausfuehrender vorausschau
DE2364865C2 (de) Schaltungsanordnung zur Bildung von erweiterten Adressen in einer digitalen Rechenanlage
DE19846828A1 (de) Kombinierter Binär-/Dezimal-Addierer
DE10164416A1 (de) Verfahren zum Multiplizieren zweier Faktoren aus dem Galois-Feld sowie Multiplizierer zum Durchführen des Verfahrens
DE3447634C2 (de)
DE1187403B (de) Verfahren und Einrichtung zur logischen Verknuepfung zweier Operanden
EP0224656B1 (de) Mehrstelliger Carry-Ripple-Addierer in CMOS-Technik mit zwei Typen von Addiererzellen
DE3424078A1 (de) Dezimalmultiplikations-einrichtung
DE2952072C2 (de) Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen
DE19644688B4 (de) Schaltungsanordnung einer digitalen Multiplizierer-Baugruppe, zur Verarbeitung von Binärzahlen sowie Elementen aus GF(2m)
DE3688434T2 (de) Schneller bcd/binaer-addierer.
DE1449564C3 (de) Recheneinrichtung zur Subtraktion mehrerer Operanden oder zu deren Addition durch Verwendung von Komplementärwerten eines der Operanden
DE19847245C2 (de) Kombinierte Addierer- und Logik-Einheit
DE1499227C3 (de) Schaltungsanordnung für arithmetische und logische Grundoperationen
DE2708637C3 (de) Schaltungsanordnung zur Bildung einer BCD-Summe oder einer reinen Binär-Summe aus einem ersten und einem zweiten Operanden
EP0416153B1 (de) Verfahren für Datenverarbeitungsanlagen zur Division von, zu Beginn jeweils normalisierten, beliebig langen Operanden und Divisionswerk zur Durchführung des Verfahrens
DE10050589B4 (de) Vorrichtung und Verfahren zur Verwendung beim Durchführen einer Gleitkomma-Multiplizier-Akkumulier-Operation
DE3229764C2 (de)
DE19921852A1 (de) Pseudozufallszahlgenerator

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7

R071 Expiry of right