DE68926330T2 - Antizipator für die Anzahl vorhergehender Nullen/Einsen - Google Patents

Antizipator für die Anzahl vorhergehender Nullen/Einsen

Info

Publication number
DE68926330T2
DE68926330T2 DE68926330T DE68926330T DE68926330T2 DE 68926330 T2 DE68926330 T2 DE 68926330T2 DE 68926330 T DE68926330 T DE 68926330T DE 68926330 T DE68926330 T DE 68926330T DE 68926330 T2 DE68926330 T2 DE 68926330T2
Authority
DE
Germany
Prior art keywords
state
signals
signal
true
shift amount
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
DE68926330T
Other languages
English (en)
Other versions
DE68926330D1 (de
Inventor
Erdem Hokenek
Robert Kevin Montoye
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 DE68926330D1 publication Critical patent/DE68926330D1/de
Application granted granted Critical
Publication of DE68926330T2 publication Critical patent/DE68926330T2/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
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/012Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Description

    Hintergrund der Erfindung Gebiet der Erfindung
  • Die vorliegende Erfindung beinhaltet ein Verfahren und System zum Reduzieren der Zeit, die zur Beendigung der Operation Addition plus Normierung in einem Computer benötigt wird, und im besonderen zur Normierung des Ergebnisses einer Gleitpunktaddition in einem Computer, dadurch daß die Verarbeitung führender Nullen parallel zur Addition der Operanden erfolgt.
  • Stand der Technik
  • Bei elektronischen Berechnungen wird die Normierung als ein Mittel eingesetzt, um eine Zahl auf einen festen Dezimalpunkt zu beziehen. Die Normierung zieht alle führenden Vorzeichenbit heraus, so daß die zwei Bit, die unmittelbar an den Dezimalpunkt angrenzen, eine entgegengesetzte Polarität aufweisen. Tabelle I zeigt als Beispiel ein 32-Bit-Register, das verschiedene Gleitpunktzahlen enthält. Wenn das Normierungskommando angewandt wird, werden die Bits in den nicht normierten Zahlen in Richtung des höchstwertigen Bit (MSB) des Registers verschoben, bis die Bits auf beiden Seiten des Dezimalpunktes unterschiedliche Werte haben. Dann werden die Zahlen als normiert betrachtet, wie dies in der Tabelle gezeigt wird. Es wird ersichtlich, daß eine negative Zahl auf dieselbe Art und Weise normiert wird wie eine positive Zahl, und nach der dargestellten Operation ist es erforderlich, daß der Exponent der Gleitpunktzahlen entsprechend dem Verschiebebetrag nachgestellt wird. TABELLE I Dezimalpunkt Nicht normierte positive Zahl Nach der Normierung Nicht normierte negative Zahl
  • Früher wurden zum Normieren einer Gleitpunktaddition typischerweise die folgenden drei Schritte ausgeführt:
  • 1. Die zwei Terme oder Operanden A und B wurden addiert (ein Prozeß, der ein Minimum an log(N) Zeit beansprucht);
  • 2. das Ergebnis wurde nach führenden Nullen/Einsen durchsucht (abhängig vom Vorzeichen des Ergebnisses), das heißt, "führende Nullen" wurde erkannt (LZD); und
  • 3. das Ergebnis der Addition wurde um einen geeigneten Betrag verschoben.
  • Beispiele verschiedener Ausführungsformen für dem Stand der Technik entsprechende Systeme, die dieses LZD-Verfahren benutzen, findet man in dem U.S.-Patent Nr. 4 631 696 von Sakamoto, dem U.S.-Patent Nr. 4 644 490 von Kobayashi et al., dem US.- Patent Nr. 4 649 508 von Kanuma und dem Japanischen Patent Nr. 57-196 351 von Sakamoto. Während bei der Addition einige Vorhersagen in den Lehren dieser Dokumente zu finden sind, besonders in dem Japanischen Patent, worin die Erzeugung des Übertrags vorausgesagt wird, ist es generell noch notwendig, auf die Beendigung der Additionsfunktion zu warten, bevor die Normierungsoperation des Ergebnisses beginnen kann, so daß diese Aktivität dem Stand der Technik entsprechend vergleichsweise zeitaufwendig ist.
  • In der Patentveröffentlichung JP-A-59 22 6944 (Fujitsu), die ein System zur Addition und Subtraktion von Gleitpunktdaten betrifft, wird eine Logikeinheit für die Vorverarbeitung führender Nullen/Einsen (LZA) beschrieben, welche parallel zur Additionsoperation betrieben wird, wobei die Zeit für die Addition plus Normierung, die in elektronischen Datenverarbeitungsvorrichtungen benötigt wird, signifikant reduziert werden kann. Dieses dem Stand der Technik entsprechende System besteht im wesentlichen aus Mitteln zum Erkennen ungültiger Bitmuster, die als Stellen des Rechenergebnisses keine Bedeutung haben, wobei aus diesen ungültigen Bitmustern der für die Normierung erforderliche Verschiebebetrag abgeleitet wird.
  • Zusammenfassung der Erfindung
  • Die Aufgabe der vorliegenden Erfindung besteht darin, eine bezogen auf den Stand der Technik alternative und verbesserte Arbeitsweise der Vorverarbeitung führender Nullen/Einsen zu erreichen.
  • Die vorliegende Erfindung, wie Sie durch das Verfahren von Anspruch 1 oder die Vorrichtung von Anspruch 4 definiert ist, führt eine Vorverarbeitung führender Nullen/Einsen (LZA) parallel zur Additionsoperation aus, wobei die verbesserte Arbeitsweise unter Verwendung eines kombinatorischen Netzwerkes, welches, beginnend mit der Seite des höchstwertigen Bits (MSB) der Addition, geeignete Zustandssignale XOR (Weitergabe), UND (Erzeugen) und NOR (Null) verarbeitet, die sich aus dem Vergleich der Bits auf den entsprechenden Bitpositionen der Operanden (A und B) ergeben. Der Zustand des Anfangs-Zustandssignals wird erkannt und wenn der Zustand G oder Z ist, wird ein Signal erzeugt, das einen Verschiebebetrag anzeigt, wobei dieser Betrag für jedes nachfolgend erkannte Zustandssignal solange hochgezählt wird, solange der Zustand WAHR bleibt. Wenn der Zustand NICHT WAHR wird, wird die Erzeugung der Verschiebebetragssignale angehalten, und es wird ein Nachstellsignal erzeugt. Um den Exponenten der Summe der Gleitpunktaddition zu bestimmen, wird der Verschiebebetrag zu dem Nachstellsignal addiert. Letztere Summe wird zum Exponenten der Summe der Operanden, wodurch ein normiertes Ergebnis bereitgestellt wird. Das Nachstellsignal kann auf der Grundlage des ÜBERTRAGS auf der NICHT WAHR Bitposition ermittelt werden, und der Zustand auf der NICHT WAHR Position kann verwendet werden, um zu bestimmen, ob das Ergebnis der Addition positiv oder negativ ist.
  • Wenn der Anfangszustand P ist, wird das Anhalten des Verschiebebetragssignals abhängig gemacht vom Zustand des Zustandssignals auf der Bitposition, die der NICHT WAHR Bitposition folgt. Wenn der zweite Zustand (G oder Z) auf der NICHT WAHR Position von einem Zustandssignal des dritten Zustands gefolgt wird, dann wird die Erzeugung der Verschiebebetragssignale fortgesetzt, bis der dritte Zustand NICHT WAHR wird. Anderenfalls werden die Verschiebebetragssignale eine Bitposition nach der NICHT WAHR Position angehalten. In diesen Fällen kann das Nachstellsignal auf Grundlage des ÜBERTRAGS auf der Bitposition, auf der die Verschiebebetragssignale angehalten werden, bestimmt werden, und der Zustand auf dieser Position kann verwendet werden, um festzustellen, ob das Ergebnis der Addition positiv oder negativ ist.
  • Zusätzlich zu einem seriellen Netzwerk und dem in den Ansprüchen 8 beziehungsweise 9 definierten Verfahren kann ein implementiertes Netzwerk eine parallele Form haben, welche geeignete Zustands-Eingangssignale als Blöcke von n Bit Länge annimmt, umfassend die Zustandssignale Z&sub1; bis Zn, P&sub1; bis Pn und G&sub1; bis Gn, die aus dem Vergleich der Bits auf den entsprechenden Bitpositionen resultieren, und in Reaktion auf diese Zustandssignale Zwischen- Zustands-Ausgangssignale bildet, die Signale ZZ, PP, PZ, PG und GG umfassend. Durch ODER-Verknüpfung dieser Zwischen-Zustands- Ausgangssignale können Signale erzeugt werden, die einen Verschiebebetrag repräsentieren, und auf der Grundlage der Bitposition am Ende des Verschiebezählwertes kann ein Nachstellsignal erzeugt werden. Das Addieren des Verschiebebetrags und des Nachstellsignals kann dann verwendet werden, um den Exponenten der Summe der Gleitpunktaddition der Operanden (A und B) zu bestimmen. Modifikationen und Vereinfachungen des grundlegenden Implementierungsnetzwerkes sind für spezielle Fälle möglich.
  • Kurze Beschreibung der Zeichnungen
  • Figur 1 ist eine schematische Darstellung, die ein dem Stand der Technik entsprechendes System für eine Operation Addition plus Normierung zeigt, die die Addition zweier Operanden A und B in Form einer computergestützten Gleitpunktaddition beinhaltet.
  • Figur 2 ist eine schematische Darstellung, die das der vorliegenden Erfindung entsprechende System für eine Operation Addition plus Normierung zeigt, die die Addition zweier Operanden A und B in Form einer computergestützten Gleitpunktaddition beinhaltet.
  • Figur 3 zeigt ein endliches Zustandsdiagramm für eine mögliche Kombination von Operanden gemäß der vorliegenden Erfindung.
  • Figur 4 ist ein erweitertes endliches Zustandsdiagramm für eine andere mögliche Kombination von Operanden gemäß der vorliegenden Erfindung.
  • Figur 5 ist ein zusätzliches erweitertes endliches Zustandsdiagramm, das eine weitere mögliche Kombination von Operanden gemäß der vorliegenden Erfindung zeigt.
  • Figur 6 zeigt das allgemeine Zustandsdiagramm der vorliegenden Erfindung
  • Figur 7A zeigt einen Grundbaustein in Form einer Schaltung oder eines kombinatorischen Netzwerkes zur Ausführung des Verfahrens der Erfindung, und Figur 7B ist ein dazu passender Logikplan.
  • Figur 8A zeigt ein mögliches Vorverarbeitungsschema für die Weitergabe verschiedener Zustands-Ausgangssignale in einem iterativen kombinatorischen Netzwerk, und Figur 8B ist ein dazu passender Logikplan.
  • Figur 9 ist ein zu der in Gleichung (III.13) definierten Funktion passender Logikplan.
  • Figur 10 ist ein zu der in Gleichung (III.14) definierten Funktion passender Logikplan.
  • Figur 11 zeigt ein vereinfachtes kombinatorisches Netzwerk zum Ausführen des Verfahrens der Erfindung für den speziellen Fall, in dem die Registerlängen der Operanden nicht gleich sind, so daß ein Teil des längeren Operanden als Null interpretiert werden kann.
  • Die Figuren 12 Wnd 13 zeigen Implementierungen der Erfindung unter Verwendung spezieller Anordnungen der kombinatorischen Netzwerke der Figuren 7 und 11.
  • Figur 14 ist ein Flußdiagramm, das in allgemeiner Form die Arbeitsweise der Elemente der LZA-Komponente 40, die in Figur 2 gezeigt wird, verdeutlicht.
  • Detaillierte Beschreibung der Erfindung
  • Die vorliegende Erfindung ist auf die Durchführung einer Vorverarbeitung führender Nullen/Einsen (LZA) parallel zur Addition der zwei Operanden A und B in einer computergestützten Gleitpunktaddition gerichtet, so daß die Zeit für die Addition plus Normierung signifikant reduziert werden kann. Kurz gesagt wird entsprechend dem Stand der Technik, so wie er in FIG. 1 dargestellt ist, das Ergebnis einer Addition der Operanden A und B in einem Gleitpunktaddierer 10 sowohl einer Verschiebeeinrichtung 20 als auch einer Logikeinheit zur Erkennung führender Nullen (LZD) 30 zugeführt. Das Ausgangssignal der LZD-Einheit 30 wird, wenn führende Nullen erkannt werden, verwendet, um die Verschiebeeinrichtung 20 anzusteuern, die dann ein Ausgangssignal erzeugt, das eine Anzeige für das normierte Ergebnis ist. Im Gegensatz dazu empfängt eine Logikeinheit zur Vorverarbeitung führender Nullen (LZA) 40 gemäß der vorliegenden Erfindung die Operanden A und B parallel zu dem Addierer 10 und stellt ihr Ausgangssignal der Verschiebeeinrichtung 20 im wesentlichen gleichzeitig zum Empfang des Ergebnisses der Addition bereit, so daß das normierte Ergebnis schnelle# erzeugt wird, womit die Geschwindigkeit der Gleitpunktadditionsoperation erhöht wird.
  • Genauer gesagt wird, um ein Implementierungssystem zum Erreichen dieses Ziels bereitzustellen, ein iteratives kombinatorisches Netzwerk mit Operationen und Kombinationen von Komponenten offenbart, was aus der folgenden detaillierten Beschreibung verständlich werden wird.
  • Zu Beginn soll angenommen werden, daß eine der nicht normierten Gleitpunktzahlen, die in oben stehender Tabelle I dargestellt sind, das Ergebnis der Gleitpunktaddition (A+B) ist. Diese Addition hat für alle Werte von A und B im wesentlichen vier mögliche unterschiedliche Zustände:
  • 1. A > 0, B > 0, A+B > 0 (unnormierte positive Zahl)
  • 2. A < 0, B < 0, A+B < 0 (unnormierte negative Zahl)
  • 3. A > 0, B < 0, A+B > 0 (unnormierte positive Zahl)
  • 4. A > 0, B < 0, A+B < 0 (unnormierte negative Zahl)
  • Weil (A < 0, B > 0) Fall (3) oder (4) hervorbringt, kann er durch einfaches Vertauschen der Registernamen A und B behandelt werden.
  • Jetzt ist es möglich drei Hilfsgleichungen zu formulieren, welche die Bit-zu-Bit-Beziehungen der zwei Operanden A und B beschreiben. Diese logischen Ausdrücke sind:
  • Zi = NOR (ai, bi) (II.1)
  • Pi = XOR (ai, bi) (II.2)
  • Gi = UND (ai, bi) (II.3)
  • Es wird ersichtlich, daß die oben definierten logischen Funktionen denen sehr ähnlich sind, die in einem Parallelübertragsaddierer (CLA) verwendet werden, wie er in Universalrechnern wie beispielsweise einem IBM 370 oder dergleichen zu finden ist. Tatsächlich können die Signale P, G und Z in solchen Computern ohne Verwendung zusätzlicher Schaltungen erzeugt werden, weil diese schon für die CLA-Funktion benötigt werden, so daß die Erfindung auf solchen Computern einfach realisiert werden kann. Dementsprechend sind die für die Erfindung benutzten Eingangssignale diese Signale P, G und Z, von denen eines auf jeder Bitposition WAHR (1) sein kann.
  • Jetzt kann unter detaillierter Betrachtung aller möglichen Fälle die Darstellung der Vorverarbeitungseinrichtung für führende Nullen/Einsen (LZA) gemäß der vorliegenden Erfindung als endlicher Automat abgeleitet werden.
  • Fall 1: A > 0, B > 0, A + B > 0
  • Wie allgemein bekannt, gibt es eine Vielzahl von Kombinationen von A und B die zu einer gegebenen Zahl führen. In nachstehender TABELLE II werden zwei interessante Kombinationen von A und B angegeben, welche dasselbe Ergebnis liefern: ÜBERTRAG TABELLE II ÜBERTRAG
  • Die Zustandsbeschreibung für die LZA kann aus der Betrachtung der Beispiele in Tabelle II abgeleitet werden. Zuerst einmal sollte die Vorverarbeitung führender Nullen/Einsen beginnend auf der Seite des höchstwertigen Bit (MSB) ausgeführt werden. Die weiteren Feststellungen können folgendermaßen zusammengefaßt werden:
  • 1.1- Wenn das MSB ein Z-Signal ist, tritt die LZA in einen Z-Zustand ein, und dieser bleibt unverändert, solange das Z-Signal WAHR ist, d.h. (1).
  • 1.2- Für jeden Z-Zustand erzeugt die LZA eine LINKSVERSCHIEBEN-Signal (SHL).
  • 1.3- Die Vorverarbeitung der führenden Nullen/Einsen wird beendet, wenn das k-te Z-Eingangssignal NICHT WAHR ist, nämlich (0). Nachfolgend berücksichtigt die LZA den ÜBERTRAG in der k-ten Z-Position und erzeugt ein NACHSTELLEN-Signal (AD) gemäß
  • AD = ÜBERTRAG (II.4)
  • Das AD-Ausgangssignal ist ein einzelnes RECHTSVERSCHIEBEN-Signal, das zu einer Gesamtverschiebung führt:
  • SH = SHL - AD (II.5)
  • Der Gesamtverschiebebetrag (SH) ist für die Veränderung des Exponenten der Gleitpunktzahl von Bedeutung.
  • Es wird ersichtlich, daß ein einfaches 'NOR' der Bits ein Ergebnis erzeugt, das sich von der endgültigen Normierung nur durch das ÜBERTRAG-Signal unterscheidet.
  • Wir beziehen uns auf das Beispiel von Tabelle II, der gesamte Verschiebebetrag ergibt sich zu:
  • a) SHL = 6, AD = 0, SH = 6
  • b) SHL = 7, AD = 1, SH = 6
  • Das aus der obigen Diskussion erhaltene Zustandsdiagramm wird in FIG. 3 dargestellt.
  • Fall 2: A < 0, B < 0, A + B < 0
  • Wie ersichtlich ist, entspricht dieser Fall einer Addition zweier negativer Zahlen. TABELLE III ÜBERTRAG
  • Beginnend mit den in TABELLE III dargestellten Beispielen zeigt sich,
  • 2.1- Wenn das MSB ein G-Signal ist, tritt d£e LZA in den G- Zustand ein, und dieser bleibt unverändert, solange das G-Signal WAHR ist, d.h. (1)
  • 1.2- Für jedes G-Eingangssignal erzeugt die LZA ein LINKSVERSCHIEBEN-Signal (SHL).
  • 1.3- Die Vorverarbeitung der führenden Nullen/Einsen wird beendet, wenn das k-te G-Eingangssignal NICHT WAHR ist, nämlich (0). Nachfolgend berücksichtigt die LZA den ÜBERTRAG in der k-ten G-Position und erzeugt ein NACHSTELLEN-Signal (AD) gemäß
  • AD = INV(ÜBERTRAG) (II.6)
  • was bedeutet, wenn ÜBERTRAG = 0 dann gilt AD= 1, und wenn ÜBERTRAG = 1 dann gilt AD = 0.
  • Im Gegensatz zum vorhergehenden Fall läuft die LZA für (A < 0, B < 0) solange weiter, wie der Bitvergleich auf der MSB-Seite der beiden Operanden WAHR ist. Diese Dualität entspringt der binären Komplementbildung der Operanden zum Erhalten negativer Zahlen. Wenn die LZA die Operationen Fall
  • ausführt, ergibt sich derselbe Verschiebebetrag.
  • Abschließend kann das Zustandsdiagramm wie in FIG. 4 dargestellt erweitert werden.
  • Fall 3: A > 0, B < 0, A + B > 0
  • Dieser Fall entspricht einer Subtraktion, die zu einer positiven Zahl führt. TABELLE IV ÜBERTRAG
  • Wir erweitern jetzt die für die vorhergehenden Fälle gemachten Feststellungen unter Verwendung der oben stehenden Beispiele:
  • 3.1- Wenn das MSB ein P-Signal ist, tritt die LZA in einen P-Zustand ein, und dieser bleibt unverändert, solange das P-Signal WAHR ist, d.h. (1).
  • 3.2- Für jedes P-Eingangssignal erzeugt die LZA ein LINKSVERSCHIEBEN-signal (SHL).
  • 3.3- Wenn das j-te Eingangssignal ein G-Signal ist, dann ergibt sich als neuer Zustand der Z-Zustand, welcher im vorhergehenden Fall vorgestellt wurde. Die LZA erzeugt ein LINKSVERSCHIEBEN-Ausgangssignal und geht auf Feststellung (1.2) über.
  • Wir beziehen uns auf das Beispiel in TABELLE IV, die Gesamtverschiebebeträge ergeben sich zu:
  • a) SHL = 7, AD = 1, SH = 6
  • b) SHL = 7, AD = 1, SH = 6
  • a) SHL = 7, AD = 1, SH = 6
  • b) SHL = 6, AD = 0, SH = 6
  • Das für den vorhergehenden Fall vorgestellte Zustandsdiagramm kann durch Hinzufügen der neuen Feststellungen 3.1 bis 3.3 wie in FIG. 5 dargestellt erweitert werden.
  • Fall 4:
  • A > 0, B < 0, A + B < 0
  • Auf der Grundlage der oben geführten Diskussion kann dieser Fall leicht zu dem endlichen Automaten, welcher einfach als LZA bezeichnet wird, hinzugefügt werden. ÜBERTRAG TABELLE V ÜBERTRAG
  • Wie aus jedem einzelnen in Tabelle V angegebenen Beispiel ersichtlich ist, beginnt auch dieser Fall mit dem P-Zustand. Deshalb bleiben die oben beschriebenen Bedingungen (3.1 bis 3.2) auch hier gültig. Das nächste Eingangssignal, das nach dem P-Zustand eingegeben wird, ist jedoch kein G- sondern ein Z-Eingangssignal. Folglich nimmt die LZA einen anderen Zustand ein, und dieser wird durch den G-Zustand gekennzeichnet. Die Zustandsbedingungen können jetzt folgendermaßen erweitert werden:
  • 4.1 bis 4.2 sind dieselben wie in 3.1 bis 3.2 angegeben.
  • 4.3- Wenn das m-te Eingangssignal ein Z-Signal ist, dann erzeuge ein LINKSVERSCHIEBEN-Ausgangssignal und gehe zu Feststellung (2.2).
  • Die Gesamtverschiebebeträge ergeben sich zu:
  • a) SHL = 7, AD = 1, SH = 6
  • b) SHL = 6, AD = 1, SH = 6
  • a) SHL = 7, AD = 1, SH = 6
  • b) SHL = 6, AD = 0, SH = 6
  • Schließlich kann daßs in FIG. 6 dargestellte allgemeine Zustandsdiagramm abgeleitet werden.
  • Abgesehen von dem NACHSTELLEN-Signal, das vom ÜBERTRAG abhängig ist, kann die logische Beschreibung des endlichen Automaten wie folgt erhalten werden:
  • - Z = Zk + Pi G Zk - (i+1) (positives Ergebnis) (II.8)
  • - Z = Gk + Pi Z Gk - (i+1) (positives Ergebnis) (II.9)
  • Wie ersichtlich ist, kann der Z-Zustand entweder nach einer Signalfolge aus (k) Z-Eingangssignalen oder nach (i) P-Eingangssignalen gefolgt von einem einzelnen G und einer Signalfolge aus (k - i - 1) Z-Eingangssignalen auftreten. Gleiche Feststellungen können für den G-Zustand getroffen werden.
  • Neben dem Gesamtverschiebebetrag zeigt das sequentielle Modell der LZA in Abhängigkeit vom Zustand unmittelbar vor Beendigung der Vorverarbeitung der führenden Nullen/Einsen auch an, ob das Endergebnis der Addition positiv oder negativ sein muß. Wenn dieser vorhergehende Zustand ein Z-Zustand ist, dann ist das Endergebnis positiv, anderenfalls ist es negativ, weil, wie in FIG. 6 gezeigt, der P-Zustand immer zu einem Z- oder G-Zustand führt.
  • Logarithmische Vorverarbeitung führender Nullen/Einsen (LZA)
  • Das Modell endlicher Zustände der LZA gestattet die Eingabe einer Folge serieller Eingangssignale, was in Abhängigkeit von der Bitlänge (N) nicht immer so schnell sein kann wie ein Parallelübertragsaddierer. Es ist deshalb wünschenswert, die Folge der P-, G- und Z-Eingangssignale unter Verwendung eines parallelen Algorithmus gleich dem der Parallelübertragsstruktur zu verarbeiten. Der letztendliche Aufbau, der zuerst die Eingangsdaten in verschiedenen, ausgewählten Blöcken der Blocklänge D verarbeitet, kann als parallele Implementierung des vorstehenden endlichen Automaten interpretiert werden, wobei deren kombinatorische Entsprechungen für unterschiedliche Kombinationen der Zustands- und Eingangssignale betrachtet werden.
  • Dementsprechend kann die Vorverarbeitung führender Nullen/Einsen stellenweise, das heißt, unter Verwendung einer Blocklänge von 4 Bit, ausgeführt werden, obwohl die Ergebnisse leicht auf willkürliche Blocklängen erweitert werden können; Angenommen der Beginn eines Blockes liegt auf der k-ten Bitposition, dann sind die möglichen Eingangssignalkombinationen auf dieser Position gegeben durch: Stelle
  • Entsprechend der Zeichenkette zwischen der k-ten und der (k-3)ten Bitposition werden die Zustands-Ausgangssignale der LZA wie folgt definiert:
  • Es ist zu beachten, daß die Namen der Zwischen-Zustands-Ausgangssignale ihren Anfangs- und Endzuständen entsprechen. Für eine Blocklänge D (3D mögliche Eingangskombinationen) ergibt sich als Anzahl der Eingangskombinationen die zu einem Zwischen-LZA- Block-Ausgangssignal führen (2D + 3). Wie im folgenden Beispiel gezeigt, treten 2D Kombinationen für PZ- und PG-Zustände auf.
  • Drei zusätzliche Kombinationen ergeben sich auf Grund der ZZ-, PP- und GG-Zustände. Dies ist für die Ermittlung der Korrektheit der logischen Gleichungen im allgemeinen Fall und für den Vergleich der Entwurfskomplexität für verschiedene Blocklängen von Bedeutung.
  • Zurückblickend auf den endlichen Automaten (FIG. 6) ist ersichtlich, daß der neue Satz der Zustandsgleichungen, die durch Terme mit Anfangs- und Endeingangssignalen gekennzeichnet sind, anders aussieht. Zwei neue Terme
  • (Gk Z(k-1) Z(k-2) Z(k-3) (III.6)
  • und
  • (Zk G(k-1) Gk-2) G(k-3)) (III.7)
  • sind in den PZ- und PG-Zuständen enthalten, die tatsächlich in dem in FIG. 6 dargestellten LZA-Modell nicht auftreten würden. Diese Erweiterungen sind auf den Umstand zurückzuführen, daß jeder Block die Daten verarbeitet, ohne von den Ergebnissen der benachbarten Blöcke Kenntnis zu haben. Folglich sollte, wenn der Ausgangszustand des vorhergehenden Blockes PP ist, der n- achfolgende Zustand ein PZ- oder PG-Ausgangssignal haben. Der sich ergebende Grundbaustein der LZA ist in FIG. 7A dargestellt, und in FIG. 7B wird ein geeignetes Logikdiagramm für dessen Implementierung angegeben.
  • Diese Schaltung ist ein kombinatorisches Netzwerk, weil ihre Ausgangssignale durch ihre Eingangssignale vollständig bestimmt werden. Somit wird die Implementierung des sequentiellen Netzwerkes in das Problem des Weiterleitens der verschiedenen Zustands-Ausgangssignale für das iterative kombinatorische Netzwerk umgewandelt. Ein bevorzugtes Vorverarbeitungsschema für die Zustandsiteration wird in FIG. 8A dargestellt, und in FIG. 8B wird ein geeignetes Logikdiagramm für dessen Iimplementierung angegeben.
  • Die für die Zustandsiteration notwendigen logischen Gleichungen können durch Betrachtung der Eingangsfolgen der seriellen LZA für alle möglichen Fälle abgeleitet werden.
  • worin gilt (j = 1, 2, ..., (J-1)) und [m = (i(j-1) + 1), ..., M];
  • M = N / D, J logiM (J, M ganze Zahlen, i : Vorgriffsbreite);
  • N : Gesamte Bitlänge der LZA;
  • D : Blocklänge; und
  • J : Anzahl der benötigten LZA-Stufen.
  • Wenn die Gleichungen für die Zustandsiteration auch mit den Zustands-Ausgangssignalen zweier benachbarter Blöcke formuliert wurden, so können sie auf willkürliche Vorgriffsbreiten erweitert werden.
  • In jeder Stufe kann durch Implementierung der obigen Gleichungen und unter Verwendung der Hilfsfunktionen ZZ1k, PP1k, PZ1k, PG1k und GG1k ein erwarteter Zustand erzeugt werden. jede Zelle hat die ZZ-, PP-, PZ-, PG- und GG-Zwischen-Signale als Eingangssignale (um die Information von den rechtsseitigen und obenliegenden Nachbarn zu empfangen) und als Ausgangssignale (um die erwarteten Zustände an die rechtsseitigen und untenliegenden Nachbarn und an die Netzwerkausgänge zu liefern). Es ist von Interesse zu beachten, daß entweder 1) nur einer dieser Zustände WAHR (1) sein kann oder 2) daß alle von ihnen NICHT WAHR (0) sind, wenn keine führenden Nullen/Einsen erkannt worden sind. Das LINKSVERSCHIEBEN-Signal kann somit definiert werden durch:
  • SHLjm = ODER (ZZjm, Ppjm, Pzjm, Pgjm, Ggjm) (III.13)
  • Ein Logikdiagramm für diese Funktion wird in FIG. 9 dargestellt.
  • An diesem Punkt der Beschreibung kann ein Beispiel für das Verständnis der Berechnung der SHL-Signale hilfreich sein. Wir betrachten jetzt die folgende Eingangszeichenkette:
  • Es wird ersichtlich, daß die LZA beginnend auf der MSB-Seite der Addition ein LINKSVERSCHIEBEN-signal erzeugt. Es ist dann notwendig, das NACHSTELLEN auf der m-ten Stellenposition zu bestimmen. Es wird ein einzelnes Signal benötigt, das anzeigt, daß der ÜBERTRAG-Eingang in die m-te Stelle in Betracht gezogen werden muß, um ein RECHTSVERSCHIEBEN-Signal zu erzeugen. Dieses POSITION-NACHSTELLEN-Ausgangssignal kann unter Verwendung der Zeichenkette der SHL-Signale erzeugt werden.
  • ADPm = SHim INV (SHi(m+1)) = SHim XOR (SHi(m+1)) (III.14)
  • Das Logikdiagramm für diese Funktion in FIG. 10 verdeutlicht, daß ADPm WAHR ist, dann und nur dann, wenn die zwei SH-Signale unterschiedlich sind. Wie oben gezeigt wurde, bestehen die SH- Signale aus einer Bitzeichenkette WAHR gefolgt von einem NICHT WAHR. Deshalb wird ADPm auf der Stellenposition WAHR, auf der der Übergang erfolgt. Wir betrachten wiederum das Beispiel:
  • Das NACHSTELLEN-Signal wird in diesem Fall zu:
  • ADm = ADPmÜBERTRAG (III.15)
  • oder zu
  • ADm ADPmINV(ÜBERTRAG) (III.16)
  • was vom Zustand abhängt, in dem die Vorverarbeitung der führenden Nullen/Einsen beendet wurde. Interessanterweise ist, wenn der Beendigungszustand PP ist,
  • ADm = 0, (III.17)
  • weil beide Fälle, ÜBERTRAG = 1 und ÜBERTRAG = 0 nur festlegen würden, ob das Ergebnis positiv oder negativ ist, aber nicht den Verschiebebetrag ändern würden.
  • Auf der Grundlage der obigen Diskussion wird ersichtlich, daß die LZA vorzugsweise eine (N/4) LINKS- (1) RECHTS-VERSCHIEBEEINRICHTUNG enthalten würde, wobei N die Bitlänge der Vorverarbeitung führender Nullen/Einsen ist.
  • Die Verarbeitung der Verschiebesignale hängt von der Realisierung einer geeigneten Verschiebeeinrichtung ab. Dementsprechend wird jetzt ein einfacher Lösungsansatz dargestellt, um sowohl einige interessante Eigenschaften der Ausgangssignale der LZA zu demonstrieren als auch darzustellen, wie die VERSCHIEBEN-Operation effektiv ausgeführt werden kann. Um bei großen Bitlängen die VERSCHIEBEN-Operation in einer einzelnen Ebene auszuführen, wären eine große Anzahl (Maximum) Unterzyklen erforderlich. In solchen Fällen könnte diese Operation in verschiedenen VERSCHIEBE-Ebenen ausgeführt werden. Zum Beispiel könnte m = 14 unterteilt werden in:
  • 3mal 4-Stellen LINKSVERSCHIEBEN
  • 2mal 1-Stelle LINKSVERSCHIEBEN
  • Die Mehrebenen-VERSCHIEBEN-Signale können auf dieselbe Art und Weise erzeugt werden wie ADPm, z.B. durch Verbinden der SHL-Signale über geeignete Strecken. Ein n-Stellen-LINKSVERSCHIEBEN ist definiert durch:
  • NSHm = SHm INV(SHm+n) (III.18)
  • Wir beziehen uns jetzt auf das vorhergehende Beispiel, wobei ein 4-Stellen LINKSVERSCHIEBEN wie folgt erzeugt werden kann:
  • Es ist zu beachten, daß die Erzeugung des ADP-Signals schon die Anzahl des 1-Stelle LINKSVERSCHIEBEN bereitgestellt hat, weil dieser Fall (n = 1) entspricht.
  • Implementierung der bitweisen Normierung
  • Unter Verwendung der obigen Implementierung kann die Vorverarbeitung führender Nullen/Einsen im ungünstigsten Fall mit einer Genauigkeit von 3 Bit durchgeführt werden. Um den genauen Verschiebebetrag zu erhalten kann dieses Netzwerk auf eine bitweise Normierung erweitert werden; jedoch würde dies zur Bestimmung der genauen Verschiebeposition eine Zusatzlogik erfordern. In jedem Fall zeigt nach Beendigung der blockweisen Vorverarbeitung der führenden Nullen/Einsen das Signal NACHSTELLEN-POSITION an, in welchem Block die genaue Verschiebeposition zu finden ist. Durch Definition von
  • ZZ1k = Zk, PP1k = Pk, GG1k = Gk (IV.1)
  • können durch Anwenden der in den Gleichungen (III.1 bis 5) gegebenen logischen Ausdrücke auf den aktuellen Fall die aufeinanderfolgenden Zustände beschrieben werden. Die VERSCHIEBEN-Signale, die den richtigen Bitwert ausgeben (k = 1, 2, 3), werden in derselben Art und Weise erhalten wie in der vorstehenden Diskussion.
  • Spezielle Realisierungen
  • Man erhält eine spezielle Realisierung der LZA, wenn vorausgesetzt wird, daß einer der Operanden der Gleitpunktaddition immer positiv ist, woraus sich ergibt:
  • G11 = 0 (V.1)
  • Diese Unterposition vereinfacht auch nachfolgende Zustands-Vorverarbeitungen. Am Ende kann einfach gezeigt werden, daß die LINKSVERSCHIEBEN-Signale definiert werden durch:
  • SHLjk = ODER (ZZjk, PPjk, PZjk, PGjk) (V.2)
  • Es ist zu beachten, daß der Zwischenzustand, GGjk(j > 1) noch verschieden von Null sein kann.
  • Eine weitere interessante Einschränkung besteht darin, daß zusätzlich zu der vorhergehenden Annahme die Registerlänge der beiden Operanden nicht gleich sein muß. Dies wird gewöhnlich während einer Gleitpunktaddition so gehandhabt, um gleiche Exponenten für beide Operanden zu erreichen. Zum Beispiel seien die Bitlängen von A und B m beziehungsweise n, wobei m < n gilt. Die ersten (n - m) Bit des Operanden A können als Null interpretiert werden. Damit kann der Grundbaustein von FIG. 7A wie in FIG. 11 dargestellt vereinfacht werden.
  • Es ist zu beachten, daß in den ersten (n - m) Bitpositionen nur die Zustände PP, ZZ oder PG auftreten können. Wenn der Zustand PG auf der k-ten Bitposition (k < n-m) auftritt, wird die Vorverarbeitung der führenden Nullen/Einsen beendet, weil das nachfolgende Zustands-Eingangssignal nur P oder Z aber nicht G sein kann. Die LINKSVERSCHIEBEN-Signale können unter Verwendung der folgenden Beziehung erzeugt werden:
  • SHLjk = ODER (ZZjk, PPjk, PGjk) für (k < n-m) (V.3)
  • Die Vorverarbeitung führender Nullen/Einsen kann dann und nur dann fortgesetzt werden, wenn der PG-Zustand für k = n - m auftritt, wobei es zwei mögliche Implementierungen gibt. Wenn j definiert wird als:
  • j = modD (n - m) (V.4)
  • Für j = 0 kann die gesamte LZA unter Verwendung der in den FIG., 7A und 11 dargestellten Grundbausteine implementiert werden.
  • Der Aufbau für D = 4 ist in Figur 12 dargestellt.
  • Für j > 0 muß ein neuer Übergangsblock realisiert werden, indem die geeigneten Zustandsausdrücke in den Gleichungen (III.1 bis 5) entsprechend dem Wert (j) reduziert werden.
  • Wenn
  • j = 1 müssen PZ und GG vereinfacht werden; und wenn
  • j > 1 müssen PZ, -PG und GG vereinfacht werden.
  • Diese spezielle Realisierung ist in FIG. 13 dargestellt.
  • Es wird erkennbar sein, daß der Beginn der LZA mit einem reduzierten Satz Zustandsgleichungen die gesamte Implementierung vereinfacht.
  • In Zusammenfassung stellt FIG. 14 ein Flußdiagramm dar, das allgemein die Arbeitsweise der in FIG. 2 gezeigten LZA-Komponente 40 verdeutlicht. Kurz gesagt, die Operanden A und B werden in den Registern 50a beziehungsweise 5db empfangen, und ihre höchstwertigen Bits (MSB) werden aufeinanderfolgend im Komparator 51 verglichen, der die Zustandssignale P, G und Z entsprechend ausgibt. Der Zustand des Anfangs-Zustandssignals I wird mit dem Zustand jedes der nachfolgend erzeugten Zustandssignale n verglichen, um festzustellen, ob das Ergebnis WAHR oder NICHT WAHR ist. Wenn es WAHR ist, wird ein Verschiebesignal erzeugt, was bewirkt, daß die Verschiebeeinrichtung 52 die Operanden in den Registern 50a und 50b verschiebt, um den Zustandsvergleich fortzusetzen. Jedes Verschieben-Ausgangssignal der Verschiebeeinrichtung 52 wird ebenfalls von einem Zähler 53 gezählt. Wenn der Vergleich NICHT WAHR wird, wird festgestellt, ob der Anfangszustand 1 entweder G oder Z ist. Wenn I einer dieser Zustände ist, wird das Verschieben beendet, und es wird ein Signal ausgegeben, das bewirkt, daß die Nachstelleinrichtung 54 ein Nachstellsignal erzeugt, das in den Zähler 53 eingegeben wird. Wenn der Anfangszustand P ist, anstatt G oder Z, dann wird der Zustand des Signals n mit dem des Signals n + 1 verglichen. Wenn der Vergleich WAHR ist, wird ein Signal an die Verschiebeeinrichtung 52 gesendet, um die Verschiebeoperation mit den Operanden A und B fortzusetzen. Wenn der Vergleich NICHT WAHR ist, wird ein Signal an die Verschiebeeinrichtung 52 ausgegeben, um eine weitere Verschiebung zu bewirken und ein nachfolgendes Signal an die Nachstelleinrichtung 54 auszugeben, um ein Nachstellsignal an den Zähler 53 zu senden. Nachfolgend auf den Empfang eines Nachstellsignals gibt der Zähler 53 ein Signal, das die Summe des Zählwertes und des Nachstellsignals anzeigt, an die Verschiebeeinrichtung 20 aus, welche dann mit der Normierung der Summe der Operanden A und B in der Art und Weise fortfährt, die oben detailliert beschrieben wurde.
  • Es ist dementsprechend ersichtlich, daß ein System und ein Verfahren zur Unterstützung einer computergestützten Gleitpunktaddition durch Vorverarbeitung führender Nullen/Einsen (LZA) parallel zur Additionsoperation offenbart worden sind, so daß die Zeit für eine Addition plus Normierung signifikant reduziert werden kann. Die Erfindung kann in verschiedene elektrönische Datenverarbeitungsvorrichtungen eingebaut werden, z.B. in CPUs oder Peripheriegeräte.

Claims (9)

1. Verfahren zur Nominierung des Ergebnisses einer Gleitpunktaddition in einem Computer durch Ausführung der Verarbeitung (40) führender Nullern parallel zur Addition (10) der Operanden (A, B),
gekennzeichnet durch die folgenden Schritte:
beginnend auf der Seite des höchstwertigen Bit (MBS) Vergleichen (51) der Bits auf den einander entsprechenden Bitpositionen der Operanden (A, B) und für jede Bitposition Erzeugen des entsprechenden Zustand ssignals aus XOR = P, UND = G und NOR = Z, das sich entsprechend der Vergleiche im WAHR-Zustand befindet; und
Erkennen des Zustands des-Anfangs-Zustandssignals und Erzeugen eines Verschiebebetragssignals, das einen Verschiebebetrag für jedes nachfolgend erzeugte Zustandssignal anzeigt;
Anhalten der Erzeugung der Verschiebebetragssignale, wenn der Zustand des Anfangs-Zustandssignals G oder Z ist und wenn dieser Zustand NICHT WAHR wird;
Anhalten der Erzeugung der Verschiebebetragssignale, wenn der Zustand des Anfangs-Zustandssignals P ist und dem zweiten Zustand G oder Z auf der Bitposition, auf der P NICHT WAHR wird, ein Zustandssignal des dritten Zustands Z beziehungsweise G folgt, und wenn dieser dritte Zustand NICHT WAHR wird;
Anhalten der Erzeugung der Verschiebebetragssignale auf der Bitposition, die der Bitposition folgt, auf der P NICHT WAHR wird, wenn der Zustand des Anfangs-Zustandssignals P ist, dann wenn dem zweiten Zustand G oder Z auf der Bitposition, auf der P NICHT WAHR wird, nicht ein Zustandssignal des dritten Zustands Z beziehungsweise G folgt;
Erzeugen eines Nachstellsignals (54), das durch das ÜBERTRAG-Signal aüf der Bitposition, auf der die Verschiebesignale angehalten werden, bestimmt wird; und
Zählen der Verschiebebeträge und addieren des Zählwertes und des Nachstellsignals, um den Exponenten der Summe der Gleitpunktaddition zu bestimmen.
2. Verfahren gemäß Anspruch 1, die folgenden Schritte umfassend:
Anhalten der Erzeugung der Verschiebebetragssignale, wenn der Zustand des Anfangs-Zustandssignals G oder Z ist und wenn der Zustand eines nachfolgend erzeugten Zustandssingals zum ersten Mal NICHT WAHR wird, was bezüglich des Zustands des Anfangs-Zustandssignals einen zweiten Zustand anzeigt;
Fortsetzen mit der Erzeugung der Verschiebebetragssignale für jedes nachfolgende Zustandssignal, solange der dritte Zustand WAHR bleibt, und Anhalten der Erzeugung der Verschiebebetragssignale, wenn der dritte Zustand NICHT WAHR wird, wenn der Zustand des Anfangs-Zustandssignals P ist und der Zustand eines nachfolgend erzeugten Zustandssignals zum ersten Mal NICHT WAHR, wird, was bezüglich des Zustarids des Anfangs-Zustandssignals einen zweiten Zustand G oder Z anzeigt, welchem auf der Bitposition, auf der P NICHT WAHR wird, ein Zustandssignal des dritten Zustands Z beziehungsweise G folgt;
anderenfalls Anhalten der Verschiebebetragssignale auf der Bitposition, die der Bitposition folgt, auf der P NICHT WAHR wird, wenn der Anfangszustand P ist.
3. Verfahren gemäß Anspruch 1, des weiteren den Schritt umfassend:
Verwenden des Zustands der Bitposition auf der die Verschiebesignale angehalten werden, um zu bestimmen, ob das Ergebnis der Addition positiv oder negativ ist.
4. Vorrichtung zur Normierung des Ergebnisses einer Gleitpunktaddition in einem Computer durch Ausführung der Verarbeitung (40) führender Nullen parallel zur Addition (10) der Operanden (A, B),
gekennzeichnet durch:
Mittel zum Vergleichen (51) der Bits auf den einander entsprechenden Bitpositionen der Operanden (A, B) und zum dementsprechenden Erzeugen der Zustandssignale XOR = P, UND = G und NOR = Z, beginnend auf der Seite der höchstwertigen Bits (MSB) der Operanden;
Mittel zum Erkennen des Zustands des erzeugten Anfangs-Zustandssignals;
Mittel (20, 52) zum Ausgeben eines Verschiebebetragssignals, das einen Verschiebebetrag für jedes nachfolgend erzeugte Zustandssignal anzeigt;
Mittel zum Anhalten der Ausgabe der Verschiebebetragssignale durch die Ausgabemittel;
Mittel, die ausgelöst werden, wenn der Zustand des Anfangs- Zustandssignals G oder Z ist, um die Ausgabe der Verschiebebetragssignale durch die Ausgabemittel anzuhalten, wenn der Zustand eines nachfolgend erzeugten Zustandssignals zum ersten Mal NICHT WAHR wird, was bezüglich des Zustands des Anfangs-Zustandessignals einen zweiten Zustand anzeigt;
Mittel, die ausgelöst werden, wenn der Zustand des Anfangs- Zustandssignals P ist und der Zustand eines nachfolgend erzeugten Zustandssignals zum ersten Mal NICHT WAHR wird, was bezüglich des Zustands des Anfangs-Zustandssignals einen zweiten Zustand G oder Z anzeigt, wobei diesem Zustand auf der Bitposition, auf der P NICHT WAHR wird, ein Zustandssignal des dritten Zustands Z beziehungsweise G folgt, um die Ausgabe der Verschiebebetragssignale durch die Ausgabemittel anzuhalten, wenn der dritte Zustand NICHT WAHR WIRD;
Mittel, die ausgelöst werden, wenn der Zustand des Anfangs- Zustandssignals P ist und dem zweiten Zustand G oder Z auf der Bitposition, auf der P NICHT WAHR wird, kein Zustandssignal Z beziehungsweise G folgt, um die Ausgabe der Verschiebesignale durch die Ausgabemittel auf der Bitposition anzuhalten, die der Bitposition folgt, auf der P NICHT WAHR wird;
Mittel (54) zum Erzeugen eines Nachstellsignals, das bestimmt wird durch das entsprechende ÜBERTRAG-signal auf der Bitposition, auf der P NICHT WAHR wird&sub1; wenn die Ausgabe der Verschiebebetragssignale angehalten wird; und
Mittel (53) zum Zählen der Verschiebebetragssignale und zum Addieren des Verschiebebetrags-Zählwertes mit dem Nachstellsignal (54), um den Exponenten der Summe der Gleitpunktaddition der Operanden (A, B) zu bestimmen.
5. Vorrichtung gemäß Anspruch 4, des weiteren umfassend:
Mittel zum Starten der Vergleichsmittel, so daß diese mit der Seite der höchstwertigen Bits (MSB) beginnend und entsprechend Zustandssignale XOR = P, UND = G und NOR = Z erzeugend die Bits auf den einander entsprechenden Bitpositionen der Operanden (A, B) verglefchen.
6. Vorrichtung gemäß Anspruch 4, des weiteren umfassend.
Mittel, die auf die Erkennungsmittel reagieren, um die Haltemittel auszulösen, so daß diese die Ausgabe der Verschiebebetragssignale durch die Ausgabemittel anhalten, wenn der Anfangszustand G oder Z ist und dieser Zustand NICHT WAHR wird;
Mittel, die auf die Erkennungsmittel reagieren, um die Haltemittel auszulösen, so daß diese die Ausgabe der Verschiebebetragssignale durch die Ausgabemittel -anhalten, wenn der Anfangszustand P ist und dem zweiten Zustand G oder E auf der Bitposition, auf der P NICHT WAHR wird, ein Zustandssignal des dritten Zustands Z beziehungsweise G folgt, und der dritte Zustand NICHT WAHR; und
Mittel, die auf die Erkennungsmittel reagieren, um die Haltemittel aüszulösen, so daß diese Ausgabe der Verschiebebetragssignale durch die Ausgabemittel auf der Bitposition anhalten, die der Bitposition folgt, auf der P NICHT WAHR wird, wenn der Anfangszustand P ist und dem zweiten Zustand G oder Z auf der Bitposition, auf der P NICHT WAHR wird, kein Zustandssignal des dritten Zustands Z beziehungsweise G folgt.
7. Vorrichtung gemäß Anspruch 4, des weiteren umfassend:
Mittel zur Verwendung des Zustands auf der Bitposition, auf der die Verschiebebetragssignale angehalten werden, um zu bestimmen, ob das Ergebnis der Addition positiv oder negativ ist.
8. Verfahren zur Normierung des Ergebnisses einer Gleitpunktaddition in einem Computer durch Ausführung der Verarbeitung (40) führender Nuller parallel zur Addition (10) der Operanden (A, B) gemäß einem oder mehreren der vorhergehenden Ansprüche 1 bis 3, wobei Zeichenketten aus Zustands-Eingangssignalen XOR = P, UND = G und NOR = Z parallel verarbeitet werden,
die folgenden Schritte umfassend.
beginnend auf der Seite der höchstwertigen Bits (MSB) der Operanden Vergleichen der Bits auf den einander entsprechenden Bitpositionen der Operanden (A, B), die addiert werden,
Bereitstellen geeigneter Zustands-Eingangssignale in Form von n Bit langen Blöcken, wobei die Eingangssignale die Zustandssignale Z&sub1; bis Zn, D&sub1; bis Pn und G&sub1; bis Gn umfassen, die sich aus den Vergleichen der Bits auf den entsprechenden Bitpositionen ergeben;
Erzeugen von Zwischen-Zustands-Ausgangssignalen für die möglichen logischen Kombinationen der Eingangs-Zeichenketten, die Signale ZZ, PP, PZ, PG, PZ, PG und GG in Reaktion auf die Zustands-Eingangssignale umfassend;
Oder-Verknüpfen der Zwischen-Zustands-Ausgangssignale und Erzeugen von Signalen, die eine Anzeige für einen Verschiebezählwert repräsentieren; und
Addieren des Verschiebezählwertes und des Nachstellsignale, um den Exponenten der Gleitpunktaddition der Operanden (A, B) zu bestimmen.
9. Kombinatorisches Netzwerk unter Verwendung einer Vorrichtung zur Normierung des Ergebnisses einer Gleitpunktaddition in einem Computer durch Ausführung der Verarbeitung (40) führender Nullen parallel zur Addition (10) der Operanden (A, B), wobei Zeichenketten aus Zustands-Eingangssignalen XOR = P, UND = G und NOR = Z parallel verarbeitet werden, gemäß Anspruch 4,
gekennzeichnet durch:
Mittel zum Bereitstellen geeigneter Zustands-Eingangssignale, beginnend auf der Seite der höchstwertigen Bits (MSB) der Addition, in Form von n Bit langen Blöcken, wobei die Eingangssignale die Zustanssignale NOR = Z&sub1; bis Zn, XOR - P&sub1; bis Pn, UND = G&sub1; bis Gn umfassen, die sich aus den Verlgeichen der Bits auf den entsprechenden Bitpositionen durch die Vergleichsmittel ergeben;
Mittel, die auf die Zustands-Eingangssignale regieren, um Zwischen-Zustands-Ausgangssignale, die Signale ZZ, PP, PZ, PG und GG umfassend, zu erzeugen;
Mittel zum Oder-Verknüpfen der Zwischen-Zustands-Ausgangssignale und zum Erzeugen von Signalen, die eine Anzeige für einen Verschiebezählwert repräsentieren; und
Mittel zum Addieren des Verschiebezählwertes und des Nachstellsignals, u m den Exponenten der Gleitpunktaddition der Operanden (A, B) zu bestimmen.
DE68926330T 1988-10-07 1989-09-13 Antizipator für die Anzahl vorhergehender Nullen/Einsen Expired - Fee Related DE68926330T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/255,089 US4926369A (en) 1988-10-07 1988-10-07 Leading 0/1 anticipator (LZA)

Publications (2)

Publication Number Publication Date
DE68926330D1 DE68926330D1 (de) 1996-05-30
DE68926330T2 true DE68926330T2 (de) 1996-11-21

Family

ID=22966790

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68926330T Expired - Fee Related DE68926330T2 (de) 1988-10-07 1989-09-13 Antizipator für die Anzahl vorhergehender Nullen/Einsen

Country Status (4)

Country Link
US (1) US4926369A (de)
EP (1) EP0362580B1 (de)
JP (1) JPH02144624A (de)
DE (1) DE68926330T2 (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5157595A (en) 1985-07-19 1992-10-20 El Paso Technologies, Company Distributed logic control system and method
JP2511527B2 (ja) * 1989-07-14 1996-06-26 日本電気株式会社 浮動小数点演算器
JPH0520028A (ja) * 1990-12-28 1993-01-29 Matsushita Electric Ind Co Ltd 加減算のための浮動小数点演算装置の仮数部処理回路
US5282156A (en) * 1991-01-31 1994-01-25 Matsushita Electric Industrial Co., Ltd. Leading one anticipator and floating point addition/subtraction apparatus employing same
US5204825A (en) * 1991-08-30 1993-04-20 Weitek Corporation Method and apparatus for exact leading zero prediction for a floating-point adder
US5343413A (en) * 1992-07-06 1994-08-30 Matsushita Electric Industrial Co., Ltd. Leading one anticipator and floating point addition/subtraction apparatus
US5270955A (en) * 1992-07-31 1993-12-14 Texas Instruments Incorporated Method of detecting arithmetic or logical computation result
US5341319A (en) * 1993-02-10 1994-08-23 Digital Equipment Corporation Method and apparatus for controlling a rounding operation in a floating point multiplier circuit
US5317527A (en) * 1993-02-10 1994-05-31 Digital Equipment Corporation Leading one/zero bit detector for floating point operation
US5493520A (en) * 1994-04-15 1996-02-20 International Business Machines Corporation Two state leading zero/one anticipator (LZA)
US5684729A (en) * 1994-09-19 1997-11-04 Hitachi, Ltd. Floating-point addition/substraction processing apparatus and method thereof
US5530663A (en) 1994-11-14 1996-06-25 International Business Machines Corporation Floating point unit for calculating a compound instruction A+B×C in two cycles
WO1996033457A1 (en) * 1995-04-18 1996-10-24 International Business Machines Corporation Block-normalization in multiply-add floating point sequence without wait cycles
US5875123A (en) * 1995-04-18 1999-02-23 International Business Machines Corporation Carry-select adder with pre-counting of leading zero digits
RU95107478A (ru) * 1995-05-18 1997-02-10 А.И. Грушин Способ устранения старших незначащих цифр при вычислениях с плавающей запятой и устройство для его осуществления
US5808926A (en) * 1995-06-01 1998-09-15 Sun Microsystems, Inc. Floating point addition methods and apparatus
KR970016936A (ko) * 1995-09-06 1997-04-28 엘리 와이스 최상위 디지트를 결정하는 장치 및 방법
US5757686A (en) * 1995-11-30 1998-05-26 Hewlett-Packard Company Method of decoupling the high order portion of the addend from the multiply result in an FMAC
US5724275A (en) * 1996-03-22 1998-03-03 Hitachi Microsystems, Inc. Fast multi-operand bit pattern detection method and circuit
US5764549A (en) * 1996-04-29 1998-06-09 International Business Machines Corporation Fast floating point result alignment apparatus
US5757687A (en) * 1996-08-06 1998-05-26 Hewlett-Packard Co. Method and apparatus for bounding alignment shifts to enable at-speed denormalized result generation in an FMAC
US5844830A (en) * 1996-08-07 1998-12-01 Sun Microsystems, Inc. Executing computer instrucrions by circuits having different latencies
US5923574A (en) * 1996-09-18 1999-07-13 International Business Machines Corporation Optimized, combined leading zeros counter and shifter
US5844826A (en) * 1996-10-18 1998-12-01 Samsung Electronics Co., Ltd. Leading zero count circuit
JP3544846B2 (ja) * 1997-02-13 2004-07-21 株式会社東芝 論理回路及び浮動小数点演算装置
US5974432A (en) * 1997-12-05 1999-10-26 Advanced Micro Devices, Inc. On-the-fly one-hot encoding of leading zero count
KR100253407B1 (ko) * 1998-01-23 2000-04-15 김영환 에프오디 회로
US6571267B1 (en) 1999-03-10 2003-05-27 Kabushiki Kaisha Toshiba Floating point addition/subtraction execution unit
KR100331846B1 (ko) 1999-04-02 2002-04-09 박종섭 실수 연산기
US6499044B1 (en) 1999-11-12 2002-12-24 Jeffrey S. Brooks Leading zero/one anticipator for floating point
US6513053B1 (en) 2000-01-12 2003-01-28 Arm Limited Data processing circuit and method for determining the first and subsequent occurences of a predetermined value in a sequence of data bits
US7139900B2 (en) * 2003-06-23 2006-11-21 Intel Corporation Data packet arithmetic logic devices and methods
US20070050435A1 (en) * 2005-08-30 2007-03-01 Christian Jacobi Leading-Zero Counter and Method to Count Leading Zeros
US7698353B2 (en) * 2005-09-14 2010-04-13 Freescale Semiconductor, Inc. Floating point normalization and denormalization
US9274752B2 (en) * 2012-12-28 2016-03-01 Intel Corporation Leading change anticipator logic
US9830129B2 (en) * 2013-11-21 2017-11-28 Samsung Electronics Co., Ltd. High performance floating-point adder with full in-line denormal/subnormal support
GB2542162B (en) * 2015-09-10 2019-07-17 Imagination Tech Ltd Trailing or leading digit anticipator
US10534836B2 (en) * 2016-12-06 2020-01-14 Gsi Technology Inc. Four steps associative full adder

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3831012A (en) * 1973-03-28 1974-08-20 Control Data Corp Normalize shift count network
JPS57196351A (en) * 1981-05-26 1982-12-02 Toshiba Corp Floating point multiplying circuit
US4488252A (en) * 1982-02-22 1984-12-11 Raytheon Company Floating point addition architecture
JPS59226944A (ja) * 1983-06-09 1984-12-20 Fujitsu Ltd 浮動小数点デ−タ加減算方式
US4758974A (en) * 1985-01-29 1988-07-19 American Telephone And Telegraph Company, At&T Bell Laboratories Most significant digit location
JPS62150427A (ja) * 1985-12-24 1987-07-04 Nec Corp 浮動小数点正規化桁合せ回路

Also Published As

Publication number Publication date
EP0362580A2 (de) 1990-04-11
JPH02144624A (ja) 1990-06-04
EP0362580B1 (de) 1996-04-24
DE68926330D1 (de) 1996-05-30
EP0362580A3 (de) 1991-10-30
US4926369A (en) 1990-05-15

Similar Documents

Publication Publication Date Title
DE68926330T2 (de) Antizipator für die Anzahl vorhergehender Nullen/Einsen
DE69131458T2 (de) Hardware-Anordnung zur Addition und Subtraktion von Gleitkommazahlen
DE69326314T2 (de) Durchführung aritmetische Operationen auf Daten
DE3144015C2 (de)
DE3143223C2 (de)
DE68927121T2 (de) Absolutwertberechnende Schaltung mit einem einzigen Addierer
DE68928058T2 (de) Gerät und verfahren zur prädiktion von gleitkommanormalisierung
DE2311220A1 (de) Digital-informations-verarbeitungsvorrichtung zur zeichenerkennung
DE2246968A1 (de) Einrichtung zur kombination, insbesondere multiplikation, zweier gleitkommazahlen
DE68920560T2 (de) Restprüfungsvorrichtung zur Fehlerkennung in Additions-, Substraktions-, Multiplikations-, Divisions- und Quadratwurzel-Operationen.
DE2712224A1 (de) Datenverarbeitungsanlage
DE3886194T2 (de) Vorrichtung und verfahren zum verwenden einer einzelübertragskette für führende &#34;eins&#34;-detektierung und für &#34;sticky&#34; bit-berechnung.
DE3700323C2 (de)
DE4403917C2 (de) Vorrichtung zum Berechnen einer Bit-Besetzungszählung
DE68927560T2 (de) Hochgeschwindige, hochleistende Nulldetektorschaltung mit Parallelverarbeitung
DE69434806T2 (de) Verfahren, System und Vorrichtung zum automatischen Entwurf einer Multiplikatorschaltung und durch die Durchführung dieses Verfahrens entworfene Multiplikatorschaltung
DE69525682T2 (de) Datenprozessorsystem mit Saturation-arithmetischer Operationsfunktion
DE3852576T2 (de) Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen.
DE10219158B4 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
DE2417932A1 (de) Verfahren und vorrichtung zum gewinnen der zyklischen codegruppe einer binaeren nachricht
DE3434777C2 (de)
DE69230520T2 (de) Verfahren und Anordung zur Erzeugung von Summeinformation-/Rundungskontrolle-Signal
DE4019646C2 (de) Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung
DE69030169T2 (de) Hochleistungsaddierer mit Carry-Vorhersage
DE2503152A1 (de) Schaltungsanordnung zur erkennung von durch bauteilausfall verursachten fehlern in der multipliziereinheit eines datenverarbeitungssystems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee