DE19614480C2 - Addierwerk mit einer Vorermittlung der führenden Nullstellen und Verfahren - Google Patents

Addierwerk mit einer Vorermittlung der führenden Nullstellen und Verfahren

Info

Publication number
DE19614480C2
DE19614480C2 DE19614480A DE19614480A DE19614480C2 DE 19614480 C2 DE19614480 C2 DE 19614480C2 DE 19614480 A DE19614480 A DE 19614480A DE 19614480 A DE19614480 A DE 19614480A DE 19614480 C2 DE19614480 C2 DE 19614480C2
Authority
DE
Germany
Prior art keywords
sum
adder
partial
operands
adders
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
DE19614480A
Other languages
English (en)
Other versions
DE19614480A1 (de
Inventor
Guenter Gerwig
Trong Son Dao
Klaus Getzlaff
Wilhelm Haller
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 DE19614480A1 publication Critical patent/DE19614480A1/de
Application granted granted Critical
Publication of DE19614480C2 publication Critical patent/DE19614480C2/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/74Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting

Landscapes

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

Description

Gebiet der Erfindung
Die Erfindung betrifft die Ermittlung der führenden Nullstellen einer Summe, insbesondere in Übertrag-Auswahl- Addierern (Carry-Select-Adder).
Stand der Technik
Für eine schnelle Addition werden heute vorwiegend parallel arbeitende Addierwerke, bestehend aus mehreren, miteinander verbundenen, parallel arbeitenden Einzeladdierern verwandt. Die stellenwertgleichen Stellen der miteinander zu addierenden Operanden werden gleichzeitig und damit schnellstmöglich verarbeitet. Der Zeitbedarf einer Addition wird auf Kosten des Materialaufwandes, insbesondere des Platzbedarfes (Chipfläche) verringert. Die Stelle, bei der Schreibung einer Zahl, bedeutet den Platz, an dem eine Ziffer steht. Stellenwertgleiche Stellen sind solche Stellen mit der gleichen Position vor oder hinter dem Komma einer Zahl bei gleichem Exponenten.
Parallel-Addierer bestehen häufig aus einer Vielzahl paralleler, einzelner Übertrag-Auswahl-Addierer (Carry- Select-Adder), wie sie im Stand der Technik bekannt sind. Jeder Einzeladdierer addiert die stellenwertgleichen Stellen der zu addierenden Operanden zu einer Einzel- oder Teilsumme auf. Da zum Zeitpunkt des Addierens der einzelnen Stellen, aufgrund des parallelen Addierens, noch nicht feststeht, welche der Stellen noch einen Übertrag aus einer vorangegangenen Stelle mitberücksichtigen muß, ermittelt jeder Einzeladdierer das Ergebnis der Teilsumme einer jeweiligen Stelle sowohl mit, als auch ohne Berücksichtigung eines Übertrags. Erst nach Abschluß dieser parallelen Einzeladditionen steht dann fest, welche der Stellen einen Übertrag zu berücksichtigen hat, und mit Hilfe des jeweiligen Übertrags wird nun das korrekte Ergebnis jeder einzelnen Stellenaddition, das heißt mit oder ohne Übertrag, ermittelt. In anderen Worten berechnet jeder Teiladdierer sowohl eine Teilsumme mit einem Übertrag als auch eine Teilsumme ohne einen Übertrag. Der innerhalb der Gesamtaddition korrekte Wert der Teilsumme wird anschließend mit Hilfe des ermittelten Übertrags "ausgewählt" - daher auch der Name Übertrag-Auswahl- Addierer.
In Gleitkomma-Prozessoren (Floating-Point-Processor) werden 2 Gleitkomma-Operanden miteinander addiert. Für die Addition der Gleitkomma-Zahlen werden zunächst die Exponenten der beiden Operanden gegeneinander ausgerichtet (Alignment), so daß anschließend beide Operanden den gleichen Exponenten aufweisen.
Beispiel
Operand A = +0,11864 × 105
Operand B = -0,96591 × 104
ausgerichtet:
Operand A = +0,11864 × 105
Operand B = -0,09659 × 105
Anschließend werden zunächst die Mantissen der beiden ausgerichteten Operanden miteinander addiert.
Dabei kann eine nicht vorherbestimmbare Anzahl von führenden Nullstellen (zero digits) entstehen. Das Ergebnis ist zu normalisieren, das heißt, die führenden Nullstellen (leading zero digits) sind zu zählen, die Mantisse entsprechend der führenden Nullstellen nach links zu verschieben, und vom Exponenten muss die Anzahl der führenden Nullstellen abgezogen werden.
Bei den im Stand der Technik bekannten Addierwerken wird zunächst die Summe der gegeneinander ausgerichteten Mantissen der Operanden gebildet. Von dieser Summe werden in einem anschließenden Schritt die Anzahl der führenden Nullstellen ermittelt und die Summe entsprechend dieser führenden Nullstellen normalisiert. Dieses Zählen der führenden Nullstellen ist jedoch im Ablauf eines Zyklus vielfach noch zeitkritischer als das Ergebnis der Mantissen-Addition und verlangsamt so den gesamten Addiervorgang.
Fig. 1 zeigt ein Addierwerk 5 gemäß dem Stand der Technik. Die beiden Operanden A und B werden in dem Addierwerk 5 zu einer Summe S = A + B addiert und die Summe S wird von dem Addierwerk 5 an dessen Ausgang gestellt. Ein Zähler 10 ermittelt aus der Summe S die Anzahl der führenden Nullstellen und gibt diese als einen Wert ZDC (Zero Digit Count) aus. Die Mantisse der Summe S wird entsprechend der Anzahl der führenden Nullstellen ZDC nach links verschoben, und vom Exponenten der Summe wird die Anzahl der führenden Nullstellen ZDC abgezogen.
Aus US 5,204,825 ist ein Verfahren und eine Vorrichtung zur Vorhersage von führenden Nullstellen in Gleitkomma- Addierwerken bekannt. Danach findet eine Architektur Verwendung, die die Vorhersage führender Nullstellen durch ein parallel zur eigentlichen Berechnung ablaufendes Verfahren ermöglicht, wobei zur Ermittlung eines korrekten Ergebnisses ein Übertragssignal von der Hauptrecheneinheit verwendet wird.
Aus US 53 17 527 ist ein System zur Vorhersage der Bitposition einer führenden Nullstelle bekannt, das parallel zum Addierwerk arbeitet, und wobei die führende Stelle durch eine Art Mustervergleich ermittelt wird. Die genaue Anzahl der führenden Nullstellen ist zu der Zeit, da das Addierwerk die Summe berechnet, nicht bekannt.
Zusammenfassung der Erfindung
Es ist Aufgabe der Erfindung ein Addierwerk zu schaffen, das ein schnelleres Ermitteln einer normalisierten Summe ermöglicht.
Es ist weiterhin Aufgabe der Erfindung ein Addierwerk zu schaffen, das ein schnelleres Ermitteln der Anzahl der führenden Nullstellen einer Summe ermöglicht. Zwei Gleitkommazahlen können dadurch schneller addiert werden.
Die Aufgaben der Erfindung werden durch Vorrichtungen und Verfahren, so wie in den unabhängigen Ansprüchen beschrieben, gelöst.
Die Erfindung ermöglicht eine Ermittlung der führenden Nullstellen der Summe einer Addition in etwa zeitgleich zur Ermittlung der Summe. Dies geschieht durch ein paralleles Ermitteln von Teilsummen der einzelnen Stellen unter Berücksichtigung möglicher Überträge und, ausgehend von diesen, einem Vorermittlen potentieller Nullstellen bzw. auch potentieller führender Nullstellen, die dann schließlich, bei Feststehen des korrekten Wertes einer Teilsumme, ausgewählt und eventuell durch einen nachfolgenden Schritt, mit dem Ergebnis der führenden Nullstellen der Gesamtsumme, ausgewertet werden.
Die erfindungsgemäße Ermittlung der führenden Nullstellen in einem Addierwerk läßt sich entweder streng parallel oder parallel mit einer hierarchischen, jeweils selbstähnlichen Struktur einer erfindungsgemäßen Vorrichtung, durchführen. Dies ermöglicht ein optimal paralleles und entsprechend zeitgünstiges Ermitteln der normalisierten Summe.
Die erfindungsgemäße Ermittlung der führenden Nullstellen findet vorzugsweise Verwendung in Addierwerken, Gleitkomma- Recheneinheiten und/oder in Datenverarbeitungsanlagen.
Weitere, vorteilhafte Ausführungen der Erfindung finden sich in den Unteransprüchen.
Beschreibung der Zeichnungen
Zur näheren Erläuterung der Erfindung sind im folgenden Ausführungsbeispiele mit Bezugnahme auf die Zeichnungen beschrieben. Funktionsgleiche Elemente sollen gleiche Bezugszeichen tragen.
Fig. 1 zeigt ein Addierwerk gemäß dem Stand der Technik,
Fig. 2 zeigt ein erfindungsgemäßes Addierwerk,
Fig. 3 zeigt ein Addierwerk gemäß Fig. 2, das neben den beiden Operanden A und B noch einen Übertrag C zum Eingang hat,
Fig. 4 zeigt den Aufbau eines Addierwerkes mit einer großen Stellenbreite und einer Aufteilung in eine Vielzahl paralleler Teil-Addierwerke,
Fig. 5 zeigt für das Beispiel des 16 + 16 Addierwerkes ein binäres Addierwerk,
Fig. 6 zeigt für das Beispiel eines 64 + 64 Addierwerkes ein binäres Addierwerk,
Fig. 7 zeigt ein Teiladdierblock aus Fig. 6,
Fig. 8 zeigt ein Digit Preselect Block aus Fig. 6.
Allgemeine Beschreibung der Erfindung
Fig. 2 zeigt ein erfindungsgemäßes Addierwerk 20, worin bereits eine Ermittlung der führenden Nullstellen im wesentlichen parallel zur Ermittlung der Gesamtsumme stattfindet. Das Addierwerk 20 besteht aus einer Vielzahl zueinander paralleler Addierer 30A, 30B, 30C, usw. die jeweils Teiloperanden A0, A1, A2, usw. und B0, B1, B2, usw. der zu addierenden Operanden A und B miteinander zu Teilsummen S0, S1 und S2 addieren. Jeder der Addierer 30A, 30B und 30C addiert jeweils stellenwertgleich eine der Stellen der Operanden A und B, wobei jede Stelle aus einer Vielzahl von Bits bzw. Leitungen bestehen kann. Im Falle einer hexadezimalen Addition würde jede einzelne Hex-Stelle aus 4 Bit-Leitungen bestehen.
Der Addierer 30A erhält als Eingang die niederwertigste Stelle A0 und B0 der Operanden A und B, während die Addierer 30B, 30C, usw. die höherwertigeren Stellen der Operanden A und B zum Eingang haben. Wie bereits oben beschrieben, kann bei jeder Stelle ein Übertrag auftreten, der für die Addition der jeweilig höherwertigeren Stellen mit zu berücksichtigen ist. Um die Parallelität der Einzeladdition zu gewährleisten, ermittelt jeder der höherwertigen Addierer 30B, 30C, usw., neben der Summe S1, S2, usw. der jeweiligen Stellenaddition, auch eine Summe (S1 + 1), (S2 + 1), usw. zur Berücksichtigung eines möglichen Übertrags aus einer vorangegangenen Stelle. Der niederwertigste Addierer 30A stellt an seinen Ausgang die Summe S0, während die höherwertigen Addierer 30B, 30C, usw. sowohl die Summe S1, S2, usw. als auch die Summe (S1 + 1), (S2 + 1), usw. als Ausgang haben.
Jede der ermittelten Teilsummen S0, S1, S2, usw., sowie die einen möglichen Übertrag berücksichtigenden Teilsummen (S1 + 1), (S2 + 1), usw., werden einer nachstehenden, hier nicht weiter ausgeführten, im Stand der Technik ausreichend bekannten, Stufe 35 zur Ermittlung der Gesamtsumme S zugeführt. Parallel dazu werden diese Teilsummen, sowohl mit als auch ohne Berücksichtigung eines Übertrags, jeweils einem ODER-Glied mit negierten Ausgang (NOR) 40 zugeführt. Jedes dieser NOR-Glieder 40 liefert an seinem Ausgang dann eine logische '1', wenn die jeweilige anliegende Summe S0, S1, S2, usw., bzw. die Summe mit Berücksichtigung eines Übertrages (S1 + 1), (S2 + 1), usw. gleich null ist. Wird beispielsweise eine hexadezimale Kodierung der Stellen gewählt, besteht jede der Summen aus 4 Bitleitungen, die jeweils einer der NOR-Glieder 40 als Eingang dienen.
Die Ausgänge der NOR-Glieder 40 für jeweils einen der höherwertigen Addierer 30B, 30C usw. werden jeweils einem Selektor 50B, 50C, usw. zugeführt. So werden die Ausgänge der NOR-Glieder 40B0 und 40B1 des Addierers 30B dem Selektor 50B, die Ausgänge der NOR-Glieder 40C0 und 40C1 des Addierers 30C dem Selektor 50C, usw. zugeführt. Jeder der Selektoren 50B, 50C, usw. dient zur Auswahl, ob jeweils die Summe S1, S2, usw. oder die Summe S1 + 1, S2 + 1, usw. zu verwenden ist. Gesteuert werden diese Selektoren 50 durch einen Selektierblock 60, wie er bei Übertrag-Auswahl- Addieren zur Auswahl der jeweiligen korrekten Teilsumme üblich ist.
Der Ausgang des NOR-Gliedes 40A0 der niederwertigsten Stelle sowie die Ausgänge der Selektoren 50 der höherwertigeren Stellen, dienen als Eingänge für eine Zähldekodierlogik 70. Die Zähldekodierlogik 70 ermittelt hieraus die Anzahl der führenden Nullstellen ZDC des Gesamtergebnisses S der Addition der Operanden A und B und stellt diese an ihren Ausgang. Dies geschieht vorzugsweise durch eine Umsetzung von Bool'schen Gleichungen, die sich aus einer Wahrheitstabelle ergeben, die die verschiedenen Kombinationsmöglichkeiten der Eingangssignale - hier die Informationen, ob eine einzelne Stelle eine Nullstelle ist - und deren Umsetzung in gewünschte Ausgangssignale - hier die Anzahl der führenden Nullstellen ZDC - repräsentieren. Diese Bool'schen Gleichungen werden in entsprechende Schaltungs- (Hardware) Verknüpfungen umgesetzt (siehe dazu untenstehende Beispiele).
Der ZDC wird von der Zähldekodierlogik 70 vorzugsweise mit Hilfe einer Dekodier-Tabelle kodiert ausgegeben. Der ZDC stellt dann beispielsweise den binärkodierten Wert der Anzahl der führenden Nullen der Summe S dar. Bei einer Summe S von 4 Stellen ergibt das 2 binäre Bits, bei 8 Stellen 3 binäre Bits usw.
Mit dem erfindungsgemäßen Addierwerk entsprechend Fig. 2, werden die Anzahl der führenden Nullstellen also nicht aus der Gesamt-Summe S der Operanden A und B ermittelt, sondern bereits schon aus den Teilsummen S0, S1, S2, usw. der jeweiligen stellenwertgleichen Teiladdition der einzelnen Stellen. Dies ermöglicht erfindungsgemäß eine Ermittlung der Anzahl der führenden Nullen ZDC in etwa gleichzeitig mit der Ermittlung der Gesamtsumme S, abhängig insbesondere von der Addierwerkbreite und von der Stellenwertigkeit des jeweiligen ZDC Bits. Die Gesamtsumme S kann danach unmittelbar normalisiert werden, d. h. die führenden Nullstellen können entfernt werden.
Diese Eigenschaft der in etwa gleichzeitigen Ermittlung der Anzahl der führenden Nullen ZDC mit der Ermittlung der Gesamtsumme S, ist z. B. bei einer Anwendung in schnellen Gleitkomma-Recheneinheiten von Vorteil, worin die Addition vorzugsweise innerhalb eines Taktes geschehen soll. In der Restzeit des Taktes kann die Anzahl der führenden Nullstellen ZDC verwendet werden, um die Normalisierung der Gleitkomma-Rechenoperation durchzuführen. Dazu muß der ZDC vom Exponenten des Summe S subtrahiert werden, bzw die Summe S um den ZDC Betrag nach links geschoben werden. Auch wenn die Normalisierung ganz oder teilweise im nächsten Takt ausgeführt wird (abhängig von einer vorliegenden Pipelinestruktur), ist es von Vorteil, wenn der ZDC möglichst frühzeitig bekannt ist. In beiden Fällen ist eine Verkürzung der Taktzeit möglich.
Vielfach muß bei einem Addierwerk gemäß Fig. 2 noch ein Übertrag C (Carry), z. B. aus einem parallelen Addierwerk mit niederwertigeren Stellen, mitberücksichtigt werden. Fig. 3 zeigt ein Addierwerk gemäß Fig. 2, das neben den beiden Operanden A und B noch einen Übertrag C zum Eingang hat. Das Addierwerk 20 gemäß Fig. 3 beinhaltet, neben den entsprechenden Komponenten des Addierwerkes 20 gemäß Fig. 2, für den Addierer 30A der niederwertigsten Stelle einen weiteren Ausgang der eine Summe (S0 + 1) liefert, sowie eine damit verbundene weitere NOR-Stufe 40A1 und einen weiteren, mit den beiden NOR-Gliedern 40A0 und 40A1 verbundenen Selektor 50A. Der zu berücksichtigende Übertrag C wird dem Selektionsblock 60 als Eingang zugeführt. Wie aus Fig. 3 zu entnehmen ist, ist bei dieser Ausführungsform der Aufbau der Addierer 30, NOR-Glieder 40 und Selektoren 50 für jede Stelle entsprechend aufgebaut.
Es ist zu verstehen, daß die in Fig. 2 und 3 gewählte Anordnung der NOR-Glieder 40 und der Selektoren 50 in dieser Reihenfolge, zuerst das NOR-Glied 40 und dann der Selektor 50, nicht zwingend ist, jedoch in Bezug auf das zeitliche Verhalten der Signale die günstigsten Eigenschaften aufweist. Da die Auswahlsignale des Selektierblocks 60 erst mit einer gewissen Zeitverzögerung erzeugt werden können, die Summen S0, S0 + 1, S1, S1 + 1, usw. jedoch bereits vielfach schon vor diesen Auswahlsignalen vorliegen, läßt sich die erforderliche Erkennung einer jeweiligen Nullstelle durch die jeweiligen NOR-Glieder 40 bevorzugt, wie in Fig. 2 und 3, bereits vor der Auswahl durch die Selektoren 50 durchführen.
Weiterhin ist zu verstehen, daß die Erfindung nicht auf die Verwendung von NOR-Gliedern 40 beschränkt ist. Statt dessen lassen sich beliebige Nullstellenerkennungsmittel 40 zur Erkennung, ob die jeweilig anliegende Teilsumme an dem betrachteten Ausgang eine Nullstelle repräsentiert, verwenden. So könnte, beispielsweise bei einer umgekehrten Logik, ein UND Glied mit Inverterierung (NAND) verwendet werden.
Bei Addierwerken mit einer großen Stellenbreite, z. B. einem Addierwerk mit 16 Stellen, wobei jede Stelle beispielweise einen Hexadezimal-Wert mit je 4 Bits darstellt, also insgesamt einem 64 Bit Addierwerk, ist es vielfach nicht sinnvoll, nur ein Addierwerk 20, z. B. gemäß Fig. 2 oder 3, mit 16 Addierern zu verwenden. Dies ergibt sich daraus, daß ein endgültiger Übertrag (Carry) zu einer Stelle erst relativ spät im zeitlichen Ablauf feststeht. Um die Zähldekodierlogik nach Erhalt der endgültigen Überträge möglich schnell ausführen zu können (d. h. mit möglich wenigen logischen Stufen), ist die Zeit vorher zu nutzen und eine Vordekodierung durchzuführen.
Günstiger, bei Addierwerken mit einer großen Stellenbreite z. B. ab 8 Stellen, ist eine vorzugsweise hierarchische Aufteilung in eine Vielzahl paralleler Teil-Addierwerke, mit jeweiliger Ermittlung der führenden Nullstellen in einem dieser Teil-Addierwerke, und einer nachgeschalteten Gesamt-Zähldekodierlogik zur endgültigen Ermittlung der führenden Nullstellen ZDC der gesamten Summe. Die Funktion des Blockes 70 ist dann in eine Vordekodierung und eine Enddekodierung aufgeteilt. Dadurch kann die Enddekodierung schneller erfolgen, während die Vordekodierung in der Zeit abläuft, die ohnehin für die Ermittlung der Überträge (Carry In Signale) benötigt wird. Die Vordekodierung benötigt also keine zusätzliche Zeit. Diese Vordekodierung ist auf die jeweiligen Teiladdierblöcke verteilt und muß dort doppelt durchgeführt werden. Die gültigen Vordekodierungssignale werden dann durch den Übertrag (Carry In) für den jeweiligen Teiladdierblock ausgewählt.
Fig. 4 zeigt den Aufbau eines Addierwerkes 120 mit einer großen Stellenbreite und einer Aufteilung in eine Vielzahl paralleler Teil-Addierwerke. Als Eingänge weist das Addierwerk 120 neben den Operanden A und B einen optionalen Übertragseingang C und als Ausgänge die Summe S = A + B und die Anzahl der führenden Nullstellen ZDC auf. Die Operanden A und B sind in eine Vielzahl von Teiloperanden A(0) und B(0), A(1) und B(1), A(2) und B(2), usw. aufgeteilt, die jeweils eine Vielzahl von einzelnen Stellen repräsentieren.
Das Addierwerk 120 weist eine Vielzahl paralleler Teil- Addierwerke 20 auf, wobei jeweils 2 Teil-Addierwerke 20 stellengleiche Teiloperanden A(0) und B(0), A(1) und B(1), A(2) und B(2), usw. zum Eingang haben. Weiterhin erhält ein Teil-Addierwerk 20 jeder der stellengleichen Teil- Addierwerk-Paare als Eingang ein Übertragssignal Ü, während das andere Teil-Addierwerk 20 kein Übertragssignal erhält. Bei Erhalt des optionalen Übertrags C sind alle Teil- Addierwerke 20 gemäß Fig. 3 aufgebaut.
Jedes der Teil-Addierwerke 20 mit einem Übertragssignal Ü = "0" ermittelt aus seinem jeweiligen Eingang A(0) und B(0), A(1) und B(1), A(2) und B(2), usw. entsprechend dem im vorangehenden geschilderten, eine Teilsumme SX(0), SX(1), SX(2), usw., sowie die Anzahl der führenden Nullstellen ZDX(0), ZDX(1), ZDX(2), usw. der jeweiligen Teilsummen SX(0), SX(1), SX(2), usw. Analog ermittelt jedes der Teil- Addierwerke 20 mit Übertragssignal Ü = "1"' aus seinem jeweiligen Eingang A(0) und B(0), A(1) und B(1), A(2) und B(2), usw. und dem Übertragssignal Ü, entsprechend dem im vorangehenden geschilderten, eine Teilsumme SY(0), SY(1), SY(2), usw., sowie die Anzahl der führenden Nullstellen ZDY(0), ZDY(1), ZDY(2), usw. der jeweiligen Teilsummen SY(0), SY(1), SY(2), usw.
Die Teilsummen SX(0), SX(1), SX(2), SY(0), SY(1), SY(2), usw. werden einer nachstehenden, hier nicht weiter ausgeführten, im Stand der Technik ausreichend bekannten, Stufe 135 zur Ermittlung der Gesamtsumme S zugeführt. Parallel dazu werden die Anzahl der führenden Nullstellen, sowohl mit als auch ohne Berücksichtigung eines Übertragssignals, für jeweils einen der Teil-Addierer-Paare jeweils einem Selektor 150 zugeführt. Jeder der Selektoren 150 dient zur Auswahl, ob jeweils die Anzahl der führenden Nullstellen ZDX(0), ZDX(1), ZDX(2), usw. der jeweiligen Teilsummen SX(0), SX(1), SX(2), usw. oder die Anzahl der führenden Nullstellen ZDY(0), ZDY(1), ZDY(2), usw. der jeweiligen Teilsummen SY(0), SY(1), SY(2), usw. zu verwenden ist. Gesteuert werden diese Selektoren 150 durch einen Selektierblock 160, wie er bei Übertrag-Auswahl- Addieren üblich ist.
Die jeweils ausgewählten führenden Nullstellen werden von den Selektoren 150 einer Gesamt-Zähldekodierlogik 170 zugeführt. Die Gesamt-Zähldekodierlogik 110 ermittelt hieraus die Anzahl der führenden Nullstellen ZDC des Gesamtergebnisses S der Addition der Operanden A und B und stellt diese Anzahl der führenden Nullstellen ZDC an ihren Ausgang. Dies geschieht analog dem für die Zähldekodierlogik 70 geschilderten.
Ohne optionalen Übertrag C reicht für das Teil-Addierwerk mit den niederwertigsten Stellen auch ein Aufbau gemäß Fig. 2, auch ist dann kein Teil-Addierwerk-Paar, sondern nur ein einzelnes Teil-Addierwerk 20 für die niederwertigste Stelle notwendig. Auch entfällt dann der entsprechende Selektor 150.
Der in Fig. 4 gezeigte hierarchische Aufbau eines Addierwerkes läßt sich nun beliebig weiter, rekursiv gestalten. In einer nächsten, höheren Hierarchiestufe würden die Addierwerke 20 aus Fig. 4 durch Addierwerke 120 ersetzt werden. Durch wiederholte Komposition niedriger integrierter Elemente zur Erzeugung höher integrierter Schaltungen, beispielsweise Verknüpfung von Addierwerken 20 zu höherintegrierten Addierwerken 120 usw., lassen sich durch Fortführung dieses Selbstähnlichkeitsprozesses hochkomplexe Schaltwerke realisieren, die eine zeitgünstige Ermittlung der führenden Nullstellen der Gesamtsumme in etwa parallel zur Ermittlung dieser Summe ermöglichen. Da bleibt der prinzipielle Aufbau, so wie in Fig. 4 gezeigt, gleich.
So wird beispielsweise bei einem binären Addierwerk mit 64 Stellen, im Vergleich zu einem Addierwerk mit 16 Stellen, eine weitere Hierarchiestufe benötigt. Dies läßt sich weiter fortsetzen, so daß bei einer Vervierfachung der Addierwerksbreite jeweils eine weitere Hierarchiestufe einzuführen ist.
Es ist zu verstehen, daß bei einem hierarchischen, selbstähnlichen Aufbau eines Addierwerkes sich Vereinfachungs- und Zusammenlegungsmöglichkeiten in der Implementierung der Schaltungen ergeben können. So können bei einer Realisierung die jeweiligen Teil-Addierwerk-Paare zusammengefaßt werden, da Teile der beiden Addierwerke gemeinsam benutzt werden können. Dies wird auch aus den nachfolgenden Beispielen ersichtlich.
Detaillierte Beschreibung der Erfindung
Die folgenden Ausführungsbeispiele sollen die Erfindung durch konkrete Ausgestaltung erläutern, ohne daß die Erfindung auf diese begrenzt ist. Bei der gewählten Bezeichnungsweise der Operanden und Werte sei die Bitbreite jeweils in Klammern angegeben, d. h. der Operand A(0. .63) hat hier im Beispiel eine Bitbreite von 0 bis 63, also 64 Bit. In den Ausführungsbeispielen stellen, im Gegensatz zur Darstellung wie im vorangegangenen, A(0) das höchstwertigste und A(63) das niederwertigste Bit dar.
Im Beispiel wird zuerst ein erfindungsgemäßes 16 + 16 Bit Addierwerk und anschließend ein Addierwerk mit 64 + 64 Bit gezeigt, jedoch läßt sich die Erfindung auch auf Addierwerke mit anderer Datenbreite (wie z. B. 32, 128, 256, usw.) anwenden.
Fig. 5 zeigt für das Beispiel des 16 + 16 Addierwerkes ein binäres Addierwerk mit den Eingangsoperanden A(0. .15) und B(0. .15). Der Ergebnis Operand SUM(0. .15) stellt die Summe aus der Operation A + B dar. Zusätzlich wird die Anzahl der führenden Nullstellen ZDC(0. .1) ermittelt. Eine Stelle (Digit) besteht aus 4 Bits und kann die hexadezimalen Werte {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} annehmen. Die Summe besteht aus 16 Bits oder 4 Stellen. Der ZDC sei binärkodiert, besteht aus 2 Bits, und kann die, den hexadezimalen Werten entsprechenden, Dezimalwerte 0 bis 4 annehmen. Es stellen in Fig. 5 dar:
A(0. .15) Operand A
B(0. .5) Operand B
CI Carry_In für Addierwerk als Ganzes
G Generate für einzelne Binärstellen
P Propagate für einzelne Binärstellen
GD Generate für Digit (4 bit)
PD Propagate für Digit (4 bit)
QD Generate or Propagate für Digit (4 bit)
SN Summe Normal ohne Carry In (A + B)
SP Summe Plus_1 mit Carry In (A + B + 1)
ZDN Zero Digit ohne Carry In (A + B)
ZDP Zero Digit mit Carry In (A + B + 1)
DS Digit Select für Digit
ZDC Zero Digit Count "Gezählte führende Nullen"
Tabelle 1 zeigt die Zuordnung der ZDC Bits abhängig von der Summe:
Als weiteren Eingang erhält das Addierwerk gemäß Fig. 5 ein Carry_In (CI) Signal. Wird dieses mit einer (logischen) "1" beschaltet, so erhält man die Summe A + B + 1. Ist CI = "0" erhält man die Summe A + B. Es können auch weitere Ausgänge verwendet werden, die hier nicht aufgeführt sind (z. B. Carry Out, Result Zero, usw.).
Das Addierwerk nach Fig. 5 besteht aus 4 Teiladdierblöcken, die jeweils 4 + 4 Bit addieren und auch vorkodierte Signale ZDN0, ZDN1, ZDN2, ZDN3, ZDP0, ZDP1, ZDP2, ZDP3 zur Ermittlung der führenden Nullstellen ZDC erzeugen.
Aus diesen vorkodierten ZDC Signalen werden durch 2-stufige Logik die Ausgangssignale ZDC(0) und ZDC(1) erzeugt. Die Bool'schen Gleichungen dafür lauten:
ZDC(0) = ZD0 . ZD1
ZDC(1) = ZD0 .ˆZD2 + ZD0 . ZD2
wobei:
. eine UND-Verknüpfung,
+ eine ODER-Verknüpfung und
ˆ eine NICHT-Verknüpfung (Invertierung)
darstellt.
Die Zähldekodierlogik des 16 Bit Addierwerkes in Fig. 5 besteht in diesem Fall aus einer AND-Verknüpfung für ZDC(0) und einer zwei-stufigen Logik für ZDC(1) wie in Fig. 5 gezeigt.
Fig. 6 zeigt für das Beispiel eines 64 + 64 Addierwerkes ein binäres Addierwerk mit den Eingangsoperanden A(0. .63) und B(0. .63). Der Ergebnis Operand SUM(0. .63) stellt die Summe aus der Operation A + B dar. Zusätzlich wird die Anzahl der führenden Nullstellen ZDC(0. .3) ermittelt. Eine Stelle (Digit) besteht aus 4 Bits und kann die hexadezimalen Werte {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} annehmen. Die Summe besteht aus 64 Bits oder 16 Stellen. Der ZDC sei binärkodiert, besteht aus 4 Bits, und kann die, den hexadezimalen Werten entsprechenden, Dezimalwerte 0 bis 15 annehmen. Es zeigen in Fig. 6:
A(0. .63) Operand A
B(0. .63) Operand B
CI Carry_In für Addierwerk als Ganzes
CI_B Carry_In Block für 16 bit Block (4 digit)
GB Generate Block für 16 bit Block (4 digit)
PB Propagate Block für 16 bit Block (4 digit)
ZDJ Precounted Zero Digit 4 Zero Digits in 16 bit Block
ZDK Precounted Zero Digit 1 oder 3 Zero Digits in Block
ZDL Precounted Zero Digit 2 oder 3 Zero Digits in Block
SUM(0. .63) Summe
Tabelle 2 zeigt die Zuordnung der ZDC Bits abhängig von der Summe:
Als weiteren Eingang erhält das Addierwerk gemäß Fig. 6 ein Carry_In (CI) Signal. Wird dieses mit einer (logischen) "1" beschaltet, so erhält man die Summe A + B + 1. Ist CI = "0"' erhält man die Summe A + B. Es können auch weitere Ausgänge verwendet werden, die hier nicht aufgeführt sind (z. B. Carry Out, Result Zero, usw.).
Das Addierwerk nach Fig. 6 besteht aus 4 Teiladdierblöcken, die jeweils 16 + 16 Bit addieren und auch vorkodierte Signale ZDJ0, ZDJ1, ZDJ2, ZDJ3, ZDK0, ZDK1, ZDK2, ZDK3, ZDL0, ZDL1, ZDL2, ZDL3 zur Ermittlung der führenden Nullstellen ZDC erzeugen. Ein solcher Teiladdierblock ist in Fig. 7 gezeigt.
Aus diesen vorkodierten ZDC Signalen werden durch 2-stufige Logik die Ausgangssignale ZDC(0), ZDC(1), ZDC(2) und ZDC(3) erzeugt. Die Bool'schen Gleichungen dafür lauten:
ZDC(0) = ZDJ0 . ZDJ1
ZDC(1) = ZDJ0 .ˆZDJ1 + ZDJ0 . ZDJ2
ZDC(2) = ZDK0
+ ZDJ0 . ZDK1
+ ZDJ0 . ZDJ1 . ZDK2
+ ZDJ0 . ZDJ1 . ZDJ2 . ZDK3
ZDC(3) = ZDL0
+ ZDJ0 . ZDL1
+ ZDJ0 . ZDJ1 . ZDL2
+ ZDJ0 . ZDJ1 . ZDJ2 . ZDL3
Die Teiladdierblöcke enthalten auch Generate und Propagate Signal Ausgänge GB0, GB1, GB2, GB3, PB0, PB1, PB2, PB3, wie sie bei Verwendung von Carry Select Addierwerken üblich sind. Diese Generate und Propagate Signal werden im Block Prop-Gen-3.Stufe verknüpft und daraus die Carry In Signale CI_B0, CI_B1, CI_B2 und CI_B3 für den jeweiligen Teiladdierblock erzeugt.
Das Carry In Signal nach Teiladdierblock 0 ist identisch zum Carry In des Gesamtaddierwerkes CI. Die Bool'sche Gleichung für die Carry In Signale der jeweiligen Teiladdierblöcke lauten:
CI_B0 := GB1
+ PB1 . GB2
+ PB1 . PB2 . GB3
+ PB1 . PB2 . PB3 . CI
CI_B1 := GB2
+ PB2 . GB3
+ PB2 . PB3 . CI
CI_B2 := GB3
+ PB3 . CI
CI_B3 := CI
Diese Verknüpfung ist in 2-stufiger Logik realisierbar.
Fig. 7 zeigt einen Teiladdierblock des erfindungsgemäßen Beispiels. Er hat die Operanden-Eingänge A(0. .15) und B(0. .15), sowie den Carry In Eingang CI_B, der vom Main-Prop-Generate Block erzeugt wird. Es zeigen in Fig. 7:
G Generate für einzelne Binärstellen
P Propagate für einzelne Binärstellen
GD Generate für Digit (4 bit)
PD Propagate für Digit (4 bit)
QD Generate or Propagate für Digit (4 bit)
SN Summe Normal ohne Carry In (A + B)
SP Summe Plus_1 mit Carry In (A + B + 1)
SX Summe im Fall CI_B = 0
SY Summe im Fall CI_B = 1
ZDN Zero Digit ohne Carry In (A + B)
ZDP Zero Digit mit Carry in (A + B + 1)
ZDX Zero Digit im Fall CI_B = 0
ZDY Zero Digit im Fall CI_B = 1
DS_X Digit Select für Digit im Fall CI_B = 0
DS_Y Digit Select für Digit im Fall CI_B = 1
ZDJ Precounted Zero Digit 4 Zero Digits in 16 bit Block
ZDK Precounted Zero Digit 1 oder 3 Zero Digits in Block
ZDL Precounted Zero Digit 2 oder 3 Zero Digits in Block
Als Ausgang (Output) liefert der Teiladdierblock die Signale GB und PB, die Summe SUM(0. .15), sowie Signale, die die vorberechnete Anzahl der führenden Nullstellen (Precounted Zero Digits Signale) darstellen: ZDJ, ZDK und ZDL. Da das Carry In Signal CI_B zeitlich noch nicht verfügbar ist, werden zunächst die potentiellen Signale DS_X0, DS_X1, DS_X2 (für den Fall CI_B = 0) und DS_Y0, DS_Y1, DS_Y2 (für den Fall CI_B = 1) erzeugt. Dies geschieht im Digit Preselect Block (Fig. 8).
Aus den potentiellen Summen SN (SUM normal: A + B) und SP (SUM plus_1: A + B + 1) werden zunächst die potentiellen Nullstellen ZDN0, ZDN1, ZDN2, ZDN3 (von Summe SN: A + B) und ZDP0, ZDP1, ZDP2, ZDP3 (von Summe SP: A + B + 1) erzeugt. Dafür genügt eine einfache NOR Verknüpfung mit 4 Eingängen, wie in Fig. 7 gezeigt. Mit den Auswahl (Select) Signalen DS_Xi und DS_Yi (i = 0, 1, 2) werden daraus die ZDC Signale ZDX0, ZDX1, ZDX2, ZDX3 (für den Fall CI_B = 0) und ZDY0, ZDY1, ZDY2, ZDY3 (für den Fall CI_B = 1) erzeugt.
Aus diesen Signalen wird mit der in Fig. 7 gezeigten Logik die Signale ZDXJ, ZDXK, ZDXL (für den Fall CI_B = 0) und ZDYJ, ZDYK, ZDYL (für den Fall CI_B = 1) erzeugt. Diese Signale sind "vorkodiert" um die spätere Erzeugung des ZDC möglichst einfach zu gestalten. Danach werden mittels des Carry In Signals CI_B die "Precounted Zero Digit" Signale ZDJ, ZDK und ZDL ausgewählt.
ZDJ ist aktiv (= '1'), wenn alle vier Stellen im 16 Bit Block null sind. ZDK ist aktiv, wenn das höchstwertige oder die drei höchstwertigen Stellen null sind. ZDL ist aktiv, wenn die zwei oder drei höchstwertigen Stellen null sind.
Die Blöcke PROP-GEN-1. STUFE, PROP-GEN-2. STUFE, ADD-DIGIT und VORAUSWAHL DER SUMME entsprechen dem Stand der Technik für ein Carry Select Addierwerk. Die Logik im Zusammenhang mit ZDC ist jedoch Teil der Erfindung.
ZDXJ = ZDX0 . ZDX1 . ZDX2 . ZDX3
ZDXK = ZDX0 . ZDX1 .ˆ(ZDX2 . ZDX3)
ZDXL = ZDX0 .ˆZDX1 + ZDX0 . ZDX2 .ˆZDX3
ZDYJ = ZDY0 . ZDY1 . ZDY2 . ZDY3
ZDYK = ZDY0 . ZDY1 .ˆ(ZDY2 . ZDY3)
ZDYL = ZDY0 .ˆZDY1 + ZDY0 . ZDY2 .ˆZDY3
Fig. 8 zeigt den Digit Preselect Block. Er hat die Generate Inputs GD1, GD2, GD3 und die Prop-Generate Inputs QD1, QD2, QD3, sowie die Digit Select Outputs DS_X0, DS_X1, DS_X2 (für den Fall CI_B = 0) und DS_Y0, DS_Y1, DS_Y2 (für den Fall CI_B = 1) für die drei höchstwertigen Stellen. Die Bool'schen Gleichungen lauten:
DS_X0 = GD1 + QD1 . GD2 + QD1 . QD2 . GD3
DS_X1 = GD2 + QD2 . GD3
DS_X2 = GD3
DS_Y0 = GD1 + QD1 . GD2 + QD1 . QD2 . QD3
DS_Y1 = GD2 + QD2 . QD3
DS_Y2 = QD3
Diese Verknüpfung ist in 2 Logikstufen realisierbar.

Claims (13)

1. Addierwerk zum Bilden einer Summe S aus miteinander zu addierenden Operanden (A, B), dadurch gekennzeichnet, dass es umfasst:
Mittel (30) zum parallelen Ermitteln von Teilsummen einzelner Stellen, die Mittel umfassen: eine Vielzahl zueinander paralleler Addierer (30A, 30B, 30C), die jeweils Teiloperanden (A0, A1, A2 und B0, B1, B2) der zu addierenden Operanden (A, B) miteinander zu Teilsummen (S0, S1, S2) addierten, wobei jeder der Addierer (30A, 30B, 30C) jeweils stellenwertgleich zumindest eine der Stellen der Operanden (A, B) addiert, und wobei der Addierer (30A) der niederwertigsten Stelle eine entsprechende Teilsumme (S0) und Addierer (30B, 30C) höherwertigerer Stellen sowohl eine entsprechende Teilsumme (S1, S2), als auch die entsprechende Teilsumme (S1 + 1, S2 + 1) mit Berücksichtigung eines jeweiligen Übertrags als Ausgang haben; und
Mittel (40) zum Vorermitteln potentieller Nullstellen ausgehend von den Teilsummen, die Mittel umfassen: eine Vielzahl von Nullstellenerkennungsmitteln (40A, 40B, 40C), jeweils gekoppelt mit je einem der Ausgänge der Vielzahl von Addierern (30A, 30B, 30C), zur Erkennung, ob die jeweils anliegende Teilsumme an dem betrachteten Ausgang eine Nullstelle repräsentiert; und,
Mittel (50) zum Auswählen der potentiellen Nullstellen bei Feststehen des korrekten Wertes einer jeweiligen Teilsumme, die Mittel umfassen: eine Vielzahl von Selektoren (50B, 50C), jeweils gekoppelt mit den Ausgängen der Nullstellenerkennungsmittel (40B0, 40B1, 40C0, 40C1), die mit jeweils einem der Addierer (30B, 30C) der höherwertigeren Stellen gekoppelt sind, zur Auswahl, ob jeweils die ermittelte Teilsumme mit (S1 + 1, S2 + 1) oder ohne (S1, S2) Berücksichtigung eines jeweiligen Übertrages als korrekte Teilsumme für die Ermittlung der Nullstellen zu verwenden ist; und
Mittel zur Auswertung der führenden Nullstellen der Summe aus den ausgewählten Nullstellen, die Mittel umfassen: eine Zähldekodierlogik (70), gekoppelt mit dem Ausgang des Nullstellenerkennungsmittels (40A) der niederwertigsten Stelle, sowie den Ausgängen der Selektoren (50) der höherwertigeren Stellen, zur Ermittlung der Anzahl der führenden Nullstellen (ZDC) der Summe (S); und
Selektiermittel (60) zur Steuerung der Vielzahl von Selektoren (50) zur Auswahl der jeweiligen korrekten Teilsumme.
2. Addierwerk nach Anspruch 1, worin der Addierer (30A) der niederwertigsten Stelle sowohl die entsprechende Teilsumme (S0) als auch die entsprechende Teilsumme (S0 + 1) mit Berücksichtigung eines möglichen Übertrags als Ausgang hat, dadurch gekennzeichnet, dass es weiterhin umfasst:
ein weiteres Nullstellenerkennungsmittel (40A1), gekoppelt mit dem Ausgang des Addierers (30A) der niederwertigsten Stelle mit Berücksichtigung eines möglichen Übertrags (C);
ein weiterer Selektor (50A), gekoppelt mit den Ausgängen der Nullstellenerkennungsmittel (40A0, 40A1), die mit dem Addierer (30A) der niederwertigsten Stelle gekoppelt sind;
wobei die Zähldekodierlogik (70) mit den Ausgängen aller Selektoren (50) gekoppelt ist.
3. Addierwerk zum Bilden einer Summe S aus miteinander zu addierenden Operanden (A, B), wobei die Operanden (A B) in eine Vielzahl von Teiloperanden (A(0), B(0), A(1), B(1), A(2), B(2)) aufgeteilt sind, die Stellen der Operanden (A, B) repräsentieren, dadurch gekennzeichnet, dass es umfasst:
ein Addierwerk (20) nach Anspruch 1, zur Addition der niederwertigsten Teiloperanden (A(0), B(0));
eine Vielzahl von Paaren von Addierwerken (20) nach Anspruch 2 zur Addition der höherwertigeren Teiloperanden (A(1), B(1), A(2), B(2)), wobei jeweils ein Addierwerk (20) jedes Paares als Eingabe einen Oberlauf erhält;
eine Vielzahl von Selektoren (150), jeweils gekoppelt mit den Ausgängen jeweils eines der Paare von Addierwerken (20), zur Auswahl, ob jeweils die Anzahl der führenden Nullstellen der Teiloperanden mit oder ohne Berücksichtigung eines jeweiligen Übertrages für die Ermittlung der führenden Nullstellen der Summe (S) zu verwenden ist;
einem Selektiermittel (160) zur Steuerung der Vielzahl von Selektoren (150);
eine Gesamt-Zähldekodierlogik (170), gekoppelt mit einem Ausgang des Addierwerkes (20) der niederwertigsten Teiloperanden (A(0), B(0)), der die Anzahl der führenden Nullstellen (ZDC(0)) der Teilsumme der niederwertigsten Teiloperanden (A(0), B(0)) repräsentiert, sowie mit Ausgängen der Vielzahl von Sektoren (150), die jeweils die Anzahl der führenden Nullstellen (ZDC(0)) der jeweiligen Teilsumme der höherwertigeren Teiloperanden (A(1), B(1), A(2), B(2)) repräsentieren, zur Ermittlung der Anzahl der führenden Nullstellen (ZDC) der Summe (S).
4. Addierwerk nach Anspruch 3, dadurch gekennzeichnet, dass die Vorrichtung zur Addition der niederwertigsten Teiloperanden (A(0), B(0)) ein Paar von Addierwerken (20) nach Anspruch 2 aufweist, wobei ein Addierwerk des Paares als Eingabe einen Überlauf erhält, und mit einem weiteren Selektor (150), der mit den Ausgängen des Paares von Addierwerken (20) gekoppelt ist.
5. Addierwerk mit einer Vielzahl paralleler Addierer (30) in einer hierarchischen Struktur, gekennzeichnet durch
einer Vielzahl von Addierwerken (20) nach Anspruch 1 oder 2 für die niedrigste der hierarchischen Stufen;
mindestens einem Addierwerk (120) nach Anspruch 2 oder 3 oder 4 für die nächst höhere der hierarchischen Stufen.
6. Addierwerk nach Anspruch 5, gekennzeichnet durch eine Vielzahl von Addierwerken höherer hierarchischer Stufen, wobei jedes Addierwerk mit einer höheren hierarchischen Stufe jeweils eine Vielzahl von Addierwerken der nächst niedrigeren hierarchischen Stufe aufweist.
7. Gleitkomma-Recheneinheit mit einem Addierwerk entsprechend einer der vorstehenden Ansprüche.
8. Datenverarbeitungsanlage mit einem Addierwerk entsprechend einer der vorstehenden Ansprüche und/oder einer Gleitkomma-Recheneinheit nach Anspruch 7.
9. Verfahren zur Ermittlung von Nullstellen einer Summe (S) aus miteinander zu addierenden Operanden (A, B), wobei die Summe in einem Addierwerk (20) mit einer Vielzahl zueinander paralleler Addierer (30A, 30B, 30C) gebildet wird, die jeweils Teiloperanden (A0, A1, A2 und B0, B1, B2) der zu addierender Operanden (A, B) miteinander zu Teilsummen (S0, S1, S2) addieren, wobei jeder der Addierer (30A, 30B, 30C) jeweils stellenwertgleich eine der Stellen der Operanden (A, B) addiert, und wobei der Addierer (30A) der niederwertigsten Stelle eine entsprechende Teilsumme (S0) und optional auch die entsprechende Teilsumme (S0 + 1) mit Berücksichtigung eines möglichen Übertrags und Addierer (30B, 30C) höherwertigerer Stellen sowohl eine entsprechende Teilsumme (S1, S2) als auch die entsprechende Teilsumme (S1 + 1, S2 + 1) mit Berücksichtigung eines jeweiligen Übertrags als Ausgang haben; das Verfahren weist die folgenden Schritte auf:
Erkennen, ob die jeweilig ermittelte Teilsumme an jedem der Ausgänge eine Nullstelle repräsentiert;
Auswählen, ob jeweils die ermittelte Teilsumme mit (S0 + 1, S1 + 1, S2 + 1) oder ohne (S0, S1, S2) Berücksichtigung eines entsprechenden Übertrages die korrekte Teilsumme für die Ermittlung der Nullstellen zu verwenden ist,
Ermitteln der Anzahl der führenden Nullstellen (ZDC) der Summe (S) aus den ausgewählten, erkannten Nullstellen.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die Schritte des Auswählens und Ermittelns jeweils Schritte des Vorauswählens und des Vorermittelns von potentiellen führenden Nullstellen, sowie Schritte des Endauswählens und des Endermittelns der führenden Nullstellen aufweisen.
11. Verwendung des Verfahrens nach einem der Ansprüchen 9 oder 10 in Addierwerken zur in etwa gleichzeitigen Ermittlung der führenden Nullstellen mit, der Ermittlung der Summe.
12. Verwendung des Verfahrens nach einem der vorstehenden Ansprüchen in Gleitkomma-Recheneinheiten.
13. Verwendung des Verfahrens nach einem der vorstehenden Ansprüchen in Datenverarbeitungsanlagen.
DE19614480A 1995-04-18 1996-04-12 Addierwerk mit einer Vorermittlung der führenden Nullstellen und Verfahren Expired - Fee Related DE19614480C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP1995/001455 WO1996033456A1 (de) 1995-04-18 1995-04-18 Übertrag-auswahl-addierer mit einer vorermittlung der führenden nullstellen

Publications (2)

Publication Number Publication Date
DE19614480A1 DE19614480A1 (de) 1996-11-14
DE19614480C2 true DE19614480C2 (de) 2000-09-07

Family

ID=8165996

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19614480A Expired - Fee Related DE19614480C2 (de) 1995-04-18 1996-04-12 Addierwerk mit einer Vorermittlung der führenden Nullstellen und Verfahren

Country Status (4)

Country Link
US (1) US5875123A (de)
JP (1) JPH09507940A (de)
DE (1) DE19614480C2 (de)
WO (1) WO1996033456A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047304A (en) * 1997-07-29 2000-04-04 Nortel Networks Corporation Method and apparatus for performing lane arithmetic to perform network processing
US6275839B1 (en) * 1998-09-22 2001-08-14 International Business Machines Corporation Method and system for immediate exponent normalization in a fast floating point adder
JP3540807B2 (ja) * 2002-08-27 2004-07-07 沖電気工業株式会社 加算器,乗算器,及び集積回路
US7840622B2 (en) * 2005-07-25 2010-11-23 International Business Machines Corporation Method and floating point unit to convert a hexadecimal floating point number to a binary floating point number

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204825A (en) * 1991-08-30 1993-04-20 Weitek Corporation Method and apparatus for exact leading zero prediction for a floating-point adder
US5317527A (en) * 1993-02-10 1994-05-31 Digital Equipment Corporation Leading one/zero bit detector for floating point operation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4926369A (en) * 1988-10-07 1990-05-15 International Business Machines Corporation Leading 0/1 anticipator (LZA)
JP2757671B2 (ja) * 1992-04-13 1998-05-25 日本電気株式会社 プライオリティエンコーダおよび浮動小数点加減算装置
US5493520A (en) * 1994-04-15 1996-02-20 International Business Machines Corporation Two state leading zero/one anticipator (LZA)
RU95107478A (ru) * 1995-05-18 1997-02-10 А.И. Грушин Способ устранения старших незначащих цифр при вычислениях с плавающей запятой и устройство для его осуществления

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204825A (en) * 1991-08-30 1993-04-20 Weitek Corporation Method and apparatus for exact leading zero prediction for a floating-point adder
US5317527A (en) * 1993-02-10 1994-05-31 Digital Equipment Corporation Leading one/zero bit detector for floating point operation

Also Published As

Publication number Publication date
JPH09507940A (ja) 1997-08-12
WO1996033456A1 (de) 1996-10-24
DE19614480A1 (de) 1996-11-14
US5875123A (en) 1999-02-23

Similar Documents

Publication Publication Date Title
DE69132129T2 (de) In der Grundzahl 4 arbeitende Übertragvorgriffsbäume
DE69131458T2 (de) Hardware-Anordnung zur Addition und Subtraktion von Gleitkommazahlen
EP0079471B1 (de) Schaltungsanordnung und Verfahren zur Bildung von Skalarprodukten und Summen von Gleitkommazahlen mit maximaler Genauigkeit
DE19581638C2 (de) Rechenvorrichtung mit einem Mikroprozessor, einem neuralen Netz-Koprozessor und einer DMA-Steuervorrichtung
DE68926330T2 (de) Antizipator für die Anzahl vorhergehender Nullen/Einsen
DE3143223C2 (de)
DE69132517T2 (de) Gleitkommaprozessor
DE112019002981T5 (de) Parallelberechnungsarchitektur mit rekonfigurierbarer kernebenen- und vektorebenen-parallelität
DE3346241A1 (de) Parallelverknuepfungsschaltung mit verkuerztem uebertragsdurchlauf
DE3700323C2 (de)
DE2623986A1 (de) Parallelrechenwerk
DE3926876A1 (de) Schaltung und verfahren zur vorhersage eines sticky-bits bei der gleitpunktmultiplikation
DE19614480C2 (de) Addierwerk mit einer Vorermittlung der führenden Nullstellen und Verfahren
DE2730918A1 (de) Anordnung zum multiplizieren von binaerzahlen
DE69026414T2 (de) Binäres Addiergerät
DE69230520T2 (de) Verfahren und Anordung zur Erzeugung von Summeinformation-/Rundungskontrolle-Signal
DE69225352T2 (de) Bitdatenverschiebungsbetragsdetektor
DE69225638T2 (de) Abrundungsschaltung in einem Gleitkommamultiplizierer
DE69327421T2 (de) Anordnung und Verfahren zum parallelisierten Grössenvergleich von digitalen Daten
DE3688434T2 (de) Schneller bcd/binaer-addierer.
EP0191452B1 (de) Verfahren und Schaltungsanordnung zur Überwachung der Summe bzw. Differenz zweier Grössen durch Vergleich mit einer dritten Grösse in binärer Darstellung
DE10206830B4 (de) Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden
DE4416143A1 (de) Verfahren zum Entwerfen von Pipeline - Stufen in einem Computer-unterstützten Entwurfssystem
EP0193711B1 (de) Schaltungsanordnung zur Funktionsüberwachung eines arithmetische Operationen ausführenden Rechenwerkes anhand von Paritätsbits
DE3855124T2 (de) Verfahren und Vorrichtung zur eindeutigen Schätzung von Bedingungen in einem Datenprozessor

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee