DE69328261T2 - Vorrichtung zur konversion einer binären gleitkommazahl in einen binären logarithmus mit der basis 2 oder dessen umkehrung - Google Patents
Vorrichtung zur konversion einer binären gleitkommazahl in einen binären logarithmus mit der basis 2 oder dessen umkehrungInfo
- Publication number
- DE69328261T2 DE69328261T2 DE69328261T DE69328261T DE69328261T2 DE 69328261 T2 DE69328261 T2 DE 69328261T2 DE 69328261 T DE69328261 T DE 69328261T DE 69328261 T DE69328261 T DE 69328261T DE 69328261 T2 DE69328261 T2 DE 69328261T2
- Authority
- DE
- Germany
- Prior art keywords
- sub
- logarithm
- mantissa
- floating point
- exclusive
- 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
Links
- 238000006243 chemical reaction Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 14
- 238000000034 method Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 238000007792 addition Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000015654 memory Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/556—Logarithmic or exponential functions
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
- H03M7/24—Conversion to or from floating-point codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Analogue/Digital Conversion (AREA)
Description
- Die vorliegende Erfindung betrifft eine Vorrichtung zur Konversion einer binären Gleitkommazahl in eine binäre 2-Logarithmus-Festkommazahl oder umgekehrt.
- Der vorliegende Trend bei der Entwicklung von Radarsystemen besteht darin, die digitale Signalverarbeitung so nahe wie möglich an der Antenne durchzuführen. Es gibt dafür zwei Gründe. Erstens ist dann das System weniger empfindlich für überlagerte Signale (Störungen) und zweitens sind digitale Schaltungen billiger als entsprechende analoge Schaltungen.
- Eine digitale Signalverarbeitung für Systeme wie Radar, Funk und Telephon erfordert zwar einen ziemlich hohen Dynamikbereich, sie kann aber oft eine begrenztere, relative Genauigkeit tolerieren. Ein Verfahren, das die Anzahl der verwendeten Bits reduziert und dies durchführt basiert auf einer logarithmischen Konversion und ist deshalb von Interesse. Der Hauptvorteil der logarithmischen Konversion liegt in der Tatsache, das Multiplikationen und Divisionen auf Additionen und Subtraktionen zurückgeführt werden und dass Potenzen und Wurzeln einfache Schiebeoperationen werden.
- Das am meisten verbreitete Verfahren zur Implementierung einer logarithmischen Konversion basiert auf Nachschlagetabellen bzw. Speichertabellen. Nurlesespeicher (ROM = Read Only Memories) können als Tabellen verwendet werden, aber in den meisten Fällen werden sie groß und führen eine zu große Verzögerung in die betreffenden Systeme ein.
- Die europäische Patentanmeldung EP-A-0 572 695, die unter den Artikel 54(3) EPC fällt, zeigt ein verbessertes Verfahren, das Nachschlagetabellen verwendet.
- Ein weiterer Weg für die Umwandlung eines analogen Signals in ein logarithmisches Signal ist aus dem Radar Handbbok (zweite Edition), M. Skolnik, 1990, McGraw-Hill, Seite 3.28 - 3.30 bekannt. Hier wird eine stückweise, lineare Approximation gezeigt.
- Eine binäre Gleitkommazahl hat die Form (Vorzeichen) · Mantisse · 2Exponent, wobei die Mantisse und der Exponent in den nachfolgenden Berechnungen aus einer festgelegten Anzahl von Bits bestehen.
- Der Exponent wird durch die Stelle des am meisten signifikanten Bits (= MSB = Most Significant Bit) in der binären Zahl bestimmt. Die Mantisse ist das MSB, dem die übrigen Bits als gebrochener Teil nachfolgen. Nachfolgend werden nur Zahlen ohne Vorzeichen betrachtet, es ist jedoch nicht schwierig, das Verfahren auf Zahlen mit Vorzeichen zu erstrecken, was für einen Fachmann sofort ersichtlich ist.
- Binäre Zahl 0101110110
- Stelle 9876543210
- Das MSB ist in der Stelle 8, die den Exponenten 8dec = 1000bin angibt. Die Mantisse ist 1,01110110bin.
- Ein Logarithmus hat die Form aus einem ganzzahligen Teil, dem charakteristischen Teil, und einem Bruchteil, der Mantisse des Logarithmus, wobei sowohl der charakteristische Teil als auch die Mantisse in den nachfolgenden Berechnungen aus einer festgelegten Anzahl von Bits bestehen.
- Das bekannte Verfahren der linearen Approximation basiert auf der Ähnlichkeit zwischen einer binären Gleitkommazahl und einem 2-Logarithmus in dem binären Festkommaformat, vgl. Fig. 1.
- Der Exponent der Gleitkommazahl und der ganzzahlige Teil der Logarithmus sind somit gleich. Weiterhin kann der Bruchteil der Mantisse der Gleitkommazahl als eine Approximation der Mantisse des Logarithmus verwendet werden.
- Dezimale Gleitkommazahl 9,6 · 10¹
- Binäre Gleitkommazahl 1,100 · 2¹¹&sup0;
- Approximation des Logarithmus 110,100
- Fig. 2 zeigt den Graphen des ²log(x) und die lineare Approximation, die erhalten wird, wenn man das bekannte Verfahren verwendet. Es ist ersichtlich, dass die Approximation den wahren Wert nur in den Punkten x = 2n angibt. Weiterhin ist es offensichtlich, dass die Approximation des ganzzahligen Teils des Logarithmus immer den richtigen Wert hat, während der Bruchteil immer kleiner als der wahre Wert oder gleich dem wahren Wert ist. Da die Approximation immer kleiner als der wahre Wert oder gleich dem wahren Wert ist, ist dieses bekannte Approximationsverfahren weniger für arithmetische Operationen geeignet.
- Die vorliegende Erfindung basiert auf dem letzteren Verfahren und korrigiert es, um den Fehler zu reduzieren, und bei einer geeigneten Wahl der eingegebenen Systemkonstanten verteilt sie ihn insgesamt gleichmäßig auf beide Seiten des wahren Werts, was gewünscht wird. Dies wird durchgeführt, indem die Erfindung gemäß dem nachfolgenden unabhängigen Anspruch ausgelegt ist. Zudem kann die Erfindung in einer besonders vorteilhaften Ausführungsform direkt auf einer digitalen VLSI-Schaltung implementiert werden.
- Nachfolgend wird die Erfindung im Detail mit Bezug auf die beiliegenden Zeichnungen beschrieben, in denen:
- Fig. 1 im Prinzip zeigt, wie die Konversion von einer binären Gleitkommazahl in einen 2-Logarithmus in binärer Form durchgeführt wird,
- Fig. 2 den Graphen der Funktion f(x) = ²log(x) und eine bekannte lineare Approximation dieser Funktion zeigt,
- Fig. 3 den grundsätzlichen Aufbau gemäß der Erfindung zeigt, nämlich wie die Konversion von der Gleitkommamantisse in den gebrochenen Teil der verbesserten Approximation des Logarithmus mit parallelen, zusätzlichen Teilen durchgeführt werden kann,
- Fig. 4 den grundsätzlichen Aufbau gemäß der Erfindung zeigt, nämlich wie die Konversion von der Gleitkommamantisse in den gebrochenen Teil der verbesserten Approximation des Logarithmus mit seriellen, zusätzlichen Teilen durchgeführt werden kann,
- Fig. 5 den grundsätzlichen Aufbau gemäß der Erfindung einer Teilschaltung zeigt, die einen zusätzlichen Teil gemäß Fig. 3, 4, 11 und 12 berechnet,
- Fig. 6 eine konkrete Ausführungsform der Erfindung zeigt, die eine Konversion von einer binären Gleitkommazahl in einen 2-Logarithmus in Binärform durchführt, bei der ein zusätzlicher Teil und eine Konstante = 0,25dec verwendet werden,
- Fig. 7 den Graphen der Funktion f(x) - ²log(x) und ihre Approximation gemäß der Erfindung zeigt, bei der ein zusätzlicher Teil und eine Konstante = 0,25dec verwendet werden,
- Fig. 8 ein vereinfachtes Flussdiagramm einer Berechnung gemäß der Erfindung von A = ²log I² + Q² zeigt,
- Fig. 9 zeigt, wie der Fehler bei einer Berechnung gemäß Fig. 8 verteilt ist,
- Fig. 10 grundsätzlich zeigt, wie die Konversion von dem wahren 2-Logarithmus in binärer Form oder seiner verbesserten Approximation in eine binäre Gleitkommazahl durchgeführt wird,
- Fig. 11 einen grundlegenden Aufbau gemäß der vorliegenden Erfindung zeigt, nämlich wie die Konversion von der Mantisse des Logarithmus in die Gleitkommamantisse mit den parallelen, zusätzlichen Teilen durchgeführt werden kann,
- Fig. 12 einen grundlegenden Aufbau gemäß der vorliegenden Erfindung zeigt, nämlich wie die Konversion von der Mantisse des Logarithmus in die Gleitkommamantisse mit den zusätzlichen Teilen in Serie durchgeführt werden kann, und
- Fig. 13 eine konkrete Ausführungsform der Erfindung zeigt, die eine Konversion von einem 2-Logarithmus in binärer Form in eine binäre Gleitkommazahl durchführt, bei der ein zusätzlicher Teil und eine Konstante = - 0,25dec verwendet werden.
- Es kann direkt Fig. 2 entnommen werden, dass, da der ganzzahlige Teil in der bekannten Approximation immer den richtigen Wert hat, es der gebrochene Teil ist, der verbessert werden muss. Dies kann durch eine Addition von einem oder mehreren, zusätzlichen Teilen T in der Form von weiteren linearen Approximationen (vgl. Fig. 3 und 4) durchgeführt werden.
- Fig. 2 kann entnommen werden, dass, wenn eine Funktion, die einem Sägezahn ähnlich ist, der Approximation hinzuaddiert wird, der Fehler in Bezug auf den wahren Wert beträchtlich reduziert werden kann. Die vorliegende Erfindung verwendet diesen Grundgedanken. Wenn man die bekannte Approximation des Logarithmus in einem Intervall beobachtet, in dem ein gebrochener Teil von 0 bis 1 geht, (d. h., dass der ganzzahlige Teil von n bis n + 1 ansteigt), kann man beobachten, dass es möglich ist, die gewünschte Sägezahnfunktion zu erzeugen, indem das am meisten signifikante Bit in dem gebrochenen Teil eine Anzahl von exklusiven ODER-Gattern (= XOR-Gattern) steuert, vgl. Fig. 5. Die Eingangssignale der XOR-Gatter sind die übrigen Bits in dem gebrochenen Teil. Das bedeutet, dass übrigen Bits in dem gebrochenen Teil invertiert werden, wenn das am meisten signifikante Bit in dem gebrochenen Teil der bekannten Approximation des Logarithmus eine Eins ist. Die konkrete Realisierung des Grundgedankens wird nachstehend weiter erläutert.
- Zuerst wird der Grundgedanke in eher mathematischer Form in der nachfolgenden Weise eingeführt. Die Sägezahnfunktion sn wird aus dem gebrochenen Teil x£ der gut bekannten Approximation gemäß
- wobei m/2n + 1 ≤ xf < m + 1/2n + 1, m = 0, 1, 2, ..., 2n + 1 - 1
- ist.
- Die Sägezahnfunktion wird dann mit den Koeffizienten Cn derart multipliziert, dass die Summe des zusätzlichen Teils oder der zusätzlichen Teile und die ursprüngliche lineare Approximation so nahe wie möglich an dem wahren Wert des Algorithmus wie gewünscht ist. Die Genauigkeit der Approximation des Logarithmus, der auf diese Weise erzeugt wird, wird durch die Anzahl der zusätzlichen Teile in der Form der Sägezahnfunktionen, die verwendet werden, und auch durch die gewählten Koeffizienten bestimmt.
- Die allgemeine Gleichung der Approximation des Logarithmus, der gemäß der Erfindung verbessert wird, ²logap(x) wird nachfolgend gezeigt. Die bekannte Approximation des 2-Logarithmus wird ²logex(x) genannt und hat einen ganzzahligen Teil xi und einen gebrochenen Teil xf.
- ²logex (X) = xi + xf
- 2logap(x) = xi + xf + cn · sn,
- wobei k die Anzahl der verwendeten Terme ist.
- Die Umkehrung davon, d. h., die Konversion von dem 2-Logarithmus in der binären Festkommaform in eine binäre Gleitkommazahl, in der Form einer Antilog-Funktion bzw. Antilogarithmus-Funktion, wird auf ähnliche Art und Weise durchgeführt. Man subtrahiert einen oder mehrere "zusätzliche Teile" in der Form von Sägezahnfunktionen von dem wahren Logarithmus oder, wenn der Fall gegeben ist, die Approximation des Logarithmus, die gemäß den früheren Berechnungen verbessert wurde, und erhält die bekannte, einfache lineare Approximation des Logarithmus gemäß Fig. 2.
- Dann ist es möglich, von dem ganzzahligen Teil der bekannten Approximation zu dem Exponenten der binären Gleitkommazahl und von dem gebrochenen Teil der bekannten Approximation zu dem gebrochenen Teil der Mantisse der Gleitkommazahl zurückzugehen, wobei dieser gebrochene Teil nach der Ergänzung mit einer ganzzahligen Eins den Ausdruck der gesamten Mantisse der Gleitkommazahl wird.
- Die Sägezahnfunktion an wird aus dem gebrochenen Teil, der Mantisse, logf(x) des richtigen Logarithmus oder, gemäß der Erfindung, dem verbesserten Logarithmus gemäß
- erzeugt,
- wobei m/2n + 1 ≤ logf(x) < m + 1/2n + 1, m = 0, 1, 2, ..., 2n + 1 - 1
- ist.
- Die allgemeine Gleichung gemäß der durch die Erfindung verbesserten Approximation des gebrochenen Teils xf des Antialgorithmus antilogap(x) wird nachfolgend gezeigt.
- wobei k die Anzahl der verwendeten Terme ist antilogap(x) = (1,0 + xf) · 2xi
- Es ist aus den Gleichungen für sn und an ersichtlich, dass die gleichen Koeffizienten Cn verwendet werden können.
- Ein großer Vorteil der vorliegenden Erfindung besteht darin, dass sie leicht in Hardware in der Form einer anwendungsspezifischen, integrierten Schaltung, eines ASCI (= Application Specific Integrated Circuit) umgesetzt werden kann. Diese digitale Schaltung wird kleiner (und weniger kompliziert) und auch schneller und auch genauer als früher bekannte Schaltungen für die gleiche Anwendung. Der Aufbau kann mittels Registern, XOR-Gattern, Multiplizierern und Addierern durchgeführt werden.
- Anfangs werden der Exponent und die Matisse der Gleitkommazahl in einem Register (vgl. Fig. 1) gesetzt. Der Exponent wird von diesem einem Register zugeführt, das dafür ausgelegt ist, die verbesserte Approximation des Logarithmus nach der Konversion zu speichern, und wird dort direkt als der ganzzahlige Teil dieser Approximation gespeichert. Der gebrochene Teil der Mantisse der Gleitkommazahl wird sowohl direkt zu einem Addierer als auch zu einer oder mehreren Teilschaltungen, die zusätzliche Teile 1, 2, 3, ... bilden, überführt. Der ersten Teilschaltung werden alle Bits des gebrochenen Teils zugeführt, der zweiten Teilschaltung werden das Bit mit der Zahl 2 bzw. Nummer 2 und die folgenden Bits des gebrochenen Teils zugeführt und der dritten Teilschaltung werden das Bit mit der Zahl 3 und die folgenden Bits des gebrochenen Teils zugeführt und so weiter.
- In Fig. 3 wird gezeigt, wie mehrere dieser zusätzlichen Teile parallel addiert werden, während Fig. 4 eine Addition in Serie der zusätzlichen Teile zeigt. Normalerweise ist es angebracht, die Addition parallel auszuführen.
- Diese Teilschaltungen, vgl. Fig. 5, weisen eine Anzahl von XOR-Gattern auf. Einem der Eingänge dieser XOR-Gatter wird das am meisten signifikante Bit der Bits, die jeder Teilschaltung zugeführt werden, zugeführt und dem anderen Eingang jedes XOR-Gatters werden unterschiedliche, folgende Bits des gebrochenen Teils zugeführt, was bedeutet, dass die folgenden Bits invertiert werden, wenn das am meisten signifikante Bit gleich 1 ist, und dass sie nicht geändert werden, wenn das am meisten signifikante Bit gleich 0 ist.
- Die Ausgänge der XOR-Gatter werden dann mit einem geeigneten Skalierungsfaktor multipliziert, den Konstanten C&sub1;, C&sub2;, ..., so dass der Fehler minimiert wird. Dies kann, wie in Fig. 5 gezeigt ist, durch eine Multiplikation in einem Multiplizierer ausgeführt werden.
- In dem Addierer bzw. den Addierern wird der gebrochene Teil der Gleitkommamantisse den unterschiedlichen, zusätzlichen Teilen hinzuaddiert, wobei ständige Nullen auf die unverbundenen Eingänge gelegt werden und auch CIN (= carry-in = Übertrag ein) gleich Null ist. Der Hintergrund dafür, CIN auf Null zu setzen, liegt darin, dass es ersichtlich ist, dass die Approximation etwas verbessert wird, wenn die zweite Flanke der Sägezahnfunktion etwas abgesenkt wird. Ein einfacher Weg dies auszuführen besteht darin, CIN auf Null zu setzen, anstelle auf die normale Eins.
- Das Ergebnis der Addition wird dem Register zugeführt, das die verbesserte Approximation des Logarithmus nach der Konversion speichert, wo es den gebrochenen Teil dieser Approximation bildet.
- Es hat sich herausgestellt, dass für praktische Erfordernisse oftmals nur ein zusätzlicher Teil benötigt wird und dass der Fehler sehr klein wird, wenn die Konstante zu 0,25dec ausgewählt wird. Dies ist sehr vorteilhaft, da dies einer Schiebeoperation von zwei Schritten des Eingangs des zusätzlichen Teils in den Addierer hinein entspricht, da 0,25dec gleich 0,01bin entspricht (vgl. Fig. 6). In diesem Fall wird kein spezieller Multipli zierer benötigt, da die Multiplikation in der Verdrahtung bzw. der Weggebung der Schaltung ausgeführt werden kann. In der gleichen Weise könnte die Multiplikation durch die Weggebung für weitere Konstanten ausgeführt werden, und zwar in den Fällen, wenn sie eine gerade Potenz von 2 sind. Dementsprechend wird die Schaltung in all diesen Fällen einfacher.
- Fig. 7 zeigt den Graphen von ²log(x) und seine verbesserte Approximation, die durch die vorliegende Erfindung erhalten wird, wenn ein zusätzlicher Teil und die Konstante = 0,25dec wie vorstehend erwähnt verwendet werden. Durch einen direkten Vergleich zwischen Fig. 7 und Fig. 2 ist es möglich zu sehen, wie viel besser das verbesserte Konversionsverfahren als das bekannte ist.
- Das Konversionsverfahren gemäß der Erfindung wurde auch durch simulierte Berechnungen eines allgemeinen Radar-Algorithmus getestet, der die Amplitude A aus dem Realteil I und dem Imaginärteil Q der Amplitude berechnet,
- A = ²log I² + Q²
- Das Eingangssignal und das Ausgangssignal des Prozessors waren 11-Bit bzw. 8-Bit.
- Fig. 8 zeigt ein vereinfachtes Flussdiagramm der Implementierung der Berechnungen. Die ankommenden Signale I und Q sind bereits in der Gleitkommaform. Der Exponent verwendet 4 Bits und die Mantisse (ohne Vorzeichen) verwendet 7 Bits. In den ersten Blöcken FLC wird der Gleitkommawert in eine logarithmische Form in Übereinstimmung mit dem Verfahren der Erfindung umgewandelt. Dann wird die Quadrierung als einfache Schiebeoperation in logarithmischer Form durchgeführt. In den nächsten Blöcken LFC werden die Logarithmen in die Gleitkommaform zurückgewandelt, da der nächste Berechnungsschritt eine Addition ist. Nach der Addition wird wiederum eine Konversion in die logarithmische Form in einem LFC-Block ausgeführt, wonach die Quadratwurzel als eine einfache Schiebeoperation berechnet wird. Sowohl der ganzzahlige Teil als auch der gebrochene Teil des logarithmischen Ausgangs verwendet 4 Bits.
- Die Simulation wurde unter Verwendung von 400.000 unterschiedlichen komplexen Zahlen ausgeführt, die alle aus dem ersten Quadranten der komplexen Ebene stammen. Das Ergebnis der Berechnungen, die gemäß dem Vorstehenden durchgeführt wurden, wurde mit dem richtig berechneten und gerundeten Wert der Amplitude verglichen. Fig. 9 zeigt die Verteilung der Fehler. Es ist ersichtlich, dass die Berechnung gemäß der Erfindung niemals einen größeren Fehler als 1 Bit in der Matisse des Logarithmus erzeugt hat und dass in ungefähr 80% der Fälle überhaupt kein Fehler aufgetreten ist. Weiterhin ist es ersichtlich, dass vorhandene Fehler relativ gleichmäßig auf beide Seiten des wahren Wertes aufgeteilt sind.
- Man betrachte nun die Umkehrung, d. h., die Konversion von dem 2-Logarithmus in binärer Festkommaform in eine binäre Gleitkommazahl, wobei die Schaltung im Prinzip gleich aussieht.
- Am Anfang wird der charakteristische Teil und die Mantisse des Logarithmus in einem Register gesetzt (vgl. Fig. 10). Der charakteristische Teil, der ganzzahlige Teil, wird von diesem aus einem Register zugeführt, das dafür ausgelegt ist, die Gleitkommazahl nach der Konversion zu speichern, und wird dort direkt als ihr Exponent gespeichert. Die Mantisse des Logarithmus wird (vgl. Fig. 11 und 12) sowohl direkt einem Addierer als auch einer Teilschaltung oder mehrerer Teilschaltungen zugeführt, die zusätzliche Teile 1, 2, 3, ... bilden. Der ersten Teilschaltung werden alle Bits des gebrochenen Teils zugeführt, der zweiten Teilschaltung werden das Bit der Zahl 2 und die folgenden Bits des gebrochenen Teils zugeführt und der dritten Teilschaltung werden das Bit der Zahl 3 und die folgenden Bits des gebrochenen Teils zugeführt und so weiter.
- In Fig. 11 wird gezeigt, wie mehrere dieser zusätzlichen Teile parallel addiert werden, während Fig. 12 eine serielle Addition der zusätzlichen Teile zeigt. Normalerweise ist es angebracht, die Addition parallel auszuführen.
- Diese Teilschaltungen sind identisch zu jenen, die bei der Konversion von der Gleitkommazahl in den Algorithmus (vgl. Fig. 5) verwendet werden, und weisen eine Anzahl von XOR-Gattern auf. Einem der Eingänge dieser XOR-Gatter wird das am meisten signifikante Bit der Bits, die jeder Teilschaltung zugeführt werden, zugeführt und dem anderen Eingang jedes XOR-Gatters werden unterschiedliche folgende Bits des gebrochenen Teils zugeführt, was bedeutet, dass die nachfolgenden Bits invertiert werden, wenn das am meisten signifikante Bit gleich 1 ist, und dass sie ungeändert bleiben, wenn dieses gleich 0 ist.
- Die Ausgänge von den XOR-Gattern werden dann mit einem geeigneten Skalierungsfaktor multipliziert, den Konstanten C&sub1;, C&sub2;, ..., so dass der Fehler minimiert wird. Es ist anzumerken, dass die Konstanten in diesem Fall negativ sind. Dies kann, wie in Fig. 5 gezeigt ist, durch eine Multiplikation in einem Multiplizierer ausgeführt werden.
- In dem Addierer bzw. den Addierern wird eine anfängliche Eins, die die ganzzahlige Eins (das MSB der binären Zahl) der resultierenden binären Gleitkommazahl ist, dem gebrochenen Teil des realen Logarithmus oder dessen verbesserter Approximation und die unterschiedlichen zusätzlichen Teile (die ein negatives Vorzeichen haben) hinzuaddiert, wobei dauerhafte Einsen auf die unverbundenen Eingänge gelegt sind und auch CIN gleich Eins ist. Der Hintergrund dafür, dass CIN auf Eins gesetzt wird, besteht darin, dass es ersichtlich ist, dass die Approximation ein wenig verbessert wird, wenn die zweite Flanke der Sägezahnfunktion etwas angehoben wird. Ein einfacher Weg dies auszuführen besteht darin, CIN auf Eins zu setzen, anstelle auf die normale Null.
- Das Ergebnis der Addition wird dem Register zugeführt, das die Gleitkommazahl nach der Konversion speichert, wo es die Mantisse der Gleitkommazahl bildet.
- Es hat sich herausgestellt, dass für die praktischen Erfordernisse oftmals nur ein zusätzlicher Teil benötigt wird und dass der Fehler sehr klein wird, wenn die Konstante zu -0,25dec gewählt wird. Dies ist sehr vorteilhaft, da dies einer Schiebeoperation von zwei Schritten des Eingangs des zusätzlichen Teils in den Addierer entspricht, da 0,25deo gleich 0,01bin ist, vgl. Fig. 13. In diesem Fall wird kein spezieller Multiplizierer benötigt. Die Multiplikation kann durch die Weggebung der Schaltung ausgeführt werden. Auf gleiche Weise kann die Multiplikation in der Weggebung für weitere Konstanten ausgeführt werden, und zwar in den Fällen, wenn diese eine gerade Potenz von Zwei sind. In all diesen Fällen wird deshalb die Schaltung vereinfacht.
- Das negative Vorzeichen der Konstanten wird hier erhalten, indem ein Inverter verwendet wird. In Fig. 13 wird dies durch den Inverter gezeigt, der in der Verbindung für das am meisten signifikante Bit angeordnet ist, dem Bit, das jedem XOR-Gatter innerhalb einer Teilschaltung zugeführt wird, wenn die unterschiedlichen zusätzlichen Teile berechnet werden.
Claims (13)
1. Vorrichtung zur Konversion einer binären Gleitkommazahl in
einen binären Logarithmus mit der Basis 2 durch lineare
Approximation, dadurch gekennzeichnet, daß die Vorrichtung
folgendes aufweist:
- ein Eingangsregister, in welchem die Gleitkommazahl
gespeichert wird;
- ein Ausgangsregister für den berechneten Logarithmus;
- eine Vorrichtung, welche den Exponenten der
Gleitkommazahl vom Eingangsregister zum Ausgangsregister, in
welchem der Exponent direkt das charakteristische Merkmal
des Logarithmus bildet, überträgt;
- eine Vorrichtung, welche die Stellen hinter dem Komma der
Mantisse der Gleitkommazahl vom Eingangsregister zu einer
Additionseinrichtung überträgt und zudem zu einem oder
mehreren Teilgliedern, wobei jedes Teilglied basierend
auf den Stellen hinter dem Komma der Mantisse einen
zusätzlichen Bruchteil berechnet;
- eine Vorrichtung, die die zusätzlichen Bruchteile an die
Additionseinrichtung überträgt;
- die Additionseinrichtung, welche die Stellen hinter dem
Komma der Mantisse der Gleitkommazahl und die
zusätzlichen Bruchteile addiert; und
- eine Vorrichtung, welche die Summe von der
Additionseinrichtung zum Ausgangsregister, in welchem es die Stellen
hinter dem Komma des Logarithmus mit der Basis 2 bildet,
überträgt.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß
der Übertrag auf die Additionseinrichtung auf Null gestellt
ist.
3. Vorrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet,
daß alle Bits in den Stellen hinter dem Komma der Mantisse
der Gleitkommazahl zum ersten Teilglied geleitet werden,
das Bit mit der Zahl 2 und die folgenden zu dem
möglicherweise bestehenden zweiten Teilglied geleitet werden, das
Bit mit der Zahl 3 und die folgenden zu dem möglicherweise
bestehenden dritten Teilglied geleitet werden, und so weiter.
4. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, daß
jedes Teilglied eine Anzahl von exklusiven ODER-Schaltungen
aufweist, wobei die Anzahl der exklusiven ODER-Schaltungen
um 1 geringer als die Bitanzahl ist, welche zu dem
betreffenden Teilglied geleitet wird, das signifikanteste Bit der
Bits, welche an jedes Teilglied geleitet werden, an den
ersten Eingang aller exklusiven ODER-Schaltungen dieses
Teilglieds geleitet wird und das zweite Bit zum zweiten Eingang
der ersten exklusiven ODER-Schaltung dieses Teilglieds
geleitet wird, das dritte Bit zum zweiten Eingang der zweiten
exklusiven ODER-Schaltung dieses Teilglieds, das vierte Bit
zum zweiten Eingang der dritten exklusiven ODER-Schaltung
dieses Teilglieds, und so weiter.
5. Vorrichtung zur Konversion eines binären Logarithmus mit
der Basis 2 in eine binäre Gleitkommazahl durch lineare
Approximation, dadurch gekennzeichnet, daß die Vorrichtung
folgendes aufweist:
- ein Eingangsregister, in welchem der Logarithmus mit der
Basis 2 gespeichert wird;
- ein Ausgangsregister für die berechnete Gleitkommazahl;
- eine Vorrichtung, welche das charakteristische Merkmal
des Logarithmus vom Eingangsregister zum Ausgangsregister
überträgt, wobei das charakteristische Merkmal im
Ausgangsregister direkt den Exponenten der Gleitkommazahl
bildet;
- eine Vorrichtung, welche die Mantisse des Logarithmus vom
Eingangsregister zu einer Additionseinrichtung überträgt
und zudem zu einem oder mehreren Teilgliedern, wobei
jedes Teilglied basierend auf der Mantisse des Logarithmus
einen zusätzlichen Bruchteil berechnet;
- eine Vorrichtung, die die zusätzlichen Bruchteile an die
Additionseinrichtung überträgt;
- die Additionseinrichtung, welche die Mantisse des
Logarithmus und die zusätzlichen Bruchteile zur Erzeugung der
Stellen hinter dem Komma der Mantisse der Gleitkommazahl
addiert und diese zu einer ganzen Zahl 1 addiert; und
- eine Vorrichtung, welche die Summe von der
Additionseinrichtung zum Ausgangsregister, in welchem es die Mantisse
der Gleitkommazahl bildet, überträgt.
6. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, daß
der Übertrag auf die Additionseinrichtung 1 beträgt.
7. Vorrichtung nach Anspruch 5 oder 6, dadurch gekennzeichnet,
daß alle Bits in der Mantisse des Logarithmus zum ersten
Teilglied geleitet werden, das Bit mit der Zahl 2 und die
folgenden zu dem möglicherweise bestehenden zweiten
Teilglied geleitet werden, das Bit mit der Zahl 3 und die
folgenden Bits zu dem möglicherweise bestehenden dritten
Teilglied geleitet werden, und so weiter.
8. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, daß
jedes Teilglied eine Anzahl von exklusiven ODER-Schaltungen
aufweist, wobei die Anzahl der exklusiven ODER-Schaltungen
um 1 geringer als die Anzahl der Bits ist, welche zu dem
betreffenden Teilglied geleitet wird, das signifikanteste
Bit der Bits, welche zu jedem Teilglied geleitet werden, so
angeordnet ist, daß es zu einem Inverter geleitet wird und
anschließend zu dem ersten Eingang von allen exklusiven
ODER-Schaltungen dieses Teilglieds und das zweite Bit zu
dem zweiten Eingang der ersten exklusiven ODER-Schaltung
dieses Teilglieds geleitet wird, das dritte Bit zu dem
zweiten Eingang der zweiten exklusiven ODER-Schaltung
dieses Teilglieds, das vierte Bit zu dem zweiten Eingang
der dritten exklusiven ODER-Schaltung dieses Teilglieds,
und so weiter.
9. Vorrichtung nach den Ansprüchen 4 oder 8, dadurch
gekennzeichnet, daß die Ausgangssignale von den exklusiven ODER-
Schaltungen mit einem geeigneten Skalierungsfaktor, den
Konstanten C&sub1;, C&sub2; usw. multipliziert werden.
10. Vorrichtung nach einem der vorhergehenden Ansprüche,
dadurch gekennzeichnet, daß die unterschiedlichen
zusätzlichen Bruchteile so angeordnet sind, daß sie parallel
addiert werden.
11. Vorrichtung nach einem der vorhergehenden Ansprüche,
dadurch gekennzeichnet, daß die Vorrichtung so konstruiert
ist, daß sie Konstanten verwendet, die gerade Potenzen von
2 sind, und weiter die Muliplikation mit Hilfe des
Leitwegs durchführt.
12. Vorrichtung nach Anspruch 11, dadurch gekennzeichnet, daß
die Vorrichtung so angeordnet ist, daß sie nur ein
Teilglied verwendet, welches nur einen zusätzlichen Bruchteil
ergibt, weiter die Konstante
0,25dec = 0.01bin verwendet,
und die Muliplikation durch Addition des zusätzlichen
Bruchteils, welcher zwei Stufen verschoben ist, zur
Mantisse der Gleitkommazahl in der Additionseinrichtung
durchführt.
13. Vorrichtung nach einem der Ansprüche 11 oder 12, dadurch
gekennzeichnet, daß sie als ein anwendungsspezifischer
integrierter Schaltkreis ausgeführt ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9203683A SE470542B (sv) | 1992-12-07 | 1992-12-07 | Anordning för omvandling av ett binärt flyttal till en 2- logaritm i binär form eller omvänt |
PCT/SE1993/001039 WO1994014245A1 (en) | 1992-12-07 | 1993-12-02 | A device for conversion of a binary floating-point number into a binary 2-logarithm or the opposite |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69328261D1 DE69328261D1 (de) | 2000-05-04 |
DE69328261T2 true DE69328261T2 (de) | 2000-11-30 |
Family
ID=20388052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69328261T Expired - Fee Related DE69328261T2 (de) | 1992-12-07 | 1993-12-02 | Vorrichtung zur konversion einer binären gleitkommazahl in einen binären logarithmus mit der basis 2 oder dessen umkehrung |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0673564B1 (de) |
JP (1) | JPH08504046A (de) |
DE (1) | DE69328261T2 (de) |
SE (1) | SE470542B (de) |
WO (1) | WO1994014245A1 (de) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE502892C2 (sv) * | 1994-06-01 | 1996-02-12 | Foersvarets Forskningsanstalt | Anordning för omvandling av ett binärt flyttal till en 2-logaritm i binär form eller omvänt |
US6289367B1 (en) * | 1998-11-16 | 2001-09-11 | Texas Instruments Incorporated | Digital signal processing circuits, systems, and method implementing approximations for logarithm and inverse logarithm |
US7284027B2 (en) | 2000-05-15 | 2007-10-16 | Qsigma, Inc. | Method and apparatus for high speed calculation of non-linear functions and networks using non-linear function calculations for digital signal processing |
CN100340940C (zh) * | 2004-04-02 | 2007-10-03 | 明基电通股份有限公司 | 对数转换方法及其装置 |
US7421139B2 (en) | 2004-10-07 | 2008-09-02 | Infoprint Solutions Company, Llc | Reducing errors in performance sensitive transformations |
CN103455302A (zh) * | 2012-05-31 | 2013-12-18 | 上海华虹集成电路有限责任公司 | 用硬件实现对数运算的电路 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1962725A1 (de) * | 1969-12-15 | 1971-11-11 | Foerster Inst Dr Friedrich | Binaer kodierter,dekadisch einstellbarer logarithmischer Teiler |
JP2589475B2 (ja) * | 1986-08-19 | 1997-03-12 | パイオニア株式会社 | デイジタルレベル表示装置 |
-
1992
- 1992-12-07 SE SE9203683A patent/SE470542B/sv not_active IP Right Cessation
-
1993
- 1993-12-02 WO PCT/SE1993/001039 patent/WO1994014245A1/en active IP Right Grant
- 1993-12-02 JP JP6514047A patent/JPH08504046A/ja active Pending
- 1993-12-02 DE DE69328261T patent/DE69328261T2/de not_active Expired - Fee Related
- 1993-12-02 EP EP94902160A patent/EP0673564B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
SE470542B (sv) | 1994-07-25 |
SE9203683D0 (sv) | 1992-12-07 |
EP0673564A1 (de) | 1995-09-27 |
WO1994014245A1 (en) | 1994-06-23 |
DE69328261D1 (de) | 2000-05-04 |
SE9203683L (sv) | 1994-06-08 |
EP0673564B1 (de) | 2000-03-29 |
JPH08504046A (ja) | 1996-04-30 |
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 | |
DE10105945B4 (de) | Multiplizierer mit Linearsummierungsarray sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multiplikation | |
DE69130623T2 (de) | Dividierer mit hoher Grundzahl | |
DE69032890T2 (de) | Verfahren und Gerät zur Ausführung der Quadratwurzelfunktion mit Hilfe eines Multiplizierers rechteckigen Seitenverhältnisses | |
DE19549066A1 (de) | Vorrichtung zur Konvertierung eines digitalen Eingangssignals | |
EP1825356B1 (de) | Verfahren zum bilden einer darstellung eines von einem quadrat eines wertes linear abhängigen berechnungsergebnisses | |
DE10013068C2 (de) | Potenzierungsoperationsvorrichtung | |
DE4345029C2 (de) | Schaltkreis für diskrete Kosinustransformation | |
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 | |
DE69328261T2 (de) | Vorrichtung zur konversion einer binären gleitkommazahl in einen binären logarithmus mit der basis 2 oder dessen umkehrung | |
DE69424372T2 (de) | Hocheffizientes Lernnetzwerk | |
DE3852576T2 (de) | Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen. | |
DE3885303T2 (de) | Verfahren zur annäherung eines wertes, der eine nichtlineare funktion der linearen bildelementsdatenmittelwerte ist. | |
DE68927028T2 (de) | Transformation des Divisors und des Dividends in digitaler Division | |
DE19718224A1 (de) | Digitaler Neuroprozessor | |
DE69130756T2 (de) | Gleitkommamultipliziergerät mit drei Übertragsfortpflanzungsaddierern, welche in parallel arbeiten können | |
DE3434777A1 (de) | Verfahren und vorrichtung zur vorzeichenerzeugung fuer einen uebertragsicherstellungsaddierer | |
EP1672480B1 (de) | Verfahren und Vorrichtung zur Durchführung einer Multiplikations- oder Divisionsoperation in einer elektronischen Schaltung | |
DE3312796C2 (de) | ||
DE69422857T2 (de) | Genaues digitales Divisionswerk | |
DE10200133A1 (de) | Verfahren und Vorrichtung zur Berechnung von Modulo-Operationen | |
DE69722131T2 (de) | Verfahren und Schaltungsanordnung zur Multiplikation mit einer Abrund-Funktion | |
DE4223999C1 (en) | Digital multiplication circuit using canonically signed digit code - has multiplexer converted and added to two's-complement value to generate reduced partial products that are added | |
DE4315898A1 (de) | Vorrichtung zur Berechnung des Quotienten zweier rationaler Zahlen | |
DE2757254C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |