DE3700740A1 - Linearapproximationsumformschaltung - Google Patents
LinearapproximationsumformschaltungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/035—Reduction of table size
- G06F1/0356—Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/20—Contour coding, e.g. using detection of edges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2101/00—Indexing scheme relating to the type of digital function generated
- G06F2101/08—Powers or roots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2101/00—Indexing scheme relating to the type of digital function generated
- G06F2101/12—Reciprocal functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
- Numerical Control (AREA)
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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4134234A1 (de) * | 1990-10-17 | 1992-04-23 | Seikosha Kk | Approximationsverfahren |
DE4134235A1 (de) * | 1990-10-17 | 1992-04-23 | Seikosha Kk | Approximationsverfahren |
Families Citing this family (4)
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 |
EP3447634B1 (de) * | 2016-04-19 | 2021-01-20 | Cambricon Technologies Corporation Limited | Datenverarbeitungsvorrichtung und verfahren für nichtlineare funktionen |
Citations (2)
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)
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 | 近似関数値生成回路 |
-
1987
- 1987-01-13 DE DE19873700740 patent/DE3700740A1/de not_active Ceased
- 1987-01-14 JP JP520287A patent/JPS62197868A/ja active Pending
- 1987-01-14 GB GB08700753A patent/GB2185606A/en not_active Withdrawn
- 1987-01-16 FR FR8700480A patent/FR2592973A1/fr not_active Withdrawn
Patent Citations (2)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4134234A1 (de) * | 1990-10-17 | 1992-04-23 | Seikosha Kk | Approximationsverfahren |
DE4134235A1 (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 |
GB2185606A (en) | 1987-07-22 |
JPS62197868A (ja) | 1987-09-01 |
GB8700753D0 (en) | 1987-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69032891T2 (de) | Verfahren und Gerät zur Ausführung mathematischer Funktionen mit Hilfe polynomialer Annäherung und eines Multiplizierers rechteckigen Seitenverhältnisses | |
DE19983175B4 (de) | Verfahren, Prozessor und Einrichtung für Gleitkommaoperationen und Formatkonvertierungsoperationen | |
DE69130653T2 (de) | "Pipelined" Verarbeitungseinheit für Fliesskommazahlen | |
DE68927966T2 (de) | Prozessor für Gleitkommazahlen und ganze Zahlen mit Dividier- und Quadratwurzelfunktionen | |
DE69030707T2 (de) | Arithmetisches Verarbeitungsgerät und dazu benütztes Verfahren | |
DE69032966T2 (de) | Verfahren und Gerät zur Ausführung von Divisionen mit Hilfe eines Multiplizierers rechteckigen Seitenverhältnisses | |
DE69131187T2 (de) | Hochgeschwindigkeitsdividierer | |
DE68927121T2 (de) | Absolutwertberechnende Schaltung mit einem einzigen Addierer | |
DE68928376T2 (de) | Vorrichtung zum multiplizieren, teilen und ziehen der quadratwurzel | |
DE69130510T2 (de) | Arithmetisches Gerät zur Berechnung von transzendenten Elementarfunktionen | |
DE69132517T2 (de) | Gleitkommaprozessor | |
DE69324730T2 (de) | Multiplizier-Akkumulator | |
DE69130623T2 (de) | Dividierer mit hoher Grundzahl | |
DE1956209C3 (de) | Multipliziervorrichtung | |
DE69032890T2 (de) | Verfahren und Gerät zur Ausführung der Quadratwurzelfunktion mit Hilfe eines Multiplizierers rechteckigen Seitenverhältnisses | |
DE68924386T2 (de) | Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten. | |
DE1162111B (de) | Gleitkomma-Recheneinrichtung | |
DE3888230T2 (de) | Einrichtung und Verfahren zur Durchführung einer Schiebeoperation mit einer Multipliziererschaltung. | |
DE3609250C2 (de) | ||
DE69227348T2 (de) | DIVIDIERSCHALTUNG FüR GLEITKOMMAZAHLEN | |
DE10013068C2 (de) | Potenzierungsoperationsvorrichtung | |
DE3852576T2 (de) | Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen. | |
DE3853379T2 (de) | Mit Pseudo-Division arbeitender arithmetischer Prozessor für trigonometrische Funktionen. | |
DE3701599C2 (de) | ||
DE69425565T2 (de) | Verfahren und vorrichtung in einem transponierten digitalen fir-filter zur multiplikation eines binären eingangssignals mit filterkoeffizienten und verfahren zum entwurf eines digitalen transponierten filters |
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 |