WO2000049484A1 - Digital-elektronisches verfahren zur steigerung der berechnungsgenauigkeit bei nichtlinearen funktionen und eine hardware-architektur zur durchführung des verfahrens - Google Patents

Digital-elektronisches verfahren zur steigerung der berechnungsgenauigkeit bei nichtlinearen funktionen und eine hardware-architektur zur durchführung des verfahrens Download PDF

Info

Publication number
WO2000049484A1
WO2000049484A1 PCT/EP2000/000920 EP0000920W WO0049484A1 WO 2000049484 A1 WO2000049484 A1 WO 2000049484A1 EP 0000920 W EP0000920 W EP 0000920W WO 0049484 A1 WO0049484 A1 WO 0049484A1
Authority
WO
WIPO (PCT)
Prior art keywords
format
digits
input
coding
electronic
Prior art date
Application number
PCT/EP2000/000920
Other languages
English (en)
French (fr)
Inventor
Wolfgang Eppler
Thomas Fischer
Original Assignee
Forschungszentrum Karlsruhe Gmbh
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 Forschungszentrum Karlsruhe Gmbh filed Critical Forschungszentrum Karlsruhe Gmbh
Priority to EP00905027A priority Critical patent/EP1161718A1/de
Priority to JP2000600163A priority patent/JP2002537595A/ja
Publication of WO2000049484A1 publication Critical patent/WO2000049484A1/de
Priority to US09/902,855 priority patent/US6941329B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Definitions

  • the invention relates to a method for operating an electronic system with which the calculation accuracy for nonlinear functions is increased.
  • Computationally intensive algorithms such as those used in particular in image and signal processing, are generally executed on a computer or, often in technical applications, on microprocessors or digital signal processors.
  • the execution time on these processors is often very long, so that the installation of specific hardware makes sense to speed up the processing of computationally intensive algorithms.
  • a special chip often a customer-specific chip - ASIC
  • chip set is placed on an electronic card, which is used for example in a personal computer for acceleration.
  • Differences compared to the conventional processor solution mainly concern the data formats.
  • a fixed-point representation has the advantage of simple and fast calculation compared to a floating-point representation, which is why this type of representation is used in most user-specific chips (ASIC).
  • ASIC application-specific chips
  • the main disadvantage is the reduced accuracy compared to floating point operations.
  • the number representation is often changed to a larger word width, which cannot be retained at the external interface, since the effort for data storage then becomes too great (see The IEEE Standard for binary floating point arithmetic, ANSI / IEEE Standard 754-1985).
  • This floating point format is very general and therefore not as efficient to install or accommodate in terms of size and number of components. If a larger word width is used for the intermediate format than for the output format, a conversion from the larger to the smaller format must take place.
  • the invention is therefore based on the object of providing a method for operating an electronic system with which the calculation accuracy is increased in the case of nonlinear functions, and of realizing the electronic system with which the method can be carried out in a time-optimized manner.
  • the special case is briefly outlined that the data are processed further externally by a module that implements a non-linear function.
  • a non-linear function For example, it is a lookup table that maps an input value to its function value. This is often the case when complicated functions are to be calculated very quickly.
  • a neural network which is essentially carried out by matrix multiplications and a subsequent non-linear transfer function.
  • the matrix multiplication can be efficiently implemented on an application-specific microchip.
  • the nonlinear function for example the tangent hyperbolic, is represented by a lookup table. In such a constellation, the accuracy at the output of the lookup table is decisive. In the case of non-linear functions, however, it is much lower than the accuracy of those already coming from the chip
  • a decimal number representation is used instead of a binary one.
  • the range in the interval [0.1] is of interest.
  • the data from the chip has an accuracy of 0.1, the data from the table also.
  • the table maps all possible numbers of the format to f (x), ie the table has 11 entries.
  • the three lowest values ⁇ 0, 0.1, 0.2 ⁇ - exactly calculated - are mapped to ⁇ 0, 0.01, 0.04 ⁇ .
  • the numerical accuracy is only 0.1, all three values are mapped to the new value 0.
  • 0.9 is mapped to 0.8 and 1 to 1. The value 0.9 cannot occur in the image area.
  • the quantization thus produces a maximum error of 0.2, which is triggered on the one hand by the limited word width of the data originating from the chip, and on the other hand is increased by the non-linear function of the lookup table. This is remedied by coding the data, which is cheaper to enter in the lookup table.
  • the solution is that the exact input format has a fixed word length, but the fixed point may be in different places. Each individual position of the fixed point corresponds to its own format.
  • a uniform format is produced from these different formats, which has the fixed point at a defined point. Since some high-value bits can already be cut off for this purpose, an overflow can occur which must be treated.
  • the production of the uniform format is realized by a multiplexer, which receives the different formats as input and outputs the standard format as output. The different formats are numbered and selected by a coded control input of the multiplexer.
  • the entire definition area is divided into several sub-areas, each of which uses a separate number representation.
  • K is the area coding.
  • a range coding is required for the coded number representation, which determines the range in which the present number lies.
  • the length of the area coding is lb (C), with lb as a two-logarithm.
  • n - lb (C) - 1 digits remain if n is the number of digits per word. The 1 is subtracted because of the sign S.
  • the area coding is carried out by a few logic elements (AND, OR, NOT), the new number representation is created by simply cutting and assembling. Output from this coding block is as many buses as there are sub-areas.
  • the word width corresponds to the width of the external number display.
  • the overflow block consists of a simple logic that determines whether the truncated digits are not equal to 0 for a specific number. If this is the case, an overflow occurs.
  • the output of the block is initially the largest possible number in the pure, unsigned number representation.
  • the state of the sign bit S indicates whether the number is positive or negative.
  • the coded format is dependent on the non-linearities of the non-linear function following the coding and is optimized for this function;
  • the electronic system can be implemented by a customer-specific circuit (ASIC) or by a specific chip set on an electronic card.
  • ASIC customer-specific circuit
  • Examples are the detection of microcalcifications in the female breast during preventive examinations (see W. Eppler, T. Fischer, H. Gemmeke, R. Stotzka, T. Köder, "Neural Chip SAND / 1 for Real Time Pattern Recognition", IEEE Transactions on Nuclear Sciences, Vol.45, No.4, Aug 1998, pp. 1819-1823) or the detection of cosmic particles (see W. Eppler, T. Fischer, H. Gemmeke, A. Chilingarian, A.Vardanyan, "Neural Chip SAND in Online Data Processing of Extensive Air showers ", Proceedings of Ist Int. Conf. On Modern Trends in Computational Physics, Dubna, Russia, June 1998). In both cases, the computing power of conventional computers is no longer sufficient.
  • the computationally intensive algorithm works a plug-in card of a PC that works with a fixed-point arithmetic. At the same time, the results of the calculation must be very precise.
  • the digital-electronic method and the hardware architecture for carrying it out are very well suited for this.
  • the invention is explained in more detail below with reference to the single figure of the drawing.
  • the figure shows the block diagram of the format conversion.
  • the signed numbers all have the sign at the most significant position, f is a binary-coded control word the length F, which indicates the number of the current data format.
  • 2 F input data formats can be defined. They differ only in the position of the fixed point. The definition of which control word corresponds to which fixed point position can be freely selected.
  • the bits (AI) with the lowest values, which cannot be used later, are cut off.
  • the bits (U1) with the highest values that are unlikely to ever be set can also be cut off. However, for safety reasons, this must always be checked and an overflow generated if necessary.
  • the input format can then be expressed in another way:
  • the position of the fixed point depends on the selected input format EFf.
  • the intermediate format ZF has the fixed point at a certain point, regardless of the input format EF f . For this, different areas M f of EF f must be copied to the correct bit position in the intermediate format ZF. This is done through the illustration
  • Ml M f -> M, which is achieved in a technical system by a multiplexer or a comparable logic circuit.
  • the multiplexer Ml has f inputs each with m digits, namely the digits ⁇ n-1-ülf-m, ..., n-2-ülf ⁇ . You will see him on the intermediate format
  • the range of numbers represented by the ZF format can be divided into C intervals I c , so that the intervals cover the entire range of ZF numbers. Overlaps and
  • Gaps are not allowed.
  • the intermediate format ZF SM with the width m + 1 is larger than the output format. Therefore, some high-order bits Ü2, which have to be checked for an overflow, and some low-order bits A2, which are simply cut off, are again omitted. The cuts are made at different positions for each interval I c .
  • the intermediate format is therefore also defined as follows:
  • the overflow block determines for the digits n-2 to nl-ül f of the input format EF f and for the digits m-1 to m-ü2 c of the intermediate format whether a digit is not equal to 0. If this is the case, the overflow Ü is set. The following operation is carried out in the overflow block for all input formats EF f and intermediate formats ZF C :
  • the output format AF as coding for a number x is composed as follows:
  • AF SK c G c
  • S is the sign
  • K c is the area of the coding
  • G c is a section of low-order bits that can partially overlap with K c .
  • G c is so wide that all numbers of the in- tervalls I c can be formed with the desired accuracy.
  • the interval size ie the number of elements of the interval, is a power of two 2 d , so that G c has the width d.
  • the width of K c results from the width of the output format AF, minus the sign bit and the width of G c .
  • the coding K c is initially arbitrary, but depends on the coding of the other intervals, which must be mutually exclusive. All codes K together are created minimally, ie there is no code that does not correspond to an interval or two codes that represent the same interval. In both cases, the number format is poorly used and the maximum achievable accuracy is reduced.
  • the coding K c is produced in the coding block from B c .
  • B c For this purpose, with a favorable division of the intervals, it is sufficient to query a few bits of B c , which, combined by simple logic elements, result in the bits of the new coding K c .
  • the sign S and the bits G c with low values are then appended to K c . This is generally done separately for each interval I c , since the individual pieces can be of different sizes.
  • a multiplexer namely M2, is also used for this mapping.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Image Processing (AREA)
  • Complex Calculations (AREA)

Abstract

Es wird ein digital-elektronisches Verfahren zur Steigerung der Festkomma-Berechnungsgenauigkeit bei nichtlinearen Funktionen beschrieben. Für das Verfahren ist eine Hardware-Architektur notwendig, die in ihrem Aufbau einfach, weil sehr eng an das Verfahren angepasst ist. Das Eingabeformat besitzt zwar eine festdefinierte Wortbreite, aber das Festkomma darf sich an unterschiedlichen Stellen befinden.

Description

Digital-elektronisches Verfahren zur Steigerung der Berechnungsgenauigkeit bei nichtlinearen Funktionen und eine Hardware-Architektur zur Durchführung des Verfahrens
Die Erfindung betrifft ein Verfahren zum Betreiben eines elektronischen Systems mit dem die Berechnungsgenauigkeit bei nichtlinearen Funktionen gesteigert wird.
Rechenintensive Algorithmen, wie sie insbesondere in der Bild- und Signalverarbeitung verwendet werden, werden im allgemeinen auf einem Computer oder, oftmals bei technischen Anwendungen, auf Mikroprozessoren oder Digitalen Signalprozessoren ausgeführt. Die Ausführungszeit auf diesen Prozessoren ist oft sehr lange, so daß zur Beschleunigung der Abarbeitung rechenintensiver Algorithmen der Einbau einer spezifischen Hardware sinnvoll ist. Das bedeutet, daß ein spezieller Chip (oft ein kundenspezifischer Chip - ASIC) oder Chip-Satz auf einer elektronischen Karte untergebracht wird, die beispielsweise in einem Personalcomputer zur Beschleunigung verwendet wird. Unterschiede im Vergleich zur herkömmlichen Prozessorlösung betreffen vor allem die Datenformate.
Als Zahlenformat weist eine Festkomma-Darstellung im Vergleich zu einer Gleitkomma-Darstellung den Vorteil einfacher und schneller Berechnung auf, weshalb in den meisten benutzerspezifischen Chips (ASIC) diese Darstellungsart verwendet wird. Der größte Nachteil dabei ist die reduzierte Genauigkeit im Vergleich zu Gleitkomma-Operationen. Bei der internen Berechnung wird daher bei der Zahlendarstellung oft auf -eine größere Wortbreite übergegangen, die aber an der externen Schnittstelle nicht beibehalten werden kann, da dann der Aufwand für die Datenspeicherung zu groß wird (siehe The IEEE Standard for binary floating point arithmetic, ANSI/IEEE Standard 754 - 1985). Dieses Fließkomma-Format ist sehr allgemein und daher hinsichtlich der Größe und Zahl der Bauelemente lange nicht so effizient einzubauen bzw. unterzubringen. Wird für das Zwischenformat eine größere Wortbreite verwendet als für das Ausgabeformat, muß eine Umwandlung vom größeren zum kleineren Format geschehen. Dies ist mit einer Genauigkeitseinbuße verbunden. Im allgemeinen werden hierfür so viele Bits des längeren Wortes abgeschnitten, bis der Inhalt in das kürzere Wort paßt. Wird bei den hochwertigen Bits gekürzt, muß für eine entsprechende Überlauf-Behandlung gesorgt werden, wird bei den niederwertigen Bits zu stark gekürzt, leidet die Genauigkeit darunter. Wird nicht weiter beachtet, wie die Daten extern des Chips weiterverarbeitet werden, gibt es im allgemeinen keine andere Methode, die Genauigkeit der Ausgabedaten zu erhöhen.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zum Betreiben eines elektronischen Systems bereit zu stellen, mit dem die Berechnungsgenauigkeit bei nichtlinearen Funktionen gesteigert wird, und das elektronische System zu realisieren, mit dem das Verfahren zeitoptimal durchgeführt werden kann.
Die Aufgabe wird durch die im Anspruch 1 aufgeführten Verfahrensschritte gelöst.
Zur allgemeinen Erläuterung wird kurz der Spezialfall umrissen, daß die Daten extern durch ein Modul, das eine nichtlineare Funktion realisiert, weiterverarbeitet werden. Es handelt sich beispielsweise um eine Lookup-Tabelle, die einen Eingabewert auf seinen Funktionswert abbildet. Dieser Fall kommt häufig vor, wenn komplizierte Funktionen sehr schnell berechnet werden sollen. Ein Beispiel ist die Berechnung eines Neuronalen Netzes, die im wesentlichen durch Matrix-Multiplikationen und eine anschließende nichtlineare Übertragungsfunktion erfolgt. Die Matrixmultiplikation kann effizient auf einem anwendungsspezifischen Mikrochip realisiert werden. Die nichtlineare Funktion, beispielsweise der Tangenshyperbolikus, wird durch eine Lookup- Tabelle dargestellt. Bei einer solchen Konstellation ist erst die Genauigkeit am Ausgang der Lookup-Tabelle entscheidend. Im Falle nichtlinearer Funktionen ist sie aber wesentlich geringer als die Genauigkeit der vom Chip stammenden, bereits reduzierten
Daten.
Ein einfaches Beispiel demonstriert das:
Angenommen, die Tabelle stelle die quadratische Funktion f (x) = x2 dar. Zum einfacheren Verständlichkeit wird statt einer binären eine dezimale Zahldarstellung herangezogen. Es interessiert der Bereich im Intervall [0,1]. Die vom Chip stammenden Daten haben eine Genauigkeit von 0.1, die aus der Tabelle resultierenden Daten ebenfalls. Die Tabelle bildet alle möglichen Zahlen des Formats auf f (x) ab, d.h. die Tabelle besitzt 11 Einträge. Die drei niedrigsten Werte {0, 0.1, 0.2} werden - exakt gerechnet - auf {0, 0.01, 0.04} abgebildet. Da die Zahlengenauigkeit aber nur 0.1 beträgt, werden alle drei Werte auf den neuen Wert 0 abgebildet. Auf der anderen Seite wird 0.9 auf 0.8 und 1 auf 1 abgebildet. Der Wert 0.9 kann im Bildbereich gar nicht vorkommen. Durch die Quantisierung wird hier also ein maximaler Fehler von 0.2 erzeugt, der einerseits durch die begrenzte Wortbreite der vom Chip stammenden Daten ausgelöst wird, andererseits durch die nichtlineare Funktion der Lookup-Tabelle vergrößert wird. Abhilfe schafft hier eine Kodierung der Daten, die als Eingabe für die Lookup-Tabelle günstiger ist.
Die Lösung liegt nun darin, daß das genaue Eingabeformat zwar eine festdefinierte Wortbreite besitzt, aber das Festkomma sich an unterschiedlichen Stellen befinden darf. Jede einzelne Position des Festkommas entspricht einem eigenen Format. In einem ersten Schritt wird aus diesen verschiedenen Formaten ein einheitliches Format hergestellt, welches das Festkomma an einer definierten Stelle aufweist. Da hierfür schon einige höherwer- tige Bits abgeschnitten werden können, kann ein Überlauf auftreten, der behandelt werden muß. Die Herstellung des einheitlichen Formats wird durch einen Multiplexer realisiert, der als Eingabe die unterschiedlichen Formate erhält und als Ausgabe das Einheitsformat ausgibt. Die unterschiedlichen Formate werden durch- nummeriert und durch einen kodierten Steuereingang des Multiple- xers angewählt. Im zweiten Schritt wird der gesamte Definitionsbereich in mehrere Unterbereiche eingeteilt, die jeweils für sich eine separate Zahlendarstellung benutzen. Fürs Weitere wird eine binäre Zahldarstellung zugrunde gelegt und als ganze Zahl interpretiert, so daß 1 der kleinste Unterschied zwischen zwei verschiedenen Zahlen ist. Dann läßt sich für die Unterteilung des Definitionsbereichs in Unterbereiche erreichen, daß für „flache" Funktionsbereiche, in denen die erste Ableitung viel kleiner als 1 (f (x) « 1, für alle x aus dem betreffenden Unterbereich) eine weniger genaue Zahldarstellung gewählt wird. Der Grund dafür ist, daß der Bildbereich B des Funktionsabschnitts kleiner ist als der Definitionsbereich D und daher nicht alle Werte aus D auf unterschiedliche Werte in B abgebildet werden können. Die Werte in D können also ungenauer dargestellt werden, ohne daß in B ein Genauigkeitsverlust spürbar wird. Im Fall von Bereichen, in denen die erste Ableitung viel größer als 1 (f (x) » 1) ist, muß gegenüber oben gegenteilig vorgegangen werden, um die Genauigkeit im Bildbereich zu erhalten. Es müssen also die Zahlen des Definitionsbereiches genauer dargestellt werden.
Konventionelle Zahldarstellung: X X » X . X X • .. X mit < n Bits >
Dabei ist S das Vorzeichen, X sind die Vorkommastellen und x die Nachkommastellen. Die kodierte Zahldarstellung ist dann:
S K ... K X ... X . x ... x mit < n Bits >
K ist dabei die Bereichskodierung. Für die kodierte Zahldarstellung wird eine Bereichskodierung benötigt, die feststellt, in welchem Bereich die vorliegende Zahl liegt.
Gibt es C Unterbereiche, dann beträgt die Länge der Bereichskodierung lb(C), mit lb als Zweierlogarithmus. Für die restliche Zahldarstellung bleiben dann noch n - lb(C) - 1 Stellen übrig, wenn n die Anzahl der Stellen pro Wort ist. Die 1 wird wegen dem Vorzeichen S subtrahiert. Die Durchführung der Bereichskodierung erfolgt durch wenige Logik-Glieder (UND, ODER, NICHT), die Bildung der neuen Zahldarstellung geschieht durch einfaches Abschneiden und Zusammensetzen. Ausgabe aus diesem Kodierungsblock sind so viele Busse wie es Unterbereiche gibt. Die Wortbreite entspricht der Breite der externen Zahldarstellung.
Der Überlauf-Block besteht aus einer einfachen Logik, die feststellt, ob bei einer konkreten Zahl die abgeschnittenen Stellen ungleich 0 sind. Ist das der Fall, tritt ein Überlauf auf. Ausgabe des Blocks ist zunächst die in der reinen, nicht Vorzeichen behaftete Zahldarstellung größtmögliche Zahl. Ob die Zahl positiv oder negativ ist, wird durch den Zustand des Vorzeichen-Bit S angegeben.
Bei der Erfindung:
- liegt das ursprüngliche Format in verschiedenen, aber fest definierten, Festkomma-Formaten vor;
- ist das kodierte Format von den Nichtlinearitäten der im Anschluß an die Kodierung folgenden nichtlinearen Funktion abhängig und für diese Funktion optimiert;
- wird der Definitionsbereich der sich anschließenden nichtlinearen Funktion in nötigenfalls unterschiedlich große Bereiche unterteilt, die durch unterschiedliche Kodierungen voneinander unterschieden werden;
- läßt sich das elektronische System durch einen kundenspezifischen Schaltkreis (ASIC) oder durch einen spezifischen Chip-Satz auf einer Elektronikkarte verwirklichen.
Mit dem Verfahren und dem elektronischen System zur Durchführung desselben erhält man folgende Vorteile:
- Die Genauigkeit der sich an die Kodierung anschließenden Funktion richtet sich ausschließlich nach der Breite des verwendeten Datenformats und nicht nach Nichtlinearitäten der Funktion. - Das vorgestellte System ist sehr schnell - beim aktuellen Stand der Technik: Berechnung innerhalb eines Taktzyklus bei 50 MHz - und mit geringem Hardware-Aufwand zu realisieren, da die Durchführung der Kodierung keine Rechenoperationen wie Addition oder Multiplikation verlangt, sondern aus einfachen Logik-Gliedern und Multiplexern aufgebaut ist.
Die Vorteile der Genauigkeitssteigerung treten bei rechenintensiven Algorithmen zutage. Insbesondere Anwendungen aus dem Bereich der Bild- und Signalerkennung, wie Diagnosesysteme in der Medizin- oder Mikrosystemtechnik, profitieren davon.
Beispiele sind die Erkennung von Mikroverkalkungen in der weiblichen Brust bei Vorsorgeuntersuchungen (siehe W. Eppler, T. Fischer, H. Gemmeke, R. Stotzka, T. Köder, „Neural Chip SAND/1 for Real Time Pattern Recognition", IEEE Transactions on Nuclear Sciences, Vol.45, No.4, Aug 1998, pp . 1819-1823) oder die Detektion kosmischer Teilchen (siehe W. Eppler, T. Fischer, H. Gemmeke, A. Chilingarian, A.Vardanyan, "Neural Chip SAND In Online Data Processing of Extensive Air Showers", Proceedings of Ist Int. Conf. on Modern Trends in Computational Physics, Dubna, Russia, June 1998) . In beiden Fällen reicht die Rechenleistung herkömmlicher Computer nicht mehr aus. Der rechenintensive Algorithmus läuft auf einer Einsteckkarte eines PCs ab, die mit einer Festkommaarithmetik arbeitet. Gleichzeitig müssen die Ergebnisse der Berechnung sehr genau sein. Das digitalelektronische Verfahren und die Hardware-Architektur zur Durchführung desselben sind dazu sehr gut geeignet.
Die Erfindung wird im folgenden anhand der einzigen Figur der Zeichnung noch näher erläutert. Die Figur zeigt das Blockschaltbild der Formatumwandlung.
Eine Zahl x der Breite n ist im Eingabeformat EFf = S Vf Nf (Vorzeichen, Vorkommastellen, Nachkommastellen) repräsentiert. Die Vorzeichen behafteten Zahlen haben alle das Vorzeichen an der höchstwertigen Stelle, f ist ein binär kodiertes Steuerwort der Länge F, welches die Nummer des aktuellen Datenformats angibt.
Es lassen sich 2F Eingabedaten-Formate definieren. Sie unterscheiden sich nur in der Position des Festkommas. Die Festlegung, welches Steuerwort welcher Festkomma-Position entspricht, ist frei wählbar. In einem ersten Verarbeitungsschritt werden die Bits (AI) mit den niedrigsten Werten, die später auf keinen Fall verwendet werden können, abgeschnitten. Die Bits (Ul) mit den höchsten Werten, die voraussichtlich niemals gesetzt werden, können ebenfalls abgeschnitten werden. Allerdings muß hier zur Sicherheit immer geprüft und gegebenenfalls ein Überlauf erzeugt werden.
Das Eingabeformat läßt sich dann auf eine weitere Art ausdrücken:
EFf = S Ülf Mf Alf. Die Breite der Mf ist einheitlich m.
Die Position des Festkommas ist abhängig vom gewählten Eingabeformat EFf. Das Zwischenformat ZF besitzt das Festkomma an einer bestimmten Stelle, unabhängig vom Eingabeformat EFf. Dafür müssen verschiedene Bereiche M f von EFf an die richtige Bitposition im Zwischenformat ZF kopiert werden. Dies geschieht durch die Abbildung
Ml: Mf ->M, die in einem technischen System durch einen Multiplexer oder eine vergleichbare Logik-Schaltung erreicht wird. Der Multiplexer Ml besitzt f Eingänge zu je m Stellen, nämlich die Stellen {n-1-ülf-m, ..., n-2-ülf}. Sie werden durch ihn auf das Zwischenformat
ZF = S M abgebildet .
Der Zahlenbereich, der durch das ZF-Format dargestellt wird, läßt sich in C Intervalle Ic unterteilen, so daß die Intervalle den gesamten Zahlenbereich von ZF abdecken. Überlappungen und
Lücken sind nicht erlaubt.
Zum einfachen Aufbau werden als Intervallgrenzen Zweierpotenzen verwendet. Damit wird mit einfachen Logik-Gliedern für jede Zahl festgestellt, in welchem Intervall sie sich befindet. Für jede im ZF-Format repräsentierte Zahl x gilt dann: x ε ιc für genau einen Index C.
Das Zwischenformat ZF = S M mit der Breite m+1 ist größer als das Ausgabeformat. Deshalb entfallen wieder einige höherwertige Bits Ü2, die auf einen Überlauf hin geprüft werden müssen, und einige niederwertige Bits A2, die einfach abgeschnitten werden. Für jedes Intervall Ic werden die Schnitte an unterschiedlichen Positionen vorgenommen. Das Zwischenformat wird deshalb auch folgendermaßen definiert:
ZF = S Ü2C Bc A2C.
Der Überlauf-Block stellt für die Stellen n-2 bis n-l-ülf des Eingabeformats EFf und für die Stellen m-1 bis m-ü2c des Zwischenformats fest, ob eine Stelle ungleich 0 ist. Ist das der Fall, wird der Überlauf Ü gesetzt. Für alle Eingabeformate EFf und Zwischenformate ZFC wird im Überlauf-Block folgende Operation ausgeführt:
Überlauf-Flag = 1, wenn x(i)=l für irgendein i aus {n-l-ülf, ..., n-2, m-ü2c, ..., m-1} Überlauf-Flag = 0, sonst.
Pro Format EFf und Zwischenformat ZFC ist für die Operation ein logisches ODER-Glied mit Ülf + Ü2C Eingängen erforderlich.
Das Ausgabeformat AF als Kodierung für eine Zahl x setzt sich folgendermaßen zusammen:
AF = S Kc Gc wobei S das Vorzeichen, Kc der Bereich der Kodierung und Gc ein Ausschnitt niederwertiger Bits ist, der sich teilweise mit Kc überlappen kann. Gc ist genau so breit, daß alle Zahlen des In- tervalls Ic mit der gewünschten Genauigkeit gebildet werden können. Die Intervallgröße, d.h. die Anzahl der Elemente des Intervalls, ist eine Zweierpotenz 2d, so daß Gc die Breite d besitzt. Die Breite von Kc ergibt sich aus der Breite des Ausgabeformats AF, abzüglich des Vorzeichenbits und der Breite von Gc. Die Kodierung Kc ist zunächst beliebig, richtet sich aber nach den Kodierungen der übrigen Intervalle, die sich gegenseitig ausschließen müssen. Alle Kodierungen K zusammen werden minimal angelegt, d.h. es gibt keine Kodierung, die keinem Intervall entspricht bzw. keine zwei Kodierungen, die das selbe Intervall repräsentieren. In beiden Fällen wird das Zahlenformat schlecht ausgenutzt und die maximal erzielbare Genauigkeit reduziert.
Die Kodierung Kc wird im Kodierungsblock aus Bc hergestellt. Dazu genügt bei günstiger Aufteilung der Intervalle die Abfrage weniger Bits von Bc, die über einfache Logik-Glieder verknüpft die Bits der neuen Kodierung Kc ergeben. Anschließend wird an Kc das Vorzeichen S und die Bits Gc mit niedrigen Werten angehängt. Dies wird im allgemeinen für jedes Intervall Ic getrennt vorgenommen, da die einzelnen Stücke unterschiedlich groß sein können. Eine Abbildung
M2: Kc Gc → KG bildet diese einzelnen Stücke auf das einheitliche Format
AF = S KG ab. Auch für diese Abbildung wird hier ein Multiplexer, nämlich M2, verwendet.
Wird anschließend auf die so kodierten Zahlen eine nichtlineare Funktion angewandt, muß darauf geachtet werden, daß die Funktionsberechnung ebenfalls unter Beachtung der Intervall-Einteilung Ic erfolgt. Für jedes Ic gilt eine andere Genauigkeit, d.h. der Abstand aufeinanderfolgender Werte aus dem Definitionsbereich ist innerhalb eines Intervalls gleich, zwischen den Intervallen aber im allgemeinen ungleich. Dies ist insbesondere auch bei der Verwendung von Lookup-Tabellen zu beachten.

Claims

Patentansprüche :
1. Digital-elektronisches Verfahren zur Steigerung der Berechnungsgenauigkeit bei nichtlinearen Funktionen, bestehend aus den Schritten:
- der zur Bearbeitung als Zahl anstehende Wert aus einer im allgemeinen nichtlinearen Funktion wird als Eingabewort zusammen mit einem zugehörigen, kodierten Steuerwort f mit dem Eingabeformat
EFf = S Ülf Mf Alf, und dem Komma an nicht festgelegter Stelle, wobei S die Vorzeichenstelle, Ülf die Stellen mit dem höchsten Wert, die voraussichtlich niemals gesetzt werden können, Mf die Stellen mit der einheitlichen Breite m und Alf die Stellen mit dem niedrigsten Wert, die nicht verwendet werden können, und der Index ,,f" das kodierte Steuerwort der Länge F ist, wird in eine erste Multiplexereinrichtung Ml einer elektronischen Datenverarbeitungseinrichtung mit 2F = f Eingängen zu je m Stellen eingegeben und
- in dieser auf ein Zwischenformat ZF = S Ü2C Bc A2C mit (m + 1) -Stellen und einer festen Kommastelle (Festkommadarstellung) abgebildet werden, wobei die Stellen Ü2C in der Überlaufeinrichtung Ü auf einen Überlauf hin überprüft und die niederwertigen Stellen A2C in der elektronischen Abschneideeinrichtung A abgetrennt werden,
- der Zahlenbereich, der durch das Zwischenformat ZF am Ausgang der ersten Multiplexereinrichtung Ml dargestellt wird, wird in C teilweise unterschiedlich große Intervalle unterteilt, die den gesamten Zahlenbereich von ..ZF ohne Überlappung und ohne Lücken überdecken,
- das Zwischenformat ZF wird in einen Bereich Kc zur Kodierung und in einen Bereich Gc niederwertiger Stellen unterteilt, wobei beide Bereiche sich überlappen können, - die Kodierung Kc wird in einer elektronischen Kodierungseinrichtung K aus Bc durchgeführt,
- an die vorzeichenbehaftete Kodierung SKC werden die nie- derwertigen Stellen Gc angehängt,
- in einer weiteren Multiplexereinrichtung M2 mit C Eingängen der Breite des Ausgangsformats AF wird elektronisch die Ausgabeabbildung
KcG —^ KG durchgeführt, so daß ein einheitliches Ausgabeformat
AF = S KG vorliegt .
Hardware-Architektur zur Durchführung eines digital-elektronischen Verfahrens zur Steigerung der Berechnungsgenauigkeit bei nichtlinearen Funktionen, bestehend aus den folgenden Baugruppen:
- einer ersten Multiplexereinrichtung Ml mit 2F Eingängen zur Eingabe beliebiger, durchnummerierbarer Eingangsformate festgelegter Wortbreite m mit dem Festkomma an unterschiedlicher Stelle, mit einem weiteren kodierten Steuereingang, über den die durchnummerierten Eingabeformate EFf angewählt werden können, mit einem Ausgang, an dem ein einheitliches Zwischenfor- mat ZF ebenfalls festgelegter Wortbreite, das das Festkomma an nur noch einer vorgegeben, festgelegten Stelle aufweist;
- einer Überlaufeinrichtung Ü, in die einerseits die höchstwertigen Stellen Ülf des Eingabeformats EFf, die voraussichtlich niemals gesetzt werden, und in die andrerseits die höherwertigen Stellen Ü2C des Zwischenwörts ZFm an der ersten Multiplexereinrichtung Ml, die auf einen Überlauf hin überprüft werden müssen, eingegeben und darin auf von Null verschiedene Stellen abgefragt werden, um dann im Falle gesetzter Stellen einen Alarm ausgeben zu können; - einer Kodierungseinrichtung K, in dem aus dem zu kodierenden Teilbereich Bc des Zwischenformats ZFm der kodierte Bereich Kc erzeugt wird;
- einer Abschneideeinrichtung A, in der die niedrigstwertigen Stellen Alf und die niederwertigen Stellen A2C von der weiteren Datenverarbeitung ausgeschlossen werden;
- einer zweiten Multiplexereinrichtung M2, in der der vorzeichenversehene, kodierte Bereich SKC und angehängte, un- kodierte Bereich Gc der niederwertigen Stellen im Zwischenformat ZF in ein vorgegebenes Ausgabeformat AF transformiert werden.
3. Digital-elektronisches System nach Anspruch 2, dadurch gekennzeichnet, daß die Überlaufeinrichtunt Ü, die Kodiereinrichtung K, die Abschneideeinrichtung A aus logischen Bausteinen aufgebaut sind.
4. Digital-elektronisches System nach Anspruch 3, dadurch gekennzeichnet, daß das System in einen spezifischen Chip oder in einen spezifischen Chipsatz gefaßt ist.
PCT/EP2000/000920 1999-02-15 2000-02-05 Digital-elektronisches verfahren zur steigerung der berechnungsgenauigkeit bei nichtlinearen funktionen und eine hardware-architektur zur durchführung des verfahrens WO2000049484A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP00905027A EP1161718A1 (de) 1999-02-15 2000-02-05 Digital-elektronisches verfahren zur steigerung der berechnungsgenauigkeit bei nichtlinearen funktionen und eine hardware-architektur zur durchführung des verfahrens
JP2000600163A JP2002537595A (ja) 1999-02-15 2000-02-05 非線形関数の計算精度をディジタル電子的に向上させる方法、およびこの方法を実施するハードウェアアーキテクチャ
US09/902,855 US6941329B2 (en) 1999-02-15 2001-07-12 Digital method for increasing the calculation accuracy in non-linear functions and hardware architecture for carrying out said method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19906559.4 1999-02-15
DE19906559A DE19906559C1 (de) 1999-02-15 1999-02-15 Digital-elektronisches Verfahren zur Steigerung der Berechnungsgenauigkeit bei nichtlinearen Funktionen und ein System zur Durchführung des Verfahrens

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US09/902,855 Continuation-In-Part US6941329B2 (en) 1999-02-15 2001-07-12 Digital method for increasing the calculation accuracy in non-linear functions and hardware architecture for carrying out said method

Publications (1)

Publication Number Publication Date
WO2000049484A1 true WO2000049484A1 (de) 2000-08-24

Family

ID=7897753

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2000/000920 WO2000049484A1 (de) 1999-02-15 2000-02-05 Digital-elektronisches verfahren zur steigerung der berechnungsgenauigkeit bei nichtlinearen funktionen und eine hardware-architektur zur durchführung des verfahrens

Country Status (5)

Country Link
US (1) US6941329B2 (de)
EP (1) EP1161718A1 (de)
JP (1) JP2002537595A (de)
DE (1) DE19906559C1 (de)
WO (1) WO2000049484A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007115687A1 (de) 2006-04-04 2007-10-18 Daimler Ag Lastschaltbares getriebe für ein nutzfahrzeug

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006013989A1 (de) * 2006-03-22 2007-09-27 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Verfahren zur Reduktion eines Polynoms in einem binären finiten Feld
CN100458647C (zh) * 2006-11-07 2009-02-04 北京中星微电子有限公司 一种提高数字信号处理器准确度的方法及装置
EP3816762B1 (de) 2019-10-30 2023-12-20 Carl Zeiss Industrielle Messtechnik GmbH Signalgenerator

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995002861A1 (en) * 1993-07-16 1995-01-26 Philips Electronics N.V. Data processing system with reduced look-up table for a function with non-uniform resolution

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3812470A (en) * 1972-07-31 1974-05-21 Westinghouse Electric Corp Programmable digital signal processor
US4215415A (en) * 1977-09-19 1980-07-29 Nippon Electric Company, Ltd. Recursive digital filter comprising a circuit responsive to first sum and feedback sign bits and second sum sign and integer bits for detecting overflow in the second sum
US4282581A (en) * 1979-10-15 1981-08-04 Sperry Corporation Automatic overflow/imminent overflow detector
US4694417A (en) * 1982-07-21 1987-09-15 Raytheon Company Method and apparatus for determining the magnitude of a square root of a sum of squared value using vernier addressing
US4636973A (en) * 1982-07-21 1987-01-13 Raytheon Company Vernier addressing apparatus
AU2578001A (en) * 1999-12-10 2001-06-18 Broadcom Corporation Apparatus and method for reducing precision of data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995002861A1 (en) * 1993-07-16 1995-01-26 Philips Electronics N.V. Data processing system with reduced look-up table for a function with non-uniform resolution

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"EFFICIENT EVALUATION OF X**N FOR LIGHTING CALCULATIONS", IBM TECHNICAL DISCLOSURE BULLETIN,US,IBM CORP. NEW YORK, vol. 36, no. 9B, 1 September 1993 (1993-09-01), pages 131 - 138, XP000397096, ISSN: 0018-8689 *
FISCHER T.: "OPTIMIERTE IMPLEMENTIERUNG NEURONALER STRUKTUREN IN HARDWARE", XP002138370, Retrieved from the Internet <URL:http://hikwww4.fzk.de/hbk/literatur/FZKA_Berichte/FZKA6251.pdf> [retrieved on 20000522] *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007115687A1 (de) 2006-04-04 2007-10-18 Daimler Ag Lastschaltbares getriebe für ein nutzfahrzeug

Also Published As

Publication number Publication date
DE19906559C1 (de) 2000-04-20
EP1161718A1 (de) 2001-12-12
US6941329B2 (en) 2005-09-06
US20030208515A1 (en) 2003-11-06
JP2002537595A (ja) 2002-11-05

Similar Documents

Publication Publication Date Title
DE19983175B4 (de) Verfahren, Prozessor und Einrichtung für Gleitkommaoperationen und Formatkonvertierungsoperationen
DE69518403T2 (de) Ein massiv multiplexierter, superskalarer prozessor mit harvard-architektur
DE69032891T2 (de) Verfahren und Gerät zur Ausführung mathematischer Funktionen mit Hilfe polynomialer Annäherung und eines Multiplizierers rechteckigen Seitenverhältnisses
DE60131247T2 (de) Dezimal-Binär Kodierer/Dekodierer
EP2189897B1 (de) Multiplikation einer ganzen Zahl mit einer Gleitkommazahl
DE3854212T2 (de) Signalgenerator für die Umlaufadressierung.
DE102020113480A1 (de) Zerlegte gleitkomma-multiplikation
EP1825356B1 (de) Verfahren zum bilden einer darstellung eines von einem quadrat eines wertes linear abhängigen berechnungsergebnisses
Verma et al. Multivariate morphometrics of the Indian honeybee in the northwest Himalayan region
EP0344347B1 (de) Einrichtung zur digitalen Signalverarbeitung
WO2000049484A1 (de) Digital-elektronisches verfahren zur steigerung der berechnungsgenauigkeit bei nichtlinearen funktionen und eine hardware-architektur zur durchführung des verfahrens
DE69426801T2 (de) Multiplizierer zur Berechnung von einfacher Genauigkeit, doppelter Genauigkeit, innerem Produkt und zur Multiplikation von komplexen Zahlen in den Betriebsarten
DE3303269C2 (de)
DE2826773A1 (de) Verfahren und schaltungsanordnung zum feststellen der wertigkeit von ziffern in arithmetischen operationen mit dezimalrechnern
DE2364865A1 (de) Erweitertes speicheradressenbildungssystem eines digitalen rechnersystems
WO1993017383A1 (de) Schaltungsanordnung zum digitalen multiplizieren von integer-zahlen
DE3889746T2 (de) Zähler.
DE102013209657A1 (de) FMA-Einheit, insbesondere zur Verwendung in einer Modellberechnungseinheit zur rein hardwarebasierten Berechnung von Funktionsmodellen
DE102013212840A1 (de) Modellberechnungseinheit und Steuergerät zur Berechnung eines datenbasierten Funktionsmodells mit Daten in verschiedenen Zahlenformaten
DE69328261T2 (de) Vorrichtung zur konversion einer binären gleitkommazahl in einen binären logarithmus mit der basis 2 oder dessen umkehrung
DE69918313T2 (de) Verfahren und vorrichtung zur signalkompression im festpunktformat ohne bias
DE69330363T2 (de) Parallelisierter Übertragvorgriffsaddierer
WO1999045462A1 (de) Datenpfad für signalverarbeitungsprozessoren
DE4126953C2 (de) Schaltungsanordnung zur Durchführung des CORDIC-Algorithmus
EP0433315A1 (de) Schaltungsanordnung zur addition oder subtraktion von im bcd-code oder dual-code codierten operanden

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2000905027

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 09902855

Country of ref document: US

ENP Entry into the national phase

Ref country code: JP

Ref document number: 2000 600163

Kind code of ref document: A

Format of ref document f/p: F

WWP Wipo information: published in national office

Ref document number: 2000905027

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 2000905027

Country of ref document: EP