DE3700740A1 - Linearapproximationsumformschaltung - Google Patents

Linearapproximationsumformschaltung

Info

Publication number
DE3700740A1
DE3700740A1 DE19873700740 DE3700740A DE3700740A1 DE 3700740 A1 DE3700740 A1 DE 3700740A1 DE 19873700740 DE19873700740 DE 19873700740 DE 3700740 A DE3700740 A DE 3700740A DE 3700740 A1 DE3700740 A1 DE 3700740A1
Authority
DE
Germany
Prior art keywords
circuit
input
exponent
input section
output
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.)
Ceased
Application number
DE19873700740
Other languages
English (en)
Inventor
Walter Robert Steiner
William Eugene Peregoy
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.)
STAR TECHNOLOGIES, INC., STERLING, VA., US
Original Assignee
General Electric Co
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 General Electric Co filed Critical General Electric Co
Publication of DE3700740A1 publication Critical patent/DE3700740A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/035Reduction of table size
    • G06F1/0356Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/20Contour coding, e.g. using detection of edges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/08Powers or roots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/12Reciprocal functions

Description

Die Erfindung bezieht sich auf elektronische Rechenschaltungen und betrifft insbesondere eine elektronische Schaltung zum Berechnen einer stückweise linearen Approximation von Kurven.
In vielen elektronischen Systemen, wie beispielsweise Graphikverarbeitungssystemen, ist es nützlich, stückweise lineare Annäherungen von Kurven zu erzeugen. Als Beispiel zeigt Fig. 1 eine Kurve, von der die ersten beiden Teile durch lineare Abschnitte angenähert werden, die jeweils eine besondere Steigung und einen Y-Achsenabschnittswert haben. Im Stand der Technik werden diese Berechnungen entweder gänzlich in Software oder mit einer elektronischen Brettschaltung ausgeführt. Bei sehr schnellen Systemen, wie beispielsweise einem Graphikprozessor, ist jedoch die Zeit bei der Ausführung solcher Berechnungen sehr wichtig. Deshalb ist es erwünscht, eine Einzelschaltung zur Verfügung zu haben, die solche linearen Approximationen oder Annäherungen von Kurven erzeugen kann. Es ist weiter erwünscht, in der Lage zu sein, mathematische Funktionen wie die Quadratwurzel und den Kehrwert zur Verwendung in einem solchen System erzeugen zu können. Es ist deshalb Aufgabe der Erfindung, solche Funktionen zu schaffen und in der bevorzugten Ausführungsform eine integrierte Schaltung anzugeben, die eine Pipeline-Architektur hat und in der Lage ist, eine Umformung oder Transformation in 300 Nanosekunden auszuführen, und zwar mit einer Durchsatzzeit von 100 Nanosekunden bei einer Taktfrequenz von 10 MHz.
Ein Ausführungsbeispiel der Erfindung wird im folgenden unter Bezugnahme auf die Zeichnungen näher beschrieben. Es zeigt
Fig. 1 ein Beispiel eines Teils einer Kurve, die durch lineare Abschnitte angenähert wird,
Fig. 2 ein vereinfachtes Blockschaltbild der Schaltung nach der Erfindung, das deren Verbindung mit externen Speichervorrichtungen zeigt, und
Fig. 3 ein ausführliches Blockschaltbild der Schaltung nach der Erfindung.
In den verschiedenen Figuren tragen gleiche Elemente gleiche Bezugszeichen.
Eine Kurve kann angenähert werden, indem sie in eine Reihe von linearen Abschnitten unterteilt wird. Die Information über jeden dieser Abschnitte in Form einer Steigung und eines Y-Achsenabschnittswertes wird in einer oder mehreren elektronischen Speichervorrichtungen, beispielsweise einem Festwertspeicher ("ROM"), gespeichert, die mit der Transformations- oder Umformschaltung nach der Erfindung verbunden sind. Gemäß Fig. 2 wird eine 32-Bit-Zahl D IN (31 : ⌀) in die Umformschaltung eingegeben. Zwölf Bits der eingegebenen Zahl werden zum Adressieren von zwei verschiedenen ROMS benutzt. Der Achsenabschnitt-ROM erzeugt eine ganze 23-Bit-Zahl, die den Mantissenteil des Y-Achsenabschnitts einer Linearabschnittapproximation der gewünschten Kurve darstellt. Der Steigung-ROM benutzt dieselbe Eingabe, um eine ganze 12-Bit-Zahl abzugeben, die die Steigung einer Linearabschnittapproximation der gewünschten Kurve darstellt. Wenn die eingegebene Zahl in dem vorgeschlagenen IEEE-32-Bit- Gleitpunktzahlenformat (Gleitkommazahlenformat) ist, dann sind die benutzten 12 Bits die 12 höchstwertigen Bits der eingegebenen 23-Bit- Mantisse. Die 11 niedrigstwertigen Bits werden zur linearen Interpolation zwischen den Y-Achsenabschnittswerten aus dem Achsenabschnitt-ROM benutzt. Mit dieser Methode kann jede Kurve angenähert werden, indem 212 Linienabschnitte oder Strecken benutzt werden. Das gestattet üblicherweise Kurvenannäherungen, die auf die beiden niedrigstwertigen Bits genau sind.
Unter Verwendung dieser Eingabe in die Umformschaltung kann der Wert einer Kurve mit dem folgenden Ausdruck angenähert werden:
DatenAus = Achsenabschnitt + (DatenEin × Steigung)/211.
In der bevorzugten Ausführungsform der Umformschaltung nach der Erfindung wird dieser Ausdruck berechnet, indem ein Multiplizierer und eine Addierer benutzt werden. Die 12 niedrigstwertigen Bits der Eingangsdaten und eine 12-Bit- Steigung, die aus dem Steigung-ROM erhalten wird, werden multipliziert. Die 12 höchstwertigen Bits dieses Ergebnisses werden zu dem 23-Bit-Y-Achsenabschnittswert addiert, der aus dem Achsenabschnitt-ROM erhalten wird.
Die bevorzugte Ausführungsform der Erfindung hat drei Hauptbetriebsarten. Die erste Betriebsart ist die normale Betriebsart, in der die Eingangszahl umgeformt wird, und zwar auf der Basis von Steuereingangssignalen und der ROM- Eingangssignale. In der Schaltung werden die 12 niedrigstwertigen Bits des Eingangssignals zusammen mit dem Steigungseingangssignal aus dem Steigung-ROM in einen Multiplizierer geleitet. Die 12 höchstwertigen Bits dieses Ergebnisses werden zu einem Eingang einer Addierschaltung geleitet. Das andere Eingangssignal an dem Addierer wird dem Ausgangs eines Multiplexers entnommen. In dieser Betriebsart wählt der Multiplexer den Achsenabschnitt-ROM-Wert aus, der zu dem Multipliziererprodukt addiert werden soll. Gleichzeitig wird der Eingangsexponent eingestellt, und zwar auf der Basis des Typs der Transformation, die ausgeführt wird. Das Ausgangssignal des Addierers und der eingestellte Exponent werden dann verknüpft und in ein Ausgangsregister geleitet. Das Ausgangssignal des Ausgangsregisters gelangt durch einen Multiplexer direkt zu den Ausgangsanschlüssen der Schaltung.
Die zweite Betriebsart ist die No-Operation (Nulloperation oder "NOOP")-Betriebsart. In dieser Betriebsart werden die Eingangsdaten mit drei Registerverzögerungen ungeändert durch die Schaltung geleitet. Der Multipizierer arbeitet wie in der normalen Betriebsart, aber an dem Eingang des Addierers wird das Multipliziererprodukt auf null gesetzt. Das andere Eingangssignal an dem Addierer wird wieder dem Ausgang eines Multiplexers entnommen, aber in diesem Fall bewirken Steuersignale, daß die ursprünglichen Eingangsdaten statt der Achsenabschnittsdaten aus dem Achsenabschnitt- ROM ausgewählt werden. Somit wird die ursprüngliche Dateneingabe zu null addiert, was bedeutet, daß die Eingangsdaten ungeändert durch die Schaltung hindurchgeleitet werden. Der Exponent wird durch den Exponenteneinstellabschnitt ohne Änderung hindurchgeleitet und wieder mit der Mantisse aus den Eingangsdaten vereinigt. Das gelangt durch das Ausgangsregister und den Ausgangsmultiplexer zu den Ausgangsanschlüssen der Schaltung.
Die dritte Betriebsart ist die Bypass-Betriebsart, in der Eingangsdaten ohne Registerverzögerungen ungeändert durch die Schaltung hindurchgeleitet werden. In diesem Fall sind die Steuersignale so ausgebildet, daß der Ausgangsmultiplexer die ursprüngliche Dateneingabe statt des Ausgangssignals des Ausgangsregisters auswählt. Die Eingangsdaten werden daher direkt zu den Ausgangsanschlüssen der Schaltung geleitet.
Bei der Erfindung wird das vorgeschlagene IEEE-Standardgleitpunktformat benutzt, das aus 23 Bits der Mantisse, 8 Bits des Exponenten und einem Vorzeichenbit (sign) besteht. In diesem Format wird ein Binärpunkt als zwischen den Bitpositionen 22 und 23 vorhanden aufgefaßt. Eine Gleitpunktzahl wird gemäß einer der folgenden Möglichkeiten dargestellt:
  • 1. Wenn der Exponente ungleich null ist, gilt:
    Zahl = {(-1)(sign) *2 (exponent-127) *(1.data)}
    2. Wenn der Exponent null ist, aber die Daten (data) ungleich null sind (was eine denormierte Zahl anzeigt), gilt:
    Zahl = {(-1)(sign) *2 (-127) *(0.data)}
    3. Wenn sowohl der Exponent als auch die Daten null sind, gilt:
    Zahl = 0.0
    4. Wenn der Exponent FF 16 und die Mantisse null ist, gilt:
    Die Zahl wird aufgefaßt als: (+ oder -) unendlich.
    5. Wenn die Zahl FF 16 und die Mantisse ungleich null sind, gilt:
    Die Zahl wird aufgefaßt als: keine Zahl.
Zum Vereinfachen der Schaltungsanordnung nach der Erfindung wird eine denormierte Zahl auf null gebracht, und jede Zahl mit einem Exonenten von FF 16 wird auf (+ oder -) unendlich gebracht, je nach dem Vorzeichenbit.
Fig. 3 zeigt ein ausführliches Blockschaltbild der Schaltung nach der Erfindung. In der bevorzugten Ausführungsform der Schaltung nach der Erfindung ist eine Extraschaltungsanordnung für die Bequemlichkeit des Endbenutzers hinzugefügt. Das Vorhandensein dieser Schaltungsanordnung soll aber nicht als Beschränkung der grundlegenden Erfindung aufgefaßt werden.
Die bevorzugte Ausführungsform der Erfindung hat 75 Eingangssignalleitungen und 34 Ausgangssignalleitungen. Die Eingangssignalleitungen umfassen 32 Dateneingangsleitungen für eine Gleitpunktzahl, 23 Dateneingangsleitungen für einen ganzzahligen Achsenabschnittswert aus dem Achsenabschnitt- ROM und 12 Dateneingangsleitungen für einen ganzzahligen Steigungswert aus dem Steigung-ROM. Die Eingangssteuersignale umfassen folgende Signale:
HoldIn -- dieses Steuersignal wird benutzt, um das Taktsignal CLK an einem Dateneingangsregister zu sperren, was bewirkt, daß das gegenwärtige Datenwort in das Eingangsregister eingetaktet und das nächste Taktsignal an dem Eingangsregister blockiert wird, so daß die vorherige Eingangszahl in dem Eingangsregister gehalten wird.
HoldOut -- dieses Signal wird benutzt, um das Taktsignal CLK an einem Datenausgangsregister zu sperren, wodurch das Speichern von neuen Daten blockiert wird, die an die Eingänge des Ausgangsregisters angelegt werden.
Subtraktionssteuerung (SUB) -- dieses Steuersignal wird benutzt, um negative Steigungen für Kurven zu handhaben. Wenn dieses Signal aktiviert ist, führt die Umformschaltung eine Subtraktionsoperation an den Eingangsdaten aus.
Betriebsartsteuerung (MODE CTRL)-Signalleitungen -- zwei Signalleitungen sind vorgesehen, um die Betriebsart der Umformschaltung zu bestimmen, wenn Daten in dem vorgeschlagenen IEEE-32-Bit-Gleitpunktzahlenformat eingegeben werden. Eine Betriebsart ist die "NOOP"-Betriebsart, in der Daten ungeändert durch die Schaltung hindurchgeleitet werden, aber mit drei Registerverzögerungen. In einer zweiten Betriebsart wird der Exponent der Eingangszahl ungeändert durch die Schaltung hindurchgeleitet. In einer dritten Betriebsart wird die Quadratwurzel der Eingangszahl angenähert, indem der Exponent durch zwei dividiert wird. Eine vierte Betriebsart nähert den Kehrwert der Eingangszahl an, indem das Einser-Komplement des Exponenten der Eingangszahl genommen wird.
Bypass -- diese Signalleitung gestattet Daten, ungeändert durch die Umformschaltung ohne interne Registerverzögerungen hindurchzugehen.
Am Ausgang der Schaltung werden 32 Signale abgegeben, welche den transformierten Wert der Eingangszahl beinhalten.
In der Kehrwert- und in der Quadratwurzelbetriebsart veranlassen gewisse Eingangszahlen die Schaltungsanordnung, das Ausgangssignal auf voreingestellte Werte zu klemmen ("clamp"). Wenn beispielsweise der Exponent der Eingangszahl gleich null ist (was eine Gleitpunkteingabe von null in diesem System darstellt), wird das Ausgangssignal in der Quadratwurzelbetriebsart auf null geklemmt (Exponent gleich null, Mantisse gleich null), und in der Kehrwertbetriebsart auf unendlich (Exponent gleich FF 16, Mantisse gleich null). Wenn der Exponent der Eingangszahl gleich FF 16 ist (was eine Gleitpunkteingabe von unendlich darstellt), wird das Ausgangssignal in der Quadratwurzelbetriebsart auf unendlich und in der Kehrwertbetriebsart auf null geklemmt. Das Vorzeichen (sign) des Eingangssignals bleibt ungeändert, ausgenommen dann, wenn auf null geklemmt wird. In diesem Fall wird das Vorzeichenbit immer auf null gesetzt.
Die Umformschaltung nach der Erfindung kann logisch in zwei Hauptabschnitte unterteilt werden, von denen jeder zwei Pipeline-Stufen hat. Dieses sind der Mantisseninterpolationsabschnitt und der Exponenteneinstellabschnitt. Der Mantisseninterpolationsabschnitt empfängt den Mantissenteil der Dateneingabe und die beiden ROM-Tabelleneingaben und führt die Interpolationsfunktion Y = mx + b aus (wobei "b" negativ oder positiv sein kann, was durch das SUB-Signal eingestellt wird). Die Eingangsdaten sind der "x"-Wert, und die Umformschaltung berechnet den entsprechenden "y"-Wert. Der Exponenteneinstellabschnitt benutzt die Betriebsartsteuerung- Eingangssignale, um zu bestimmen, welche Operation an dem Exponententeil der Dateneingabe ausgeführt werden sollte, je nach dem, ob die Schaltung in der Quadratwurzel-, der Kehrwert- oder der Logarithmusbetriebsart ist.
Gemäß Fig. 3 werden sämtliche Eingangssignale der Schaltung am Anfang in einem Eingangsregister 1 gespeichert. Diese Daten werden dann für den Rest der Schaltung für den nächsten Taktzyklus verfügbar gemacht. Eine UND-Schaltung 7, die durch das HoldIn-1-Signal gesteuert wird, stellt das Takteingangssignal an dem Eingangsregister 1 ein.
Der Mantisseninterpolationsabschnitt führt die mathematische Operation aus, die zum Interpolieren der Eingangsdaten notwendig ist. Dieser Abschnitt enthält außerdem die Steuerlogik, die notwendig ist, um Unterlauf- und Überlaufbedingungen zu erkennen und das Ausgangssignal nach Bedarf zu klemmen und die Eingangsdaten ungeändert durchzulassen, wenn die Schaltung in der NOOP-Betriebsart ist.
In der ersten Pipeline-Stufe des Mantisseninterpolationsabschnitts werden die beiden Betriebsartsteuerung-Signale durch drei UND-Schaltungen 2, 3 und 4 in ein Quadratwurzelsignal SQRT, ein NOOP-Signal bzw. ein Kehrwert- oder Reziproksignal RECIP decodiert. Zwei weitere UND-Schaltungen 5, 6 sind mit dem Exponententeil der Eingangszahl gekoppelt und werden benutzt, um zu prüfen, ob die Eingangszahl null oder unendlich ist, was durch die Signale ZERO bzw. MAX angezeigt wird.
Das NOOP-Signal wird benutzt, um zu bestimmen, ob eine Transformation in der Schaltung stattfindet oder ob die Eingangsdaten ungeändert, aber mit Pipeline-Verzögerungen, durch die Schaltung hindurchgeleitet werden sollen. Insbesondere wird das NOOP-Signal benutzt, um einen ersten Multiplexer 10 zu steuern. Wenn das NOOP-Signal aktiv ist, läßt der Multiplexer 10 die 23 Bits der Mantisse der Eingangszahl zu einem ersten Zwischenregister 11 durch. In dem nächsten Taktzyklus wird das Ausgangssignal des ersten Zwischenregister 11 mit einer Addierer/Subtrahierer-Schaltung 12 (über eine UND-Schaltung 23) bedingt gekoppelt. Wenn das NOOP-Signal nicht aktiv ist, dann werden die 23 Bits aus dem Achsenabschnit-ROM zu dem Zwischenregister 11 und anschließend zu dem Addierer/Subtrahierer 12 (wieder über die UND-Schaltung 23) durchgelassen.
Diese Stufe des Mantisseninterpolationsabschnitts empfängt außerdem die 12 niedrigstwertigen Bits der Eingangsmantisse in einer Partialmultiplizierschaltung 13, die die Eingangsmantisse um eine Position nach links verschiebt, um sie richtig zu skalieren (die Verschiebung kann einfach durch Verschieben der Kopplung der Eingangsmantissensignale um eine Bitposition erfolgen). Das andere Eingangssignal an der Verschiebungs-/Multiplizierschaltung 13 sind die 12 Bits aus dem Steigung-ROM. Die Partialmultiplizierschaltung 13 führt in der hier beschriebenen Ausführungsform die notwendige volle Multiplikation ihrer beiden Eingangszahlen in weniger als der Systemtaktzykluszeit nicht aus. Es ist deshalb notwendig gewesen, bei der hier beschriebenen Ausführungsform nur eine Partialmultiplikation auszuführen, die zu zwei Teilprodukten führt, welche 18 Bits und 16 Bits umfassen, die in einem zweiten Zwischenregister 14 gespeichert werden. Bei dem nächsten Taktzyklus werden diese beiden Teilprodukte in einer Addierschaltung 15 summiert, um das Endprodukt zu erzeugen.
Das Reziproksignal RECIP, das Quadratwurzelsignal SQRT und das NOOP-Signal, die in diesem ersten Abschnitt erzeugt werden, werden in einem dritten Zwischenregister 16 zur Verwendung in der nächsten Pipeline-Stufe während des nächsten Taktzyklus gespeichert. Alle drei Zwischenregister 11, 14 und 16 könnten bei Bedarf durch ein einzelnes großes Register ersetzt werden.
In der zweiten Pipeline-Stufe des Mantisseninterpolationsabschnitts werden die 12 höchstwertigen Bits des Ausgangsprodukts aus dem Addierer 15 über eine UND-Schaltung 20 an die Addierer/Subtrahierer-Schaltung 12 angelegt. Das andere Eingangssignal an der UND-Schaltung 20 wird durch eine Gruppe von Gattern 21 bestimmt, welche die MAX-, RECIP-, ZERO- und SQRT-Signale verknüpfen, um ein Klemmen-auf-null- Signal CLϕ zu bilden. Eine zweite Gruppe von Gattern 22 verknüpft dieselben Eingangssignale in einer anderen Reihenfolge, um ein Klemmen-auf-unendlich-Signal CLINF zu bilden. Grundsätzlich sind die durch die Gatterschaltung 21, 22 erzeugten Signale so definiert, daß das Bilden der Quadratwurzel von unendlich oder des Kehrwerts von null zur Folge hat, daß das CLINF-Signal aktiv wird, und daß das Bilden der Quadratwurzel von null oder des Kehrwerts von unendlich bewirkt, daß das CLϕ-Signal aktiv wird. Diese beiden Signale werden mit dem NOOP-Signal verknüpft, um das Eingeben des Produkts aus dem Addierer 15 über die UND-Schaltung 20 in die Addierer/Subtrahierer-Schaltung 12 zu steuern. Wenn nur das NOOP-Signal aktiv ist, wird das "A"-Eingangssignal an der Addierer/Subtrahierer-Schaltung 12 zu null addiert und geht daher durch diese Schaltung ungeändert hindurch. Wenn die CLINF-, CLϕ- oder NOOP- Signale aktiv sind, wird das "B"-Eingangssignal an der Addierer/Subtrahierer-Schaltung 12 auf null gesetzt. Ebenso wird das Ausgangssignal des ersten Zwischenregisters 11 durch eine UND-Schaltung 23 durchgelassen, die außerdem durch die CLINF- und CLϕ-Signale über eine NOR-Schaltung 18 gesteuert wird. Wenn eines dieser beiden Signal aktiv ist, wird das "A"-Eingangssignal der Addierer/Subtrahierer- Schaltung 12 effektiv auf null gesetzt. Deshalb, wenn entweder das CLINF- oder CLϕ-Signal aktiv ist, wird das Ausgangssignal der Addierer/Subtrahierer-Schaltung 12 auf null geklemmt.
Die Addierer/Subtrahierer-Schaltung 12 kann auf die Subtraktionsbetriebsart eingestellt werden, wenn entweder das Subtrahiersignal SUB aus dem Eingangsregister 1 (das durch das dritte Zwischenregister 16 hindurchgeleitet wird) oder das Reziproksignal RECIP aktiv ist. Anderenfalls bleibt die Addierer/Subtrahierer-Schaltung 12 in ihrer Additionsbetriebsart. Diese Flexibilität der Schaltung gestattet das Verarbeiten von Kurven mit negativer Steigung.
Die Steuersignale an der Addierer/Subtrahierer-Schaltung 12 gestatten daher, daß eine normale Addition erfolgen kann, (a) sofern nicht ein null- oder unendlich-Zustand erkannt wird, in welchem Fall das Mantissenausgangssignal des Addierers auf null gesetzt wird, oder (b) wenn die Eingangsdaten ungeändert durch die Schaltung hindurchgeleitet werden sollen. In dem Fall eines NOOP-Betriebes wird das Ausgangssignal der Addierer/Subtrahierer-Schaltung 12 einfach die Eingangsdatenmantisse sein. In allen Fällen wird das Mantissenausgangssignal der Addierer/Subtrahierer-Schaltung 12 an ein Ausgangsregister 30 angelegt.
Der Exponenteneinstellabschnitt der Umformschaltung manipuliert den Exponenten der Eingangszahl, um das Annähern von verschiedenen Arten von Kurven zu gestatten. Der Kurventyp wird durch die Betriebsartsteuerung-Signale bestimmt. Für die Kehrwert- oder Reziprokbetriebsart wird das Zweier-Komplement des Exponenten erzeugt, was den Kehrwert des ursprünglichen Exponenten ergibt, so daß der Kehrwert der gesamten Gleitkommazahl angenähert wird. In der Quadratwurzelbetriebsart wird der Exponent durch zwei dividiert, so daß die Quadratwurzel der Eingangszahl angenähert wird. In der Logarithmusbetriebsart und in der NOOP-Betriebsart wird der Exponent ungeändert durch die Schaltung hindurchgeleitet. Der Exponenteneinstellabschnitt bewirkt außerdem das Klemmen des Exponenten für Unterlauf- und Überlaufbedingungen. Wenn das Ergebnis null sein soll, muß der Exponent auf null geklemmt werden, und, wenn das Ergebnis unendlich sein soll, muß der Exponent auf FF 16 geklemmt werden. Die Exponenteneinstelloperation wird wieder in zwei Pipeline-Stufen ausgeführt.
Die erste Stufe des Exponenteneinstellabschnitts umfaßt eine Subtrahierschaltung 17, die eine Konstante "12710" von dem Exponenten der Eingangszahl subtrahiert, um die Exponentenvorspannung zu beseitigen, die gemäß dem vorgeschlagenen IEEE-32-Bit-Gleitpunktzahlenstandard vorhanden ist. Das Ausgangssignal der Subtrahierschaltung 17 wird dann in dem dritten Zwischenregister 16 zur Verwendung in der zweiten Stufe des Exponenteneinstellabschnitts gespeichert.
In der zweiten Pipelinestufe wird der Exponent durch eine Reihe von Multiplexern hindurchgeleitet, um die verlangten Operationen auszuführen. Zuerst werden der Exponent und sein Einer-Komplement (d. h. seine Inversion) an einen ersten Multiplexer 24 angelegt, der durch das Reziproksignal RECIPe gesteuert wird. Wenn dieses Signal aktiv ist, wird das Einer-Komplement des Exponenten durch den ersten Multiplexer 24 hindurchgeleitet. Anderenfalls geht der ursprüngliche Exponent ungeändert durch den ersten Multiplexer 24 hindurch. Das sich ergebende Ausgangssignal wird dann an einen zweiten Multiplexer 25 angelegt, der durch das Quadratwurzelsignal SQRT gesteuert wird. Ein Eingangssignal an dem zweiten Multiplexer 25 ist einfach das Ausgangssignal des ersten Multiplexers 24. Das zweite Eingangssignal an dem zweiten Multiplexer 25 besteht aus den höchstwertigen 7 Bits des 8-Bit-Ausgangssignal aus dem ersten Multiplexer 24 plus dem höchstwertigen Bit (Bit 8), das redupliziert wird. Effektiv ist das zweite Eingangssignal an dem zweiten Multiplexer der um eine Stelle nach rechts verschobene Exponent, was in dem Binärzahlensystem dem Dividieren des Exponenten durch zwei äquivalent ist. Wenn das SQRT-Signal aktiv ist, wird dieses zweite Eingangssignal durch den zweiten Multiplexer 25 hindurchgeleitet. Anderenfalls wird das ungeänderte Ausgangssignal des ersten Multiplexers 24 durch einen 3 : 1-Multiplexer 26 hindurchgeleitet. Dieser 3 : 1-Multiplexer steuert das Klemmen des Exponenten. Die anderen beiden Eingangssignale an diesem Multiplexer sind Konstanten, die so definiert sind, daß, wenn die Exponentenvorspannung weiter in der Stufe wiederhergestellt wird, diese Eingangskonstanten zu Exponenten von null bzw. FF 16 führen. Die Signale CLINF und CLϕ steuern, welches Eingangssignal des 3 : 1-Multiplexers 26 abgegeben wird. Der sich ergebende Exponent wird dann einer Addierschaltung 27 zugeführt, die eine Konstante "12710" zu dem Exponenten addiert, wodurch der Exponent wieder in die Form gebracht wird, die für den vorgeschlagenen IEEE-32-Bit-Gleitpunktzahlenstandard benötigt wird.
Das Zahlenvorzeichen (sign) der Eingangsdaten wird ebenfalls in dem Exponenteneinstellabschnitt verarbeitet. Es geht einfach ungeändert durch die erste Pipeline-Stufe hindurch, und in der zweiten Stufe bleibt es ungeändert, sofern nicht das CLϕ-Signal aktiv ist. In diesem Fall wird das Vorzeichensignal Sign mittels einer UND-Schaltung 28 auf null geklemmt.
Das Ausgangssignal der UND-Schaltung 28, der Addierschaltung 27 und der Addierer/Subtrahierer-Schaltung 12 beinhaltet die endgültige Ausgangszahl, die zusammengefügt und vorüberrgehend in dem Ausgangsregister 30 gespeichert wird. Eine UND-Schaltung 31 steuert das Taktsignal an dem Ausgangsregister 30 mittels des HoldOut-Signals. Wenn das HoldOut-Signal aktiv ist, können keine neuen Daten in das Ausgangsregister 30 eingegeben werden.
Das Ausgangssignal des Ausgangsregister 30 wird an einen Ausgangsmultiplexer 32 angelegt, der durch das Bypass-Signal gesteuert wird. Wenn dieses Signal aktiv ist, werden die ursprünglichen Eingangsdaten an die Ausgänge der Schaltung über den Ausgangsmultiplexer 32 ungeändert und ohne interne Registerverzögerungen angelegt. Wenn das Bypass- Signal für den Ausgangsmultiplexer 32 nicht aktiv ist, wird die endgültige Zahl, die in dem Ausgangsregister 30 gespeichert ist, über den Ausgangsmultiplexer 32 zu dem Ausgangsanschluß der Schaltung geleitet.
Verschiedene Modifizierungen der bevorzugten Ausführungsform sowie anderer Ausführungsformen der Erfindung sind an Hand dieser Beschreibung möglich. Beispielsweise könnte die grundlegen Schaltung nach der Erfindung ohne weiteres so angepaßt werden, daß sie ohne Pipeline-Architektur auskommt.

Claims (12)

1. Linearapproximationsumformschaltung mit Pipeline- Architektur zum Annähern von Kurven durch Erzeugen einer Reihe von Strecken unter Verwendung von Gleitpunktzahleneingaben, wie beispielsweise Zahlen mit einem Vorzeichen, einem Exponenten und einer Mantisse, gekennzeichnet durch:
  • a) einen Eingangsabschnitt (1) zum Empfangen und zum vorübergehenden Speichern einer Eingangsgleitpunktzahl und von Steigungsdaten und Achsenabschnittsdaten, die der Eingangszahl entsprechen;
  • b) eine Multiplizierschaltung (13, 14, 15), die mit dem Eingangsabschnitt (1) verbunden ist, zum Multiplizieren eines Teils der Mantisse der Eingangszahl mit den Steigungsdaten und zum vorübergehenden Speichern des sich ergebenden Produkts;
  • c) eine Summierschaltung (12), die mit der Multiplizierschaltung verbunden ist, zum Summieren des Produkts und der Achsenabschnittsdaten; und
  • d) eine Ausgangsschaltung (30), die mit dem Ausgang der Summierschaltung verbunden ist, zum vorübergehenden Speichern und Abgeben des summierten Ergebnisses aus der Umformschaltung.
2. Linearapproximationsumformschaltung nach Anspruch 1, gekennzeichnet durch:
  • a) eine erste Speichereinrichtung, die mit dem Eingangsabschnitt (1) verbunden ist, zum Speichern von Streckenachsenabschnittsdaten, zum Empfangen eines Teils der Eingangszahl als eine Adresse und zum Abgeben von Streckenachsenabschnittsdaten, die der Adresse entsprechen, an den Eingangsabschnitt (1); und
  • b) eine zweite Speichereinrichtung, die mit dem Eingangsabschnitt verbunden ist, zum Speichern von Streckensteigungsdaten, zum Empfangen eines Teils der Eingangszahl als eine Adresse und zum Abgeben von Streckensteigungsdaten, die der Adresse entsprechen, an den Eingangsabschnitt (1).
3. Linearapproximationsumformschaltung nach Anspruch 1 oder 2, gekennzeichnet durch eine Selektoreinrichtung (10), die mit dem Eingangsabschnitt (1), der Multiplizierschaltung (13) und der Summierschaltung (12) verbunden ist, zum Hindurchleiten der Eingangsdaten durch die Multiplizierschaltung, die Summierschaltung und die Ausgangsschaltung ohne Veränderung.
4. Linearapproximationsumformschaltung nach einem der Ansprüche 1 bis 3, gekennzeichnet durch eine Exponenteneinstellschaltung (17, 24), die mit dem Eingangsabschnitt (1) und mit der Ausgangsschaltung (30) verbunden ist, zum Approximieren und Abgeben des Kehrwerts der Eingangszahl durch Invertieren des Exponenten der Eingangszahl.
5. Linearapproximationsumformschaltung nach einem der Ansprüche 1 bis 4, gekennzeichnet durch eine weitere Exponenteneinstellschaltung (25), die mit dem Eingangsabschnitt (1) und der Ausgangsschaltung (30) verbunden ist, zum Approximieren und Abgeben der Quadratwurzel der Eingangszahl durch Dividieren des Exponenten der Eingangszahl durch zwei.
6. Linearapproximationsumformschaltung nach Anspruch 5, dadurch gekennzeichnet, daß die Division durch zwei durch Verschieben des Exponenten um eine Bitposition erfolgt.
7. Linearapproximationsumformschaltung nach Anspruch 4, gekennzeichnet durch eine Unendlichklemmschaltung (22), die mit dem Eingangsabschnitt (1), der Exponenteneinstellschaltung (17, 24) und der Summierschaltung (12) verbunden ist, zum Einstellen der Mantisse des summierten Ergebnisses auf null und des Ausgangsexponenten auf eine Darstellung von unendlich, wenn der Exponent die Grenzen des Zahlensystems nach der Einstellung oder bei der Eingabe übersteigt.
8. Linearapproximationsumformschaltung nach Anspruch 4, gekennzeichnet durch eine Nullklemmschaltung (21), die mit dem Eingangsabschnitt (1), der Exponenteneinstellschaltung (17, 24) und der Summierschaltung (12) verbunden ist, zum Einstellen der Mantisse des summierten Ergebnisses auf null und des Ausgangsexponenten auf null, wenn der Exponent nach der Einstellung oder bei der Eingabe gleich null ist.
9. Linearapproximationsumformschaltung mit Pipeline- Architektur zum Annähern von Kurven durch Erzeugen einer Reihe von Strecken unter Verwendung von Gleitpunktzahleneingaben, wobei diese Zahlen ein Vorzeichen, einen Exponenten und eine Mantisse aufweisen, gekennzeichnet durch:
  • a) einen Eingangsabschnitt (1) zum Empfangen und zum vorübergehenden Speichern einer Eingangsgleitpunktzahl und von Steigungsdaten und Achsenabschnittsdaten, die der Eingangszahl entsprechen;
  • b) eine erste Speichereinrichtung, die mit dem Eingangsabschnitt (1) verbunden ist, zum Speichern von Linienabschnittsdaten, zum Empfangen eines Teils der Eingangszahl als eine Adresse und zum Abgeben der Linienabschnittsdaten, die der Adresse entsprechen, an den Eingangsabschnitt (1);
  • c) eine zweite Speichereinrichtung, die mit dem Eingangsabschnitt (1) verbunden ist, zum Speichern der Liniensteigungsdaten, zum Empfangen eines Teils der Eingangszahl als eine Adresse und zum Abgeben der Liniensteigungsdaten, die der Adresse entsprechen, an den Eingangsabschnitt;
  • d) eine Multiplizierschaltung (13), die mit dem Eingangsabschnitt (1) verbunden ist, zum Multiplizieren eines Teils der Mantisse der Eingangszahl mit den Steigungsdaten und zum vorübergehenden Speichern des sich ergebenden Produkts;
  • e) eine Summierschaltung (12), die mit der Multiplizierschaltung (13) verbunden ist, zum Summieren des Produkts und der Achsenabschnittsdaten;
  • f) eine Exponenteneinstellschaltung (17, 24), die mit dem Eingangsabschnitt (1) verbunden ist, zum wahlweisen Approximieren und Abgeben des Kehrwerts oder der Quadratwurzel der Eingangszahl;
  • g) eine Ausgangsschaltung (30), die mit dem Ausgang der Summierschaltung (12) und mit dem Exponenteneinstellabschnitt (17, 24) verbunden ist, zum vorübergehenden Speichern und zum Abgeben des summierten und eingestellten Ergebnisses aus der Umformschaltung.
10. Linearapproximationsumformschaltung nach Anspruch 9, gekennzeichnet durch eine Unendlichklemmschaltung (22), die mit dem Eingangsabschnitt (1), der Exponenteneinstellschaltung (17, 24) und der Summierschaltung (12) verbunden ist, zum Einstellen der Mantisse des summierten Ergebnisses auf null und des Ausgangsexponenten auf eine Darstellung von unendlich, wenn der Exponent die Grenzen des Zahlensystems nach der Einstellung oder bei der Eingabe übersteigt.
11. Linearapproximationsumformschaltung nach Anspruch 9 oder 10, gekennzeichnet durch eine Nullklemmschaltung (21), die mit dem Eingangsabschnitt (1), der Exponenteneinstellschaltung (7, 24) und der Summierschaltung (12) verbunden ist, zum Einstellen der Mantisse des summierten Ergebnisses auf null und des Ausgangsexponenten auf null, wenn der Exponent nach der Einstellung oder bei der Eingabe gleich null ist.
12. Linearaproximationsumformschaltung zum Annähern von Kurven durch Erzeugen einer Reihe von Strecken unter Verwendung von Gleitpunktzahleneingaben, wobei diese Zahlen ein Vorzeichen, einen Exponenten und eine Mantisse aufweisen, gekennzeichnet durch:
  • a) einen Eingangsabschnitt (1) zum Empfangen einer Eingangsgleitpunktzahl sowie von Steigungsdaten und Achsenabschnittsdaten, die der Eingangszahl entsprechen;
  • b) eine Multiplizierschaltung (13), die mit dem Eingangsabschnitt (1) verbunden ist, zum Multiplizieren eines Teils der Mantisse der Eingangszahl mit dem Steigungsdatenprodukt;
  • c) eine Summierschaltung (12), die mit der Multiplizierschaltung (13) verbunden ist, zum Summieren des Produkts und der Achsenabschnittsdaten; und
  • d) eine Ausgangsschaltung (30, 32), die mit dem Ausgang der Summierschaltung (12) verbunden ist, zum Abgeben des summierten Ergebnisses aus der Umformschaltung.
DE19873700740 1986-01-16 1987-01-13 Linearapproximationsumformschaltung Ceased DE3700740A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US81934686A 1986-01-16 1986-01-16

Publications (1)

Publication Number Publication Date
DE3700740A1 true DE3700740A1 (de) 1987-07-23

Family

ID=25227888

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19873700740 Ceased DE3700740A1 (de) 1986-01-16 1987-01-13 Linearapproximationsumformschaltung

Country Status (4)

Country Link
JP (1) JPS62197868A (de)
DE (1) DE3700740A1 (de)
FR (1) FR2592973A1 (de)
GB (1) GB2185606A (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4134235A1 (de) * 1990-10-17 1992-04-23 Seikosha Kk Approximationsverfahren
DE4134234A1 (de) * 1990-10-17 1992-04-23 Seikosha Kk Approximationsverfahren

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5216718A (en) * 1990-04-26 1993-06-01 Sanyo Electric Co., Ltd. Method and apparatus for processing audio signals
EP0578950A3 (en) * 1992-07-15 1995-11-22 Ibm Method and apparatus for converting floating-point pixel values to byte pixel values by table lookup
GB2554167B (en) 2014-05-01 2019-06-26 Imagination Tech Ltd Approximating functions
WO2017181342A1 (zh) * 2016-04-19 2017-10-26 北京中科寒武纪科技有限公司 一种非线性函数运算装置及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3110267A1 (de) * 1980-03-17 1982-03-11 Burr-Brown Research Corp., 85734 Tucson, Ariz. System zur linearisierung der signale eines nicht-linearen wandlers
DE3516880A1 (de) * 1984-05-17 1986-01-02 VEB Numerik "Karl Marx" Karl-Marx-Stadt, DDR 9010 Karl-Marx-Stadt Arithmetische verarbeitungseinheit

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3564222A (en) * 1968-07-01 1971-02-16 Bendix Corp Digital function generator solving the equation f(x) {32 {0 mx {30 {0 b
US3922536A (en) * 1974-05-31 1975-11-25 Rca Corp Multionomial processor system
US3962573A (en) * 1975-06-12 1976-06-08 Rockwell International Corporation Digital function generator
JPS57204931A (en) * 1981-06-12 1982-12-15 Nec Corp Nonlinear converter
US4482974A (en) * 1982-08-13 1984-11-13 Hewlett-Packard Company Apparatus and method of phase-to-amplitude conversion in a sine function generator
JPS61216026A (ja) * 1985-03-20 1986-09-25 Nec Corp 近似関数値生成回路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3110267A1 (de) * 1980-03-17 1982-03-11 Burr-Brown Research Corp., 85734 Tucson, Ariz. System zur linearisierung der signale eines nicht-linearen wandlers
DE3516880A1 (de) * 1984-05-17 1986-01-02 VEB Numerik "Karl Marx" Karl-Marx-Stadt, DDR 9010 Karl-Marx-Stadt Arithmetische verarbeitungseinheit

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4134235A1 (de) * 1990-10-17 1992-04-23 Seikosha Kk Approximationsverfahren
DE4134234A1 (de) * 1990-10-17 1992-04-23 Seikosha Kk Approximationsverfahren
US5341317A (en) * 1990-10-17 1994-08-23 Seikosha Co., Ltd. Curvilinear approximation method
US5430834A (en) * 1990-10-17 1995-07-04 Seikosha Co., Ltd. Method and apparatus for storing and reproducing a curve

Also Published As

Publication number Publication date
FR2592973A1 (fr) 1987-07-17
JPS62197868A (ja) 1987-09-01
GB2185606A (en) 1987-07-22
GB8700753D0 (en) 1987-02-18

Similar Documents

Publication Publication Date Title
DE19983175B4 (de) Verfahren, Prozessor und Einrichtung für Gleitkommaoperationen und Formatkonvertierungsoperationen
DE10085322B4 (de) Schaltungsanordnung, Verfahren und Datenverarbeitungs-Einrichtung zum Durchführen einer Ein-Zyklus-Addition oder -Subtraktion und eines Vergleichs bei einer Arithmetik redundanter Form
DE1956209C3 (de) Multipliziervorrichtung
DE3625612C2 (de) Schaltungseinrichtung zur digitalen Signalüberlaufkorrektur
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE2246968A1 (de) Einrichtung zur kombination, insbesondere multiplikation, zweier gleitkommazahlen
DE2311220A1 (de) Digital-informations-verarbeitungsvorrichtung zur zeichenerkennung
DE1549476B2 (de) Anordnung zur ausfuehrung von divisionen
DE1162111B (de) Gleitkomma-Recheneinrichtung
DE3700323C2 (de)
DE3609250C2 (de)
DE10013068C2 (de) Potenzierungsoperationsvorrichtung
DE3701599C2 (de)
DE3303269C2 (de)
DE3700740A1 (de) Linearapproximationsumformschaltung
DE4019646C2 (de) Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung
DE3447634C2 (de)
EP0628183A1 (de) Schaltungsanordnung zum digitalen multiplizieren von integer-zahlen
DE102013212840B4 (de) Modellberechnungseinheit und Steuergerät zur Berechnung eines datenbasierten Funktionsmodells mit Daten in verschiedenen Zahlenformaten
DE3312796C2 (de)
EP0265555A1 (de) Verfahren und Schaltungsanordnung zur Addition von Gleitkommazahlen
DE3340362A1 (de) Verfahren und vorrichtung zur division von bcd-zahlen
EP0176821B1 (de) DPCM-Codierer mit verringerter interner Rechenzeit
DE10200133A1 (de) Verfahren und Vorrichtung zur Berechnung von Modulo-Operationen
DE10050589B4 (de) Vorrichtung und Verfahren zur Verwendung beim Durchführen einer Gleitkomma-Multiplizier-Akkumulier-Operation

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: STAR TECHNOLOGIES, INC., STERLING, VA., US

8128 New person/name/address of the agent

Representative=s name: REINHARD, H., DIPL.-CHEM. DR.RER.NAT. SKUHRA, U.,

8131 Rejection