DE2758130A1 - Binaerer und dezimaler hochgeschwindigkeitsaddierer - Google Patents

Binaerer und dezimaler hochgeschwindigkeitsaddierer

Info

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
Application number
DE19772758130
Other languages
English (en)
Other versions
DE2758130C2 (de
Inventor
Toshio Dipl Ing Hayashi
Shigemi Dipl Ing Kamimoto
Kazuyuki Dipl Ing Shimizu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE2758130A1 publication Critical patent/DE2758130A1/de
Application granted granted Critical
Publication of DE2758130C2 publication Critical patent/DE2758130C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/491Computations with decimal numbers radix 12 or 20.
    • G06F7/492Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
    • G06F7/493Computations 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/494Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • G06F7/508Adding; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/492Indexing scheme relating to groups G06F7/492 - G06F7/496
    • G06F2207/4924Digit-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).
Dritter Modus:
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
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
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)
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.
Vierter Modus:
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).
Fünfter Modus;
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) :
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)
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
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)
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)

  1. PATENTANWÄLTE
    DR. CLAUS REINLANDER DIPL.-ING. KLAUS BERNHARDT
    Orthstroße 12 ■ D-8O00 München 60 · Telefon 832024/5
    Telex 5212744 · Telegramme Interpatent
    27581
    6/319
    Binärer und dezimaler Hochgeschwindigkeitsaddierer
    Anm.: Fujitsu Limited, Kawasaki, Japan
    Prio.: 30.Dez.76 - Japan - Akt.Z.: 159210/1976
    Patentanspruch
    Binä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
DE2758130A 1976-12-30 1977-12-24 Binärer und dezimaler Hochgeschwindigkeitsaddierer Expired DE2758130C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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