DE2758130A1 - Binaerer und dezimaler hochgeschwindigkeitsaddierer - Google Patents
Binaerer und dezimaler hochgeschwindigkeitsaddiererInfo
- Publication number
- DE2758130A1 DE2758130A1 DE19772758130 DE2758130A DE2758130A1 DE 2758130 A1 DE2758130 A1 DE 2758130A1 DE 19772758130 DE19772758130 DE 19772758130 DE 2758130 A DE2758130 A DE 2758130A DE 2758130 A1 DE2758130 A1 DE 2758130A1
- Authority
- DE
- Germany
- Prior art keywords
- adder
- decimal
- carry
- signal
- binary
- 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
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/492—Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
- G06F7/493—Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination the representation being the natural binary coded representation, i.e. 8421-code
- G06F7/494—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/508—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 carry look-ahead circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/492—Indexing scheme relating to groups G06F7/492 - G06F7/496
- G06F2207/4924—Digit-parallel adding or subtracting
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
Kurzfassung:
Ein binärer und dezimaler Hochgeschwindigkeitsaddierer, der eine Vielzahl von Partialaddierern und einen Übertragvorausschaukreis
benutzt, ist so ausgelegt, daß er eine dezimale Addition mit nur einer Bearbeitung des Addierers bewirkt. Die Partialaddierer sind
jeweils aus einem Halbaddierer zur Erzeugung eines Biterzeugungssignals und eines Bitausbreitungssignals, aus einem Binärmodus-Übertragvorausschau-Eingangssignal-Generatorkreisteil,
aus einem Dezimalmodus-Ubertragvorausschau-Eingangssignal-Generatorkreisteil,
aus einem Zwischenaddiererteil und aus einem Volladdiererteil zusammengesetzt.
Der binäre und dezimale Hochgeschwindigkeiteaddierer ist in der Lage, das Ergebnis einer Addition mit einer
Geschwindigkeit zu geben, die mit sechs bis sieben logischen Stufen korrespondiert.
Die Erfindung betrifft einen kombinierten binären und dezimalen Hochgeschwindigkeitsaddierer, der eine binäre und dezimale
Addition mit dem gleichen Kreis ausführen kann.
Beim Stand der Technik erfordert eine dezimale Addition gewöhnlich
aufgrund der Bearbeitung für die Addition und Subtraktion von Korrekturtermen eine Vielzahl von Maschinenzyklen.
Im allgemeinen ist ein Addierer der Kern einer arithmetischen Einheit,
und er ist an die Datenlänge, die benutzte numerische Einteilung usw. angepaßt. Die Rechengeschwindigkeit des Addierers
beeinflußt die Funktion der arithmetischen Einheit stark. Die numerische Einteilung wird unterteilt in eine Festkommadarstellung
und eine Gleitkommadarstellung, diese Darstellungen werden wiederum ir. biiKire bzw. dezimale Darstellungen unterteilt.
ι'.ιλ och'iltnetz, den ein erster Summand X. und ein zweiter Summand
Y. UU^ (.in Übertrag C +, eingegeben werden und das eine Summe
Z. und einen Übertragung C. ausgibt, ist ein Volladdierer. Ein
Schaltnetz, welches von zwei Eingängen eine Summe und einen übertrag
erhält, ist ein Halbaddierer.
809828/0643
Wird der Volladdierer für jede Ziffer vorbereitet, und wird der
Übertrag C. sukzessiv zu Ziffern höherer Ordnung übertragen, so wird ein Welligkeits-Übertragsaddierer bereitgestellt.
Jedoch erfordert der Welligkeits-Übertragsaddierer zwei logische Stufen für jede Ziffer, und wenn die Zahl der benutzten Ziffern
groß ist, so wächst dementsprechend die Bearbeitungszeit an. Wenn eine verdrahtete Logik möglich ist, so reicht eine logische Stufe
für jede Ziffer.
Ein Übertragsvorausschauaddierer erzeugt gleichzeitig einen Übertrag
für jede Ziffer, und der Übertrag wird an jeder Ziffer im wesentlichen durch alle Bits der Ziffern geringerer Ordnung bestimmt,
und eine Zusammenführungsvariable wächst frei.
Eine Dezimalzahl wird durch verschiedene Verfahren repräsentiert, beispielsweise durch BCD (binär codierte Dezimalen), durch
Exzeß-3-Codierung, durch Zwei-aus-fünf-Codierung usw. Im allgemeinen wird jedoch BCD benutzt. Bei der BCD-Darstellung wird jede
Ziffer einer Dezimalzahl durch vier Bits repräsentiert, und sie werden mit 8, 4, 2 und 1 gewichtet und die Zahlen O bis 9 werden
so dargestellt, wie sie in binärer Schreibweise dargestellt werden.
Im allgemeinen werden binäre und dezimale Addierer getrennt voneinander
vorgesehen, und eine dezimale Addition wird durch eine Operation ausgeführt, bei der der binäre Addierer dreimal benutzt
wird.
Eine Aufgabe dieser Erfindung ist es, einen kombinierten binären und dezimalen Hochgeschwindigkeitsaddierer aufzuzeigen.
Eine andere Aufgabe dieser Erfindung ist, einen kombinierten binären
und dezimalen Addierer aufzuzeigen, der eine binäre oder dezimale Addition in einem Maschinenzyklus ausführen kann.
Eine weitere Aufgabe dieser Erfindung ist es, einen kombinierten binären und dezimalen Addierer aufzuzeigen, der eine kleine Zahl
logischer Stufen besitzt, um eine Hochgeschwindigkeitsoperation
609828/0643
auszuführen.
Um die obengenannten Aufgaben zu lösen, benutzt der erfindungsgeraäß
Addierer eine Vielzahl von Partialaddierern und einen übertragvorausschaukreis. Die vielen Partialaddierer sind aus einem
Halbaddiererteil zur Erzeugung eines Biterzeugungssignals und eines Bitausbreitungssignals, aus einem Binärmodus-Übertragvorausschau-Eingangssignal-Generatorkreisteil
zur Erzeugung eines Binärmodus-Gruppenerzeugungssignals und eines Binärmodus-Gruppenausbreitungssignals,
aus einem Dezimalmodus-Übertragvorausschau-Eingangssignal-Generatorkreisteil zur Erzeugung eines Dezimalmodus-Gruppenerzeugungssignals
und eines Dezimalmodus-Gruppenausbreitungssignals, aus einem Zwischenaddiererteil zur Ausführung
einer binären oder dezimalen Addition zu Eingangsdaten, um unabhängig
von einem Übertrag eine Zwischensumme bereitzustellen, und aus einem Volladdiererteil zur Korrektur der Zwischensumme
vom Zwischenaddiererteil mit einem Übertrag von einem Übertragvorausschaukreis zusammengesetzt.
Figur 1 ist eine Blockdarstellung und zeigt ein erstes Beispiel eines konventionellen dezimalen Addierers, auf dem die Erfindung
beruht.
Figur 2 ist eine Darstellung, die beispielhaft die Inhalte der Register beim Betrieb im dezimalen Addierer nach Figur 1 zeigt.
Figur 3 ist eine Blockdarstellung und zeigt ein zweites Beispiel eines konventionellen dezimalen Addierers, auf dem die Erfindung
beruht.
Figur k ist eine beispielhafte Darstellung der Inhalte der Register
beim Betrieb im dezimalen Addierer nach Figur 3. Figur 5 ist eine Blockdarstellung und zeigt ein drittes Beispiel
eines konventionellen dezimalen Addierers, welcher einen Übertragvorausschaukreis
benutzt, auf dem diese Erfindung beruht. Figur 6 ist eine Blockdarstellung und zeigt den Addierer nach
Figur 5 in seiner Gesamtheit.
Figur 7 ist eine Blockdarstellung und zeigt ein viertes Beispiel eines konventionellen dezimalen Addierers, der eine Addition in
zwei Maschinenzyklen ausführt, und auf dem diese Erfindung beruht.
809828/0643
-O-
Figur 8 ist eine beispielhafte Darstellung der Inhalte der Register
beim Betrieb in dezimalen Addierer nach Figur 7. Figur 9 ist eine Blockdarstellung und zeigt ein fünftes Beispiel
eines konventionellen dezimalen Addierers, der eine Addition in einem Maschinenzyklus ausführt.
Figur 10 ist eine beispielhafte Vergleichsdarstellung der Probleme
des Addierers nach Figur 9.
Figur 11 ist eine Blockdarstellung und zeigt eine Ausführungsform eines Partialaddierers, der bei der Erfindung verwendet wird.
Figur 12 ist eine Blockdarstellung und zeigt eine Ausführungsform
eines Halbaddierers, der bei der Ausführungsform nach Figur 11 benutzt wird.
Figur 13 ist eine Darstellung, die die Konstruktion einer Ausführungsform
eines Übertragvorausschau-Eingangssignal-Generatorkreisteils
zeigt, welches bei der Ausführungsform nach Figur benutzt wird.
Figur 14 ist eine Darstellung, die die Konstruktion einer Ausführungsform
eines Zwischenaddiererteils zeigt, welcher in der Ausführungsform nach Figur 11 benutzt wird.
Figur 15 ist eine Darstellung, die die Konstruktion eines Volladdiererteils
zeigt, welches in der Ausführungsform nach Figur 11 verwendet wird.
Die Figuren 16a und 16b sind Darstellungen, die eine Ausführungsform
eines Übertragvorausschaukreises zeigen, der bei der Erfindung verwendet wird.
Figur 17 ist ein Schaltbild, welches eine Ausführungsform des Teiles zeigt, welches in Figur 15 durch gebrochene Linien umrandet
ist.
Zuerst wird eine Beschreibung des ersten bis sechsten Operationsmodus gegeben, dies wird als Voraussetzung dieser Erfindung betrachtet.
Errter Modus;
Bislang wurde eine Vielzahl von Verfahren für die Addition von binär codierten Dezimalzahlen (BCD) vorgeschlagen. Das grundlegende
Verfahren der dezimalen Addition liegt darin, eine Operation auszuführen, bei der ein binärer Addierer dreimal
benutzt wird,und zwar durch Verwendung einer Hardwarestruktur,
809828/0643
wie sie in Figur 1 gezeigt ist. Die Ausführung der dezimalen
Addition durch die Hardware wird in den folgenden Prozessen (IA bis AA) beschrieben.
(IA): Die Gatter gAIN und gßIN werden geöffnet, um einen ersten
Summanden und einen zweiten Summanden in die Register AR bzw. BR einzugeben (der erste Prozeß endet).
(2A): Die Gatter g.. und gg. werden geöffnet, um die Inhalte der
Register AR und BR mit einem binären Addierer zu addieren. Das Ergebnis dieser Addition wird über ein Gatter g»o in das Register
AR eingegeben (der zweite Prozeß endet).
(3A): Die Gatter g.. und gg werden geöffnet, um das obengenannte
Additionsergebnis mit einer Zahl zu addieren, die an jeder Stelle eine "6" aufweist. Das Ergebnis dieser Addition wird über das
Gatter gAS in das Register AR eingegeben. Auch der Übertragsausgang
von jeder Ziffernstelle wird in ein Stellenübertragsregister DCR eingegeben. Die Zahl der Bits des Registers DCR muß gleich
der Zahl der Stellen der verarbeiteten Daten sein (der dritte Prozeß endet).
(AA): Die Gatter gQ, g-,, g~ und g-, werden selektiv geöffnet, abhängig
vom Inhalt des Registers DCR, so daß der Zahlenwert "10"
(1010 in binärer Schreibweise und A in hexadezimaler Schreibweise) selektiv nur an die Ziffernpositionen des Registers DCR
eingegeben wird, deren Bits "Ο" sind und anzeigen, daß keine
übertrüge von den Ziffernstellen des obengenannten Zahlenwertes zugeführt wurden. Andererseits wird das Gatter g.. geöffnet, um
das Ergebnis der Addition im Prozeß (3A) an den anderen binären Addierer einzugeben. Zu dieser Zeit wird ein Blockziffernübertragssignal
hervorgerufen, um die Übertragsausbreitung zwischen den Ziffernstellen zu unterbinden (der vierte Prozeß endet).
Bei der obigen Operation kann eine 11IO" selektiv für jede Ziffernstelle
addiert werde (äquivalent der Subtraktion einer "6").
Diese Operation wird als dezimale Korrektur bezeichnet. Zu dieser Zeit zeigt der Ausgang vom binären Addierer das Ergebnis einer
809828/0643
korrekten dezimalen Addition. Der Addiererausgang wird wieder über
das Gatter g.s in das Register AR eingegeben. (Diese Operation
wird nicht immer benötigt). Der Addiererausgang kann auch einem anderen Register oder einem anderen funktioneilen Teil zugeführt
werden.
Ein spezifisches Operationsbeispiel der obigen Prozedur wird unten
beschrieben.
Es wird angenommen, der erste Summand sei "3528" und der zweite
Summand sei "2691".
Im Prozeß (IA) wird
0011 0101 0010 1000 und
0010 0110 1001 0001 in die Register AR bzw. BR gesetzt.
Im | Prozeß | (2A) wird | 0010 | 1000 |
0011 | 0101 | 1001 | 0001 | |
+ 0010 | 0110 | |||
0101 1011 1011 1001 in das Register AR gesetzt.
Im Prozeß (3A) wird eine "6" zu jeder Ziffernstelle addiert
0101 1011 1011 1001 + 0110 0110 0110 0110 lioo ooio y0001 A111
übertragO 1 1 ft
und die Summe wird in das Register AR gesetzt und der Übertrag
wird in das Register DCR gesetzt.
Im | Prozeß | (4A) wird | 0001 | 1111 |
1100 | 0010 | 0000 | 1010 | |
+ 1010 | 0000 | |||
0110 0010 ,0001 1001 in das Register AR gesetzt, damit wird eine Summe "6219" erzeugt.
809828/0643
Da das Verfahren nach Figur 1 den binären Addierer dreimal benutzt,
wie oben beschrieben wurde, werden drei Maschinenzyklen benötigt, wenn eine Addition einen Maschinenzyklus erfordert. Außerdem benötigt
dieses Verfahren die Funktionsgruppe zur Eingabe einer der beiden Konstanten "6" oder "A" (hexadezimal) für jede Ziffernstelle
und die Funktionsgruppe zur Unterbindung der übertragsausbreitung zwischen den Ziffernstellen und Vorrichtungen zur
zeitweisen Speicherung des Übertrags von jeder Ziffernstelle. Nach dem Prozeß 2A wird jedoch das Register BR nicht benutzt, so
daß einige der Bits des Registers BR anstelle des Registers DCR in Figur 1 benutzt werden können.
Zweiter Modus:
Auch für die dezimale Addition, die wie im Fall des Beispiels nach Figur 1 drei Maschinenzyklen benötigt, kann die Hardware
vereinfacht werden, wie es beispielsweise in Figur 3 gezeigt ist. Da in Figur 3 die Funktion der Eingabe der Konstanten A an den
Addierer und die Funktion der Unterbindung der Übertragsausbreitung zwischen den Ziffernstellen nicht benötigt werden, kann
der Umfang der Hardware dementsprechend vermindert werden.
Die Prozedur für die dezimale Addition, bei der die Hardware nach
Figur 3 benutzt wird, wird nachfolgend beschrieben. Ein Beispiel für den Inhalt eines jeden Registers zum Zeitpunkt der Ausfiihrung
eines jeden Prozesses ist in Figur 4 gezeigt.
(IB): Die Gatter g»™ und ggy« werden geöffnet, um einen ersten
Summanden und einen zweiten Summanden an die Register AR bzw. BR zu geben. Das Register DCR wird auf "O" gesetzt (der erste
Prozeß endet).
(2B): Die Gatter g^ und gßA werden geöffnet, um die Inhalte der
Register AR und BR für eine Addition in den binären Addierer einzugeben. Das Additionsergebnis wird über das Gatter g.o in das
Register AR gegeben. Zur gleichen Zeit werden alle Bits des Registers DCR auf "1" gesetzt (der zweite Prozeß endet).
(3B): Da die Bits des Registers DCR alle "I" sind, werden die
809828/0643
-ΙΟ-Gatter gj-j, g-, , gp und g^. geöffnet, um die Konstante "6666" in
einen Teil des Addierers einzugeben. Andererseits wird das Gatter g . geöffnet, um das Additionsergebnis im Prozeß (2B) auf der
Eingangsseite des Addierers zur Addition einzugeben. Der übertrag von jeder Ziffernstelle, der aus dieser Addition stammt,
wird in das Register DCR gegeben. Das Additionsergebnis (Summe) wird nicht benutzt.(der dritte Prozeß endet).
(AB): Abhängig vom Inhalt des Registers DCR werden die Gatter Sqt δη
> Sp unc* £^5 selektiv geöffnet, um eine Zahl "6" nur in die
Ziffernpositionen des Registers DCR einzugeben, in denen die Bits "1" sind, d.h. in die Ziffernpositionen, wo die Übertragsausgänge
bei der Addition im Prozeß (3B) erzeugt wurden, und eine Zahl "0" wird in die anderen Ziffernpositionen eingegeben.
Der Inhalt des Registers AR, d.h. das Ergebnis der Addition im Prozeß (2B), wird zur Addition in den anderen Eingang des Addierers
eingegeben. Der resultierende Ausgang des Addierers ist das Ergebnis einer korrekten dezimalen Addition. Dieses Ergebnis (Summe)
wird zu einem anderen funktionalen Teil übertragen, und zwar direkt
oder nachdem es über das Gatter gAS in das Register AR gegeben
wurde (der vierte Prozeß endet).
Eine Erhöhung der Operationsgeschwindigkeit beim System nach Figur 3 ist möglich. Dies bedeutet, daß der Prozeß (3B) wesentlich
verschieden vom Prozeß (3A) ist. Es ist ersichtlich, daß der Prozeß (3A) benötigt wird, um ein korrektes Ergebnis der Addition
für den nächsten Prozeß zu erhalten, und daß der Prozeß (3B) nicht benötigt wird, um die Summe zu erhalten, vielmehr wird er nur
dafür benötigt, die Anwesenheit oder Abwesenheit des Ubertragausgangs von jeder Ziffernstelle anzuzeigen. Wird ein Übertragsvorausschaukreis
vorgesehen, welcher voraussieht oder voraussagt, was der Übertragsausgang für jede Ziffernstelle wird, d.h. der
Dezimalziffern-Übertragsausgang, wenn die Zahl "6666" während der Addition im Prozeß (2B) zur Addition mit dem Eingang in den
Addierer eingegeben wird, so können dementsprechend die Prozesse (2B) und (3B) im gleichen Maschinenzyklus ausgeführt werden.
809828/0643
Es ist aber unwirtschaftlich, den obengenannten übertragsvorausschaukreis
für die dezimale Addition unabhängig vom Übertragsvorausschaukreis für den binären Zähler vorzusehen.
Aw h wenn im Falle des binären Addierers die Datenlänge groß ist,
beispielsweise 4 oder 8 Bytes, so ist der Addierer so ausgebildet, daß er aus Partialaddierern, die jeweils eine Breite von
4 oder 8 Bits haben, zusammengesetzt ist, insbesondere für eine Hochgeschwindigkeitsoperation. In diesem Fall erzeugt jeder
Partialaddierer vom Teil seines Eingangs einen Gruppenerzeugungsterm GG bzw. einen Gruppenausbreitungsterm GP. Der Terra GG ist
ein Signal, welches nur von den Eingangsdaten abhängt, die vom Partialaddierer behandelt werden, und anzeigt, daß ein Ubertragseingang
zum Partialaddierer der unmittelbar höheren Ordnung zugeführt werden muß. Der Term GP ist ein Signal, welches nur dann
anzeigt, daß der Übertragseingang zum Partialaddierer der höheren Ordnung zugeführt wurde, wenn ein Übertragseingang von einem
Partialaddierer der tieferen Ordnung zu diesem Partialaddierer zugeführt wurde. Angenommen, der Partialaddierer hat vier Bit,
so daß seine einen Eingangsdaten a^, a^ +-,, a1+2 und a1+, sind,
und so daß die anderen Eingangsdaten b. , b.+·,, b.+_ un^ ^i+^ s^-n(*»
so sind der Erzeugungsterm und der Ausbreitungsterm g1 und P1 für
jedes Bit wie folgt definiert:
ßi = ai*bi
pi = ai+bi
oder
oder
ni = ai^"bi = ai · εγ-t-aT". Ij1 (3)
Wenn die Terme GG und GP dieses Partialaddierers durch GG1 bzw.
GP1 repräsentiert werden, so werden sie durch die folgenden
Gleichungen gegeben, in denen i * 4n (n * O, 1, 2, 3) ist:
+P1-P1+1-P1+2-S1+3 (4)
GG1, = 6i+h1.gi+1+hi.hi+1.gi+2
+hi-hi+l-hi+2-Si+3 (4·)
GP1 = P1-P1+I-P1+2-P1+3
GP1, = V
GP1, = V
809828/0643
Wenn jeder Partialaddierer solche Terme GG und GP erzeugt, so
ist es notwendig, einen Kreis vorzusehen, der die Terme von allen Partialaddierern empfängt, um für jeden von ihnen den
Übertragseingang zu bestimmen. Dieser Kreis kann als ein unabhängiger Teil ausgebildet sein und als ein externer Übertragskreis bezeichnet werden, jedoch ist es auch möglich, die für die
Partialaddierer benötigten Teile an den erforderlichen Positionen vorzusehen. Im letzteren Fall jedoch werden die Terme GG und GP
von den Partialaddierern der geringeren Ordnung zu vielen Partialaddierern
der höheren Ordnung verteilt, so daß eine komplizierte Verdrahtung benötigt wird. In jedem Falle führt der Gesamtkreis
für die Erzeugung der Terme GG und GP und für die Bestimmung des Übertragseingangs für jeden Partialaddierer die Übertragsvorausschaufunktion
aus.
Entsprechend dem jeweils vorausgesagten Übertragseingang erzeugt jeder Partialaddierer eine korrekte Summe für den jeweils zugeordneten
Teil. Figur 5 ist ein Beispiel für einen derartigen Partialaddierer und einen Übertragsvorausschaumechanismus. Im
Beispiel der Figur 5 besitzt der Partialaddierer eine Breite von A Bit, jedoch kann die Breite auch größer oder kleiner sein. Auch
kann der Addierer selbst für 4-oder 8-Byte ausgelegt werden, wenn
die Zahl der Partialaddierer erhöht wird, um nur den Übertragsvorausschauteil zu vergrößern. Im Beispiel der Figur 5 sind die
Übertragseingänge CI,, CI„ und CI-., für die entsprechenden Partialaddierer
gleich den Übertragsausgängen CO", , CÜgUnd CO, „ von dort,
und sie werden durch die folgenden Gleichungen gegeben:
CI11 = CÖ"12 β GG12+GP12.Übertrag ein (7)
CI7 = CÜg = GGQ+GPQ.UG12
+GPq.GP12.Übertrag ein (Θ)
CI, = CÖ, = GG4+GP4XG +GP4. GP GG-,
+GP4.GP8.GP12.übertrag ein (9)
übertrag aus = GG0+GPq. GG4
GG8+GP0-GG12
012
.GP4.GPq.GP12.Übertrag ein (1O)
.GP4.GPq.GP12.Übertrag ein (1O)
Der Addierer nach Figur 5 ist so ausgebildet, wie er in seiner
809828/0643
Gesamtheit in Figur 6 dargestellt ist. Die obigen Ausführungen
machen klar, daß die unabhängige Anordnung des Übertragsvorausschaukreises für die dezimale Addition unwirtschaftlich ist.
Wie oben beschrieben wurde, erfordert die dezimale Addition, die binäre Addierer benutzt, drei Maschinenzyklen, und um diese
zu zwei Maschinenzyklen zu reduzieren, wird ein Ubertragsvorausschaukreis
für die. dezimale Addition benötigt. Wenn der Ubertragsvorausschaukreis
für die dezimale Addition unabhängig vorgesehen ist, ist es nötig, Kreise zur Erzeugung der Terme GG und GP für
die dezimale Addition für jeden Partialaddierer und den in Figur 5 gezeigten Übertragsvorausschaukreis vorzusehen. Für die
Übertragsvorausschauoperation für die dezimale·Addition ist es unerläßlich, daß jeder Partialaddierer die Funktionen zur Erzeugung
der Terme GG und GP für die dezimale Addition besitzt, jedoch ist es besser, wenn der Teil, der dem in Figur 5 abgebildeten
Übertragsvorausschauteil entspricht, effektiv für die dezimale Addition benutzt wird.
Dafür wird ein neuer Algorithmus für eine dezimale Addition beschrieben.
Figur 7 zeigt die Struktur dafür, und die Prozedur wird nachfolgend erklärt. Ein Beispiel des Inhalts eines jeden
Registers zur Zeit der Vollendung der Prozesse (IC) bis (3C) ist
wie folgt:
(IC): Die Gatter gAIN und gBIN werden geöffnet, um einen ersten
Summanden und einen zweiten Summanden in die Register AR bzw. BR einzugeben (der erste Prozeß endet).
(2C): Die Gatter g^ und gßA werden geöffnet, um die Inhalte der
Register AR und BR für eine Addition in die binären Addierer einzugeben. Zu dieser Zeit wird ein Dezimalmodus-Signal aktiviert,
um die Übertragsausbreitung für jede Ziffernstelle zu einem dezimalen übertrag zu machen. Auf der Grundlage einer jeden Ziffernstelle
wird die Addition, nach^dem der Übertragseingang dort erhalten
wurde, in der hexadezimalen Schreibweise ausgeführt. Dies bedeutet, daß es ausreicht,nur die Terme GGQ bis GG12 und GPQ bis
809828/0643
GP,p in der dezimalen Schreibweise zu erhalten. Mit anderen Worten,
der Term GG. ist "1", wenn die Summe der Addition seiner a- bis
und b. bis b.+, "10" oder mehr ist; und der Term GPi ist "1", wenn
die Summe der Addition der ai bis ai+3 und h^ bis t>i + , "9" oder
mehr ist. Zu dieser Zeit wird der Übertragsausgang für jede Ziffern
stelle in das Register DCR eingegeben. Die Summe wird über das Gatter g.o in das Register AR gegeben (der zweite Prozeß endet).
(3C): Die Gatter gQ bis g^ werden selektiv geöffnet, entsprechend
den Ziffernpositionen des Registers DCR, in denen die Bits "1" sind, d.h. entsprechend den Ziffernpositionen, wo die dezimalen
Ubertragsausgänge bei der Addition des Prozesses (2C) vorgesehen waren. Das Gatter g.. wird geöffnet, um das Additionsergebnis
im Prozeß (2C) für die binäre Addition einzugeben. Zu dieser Zeit wird ein Blockziffern-Ubertragssignal erregt, um eine Addition in
jeder Ziffernstelle auszuführen, wobei die Übertragsausbreitung unterbunden wird. Dies ergibt ein korrektes Ergebnis der dezimalen
Addition, und der Ausgang vom binären Addierer wird über das Gatter g.o in das Register AR eingegeben oder direkt zu einem anderen
funktionalen Teil übertragen (der dritte Prozeß endet).
Nun wird das Verfahren der Bildung des dezimalen Übertrags im Prozeß (2C) genauer diskutiert. Die Dezimalzahl, die nun betrachtet
wird, ist eine binär codierte Dezimalzahl, und 4 Bits der binären Schreibweise bilden eine Ziffer der Dezimalzahl. Dementsprechend
ist die Größe (Datenbreite) eines jeden der Partialaddierer, die den binären Addierer bilden, so, daß eine Größe von 4 Bits die
fundamentale Größe ist, und es ist klar, daß sein erweiterter Typ ein ganzzahliges Vielfaches von 4 Bits ist. Deshalb sei angenommen,
daß der Addierer nach Figur 7 aus solchen 4-Bit-Partialaddierern zusammengesetzt ist, wie sie in Figur 5 abgebildet sind.
Die Terme GG und GP im binären 4-Bit-Partialaddierer werden durch die Gleichungen (4) bzw. (5) ausgedrückt. Gi ist in diesem Falle
wl", wenn die Additionssumme von a.^ bis Zi+-* mit b^ bis bi + , "16"
oder mehr ist, während GP. "1" ist, wenn die obengenannte Summe "15" oder mehr ist. GP. wird nur dann zu "1", wenn die Summe "15"
ist. Wenn jeder Übertrag von den Gleichungen (7) bis (10) erhalten
wird, erreicht man jedoch das gleiche Ergebnis, unabhängig davon,
809828/0643
ob GP. oder GP., benutzt wird. Die Terme GG und GP, die für den
obengenannten Prozeß (2C) von jedem Partialaddierer erzeugt werden müssen, dienen für die dezimale Addition, und deshalb
werden sie als DGG und DGP bezeichnet,zur Unterscheidung von den obengenannten Termen GG bzw. GP. Da es notwendig ist, daß
DGG. nlw ist, wenn die Additionssumme von a^ bis ai+, mit \>^
bis b.+, "ΙΟ" oder mehr ist, folgt:
+ni-hi+2+hrgi+3+gi+l-hi+2
(12)
In der Gleichung (12) existieren der dritte und vierte Term nicht bei einem BCD-Eingang, so daß sie weggelassen werden können, daät
erhält man die folgende Gleichung
DGG1, = Si+H1.(hi+1+hi+2+gi+3)
+gi+l*(hi+2+gi+2+gi+3) +hi+rgi+2-gi+3
Außerdem ist es notwenidg, daß DGP. "1" wird, wenn die Additionssumme von a. bis a.+, mit b. bis b.+, "9" oder mehr ist. Der Term,
der mehr als "9" ist, muß nicht immer eingeschlossen werden, so
daß DGP. entsprechend der folgenden Gleichung erhalten wird:
Die Terme GG und GP, die durch die Gleichungen (10) bzw. (14) gegeben
sind, müssen nur beim Dezimalmodus der Operation erzeugt werden, und es ist notwendig, die Werte der Gleichungen (4) bis (6)
809828/0643
in Moden vorzusehen, die anders als der Dezimalmodus der Operation
sind. Da die Terme GG und GP der Gleichungen (4) bis (6) für die binäre Operation dienen, werden sie als BGG bzw. BGP bezeichnet.
Die Terme GG und GP, die von jedem Partialaddierer ausgegeben werden müssen, werden durch die folgenden Gleichungen gegeben:
BGG1 (Dezimalmodus)
1 (Dezimalmodus) (15)
1 BGP. (Dezimalmodus)
+DGP1 (Dezimalmodus) (16)
Da alle Terme von BGG. und BGP1 beim Dezimalmodus der Operation
eingeschlossen werden können, können sie durch die folgenden Gleichungen gegeben werden:
GG1 = BGG1+DGG1.(Dezimalmodus) (15')
GP1 = BGP1+DGP1.(Dezimalmodus) (16·)
Bei einer Beschreibung im Zusammenhang mit dem Fall, daß die Terme
GG und GP durch die Terme g bzw. k repräsentiert werden, werden die Gleichungen (15') und (16·) wie folgt:
GO1 = gi^1.gi+1+h1.hi+1.gi+2
+hi*ni+l*ni+2*gi+3
(
(
(17)
l3 (Dezimalmodus) (18)
Wie aus der obigen Beschreibung ersichtlich ist, kann die dezimale
Addition in zwei Maschinenzyklen erreicht werden, wenn für die dezimale Addition im Prozeß (2C) die folgende zusätzliche Hardware
vorgesehen wird: Gatter (grob abgeschätzt 10 UND-Gatter pro Ziffernstelle)
zur Erzeugung der Terme für den Dezimalmodus in den
809828/0643
Gleichungen (17) und (18), eine Vorrichtung zur Speicherung des
Übertrags von einer jeden Ziffernstelle (beispielsweise selbsthaltende Schalter in gleicher Zahl wie die Ziffernstellen), eine
Vorrichtung zur selektiven Eingabe der Zahl "6(011O)" für jede Ziffernstelle und eine Vorrichtung zur Unterbindung der Übertragsausbreitung
zwischen den Ziffernstellen im Prozeß (3C).
Nun erfolgt eine Diskussion in Hinblick auf ein Verfahren zur Durchführung einer dezimalen Addition in einem Maschinenzyklus,
genauer gesagt wird ein Verfahren für eine dezimale Addition diskutiert, bei der der Hauptaddiererteil nur einmal benutzt
wird. Das grundsätzliche System ist so und wie in Figur 9 dargestellt.
Falls eine Addition von Binärzahlen durch die Verwendung des Addierers nach Figur 9 erreicht wird, werden die Gatter g.rj, und
gBIK ßeöi>fnetf um einen ersten Summanden und einen zweiten
Summanden in die Register AR bzw. BR zu geben, und die Gatter gAA und gn» werden geöffnet, um die Inhalte der Register AR und
BR für eine Addition in die binären Addierer einzugeben. Der Ausgang des Addierers wird von dort über die Gatter ggon ^is ^BS^
abgeleitet, um die Summen SUMq bis SUM1C zu erhalten.
Die Addition der Dezimalzahlen (BCD) durch den Addierer nach Figur 9 erfolgt entsprechend den folgenden Prozessen:
(ID): Die Gatter gAIN und ß3Ijj werden geöffnet, um einen ersten
Summanden und einen zweiten Summanden in die Register AR bzw. BR zu geben.
(2D): "6" wird durch einen 4) 1 Ziffernaddierer für jede Ziffernstelle
zum Inhalt des Registers BR addiert. Zu dieser Zeit wird eine Übertragsausbreitung zwischen den Ziffernstellen nicht benötigt,
so daß der # 1 Ziffernaddierer mit einer logischen Stufe ausgebildet werden kann.
(3D): Die Gatter g.^ und gBgA werden geöffnet, um die Summen der
809828/0643
Inhalte der Register AR und BR und "6666" zur Addition in den binären Addierer einzugeben.
(4D): "10(1010)" wird durch einen # 2 Ziffernaddierer zu jeder
Ziffernstelle des Ergebnisses (Summe) der Addition im Prozeß (3d) addiert. Auch bei dieser Addition wird keine Ubertragsausbreitung
zwischen den Ziffernstellen benötigt, so daß der =J2 Ziffernaddierer
auch mit einer logischen Stufe ausgeführt sein.kann.
(5D): Die Gatter gncn ^is gnQ^ der Ziffernstellen, die den Ziffernpositionen
entsprechen, die bei der Addition des Prozesses (3D) keinen Übertragsausgang erzeugen, werden geöffnet, um den Ausgang
vom I 2 Ziffernaddierer auszuwählen. Die Gatter ggon ^is ^B°3 ^er
Ziffernstellen, die den Ziffernpositionen entsprechen, die Übertragsausgänge erzeugt haben, werden geöffnet, um den Ausgang vom
binären Addierer auszuwählen. Die beiden Ausgänge werden zusammenaddiert, um das Ergebnis der dezimalen Addition SUMQ bis SUM, ^
zu erhalten.
Jedoch besitzt das obengenannte System eine Schwierigkeit, wie später beschrieben wird, insbesondere ist es problematisch, die
Summe von Paritätsbits zu erhalten.
Für ein tieferes Verständnis des ^- 1 Ziffernaddierers und des
£ 2 Ziffernaddierers in Figur 9 wird nachfolgend eine Beschreibung
gegeben.
Figur 10 zeigt die Ergebnisse der Additionen von "6" und "10"
zu den Eingängen einer Ziffernstelle. In Figur 10 bezeichnet das Zeichen * die Positionen, wo die Parität für die Ziffer im Eingang
und im Ausgang umgekehrt wird. Die Ausgänge vom jjl 1 Ziffernaddierer
für die Addition der "6" werden nicht in Verbindung mit den Eingängen "10" oder mehr (1010 bis 1111) gezeigt, da die
einstelligen Eingänge BCD-Eingänge von 0 bis 9 sind. Im Zusammenhang mit der Addition der "10" werden die Gatter grjon bis Sr1SV
die nur dann benutzt werden, wenn die Ausgänge vom k 2 Ziffernaddierer
"0" bis "9W sind, nicht geöffnet, so daß keine Ausgänge
809828/0643
erzeugt werden.
Da das Paritätsbit gewöhnlich für jedes Byte (alle 8 Bits) vorgesehen
ist, werden die Eingangsdaten bQ, b^ bis b„ eines Bytes und
ein Paritätsbit b betrachtet. Wird das Ergebnis der Addition
P
einer "6M durch b'Q, b1, bis b'7 und b1 repräsentiert, so ergeben sich diese wie folgt (der Eingang wird als ein BCD-Eingang angenommen) :
einer "6M durch b'Q, b1, bis b'7 und b1 repräsentiert, so ergeben sich diese wie folgt (der Eingang wird als ein BCD-Eingang angenommen) :
b'o = b0 + bx + b2 (19).
b'l = bi ^ b 2 (2°)
b'2 = F2 (21)
b'3 = b3 (22)
PINVT 0-31 = bl-E2 (23)
b'A = b4 + b5 + b6 (2A)
b«5 = b5V b6 (2b)
b'6 = b6 (26)
b'7 = b7 (27)
PINVT A-7· = b5-b6 (28)
PINVT 0-3' ^ PINVT A-71
p p 3
= bp¥ (b^bpv^.bg) (29)
Wenn nun das Ergebnis der Addition einer M10M durch b!lQ, b11·,
bis b*'7 und b11 repräsentiert wird, so werden diese Größen durch
die folgenden Gleichungen ausgedrückt. Wenn kein Ausgang vom # 2 Ziffernaddierer von 11O" bis W9n erzeugt wird, wird das Ergebnis
der Addition einer "10" nicht benötigt, wie oben beschrieben
wurde, so daß nur 0110 bis 1111 als Eingangsdaten betrachtet werden. Die anderen Eingangsmuster können als Redundanzen
eingeschlossen werden.
b"0 * Wb2 (30)
b"l = hl* b2
b"2 = F2 (32)
b"3 = b3 (33)
PINVT 0-3 = Vb2 f\
bll4 β b4-b5-b6 (35)
809828/0643
b"5 = b5 V- b6 (36)
b"6 = b6 (37)
b"7 = b? (38)
PINVT 4-7 = Vb6 ft (39)
b"p = bpV ^INVT 0-3 " ^ PINVT 4-7
= bp V- (bx.b2) V- (b5.b6) (40)
Wie aus den obigen Gleichungen (19) bis (20) ersichtlich ist, ist es leicht, jeden Summenteil des Ziffernaddierers mit einer
logischen Stufe auszuformen, dazu werden ein UND-Gatter und ein EOR-Gatter (exklusives ODER-Gatter) benutzt. Jedoch wird eine
große Zahl von Gattern für die Bildung der Logik benötigt, um mit einer logischen Stufe die Parität der Summe zu erhalten, d.h.
die Gleichungen (29) und (40). Beispielsweise führt die Entwicklung der Gleichung (40) zur Gleichung (41), die später beschrieben wird,
so daß 9 UND-Gatter benötigt werden, auch dann, wenn die Ausgänge von den UND-Gattern miteinander durch das verdrahtete ODER-Gatter
verODERt werden. Zusätzlich werden beide positiven und negativen Eingänge benötigt. Dementsprechend wird die Parität gewöhnlich
vorausgesagt, nachdem die Terme ΡΙΝντ 0_-z und PjjjyT ^n
erhalten worden sind. Dies vermindert die Anzahl der benutzten Gatter, jedoch sind zwei logische Stufen notwendig, um die Parität
zu erhalten.
b"p = V<VVF5*b6 + Vb5 + brF6
+ b2.b5 + F2-F6) + bp.(b1.b2.b5
+ F^b2-F6 + b1 .F5.bß + F2.F5.b6) (41)
Mit dem Addierer nach Figur 9 kann die dezimale Addition in einem Maschinenzyklus ausgeführt werden, da jedoch der ψ 1 Ziffenaddierer
und der # 2 Ziffernaddierer vor und nach dem binären Addierer benötigt werden, besteht die Möglichkeit, den einen MascHnenzyklus
selbst zu verlängern.
Sechster Modus:
Ein Beispiel für einen dezimalen Addierer mit höherer Geschwindigkeit
wird in der Druckschrift IEEE Transactions on Computer, Vol. C-20, No. 8, Aug (1971) beschrieben.Der in dieser Druckschrift
eÖ9828/0643
beschriebene Addierer ist ein dezimaler Hochgeschwindi^keitsaddierer
mit einer Breite von 4-Byte (8 Ziffern), wie er im IBM-System 360/Modell 195 benutzt wird, und es werden sechs
logische Stufen benutzt. Der in der obigen Druckschrift beschriebene dezimale Addierer kann so betrachtet werden, als sei
er aus vier 1-Byte-Partialaddierern zusammengesetzt, d.h. aus
vier zweistelligen Partialaddieren. Zwei Stellen in jedem Partialaddierer sind in drei Bits höherer Ordnung und in ein Bit geringerer
Ordnung unterteilt, und diese definieren einen Signal-K-Term, der "1" ist, wenn die Summe der drei Bits höherer Ordnung "10" oder
mehr ist, und einen Signal-L-Term, der "1" ist, wenn die obengenannte
Summe "8" oder mehr ist. Mit i « 8n (n » 0, 1, 2, 3),
werden K., K. ., L. und L1+. durch die folgenden Gleichungen
(42) bis (45) ausgedrückt:
K1 = ßi + P1-P1+1 + P1+2 + P1+1-P1+2
Ki+4 e ßi+4 + pi+4*pi+5 + pi+4
+ ßi+5'pi+7
Li - pi + ßi+l + pi+l'ßi+2
Li+4 β pi+4 + ßi+5 + pi+5'ßi+7
Li+4 β pi+4 + ßi+5 + pi+5'ßi+7
Von den Termen K und L, die auf diese Weise in der Zwischenzeit erzeugt worden sind, werden ein Gruppenerzeugungsterm GG und ein
Gruppenausbreitungsterm GP eines jeden Partialaddierers als eine
Ganzheit erzeugt und zum Partialaddierer der höheren Ordnung zuge führt. Diese Tenne werden durch die folgenden Gleichungen beschrieben:
7 (46)
GPi = Lrpi+3-Li+4'pi+7 (47)
Der Partialaddierer, dem die Tenne GG und GP vom Partialaddierer der geringeren Ordnung zugeführt wurden, bildet einen Übertragsausgang
aus dem geringstwertigen Bit einer jeden Ziffernstelle, dies ist ein Übertragseingang für jeden der drei Bits höherer
Ordnung, entsprechend den empfangenen Termen GG und GP und den Termen K und L und den Termen β1+3·Ρχ+3» Si+7 1^ Pj+7 des Partial
809828/0643
addierers selbst. Und eine Summe wird erzeugt, basierend auf dem Ubertragssignal und den Termen K und L und den Tennen g und ρ
für jedes Bit.
Bei einer solchen Struktur ist die Breite des Addierers klein, und wenn die Zahl der benutzten Partialaddierer klein ist, so
ist die obengenannte Übertragsbildung einfach. Wenn jedoch viele Partialaddierer benutzt werden, so wird eine solche Übertragsbildung komplex. Nun sind die Übertragsausgänge CO, und CU7 von
den geringstwertigen Bits der Ziffernstellen an der höchstwertigen Ziffernstelle und der nächsten Ziffernstelle wie folgt:
3 34 3A
♦ P3.L4.-P7 (GG8 + GP
4.P7 (GG8 + GP8.
3
+ GP8.GP16.GG24) (48)
+ GP8.GP16.GG24) (48)
CO7 = g7 + P7 (GG8 + GP8-GG16 + GPQ.GG16GG24) (49)
Im allgemeinen ist die Hardware eines Partialaddierers als eine Logik auf einer gedruckten Schaltung, auf einer integrierten
Schaltung mit hohem Integrationsgrad oder auf einer integrierten Schaltung mit superhohem Integrationsgrad ausgebildet, und es ist
wünschenswert, daß alle Partialaddierer exakt die gleichen logischen und physikalischen Ausbildungen besitzen. Wenn beispielsweise
eine integrierte Schaltung mit hohem Integrationsgrad die Funktion eines 1-Byte-Partialaddierers hat, kann ein 4-Byte-Addierer
mit vier identischen integrierten Schaltungen mit hohem
Integrationsgrad gebildet werden, und es ist nicht notwendig, vier
verschiedene integrierte Schaltungen mit hohem Integrationsgrad zu entwerfen.
Wenn jedoch ein Schaltkreis zur Erzeugung der Übertragsausgänge, wie sie durch die obigen Gleichungen (48) und (49) angezeigt
werden, in den hochintegrierten Schaltungen der Partialaddierer enthalten sind, werden Eingangsstifte und interne Gatter, welche
praktisch nicht benutzt werden, in den hochintegrierten Schaltungen für die Bytes mit geringerer Ordnung eingeschlossen, dies ist unwirtschaftlich.
Wenn die Zahl der benutzten Partialaddierer
809828/0643
anwächst, werden die Zahlen der Eingangsstifte und Gatter für den Ubertragsgeneratorkreis außerordentlich hoch, und die Zahl der
nicht benutzten Eingangsstifte und Gatter in den Partialaddierern der geringeren Ordnung wachsen dementsprechend an. In eier Praxis
hat ein übergroßer Computer oft einen binären Addierer mit einer Breite von 8 Byte, und wenn der binäre 8-Byte-Addierer auch als
ein dezimaler Addierer benutzt wird, wird der obengenannte Ubertragskreis nutzlos. Wenn außerdem die Zahl der Tenne zur
Erzeugung des Übertrags anwächst, ist es im System des Addierers nach der obengenannten Druckschrift schwierig, wenn die logischen
Stufen alle mit sechs Stufen gebildet werden. Im allgemeinen, wenn z.B. ein Hochgeschwindigkeitsaddierer mit 8 oder 16 Partialaddierern
gebildet ist, ist im Fall einer erhöhten Zahl von Partialaddierern eine solche Ausführung, wie sie in Figur 5 gezeigt
ist, unvermeidlich notwendig. Dies bedeutet, daß es nötig ist, daß der Addierer aus Partialaddierern zusammengesetzt ist,
die jeweils einen Kreis zur Erzeugung der Terme GG und GP für den Eingang, der dem Partialaddierer zugewiesen ist, und einen
Übertragsvorausschaukreis besitzen, der die Terme GG und GP von allen Partialaddierern empfängt, um einen Übertragseingang für
jeden von ihnen zu erzeugen. Mit dieser Methode kann ein kombinierter binärer und dezimaler Addierer hoher Geschwindigkeit
mit sechs logischen Stufen ausgebildet werden, auch in dem Fall, daß 16 Partialaddierer benutzt werden. Es ist möglich, eine Hardwareausbildung
zu benutzen, wie sie in Figur 5 für das System gezeigt ist, welches entsprechend der obigen Druckschrift sechs
logische Stufen besitzt, d.h. drei logische Stufen zur Erzeugung der Terme GG und GP von den Eingangsdaten in jedem Partialaddierer,
zwei logische Stufen zur Bildung der Übertragseingänge für die 16 Partialaddierer im Übertragsvorausschaukreis und eine logische
Stufe für jeden Partialaddierer, um den Übertragseingang vom Übertragsvorausschaukreis zu erhalten, um das Ergebnis der gesamten
Addition auszugeben. Für eine Hochgeschwindigkeitsoperation ist es jedoch notwendig, daß jeder Partialaddierer vom Übertragsvorausschaukreis
das Übertragseingangssignal des geringstwertigen Bits des Partialaddierers und das Übertragsausgangssignal vom
geringstwertigen Bit einer jeden Ziffernstelle, die im Partialaddierer eingeschlossen ist, empfängt. Daher wird der Übertrags-
809828/0643
vorausschaukreis benötigt, um die Tenne g und ρ des geringstwertigen
Bits einer jeden ZiIfernste!le als auch die Terme GG
und GP von den Partialaddierern zu empfangen. Dies vergrößert
die Zahl der Leitungen für die Signalübertragung und die Aufnahme zwischen den Partialaddierern und dem Ubertragsvorausschaukreis
und führt zu einer Komplexität in der den Übertrag bildenden Logik im Übertragsvorausschaukreis. Wenn die Zahl der benutzten
Partialaddierer ü oder mehr ist, ist es schwierig, eine Logik mit zwei logischen Stufen zu nehmen.
Diese Erfindung beruht auf den obigen Moden und benutzt die in Figur 5 gezeigte Struktur, und der Partialaddierer der Figur 5
ist wie nachfolgend beschrieben konstruiert.
Figur 11 zeigt die Gesnmtstruktur einer Ausführungsform des Partialaddierers
für diese Erfindung. In Figur 11 bezeichnet das Bezugszeichen 1 einen Halbaddierertei1. 2 bezeichnet ein Ubertragsvorausschau-Eingangssignal-Generatorkreistei1.
2-0 bezeichnet ein Binärmodus-Übertragsvorauscchau-Eingangssignal-Generatorkreisteil.
2-1 bezeichnet ein Dezimalmodus-Übertragsvorausschau-Eingangssignal-Generatorkreisteil.
3 bezeichnet einen Zwischenaddiererteil.
4 zeigt einen Volladdiererteil. Die Bezugszeichen A-, A. ·,
B., B. ,... beziehen sicli auf Bits eines ersten und eines zweiten
Summanden, die in den Partia laddierer eingegeben werden, diese Bits entsprechen den obengenannten a- und b.. BGG. und BGP. bezeichnen
die Bits, die im oben erwähnten Binärmodus der Operation GG. bzw. GP. entsprechen. DGG. und DGP. bezeichnen die Bits, die
im oben erwähnten Dezimalmodus GG. und GP. entsprechen, lii- entspricht
der Zwischensumme, die von einem logischen Sclial tkreis,
der in Figur IA abgebildet ist, ausgegeben wird. SUM. bezeichnet
das endgültige Ergebnis der Addition. CIN. bezeichnet einen Ubertragseingang.
In Figur 11 werden der Biterzeugungsterm g und der Bitausbroitungcterm
k baiutzt. (In diesem Fall wird zur Vereinfachung der Schaltkreisstruktur
der Term P teilweise benutzt). Es ist überflüssig zu sagen, daß die Terme g und ρ hauptsächlich benutzt, werden kennen.
809828/06/* 3
Der Halbaddiererteil 1 erzeugt die Tenne g und k entsprechend den Gleichungen (l) und (2). Der Binärmodus-Übertragsvorausschau-Eingangssignal-Generatorkreisteil
2-0 bildet die Terme GG und GP im Binärmodus (d.h. die Terme BGG und BGP), entsprechend den
Gleichungen (4·) und (6). Der Dezimalmodus-Übertragsvorausschau-Eingangssignal-Generatorkreisteil
2-1 erzeugt die Terme GG und GP im Dezimalmodus (d.h. die Terme DGG und DGP), entsprechend den
Gleichungen (12') und (14·). Wenn nur eine Ziffernstelle, d.h.
nur eine binär codierte Dezimalzahl, in den in Figur 11 gezeigten Partialaddierer eingegeben wird, geben die obengenannten Schaltkreisteile
2-0 und 2-1 ihre erzeugten Terme GG und GP an einen Ubertragsvorausschaukreis (CLA). Wenn viele Ziffernstellen in den
Partialaddierer eingegeben werden, werden ausgedehite Gruppenerzeugungs-
und Ausbreitungsterme XG und XP, die die Eingangsziffern überdecken, erzeugt und dem Übertragsvorausschaukreis zugeführt.
Die Terme XG und XP sind wie folgt gegeben:
XG1 » GG1 + GP11GG1+4 + GP1-GP1+4 GG1+8 + (50)
XP. * GP..GP1+A.GP1+8 (51)
Der obengenannte Zwischenaddiererteil 3 führt die folgende Verarbeitung
aus. Dies bedeutet, daß dem Zwischenaddiererteil 3 zumindest die obengenannt en Terme g und k und der Term GG zugeführt
werden, um einen Zwischensummen-Erzeugungsprozeß eines Partialaddierers zu bewirken. Damit wird eine Addition der Eingangsdaten
zu einem Partialaddierer erreicht, unabhängig von einem Ubertragseingang vom Partialaddierer der geringeren Ordnung, abhängig davon,
ob der Operationsmodus der dezimale Additionsmodus ist oder nicht. Mit anderen Worten, beim Binärmodus gibt der Zwischenaddiererteil
3 eine Sumne einer binären Addition eines Satzes von Eingangsdaten
aus, die ihm zugeführt wurden, und im Dezimalmodus gibt er die Summe aus, so daß "6(0110)n nur zu den Ziffernstellen weiteraddiert
wird, in denen der Term GG "1" ist. Der Volladdiererteil
4 erzeugt einen vollen Additionsausgang, nachdem die Zwischensumme
vom obengenannten Zwischenaddiererteil 3 mit einem Übertragseingang
korrigiert wurde, der der geringstwertigen Bitposition des Partialaddierers
vom Übertragsvorausschaukreis zugeführt wurde. Dies be-
809828/0643
deutet, eine endgültige Summe wird vom Volladdiererteil k ausgegeben.
Obwohl dies in Figur 11 nicht dargestellt ist, ist die Gesamtstruktur des erfindungsgemäßen Addiererkreises genau so,
wie die in Figur 5 abgebildete Struktur. Jeder dem Ubertragsvorausschaukreis
(CLA) zugeführte Term, nicht dargestellt, wird gemeinsam für die Binärmoden und Dezimalmoden benutzt, und die Hard
ware des Übertragsvorausschaukreises (siehe Figur 16) wird gemeinsam für die Binärmoden und Dezimalmoden benutzt.
Die Figuren 12 bis 15 zeigen Beispiele von Schaltkreisen der jeweiligen
Blöcke in Figur 11. Figur 16 zeigt ein Beis piel des übertrasvorausschaukreises für eine Verwmdung mit einem binären
und dezimalen Hochgeschwindigkeitsaddierer mit 4 Bytes (8 Stellen),
der acht Partialaddierer benutzt. Auch wenn die Breite des Addierers 8 Byte (16-stellig) ist, kann die Logik des Ubertrngsvorausschau-
kreises mit zwei logischen Stufen ausgebildet werdai. Dies ist
leicht aus Figur 16 ersichtlich.
Anhand der Figuren 11 bis 16 wird nun die Zahl der logischen
Stufen des Addierers dieser Erfindung diskutiert. Der Partialaddierer
hat drei logische Stufen zur Erzeugung der Terme GG und GP, wie ais den Figuren 12 und 13 ersichtlich ist. Wie aus Figur 16 hervorgeht,
besitzt der Übertragsvorausschaukreis zwei logische Stufen zur Erzeugung des Ubertragseingangs für jeden Partialaddierer aus
den Termen GG und GP. Damit werden fünf logische Stufen benötigt. Im Volladdiererteil, wie er in Figur 15 gezeigt ist, werden zwei
logische Stufen vom Übertragseingang bis zum Summenausgang benutzt.
Dementsprechend werden insgesamt sieben logische Stufen benötigt. (Tatsächlich ist es notwendig, die Operatoren, wie UND, ODKR und
EOR, siebenmal zu benutzen.) Jede Kombination eines UND-Gatters
und eines EOR-Gatters, wie durch gebrochene Linien in Figur 15 angezeigt ist, kann als ein logisches Element ausgebildet werden, und
zwar in Serien-Gate-und-Kollektor-Punkttechnik, wobei ein emittergekoppeltes
logisches Element (als ECL oder CML bezeichnet) in exakt der gleichen Weise wie ein elementares EOR-Gatter benutzt
wird. Dementsprechend erfordert die obengenannte Kombination des UND-Gatters und des EOR-Gatters eine Verzögerungszeit von nur
809828/0643
einer Stuie des EOR-Gatters. Figur 17 zeigt Beispiele eines
emittergekoppelten Schaltkreises und logische Symbole zur Erzeugung
des Paares aus UND-Gatter und EOR-Gatter in der Form eines logischen Elementes. Die Beziehungen zwischen den Eingängen
X, Y, Z und den Ausgängen H, H sind wie folgt:
H = (J-Y) (+) Z = Χ*·Υ·Ζ* + (X + Υ)·Ζ
η = χ·Ύ® ζ
Entsprechend den obigen Ausführungen benötigt der erfindungsgemäße
Addierer höchstens sieben logische Stufen, jedoch ist er dafür geeignet, eine endgültige Summe mit einer Geschwindigkeit
zu erzeugen, die sechs logischen Stufen entspricht.
809828/0643
Claims (1)
- PATENTANWÄLTEDR. CLAUS REINLANDER DIPL.-ING. KLAUS BERNHARDTOrthstroße 12 ■ D-8O00 München 60 · Telefon 832024/5Telex 5212744 · Telegramme Interpatent275816/319Binärer und dezimaler HochgeschwindigkeitsaddiererAnm.: Fujitsu Limited, Kawasaki, JapanPrio.: 30.Dez.76 - Japan - Akt.Z.: 159210/1976PatentanspruchBinärer und dezimaler Hochgeschwindigkeitsaddierer, gekennzeichnet durch mehrere Partialaddierer und einen Übertragvorausschaukreis,wobei die Partialaddierer jeweils einen ersten Summanden und einen zweiten Summanden mit einer vorgegebenen Biteinheit und einen Übertrag erhalten,wobei eier Ubertragvorausschaukreis zumindest ein Gruppenerzeugungssi/:nal und ein Gruppenausbreitungssignal vom jedem der Partialaddierer erhält,wobei jeder Partialaddierer zumindest einen Halbaddiererteil, einen Binärmodus-übertragvorausschau-Eingangssignal-Generatorkreisteil, einen Dezimalmodus-Übertragvorausschau-Eingangssignal-Generatorkreisteil, einen Zwischenaddiererteil und einen Volladdiererteil besitzt,
wobei der Halbaddiererteil ein Biterzeugungssignal und ein Bit-809828/0643 orkhnm. inspects)ausbreitungssignal erzeugt, basierend auf jedem Bit des ersten und des zweiten Summanden, die dem Halbaddiererteil eingegeben werden,wobei der Binärmodus-Übertragvorausschau-Eingangssignal-Generatorkreisteil das Biterzeugungssignal und das Bitausbreitungssignal benutzt, um ein Binärmodus-Gruppenerzeugungssignal und ein Binärmodus-Gruppenausbreitungssignal während eines Binärmodus einer Operation zu erzeugen,wobei der Dezimalmodus-Übertragvorausschau-Eingangssignal-Generatorkreisteil das Biterzeugungssignal und das Bitausbreitungssignal benutzt, um ein Dezimalmodus-Gruppenerzeugungssignal und ein Dezimalmodus-Gruppenausbreitungssignal während eines Dezimalmodus einer Opteration zu erzeugen,wobei Zwischenaddiererteile zumindest das Biterzeugungssignal, das Bitausbreitungssignal und das Dezimalmodus-Gruppenerzeugungssignal benutzen, um eine binäre oder dezimale Addition von Eingangsdaten für die Partialaddierer zu erreichen, unabhängig von den zugehörigen Übertrageingängen, wobei eine Zwischensumme der Eingangsdaten erzeugt wird,wobei der Volladdiererteil die Zwischensumme mit einem übertrageingang korrigiert, der vom Übertragvorausschaukreis an die geringstwertige Bitpositon eines jeden Partialaddierers gegeben wird, entsprechend dem Übertrageingang und der Zwischensumme, und wobei jeder Partialaddierer als Gruppenerzeugungssignal ein Signal der logischen Summe des Binärmodus-Gruppenerzeugungssignals und des Dezimalmodus-Gruppenerzeugungssignals an den Übertragvorausschaukreis gibt, und wobei jeder Partialaddierer als Gruppenausbreitungssignal ein Signal der logischen Summe des Binärmodus-Gruppenausbreitungssignals und des Dezimalmodus-Gruppenausbreitungssignals an den Übertragvorausschaukreis gibt.809828/0643
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15921076A JPS5384647A (en) | 1976-12-30 | 1976-12-30 | High-speed adder for binary and decimal |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2758130A1 true DE2758130A1 (de) | 1978-07-13 |
DE2758130C2 DE2758130C2 (de) | 1986-03-06 |
Family
ID=15688718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2758130A Expired DE2758130C2 (de) | 1976-12-30 | 1977-12-24 | Binärer und dezimaler Hochgeschwindigkeitsaddierer |
Country Status (5)
Country | Link |
---|---|
US (1) | US4138731A (de) |
JP (1) | JPS5384647A (de) |
CA (1) | CA1101124A (de) |
DE (1) | DE2758130C2 (de) |
ES (1) | ES465443A1 (de) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4118786A (en) * | 1977-01-10 | 1978-10-03 | International Business Machines Corporation | Integrated binary-BCD look-ahead adder |
US4263660A (en) * | 1979-06-20 | 1981-04-21 | Motorola, Inc. | Expandable arithmetic logic unit |
EP0044450B1 (de) * | 1980-07-10 | 1985-11-13 | International Computers Limited | Digitale Addierschaltung |
US4638300A (en) * | 1982-05-10 | 1987-01-20 | Advanced Micro Devices, Inc. | Central processing unit having built-in BCD operation |
US4700325A (en) * | 1984-02-08 | 1987-10-13 | Hewlett-Packard Company | Binary tree calculations on monolithic integrated circuits |
US4719590A (en) * | 1984-08-14 | 1988-01-12 | Aman James A | Apparatus and method for performing addition and subtraction |
JPS62500474A (ja) * | 1985-01-31 | 1987-02-26 | バロ−ス・コ−ポレ−シヨン | 高速bcd/バイナリ加算器 |
US4866656A (en) * | 1986-12-05 | 1989-09-12 | American Telephone And Telegraph Company, At&T Bell Laboratories | High-speed binary and decimal arithmetic logic unit |
US4942548A (en) * | 1987-06-25 | 1990-07-17 | International Business Machines Corporation | Parallel adder having removed dependencies |
JPH01104169U (de) * | 1987-12-30 | 1989-07-13 | ||
US6523049B1 (en) | 1999-12-21 | 2003-02-18 | International Business Machines Corporation | Circuit and method for determining greater than or equal to three out of sixty-six |
US7213043B2 (en) * | 2003-01-21 | 2007-05-01 | Lsi Logic Corporation | Sparce-redundant fixed point arithmetic modules |
US7299254B2 (en) * | 2003-11-24 | 2007-11-20 | International Business Machines Corporation | Binary coded decimal addition |
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 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3711693A (en) * | 1971-06-30 | 1973-01-16 | Honeywell Inf Systems | Modular bcd and binary arithmetic and logical system |
US3925651A (en) * | 1975-03-26 | 1975-12-09 | Honeywell Inf Systems | Current mode arithmetic logic array |
US3925652A (en) * | 1975-03-26 | 1975-12-09 | Honeywell Inf Systems | Current mode carry look-ahead array |
US3958112A (en) * | 1975-05-09 | 1976-05-18 | Honeywell Information Systems, Inc. | Current mode binary/bcd arithmetic array |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3805045A (en) * | 1972-10-30 | 1974-04-16 | Amdahl Corp | Binary carry lookahead adder using redundancy terms |
US3991307A (en) * | 1975-09-16 | 1976-11-09 | Mos Technology, Inc. | Integrated circuit microprocessor with parallel binary adder having on-the-fly correction to provide decimal results |
-
1976
- 1976-12-30 JP JP15921076A patent/JPS5384647A/ja active Granted
-
1977
- 1977-12-09 US US05/859,184 patent/US4138731A/en not_active Expired - Lifetime
- 1977-12-24 DE DE2758130A patent/DE2758130C2/de not_active Expired
- 1977-12-26 ES ES465443A patent/ES465443A1/es not_active Expired
- 1977-12-29 CA CA294,027A patent/CA1101124A/en not_active Expired
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3711693A (en) * | 1971-06-30 | 1973-01-16 | Honeywell Inf Systems | Modular bcd and binary arithmetic and logical system |
US3925651A (en) * | 1975-03-26 | 1975-12-09 | Honeywell Inf Systems | Current mode arithmetic logic array |
US3925652A (en) * | 1975-03-26 | 1975-12-09 | Honeywell Inf Systems | Current mode carry look-ahead array |
US3958112A (en) * | 1975-05-09 | 1976-05-18 | Honeywell Information Systems, Inc. | Current mode binary/bcd arithmetic array |
Also Published As
Publication number | Publication date |
---|---|
JPS5384647A (en) | 1978-07-26 |
CA1101124A (en) | 1981-05-12 |
DE2758130C2 (de) | 1986-03-06 |
JPS561660B2 (de) | 1981-01-14 |
US4138731A (en) | 1979-02-06 |
ES465443A1 (es) | 1978-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2758130A1 (de) | Binaerer und dezimaler hochgeschwindigkeitsaddierer | |
DE1956209C3 (de) | Multipliziervorrichtung | |
DE4302898A1 (en) | Arithmetic logic unit with accumulator function - has two memories and counter with selection to reduce delay in processing | |
DE2018452A1 (de) | Arithmetische Einrichtung | |
DE2626432A1 (de) | Arithmetische einheit fuer automatische rechengeraete | |
DE3229452A1 (de) | Arithmetiklogikeinheit | |
DE2063199B2 (de) | Einrichtung zur Ausführung logischer Funktionen | |
DE1549478B1 (de) | Gleitkomma-Rechenwerk zur schnellen Addition oder Subtraktion binaerer Operanden | |
DE2305201A1 (de) | Schnellteiler zur iterativen division, insbesondere fuer digitalrechner | |
DE4101004A1 (de) | Paralleler multiplizierer mit sprungfeld und modifiziertem wallac-baum | |
DE3303269C2 (de) | ||
DE2364865C2 (de) | Schaltungsanordnung zur Bildung von erweiterten Adressen in einer digitalen Rechenanlage | |
DE4019646C2 (de) | Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung | |
DE3447634C2 (de) | ||
DE2705989C2 (de) | Schaltungsanordnung zum parallelen Addieren oder Subtrahieren von mindestens zwei Eingangszahlen | |
EP0130397B1 (de) | Digitales Rechenwerk | |
DE3424078A1 (de) | Dezimalmultiplikations-einrichtung | |
DE10117041C1 (de) | Carry-Ripple Addierer | |
DE3326388C2 (de) | ||
DE1449564C3 (de) | Recheneinrichtung zur Subtraktion mehrerer Operanden oder zu deren Addition durch Verwendung von Komplementärwerten eines der Operanden | |
DE19711005C2 (de) | Baumschaltung zur Addition von Teilprodukten im Booth-Algorithmus | |
DE2952689C2 (de) | ||
DE19644688A1 (de) | Schaltungsanordnung einer digitalen Multiplizierer-Baugruppe, zur Verarbeitung von Binärzahlen sowie Elementen aus GF(2 APPROX ) | |
DE19847245C2 (de) | Kombinierte Addierer- und Logik-Einheit | |
DE3702204C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAP | Request for examination filed | ||
OD | Request for examination | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition |