DE19847245C2 - Kombinierte Addierer- und Logik-Einheit - Google Patents

Kombinierte Addierer- und Logik-Einheit

Info

Publication number
DE19847245C2
DE19847245C2 DE19847245A DE19847245A DE19847245C2 DE 19847245 C2 DE19847245 C2 DE 19847245C2 DE 19847245 A DE19847245 A DE 19847245A DE 19847245 A DE19847245 A DE 19847245A DE 19847245 C2 DE19847245 C2 DE 19847245C2
Authority
DE
Germany
Prior art keywords
logic
unit
carry
functions
sum
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19847245A
Other languages
English (en)
Other versions
DE19847245A1 (de
Inventor
Juergen Haas
Wilhelm Haller
Ulrich Krauch
Thomas Ludwig
Holger Wetter
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE19847245A1 publication Critical patent/DE19847245A1/de
Application granted granted Critical
Publication of DE19847245C2 publication Critical patent/DE19847245C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • G06F7/507Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using selection between two conditionally calculated carry or sum values
    • 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

Landscapes

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

Description

Gebiet der Erfindung
Die vorliegende Erfindung betrifft eine kombinierte Addierer- und Logikeinheit, die Mittel zum Erzeugen arithmetischer Ergeb­ nisse von Operanden und Mittel zum Ausführen logischer Funktio­ nen von Operanden umfaßt, wobei jeder der Operanden eine Viel­ zahl Bytepositionen besitzt. Des weiteren umfaßt die kombinierte Addier- und Logikeinheit innerhalb jeder Byteposition ein Über­ tragsnetzwerkmittel, das zum Erzeugen von Übertragsausgangssig­ nalen der Bytepositionen mit dem Operandeneingang verbunden ist, und ein Vorsummenlogikmittel, welches ein Bitfunktionsgenerator­ mittel und ein Summengeneratormittel aufweist.
Hintergrund der Erfindung
Arithmetische und logische Operationen gehören zu den Grundope­ rationen von Informationsprozessoren. Die bevorzugten Operatio­ nen sind Additionen und Subtraktionen sowie die logischen Funk­ tionen UND, ODER und Antivalenz. Bekannte Prozessoren erhalten eine Arithmetik-Logik-Einheit, welche eine binäre Addiererein­ heit und eine separate Logikeinheit zur Ausführung logischer Funktionen umfaßt (Fig. 1). Der Entwurf der Arithmetik-Logik- Einheiten als integrierte Schaltungen ist von Rabaey, "Digital Integrated Circuits, A Design Perspective", Prentice Hall, En­ glewood Cliffs, USA, 1996, Seiten 383 bis 408 beschrieben wor­ den.
Aus TIETZE, Ulrich, SCHENK, Christoph: Halbleiter-Schaltungs­ technik. 9. Auflage. Berlin [u. a.]: Springer, 1990, S. 605-609 sind Binäraddierer bekannt, die eine parallele Übertragungslogik aufweisen. Bei solchen Binäraddierern werden alle Überträge di­ rekt aus den Eingangsvariablen berechnet. Um die parallele Über­ tragungslogik bei einem Binäraddierer zu realisieren, sind meh­ rere Volladdierern mit einem Übertragungsblock zusammen geschal­ tet. Die Volladdierer können jeweils zwei einstellige binäre Eingangsgrößen und einen Übertrag addieren, während der Über­ tragungsblock die komplette Schaltung der Übertragungslogik be­ inhaltet. Im Zuge der Übertragsberechnung treten bei den Voll­ addierern Zwischenergebnisse auf, mit denen parallel die Über­ träge berechnet werden. Mehrere dieser Anordnungen aneinander gereiht können beispielsweise ein 16 bit-Addierwerk bilden.
Aus der EP 450 751 A2 ist ein CSA (carry save adder) für inter­ aktive Hochgeschwindigkeitsdivision bekannt. Der CSA umfaßt Mit­ tel zum Durchführen von mehreren Additionen, allgemeine Eingabe­ mittel für die Mittel zum Durchführen der Additionen und einen Multiplexer zum Auswählen des gewünschten Ergebnisses der Addi­ tionen.
Die bekannten Schaltungsanordnungen sind auf ganz bestimmte An­ wendungsgebiete spezialisiert. Die vorstehend beschriebenen Schaltungen beispielsweise auf eine Addition mit paralleler Übertragungslogik bzw. auf Hochgeschwindigkeitsdivision. Werden unterschiedliche solcher Schaltungen in einer Anwendung be­ nötigt, so können diese auf einem einzigen integrierten Schalt­ kreis angeordnet werden und dadurch eine neue integrierte Schal­ tung bilden. Dabei ist bekannt, eine Addierereinheit, eine Logikeinheit und eine zusätzliche Komparatoreinheit miteinander zu kombinieren, von denen jede ihre eigenen Operandeneingangs- und Ausgangsleitungen besitzt.
Die bekannten Addierer- und Logikeinheiten werden ebenfalls ver­ wendet, um spezielle Funktionen wie beispielsweise die Verarbei­ tung von Zeichenketten veränderlicher Länge auszuführen, wie dies für Anwendungen bei Datenbanken und der Textverarbeitung erforderlich ist. Das Patent DE 43 34 294 offenbart ein Gerät dieses Typs, welches eine Addierereinheit, eine Logikeinheit und eine zusätzliche Komparatoreinheit umfaßt, von denen jede ihre eigenen Operandeneingangs - und Ausgangsleitungen besitzt. Mit zunehmender Schaltungsdichte werden die Leitungsverbindungen und die Leitungsverzögerungen mehr und mehr zu einem ernsten Problem. Die große Anzahl Eingangs- und Ausgangs­ leitungen vergrößert die RC-Verzögerungen sowie die Kapazität der Verdrahtung und verringert somit die Operationsgeschwindig­ keit des Prozessors. Zusätzlich stellen die Eingangsleitungen eine große Eingangsbelastung dar, welche die Synchronisation der Schaltungen verschlechtert.
Zusammenfassung der Erfindung
Es ist daher Aufgabe der Erfindung, die Addierer- und Logikein­ heit der eingangs genannten Art derart weiterzubilden, dass sie eine geringere Ausführungszeit arithmetischer und logischer Ope­ rationen aufweist.
Die Aufgabe wird erfindungsgemäß durch die in Anspruch 1 genann­ ten Merkmale gelöst.
Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, dass die Anzahl der Eingangs- und Ausgangsleitungen der Addierer- und Logikbaugruppe verringert werden. Des weiteren wird die Eingangsbelastung positiv beeinflußt und es werden die Leitungsverzögerungen und die Kapazität der Arithmetik- und Lo­ gikbaugruppe eines Mikroprozessorchips verringert.
Gemäß der Erfindung umfaßt die kombinierte Addierer- und Logik­ einheit in bevorzugten Ausführungsformen ein Netzwerk für die Übertragsverarbeitung, welches mit den Operandeneingängen ver­ bunden ist, um Übertragsausgangssignale für die Bytepositionen zu erzeugen, und sie enthält desweiteren eine Vorsummenlogik, die einen Bitfunktionsgenerator und einen Summengenerator umfasst. Der Bitfunktionsgenerator leitet aus den Operanden Ai und Bi die Bitfunktionen Gi, Pi ab, welche als logisches Funktions­ ausgangssignal der Einheit und als Eingangssignal für den Sum­ mengenerator bereitgestellt werden, um vorläufige arithmetische Funktionen (SUM0, SUM1) zu bilden, um das Auftreten von Über­ tragseingangssignalen von eins oder null vorwegzunehmen. Eine Ergebnisauswahleinrichtung wird von einem Byte-Übertragsaus­ gangssignal (Cy55) des Übertragsnetzwerkes und von Operationssteuersignalen gesteuert, um aus den Ausgangssignalen der Vorsummenlogik eine der arithmetischen Funktionen (SUM0, SUM1) als Ergebnis der Operation der Einheit auszuwählen.
Kurze Beschreibung der Zeichnungen
Im folgenden wird eine bevorzugte Ausführungsform einer kombi­ nierten Addierer- und Logikeinheit gemäß der Erfindung unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, wobei die Figuren zeigen:
Fig. 1 eine Arithmetik-Logik-Einheit gemäß dem Stand der Technik;
Fig. 2 die allgemeine Struktur einer Addierer-/Logikeinheit gemäß der Erfindung;
Fig. 3 die allgemeine Struktur einer modifizierten Addierer- /Logikeinheit gemäß der Erfindung zur Ausführung von Zeichenkettenoperationen;
Fig. 4 ein schematisches Blockschaltbild der Byteabschnitte der Addierereinheit gemäß der Fig. 2 und 3;
Fig. 5 die Realisierung eines Byteabschnittes der Addierer-/­ Logikeinheit der Fig. 2 bis 4;
Fig. 6 einen Operationsdecoder, wie er in der Addierer-/Lo­ gikeinheit von Fig. 5 verwendet wird; und
Fig. 7 eine Vorsummenlogik, wie sie in der Addierer-/Logik­ einheit von Fig. 5 verwendet wird.
Fig. 1 zeigt eine bekannte Arithmetik-Logik-Einheit, welche aus einer Addierereinheit und einer separaten Logikeinheit be­ steht. Jede dieser Einheiten enthält zwei Sätze Eingangsleitun­ gen, welche mit Operandenregistern verbunden sind, die die Ope­ randen A und B speichern. Jede dieser Einheiten enthält eben­ falls einen Satz Ausgangsleitungen, welche über einen Ausgangs­ multiplexer mit den Ergebnisausgangsleitungen verbunden sind. Gemäß einem der Aspekte der Erfindung wird die große Anzahl der Eingangs- und Ausgangsleitungen verringert, indem die beiden Einheiten zu einer gemeinsamen Einheit zusammengefaßt werden, welche einen kombinierten Operandeneingang und einen kombinier­ ten Operandenausgang umfaßt.
Detaillierte Beschreibung einer bevorzugten Ausführungsform der Erfindung
Eine Arithmetikeinheit, welche die Fähigkeit mit einschließt, logische Operationen auszuführen, wird in Fig. 2 dargestellt. Diese Einheit umfaßt eine Addierereinheit 10 mit vorzugsweise 64 Bitpositionen. Jede Bitposition besitzt zwei Eingangsleitun­ gen, welche mit den Operandenregistern 12, 14 verbunden sind, die Teiloperanden A, B zu 64 Bit oder jeweils 8 Byte enthalten. Die Steuersignale an einem Eingang 16 legen die arithmetischen oder logischen Funktionen des Addierers fest. Die Ausgangssig­ nale, die von den arithmetischen und logischen Funktionen er­ zeugt werden, erscheinen auf den kombinierten Ausgangsleitungen 18. Die Einheit 10 kann verwendet werden, um Operanden verän­ derlicher Länge zu verarbeiten, die binäre Operanden oder binär codierte Dezimaloperanden, Bitkettenoperanden oder Zeichenket­ tenoperanden, die von einem Ende-Zeichen abgeschlossen werden, darstellen. Für den letztgenannten Operationstyp zeigt Fig. 3 eine modifizierte Ausführung der Erfindung, wobei parallel zu der Addierereinheit 10 eine Komparatoreinheit 11 angeordnet ist. Die Komparatoreinheit 11 empfängt aus den Registern 12 und 14 dieselben Operanden A, B und führt einen Vergleich dieser Operanden mit einem Ende-Zeichen aus, das in dem Register 15 gespeichert ist. Wenn der Vergleich eine Übereinstimmung er­ gibt, wird auf der Ausgangsleitung 17 ein Signal "Ende-Zeichen gefunden" erzeugt. Die Addierereinheit 10 umfaßt eine zusätzli­ che Ausgangsleitung 19, welche eine Nichtübereinstimmung der Operanden A und B anzeigt.
Wie in Fig. 4 dargestellt, werden die 64 Bitpositionen der Addierereinheit 10 in Byteabschnitte BY0 bis By7 unterteilt, wobei By7 das niedrigstwertige Byte und By0 das höchstwertige Byte sind. In jedem Byteabschnitt werden Byte- Übertragsausgangssignale Cy erzeugt und von der höchstwertigen Bitposition jedes Bytes zur niedrigstwertigen Bitposition des nächsten Bytes übertragen. In Fig. 4 werden die Bitpositionen der Übertragsausgangssignale durch Nummern gekennzeichnet. Vom niedrigstwertigen Byte By7 wird ein Anfangs-Übertragseingangs­ signal INIT_Cy-IN empfangen, und das höchstwertige Byte By0 erzeugt ein Übertragsausgangssignal Cy_out.
Die Addierereinheit umfaßt innerhalb jeder Byteposition ein Übertragsnetzwerk 30 und eine Vorsummenlogik 32, wie dies in Fig. 5 dargestellt ist, welche den Byteabschnitt By6 der Ein­ heit 10 zeigt. Somit besteht jeder Eingang des Übertragsnetz­ werkes 30 und der Vorsummenlogik 32 aus 8 Leitungen, wobei jede Leitung einem Operandenbit zugeordnet ist. Die Bits A1 des Ope­ randen A werden von einer ersten Gruppe Zwischenspeicher 20 empfangen, welche ein Teil des Operandenregisters 12 sind, und die Bits Bi des Operanden B werden von einer zweiten Gruppe Zwischenspeicher 22 empfangen, welche ein Teil des Operanden­ registers 14 sind. Jede der Zwischenspeichergruppen 20 und 22 enthält die Bits von zwei Bytes By6 und By7 der Operanden. In Fig. 5 werden die Bitpositionen i der Operanden und der Opera­ tionsergebnisse durch entsprechende Nummern gekennzeichnet. Die wahren Ausgangssignale der Zwischenspeicher 20 sind direkt mit dem Übertragsnetzwerk 30 und der Vorsummenlogik 32 verbunden, wobei die Bits von Byte By7 zum Übertragsnetzwerk 30 übertragen werden, und die Bits des Bytes By6 werden zur Vorsummenlogik 32 übertragen. Die wahren und komplementären Ausgangssignale der Zwischenspeicher 22 sind mit einem Multiplexer M1 verbunden, welcher die wahren oder komplementären Ausgangssignale der Zwi­ schenspeicher 22 auf das Übertragsnetzwerk 30 und die Vorsum­ menlogik 32 schaltet, wobei die abgeleiteten Bits des Bytes By7 zum Übertragsnetzwerk 30 übertragen werden, und die abgeleite­ ten Bits des Bytes By6 werden zur Vorsummenlogik 32 übertragen. Der Multiplexer M1 wird von einem Operationssteuersignal ANY_SUB gesteuert, das von einem Operationsdecoder 34 entsprechend einem Subtraktionsbefehl geliefert wird, der in einem Befehlsregister 36 (Fig. 6) enthalten ist. Das Steuersignal ANY_SUB schaltet über die UND-Schaltung 24 und die ODER-Schaltung 25 das Komplement von Bi auf das Übertragsnetzwerk 30 und die Vorsummenlogik 32. Wenn das Befehlsregister 36 einen anderen Befehl, wie beispielsweise einen Additionsbefehl oder einen logischen Befehl, enthält, ist das Steuersignal ANY_SUB nicht vorhanden, und die wahren Bits von Bi werden über den Inverter 26, die UND-Schaltung 27 und die ODER-Schaltung 25 auf das Übertragsnetzwerk 30 und die Vorsummenlogik 32 geschaltet. Das Übertragsnetzwerk 30 empfängt auf Leitung 31 ebenfalls ein Anfangs-Übertragseingangssignal INIT_Cy. Im Fall einer Subtraktionsoperation ist das Signal INIT_Cy eins, in anderen Fällen, wie beispielsweise bei Zeichenkettenoperationen, stellt das Signal INIT_Cy das Übertragsausgangssignal der vorhergehend verarbeiteten 8- Bytegruppe dar.
Das Übertragsnetzwerk 30 ist die zeitkritischste Schaltung der Einheit 10. Sie erzeugt die "eiligen" Übertragsausgangssignale jedes Bytes durch Anwendung des Parallelübertragsprinzips.
Dementsprechend wird das Übertragsausgangssignal von Byte By7 folgendermaßen gebildet:
Cy_out = G0 + G1.P0 + G2.P0.P1 + G3.P0.P1.P2 + G4.P1.P2.P3
+ G5.P1.P2.P3.P4 + G6.P1.P2.P3.P4.P5
+ G7.P0.P1.P2.P3.P4.P5.P6
+ P0.P1.P2.P3.P4.P5.P6.P7.InitCy_in
wobei InitCy_in das Übertragseingangssignal der niedrigstwerti­ gen Bitposition ist.
Die Vorsummenlogik 32 arbeitet parallel und unabhängig vom Übertragsnetzwerk, um gleichzeitig die arithmetischen Summen und logischen Verknüpfungen der Operanden Ai und Bi zu erzeugen. Fig. 7 zeigt eine Ausführung der Vorsummenlogik 32 von Fig. 2. Über 8-Draht-Eingangsleitungen 40, 41 empfängt die Schaltung der Vorsummenlogik 32, wie oben beschrieben, die Operanden Ai und Bi, d. h. die Bits Ai des Operanden A und die wahren oder komplementären Bits des Operanden B. Aus diesen Eingangssignalen erzeugt ein Bitfunktionsgenerator 42 die Generierungsfunktionen Gi = Ai.Bi mittels der UND-Schaltungen 43 und die Weitergabefunktionen Pi = Ai + Bi mittels einer ODER-Schaltung 44. Beide Funktionen werden für die Übertragslogikschaltungen 45 und 46 und für eine Rohsummenlogik 48 bereitgestellt. Die Übertragslogikschaltung 45 führt die Übertragsverarbeitung auf der dargestellten Ziffernstelle unter der Voraussetzung aus, daß das Signal Cy_in null ist, wobei unter Verwendung der Generierungs- und Weitergabefunktionen Gi und Pi, wie sie vom Bitfunktionsgenerator 42 bereitgestellt werden, die folgenden Operationen ausgeführt werden:
Cy7 = 0
Cy6 = G7
Cy5 = G6 + G7.P6
Cy4 = G5 + G6.P5 + G7.P6.P5
.
.
.
Cy0 = G1 + G2.P1 + G3.P1.P2 + G4.P1.P2.P3 + G5.P1.P2.P3.P4
+ G6.P1.P2.P3.P4.P5 + G7.P1.P2.P3.P4.P3.P4.P5.P6
wobei für ein einzelnes Byte i = 0 . . . 7 gilt oder für einen 8- Byte-Operanden ist i = 0 . . . 7, 8 . . . 15, 16 . . . 23, 24 . . . 31 usw.
Dementsprechend führt die Übertragslogikschaltung 46 die Über­ tragssignalverarbeitung unter der Voraussetzung, daß das Signal Cy_in eins ist, durch Realisierung der folgenden Operationen aus:
Cy7 = 1
Cy6 = P7
Cy5 = G6 + G7.P6
Cy4 = G5 + G6.P5 + G7.P6.P5
.
.
.
Cy0 = G1 + G2.P1 + G3.P1.P2 + G4.P1.P2.P3 + G5.P1.P2.P3.P4
+ G6.P1.P2.P3.P4.P5 + P1.P2.P3.P4.P3.P4.P5.P6
Die Rohsummenlogik 48 führt die Antivalenzverknüpfung der Ope­ randen A und B mittels Inverterschaltungen 49 und UND-Schaltun­ gen 50 aus, um die Generierungsfunktionen Gi zu invertieren und eine UND-Verknüpfung der Pi-Funktionen und der invertierten Gi- Funktionen folgendermaßen zu bilden:
ROHSUMMEi = Ai XOR Bi
= Ai.Bi' + Ai'.Bi
= (Ai.Bi)'.(Ai + Bi)
= Gi'.Pi
worin i die Bits des zu verarbeitenden Bytes und ' das Komple­ ment des entsprechenden Terms kennzeichnet.
Zwei Antivalenzschaltungen 51, 52 verknüpfen die Ausgangssigna­ le der Übertragslogikschaltungen 45, 46 und die Ausgangssignale der Rohsummenlogik 48, um auf den Leitungen die Summen SUM0 und SUM1 des zu verarbeitenden Bytes zu erzeugen, wobei SUM0 auf der Voraussetzung beruht, daß das Signal Cy_in null ist, und SUM1 beruht auf der Voraussetzung, daß das Signal Cy_in eins ist.
Die Vorsummenlogik 32 benutzt die in den Operanden Ai und Bi enthaltenen logischen Funktionen gemeinsam dazu, um auf den Ausgangsleitungen 58, 60, 62 und 64 logische Funktionen als Ergebnisausgangssignal der Vorsummenlogik 32 zu erzeugen. Die Ausgangsleitungen 58 sind mit den Ausgängen der UND-Schaltung 43 verbunden, um die UND-Funktion der Operanden Ai und Bi zu erzeugen. Die Ausgangsleitungen 60 sind mit den Ausgängen der ODER-Schaltung 44 verbunden, um die ODER-Funktion der Operanden Ai und Bi zu erzeugen. Die Ausgangsleitungen 62 sind mit den Ausgängen der Rohsummenlogik 48 verbunden, um die Antivalenz­ funktion der Operanden Ai und Bi zu erzeugen. Die Ausgänge der Rohsummenlogik 48 sind über die Inverterschaltungen 66 eben­ falls mit einer ODER-Schaltung 68 verbunden, welche auf der Ausgangsleitung 64 ein Signal NICHTÜBEREINSTIMMUNG By6 erzeugt. Dieses Signal zeigt an, daß die Operandenbytes Ai und Bi un­ gleich sind.
Die Vorsummenlogik 32 erzeugt die logischen Funktionen gleich­ zeitig und parallel zu jeder anderen und ebenfalls gleichzeitig und parallel zur Erzeugung der Summen SUM0 und SUM1. Es ist somit möglich, eine Addition A + B, und eine der logischen Operationen A UND, A ODER, A ANTIVALENT B parallel auszuführen. Eine Ergebnisauswahleinrichtung 70 wird bereitgestellt, um das richtige Ergebnis der Einheit 10 zu bestimmen und dieses auf die kombinierten Ausgangsleitungen 18 zu schalten. Die Ergeb­ nisauswahleinrichtung 70 umfaßt die Multiplexer M2, M3 und M4, von denen der Multiplexer M2 mit den Summenausgangsleitungen 53, 54 der Vorsummenlogik 32 verbunden ist. Ein Byte- Übertragsausgangssignal Cy55 von eins der Byteposition By7 des Übertragsnetzwerkes 30 steuert den Multiplexer M2 so, daß die SUM1-Signale über die UND-Schaltung 72 und die ODER-Schaltung 74 und über die Leitungen 75 auf den Multiplexer M4 geschaltet werden. Ein Byte-Übertragsausgangssignal Cy55 von null, was durch den Inverter 76 angezeigt wird, steuert den Multiplexer M2 so, daß die SUM0-Signale über die UND-Schaltung 78 und die ODER-Schaltung 74 auf den Multiplexer M4 geschaltet werden.
Der Multiplexer M3 ist mit den logischen Ausgängen 58, 60, 62 der Rohsummenlogik 48 verbunden und wird durch die Steuerlei­ tungen 80 für die logischen Operationen vom Operationsdecoder so angesteuert, daß eine ausgewählte logische Funktion auf den Multiplexer M4 geschaltet wird. Der Multiplexer M3 umfaßt die UND-Schaltungen 81, 82, 83, welche von den Steuersignalen UND, ODER, ANTIVALENZ so gesteuert werden, daß die entsprechende logische Funktion ausgewählt wird, wobei diesen UND-Schaltungen die ODER-Schaltung 84 folgt, deren Ausgang die Ausgangsleitung 86 für das logische Ergebnis ist. Durch gleichzeitiges Anlegen eines Subtraktionssteuersignals ANY_SUB an den Multiplexer M1 und eines Logiksteuersignals ANTIVALENZ an den Multiplexer M3 erzeugt die Rohsummenlogik 48 die invertierte Äquivalenzfunkti­ on und der Multiplexer M3 schaltet die invertierte Äquivalenz­ funktion auf die Ausgangsleitungen 86 für das logische Ergeb­ nis.
Der Multiplexer M4 unterscheidet zwischen den arithmetischen Ergebnissen auf den Leitungen 75 und den logischen Ergebnissen auf Leitung 86. Der Multiplexer M4 wird durch ein Operations­ steuersignal ANY_LOG gesteuert, welches die logischen Ergeb­ nisbits von den Leitungen 86 über die UND-Schaltung 87 und die ODER-Schaltung 88 auf die Ergebnisleitungen 92 des Bytes By6 schaltet. Wenn das Operationssteuersignal ANY_LOG nicht vorhan­ den ist, was durch den Inverter 89 angezeigt wird, werden die Summenbits von den Leitungen 75 über die UND-Schaltung 90 und die ODER-Schaltung 88 auf die Ergebnisleitungen 92 des Bytes By6 geschaltet.
Wie in Fig. 3 dargestellt, kann die erfindungsgemäße Addierer­ einheit verwendet werden, um Operationen mit Zeichenketten ver­ änderlicher Länge zu unterstützen, wie dies in der DE 43 34 294 beschrieben wird. Das Ende einer Zeichenkette kann durch ein spezielles Zeichen oder durch eine Längenanzeige markiert wer­ den. Gewöhnliche Zeichenkettenoperationen sind ein logischer Vergleich von zwei Zeichenketten, die Suche nach einem speziel­ len Zeichen innerhalb einer Zeichenkette oder das Verschieben von Zeichenketten. Die Operationen werden solange ausgeführt, bis das Ende-Zeichen gefunden oder eine andere Bedingung, wie beispielsweise 'die Zeichen der Zeichenkette sind verschieden von null' erfüllt wird. Vergleichsoperationen für Zeichenketten erfordern arithmetische Operationen für das Setzen von Bedin­ gungscodes, um beispielsweise anzuzeigen, welches der nicht übereinstimmenden Zeichen das größere ist.
In der modifizierten Ausführung von Fig. 3 führt die Addierer­ einheit 10 den logischen Vergleich von zwei Zeichen der Operan­ denzeichenketten A und B durch Benutzung der logischen Funktio­ nen der Einheit 10 sowie die Bestimmung des größeren der nicht übereinstimmenden Zeichen durch. Eine Nichtübereinstimmung wird durch ein Signal auf Leitung 19 angezeigt, welche der Ausgangs­ leitung 64 der Vorsummenlogik 32 von Fig. 5 entspricht. Dieses Signal wird erzeugt, wenn mindestens eines der Operandenbit­ paare des Bytes eine Ungleichbedingung zeigt, was durch die Antivalenzverknüpfung dieses Operandenbits angezeigt wird. Gleichzeitig veranlaßt ein Operationssteuersignal ANY_SUB vom Operationsdecoder 34 die Ausführung der Subtraktion A - B derselben Operanden, deren Ergebnis auf den Ergebnisleitungen 18 erscheint, welche den Ergebnisleitungen 92 von Fig. 5 entsprechen. Im Rahmen dieses Ergebnisses zeigt das Byte- Übertragsausgangssignal des Bytes By0 an, welcher Operand der größere ist. Wenn das Übertragsausgangssignal eins ist, ist A der größere Operand, und wenn das Übertragsausgangssignal null ist, ist B der größere Operand. Das Ergebnis der Subtraktion auf den Leitungen 92 und das Ergebnissignal 'Nichtübereinstimmung' auf Leitung 64 werden parallel erzeugt, so daß sie gleichzeitig verfügbar sind. Zusätzlich zeigt die Komparatoreinheit 11 (Fig. 3), welche parallel zur Addierereinheit 11 arbeitet, durch ein Signal auf ihrer Ausgangsleitung 17 an, ob einer der Operanden A oder B ein Ende-Zeichen der zu verarbeitenden Zeichenkette enthält.

Claims (18)

1. Kombinierte Addierer- und Logikeinheit (10), die
Mittel zum Erzeugen arithmetischer Ergebnisse von Operanden und
Mittel zum Ausführen logischer Funktionen von Operanden umfasst, wobei jeder der Operanden eine Vielzahl Byteposi­ tionen besitzt, und die des weiteren innerhalb jeder Byte­ position
ein Übertragsnetzwerkmittel (30), das zum Erzeugen von Übertragsausgangssignalen der Bytepositionen (By) mit dem Operandeneingang verbunden ist, und
ein Vorsummenlogikmittel (32)umfasst, welches ein Bit­ funktionsgeneratormittel (42) und ein Summengeneratormittel (45, 46, 48, 51, 52) aufweist,
dadurch gekennzeichnet, dass
das Bitfunktionsgeneratormittel (42) aus den Operanden (A, B) Bitfunktionen (Gi, Pi) ableitet, welche als logische Funktionen der Operanden (A, B) an den Ausgang des Vorsum­ menlogikmittels (32) und zum Erzeugen vorläufiger arithme­ tischer Funktionen (SUM0, SUM1), die Übertragseingangs­ signale von eins oder null vorwegnehmen, als Eingangssignal an die Summengeneratormittel (45, 46, 48, 51, 52) angelegt werden und
in jeder Byteposition ein Ergebnisauswahlmittel (70) vor­ gesehen ist, das auf ein Bytepositions-Übertragsausgangs­ signal (Cy55) des Übertragsnetzwerkmittels (30) und auf Operationssteuersignale (86) reagiert, um von den Ausgangs­ signalen des Vorsummenmittels eine der arithmetischen Funktionen (SUM0, SW1) oder eine der logischen Funktionen als Ergebnis einer Operationsausführung der Einheit auszu­ wählen.
2. Einheit gemäß Anspruch 1, wobei das Vorsummenlogikmittel ein erstes Übertragslogikmittel (45) umfaßt, welches aus den Bitfunktionen (Gi, Pi) Bitübertragssignale erzeugt, die ein Übertragseingangssignal in die Byteposition von null voraussetzen, und ein zweites Übertragslogikmittel (46), welches aus den Bitfunktionen Bitübertragssignale erzeugt, die ein Übertragseingangssignal in die Byteposition von eins voraussetzen.
3. Einheit gemäß den Ansprüchen 1 und 2, wobei das Vorsummenlogikmittel ein Rohsummenmittel (48) umfaßt, das aus den Bitfunktionen eine Rohsumme erzeugt, sowie Antivalenzschaltungsmittel (51, 52), die aus den Ausgangssignalen des ersten und zweiten Übertragslogikmittels (45, 46) und des Rohsummenmittels vorläufige Summen (SUM0, SUM1) erzeugen.
4. Einheit gemäß einem der Ansprüche 1 bis 3, wobei die Bitfunktionen die Generierungsfunktionen (Gi) und die Weitergabefunktionen (Pi) sind.
5. Einheit gemäß den Ansprüchen 3 und 4, wobei das Rohsummenmittel (48) eine Schaltung (49, 50) zum Ausführen von Antivalenzverknüpfungen der Weitergabefunktionen (Pi) und der komplementären Generierungsfunktionen (Gi) enthält.
6. Einheit gemäß Anspruch 1, wobei das Vorsummenlogikmittel (32) parallel zu dem Übertragsnetzwerk (30) angeordnet ist und seine Ausgangssignale gleichzeitig mit dem Übertragsnetzwerk bereitstellt.
7. Einheit gemäß Anspruch 1, wobei das Vorsummenlogikmittel (32) einen Ausgang (64) für eine logische Funktion umfaßt, welcher parallel zu dem arithmetischen Funktionsausgang (SUM) der Einheit arbeitet.
8. Einheit gemäß Anspruch 5, Mittel umfassend, um gleichzei­ tig sowohl den Ausgang (64) für eine logische Funktion zur Anzeige einer Nichtübereinstimmung der Operandenbytes und den arithmetischen Funktionsausgang (SUM) zur Anzeige des größeren der beiden Operanden zu benutzen.
9. Einheit gemäß Anspruch 1, ein wahr/komplementär-Mittel (M1) umfassend, das einem der Operandeneingänge (Bi) zu­ geordnet ist und von einem Operationssteuersignal (ANY_­ SUB) gesteuert wird, um zur Ausführung von Subtraktions­ operationen das Komplement des Operanden für das Übertragsnetzwerk (30) und die Vorsummenlogik (32) bereitzustellen.
10. Einheit gemäß Anspruch 1, wobei die logischen Funktionen die UND-Funktion enthalten.
11. Einheit gemäß Anspruch 1, wobei die logischen Funktionen die ODER-Funktion enthalten.
12. Einheit gemäß Anspruch 1, wobei die logischen Funktionen die Antivalenzfunktion (XOR) enthalten, welche aus dem Ausgangssignal des Rohsummenmittels (48) abgeleitet wird.
13. Einheit gemäß Anspruch 1, wobei die logischen Funktionen die Äquivalenzfunktion (XNOR) enthalten, welche durch ein Subtraktionsoperations-Steuersignal (SUB) und durch Invertieren des Ausgangssignals des Rohsummenmittels (48) abgeleitet wird.
14. Einheit gemäß Anspruch 1, wobei die logischen Funktionen die NICHTÜBEREINSTIMMUNG-Funktion enthalten.
15. Einheit gemäß Anspruch 1, wobei das Ergebnisauswahlmittel (70) einen ersten Multiplexer (M2) umfaßt, der von dem Übertragsausgangssignal (Cy55) des Übertragsnetzwerkes (30) gesteuert wird, um eine der Summen (SUM0 oder SUM1) auf den Ausgang der Einheit zu schalten.
16. Einheit gemäß Anspruch 1, wobei das Ergebnisauswahlmittel (70) einen zweiten Multiplexer (M3) umfaßt, der von Opera­ tionssteuersignalen für logische Operationen gesteuert wird, um eine der logischen Funktionen der Operanden auf den Ausgang der Einheit zu schalten.
17. Einheit gemäß Anspruch 1, wobei das Ergebnisauswahlmittel (70) einen dritten Multiplexer (M4) umfaßt, der von einem Operationssteuersignal (ANY_LOG) gesteuert wird, um zwi­ schen arithmetischen und logischen Operationen zu unter­ scheiden, indem entweder die vorgewählte Summe (SUM0 oder SUM1) oder die vorgewählte logische Funktion auf den Aus­ gang der Einheit geschaltet wird.
18. Einheit gemäß Anspruch 1, ein ODER-Schaltungsmittel (68) umfassend, welches die invertierte Äquivalenzfunktion al­ ler Bits der Byteposition von dem Rohsummenmittel (48) empfängt, um eine logische Bytefunktion NICHTÜBEREINSTIM­ MUNG zu erzeugen.
DE19847245A 1997-11-07 1998-10-14 Kombinierte Addierer- und Logik-Einheit Expired - Fee Related DE19847245C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP97119502 1997-11-07

Publications (2)

Publication Number Publication Date
DE19847245A1 DE19847245A1 (de) 1999-07-22
DE19847245C2 true DE19847245C2 (de) 2003-06-18

Family

ID=8227589

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19847245A Expired - Fee Related DE19847245C2 (de) 1997-11-07 1998-10-14 Kombinierte Addierer- und Logik-Einheit

Country Status (2)

Country Link
US (1) US5944772A (de)
DE (1) DE19847245C2 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206802B2 (en) * 2002-10-10 2007-04-17 International Business Machines Corporation Hybrid carry look ahead/carry select adder including carry logic generating complementary hot carry signals, and method for producing the carry logic
US8612500B2 (en) * 2007-01-18 2013-12-17 International Business Machines Corporation Method and decimal arithmetic logic unit structure to generate a magnitude result of a mathematic
JP5115307B2 (ja) * 2008-04-25 2013-01-09 富士通セミコンダクター株式会社 半導体集積回路
RU2641218C1 (ru) * 2016-12-02 2018-01-16 Татьяна Алексеевна Малышева Способы выполнения вычислительных операций (во) и устройство их реализации

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0450751A2 (de) * 1990-04-02 1991-10-09 Advanced Micro Devices, Inc. Carry-Save-Addierer für schnelle iterative Division
DE4334294C1 (de) * 1993-10-08 1995-04-20 Ibm Prozessor für Zeichenketten variabler Länge

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0478731A4 (en) * 1990-04-04 1993-09-22 International Business Machines Corporation Early scism alu status determination apparatus
US5487025A (en) * 1993-11-15 1996-01-23 Intergraph Corporation Carry chain adder using regenerative push-pull differential logic
US5764550A (en) * 1996-07-22 1998-06-09 Sun Microsystems, Inc. Arithmetic logic unit with improved critical path performance

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0450751A2 (de) * 1990-04-02 1991-10-09 Advanced Micro Devices, Inc. Carry-Save-Addierer für schnelle iterative Division
DE4334294C1 (de) * 1993-10-08 1995-04-20 Ibm Prozessor für Zeichenketten variabler Länge

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TIETZE, Ulrich, SCHENK, Christoph: Halbleiter- Schaltungstechnik, 9. Aufl., Berlin (u.a.): Springer, 1990, S. 605-609 *

Also Published As

Publication number Publication date
US5944772A (en) 1999-08-31
DE19847245A1 (de) 1999-07-22

Similar Documents

Publication Publication Date Title
DE10085322B4 (de) Schaltungsanordnung, Verfahren und Datenverarbeitungs-Einrichtung zum Durchführen einer Ein-Zyklus-Addition oder -Subtraktion und eines Vergleichs bei einer Arithmetik redundanter Form
DE3306084C2 (de)
DE69632978T2 (de) Multi-Operand-Addierer, der Parallelzähler benutzt
DE3486211T2 (de) Kodebestimmung mit einem auf Halbaddierer basierten Operandenvergleicher.
DE3700991C2 (de) Digitaler Übertragsvorgriffsaddierer
DE3686828T2 (de) Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration.
DE2421130C2 (de)
DE3840969A1 (de) Integrierte halbleiter-schaltungsvorrichtung
DE2758130C2 (de) Binärer und dezimaler Hochgeschwindigkeitsaddierer
DE1197650B (de) Parallel-Addierer
DE4403917A1 (de) Vorrichtung zum Berechnen einer Besetzungszählung
DE1549508C3 (de) Anordnung zur Übertragsberechnung mit kurzer Signallaufzeit
DE3688806T2 (de) Instruktionsprozessor.
DE3852576T2 (de) Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen.
DE69629646T2 (de) Verfahren zur durchführung einer "rotate through carry" operatiion
DE19847245C2 (de) Kombinierte Addierer- und Logik-Einheit
DE3447634C2 (de)
DE3424078A1 (de) Dezimalmultiplikations-einrichtung
DE19846828B4 (de) Kombinierter Binär-/Dezimal-Addierer
DE3688434T2 (de) Schneller bcd/binaer-addierer.
DE3323607A1 (de) Digitales rechenwerk
DE1449564C3 (de) Recheneinrichtung zur Subtraktion mehrerer Operanden oder zu deren Addition durch Verwendung von Komplementärwerten eines der Operanden
DE19644688B4 (de) Schaltungsanordnung einer digitalen Multiplizierer-Baugruppe, zur Verarbeitung von Binärzahlen sowie Elementen aus GF(2m)
DE1774771B2 (de) Anordnung, um wechselweise eine addition oder eine aus einer anzahl logischer funktionen zwischen den stellenwerten zweier binaerwoerter durchzufuehren
DE10206830B4 (de) Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8304 Grant after examination procedure
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee