DE19846828A1 - Kombinierter Binär-/Dezimal-Addierer - Google Patents
Kombinierter Binär-/Dezimal-AddiererInfo
- 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
Links
- 238000012937 correction Methods 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 claims description 22
- 230000000295 complement effect Effects 0.000 claims description 17
- 238000012546 transfer Methods 0.000 claims description 8
- 101150112492 SUM-1 gene Proteins 0.000 claims description 3
- 101150096255 SUMO1 gene Proteins 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000007792 addition Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 5
- 230000015654 memory Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 241000153282 Theope Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002301 combined effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
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/4912—Adding; Subtracting
-
- 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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/506—Adding; 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/507—Adding; 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
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.
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.
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.
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.
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:
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 |
Ai + Bi = Ai + Bi
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.
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:
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)
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)
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)
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.
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.
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.
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
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.
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)
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)
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 |
-
1997
- 1997-11-13 US US08/969,244 patent/US5928319A/en not_active Expired - Fee Related
-
1998
- 1998-10-10 DE DE19846828A patent/DE19846828B4/de not_active Expired - Lifetime
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 |