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 umkehrung

Info

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
Application number
DE69328261T
Other languages
English (en)
Other versions
DE69328261D1 (de
Inventor
Erik Hertz
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.)
Forskarpatent I SYD AB
Original Assignee
Forskarpatent I SYD AB
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 Forskarpatent I SYD AB filed Critical Forskarpatent I SYD AB
Publication of DE69328261D1 publication Critical patent/DE69328261D1/de
Application granted granted Critical
Publication of DE69328261T2 publication Critical patent/DE69328261T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods 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/556Logarithmic or exponential functions
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/14Conversion to or from non-weighted codes
    • H03M7/24Conversion 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.
  • Beispiel:
  • 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.
  • Beispiel:
  • 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 &le; 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 &le; 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.
DE69328261T 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 Expired - Fee Related DE69328261T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 パイオニア株式会社 デイジタルレベル表示装置

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&#39;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