DE3622205A1 - Integrated digital circuit for logarithmic signal processing - Google Patents

Integrated digital circuit for logarithmic signal processing

Info

Publication number
DE3622205A1
DE3622205A1 DE19863622205 DE3622205A DE3622205A1 DE 3622205 A1 DE3622205 A1 DE 3622205A1 DE 19863622205 DE19863622205 DE 19863622205 DE 3622205 A DE3622205 A DE 3622205A DE 3622205 A1 DE3622205 A1 DE 3622205A1
Authority
DE
Germany
Prior art keywords
output
data
comparator
digital
receiving
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.)
Withdrawn
Application number
DE19863622205
Other languages
German (de)
Inventor
Lawrence Fulton Wagner
Wayne Peter Burleson
John Phillip Guadagna
Korbin S Van Dyke
Robert Donald Hemming
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.)
Philips Semiconductors Inc
Original Assignee
VLSI Technology Inc
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
Priority claimed from US06/751,305 external-priority patent/US4626825A/en
Priority claimed from US06/751,302 external-priority patent/US4852038A/en
Priority claimed from US06/751,304 external-priority patent/US4862346A/en
Application filed by VLSI Technology Inc filed Critical VLSI Technology Inc
Publication of DE3622205A1 publication Critical patent/DE3622205A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/0307Logarithmic 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

Abstract

An integrated circuit for logarithmic signal processing has a logarithmic converter and a logarithmic computer, each with a comparator array logic (CAL circuit). The CAL circuit has a large number of comparators, which are connected to each other, and are arranged in an array. A digital value is stored in each of the comparators. The CAL circuit stores all digital values in monotonically ascending or descending sequence. Each of the comparators receives the input data signal and compares it with the digital values which are stored in the comparator. A comparison signal which depends on the comparison is generated. The comparison signal of every comparator is received by an end cell, which also receives the comparison signal of the immediately adjacent comparator. The end cell generates an output signal. An end cell is assigned to each comparator. The large number of output signals from the end cells gives the position of the comparator of which the stored digital value is next to the value of the input data signal. <IMAGE>

Description

Eine integrierte Schaltung zur logarithmischen Signal­ verarbeitung weist einen logarithmischen Umwandler und einen logarithmischen Rechner auf, denen jeweils eine lo­ gische Vergleichsarrayschaltung (CAL-Schaltung) zugeord­ net ist. In der CAL-Schaltung sind eine Vielzahl Vergleicher in einem Array angeordnet. Jeder der Vergleicher speichert einen digitalen Wert. Die CAL-Schaltung speichert alle digitalen Werte in monoton steigender oder fallender Fol­ ge. Jeder der Vergleicher erhält das Eingangsdatensig­ nal und vergleicht dasselbe mit den im Vergleicher gespei­ cherten digitalen Werten.An integrated circuit for logarithmic signal processing has a logarithmic converter and a logarithmic calculator, each of which has a lo assigned comparison array circuit (CAL circuit) is not. There are a large number of comparators in the CAL circuit arranged in an array. Each of the comparators saves a digital value. The CAL circuit stores them all digital values in monotonously increasing or falling fol ge. Each of the comparators receives the input data signal nal and compares the same with those saved in the comparator digital values.

Systeme zum Umwandeln ganzzahliger Daten in logarithmi­ sche Daten, zum Operieren auf diesen logarithmischen Daten und zur Rückumsetzung in ganze Zahlen sind allgemein be­ kannt, siehe z. B. IEEE Transactions On Computers, Bd. C-32, Nr. 6, Juni 1983, SS. 531-534, in denen eine loga­ rithmische, arithmetische Recheneinheit offenbart ist. Hingewiesen sei ferner auf Electron. Lett. 7:56-58 (1971), SS. 215-217, den Artikel mit dem Titel "Digital Filter­ ing Using Logarithmic Arithmetic"; IEEE Transactions On Computers, Bd. 24, Nr. 8, August 1975, SS. 761-765, den Artikel mit dem Titel "Multiplication Using Logarithms Implemented With Read-Only Memory" von Brubaker et al.; IEEE Transactions On Acoustics, Speech And Signal Proces­ sing, Bd. ASSP-31, Nr. 1, Februar 1983, SS. 232-234; IEEE Transactions On Computers, Dezember 1975, SS. 1238- 1242; IEEE Transactions On Computers, Bd. C-32, Nr. 6, Juni 1983, SS. 526-530; und auch "The Implementation Of Logarithmic Arithmetic" von Bechtolsheim et al., Stan­ ford University, 7. März 1981; und IEEE Transactions On Acoustics, Speech And Signal Processing, Bd. ASSP-28, Nr. 6, Dezember 1980, den Artikel mit dem Titel "Error Analysis of Recursive Digital Filters Implemented With Logarithmic Number Systems" von Kurokawa et al.Systems for converting integer data to logarithmi cal data, for operating on this logarithmic data and to convert back to whole numbers are generally knows, see e.g. B. IEEE Transactions On Computers, Vol. C-32, No. 6, June 1983, pp. 531-534, in which a loga rithmic arithmetic processing unit is disclosed. Attention is also drawn to Electron. Lett. 7: 56-58 (1971), SS. 215-217, the article entitled "Digital Filter ing Using Logarithmic Arithmetic "; IEEE Transactions On Computers, Vol. 24, No. 8, August 1975, pp. 761-765 Article titled "Multiplication Using Logarithms Implemented With Read-Only Memory "by Brubaker et al .; IEEE Transactions On Acoustics, Speech And Signal Proces sing, vol. ASSP-31, No. 1, February 1983, pp. 232-234; IEEE Transactions On Computers, December 1975, pp. 1238- 1242; IEEE Transactions On Computers, Vol. C-32, No. 6, June 1983, pp. 526-530; and also "The Implementation Of Logarithmic Arithmetic "by Bechtolsheim et al., Stan Ford University, March 7, 1981; and IEEE Transactions On Acoustics, Speech And Signal Processing, Vol. ASSP-28, No. 6, December 1980, the article entitled "Error  Analysis of Recursive Digital Filters Implemented With Logarithmic Number Systems "by Kurokawa et al.

Mit allen bekannten Systemen sind entweder durch Soft­ ware- oder Hardware-Implementierung ganze Zahlen in loga­ rithmische Zahlen umgewandelt worden, auf denen dann operiert wurde und die dann in ganze Zahlen zurück verwandelt wurden. Bei der Software-Implementierung besteht die Schwierigkeit hauptsächlich darin, daß eine Anzahl von Maschinen­ zyklen nötig ist, um die Aufgabe durchzuführen. In man­ chen Anwendungsfällen, beispielsweise bei der digitalen Signalverarbeitung oder der Fourier-Analyse ist Geschwin­ digkeit ein notwendiges Element. Aus diesem Grund ist die Umwandlung mittels Software unpraktikabel.With all known systems are either by soft goods or hardware implementation integers in loga rithmic numbers have been converted on which then operated and which were then converted back into whole numbers. In the Software implementation is the difficulty mainly in that a number of machines cycles is necessary to complete the task. In one Chen use cases, for example in digital Signal processing or Fourier analysis is Geschwin a necessary element. For this reason, the Conversion using software is impractical.

Bei der Hardware-Implementierung einer logarithmischen Recheneinheit oder eines logarithmischen Prozessors be­ steht das größte Hindernis in den Kosten für die Hardware. Da die Nachschlagetabelle zum Umwandeln der und Operieren auf den Logarithmen im allgemeinen einen großen Speicher er­ fordert, sind die Kosten von Nachteil.When implementing a logarithmic hardware Computing unit or a logarithmic processor be is the biggest obstacle in the cost of hardware. Because the lookup table for converting and operating on the logarithms generally have a large memory demands, the costs are disadvantageous.

Digitale Speicherschaltungen, wie ROMs (Festwertspeicher) und RAMs (Direktzugriffspeicher) sind allgemein be­ kannt. Diese Speicherschaltungen erhalten ein digitales Eingangssignal, welches den Platz der Speicherzelle angibt, zu der Daten Zugriff haben sollen. Es ist üblich, das digitale Eingangssignal als Adressensignal zu bezeichen. In Abhängigkeit von dem Adressensignal wird dann der Speicherinhalt am Platz der Adresse entweder in die Speicherschaltung eingegeben oder aus dieser abgerufen. Sol­ che Speicherschaltungen sind deterministisch, da es für jedes Adressensignal einen eindeutigen Speicher­ platz gibt, von dem die zugehörigen Daten entweder aus der betreffen­ den Speicherzelle abgerufen oder in sie eingegeben wird. Digital memory circuits such as ROMs (read-only memories) and RAMs (random access memories) are generally known knows. These memory circuits receive a digital one Input signal, which is the space of the memory cell specifies to which data should have access. It is common that to designate the digital input signal as an address signal. Depending on the address signal, the Memory content at the address in either the Memory circuit entered or retrieved from it. Sol che memory circuits are deterministic, since there is a unique memory for each address signal space from which the associated data either relate to the the memory cell is retrieved or entered into it.  

Digitale Vergleicher sind gleichfalls allgemein bekannt. Ein digitaler Vergleicher erhält ein digitales Eingangs­ signal und vergleicht es mit einem gespeicherten, digita­ len Signal. Dann wird in Abhängigkeit von diesem Vergleich ein Ausgangssignal erzeugt.Digital comparators are also well known. A digital comparator receives a digital input signal and compares it with a stored digital len signal. Then depending on this comparison generates an output signal.

Schließlich sind auch Stoß-(Flash-)-Analog- Digital-Umsetzer (A/D-Umsetzer) bekannt. Ein Stoß- A/D-Umsetzer ist ein Hochgeschwindigkeits-A/D-Umsetzer, in welchem Analogdaten in ein lineares Array eingegeben werden. Eine Vielzahl von Analogvergleichern im Array vergleicht das Analogsignal und erzeugt eine Vielzahl von Digitalsignalen. Jeder Analogvergleicher ist ein Bezugs­ spannungsvergleicher oder ein A/D-Umsetzer.Finally, shock (flash) analog Digital converter (A / D converter) known. A shock A / D converter is a high speed A / D converter, in which analog data is entered into a linear array will. A variety of analog comparators in the array compares the analog signal and generates a variety of Digital signals. Every analog comparator is a reference voltage comparator or an A / D converter.

Mit der vorliegenden Erfindung wird eine digitale Schal­ tung offenbart. Diese digitale Schaltung erhält ein Ein­ gangsdatensignal, welches einen Eingangswert darstellt. Zu der Schaltung gehört eine Vielzahl von Vergleichern, die jeweils einen digitalen Wert speichern. Die in der Viel­ zahl von Vergleichern gespeicherten digitalen Werte werden in monoton steigender oder fallender Folge gespeichert. Jeder Vergleicher erhält das Eingangsdatensignal und vergleicht den Eingangswert, den es darstellt, mit dem im Vergleicher gespeicherten digitalen Wert. Daraufhin er­ zeugt der Vergleicher in Abhängigkeit von diesem Vergleich ein Vergleichssignal. Es wird eine Vielzahl von Vergleichs­ signalen erzeugt und einer Einrichtung zugeführt, die darauf unter Erzeugung eines Ausgangssignals anspricht, welches den Ort desjenigen Vergleichers darstellt, dessen gespeicherter digitaler Wert an den Wert des Eingangswer­ tes angrenzt.With the present invention, a digital scarf tion revealed. This digital circuit gets an on output data signal, which represents an input value. To a large number of comparators belongs to the circuit save one digital value each. The one in the lot number of digital values stored by comparators stored in monotonically increasing or decreasing order. Each comparator receives the input data signal and compares the input value it represents with that in Comparator stored digital value. Then he the comparator testifies as a function of this comparison a comparison signal. There will be a variety of comparative signals generated and fed to a device that responds to it producing an output signal, which represents the location of the comparator whose stored digital value to the value of the input value adjacent.

Die Erfindung offenbart außerdem eine digitale Rechen­ vorrichtung. Diese Vorrichtung weist eine Einrichtung zur gleichzeitigen Aufnahme von vier Operanden (a,b,c,d) auf. Eine erste Multiplizier/Dividiereinheit be­ rechnet a × b oder a ÷ b und liefert ein Ausgangssignal U. Eine zweite Multiplizier/Dividiereinheit be­ rechnet c × d oder c ÷ d und liefert ein Ausgangs­ signal V. Eine Addier/Subtrahiereinheit erhält U und V und berechnet U + V sowie U - V. Eine Steu­ ereinheit steuert den Betrieb der ersten und zweiten Mul­ tipliezier/Dividiereinheit, um entweder die Multiplikation oder Division zu wählen.The invention also discloses a digital computing device. This device has a device for the simultaneous recording of four operands ( a, b, c, d ). A first multiplier / divider unit calculates a × b or a ÷ b and supplies an output signal U. A second multiplier / divider unit calculates c × d or c ÷ d and delivers an output signal V. An adding / subtracting unit receives U and V and calculates U + V and U - V. A control unit controls the operation of the first and second multiplying / dividing units to select either multiplication or division.

Eine digitale Vorrichtung zum Umwandeln einer digitalen binären ganzen Zahl mit einer Vielzahl von Bits in eine logarithmische Darstellung und umkehrt ist gleichfalls offenbart. Zum Umwandeln oder Umsetzen der digitalen, bi­ nären ganzen Zahl in eine logarithmische Darstellung weist die Vorrichtung eine Einrichtung auf, welche die Bitposi­ tion des führenden Bits ungleich null der ganzen Zahl festgestellt. Ferner gehört zu der Vorrichtung eine Einrich­ tung, mittels der die ganzen Zahlen so verschoben oder stellenversetzt werden, daß das führende Bit ungleich null das am weitesten links stehende Bit ist. Eine Tabellen­ einrichtung erhält die stellenversetzte ganze Zahl und liefert eine Zahl, welche den Mantissenteil des Logarith­ mus der stellenversetzten Zahl darstellt. Ferner gehört zu der Vorrichtung eine Codiereinrichtung, die einen Kom­ masetzeingabewert und die Zahl der von der Verschiebeein­ richtung stellenversetzten binären Position erhält und den Exponententeil des Logarithmus der ganzen Zahl er­ zeugt. Somit bilden der Mantissen- und der Exponententeil die logarithmische Darstellung der ganzen Zahl.A digital device for converting a digital binary integer with a large number of bits in one logarithmic representation and reversed is also disclosed. To convert or convert the digital, bi shows its integer in a logarithmic representation the device has a device which the bit posi leading bit non-zero integer detected. A device also belongs to the device by means of which the whole numbers are shifted or be offset that the leading bit is not zero is the leftmost bit. A tables facility receives the digit and integer returns a number which is the mantissa part of the logarith mus represents the staggered number. Heard further to the device a coding device that a com input value and the number of the shift receives position shifted binary position and the exponent part of the logarithm of the integer testifies. Thus, the mantissa and exponent parts form the logarithmic representation of the integer.

Die digitale Vorrichtung zum Umsetzen der logarithmischen Darstellung einer ganzen Zahl in eine binäre ganze Zahl weist eine Tabelleneinrichtung auf, die den Mantissenteil der logarithmischen Darstellung empfängt und eine erste Zahl liefert. Eine Decodiereinrichtung empfängt den Expo­ nententeil der logarithmischen Darstellung und einen Kom­ masetzausgabewert und liefert ein Verschiebesignal. Eine Verschiebeeinrichtung empfängt das Stellenversetzungs- oder Verschiebesignal und die erste Zahl und verschiebt die erste Zahl mittels des Verschiebesignals, um die gan­ ze Zahl zu erzeugen.The digital device for converting the logarithmic Representation of an integer in a binary integer has a table facility that the mantissa part of the logarithmic representation and receives a first Number delivers. A decoder receives the expo part of the logarithmic representation and a com masetzausgabewert and delivers a shift signal. A Slider receives the job transfer or Shift signal and the first number and shifts  the first number using the shift signal to move the gan generate ze number.

Zusätzlich wird ein digitaler Prozessor mit einem Adres­ senbus und einem Datenbus zur Kommunikation damit offenbart. Zu dem Prozessor gehört eine Datenregisterein­ richtung zur Kommunikation mit dem Datenbus und zum Emp­ fang und Speichern von Daten von demselben. Ferner gehört zu dem Prozessor eine Datenumwandlungseinrichtung, die zur Kommunikation an die Datenregistereinrichtung an­ schließbar ist, um Daten in einer Form, beispielsweise ganzzahlige Daten aus der Datenregistereinrichtung in Da­ ten einer anderen Form, z. B. logarithmische Daten umzu­ wandeln, damit die Daten in der Datenregistereinrichtung gespeichert werden können. Zu der Datenumwandlungsein­ richtung gehört ferner eine Einrichtung zum Rückumsetzen von Daten in die eine Form und zum Speichern dieser Daten in der Datenregistereinrichtung. Ferner weist der Prozes­ sor eine Recheneinrichtung auf, die gleichfalls zur Kommuni­ kation an die Datenregistereinrichtung anschließbar ist. Die Recheneinrichtung erhält Daten in einer anderen Form von der Datenregistereinrichtung, führt an diesen Rechnungen durch und speichert Rechenergebnisse in der Datenregistereinrichtung.In addition, a digital processor with an address senbus and a data bus for communication with it disclosed. A data register belongs to the processor Direction for communication with the data bus and for emp capture and store data from the same. Heard further to the processor a data conversion device that for communication to the data register device is closable to data in a form, for example integer data from the data register device in Da another form, e.g. B. move log data convert so the data in the data register facility can be saved. To the data conversion direction also includes a device for relocating of data in one form and for storing that data in the data register facility. Furthermore, the process sor a computing device that also for communication cation can be connected to the data register device. The computing device receives data in another Form of the data register device, leads to this Through calculations and stores calculation results in the Data register facility.

Zu dem Prozessor gehört auch eine Steuereinrichtung zur Kommunikation mit dem Adressenbus und dem Datenbus. Die Steuereinrichtung hat einen schnellen Pufferspeicher oder Cache-Speicher zum Speichern von Pro­ grammbefehlen, eine Einrichtung zum Decodieren von Pro­ grammbefehlen sowie eine Einrichtung zum Erzeugen interner Programmbefehle. Zu der Steuereinrichtung gehört ferner eine interne Buseinrichtung, die die Steuereinrichtung zur Kommunikation mit der Datenregistereinrichtung, Datenumwandlungseinrichtung und der Recheneinrichtung ver­ bindet, um interne Programmbefehle zu kommuni­ zieren. Der Betrieb der Steuereinrichtung steuert den Betrieb des Prozessors über die internen Programmbefehle. A control device also belongs to the processor for communication with the address bus and the Data bus. The control device has a fast one Buffer memory or cache memory for storing Pro gram commands, a device for decoding Pro gram commands and a device for generating internal Program commands. The control device also belongs an internal bus device that the control device for communication with the data register device, Data conversion device and the computing device ver binds to communicate internal program commands adorn. The operation of the control device controls the Operation of the processor via the internal program commands.  

Im folgenden ist die Erfindung mit weiteren vorteilhaften Einzelheiten anhand schematisch dargestellter Ausführungs­ beispiele näher erläuert. In den Zeichnungen zeigt:The invention is advantageous in the following Details with the aid of schematically represented execution examples explained in more detail. In the drawings:

Fig. 1 ein Blockschaltbild eines digitalen Prozessors mit einer Steuereinrichtung, einer logarithmischen Um­ wandlungseinrichtung, einer logarithmischen Rechen­ einrichtung und einer Datenspeichereinrichtung; Fig. 1 is a block diagram of a digital processor having a control device, a logarithmic order conversion means, means a logarithmic arithmetic and a data storage device;

Fig. 1a ein schematisches Blockschaltbild des Befehlsde­ codierteils des Prozessors gemäß Fig. 1; FIG. 1a is a schematic block diagram of the Befehlsde coding portion of the processor of FIG. 1;

Fig. 1b ein schematisches Blockschaltbild des Adressenregi­ sterspeicherteils des Prozessors gemäß Fig. 1; FIG. 1b shows a schematic block diagram of the Adressenregi sterspeicherteils of the processor of FIG. 1;

Fig. 1c und 1d schematische Blockschaltbilder des Indexein­ heitenteils des Prozessors gemäß Fig. 1; FIG. 1c and 1d are schematic block diagrams of the Indexein integral part of the processor of FIG. 1;

Fig. 2 ein Blockschaltbild der logarithmischen Umwand­ lungseinrichtung; Fig. 2 is a block diagram of the logarithmic conversion device;

Fig. 2a und 2b zeigen die beiden Arbeitsweisen der loga­ rithmischen Umwandlungseinrichtung gemäß Fig. 2, d. h. die Umwandlung ganzzahliger Daten in logarith­ mische Daten und die Umwandlung logarithmischer Da­ ten in ganzzahlige Daten; . Fig. 2a and 2b show the two modes of operation of loga rithmischen conversion device according to Fig 2, the conversion that is integer data in logarithmic mix data and the conversion logarithmic da ta into integer data;

Fig. 3 ein Blockschaltbild des Datenregisterspeichers gemäß Fig. 1; FIG. 3 shows a block diagram of the data register memory according to FIG. 1;

Fig. 4 ein Blockschaltbild der logarithmischen Rechenein­ richtung gemäß Fig. 1; FIG. 4 is a block diagram of the logarithmic computing device according to FIG. 1;

Fig. 4a den Graphen von x und log2(1 ± 2-x ); FIG. 4a shows the graphs of x and log 2 (1 ± 2 - x);

Fig. 4b ein Schema eines Teils der logarithmischen Re­ cheneinrichtung gemäß Fig. 4; Fig. 4b is a schematic of part of the logarithmic Re computing device according to Fig. 4;

Fig. 5 ein Schema einer logischen Vergleicherarrayschal­ tung (CAL-Schaltung); Fig. 5 is a schematic of a logic comparator array circuit (CAL circuit);

Fig. 6 ein Schema eines weiteren Ausführungsbeispiels einer CAL-Schaltung; Fig. 6 is a schematic of a further embodiment of a circuit CAL;

Fig. 6a ein Schaltbild eines Bitvergleichers, der einen Teil der in Fig. 6 gezeigten CAL-Schaltung bildet; Fig. 6a is a circuit diagram of a bit comparator which forms part of the CAL circuit shown in Fig. 6;

Fig. 6b Schaltbilder des Bitvergleichers gemäß Fig. 6a, programmiert;Programmed 6b are circuit diagrams of the bit comparator according to Fig. 6a.

Fig. 6c, 6d und 6e weitere Ausführungsbeispiele von Bit­ vergleichern; Comparators 6c, 6d and 6e show further embodiments of bits.

Fig. 7 ein Logik-Schaltbild einer in der CAL- Schaltung gemäß Fig. 6 benutzten Endzelle; FIG. 7 shows a logic circuit diagram of an end cell used in the CAL circuit according to FIG. 6;

Fig. 8 einen weiteren Bitvergleicher, der in der CAL- Schaltung verwendbar ist, wobei der gespeicherte Wert veränderbar ist;8 shows a further bit comparator usable in the circuit CAL, wherein the stored value is variable.

Fig. 8a ein weiteres Ausführungsbeispiel eines Bitver­ gleichers, bei dem der gespeicherte Wert veränder­ bar ist; Fig. 8a shows a further embodiment of a Bitver gleichers, wherein the stored value is Variegated bar;

Fig. 9 logische Gleichungen und Wahrheitstafeln für die CAL-Schaltung. Fig. 9 logical equations and truth tables for the CAL circuit.

Fig. 1 ist ein Blockschaltbild eines Prozessors 10 für Digitalsignale, der einen Adressenbus 12 und einen Daten­ bus 14 aufweist, die jeder sechzehn Bit breit sind und so angeschlossen sind, daß sie mit weiteren digitalen Vorrichtungen, wie Speichern und weiteren Mikroprozesso­ ren in Verbindung treten können. Fig. 1 is a block diagram of a processor 10 for digital signals, which has an address bus 12 and a data bus 14 , each sixteen bits wide and connected to connect with other digital devices such as memories and other microprocessors can.

Zu dem digitalen Prozessor 10 gehört eine Steuerung 16 ein logarithmischer Umsetzer 18, ein Datenregisterspeicher 20 und ein logarithmischer Rechner 22. Die Steuerung 16 ist über einen internen Befehlsbus 24 mit dem logarithmi­ schen Umsetzer 18, dem Datenregisterspeicher 20 und dem lo­ garithmischen Rechner 22 verbunden und kommuniziert mit diesen. Der Prozessor 10 weist ferner eine Steuereinheit 36 auf, die externe Steuersignale für den Datenbus 14 und Adressen­ bus 12 erhält oder erzeugt. Eine solche Steuereinheit 36 ist bekannt.The digital processor 10 includes a controller 16, a logarithmic converter 18 , a data register memory 20 and a logarithmic computer 22 . The controller 16 is connected via an internal command bus 24 to the logarithmic converter 18 , the data register memory 20 and the local computer 22 and communicates with them. The processor 10 also has a control unit 36 which receives or generates external control signals for the data bus 14 and addresses bus 12 . Such a control unit 36 is known.

Zur Steuerung 16 gehört ferner ein Cache-Speicher 26 für Programme mit einem Programmzähler 28, einem Befehlsdeco­ dierer(I-Decoder) 30, einem Adressenregisterspeicher 32 und einer Indexeinheit 34.The controller 16 also includes a cache memory 26 for programs with a program counter 28 , a command decoder (I decoder) 30 , an address register memory 32 and an index unit 34 .

Der Datenbus ist mit sechzehn Statusregistern 13 verbun­ den, deren Inhalt von allen Einheiten, z. B. Converter 22 und Rechner 18, des Prozessors 10 aktualisiert wird und auf die der externe Prozessors 10 zugreifen kann. Diese Statusregister 13 führen auch Sprungkontrollen in Abhän­ gigkeit von den Statusregistern 13 durch. Der Datenbus 14 ist auch an den Programm-Cache-Speicher 26 und den Datenre­ gisterspeicher 20 des Prozessors 10 zur Kommunikation damit angeschlossen. Der Adressenbus 12 ist zur Kommunikation mit dem Adressenregisterspeicher 32, der Index­ einheit 34 und dem Programmzähler 28 verbunden. Der interne Befehls­ bus 24 verbindet den Decodierer 30 für Programmbefehle mit dem Adressenregisterspeicher 32, der Indexeinheit 34, dem Programmzähler 28, dem logarithmischen Umsetzer 18, dem Datenregisterspeicher 20 und dem logarithmischen Rechner 22.The data bus is connected to sixteen status registers 13 , the content of all units, e.g. B. Converter 22 and computer 18 , the processor 10 is updated and to which the external processor 10 can access. These status registers 13 also perform jump checks depending on the status registers 13 . The data bus 14 is also connected to the program cache 26 and the data register 20 of the processor 10 for communication therewith. The address bus 12 is connected for communication with the address register memory 32 , the index unit 34 and the program counter 28 . The internal command bus 24 connects the decoder 30 for program commands to the address register memory 32 , the index unit 34 , the program counter 28 , the logarithmic converter 18 , the data register memory 20 and the logarithmic computer 22 .

Wie bei allen von-Neumann-Maschinen üblich, werden Program­ me und Daten in hier nicht gezeigten Speichern außerhalb des Prozessors 10 gespeichert, zu denen der Adressenbus 12 und der Datenbus 14 Zugriff haben. Wenn ein Programmbefehl abgerufen wird, wird er auf dem Datenbus 14 zur Verfügung gestellt und in den Programm-Cache-Speicher 26 ge­ laden. Wenn Daten abgerufen werden, werden sie auf dem Datenbus 14 zur Verfügung gestellt und an den Datenregi­ sterspeicher 20 gegeben. Die Adresse für den Speicher­ platz, welcher entweder das Programm oder die Daten enthält, wird auf dem Adressenbus 12 zur Verfügung ge­ stellt.As is usual with all von Neumann machines, programs and data are stored in memories (not shown here) outside the processor 10 , to which the address bus 12 and the data bus 14 have access. When a program instruction is retrieved, it is provided on the data bus 14 and loaded into the program cache 26 . When data is retrieved, it is provided on the data bus 14 and given to the data register memory 20 . The address for the memory space, which contains either the program or the data, is made available on the address bus 12 .

Bei dem Programm-Cache-Speicher 26 und dem Programm­ zähler 28 handelt es sich um herkömmliche Hardware-Ele­ mente, die allgemein bekannt sind. Der Cache-Speicher 26 ist ein üblicher schneller Pufferspeicher mit zweiund­ dreißig Registern, zu je zweiunddreißig Bit. Da der Datenbus 14 nur sechzehn Bits breit ist, werden zwei Speicherladevorgänge aus dem Datenbus 14 benötigt, um jedes Register des Programm-Cache-Speichers 26 zu füllen.The program cache memory 26 and the program counter 28 are conventional hardware elements that are generally known. The cache memory 26 is a common high-speed buffer memory with thirty-two registers, thirty-two bits each. Because data bus 14 is only sixteen bits wide, two memory loads from data bus 14 are required to fill each register of program cache 26 .

Der Befehlsdecodierer 30 decodiert jeden interen Befehl des Prozessors 10 und formuliert die Befehle, die den Programmzähler 28, den Adressenregisterspeicher 32, die Indexeinheit 34, den logarithmischen Umsetzer 18, den Da­ tenregisterspeicher 20 sowie den logarithmischen Rechner 22 steuern.The instruction decoder 30 decodes each internal instruction of the processor 10 and formulates the instructions which control the program counter 28 , the address register memory 32 , the index unit 34 , the logarithmic converter 18 , the data register memory 20 and the logarithmic computer 22 .

Der Adressenregisterspeicher 32 ist ein RAM mit vier Anschlüs­ sen (Ports) und besteht aus sechzehn Registern zu je sechzehn Bit. Die Indexeinheit 34 führt eine Adressenindizierung anhand von vier Adresseneingängen vom Adressenregisterspeicher 32 durch.The address register memory 32 is a RAM with four connections (ports) and consists of sixteen registers of sixteen bits each. The index unit 34 performs address indexing based on four address inputs from the address register memory 32 .

Wenn der Prozessor 10 für digitale Signale in Betrieb ist, werden ganzzahlige Daten vom Datenbus 14 an den Datenregisterspeicher 20 gegeben, bei dem es sich um einen Speicher mit einer Vielzahl von Anschlüssen (Ports) und mit acht 16-Bit-Registern handelt. Der logarithmische Umsetzer 18 kommuniziert mit dem Datenregisterspeicher 20 und empfängt von diesem die ganzzahligen Daten. Der logarithmische Umsetzer 18 wandelt die ganzzahlige Zahl in eine logarithmische Zahl um und speichert diese im Datenregisterspeicher 20.When the digital signal processor 10 is operating, integer data is provided from the data bus 14 to the data register memory 20 , which is a multi-port memory with eight 16-bit registers. The logarithmic converter 18 communicates with the data register memory 20 and receives the integer data therefrom. The logarithmic converter 18 converts the integer number into a logarithmic number and stores it in the data register memory 20 .

Der logarithmische Rechner 22 kommuniziert auch mit dem Datenregisterspeicher 20. Er empfängt die im Datenregisterspeicher 20 gespeicherten logarithmischen Zahlen und operiert auf ihnen. Zu den von ihm durchgeführten Operationen gehören Addition, Subtraktion, Multiplikation, Division, Multiplikation mit Akkumulation, spezielle FFT und komplexe Arithmetik. Nach der Operation gibt der logarithmische Rechner 22 die resultierende logarithmische Zahl zurück und speichert sie im Datenregisterspeicher 20.The logarithmic computer 22 also communicates with the data register memory 20 . It receives the logarithmic numbers stored in the data register memory 20 and operates on them. The operations he performs include addition, subtraction, multiplication, division, multiplication with accumulation, special FFT and complex arithmetic. After the operation, the logarithmic calculator 22 returns the resulting logarithmic number and stores it in the data register memory 20 .

Danach empfängt der logarithmische Umsetzer 18 die logarithmische Zahl aus dem Datenregisterspeicher 20 und wandelt sie in ganzzahlige Daten um, die dann im Datenregisterspeicher 20 gespeichert werden. Die Zahl in ganzzahliger Form wird dann dem Datenbus 14 zur Ausgabe an weitere, außerhalb des Prozessors 10 liegende digitale Vorrichtungen übergeben.The logarithmic converter 18 then receives the logarithmic number from the data register memory 20 and converts it into integer data, which are then stored in the data register memory 20 . The integer number is then passed to the data bus 14 for output to other digital devices located outside of the processor 10 .

Der Prozessor 10 ist hier zwar als für die Umwandlung von und Operation auf Daten in Verbindung mit Logarithmen brauchbar beschrieben worden; aber es liegt auf der Hand, daß er auch zum Umwandeln von und Operieren auf Daten auf anderen Gebieten, beispielsweise Gleitkomma benutzt werden kann. In diesem Fall setzt der Converter 22 ganzzahlige Daten in Daten mit Gleitkomma um und umgekehrt. Ähnlich wäre der Rechner 18 dann ein Gleitkomma-Rechner.Processor 10 has been described herein as being useful for converting and operating on data in conjunction with logarithms; but it is obvious that it can also be used to convert and operate on data in other fields, such as floating point. In this case, converter 22 converts integer data into floating point data and vice versa. Similarly, the calculator 18 would then be a floating point calculator.

Außerdem ist der Prozessor 10 hier im Zusammenhang mit einem Programm-Cache-Speicher 26 beschrieben worden, der Programmbefehle über den liegenden Datenbus 14 extern vom Prozessor 10 empfängt. Es liegt auf der Hand, daß der Programm-Cache- Speicher 26 auch ein ROM sein kann, so daß alle Programmbefehle innerhalb des Prozessors 10 selbst enthalten sind.In addition, processor 10 has been described here in connection with a program cache memory 26 , which receives program commands externally from processor 10 via the data bus 14 lying down. It is obvious that the program cache 26 can also be a ROM, so that all program instructions are contained within the processor 10 itself.

Befehlsdecodierer Instruction decoder

Der Befehlsdecodierer 30 ist in Fig. 1a mehr im einzelnen gezeigt. Der Befehlsdecodierer 30 empfängt jeden 32-Bitbefehl aus dem Programm-Cache-Speicher 26 und speichert ihn in einem Befehlsregister 38.Instruction decoder 30 is shown in more detail in Fig. 1a. Instruction decoder 30 receives each 32-bit instruction from program cache 26 and stores it in an instruction register 38 .

Aus dem Befehlsregister 38 werden fünfzehn ausgewählte Bits der zweiunddreißig Bits als Befehle für Registersprünge decodiert, die der Indexeinheit 34 und dem Programmzähler 28 zugeleitet werden. Der Befehl kann als unmittelbarer Sprung decodiert werden und wird in diesem Fall von der Indexeinheit 34 benutzt. Handelt es sich bei dem Befehl um ein Sprungziel, dann wird er vom Programmzähler 28 benutzt. Eine andere Kombination ausgewählter sechzehn Bits der zweiunddreißig Bits wird in den Adressenregisterspeicher 32 eingegeben, um das oder die speziellen Register innerhalb dieses Adressenregisterspeichers 32 zu adressieren. Eine weitere Kombination aus ausgewählten vier Bits der zweiunddreißig Bits wird in die Indexeinheit 34 als Befehle für Adressenfunktionen eingegeben. Schließlich wird noch eine ausgewählte Kombinationen aus sechs Bits der zweiunddreißig Bits den Statusregistern 13 als Befehl für Sprungbedingungen zugeleitet.Fifteen selected bits of the thirty-two bits are decoded from the instruction register 38 as instructions for register jumps which are fed to the index unit 34 and the program counter 28 . The instruction can be decoded as an immediate jump and is used by the index unit 34 in this case. If the instruction is a jump destination, then it is used by the program counter 28 . Another combination of selected sixteen bits of the thirty-two bits is inputted to the address register file 32, in order to address the or each special register within this memory address register 32nd Another combination of selected four bits of the thirty-two bits is entered into index unit 34 as commands for address functions. Finally, a selected combination of six bits of the thirty-two bits is passed to the status registers 13 as a command for jump conditions.

Eine ausgewählte Kombination aus sieben Bits der zweiunddreißig Bits geht an einen Befehls-ROM 40, der 128 ROM- Plätze je zwanzig Bit aufweist. Die ausgewählte Kombination aus sieben Bits vom Befehlsregister 38 wird zum Adressieren eines bestimmten ROM-Platzesinnerhalb des Befehls-ROM 40 benutzt. Die Kombination aus zwei aus 27 ist 128. So kann mit den sieben Bits irgendeine der 128 Stellen innerhalb des Befehls-ROM 40 adressiert werden. Der Ausgang des Befehls-ROM 40 ist zwanzig Bit breit, von denen achtzehn Bit zum Adressieren des bzw. der speziellen Register(s) im Datenregisterspeicher 20 benutzt werden. Die anderen zwei Bits vom Befehls- ROM 40 werden zum Steuern des logarithmischen Mechanismus 18 und des logarithmischen Converters 22 benutzt, wobei ein Bit den Einsatz des einen oder anderen Elements und das andere Bit die Arbeitsweise des Mechanismus 18, nämlich Multiplizieren oder Dividieren, bestimmt.A selected combination of seven bits of the thirty-two bits goes to an instruction ROM 40 which has 128 ROM locations per twenty bits. The selected seven bit combination from instruction register 38 is used to address a particular ROM location within instruction ROM 40 . The combination of two of 2 7 is 128. Thus, the seven bits can be used to address any of the 128 locations within the command ROM 40 . The output of instruction ROM 40 is twenty bits wide, eighteen of which are used to address the particular register (s) in data register memory 20 . The other two bits from the command ROM 40 are used to control the logarithmic mechanism 18 and the logarithmic converter 22 , one bit determining the use of one or the other element and the other bit determining the operation of the mechanism 18 , namely multiplication or division.

Eine weitere gewählte Kombination aus neun Bits, von denen vier die gleichen sind wie die vier Bits für die Adressenfunktion wird einem Befehls-PLA (programmierbares logisches Array) 42 zugeleitet. Das Befehls-PLA 42 empfängt auch ein Steuerbit von der Steuereinheit 36. Wenn das Steuerbit hoch oder "1" ist, dann bestimmen die an das Befehls-PLA 42 gelieferten neun Bits, wer zum Befehlsbus 24 Zugriff haben sollte. Ist das Steuerbit der Steuereinheit 36 tief oder "0", dann wird das Befehls-PLA 42 gesperrt, so daß niemand Zugriff zum Befehlsbus 24 hat. Das Befehls-PLA ist ein programmierbares logisches Array 10 × 10 × 18, und das bedeutet, daß es zehn Eingänge, zehn Ausgänge sowie achtzehn Produktterms gibt. Another selected combination of nine bits, four of which are the same as the four bits for the address function, is provided to an instruction PLA (programmable logic array) 42 . The command PLA 42 also receives a control bit from the control unit 36 . If the control bit is high or "1", then the nine bits provided to command PLA 42 determine who should have access to command bus 24 . If the control bit of the control unit 36 is low or "0", the command PLA 42 is blocked so that no one has access to the command bus 24 . The command PLA is a 10 x 10 x 18 programmable logic array, which means that there are ten inputs, ten outputs and eighteen product terms.

Die zehn Ausgangsbits bestimmen das Format der Mikroprogrammierung. Eines der zehn Bits ist für die Operation des logarithmischen Mechanismus 18 und des logarithmischen Converters 22. Wenn dieses Bit ein ist, wird der Mechanismus 18 oder der Converter 22 vorbereitet. Zwei der zehn Bits sind Adressensprünge und werden dem Programmzähler 28 und der Steuereinheit 36 zugeführt. Fünf der zehn Bits steuern den Datenbus 14 und dienen teilweise zum Ein- und Auslesen aus dem Datenregisterspeicher 20 in den Datenbus 14. Die restlichen zwei Bits sind Speichersteuerbits, die auch an die Steuereinheit 36 gehen. Die Programmierung des Befehls-PLA 42 zur Wahl der jeweiligen Ausgänge aus den speziellen Eingängen ist dem Fachmann bekannt.The ten output bits determine the format of the micro programming. One of the ten bits is for the operation of logarithmic mechanism 18 and logarithmic converter 22 . If this bit is on, mechanism 18 or converter 22 is prepared. Two of the ten bits are address jumps and are fed to the program counter 28 and the control unit 36 . Five of the ten bits control the data bus 14 and are used in part for reading in and reading out from the data register memory 20 into the data bus 14 . The remaining two bits are memory control bits that also go to control unit 36 . The programming of the command PLA 42 to select the respective outputs from the special inputs is known to the person skilled in the art.

Schließlich werden vier Bits, bei denen es sich um die Adressenfunktionsbits handelt, auch an einen logischen Decodierer 44 angelegt, der bestimmt, daß für den Fall, daß diese vier Adressenfunktionsbits im Bitmuster von "0000" liegen, der 1-Bitausgang den Betrieb der Steuerung 16 anhält.Finally, four bits, which are the address function bits, are also applied to a logic decoder 44 which determines that in the event that these four address function bits are in the "0000" bit pattern, the 1-bit output will operate the controller 16 stops.

Alle vorstehend genannten Ausgangssignale des Befehlsdecodierers 30 werden parallel geliefert und kontinuierlich an ihr Ziel abgegeben.All of the above-mentioned output signals of the command decoder 30 are delivered in parallel and continuously delivered to their destination.

Adressenregisterspeicher und Indexeinheit Address register memory and index unit

Der Adressenregisterspeicher 32 und die Indexeinheit 34 sind mehr im einzelnen in Fig. 1b, 1c und 1d dargestellt. Wie schon erwähnt, handelt es sich bei dem Adressenregisterspeicher 32 um einen RAM-Speicher mit vier Anschlüssen (Ports), der sechzehn Register zu je sechzehn Bit aufweist. Die vier Anschlüsse sind in Fig. 1c mit A 0, A 1, A 2 und A 3 bezeichnet. Jeder Anschluß ist ein Leseanschluß und ist sechzehn Bits breit und erhält den Inhalt eines der Register des Adressenregisterspeichers 32. Wie aus Fig. 1, 1b und 1c hervorgeht, hat der Adressenregisterspeicher 32 auch einen mit W 0 bezeichneten Schreibanschluß. Der Schreibanschluß W 0 ist auch sechzehn Bits breit und wird vom Adressenbus 12 oder von der Indexeinheit 34 zum Schreiben in den Adressenregisterspeicher 32 benutzt. Der Schreibanschluß W 0 wird allerdings mit dem Leseanschluß A 0 gemeinsam genutzt oder ist damit gemultiplext. Deshalb hat der Adressenregisterspeicher 32 nur vier Anschlüsse.Address register memory 32 and index unit 34 are shown in more detail in Figures 1b, 1c and 1d. As already mentioned, the address register memory 32 is a RAM memory with four connections (ports), which has sixteen registers of sixteen bits each. The four connections are labeled A 0 , A 1 , A 2 and A 3 in FIG. 1c. Each port is a read port and is sixteen bits wide and contains the contents of one of the registers of the address register memory 32 . As is apparent from Fig. 1, 1b and 1c, the address register file 32 has also a write terminal labeled W 0. The write terminal W 0 is also sixteen bits wide and is used by the address bus 12 or by the index unit 34 to write to the address register memory 32 . However, the write connection W 0 is shared with the read connection A 0 or is multiplexed with it. Therefore, the address register memory 32 has only four ports.

Da im Adressenregisterspeicher 32 sechzehn Register enthalten sind, wären vier Bits zum Adressieren eines bestimmten Registers nötig. Da auch vier Anschlüsse vorhanden sind, sind sechzehn Adressenregister-Adressen nötig, um den Inhalt von vier Registern zu wählen und an die vier Anschlüsse zu bringen. Ferner handelt es sich bei einem der sechzehn Register im Adressenregisterspeicher 32 um ein Nur-Lese-Register, welches ausschließlich Nullen enthält.Since sixteen registers are contained in the address register memory 32 , four bits would be needed to address a particular register. Since there are also four connections, sixteen address register addresses are required to select the contents of four registers and to bring them to the four connections. Furthermore, one of the sixteen registers in the address register memory 32 is a read-only register which contains only zeros.

Die Adressen für den Adressenregisterspeicher 32 werden einem Adressendecodierer 31 zugeführt, der sechzehn identische Decodiersektionen hat, welche jeweils mittels einer Anzahl Wortleitungen an ein Register im Registerarray 33 angeschlossen sind. Für die fünfzehn Lese/Schreib-Register stehen sechs Wortleitungen zur Verfügung: Vier zur Wahl der Leseanschlüsse, eine zur Wahl des Schreibanschlusses und zum Halten zur Steuerung des Latch, das die Daten hält. Für das Nur-Lese-Register stellen nur vier Wortleitungen die Verbindung zwischen dem Adressendecodierer 31 und dem Registerarray 33 her. Diese vier Leitungen werden zur Wahl des Leseanschlusses oder der Leseanschlüsse benutzt.The addresses for the address register memory 32 are fed to an address decoder 31 , which has sixteen identical decoding sections, each of which is connected to a register in the register array 33 by means of a number of word lines. Six word lines are available for the fifteen read / write registers: four to select the read ports, one to select the write port and hold to control the latch that holds the data. For the read-only register, only four word lines establish the connection between the address decoder 31 and the register array 33 . These four lines are used to select the read connection or read connections.

Die vier Wortleitungen zur Wahl des oder der Leseanschlüsse sind mit einer Leseanschluß-Kreuzungspunkt- Matrix 35 verbunden, die das die Daten haltende Latch 37 mit einer oder mehreren der Leseanschlüsse A 0, A 1, A 2 oder A 3 verbindet.The four word lines for selecting the one or more read connections are connected to a read connection crosspoint matrix 35 which connects the latch 37 holding the data to one or more of the read connections A 0 , A 1 , A 2 or A 3 .

Die einzige Wortleitung zur Wahl des Schreibanschlusses ist mit einem Schreibschalter 39 verbunden, der das Latch 37 mit dem Schreibanschluß W 0 verbindet.The only word line for selecting the write connection is connected to a write switch 39 , which connects the latch 37 to the write connection W 0 .

Der Ausgang des Registerarrays 33 liegt an einem E/A-Puffer 41 an.The output of the register array 33 is applied to an I / O buffer 41 .

Die vier Bits, die die Adressenfunktion vom Befehlsdecodierer 30 bestimmen, werden an einen Adressenfunktionsdecodierer 46 gegeben, der die vier Bits der Adressenfunktion decodiert und die entsprechenden Bitkennzeichen setzt. Einige der Befehle, die der Adressenfunktionsdecodierer 46 decodieren kann, lauten wie folgt: Der Adressenfunktionsdecodierer 46 zum Decodieren des vorstehenden Bitmusters ist dem Fachmann bekannt.The four bits that determine the address function from instruction decoder 30 are provided to an address function decoder 46 which decodes the four bits of the address function and sets the corresponding bit flags. Some of the instructions that the address function decoder 46 can decode are as follows: The address function decoder 46 for decoding the above bit pattern is known to those skilled in the art.

Die verschiedenen Bits der Bedingungen, die den speziellen Adressenfunktionscode darstellen, werden einem Codetester 48 für die Adressenbedingungen zugeleitet, der im einzelnen in Fig. 1c gezeigt ist. Wenn z B. das Bitmuster "1011" decodiert wird, wird die Bitleitung für IFNE hoch gesetzt.The various bits of the conditions that represent the particular address function code are provided to an address condition code tester 48 , which is shown in detail in FIG. 1c. For example, if the bit pattern "1011" is decoded, the bit line for IFNE is set high.

Zu der Indexeinheit 34 gehört auch ein Subtrahierer 50, der den Term A 0 - A 2 erzeugt. Der Ausgang des Subtrahierers 50 wird dem Codetester 48 für die Adressenbedingung zugeleitet. Ferner gehört zu der Indexeinheit 34 ein Multiplexer 52, der die Adresse von A 0 und von A 2 empfängt. In Abhängigkeit vom Adressenfunktionsdecodierer 46 wird also der Multiplexer 52 aktiviert. Vom Multiplexer 52 wird das Ausgangssignal an einen Addierer 54 angelegt, der auch die Adresse von A 1 empfängt. Je nach dem Zustand des Multiplexers 52 ist also der Ausgang des Addierers 54 entweder A 1 + A 0 oder A 1 + A 2. Je nach den Prüfbedingungen der Adressenfunktion wird der Ausgang der Indexeinheit 34 dann an den Adressenbus 12 geliefert und von dort über den Schreibanschluß W 0 an den Adressenregisterspeicher 32.The index unit 34 also includes a subtractor 50 , which generates the term A 0 - A 2 . The output of the subtractor 50 is fed to the code tester 48 for the address condition. The index unit 34 also includes a multiplexer 52 which receives the address of A 0 and A 2 . Depending on the address function decoder 46 , the multiplexer 52 is thus activated. The multiplexer 52 applies the output signal to an adder 54 , which also receives the address of A 1 . Depending on the state of the multiplexer 52 , the output of the adder 54 is therefore either A 1 + A 0 or A 1 + A 2 . Depending on the test conditions of the address function, the output of the index unit 34 is then supplied to the address bus 12 and from there via the write connection W 0 to the address register memory 32 .

Eine spezielle Funktion des Adressenregisterspeichers 32 mit der Indexeinheit 34 besteht in der Fähigkeit, automatisch um einen diskreten Betrag zu in- oder de-krementieren, einen Vergleich mit einer Prüfadresse durchführen und eine Rücklade-Adresse in den Adressenregisterspeicher 32 zurückzuladen, und das alles in einem einzigen Taktzyklus.A special function of the address register memory 32 with the index unit 34 is the ability to automatically increment or decrement by a discrete amount, carry out a comparison with a test address and reload a reload address into the address register memory 32 , all in one single clock cycle.

Die Adresse vom Anschluß A 0 kann beispielsweise die Adresse des Speicherplatzes auf der laufenden Operation enthalten. Die Adresse am Anschluß A 1 kann den Inkrementierwert enthalten. Die Adresse am Anschluß A 2 kann die Prüfadresse enthalten. Die Adresse am Anschluß A 3 kann die Rücklade-Adresse enthalten. Der Vorteil der Autoinkrementierung oder -dekrementierung um einen bestimmten Betrag, des Prüfens und des Zurückladens der Adresse in einem einzigen Befehl zeigt sich an Vektoroperationen. Wenn z. B. ein Array mit einem Vektor folgender Form multipliziert wird: dann würde die Adressierung auf folgende Weise geschehen: The address from port A 0 can contain, for example, the address of the storage space on the current operation. The address at connection A 1 can contain the increment value. The address at connection A 2 can contain the test address. The address at port A 3 can contain the reload address. The advantage of auto-incrementing or decrementing by a certain amount, checking and reloading the address in a single command is evident from vector operations. If e.g. B. an array is multiplied by a vector of the following form: then the addressing would be done in the following way:

Adressen Addresses

Wenn die Adresse vom Anschluß If the address from the connection

AA 00

die Adresse the address

XX nn

erreicht und die zu prüfende Bedingung darin besteht, daß reached and the condition to be checked is that

AA 00

≠≠ ≠≠

AA 22nd

(Befehl IFNE), d. h., wenn diese Bedingung von (Command IFNE), d. that is, if this condition of

AA 00

≠≠ ≠≠

AA 22nd

falsch ist oder is wrong or

AA 00

= =

AA 22nd

, so wird ersichtlich die Adresse vom Anschluß , the address becomes visible from the connection

AA 33rd

dem Anschluß the connection

AA 00

zugeordnet. Das bedeutet mit andren Worten, wenn die Adresse vom Anschluß assigned. That means in other words, if the address from the connection

AA 00

die Prüfadresse vom Anschluß the Test address from the connection

AA 22nd

erreicht, wird die Adresse vom Anschluß reached, the address will be from Connection

AA 33rd

in den Anschluß in the terminal

AA 00

geladen. Da der Anschluß loaded. Because the connection

WW 00

den Anschluß mit the connection with

AA 00

gemeinsam nutzt, wird die Adresse vom Anschluß shared, the address is from Connection

AA 00

in den Adressenregisterspeicher in the address register memory

3232

zurückgeschrieben. So kann die Vektormultiplikationsoperation nach Erreichen von written back. So the vector multiplication operation after reaching

XX nn

bei at

XX 00

fortfahren, wobei nur ein einziger Taktzyklus benötigt wird.continue, taking only one only clock cycle is required.

Dies wird unter Hinweis auf Fig. 1c und 1d erläuert. Wenn die zu prüfende Bedingung "IFNE" lautet, dann wird die Bitleitung IFNE hoch oder auf "1" gesetzt. Bei der n + 1 Operation, wenn A 0 = A 2, ist die Differenz vom Subtrahierer 50 null. Dann besteht der Eingang des NOR- Gatters 47 allein aus Nullen und der Ausgang wird "1". Nach Invertierung führt dies zu "0" am NAND-Gatter 49, was zu einem Ausgang von "1" führt. Hinter den Invertern ist der Ausgang für "wahr" "0".This is erläuert with reference to FIG. 1c and 1d. If the condition to be checked is "IFNE", the bit line IFNE is raised or set to "1". In the n + 1 operation when A 0 = A 2 , the difference from subtractor 50 is zero. Then the input of the NOR gate 47 consists only of zeros and the output becomes "1". After inversion, this leads to "0" at NAND gate 49 , which results in an output of "1". The output for "true" is "0" behind the inverters.

Der Ausgang des NOR-Gatters 51 ist "1", wodurch ein Tristate 53 gegattert wird. So wird A 3 auf den Adressenbus 12 geladen, der seinerseits an W 0 weiterleitet. The output of the NOR gate 51 is "1", which gates a tristate 53 . A 3 is thus loaded onto the address bus 12 , which in turn forwards it to W 0 .

Es sei hier darauf hingewiesen, daß bei einem Adressenregisterspeicher 32 mit einem speziellen Register, welches nur "000. . ." enthält, der Registerspeicher 32 zusammen mit der Indexeinheit 34 so programmiert werden kann, daß um "0. . .0" inkrementiert oder dekrementiert wird, was verursacht, daß die gleiche laufende Adresse wiederholt benutzt wird.It should be pointed out here that in the case of an address register memory 32 with a special register which is only "000 ..." contains, the register memory 32 can be programmed together with the index unit 34 to increment or decrement by "0 ... 0", causing the same current address to be used repeatedly.

Logarithmischer Umsetzer Logarithmic converter

Der logarithmische Umsetzer 18 ist im einzelnen in Fig. 2 gezeigt. Der Umsetzer 18 hat sechzehn Eingangsleitungen und sechzehn Ausgangsleitungen. Die sechzehn Eingangsleitungen dienen zum Anlegen von Daten entweder in logarithmischer oder ganzzahliger Form an den Umsetzer 18. Die Ausgangsleitungen dienen zur Aufnahme der umgewandelten ganzzahligen bzw. logarithmischen Daten vom Umsetzer 18. Die an den Prozessor 10 gelieferten ganzzahligen Daten sind in Zweier-Komplementform. Wenn bei der Zweier-Komplementform das am weitesten links stehende Bit "0" ist, dann ist die Zahl positiv. Ist das am weitesten links stehende Bit "1", dann ist die Zahl negativ.The logarithmic converter 18 is shown in detail in FIG. 2. The converter 18 has sixteen input lines and sixteen output lines. The sixteen input lines are used to apply data to the converter 18 in either logarithmic or integer form. The output lines are used to receive the converted integer or logarithmic data from the converter 18 . The integer data supplied to processor 10 is in two's complement form. In the two's complement form, if the leftmost bit is "0", then the number is positive. If the leftmost bit is "1", the number is negative.

Im Prozessor 10 haben die logarithmischen Daten folgendes Format:
S b e e e e e m m m m m m m m m
worin S das Vorzeichen der logarithmischen Daten ist ("0" für positiv und "1" für negativ) mit einem Exponenten oe", der wieder ein Vorzeichen (bias sign) "b" hat, und mit einer Mantisse "m". Wenn die dem Umsetzer 18 zugeführten Daten in logarithmischer Form vorliegen, wird das am weitesten links stehende Bit von einem Vorzeichenoperator 60 empfangen. Die übrigen fünfzehn Eingangsleitungen für Daten in logarithmischer Form gehen an einen ersten Multiplexer 62, der weitere fünfzehn Leitungen von einem Ausnahmebezeichner 64 hat. Die Multiplexersteuerung wird durch L gesetzt. Wenn L hoch ist, werden die fünfzehn Leitungen des L am engsten benachbarten Signals gewählt. Wenn also dem Umsetzer 18 logarithmische Daten zugeführt werden, ist L tief gesetzt.
The logarithmic data in processor 10 have the following format:
S b e e e e e m m m m m m m m m
where S is the sign of the logarithmic data ("0" for positive and "1" for negative) with an exponent oe " , which again has a sign (bias sign) " b " , and with a mantissa " m " . If the If the data supplied to the converter 18 are in logarithmic form, the left-most bit is received by a sign operator 60. The remaining fifteen input lines for data in logarithmic form go to a first multiplexer 62 , which has a further fifteen lines from an exception identifier 64 Multiplexer control is set by L. When L is high, the fifteen lines of L's closest adjacent signal are chosen, so when logarithmic data is supplied to converter 18 , L is set low.

Die sechs Eingangsleitungen, die den Exponententeil einer logarithmischen Zahl darstellen (Vorzeichen b und fünf Bits des Exponentenwertes e), werden dann an einen Decodierer 66 gelegt. Die übrigen neun Leitungen der fünfzehn Eingangsleitungen, die den Matissenteil der logarithmischen Zahl bilden, gehen an ein Delogarithmier- oder Antilog-ROM 68. Von einem PSO-Register, welches in den Statusregistern 13 enthalten ist, wird ein 6-Bit Kommasetzausgabewert geliefert. Der PSO-Wert wird an den Decodierer 66 angelegt, dessen Ausgang an den Ausnahmebezeichner 64 sowie einen zweiten Multiplexer 70 angeschlossen ist. Die fünfzehn Ausgangsbits des Antilog- ROM 68 werden an einen dritten Multiplexer 72 geliefert.The six input lines, which represent the exponent part of a logarithmic number (sign b and five bits of the exponent value e ), are then applied to a decoder 66 . The remaining nine lines of the fifteen input lines, which form the Matisse part of the logarithmic number, go to a delogarithmic or antilog ROM 68 . A 6-bit comma set output value is supplied by a PSO register, which is contained in the status registers 13 . The PSO value is applied to decoder 66 , the output of which is connected to exception identifier 64 and a second multiplexer 70 . The fifteen output bits of the Antilog ROM 68 are supplied to a third multiplexer 72 .

Da L tief ist, werden die Ausgänge des zweiten und dritten Multiplexers 70 und 72 einem Trommelverschieber (barrel shifter) 76 zugeführt, der die fünfzehn Bits des ganzzahligen Ausgangs vom Antilog-ROM 68 über den dritten Multiplexer 72 empfängt und in der Weise bearbeitet, daß er um die Anzahl von Ziffern verschiebt, die der Decodierer 66 über den zweiten Multiplexer 70 liefert.Since L is low, the outputs of the second and third multiplexers 70 and 72 are fed to a barrel shifter 76 which receives and processes the fifteen bits of the integer output from the antilog ROM 68 via the third multiplexer 72 it shifts by the number of digits that decoder 66 supplies via second multiplexer 70 .

Die fünfzehn Ausgangsbits werden dem Ausnahmebezeichner 64 zugeleitet, der feststellt, ob eine Unterlauf- oder Überlaufbedingung stattgefunden hat. In diesem Fall setzt der Ausnahmebezeichner 64 das Statusbit und erzeugt die kleinste oder größte ganze Zahl, die dem Vorzeichenoperator 60 zugeführt wird.The fifteen output bits are passed to exception identifier 64 , which determines whether an underflow or overflow condition has occurred. In this case, the exception identifier 64 sets the status bit and generates the smallest or largest integer that is supplied to the sign operator 60 .

Der Vorzeichenoperator 60 führt eine Zweier-Komplementoperation durch und die Zahl wird einem vierten Multiplexer 84 zugeleitet. Wenn L tief gesetzt ist, wird die Zahl vom Vorzeichenoperator 60 der Ausgang des Umsetzers 18.The sign operator 60 performs a two's complement operation and the number is passed to a fourth multiplexer 84 . If L is low, the number from the sign operator 60 becomes the output of the converter 18 .

Wenn die Eingangszahl in ganzzahliger Form vorliegt, ist L hoch gesetzt, und alle sechzehn Bits werden dem Vorzeichenoperator 60 zur Verfügung gestellt, welcher das Vorzeichen S der logarithmischen Darstellung erzeugt und außerdem eine Zweier-Komplementbildung vornimmt, um die ganze Zahl in eine nichtkomplemente Darstellung umzusetzen.If the input number is in integer form, L is set high and all sixteen bits are provided to the sign operator 60 , which generates the sign S of the logarithmic representation and also does a two's complement to convert the integer to a non-complementary representation .

Vom Vorzeichengenerator 60 gehen fünfzehn Datenleitungen an einen MSucher 74 und außerdem an den dritten Multiplexer 72. Vom MSucher 74 geht der Ausgang an den zweiten Multiplexer 70. Die Ausgänge des zweiten bzw. dritten Multiplexers 70 bzw. 72 gehen an den Trommelverschieber 72. Der Ausgang des MSuchers 74 steht außerdem einem Codierer 78 zur Verfügung. Der Codierer 78 nimmt außerdem sechs Eingabeleitungen auf, die den Kommasetzeingang von einem PSI-Register bilden, welches in den Statusregistern 13 enthalten ist.Fifteen data lines go from the sign generator 60 to an MS finder 74 and also to the third multiplexer 72 . The output from the MSucher 74 goes to the second multiplexer 70 . The outputs of the second and third multiplexers 70 and 72 go to the drum shifter 72 . The output of the MS seeker 74 is also available to an encoder 78 . Encoder 78 also receives six input lines that form the comma set input from a PSI register contained in status registers 13 .

Da L hoch ist, wird der Ausgang des Vorzeichenoperators 60 und der des MSuchers 74 an den Trommelverschieber 76 geleitet, dessen Ausgang an eine logarithmische CAL- Schaltung 80 gelegt wird. Der Ausgang der CAL-Schaltung 80 ist der Mantissenteil des Logarithmus der ganzzahligen Eingangsdaten. Die neuen Ausgangsleitungen werden dann an die sechs Ausgangsleitungen des Codierers 78 angehängt (concatenated), um fünfzehn Ausgangsleitungen zu bilden, die einem Nulldetektor 82 zugeführt werden. Die fünfzehn Ausgangsleitungen vom Vorzeichenoperator 60 werden auch dem Nulldetektor 82 zugeleitet. Die fünfzehn Ausgangsleitungen des Nulldetektors 82 werden einem vierten Multiplexer 84 zugeleitet. Das Vorzeichenbit des Vorzeichenoperators 60 wird mit den fünfzehn Ausgangsbits vom Nulldetektor 82 zusammengehängt. Der Ausgang des vierten Multiplexers 84 stellt die sechzehn Ausgangsbits des logarithmischen Umsetzers 18 dar.Since L is high, the output of the sign operator 60 and that of the MS seeker 74 are directed to the drum shifter 76 , the output of which is applied to a logarithmic CAL circuit 80 . The output of the CAL circuit 80 is the mantissa part of the logarithm of the integer input data. The new output lines are then concatenated to the six output lines of encoder 78 to form fifteen output lines which are fed to a zero detector 82 . The fifteen output lines from the sign operator 60 are also fed to the zero detector 82 . The fifteen output lines of the zero detector 82 are fed to a fourth multiplexer 84 . The sign bit of the sign operator 60 is connected to the fifteen output bits from the zero detector 82 . The output of the fourth multiplexer 84 represents the sixteen output bits of the logarithmic converter 18 .

Bei dem Vorzeichenoperator 60, dem Ausnahmebezeichner 64, dem MSucher 74 und dem Trommelverschieber 76 handelt es sich um herkömmliche Hardware-Elemente, die bei Gleitkomma-Operationen benutzt werden. Der Decodierer 76 und der Codierer 78 sind Abwandlungen bekannter Schaltungen, um PSO- und PSI-Werte aufzunehmen. Bei einem Ausführungsbeispiel kann der Codierer 78 ein herkömmlicher, bekannter Codierer sein, dessen Ausgang zum PSI-Wert addiert wird, um den Exponenten-Wert zu erzeugen. Ein Ausführungsbeispiel des Decodierers 66 kann ein Subtrahierer sein, der den PSO-Wert von dem Exponenten-Wert subtrahiert, wobei das Ergebnis einem bekannten Decodierer zugeleitet wird. Bei dem Antilog-ROM 68 handelt es sich lediglich um einen Festwertspeicher, der 512 adressierbare Plätze mit fünfzehn Bits an jedem Platz aufweist. Die logarithmische CAL-Schaltung 80 ist eine Komparatorarraylogik, die noch näher erläuert wird.The sign operator 60 , exception identifier 64 , MSucher 74 and drum shifter 76 are conventional hardware elements used in floating point operations. Decoder 76 and encoder 78 are modifications of known circuits to accommodate PSO and PSI values. In one embodiment, encoder 78 may be a conventional, well-known encoder, the output of which is added to the PSI value to produce the exponent value. An embodiment of decoder 66 may be a subtractor that subtracts the PSO value from the exponent value, and the result is provided to a known decoder. The Antilog-ROM 68 is only a read-only memory which has 512 addressable locations with fifteen bits in each location. The logarithmic CAL circuit 80 is a comparator array logic, which will be explained in more detail.

Die Arbeitsweise des Umsetzers 18 wird anhand von Fig. 2a und 2b erläuert, die die Umwandlung von ganzen Zahlen in Logarithmen bzw. von Logarithmen in ganze Zahlen darstellen.The mode of operation of the converter 18 is explained with reference to FIGS . 2a and 2b, which represent the conversion of integers into logarithms or of logarithms into integers.

In Fig. 2a ist derjenige Teil des logarithmischen Umsetzers 18 gezeigt, der die Funktion der Umwandlung ganzzahliger Daten in logarithmische Daten erfüllt. Der Absolutwertermittler 60, der Teil des Vorzeichenoperators 60 ist, dekomplementiert die ganzzahligen Eingangsdaten, um die nichtkomplemente Darstellung der ganzzahligen Daten zu erhalten und liefert das am weitesten links stehende Vorzeichenbit als S-Bit an den Ausgang. Die übrigen fünfzehn Bits, die den Absolut-Wert der eingegebenen ganzen Zahl darstellen, gelangen an den MSucher 74. FIG. 2a shows that part of the logarithmic converter 18 which fulfills the function of converting integer data into logarithmic data. The absolute value determiner 60 , which is part of the sign operator 60 , complements the integer input data in order to obtain the non-complementary representation of the integer data and supplies the left-most sign bit as an S bit to the output. The remaining fifteen bits, representing the absolute value of the integer entered, are passed to MSucher 74 .

Die fünfzehn Bits der Eingabedaten werden außerdem einem Nulldetektor 81 zugeführt. Sind die ganzzahligen Eingangsdaten null, dann wird eine spezielle Zahl ("0. . .0") erzeugt, die der Prozessor 10 als Logarithmus von null auffaßt. Eine spezielle Zahl muß deshalb erzeugt werden, weil mathematisch log null undefiniert ist.The fifteen bits of the input data are also fed to a zero detector 81 . If the integer input data is zero, then a special number ("0... 0") is generated, which the processor 10 interprets as a logarithm of zero. A special number must be generated because mathematically log zero is undefined.

Der MSucher 74 sucht nach der Bitposition des führenden Bits ungleich null. Sein Ausgang ist eine Zahl, die die Zahl von Bits angibt, um die der Trommelverschieber 76 die Eingabedaten nach links verschieben muß, damit das führende Bit ungleich null in die am weitesten links liegende Position gelangt. Sobald die Zahl der Bits verschoben ist, werden die fünfzehn Ausgangsleitungen des Trommelverschiebers 76 an die CAL-Schaltung 80 gelegt. Die CAL-Schaltung 80 ist eine Nachschlagetabelle, welche 512 15-Bitspeicherzellen aufweist, die aufgrund der eingegebenen ghanzzahligen Daten feststellen, was der Mantissenteil der logarithmischen Zahl ist. Der Ausgang der CAL- Schaltung 80 besteht folglich aus neun Bits Mantisse.MSucher 74 searches for the leading non-zero bit position. Its output is a number that indicates the number of bits that the drum shifter 76 must shift the input data to the left in order for the leading non-zero bit to go to the left most position. Once the number of bits is shifted, the fifteen output lines of drum shifter 76 are applied to CAL circuit 80 . The CAL circuit 80 is a look-up table that has 512 15-bit memory cells that determine what the mantissa part of the logarithmic number is based on the input GH data. The output of CAL circuit 80 thus consists of nine bits of mantissa.

Die CAL-Schaltung 80 speichert die Werte der logarithmischen Gleichung: y = log2 x, worin x der Eingang und y der Ausgang ist, und wobei 1 x ≦ωτ 2. Der Ausgang y ist 0 y ≦ωτ 1, also um die Mantisse der Eingangszahl x.The CAL circuit 80 stores the values of the logarithmic equation: y = log 2 x , where x is the input and y is the output, and where 1 x ≦ ωτ 2. The output y is 0 y ≦ ωτ 1, i.e. around the mantissa the input number x .

Dadurch daß der Trommelverschieber 76 die ganze Zahl zu 1- - - - - - - - - - - - - -
verschiebt, wobei das Komma unmittelbar rechts von "1" steht , akzeptiert die CAL-Schaltung 80 x, nämlich die eingegebene Zahl, als x = 1,- - - und erzeugt die entsprechende Mantisse. Der Exponent, d. h. das Ausmaß der Verschiebung wird vom Codierer 78 bestimmt.
Because the drum shifter 76 is the integer of 1 - - - - - - - - - - - - - -
shifts, with the comma immediately to the right of "1", the CAL circuit accepts 80 x , namely the number entered, as x = 1, - - - and generates the corresponding mantissa. The exponent, ie the extent of the shift, is determined by the encoder 78 .

Der Ausgang des MSuchers 74 wird auch dem Codierer 78 zugeleitet. Der Codierer 78 erhält auch den 6-Bit-Kommasetzeingabewert bzw. PSI-Wert. Ausgehend vom Ausgang des MSuchers 74 und des PSI-Wertes erzeugt der Codierer 78 eine 6-Bitzahl, die den Exponenten-Teil des Logarithmus der Eingangszahl darstellt.The output of the MS seeker 74 is also passed to the encoder 78 . Encoder 78 also receives the 6-bit comma input value or PSI value. Starting from the output of the MS seeker 74 and the PSI value, the encoder 78 generates a 6-bit number which represents the exponent part of the logarithm of the input number.

Die 6-Bit Ausgang vom Codierer 78 werden dann mit dem 9-Bit Ausgang der CAL-Schaltung 80 zusammengehängt (concatenated), um die 15-Bit der logarithmischen Zahl zu bilden. Die fünfzehn Leitungen für die logarithmische Zahl werden dem Nulldetektor 82 zugeleitet. Wenn der Nulldetektor 81 festgestellt, daß die Eingangsdaten null sind, erzeugt der Nulldetektor 82 die vorstehend erwähnte spezielle Zahl. Andernfalls wird die logarithmische Zahl mit 15-Bit, die dem Nulldetektor 82 zugeführt wird, als Ausgang geliefert. Vom Nulldetektor 82 werden die fünfzehn Leitungen mit dem einen Vorzeichenbit vom Absolutwert 60 kombiniert, um die sechzehn des Ausgangsbit der logarithmischen Zahl zu bilden.The 6-bit output from encoder 78 is then concatenated to the 9-bit output of CAL circuit 80 to form the 15-bit logarithmic number. The fifteen log number lines are fed to the zero detector 82 . When the zero detector 81 determines that the input data is zero, the zero detector 82 generates the aforementioned special number. Otherwise, the 15-bit logarithmic number supplied to the zero detector 82 is provided as an output. The fifteen lines are combined by the zero detector 82 with the one sign bit of the absolute value 60 to form the sixteen of the output bit of the logarithmic number.

In Fig. 2b ist die Umwandlung logarithmischer Daten in ganzzahlige Daten dargestellt. Die sechzehn Eingangsbit stellen die logarithmischen Daten dar. Das am weitesten links stehende Bit der sechzehn Eingangsleitungen wird dem Vorzeichenoperator 60 zugeleitet. Die übrigen fünfzehn Eingangsbit werden entsprechend dem Exponenten-Teil (sechs Bits) und dem Mantissenteil (neun Bits) aufgeteilt.In Fig. 2b, the conversion logarithmic data is shown in integer data. The sixteen input bits represent the logarithmic data. The left-most bit of the sixteen input lines is supplied to the sign operator 60 . The remaining fifteen input bits are divided according to the exponent part (six bits) and the mantissa part (nine bits).

Die den Exponenten-Teil bildenden sechs Bit gelangen an den Decodierer 66. Der Decodierer 66 nimmt auch sechs Leitungen auf, welche die sechs Bits für den PSO-Wert darstellen. Der Ausgang des Decodierers 66 wird an den Trommelverschieber 76 angelegt und befiehlt diesem, um wieviele Stellen und in welcher Richtung er eine Verschiebung vornehmen muß. Die neun Bits des Mantissenteils der eingegebenen logarithmischen Daten gelangen an das Antilog-ROM 68.The six bits forming the exponent part reach decoder 66 . Decoder 66 also accepts six lines which represent the six bits for the PSO value. The output of decoder 66 is applied to drum shifter 76 and commands it by how many places and in which direction it has to make a shift. The nine bits of the mantissa part of the entered logarithmic data reach the Antilog ROM 68 .

Das Antilog-ROM 68 ist, wie schon gesagt, eine herkömmliche 512 × 15-Bit-ROM-Nachschlagetabelle. Das Antilog-ROM 68 speichert die Werte der logarithmischen Gleichung x = 2 y , worin y den Eingang darstellt, 0 y ≦ωτ 1, und x den Ausgang, mit 1 x ≦ωτ 2.The Antilog-ROM 68 is, as already said, a conventional 512x15 bit ROM lookup table. The Antilog-ROM 68 stores the values of the logarithmic equation x = 2 y , where y represents the input, 0 y ≦ ωτ 1, and x the output, with 1 x ≦ ωτ 2.

Der Ausgang des Antilog-ROM 68 ist eine Ganzzahl mit fünfzehn Bits. Diese Daten werden dem Trommelverschieber 76 zugeleitet, der die ganzzahligen Daten um die Anzahl Bits vom Decodierer 66 versetzt. Der Ausgang des Trommelverschiebers 76 wird dann dem Ausnahmebezeichner 64 zugeleitet, um festzustellen, ob eine Überlauf- oder Unterlaufbedingung vorlag. Wenn der Decodierer 66 dem Trommelverschieber 76 befiehlt, um zu viele Stellen nach rechts oder nach links eine Versetzung des Kommas vorzunehmen, könnte es zu einer Unterlauf- oder Überlaufbedingung am Ausgang des Trommelverschiebers 76 kommen. Der Ausnahmebezeichner 64 erzeugt die kleinste bzw. größte ganze Zahl, wenn es einen Unterlauf bzw. Überlauf gibt und generiert ein Signal auf den Statusleitungen, die Unter- bzw. Überlauf-Bedingung.The output of the Antilog-ROM 68 is an integer with fifteen bits. This data is fed to drum shifter 76 , which shifts the integer data by the number of bits from decoder 66 . The output of the drum shifter 76 is then passed to the exception identifier 64 to determine whether there was an overflow or underflow condition. If decoder 66 commands drum shifter 76 to shift the comma too many places to the right or left, an underflow or overflow condition at the output of drum shifter 76 could result. The exception identifier 64 generates the smallest or largest integer if there is an underflow or overflow and generates a signal on the status lines, the underflow or overflow condition.

Wenn der Ausnahmebezeichner 64 feststellt, daß die vom Trommelverschieber 76 erzeugten Daten weder Überlauf noch Unterlauf bilden, dann werden die ganzzahligen Daten vom Trommelverschieber 76 dem Vorzeichenoperator 60 zugeleitet, von dem das Vorzeichenbit, nämlich das am weitesten links stehende Bit angehängt (concatenated) wird; die sechzehn Bits der ganzzahligen Daten werden dann vom Umsetzer 18 ausgegeben.If the exception identifier 64 determines that the data generated by the drum shifter 76 is neither overflow nor underflow, then the integer data is passed by the drum shifter 76 to the sign operator 60 , from which the sign bit, namely the leftmost bit, is concatenated; the sixteen bits of integer data are then output from converter 18 .

Die Kommasetzausgabe (PSO) und die Kommasetzeingabe (PSI) haben die Aufgabe, Flexibilität und einen dynamischen Bereich für die am Eingang oder Ausgang des Umsetzers 18 dargestellte Zahl zu ermöglichen. PSO und PSI ermöglichen es dem Benutzer, den weiten dynamischen Teil einer logarithmischen Zahl in einen nutzbaren Bereich eines linearen Zahlensystems einzupassen. Auch wenn es sich bei den Daten um ganze Zahlen handelt, wird durch PSO und PSI angezeigt, wo die Dezimalstelle der eingegebenen oder ausgegebenen ganzzahligen Daten liegen sollte. Obwohl der Datenbus 14 nur sechzehn Bits breit ist, kann aufgrund der 6 Bits umfassenden PSI- und PSO-Werte eine Zahl mit einem Bereich von 64 Bits spezifiziert werden. Ein 6-Bit PSO- oder PSI-Wert ergibt also 64 Bits für den Bereich der Ganzzahl. Wo Präzision nötig ist, können folglich ganzzahlige Daten mit der gewünschten Genauigkeit gespeichert werden, wobei die Dezimalstelle von PSO oder PSI bestimmt ist. Wenn andererseits ein dynamischer Bereich erwünscht ist, d. h. Flexibilität im Bestimmungsbereich der eingegebenen und ausgegebenen ganzzahligen Daten, kann die ganze Zahl einfach als ganze Zahl gespeichert werden, wobei PSI und PSO auf null bzw. eine niedrige Zahl eingestellt ist.The comma set output (PSO) and the comma set input (PSI) have the task of providing flexibility and a dynamic range for the number shown at the input or output of the converter 18 . PSO and PSI enable the user to fit the wide dynamic part of a logarithmic number into a usable range of a linear number system. Even if the data is an integer, PSO and PSI indicate where the decimal place of the entered or output integer data should be. Although data bus 14 is only sixteen bits wide, a number with a range of 64 bits can be specified based on the 6-bit PSI and PSO values. A 6-bit PSO or PSI value gives 64 bits for the range of the integer. Where precision is required, integer data can therefore be stored with the desired accuracy, the decimal place being determined by PSO or PSI. On the other hand, if a dynamic range is desired, that is, flexibility in the determination range of the input and output integer data, the integer can simply be stored as an integer with PSI and PSO set to zero or a low number.

Datenregisterspeicher Data register memory

Fig. 3 zeigt den Datenregisterspeicher 20 mehr im einzelnen. Der Datenregisterspeicher 20 weist acht 16-Bit-Register auf, von denen es sich bei zweien um Nur-Lese-Register handelt, von denen eins ausschließlich Nullen und das andere ausschließlich Einsen enthält. Da insgesamt acht Register vorhanden sind, sind zum Adressieren jedes Registers 3-Bitleitungen nötig. Fig. 3 shows the data register memory 20 in more detail. The data register memory 20 has eight 16-bit registers, two of which are read-only registers, one of which contains only zeros and the other of which contains only ones. Since there are a total of eight registers, 3-bit lines are required to address each register.

Der Datenregisterspeicher 20 hat acht Anschlüsse, nämlich fünf Leseanschlüsse und drei Schreibanschlüsse. Sechs Anschlüsse (vier zum Lesen und zwei zum Schreiben) sind mit dem Rechner 22 verbunden. Die vier Leseanschlüsse sind mit A, B, C, D bezeichnet und die zwei Schreibanschlüsse mit P und M. Da sechs Anschlüsse für die Rechnerfunktion benutzt werden und 3-Bitleitungen zum Adressieren jedes Register für jeden Anschluß nötig sind, werden achtzehn Adressenleitungen gebraucht, um den Datenregisterspeicher 20 für Operation des Rechners 22 zu adressieren. Diese achtzehn Leitungen kommen vom IROM 40.The data register memory 20 has eight connections, namely five read connections and three write connections. Six connections (four for reading and two for writing) are connected to the computer 22 . The four read ports are labeled A, B, C, D and the two write ports are labeled P and M. Since six ports are used for the computer function and 3-bit lines are required to address each register for each port, eighteen address lines are needed to address data register memory 20 for computer 22 operation. These eighteen lines come from the IROM 40 .

Da jeweils nur der Converter 22 oder der Rechner 18 eingeschaltet ist, werden die Anschlüsse zum Converter 22 mit den Anschlüssen zum Rechner 18 gemeinsam genutzt oder multiplext. So werden die achtzehn Adressenleitungen vom IROM 40 auch benutzt, um Daten aus dem Datenregisterspeicher 20 an den Converter 22 (ein Leseanschluß) und vom Converter 22 an den Datenregisterspeicher 20 (ein Schreibanschluß) zu liefern. Since only the converter 22 or the computer 18 is switched on, the connections to the converter 22 are shared or multiplexed with the connections to the computer 18 . Thus, the eighteen address lines from IROM 40 are also used to deliver data from data register memory 20 to converter 22 (a read port) and from converter 22 to data register memory 20 (a write port).

Bei den anderen beiden Anschlüssen des Datenregister-Speichers 20 handelt es sich um einen Leseanschluß zum und einen Schreibanschluß vom Datenbus 14. Da vom Datenbus 14 aus nicht gleichzeitig die Operationen Lesen und Schreiben auftreten können, sind für diese Funktion nur drei Adressenleitungen nötig. Somit werden drei der fünf Bussteuerleitungen vom PLA 42 als Adressen benutzt, während eine weitere Busleitung zur Wahl Lesens oder Schreiben dient.The other two connections of the data register memory 20 are a read connection to and a write connection from the data bus 14 . Since the read and write operations cannot occur simultaneously from the data bus 14 , only three address lines are required for this function. Thus, three of the five bus control lines from the PLA 42 are used as addresses, while another bus line is used for reading or writing.

Die Adressen für den Datenregisterspeicher 20 werden an einen Adressencodierer 90 geliefert, der acht identische Decodierbereiche aufweist, die jeweils mittels einer Vielzahl von Wortleitungen an ein Register in einem Datenregisterarray 92 angeschlossen sind. Für die Lese/Schreib- Register sind neun Wortleitungen vorgesehen, und zwar fünf zur Wahl des Leseanschlusses bzw. der Leseanschlüsse, drei zur Wahl des Schreibanschlusses und eine zum Steuern des Latch, das die Daten hält. Für die zwei Nur-Lese-Register verbinden nur fünf Wortleitungen den Decodierer 90 mit dem Datenregisterarray 92. Die fünf Wortleitungen wählen den Leseanschluß bzw. die Leseanschlüsse. Die fünf Wortleitungen zur Wahl des Leseanschlusses bzw. der Leseanschlüsse sind an eine Leseanschluß- Kreuzungspunkt-Matrix 100 angeschlossen, die das die Daten haltende Latch 102 mit einem oder mehreren der Leseanschlüsse verbindet.The addresses for the data register memory 20 are supplied to an address encoder 90 , which has eight identical decoding areas, each of which is connected to a register in a data register array 92 by means of a plurality of word lines. Nine word lines are provided for the read / write registers, namely five to select the read connection or read connections, three to select the write connection and one to control the latch that holds the data. For the two read-only registers, only five word lines connect decoder 90 to data register array 92 . The five word lines select the read connection or the read connections. The five word lines to select the read port (s) are connected to a read port crosspoint matrix 100 which connects the latch 102 holding the data to one or more of the read ports.

Die drei Wortleitungen zur Wahl des Schreibanschlusses sind mit einer Schreibanschluß-Kreuzungspunkt-Matrix 104 verbunden, die einen der Schreibanschlüsse mit dem Latch 102 verbindet.The three word lines for selecting the write port are connected to a write port cross point matrix 104 which connects one of the write ports to the latch 102 .

Der Ausgang des Datenregisterarrays 92 wird einem E/A- Puffer 94 zugeleitet.The output of the data register array 92 is fed to an I / O buffer 94 .

Die lauter Nullen oder Einsen enthaltenden Nur-Lese- Register können auf verschiedene Weise benutzt werden. Zunächst kann der Inhalt dieser Register dort verwendet werden, wo diese Zahlen in arithmetischen Operationen erwünscht sind. Zweitens kann eine Operation durchgeführt und das Ergebnis in ein Nur-Lese- Register "eingeschrieben" werden. Auf diese Weise kann eine Aktualisierung des Status erfolgen, ohne daß der Informationsausgang geändert wird.The read-only ones containing all zeros or ones Registers can be made in different ways to be used. First of all, the content of this register be used where these numbers are in arithmetic  Operations are desired. Second, one Operation performed and the result in a read-only Registers are "registered". That way an update of the status can be done without the information output will be changed.

Logarithmischer RechnerLogarithmic calculator

Wie schon erwähnt, erhält derlogarithmische Rechner 22 logarithmische Daten vom Datenregisterspeicher 20, nimmt mit diesen Operationen vor, und leitet die resultierenden logarithmischen Daten zur Speicherung an den Datenregisterspeicher 20 zurück.As already mentioned, the logarithmic computer 22 receives logarithmic data from the data register memory 20 , carries out these operations, and returns the resulting logarithmic data to the data register memory 20 for storage.

In Fig. 4 ist der logarithmische Rechner 22 mehr im einzelnen dargestellt. Der logarithmische Rechner 22 führt die Aufgaben durch, Multiplikation, Division, Addition und Subtraktion an vier logarithmischen Daten zu berechnen. Die vier Eingangsoperanden in den logarithmischen Rechner 22 sind mit A, B, C bzw. D bezeichnet. Der logarithmische Rechner 22 weist eine erste Multiplizier/Dividiereinheit 122, eine zweite Multiplizier/Dividiereinheit 124 sowie eine Addier/ Subtrahiereinheit 126 auf.In FIG. 4, the logarithmic calculator 22 is shown in more detail. The logarithmic calculator 22 performs the tasks of calculating multiplication, division, addition and subtraction on four logarithmic data. The four input operands in the logarithmic computer 22 are labeled A, B, C and D , respectively. The logarithmic computer 22 has a first multiplier / divider unit 122 , a second multiplier / divider unit 124 and an add / subtract unit 126 .

Die erste Multiplizier/Dividiereinheit 122 erhält an Anschlüssen A und B Daten, mit denen sie die Operationen A × B oder A ÷ B durchführt.The first multiplier / divider unit 122 receives data at ports A and B with which it carries out the operations A × B or A ÷ B.

Die zweite Multiplizier/Dividiereinheit 124 arbeitet mit den Operanden C und D und bildet das Ergebnis von C(×/÷)D. Der Ausgang der ersten Multiplizier/Dividiereinheit 122 ist das Ergebnis U und der Ausgang der zweiten Multiplizier/Dividiereinheit 124 das Ergebnis V. Die Auswahl Multiplikation oder Division wird von einer der Bitleitungen vom IROM 40 gesteuert. Die einzige Bitleitung kann sowohl die erste als auch die zweite Multiplizier/ Dividiereinheit 122 und 124 steuern. Allerdings ist auch eine getrennte Steuerleitung für jede der beiden Einheiten möglich. The second multiplier / divider 124 works with the operands C and D and forms the result of C (× / ÷) D. The output of the first multiplier / divider 122 is the result U and the output of the second multiplier / divider 124 is the result V. The multiplication or division selection is controlled by one of the bit lines from the IROM 40 . The single bit line can control both the first and second multiplier / divider units 122 and 124 . However, a separate control line is also possible for each of the two units.

Die Resultate U und V der ersten bzw. zweiten Multiplizier/ Dividiereinheit 122 und 124 werden an die Addier/ Subtrahiereinheit 126 angelegt, die den Ausgang U + V bzw. U - V erzeugt. Diese werden dann über die Anschlüsse P bzw. M an den Datenregisterspeicher 20 zurückgeleitet.The results U and V of the first and second multiplying / dividing units 122 and 124 are applied to the adding / subtracting unit 126 , which produces the outputs U + V and U - V , respectively. These are then fed back to the data register memory 20 via the connections P or M.

Da der logarithmische Rechner 22 vier Operanden erhält und mehrfach Multiplikation, Division, Subtraktion und Addition durchführen kann, lassen sich mit dem Rechner 22 die folgenden Funktionen in einer einzigen Operation durchführen: Die "1" und "0" am Eingang werden von den Nur-Lese- Registern des Datenregisterspeichers 20 geliefert.Since the logarithmic computer 22 receives four operands and can carry out multiplication, division, subtraction and addition several times, the following functions can be carried out with the computer 22 in a single operation: The "1" and "0" at the input are provided by the read-only registers of the data register memory 20 .

Bei einem Ausführungsbeispiel benötigt der logarithmische Rechner 22 zwei Taktzyklen, um die vier Eingabeoperanden zur Erzeugung der zwei Ausgangsresultate zu behandeln. Um die Effizienz zu maximieren, ist der Rechner 22 für Pipeline-Verarbeitung ausgelegt, d. h. nach einem einzigen Taktzyklus kann der Rechner 22 vier neue Operanden aufnehmen und beginnen, sie zu verarbeiten. Pipline-Verarbeitung ist allgemein bekannt. Eine Möglichkeit der Pipeline- Verarbeitung besteht darin, die Ergebnisse U und V in Puffern am Ausgang der ersten bzw. zweiten Multiplizier/Dividiereinheit 122 bzw. 124 zu speichern. Gemäß einer Alternative können die Resultate U und V auch am Eingang der Addier/Subtrahiereinheit 126 gespeichert werden. In one embodiment, logarithmic calculator 22 requires two clock cycles to handle the four input operands to produce the two output results. To maximize efficiency, computer 22 is designed for pipeline processing, ie after a single clock cycle, computer 22 can pick up four new operands and begin processing them. Pipeline processing is well known. One way of pipeline processing is to store the results U and V in buffers at the output of the first and second multiplier / divider units 122 and 124, respectively. According to an alternative, the results U and V can also be stored at the input of the adding / subtracting unit 126 .

Für den Fall der Multiplikation und Division von zwei Zahlen A und B, die in eine logarithmische Darstellung umgesetzt wurden, mit a = log2 A und b = log2 B, ergibt sich für die Berechnungen: ähnlich, wenn U = A/B, log2 U = a - b.For the case of multiplication and division of two numbers A and B , which have been converted into a logarithmic representation, with a = log 2 A and b = log 2 B , the following results for the calculations: similar if U = A / B , log 2 U = a - b .

Im Logarithmen-Bereich erfolgt also die Multiplikation und Division ganzzahliger Daten durch Addition oder Subtraktion der entsprechenden logarithmischen Daten. Für die Durchführung der Multiplikation oder Division ganzzahliger Darstellungen der Daten weist also die erste und zweite Multiplizier/Dividiereinheit 122 bzw. 124 lediglich eine Addier/Subtrahiereinheit auf, um die logarithmische Darstellung dieser ganzzahligen Daten zu addieren oder zu subtrahieren, mit Korrektur des Exponenten-Vorzeichens (bias), Grenzwert (Saturation) und Status.In the logarithm area, the multiplication and division of integer data is carried out by adding or subtracting the corresponding logarithmic data. To carry out the multiplication or division of integer representations of the data, the first and second multiplier / divider units 122 and 124 only have an add / subtract unit to add or subtract the logarithmic representation of this integer data, with correction of the exponent sign (bias), limit (saturation) and status.

Um Addition und Subtraktion ganzer Zahlen in logarithmischer Darstellung durchzuführen, wird folgende Gleichung angegeben: Diese Gleichung läßt sich schreiben als: worin x = u - v , max (u,v) der maximale Wert von u oder v ist. Wenn u s und v s die Vorzeichen von u bzw. v sind, dann worin σ = u s v s (⊕ ist exklusiv oder). Graphisch ist die Gleichung von log2 (1 + σ2-x ) in Fig. 4a dargestellt. To perform addition and subtraction of integers in logarithmic representation, the following equation is given: This equation can be written as: where x = u - v , max ( u, v ) is the maximum value of u or v . If u s and v s are the signs of u and v , then where σ = u s v s (⊕ is exclusive or). The equation of log 2 (1 + σ 2 - x ) is shown graphically in FIG. 4a.

Die Addier/Subtrahiereinheit 126 ist im einzelnen in Fig. 4b gezeigt. Die beiden logarithmischen Zahlen, mit denen eine Addition und Subtraktion vorgenommen werden soll, sind durch die Buchstaben u und v wiedergegeben. Eine erste Addier/Subtrahiereinheit 128 bestimmt das arithmetische Produkt u - v, während eine zweite Addier/Subtrahiereinheit 130 das arithmetische Produkt v - u bestimmt. Die Ausgänge der beiden Addier/Subtrahiereinheiten 128 und 130 werden an einen fünften Multiplexer 132 angelegt. Das Übertrag-Ausgangs-Bit der zweiten Addier/ Subtrahiereinheit 130 wird an den fünften Multiplexer 132 und einen sechsten Multiplexer 134, einen siebten Multiplexer 136 und einen achten Multiplexer 138 angelegt. Die Eingänge für den sechsten, siebten und achten Multiplexer 134, 136, bzw. 138 sind (u, v), (u s , v s ) bzw. (u s , s ). Das Übertrag-Ausgangs-Bit der zweiten Addier/Subtrahiereinheit 130 bestimmt, ob v ≦λτ u oder u ≦λτ v. Wenn das Übertragsbit "hoch" ist, d. h. v ≦λτ u, dann wird der Inhalt der Addier/Subtrahiereinheit 130 an ein Indexregister 140 weitergegeben. Ist das Übertragsbit "tief", dann wird der Ausgang der Addier/Subtrahiereinheit 128 im Indexregister 140 gespeichert. Auf jeden Fall speichert das Indexregister 140 den Wert: x = u - v .The add / subtract unit126 is in detail inFig. 4b shown. The two logarithmic numbers with which addition and subtraction should be carried out are by the lettersu andv reproduced. A first one Add / subtract unit128 determines the arithmetic productu -vwhile a second adding / subtracting unit 130 the arithmetic productv -u certainly. The outputs of the two add / subtract units 128 and130 are connected to a fifth multiplexer 132 created. The carry output bit of the second add / Subtraction unit130 is going to the fifth multiplexer132  and a sixth multiplexer134, a seventh multiplexer 136 and an eighth multiplexer138 created. The Inputs for the sixth, seventh and eighth multiplexers 134,136, respectively.138 are (u, v), (u s ,v s ) respectively. (u s , s ). The carry output bit of the second add / subtract unit130  determines whetherv ≦ λτu oru ≦ λτv. If the carry bit is "high" is, d. H.v ≦ λτu, then the content of the add / subtract unit 130 to an index register140 passed on. If the carry bit is "low", then the output of the Add / subtract unit128 in the index register140 saved. In any case, the index register saves140  the value:x =u -v .

Das Übertrag-Ausgangs-Bit der Addier/Subtrahiereinheit 130 bestimmt auch den Ausgang des sechsten, siebten und achten Multiplexers 134, 136 bzw. 138. Der Ausgang des sechsten Multiplexers 134 ist max(u,v). Der Ausgang des siebten Multiplexers 136 ist das Vorzeichen S, welches dem Ausgangsterm (u + v) zugeführt wird. Der Ausgang des achten Multiplexers 138 ist das Vorzeichen S, welches dem Ausgangsterm (u - v) zugeführt wird.The carry output bit of the add / subtract unit 130 also determines the output of the sixth, seventh and eighth multiplexers 134 , 136 and 138 , respectively. The output of the sixth multiplexer 134 is max ( u, v ). The output of the seventh multiplexer 136 is the sign S , which is supplied to the output term ( u + v ). The output of the eighth multiplexer 138 is the sign S , which is supplied to the output term ( u - v ).

Vom fünften Multiplexer 132 werden die ausgegebenen fünfzehn Bits dem Indexregister 140 zugeleitet, das dann an einen Nulldetektor 142 gelegt wird. Das Indexregister 140 hat die Aufgabe, die Daten zeitweilig zu speichern. The fifteen bits output by the fifth multiplexer 132 are fed to the index register 140 , which is then applied to a zero detector 142 . The index register 140 has the task of temporarily storing the data.

Die dreizehn Ausgangsleitungen des Indexregisters 140 werden einer zweiten bzw. dritten CAL-Schaltung 144 bzw. 146 zugeführt.The thirteen output lines of index register 140 are fed to a second and third CAL circuit 144 and 146, respectively.

Diese beiden CAL-Schaltungen 144 und 146 sind jeweils 512 × 13 Bits. Die zweite CAL-Schaltung 144 erhält den Ausgang des Indexregisters 140 und erzeugt eine 9-Bit Zahl, die das Ergebnis von log2(1 + 2-x ) ist. Die dritte CAL-Schaltung 146 erhält den Ausgang des Indexregisters 140 und erzeugt das Ergebnis von log2(1 - 2-x ). Der Ausgang der zweiten CAL-Schaltung 144 wird dann an einen neunten Multiplexer 148 übergeben, der dann an einen Addierer 150 angelegt wird. Die neun Ausgangs-Bits der dritten CAL-Schaltung 146 werden an sechs Null-Bits höherer Ordnung von "0" angehängt (concatenated), um fünfzehn Bits zu bilden, die einem zehnten Multiplexer 152 zugeleitet werden und von dort an einen Subtrahierer 154 gelangen.These two CAL circuits 144 and 146 are 512 × 13 bits each. The second CAL circuit 144 receives the output of the index register 140 and generates a 9-bit number which is the result of log 2 (1 + 2 - x ). The third CAL circuit 146 receives the output of the index register 140 and produces the result of log 2 (1-2 - x ). The output of the second CAL circuit 144 is then passed to a ninth multiplexer 148 , which is then applied to an adder 150 . The nine output bits of the third CAL circuit 146 are concatenated to six higher order zero bits from "0" to form fifteen bits which are fed to a tenth multiplexer 152 and from there to a subtractor 154 .

Vom Indexregister 140 werden neun Bitleitungen auch an einen Festwertspeicher ROM 160 mit dreizehn Ausgangsleitungen angelegt. Die dreizehn Ausgangsleitungen werden an zwei Bits höherer Ordnung angehängt, um fünfzehn Bits zu bilden, die dem zehnten Multiplexer 152 zugeführt werden. Die fünfzehn Ausgangsleitungen vom siebten Multiplexer 134 enthalten das Maximum von u oder v und werden dem Subtrahierer 154 und dem Addierer 150 zugeleitet. Den Ausgang des Addierers 150 und des Subtrahierers 154 bildet das Ergebnis von log2(U + V) bzw. log2(U - V).Index register 140 also applies nine bit lines to a read-only memory ROM 160 with thirteen output lines. The thirteen output lines are appended to two higher order bits to form fifteen bits which are fed to the tenth multiplexer 152 . The fifteen output lines from seventh multiplexer 134 contain the maximum of u or v and are fed to subtractor 154 and adder 150 . The output of adder 150 and subtractor 154 forms the result of log 2 ( U + V ) and log 2 ( U - V ), respectively.

Nachfolgend soll die Arbeitstheorie des logarithmischen Rechners 22 erläuert werden. Wie schon gesagt, bestimmt die erste und zweite Addier/Subtrahiereinheit 128 bzw. 130, ob v größer ist als u oder nicht oder ob u größer ist als v. Der absolute Wert der Größe (u - v) wird im Indexregister 140 gespeichert. Hierbei handelt es sich um den Wert von x. Wenn x null ist, so wird dies vom Nulldetektor 142 festgestellt. Es sei noch erwähnt, daß x immer noch in logarithmischer Darstellung vorliegt und folgende Form hat: Die dreizehn Bits von x, die die neun Bits Mantisse und die ersten vier Bits des Exponententeils (Bits 0-3 von e)umfassen, werden der zweiten CAL-Schaltung 144 zugeführt. Wie schon erwähnt, ist der Ausgang der zweiten CAL-Schaltung das Ergebnis log2(1 + 2-x ). Aus Fig. 4a geht hervor, daß der Ausgang der zweiten CAL-Schaltung 144 immer eine Zahl ist, die zwischen null und plus eins liegt. Deshalb sind die neun Ausgangsbits der zweiten CAL-Schaltung 144 alle nur Mantissenteil.The working theory of the logarithmic computer 22 will be explained below. As already said, the first and second add / subtract units 128 and 130 determine whether v is greater than u or not or whether u is greater than v . The absolute value of the size ( u - v ) is stored in the index register 140 . This is the value of x . If x is zero, this is detected by zero detector 142 . It should also be mentioned that x is still logarithmic and has the following form: The thirteen bits of x , which comprise the nine bits of mantissa and the first four bits of the exponent part (bits 0-3 of e), are supplied to the second CAL circuit 144 . As already mentioned, the output of the second CAL circuit is the result log 2 (1 + 2 - x ). From Fig. 4a, it is apparent that the output of the second CAL circuit 144 is always a number that is between zero and plus one. Therefore, the nine output bits of the second CAL circuit 144 are all mantissa parts.

Die beiden signifikantesten Bits des Exponententeils von x, d. h. die Bits 4-5 von e werden dann einer Testeinheit 149 zugeleitet, die feststellt, ob diese beiden Bits null sind. Ist das Ergebnis der Testeinheit 149 so, daß beide Bits null sind, dann wählt die Testeinheit 149 den Multiplexer 148, so daß der Ausgang von der zweiten CAL-Schaltung 144 kommt. Wenn andererseits das Ergebnis der Testeinheit 149 hinsichtlich dieser beiden Bits so aussieht, daß sie nicht null sind, dann erhält der Ausgang des Multiplexers 148 alles Nullen.The two most significant bits of the exponent part of x , ie bits 4-5 of e are then passed to a test unit 149 which determines whether these two bits are zero. If the result of the test unit 149 is such that both bits are zero, then the test unit 149 selects the multiplexer 148 so that the output comes from the second CAL circuit 144 . On the other hand, if the result of the test unit 149 with respect to these two bits looks like they are not zero, then the output of the multiplexer 148 gets all zeros.

Zeigen die beiden signifikantesten Bits des Exponententeils von x, daß sie ungleich null sind, bedeutet dies, daß x eine sehr große Zahl ist. Aus Fig. 4a ist zu entnehmen, daß bei sehr großen Zahlen der Wert von log2(1 + 2-x ) sich asymptotisch null nähert. Null ist also der Ausgang des Multiplexers 148. Wenn andererseits die Überprüfung der beiden signifikantesten Bits des Exponententeils von x zeigt, daß beide gleich null sind, dann ist der Wert von x keine so große Zahl, als daß ein Ausgang von lauter Nullen gerechtfertigt wäre. Folglich wird der Ausgang der zweiten CAL-Schaltung 144 durch den Multiplexer 148 geleitet.If the two most significant bits of the exponent part of x show that they are non-zero, it means that x is a very large number. From Fig. 4a it can be seen that the value of log 2 (1 + 2 - x ) approaches asymptotically zero for very large numbers. The output of multiplexer 148 is therefore zero. On the other hand, if checking the two most significant bits of the exponent part of x shows that both are zero, then the value of x is not a number so large as to justify an output of all zeros. As a result, the output of the second CAL circuit 144 is passed through the multiplexer 148 .

Der Addierer 150 empfängt den Ausgang vom Multiplexer 148 und addiert zu diesem den Wert des Ausgangs des Multiplexers 144, der, wie schon gesagt, das Maximum von u oder v liefert. So ist der Ausgang des Addierers 150 der Term max(u,v) + log2(1 + 2-x ), also log2(U + V).The adder 150 receives the output from the multiplexer 148 and adds to it the value of the output of the multiplexer 144 which, as already said, supplies the maximum of u or v . So the output of the adder 150 is the term max ( u, v ) + log 2 (1 + 2 - x ), that is log 2 ( U + V ).

Vom Indexregister 140 werden die dreizehn Bits des Wertes von x, nämlich die neun Bits Mantissen und die vier am wenigsten signifikanten Bits vom Exponenten, d. h. Bits 0-3 von e, auch an die dritte CAL-Schaltung 146 angelegt. Der Ausgang der dritten CAL-Schaltung 146 ist der Ausdruck log2(1 + 2-x ). Die neun Ausgangsbits der dritten CAL-Schaltung 146 sind der Mantissenteil des Ausdrucks log2(1 - 2-x ). Wenn x größer oder gleich eins ist, ist der Ausdruck log2(1 - 2-x ) eine Zahl zwischen null und minus eins. Die neun Bits Mantisse werden an sechs Null-Bits angehängt, um die fünfzehn Ausgangsbits zu liefern, die dem Multiplexer 152 zugeleitet werden.From index register 140 , the thirteen bits of the value of x , namely the nine bits of mantissa and the four least significant bits of the exponent, ie bits 0-3 of e , are also applied to the third CAL circuit 146 . The output of the third CAL circuit 146 is the expression log 2 (1 + 2 - x ). The nine output bits of the third CAL circuit 146 are the mantissa part of the expression log 2 (1 - 2 - x ). If x is greater than or equal to one, the expression log 2 (1 - 2 - x ) is a number between zero and minus one. The nine bits of mantissa are appended to six zero bits to provide the fifteen output bits that are passed to multiplexer 152 .

Wenn x zwischen null und eins liegt, dann ist der Ausgang von log2(1 - 2-x ), wie Fig. 4a zeigt, eine Zahl zwischen minus eins und minus unendlich. Da es sich hier um eine Abbildung von wenigen Zahlen auf eine große Anzahl von Zahlen handelt, wird ein ROM 160 benutzt. Die neun Bits des Mantissenteils von x werden an das ROM 160 angelegt, mit dem Ergebnis, daß dreizehn Bits Ausgang geliefert werden. Diese dreizehn werden durch zwei weitere Bits ergänzt, die das Richtungsvorzeichen des Exponententeils (bei negativer Richtung wäre dies "0") und das Bit höherer Ordnung für den Exponenten darstellen, was "1" wäre. Diese fünfzehn Bits werden dem Multiplexer 152 zugeleitet. In einer zweiten Testeinheit 151 werden die vier Bits niedriger Ordnung des Exponententeils von x, d. h. Bits 0-3 von e geprüft. Die Ergebnisse der ersten Prüfeinheit 149 und der zweiten Prüfeinheit 151 werden einem logischen Decodierer 153 zugeführt, der den Betrieb des Multiplexers 152 steuert.If x is between zero and one, then the output of log 2 (1-2 - x ), as shown in Fig. 4a, is a number between minus one and minus infinity. Since this is a mapping from a few numbers to a large number of numbers, a ROM 160 is used. The nine bits of the mantissa portion of x are applied to ROM 160 , with the result that thirteen bits of output are provided. These thirteen are supplemented by two further bits, which represent the direction sign of the exponent part (if the direction was negative, this would be "0") and the higher-order bit for the exponent, which would be "1". These fifteen bits are passed to multiplexer 152 . The four low-order bits of the exponent part of x , ie bits 0-3 of e, are checked in a second test unit 151 . The results of the first test unit 149 and the second test unit 151 are fed to a logic decoder 153 which controls the operation of the multiplexer 152 .

Die Arbeitsweise des Multiplexers 152 ist wie folgt zu verstehen: Wenn alle sechs Bits des Exponenten e null sind und der Nulldetektor 142 nicht null ist, dann wird der Ausgang des ROM 160 gewählt. Wenn der Nulldetektor 142 null ist, dann ist der Ausgang des Multiplexers 134, d. h. max(u,v), der Ausgang des Multiplexers 152. Wenn der Ausgang der Testeinheit 149 nicht null ist, besteht der Ausgang des Multiplexers 152 aus lauter Nullen. Wenn schließlich der Ausgang der Testeinheit 151 nicht null und der Ausgang der Testeinheit 149 null ist, dann wird der Ausgang der dritten CAL-Schaltung 146 gewählt. Der Ausgang des Multiplexers 152 wird vom Maximum von u oder v mittels des Subtrahierers 154 abgezogen.The operation of the multiplexer 152 is to be understood as follows: if all six bits of the exponent e are zero and the zero detector 142 is not zero, then the output of the ROM 160 is selected. If the zero detector 142 is zero, then the output of multiplexer 134 , ie max ( u, v ), is the output of multiplexer 152 . If the output of test unit 149 is not zero, the output of multiplexer 152 is all zeros. Finally, if the output of the test unit 151 is not zero and the output of the test unit 149 is zero, then the output of the third CAL circuit 146 is selected. The output of multiplexer 152 is subtracted from the maximum of u or v by subtractor 154 .

Die Wahl des Multiplexers 152 geschieht auf folgender Grundlage. Wenn der Exponententeil von x aus lauter Nullen besteht und der Nulldetektor 142 nicht feststellt, daß x null ist, dann ist klar, daß x eine Zahl zwischen null und eins ist, und folglich wird der Ausgang von ROM 160 gewählt. Wenn x null ist, dann ist log2(1 - 1) eine undefinierte Zahl, und der Prozessor 10 erzeugt, wie schon erwähnt, eine spezielle Zahl. Max(u,v) wird vom Multiplexer 152 ausgewählt und im Subtrahierer 154 von sich selbst abgezogen. Damit ist der Ausgang des Subtrahierers 154 die spezielle Zahl "0. . .0". Wenn der Ausgang der Testeinheit 149 nicht null ist, dann ist x eine große Zahl und in diesem Fall ist log2(1 - 2-x ) eine Zahl, die sich asymptotisch null nähert. Der Multiplexer 152 wählt infolgedessen eine Zahl, die nur aus Nullen besteht. Wenn der Ausgang der Testeinheit 149 null ist, d. h. wenn x keine große Zahl ist, und der Ausgang der Prüfeinheit 151 nicht null ist, d. h. x größer ist als +1, dann wird der Ausgang der dritten CAL-Schaltung 146 gewählt.The multiplexer 152 is selected on the following basis. If the exponent part of x is all zeros and the zero detector 142 does not determine that x is zero, then it is clear that x is a number between zero and one, and consequently the output from ROM 160 is chosen. If x is zero, then log 2 (1-1) is an undefined number and, as previously mentioned, processor 10 generates a special number. Max ( u, v ) is selected by multiplexer 152 and subtracted from itself in subtractor 154 . Thus the output of the subtractor 154 is the special number "0.. .0". If the output of the test unit 149 is not zero, then x is a large number and in this case log 2 (1-2 - x ) is a number that approaches zero asymptotically. As a result, the multiplexer 152 selects a number consisting only of zeros. If the output of the test unit 149 is zero, ie if x is not a large number and the output of the test unit 151 is not zero, ie x is greater than +1, then the output of the third CAL circuit 146 is selected.

Da die Zahl log2(1 - 2-x ) immer eine negative Zahl ist (siehe Fig. 4a), wird sie folglich mit dem Subtrahierer 154 von max(u,v) abgezogen, um den gewünschten Ausgang max(u,v) + log2(1 - 2-x ) zu erzeugen, also log2(U - V). Since the number log 2 (1 - 2 - x ) is always a negative number (see FIG. 4a), it is consequently subtracted from max ( u, v ) with the subtractor 154 in order to obtain the desired output max ( u, v ) + log 2 (1 - 2 - x ), i.e. log 2 (U - V).

Komparatorarraylogik, d. h. CAL-Schaltung Comparator array logic, d. H. CAL circuit

In Fig. 5 ist eine CAL-Schaltung 210 gezeigt, die eine Vielzahl von Vergleichern 212 aufweist. Bei dem in Fig. 5 gezeigten Ausführungsbeispiel der CAL-Schaltung 210 sind N derartige Vergleichsschaltungen vorgesehen. In jedem Vergleicher 212 ist ein digitaler Wert gespeichert. Die in den N Vergleichern gespeicherten digitalen Werte sind in monoton steigender oder fallender Folge gespeichert. Unter monoton steigend oder fallend ist zu verstehen, daß die digitalen Werte, die in den N Vergleichern 212 gespeichert sind, alle in aufsteigender oder in absteigender Folge gespeichert sind. FIG. 5 shows a CAL circuit 210 which has a multiplicity of comparators 212 . In the exemplary embodiment of the CAL circuit 210 shown in FIG. 5, N such comparison circuits are provided. A digital value is stored in each comparator 212 . The digital values stored in the N comparators are stored in monotonically increasing or decreasing order. Monotonically increasing or decreasing is to be understood to mean that the digital values stored in the N comparators 212 are all stored in ascending or descending order.

Jeder der Vergleicher 212 emfängt ein Eingangsdatensignal, welches einen Eingangswert darstellt. Jeder der Vergleicher 212 vergleicht den in ihm gespeicherten digitalen Wert mit den empfangenen Daten und erzeugt in Abhängigkeit von diesem Vergleich ein Vergleichsignal. Das Vergleichssignal bestimmt, ob der in jedem Vergleicher 212 gespeicherte Wert strikt größer ist oder nicht, was bedeutet, daß der gespeicherte Wert kleiner oder gleich dem Eingangsdatenwert ist. Jedes der Vergleichssignale wird längs einer der Ausgangsleitungen 214 zur Verfügung gestellt, die alle zu einem Codierer 216 führen. Der Codierer 216 erzeugt ein Ausgangssignal, welches den Platz des Vergleichers 212 wiedergibt, dessen gespeicherter digitaler Wert an den Wert der Eingangsdaten angrenzt. Der Ausgang des Codierers 216 kann der Platz des Vergleichers 212 sein, dessen Wert an die digitalen Eingangsdaten insofern angrenzt, als er unmittelbar größer ist oder gleich den eingegebenen digitalen Daten. Umgekehrt kann der Ausgang des Codierers 216 der Platz des Vergleichers 212 sein, dessen gespeicherter Wert in der Weise an den Wert der Eingangsdaten angrenzt, daß er unmittelbar kleiner ist als die Eingangsdaten.Each of the comparators 212 receives an input data signal that represents an input value. Each of the comparators 212 compares the digital value stored in it with the received data and generates a comparison signal as a function of this comparison. The comparison signal determines whether or not the value stored in each comparator 212 is strictly greater, which means that the stored value is less than or equal to the input data value. Each of the comparison signals is provided along one of the output lines 214 , all of which lead to an encoder 216 . Encoder 216 generates an output signal that represents the location of comparator 212 , the stored digital value of which is adjacent to the value of the input data. The output of encoder 216 may be the location of comparator 212 , the value of which is adjacent to the digital input data in that it is immediately larger than or equal to the input digital data. Conversely, the output of encoder 216 may be the location of comparator 212 , whose stored value is adjacent to the value of the input data in such a way that it is immediately smaller than the input data.

Da Daten typischerweise in einem zweidimensionalen Array gespeichert werden, damit weniger Zugriffsleitungen als bei einem eindimensionalen Array nötig sind, kann die CAL-Schaltung 210 ähnlich in zweidimensionaler Arrayform angeordnet sein, die erheblich an Verdrahtung einspart und die CAL-Schaltung 210 kompakter macht. Außerdem könnte dann der Codierer 216 kompakter und praktischer sein. Eine lineare Anordnung von 512 Vergleichern 212 erforderte beispielsweise einen Codierer 216 mit 512 Eingängen. Ein zweidimensionaler Codierer hingegen erfordert nur 48 Eingänge in einer Anordnung von 16 × 32 (512 = 16 × 32).Since data is typically stored in a two-dimensional array so that fewer access lines are required than in a one-dimensional array, the CAL circuit 210 can similarly be arranged in a two-dimensional array form, which saves considerable wiring and makes the CAL circuit 210 more compact. In addition, encoder 216 could then be more compact and practical. For example, a linear arrangement of 512 comparators 212 required an encoder 216 with 512 inputs. A two-dimensional encoder, on the other hand, only requires 48 inputs in an arrangement of 16 × 32 (512 = 16 × 32).

Fig. 6 zeigt eine weitere CAL-Schaltung 310, bei der es sich um ein zweidimensionales Array mit einer Anzahl Zeilen und einer Anzahl Spalten handelt. Innerhalb jeder Zeile der CAL-Schaltung 310 gibt es viele miteinander verbundene Vergleicher 312. Auch innerhalb jeder Spalte gibt es eine Vielzahl von miteinander verbundenen Vergleichern 312. In jedem Vergleicher 312 ist ein digitaler Wert gespeichert. Das Array aus einer Vielzahl von Vergleichern 312 ist so angeordnet, daß die in den Vergleichern 312 gespeicherten Werte in monoton steigender oder fallender Folge gespeichert sind. Jeder Vergleicher 312 ist mit C ÿ bezeichnet, wobei i die Zeilennummer und j die Spaltennummer ist. Die digitalen Werte können in der CAL-Schaltung 310 so gespeichert werden, daß C 00 ≦ωτ C 01 ≦ωτ C 02 ≦ωτ C 03 ≦ωτ C 10 . . . ≦ωτ C 33.Somit ist innerhalb jeder Zeile C ÿ ≦ωτ C i(j+1) und innerhalb jeder Spalte C ÿ ≦ωτ C (i+i)j . Ferner ist in einer M × N CAL-Schaltung 310, bei der 0 ≦ iM - 1 und 0 ≦ jN - 1, wenn die letzte Spalte einer Reihe i erreicht wird, d. h. wenn C i, N-1, der nächste Wert C i+1,0, wobei C i,N-1 ≦ωτ C i+1,0. FIG. 6 shows a further CAL circuit 310 , which is a two-dimensional array with a number of rows and a number of columns. There are many interconnected comparators 312 within each row of CAL circuit 310 . There are also a plurality of interconnected comparators 312 within each column. A digital value is stored in each comparator 312 . The array of a plurality of comparators 312 is arranged such that the values stored in the comparators 312 are stored in a monotonically increasing or decreasing sequence. Each comparator 312 is labeled C ÿ , where i is the row number and j is the column number. The digital values can be stored in the CAL circuit 310 such that C 00 ≦ ωτ C 01 ≦ ωτ C 02 ≦ ωτ C 03 ≦ ωτ C 10 . . . ≦ ωτ C 33. Hence C ÿ ≦ ωτ C i ( j +1) within each row and C ÿ ≦ ωτ C ( i + i ) j within each column. Furthermore, in an M × N CAL circuit 310 , where 0 ≦ iM - 1 and 0 ≦ jN - 1, when the last column of a row i is reached, ie when C i , N -1 , the next value C i +1.0 , where C i, N -1 ≦ ωτ C i +1.0 .

Zu jedem Vergleicher 312 gehört eine Dateneingabeeinrichtung 314 zum Empfang des Eingangsdatensignals. Das Eingangsdatensignal an 314 stellt einen Eingangswert dar, der von jedem Vergleicher 312 empfangen und mit dem in ihm gespeicherten digitalen Wert verglichen wird. Jeder Vergleicher 312 erzeugt in Abhängigkeit vom Vergleich des Eingangsdatenwertes mit dem gespeicherten digitalen Wert ein Vergleichssignal 316. Jedem Vergleicher C ÿ 312 in jeder Zeile ist eine Endzelle EC ÿ 320 zugeordnet. Jede Endzelle EC ÿ 320 emfängt das Vergleichssignal 316 vom Vergleicher C ÿ 312 und das Vergleichssignal 316 von einem unmittelbar benachbarten Vergleicher C i(j-1) 312. Jede Endzelle EC ÿ 320 erzeugt ein Ausgangssignal 322, welches dem Gate eines Pull-Down-Transistors 324 zugeleitet wird. Der Pull-Down-Transistor 324 hat eine Source, die an Erdpotential liegt, und einen Drain, der mit jeder Spaltenbitleitung verbunden ist.Each comparator 312 includes a data input device 314 for receiving the input data signal. The input data signal at 314 represents an input value received by each comparator 312 and compared with the digital value stored therein. Each comparator 312 generates a comparison signal 316 depending on the comparison of the input data value with the stored digital value. An end cell EC ÿ 320 is assigned to each comparator C ÿ 312 in each row. Each end cell EC ÿ 320 receives the comparison signal 316 from the comparator C ÿ 312 and the comparison signal 316 from an immediately adjacent comparator C i ( j -1) 312 . Each end cell EC ÿ 320 generates an output signal 322 , which is fed to the gate of a pull-down transistor 324 . Pull-down transistor 324 has a source that is at ground potential and a drain that is connected to each column bit line.

In ähnlicher Weise ist zwischen jeder benachbarten Zeile von Vergleichern 312 in der letzten Spalte eine Endzelle EC i,N-1 321 angeordnet, die das Vergleichssignal 316 vom Vergleicher C i,N-1 312 und das Vergleichssignal 316 vom unmittelbar benachbarten Vergleicher C (i+1),N-1 312 in der gleichen Spalte empfängt. Die Endzelle 321 erzeugt ein Ausgangssignal 323, welches an das Gate eines Spalten-Pull- Down-Transistors 325 angelegt wird. Dieser Pull-Down-Transistor 325 hat eine an Erdpotential liegende Source und einen Drain, der mit jeder Zeilenbitleitung verbunden ist.Similarly, between each adjacent row of comparators 312 in the last column there is an end cell EC i, N -1 321 , which contains the comparison signal 316 from the comparator C i, N -1 312 and the comparison signal 316 from the immediately adjacent comparator C ( i +1), N -1 312 in the same column. The end cell 321 generates an output signal 323 which is applied to the gate of a column pull-down transistor 325 . This pull-down transistor 325 has a source at ground potential and a drain connected to each row bit line.

Jede Endzelle EC ÿ vom Zeilen- oder Spaltentyp 320 ist als Logik in Fig. 7 dargestellt und identisch. Jede Endzelle 320 weist ein UND-Gatter mit zwei Eingängen auf, von denen der eine das Vergelichssignal 316 von dem Vergleicher 312 erhält, der dieser Endzelle 320 zugeordnet ist, und der andere das Vergleichssignal 316 vom unmittelbar benachbarten Vergleicher 312 erhält, nachdem es in einem Inverter invertiert wurde. Logisch ist dies dasselbe wie ein NOR-Gatter mit invertiertem Eingang.Each end cell EC ÿ of the row or column type 320 is shown as logic in FIG. 7 and is identical. Each end cell 320 has an AND gate with two inputs, of which one the Vergelichssignal receives 316 from the comparator 312 associated with 320 of the end cell, and the other the comparison signal 316 is obtained from the immediately adjacent comparator 312 after a in Inverter was inverted. Logically, this is the same as a NOR gate with an inverted input.

Wie schon erwähnt, ist in dem Vergleicher 312 ein digitaler Wert gespeichert. Der digitale Wert wird in binärer Form dargestellt. Folglich weist der Vergleicher 312 eine Vielzahl untereinander verbundener Bitvergleicher 326 auf. Ein solcher Bitvergleicher 326 ist in Fig. 6a gezeigt. Jeder der Bitvergleicher 326 ist mit dem benachbarten Bitvergleicher 326 verbunden. In jedem der Bitvergleicher 326 ist ein einziger Bitwert gespeichert, und jeder Bitvergleicher vergleicht ein einziges Bit des Eingangsdatensignals 314 mit dem gespeicherten Bit. Jeder der Bitvergleicher 326 hat einen Eingang, der als C IN dargestellt ist, an dem er den Ausgang des Vergleichs vom unmittelbar benachbarten Bitvergleicher 326 empfängt. Das Signal an C IN wird der Source eines ersten Transistors 328 zugeführt. Der erste Transistor 328 hat ein Gate, welches ein einzelnes Bit des Eingangsdatensignals empfängt. Außerdem hat der erste Transistor 328 einen Drain, der mit dem Drain eines zweiten Transistors 330 verbunden ist. Der zweite Transistor 330 hat eine Source, die entweder an V DD angeschlossen oder geerdet ist, je nachdem, ob der gespeicherte Wert Binär 1 (in diesem Fall ist er geerdet) oder oder Binär 0 ist (in diesem Fall ist die Source an V DD angeschlossen). Der zweite Transistor 330 hat ein Gate, welches ebenfalls ein einzelnes Bit des Eingangsdatensignals empfängt. Der Drain des zweiten Transistors 330 ist mit dem Drain des ersten Transistors 328 zusammengeschlossen, und sie bilden den Ausgang des Bitvergleichers 326, der als C OUT dargestellt ist.As already mentioned, a digital value is stored in the comparator 312 . The digital value is represented in binary form. As a result, the comparator 312 has a plurality of interconnected bit comparators 326 . Such a bit comparator 326 is shown in FIG. 6a. Each of the bit comparators 326 is connected to the adjacent bit comparator 326 . A single bit value is stored in each of the bit comparators 326 and each bit comparator compares a single bit of the input data signal 314 with the stored bit. Each of the bit comparators 326 has an input, shown as C IN , at which it receives the output of the comparison from the immediately adjacent bit comparator 326 . The signal at C IN is supplied to the source of a first transistor 328 . The first transistor 328 has a gate that receives a single bit of the input data signal. The first transistor 328 also has a drain connected to the drain of a second transistor 330 . The second transistor 330 has a source that is either connected to V DD or grounded, depending on whether the stored value is binary 1 (in this case it is grounded) or binary 0 (in this case the source is at V DD) connected). The second transistor 330 has a gate which also receives a single bit of the input data signal. The drain of the second transistor 330 is connected to the drain of the first transistor 328 and they form the output of the bit comparator 326 , which is shown as C OUT .

Somit ist für Bit k , welches auf "1" programmiert ist, die Source des zweiten Transisitors 330 geerdet. liegt am Gate des zweiten Transistors 330 und D am Gate des ersten Transisitor 328 an. Wenn umgekehrt Bit k so programmiert ist, daß es "0" ist, dann ist die Source des zweiten Transistors 330 an V DD angeschlossen. D wird an das Gate des zweiten Transistors 330 und an das Gate des ersten Transistors 328 geliefert. Im Ergebnis läuft dies darauf hinaus, daß höchstens 2 Transistoren pro Bit benötigt werden.So for bit k , which is programmed to "1", the source of the second transistor330 grounded.   lies at the gate of the second transistor330 andD at the gate of the first Transisitor328 at. If reverse bit k  programmed like this is that it is "0" then the source of the second Transistor330 atV DD  connected.D is going to the Gate of the second transistor330 and  to the gate of the first Transistor328 delivered. As a result, this works in addition that a maximum of 2 transistors per bit is required will.

In Fig. 6b ist getrennt der Bitvergleicher 326 aus Fig. 6a 05685 00070 552 001000280000000200012000285910557400040 0002003622205 00004 05566 gezeigt, der so programmiert ist, daß er "1" oder "0" ist. Das in den Fig. 6a und 6b gezeigte Ausführungsbeispiel des Bitvergleicher 326 ist das bevorzugte Ausführungsbeispiel. In Fig. 6b, the bit comparator 326 in Fig. 6a 05685 00070 552 001000280000000200012000285910557400040 0002003622205 00004 05566 shown separately which is programmed so that it is "1" or "0". The embodiment of the bit comparator 326 shown in FIGS . 6a and 6b is the preferred embodiment.

In Fig. 6c ist eine Abwandlung des Bitvergleichers 326 dargestellt. Bei diesem Ausführungsbeispiel weist der Vergleicher 326 einen Doppelbitvergleicher auf. Jede der vier in Fig. 6c gezeigten Schaltungen gehört zum Vergleicher 326 und ist zur Speicherung der Werte "00" oder "01" oder "10" oder "11" programmiert. Die Eingänge D 3, D 2, D 1 und D 0 sind Decodierungen von Zweibiteingangssignalen, und beim Vorladen müssen alle vier hoch sein. Wenn Geschwindigkeit erwünscht ist, ist dies das bevorzugte Ausführungsbeispiel wegen der raschen Fortpflanzung.A modification of the bit comparator 326 is shown in FIG. 6c. In this embodiment, the comparator 326 has a double bit comparator. Each of the four circuits shown in Figure 6c belongs to comparator 326 and is programmed to store the values "00" or "01" or "10" or "11". Inputs D 3 , D 2 , D 1 and D 0 are decodings of two-bit input signals, and all four must be high when precharging. If speed is desired, this is the preferred embodiment because of the rapid propagation.

Fig. 6d zeigt eine weitere Abwandlung des Bitvergleichers 326. Bei diesem Ausführungsbeispiel ist jede der Zellen von Bitvergleichern selbstaufsteuernd. FIG. 6d shows a further modification of the bit comparator 326th In this embodiment, each of the cells of bit comparators is self-driving.

In Fig. 6e ist schließlich noch ein weiteres Ausführungsbeispiel eines Bitvergleichers 326 gezeigt. Dieser Bitvergleicher 326 ist eine dynamische Übertragskette, bei der KE während der Auswertung tief geht und = = hoch während der Vorladung. Dies Ausführungsbeispiel braucht wahrscheinlich weniger Halbleiterfläche als das Ausführungsbeispiel mit Selbstaufsteuerung oder das bevorzugte Ausführungsbeispiel.InFig. Finally, 6e is yet another embodiment a bit comparator326 shown. This bit comparator 326 is a dynamic carry chain where KE goes deep during the evaluation and  =  = high during the Subpoena. This embodiment probably needs less semiconductor area than the exemplary embodiment with self-boosting or the preferred embodiment.

Die logischen Gleichungen des jeder Endzelle 320 zugeordneten Vergleichers 312 sind in Fig. 7 dargestellt. Es wird davon ausgegangen, daß für das am wenigsten signifikante Bit, d. h. das am weitesten rechts stehende Bit des Bitvergleichers 326,C IN auf logisch 0 gesetzt ist, was bedeutet, daß C IN an Erdpotential gebunden ist. Die Berechnung von C OUT hängt von den Variablen B und D ab, von denen B der Wert des gespeicherten Bits innerhalb jedes Bitvergleichers 326 und D der Wert der binären Daten im Eingangsdatensignal ist.The logical equations of the comparator 312 assigned to each end cell 320 are shown in FIG. 7. It is assumed that for the least significant bit, ie the rightmost bit of the bit comparator 326 , C IN is set to logic 0, which means that C IN is tied to ground potential. The calculation of C OUT depends on variables B and D , of which B is the value of the stored bit within each bit comparator 326 and D is the value of the binary data in the input data signal.

Fig. 8 zeigt ein weiteres Ausführungsbeispiel eines Bitvergleichers 426. Eine Vielzahl der untereinander verbundenen Bitvergleicher 426 bildet den Vergleicher 312. Der Bitvergleicher 426 unterscheidet sich von dem Bitvergleicher 326 insofern, als er einen Bitwert hat, der veränderbar ist. Die Veränderbarkeit des im binären Vergleicher 426 gespeicherten Bits tritt wie folgt auf. Ein gesondertes Latch bzw. ein Speicherplatz 425 speichert den Wert des Bits im Vergleicher 426. Veränderungen im Bitwert der Speicherzelle 425 ändern den Bitvergleicher 426. Der Speicherplatz 425 kann ein Latch, ein Flip-Flop, ein statisches RAM, ein ROM oder eine beliebige andere Speichervorrichtung sein. Fig. 8 shows another embodiment of a bit comparator 426th A plurality of the bit comparators 426 connected to one another form the comparator 312 . Bit comparator 426 differs from bit comparator 326 in that it has a bit value that is changeable. The variability of the bit stored in binary comparator 426 occurs as follows. A separate latch or memory location 425 stores the value of the bit in the comparator 426 . Changes in the bit value of the memory cell 425 change the bit comparator 426 . Storage space 425 may be a latch, flip-flop, static RAM, ROM, or any other storage device.

In Fig. 8a ist ein weiterer programmierbarer Bitvergleicher 426 gezeigt. Jeder der Transistoren im Bitvergleicher 426 hat ein schwimmendes Gate 428. Die Programmierbarkeit läßt sich dadurch erreichen, daß das schwimmende Gate 428 während des Maskierungsschrittes entfernt und der Transistor veranlaßt wird, immer ein- oder ausgeschaltet oder mittels des Gatesignals schaltbar zu sein. Natürlich kann das schwimmende Gate 428 auch unter Verwendung der bekannten E2-Technologie im Feld programmiert werden.Another programmable bit comparator 426 is shown in FIG. 8a. Each of the transistors in bit comparator 426 has a floating gate 428 . The programmability can be achieved by removing the floating gate 428 during the masking step and causing the transistor to always be on or off or to be switchable by means of the gate signal. Of course, floating gate 428 can also be programmed in the field using known E 2 technology.

Die CAL-Schaltungen 210 oder 310 sind vielfach verwendbar. Ein besonderer Anwendungsfall liegt bei Nachschlagefunktionen vor, wo eine monotone Funktion gegeben ist, bei der es I Bits Eingabe gegenüber 0 Bits Ausgabe gibt, wobei I größer ist als 0. Die CAL-Schaltung ist bei monton zunehmenden und auch monoton abnehmenden Funktionen anwendbar. Einige der Anwendungsfälle, die diese Kriterien erfüllen, sind die Logarithmen-Conversion, Rechtschreibprüfung, der Datenbankoperationen und die "Token-Passing"-Identifizierung in Hoch- Geschwindigkeits-Netzwerken.The CAL circuits 210 or 310 can be used in many ways. A special application is in the case of lookup functions, where there is a monotonous function in which there are I bits input versus 0 bits output, I being greater than 0. The CAL circuit can be used for functions that increase and also decrease monotonously. Some of the use cases that meet these criteria are log conversion, spell checking, database operations and token passing identification in high-speed networks.

Zwar kann für diese Nachschlagefunktion ein herkömmlicher Speicher, wie ein Festwertspeicher ROM oder ein Direktzugriffspeicher RAM benutzt werden; aber dann wäre die Zahl der benötigten Speicherzellen um Größenordnungen höher. Z. B. erfordert eine ROM-Nachschlagetabelle mit I Eingängen und 0 Ausgängen 2I mal 0 Bits, wobei I größer ist als 0. Dagegen erfordert die CAL-Schaltung nur 20 mal I Bits. Für den Fall, daß I = 15 und 0= 9, wären bei einem ROM 215 × 9 oder 294 912 Speicherzellen nötig. Eine CAL-Schaltung dagegen würde 29 × 15 oder 7680 Speicherzellen benötigen. Obwohl eine CAL-Schaltung erfordert, daß für jeden Bitvergleich mindestens zwei Transistoren benutzt werden (wie für den Bitvergleicher 326 beim Ausführungsbeispiel gemäß Fig. 6a gezeigt), bedeutet dies, daß insgesamt 15 360 Transistoren bei dem vorstehend beschriebenen Ausführungsbeispiel nötig wären. Bei einer ROM-Realisierung und bei der Annahme von nur einem Transistor pro Bit würde die gleiche Schaltung 294 912 Transistoren brauchen. Es ergibt sich also eine signifikante Einsparung an Transistoren.A conventional memory such as a read-only memory ROM or a random access memory RAM can be used for this lookup function; but then the number of memory cells required would be orders of magnitude higher. For example, a ROM lookup table with I inputs and 0 outputs requires 2 I times 0 bits, where I is greater than 0. On the other hand, the CAL circuit only requires 2 0 times I bits. If I = 15 and 0 = 9, a ROM 2 would require 15 × 9 or 294 912 memory cells. A CAL circuit, on the other hand, would require 2 9 × 15 or 7680 memory cells. Although a CAL circuit requires that at least two transistors be used for each bit comparison (as shown for bit comparator 326 in the embodiment of FIG. 6a), this means that a total of 15,360 transistors would be required in the embodiment described above. With a ROM implementation and assuming only one transistor per bit, the same circuit would need 294 912 transistors. This results in a significant saving in transistors.

Claims (27)

1. Digitale Schaltung, gekennzeichnet durch
- eine Einrichtung zum Empfang eines digitalen Eingangsdatensignals, welches einen Eingangswert darstellt;
- eine Vielzahl von Vergleichern, die eine Vielzahl von Digitalwerten in einer monoton zunehmenden oder abnehmenden Folge speichern;
- wobei jeder Vergleicher eine Einrichtung zum Empfang des digitalen Eingangsdatensignals, eine Einrichtung zum Ver­ gleichen desselben mit dem gespeicherten Digitalwert und eine Einrichtung zum Erzeugen eines Vergleichssignals in Abhängigkeit von dem Vergleich aufweist; und
- eine Codiereinrichtung, die auf die Vielzahl von Ver­ gleichssignalen unter Erzeugung eines Ausgangssignals an­ spricht, wobei das Ausgangssignal die Stelle des Verglei­ chers darstellt, dessen gespeicherter Digitalwert an den Wert des Eingangswertes angrenzt.
1. Digital circuit, characterized by
means for receiving a digital input data signal representing an input value;
a multiplicity of comparators which store a multiplicity of digital values in a monotonically increasing or decreasing sequence;
- wherein each comparator has a device for receiving the digital input data signal, a device for comparing the same with the stored digital value and a device for generating a comparison signal as a function of the comparison; and
- A coding device which responds to the plurality of comparison signals to produce an output signal, the output signal representing the location of the comparator whose stored digital value is adjacent to the value of the input value.
2. Komparatorarraylogik-Schaltung, gekennzeichnet durch
- eine Einrichtung zum Empfang eines digitalen Eingangsda­ tensignals, welches einen Eingangswert darstellt;
- eine Vielzahl untereinander verbundener Vergleicher, die in einem Array angeordnet sind und eine Vielzahl von Digital­ werten in monoton steigender oder fallender Folge spei­ chern; und
- wobei jeder Vergleicher eine Einrichtung zum Empfang des digitalen Eingangsdatensignals, eine Einrichtung zum Ver­ gleichen desselben mit dem gespeicherten Digitalwert, eine Einrichtung zum Erzeugen eines Vergleichssignals in Abhängigkeit von dem Vergleich, eine Einrichtung zum Emp­ fang des Vergleichssignals von einem unmittelbar benach­ barten Vergleicher und eine Einrichtung aufweist, die auf das Vergleichssignal von jedem Vergleicher und das Ver­ gleichssignal vom benachbarten Vergleicher unter Erzeugung eines Ausgangssignals anspricht;
- so daß die Vielzahl von Ausgangssignalen die Stelle des Vergleichers angibt, dessen gespeicherter Digitalwert an den Wert des Eingangswertes angrenzt.
2. Comparator array logic circuit, characterized by
means for receiving a digital input data signal representing an input value;
- A large number of interconnected comparators, which are arranged in an array and store a large number of digital values in monotonically increasing or decreasing sequence; and
- wherein each comparator means for receiving the digital input data signal, means for comparing the same with the stored digital value, means for generating a comparison signal in dependence on the comparison, means for receiving the comparison signal from a directly adjacent comparator and one Means responsive to the comparison signal from each comparator and the comparison signal from the adjacent comparator to produce an output signal;
- So that the plurality of output signals indicates the location of the comparator whose stored digital value is adjacent to the value of the input value.
3. Schaltung nach Anspruch 2, dadurch gekennzeichnet, daß das digitale Eingangsdatensignal in binärer Form vorliegt.3. Circuit according to claim 2, characterized in that the digital Input data signal is in binary form. 4. Schaltung nach Anspruch 3, dadurch gekennzeichnet, daß jeder Verglei­ cher ferner eine Vielzahl untereinander verbundener Bit­ vergleicher aufweist, in denen jeweils ein Bitwert gespei­ chert ist, wobei der Bitvergleicher ein Bit des digitalen Eingangsdatensignals mit dem gespeicherten Bit vergleicht.4. Circuit according to claim 3, characterized in that each comparison cher also a plurality of interconnected bits has comparators, in each of which a bit value is stored chert is, the bit comparator is a bit of the digital Input data signal compared with the stored bit. 5. Schaltung nach Anspruch 4, dadurch gekennzeichnet, daß die Vergleicher in einem zweidimensionalen Array angeordnet sind, welches eine Vielzahl von Zeilen und eine Vielzahl von Spalten aufweist.5. Circuit according to claim 4, characterized in that the comparators are arranged in a two-dimensional array, which a variety of rows and a variety of columns having. 6. Schaltung nach Anspruch 5, dadurch gekennzeichnet, daß jeder Bitver­ gleicher ferner eine Einrichtung zum Ändern des gespei­ cherten Bits aufweist.6. Circuit according to claim 5, characterized in that each bit ver same also a device for changing the food bits. 7. Schaltung nach Anspruch 5, dadurch gekennzeichnet, daß jeder einen Wert von "1" speichernde Bitvergleicher einen ersten Transistor mit Source, Gate und Drain aufweist, wobei die zugeführten Daten an das Gate geliefert und der Eingang vom unmittelbar benachbarten Bitvergleicher an die Source geliefert wird, und einen zweiten Transistor mit Source, Gate und Drain aufweist, wobei die Inversion der ihm zuge­ führten Daten an das Gate geliefert, die Source geerdet und der Drain an den Drain des ersten Transistors ange­ schlossen ist, wobei der Ausgang des Vergleichers der Drain des zweiten Transistors ist. 7. Circuit according to claim 5, characterized in that each one Value of "1" storing the first bit comparator Has transistor with source, gate and drain, the supplied data to the gate and the input from the immediately adjacent bit comparator to the source is supplied, and a second transistor with source, Has gate and drain, the inversion of the supplied led data supplied to the gate, the source grounded and the drain is connected to the drain of the first transistor is closed, the output of the comparator is the drain of the second transistor.   8. Schaltung nach Anspruch 5, dadurch gekennzeichnet, daß jeder einen Wert "0" speichernde Bitvergleicher einen ersten Transi­ stor mit Souce, Gate und Drain, bei dem die Inversion der ihm zugeführten Daten an das Gate geliefert und der Ein­ gang vom unmittelbar benachbarten Bitvergleicher an die Source geliefert wird, und einen zweiten Transistor mit Source, Gate und Drain aufweist, bei dem die ihm zugeführ­ ten Daten an das Gate geliefert, die Source an eine Span­ nungsquelle angeschlossen und der Drain mit dem Drain des ersten Transistors verbunden ist, wobei der Ausgang des Vergleichers der Drain des zweiten Transistors ist.8. Circuit according to claim 5, characterized in that each one Bit comparator storing value "0" a first transi stor with souce, gate and drain, in which the inversion of the data supplied to it is delivered to the gate and the on from the immediately adjacent bit comparator to the Source is supplied, and with a second transistor Has source, gate and drain, at which the supplied to him Data sent to the gate, the source to a span Power source connected and the drain with the drain of the first transistor is connected, the output of the Comparator is the drain of the second transistor. 9. Digitale Rechenvorrichtung, gekennzeichnet durch
- eine Einrichtung zum gleichzeitigen Empfang von vier Operanden (nachfolgend "a, b, c, d");
- eine erste Multiplizier/Dividiereinheit zum Durchführen der Berechnung von a × b oder a ÷ b und zur Lieferung eines Ausganges u;
- eine zweite Multiplizier/Dividiereinheit zum Durchführen der Berechnung c × d oder c ÷ d und zum Liefern eines Aus­ ganges v;
- eine Einrichtung zum Durchführen der Berechnung u + v und u - v; und
- eine Einrichtung zum Steuern der ersten und zweiten Mul­ tiplizier/Dividiereinheit zum Durchführen der Berechnung der Multiplikation oder Division.
9. Digital computing device, characterized by
a device for the simultaneous reception of four operands (hereinafter " a , b , c , d ");
a first multiplier / divider unit for performing the calculation of a × b or a ÷ b and for supplying an output u ;
a second multiplier / divider unit for performing the calculation c × d or c ÷ d and for supplying an output v ;
- a device for performing the calculation u + v and u - v ; and
- Means for controlling the first and second multiplier / divider for performing the calculation of the multiplication or division.
10. Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, daß die Operanden Zahlen in logarithmischer Darstellung sind.10. The device according to claim 9, characterized in that the operands Numbers are in logarithmic representation. 11. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, daß die erste und zweite Multiplizier/Dividiereinheit jeweils eine Addier/ Subtrahiereinheit aufweist. 11. The device according to claim 10, characterized in that the first and second multiplier / divider one add / Has subtraction unit.   12. Vorrichtung nach Anspruch 11, dadurch gekennzeichnet, daß die Einrich­ tung zum Durchführen der Funktion u + v und u - v ferner fol­ gendes aufweist:
- eine Einrichtung zum Bestimmen des absoluten Wertes (nachfolgend "x") der Differenz zwischen U und V;
- eine erste CAL-Schaltung zum Empfang von x und zum Er­ zeugen eines Digitalwertausganges in logarithmischer Dar­ stellung von log2 (1 + 2-x );- eine zweite CAL-Schaltung zum Empfang von x und zum Er­ zeugen eines Digitalwertausganges in logarithmischer Dar­ stellung von log2 (1 - 2-x );- wobei die erste und zweite CAL-Schaltung jeweils eine Vielzahl untereinander verbundener Vergleicher aufweist, die in einem Array angeordnet sind und eine Vielzahl von Digitalwerten in monoton steigender oder fallender Folge speichern, wobei jeder Vergleicher Einrichtungen zum Vergleichen von x mit dem im Verglei­ cher gespeicherten Digitalwert, eine Einrichtung zum Er­ zeugen eines Vergleichssignals in Abhängigkeit von dem Vergleich, eine Einrichtung zum Empfang des Vergleichssig­ nals von einem unmittelbar benachbarten Vergleicher; eine aus das Vergleichssignal von jedem Vergleicher und das Vergleichssignal vom benachbarten Vergleicher unter Erzeu­ gung eines Ausgangssignals ansprechende Einrichtung; eine Einrichtung zum Empfang der Vielzahl von Ausgangssignalen und zum Erzeugen des Digitalwertausganges aufweist;
- eine Einrichtung zum Bestimmen der größeren der beiden Zahlen u und v (nachfolgend max(u, v); und
- eine Einrichtung zum Summieren von max(u,v) mit dem Di­ gitalwertausgang;
- so daß max(u,v) + log2(1 + 2-x ) der Term u + v in lo­ garithmischer Darstellung und max(u,v) + log2(1 - 2-x ) der Term u - v in logarithmischer Darstellung ist.
12. The apparatus according to claim 11, characterized in that the Einrich device for performing the function u + v and u - v further comprises the following:
means for determining the absolute value (hereinafter " x ") of the difference between U and V ;
- A first CAL circuit for receiving x and for generating a digital value output in a logarithmic representation of log 2 (1 + 2 - x ); - a second CAL circuit for receiving x and for generating a digital value output in a logarithmic representation of log 2 (1 - 2 - x ); - wherein the first and second CAL circuits each have a large number of interconnected comparators which are arranged in an array and store a large number of digital values in monotonically increasing or decreasing sequence, each comparator devices for comparing x with the digital value stored in the comparator, means for generating a comparison signal as a function of the comparison, means for receiving the comparison signal from an immediately adjacent comparator; a device responsive to the comparison signal from each comparator and the comparison signal from the adjacent comparator to produce an output signal; comprises means for receiving the plurality of output signals and for generating the digital value output;
a device for determining the larger of the two numbers u and v (hereinafter max ( u , v ); and
- A device for summing max ( u, v ) with the digital value output;
- so that max ( u, v ) + log 2 (1 + 2 - x ) the term u + v in lo githmic representation and max ( u, v ) + log 2 (1 - 2 - x ) the term u - v is in logarithmic representation.
13. Vorrichtung nach Anspruch 12, gekennzeichnet durch
- eine ROM-Tabelleneinrichtung zum Empfang von x und zum Erzeugen eines Digitalwertausganges, in logarithmischer Darstellung, log2 (1 - 2-x );- eine Einrichtung zum Empfang des Ausgangs von dem ROM und der zweiten CAL-Schaltung und zum Erzeugen eines Di­ gitalwertausganges;
- eine Einrichtung zum Liefern des Digitalwertausganges der Empfangseinrichtung an die Summiereinrichtung;
- eine Einrichtung, die bestimmt, ob x ≦ωτ 1,0; und
- eine Einrichtung, die die Empfangseinrichtung auf der Grundlage des Ausganges der Bestimmungseinrichtung steuert; so daß der Ausgang des ROM gewählt wird, wenn x ≦ωτ 1,0, aus der Ausgang der zweiten CAL-Schaltung gewählt wird, wenn x ≧ 1,0.
13. The apparatus according to claim 12, characterized by
a ROM table device for receiving x and for generating a digital value output, in logarithmic representation, log 2 (1 - 2 - x ); - means for receiving the output from the ROM and the second CAL circuit and for generating a digital value output;
a device for supplying the digital value output of the receiving device to the summing device;
a device that determines whether x ≦ ωτ 1.0; and
means for controlling the receiving means based on the output of the determining means; so that the output of the ROM is selected when x ≦ ωτ 1.0, is selected from the output of the second CAL circuit when x ≧ 1.0.
14. Vorrichtung nach Anspruch 13, gekennzeichnet durch
- eine Einrichtung, die feststellt, wann x null ist, und die einen Ausgang an die Einrichtung zum Steuern der Emp­ fangseinrichtung liefert,
- wobei in dem Fall, daß x = 0, der Ausgang max(u,v) auch an die Empfangseinrichtung und die Steuereinrichtung zur Wahl von max (u,v) geliefert wird.
14. The apparatus according to claim 13, characterized by
a device which determines when x is zero and which provides an output to the device for controlling the receiving device,
- In the event that x = 0, the output max ( u, v ) is also supplied to the receiving device and the control device for selecting max ( u, v ).
15. Digitale Rechenvorrichtung zur gleichzeitigen Be­ rechnung der Summe und der Differenz einer ersten Zahl, U und einer zweiten Zahl, V, von denen jede Zahl in loga­ rithmischer Darstellung von U bzw. V vorliegt, gekennzeichnet durch
- eine Einrichtung, die den absoluten Wert (nachfolgend "x") der Differenz zwischen U und V bestimmt;
- eine erste CAL-Schaltung zum Empfang von x und zum Er­ zeugen eines Digitalwertausganges, in logarithmischer Dar­ stellung, von log2 (1 + 2-x );
- eine zweite CAL-Schaltung zum Empfang von x und zum Er­ zeugen eines Digitalwertausganges, in logarithmischer Dar­ stellung, von log2 (1 - 2-x );
- wobei die erste und zweite CAL-Schaltung jeweils eine Vielzahl von untereinander verbundenen Vergleichern auf­ weist, die in einem Array angeordnet sind und eine Viel­ zahl von Digitalwerten in monoton steigender oder fallen­ der Folge speichern, wobei jeder Vergleicher Einrichtungen für x Einrichtungen zum Vergleichen von x mit dem im Ver­ gleicher gespeicherten Digitalwert, eine Einrichtung zum Erzeugen eines Vergleichssignals in Abhängigkeit von dem Vergleich, eine Einrichtung zum Empfang des Vergleichssig­ nals von einem unmittelbar benachbarten Vergleicher, eine auf das Vergleichssignal von jedem Vergleicher und das Vergleichssignal vom benachbarten Vergleicher unter Erzeu­ gung eines Ausgangssignals ansprechende Einrichtung, eine Einrichtung zum Empfang der Vielzahl von Ausgangssignalen und zum Erzeugen des Digitalwertausgangs aufweist,
- eine Einrichtung zum Bestimmen der größeren der beiden Zahlen u und v (nachfolgend max(u,v)); und
- eine Einrichtung zum Summieren von max(u,v) mit dem Digitalwertausgang; so daß max(u,v) + log2(1 + 2-x ) der Term u + v in lo­ garithmischer Darstellung und max(u,v) + log2(1 - 2-x ) der Term u - v in logarithmischer Darstellung ist.
15. Digital computing device for simultaneous calculation of the sum and the difference of a first number, U and a second number, V , each of which is present in a logarithmic representation of U or V , characterized by
a device which determines the absolute value (hereinafter " x ") of the difference between U and V ;
- A first CAL circuit for receiving x and for generating a digital value output, in logarithmic representation, of log 2 (1 + 2 - x );
- A second CAL circuit for receiving x and for generating a digital value output, in logarithmic representation, of log 2 (1 - 2 - x );
- Wherein the first and second CAL circuit each have a plurality of interconnected comparators, which are arranged in an array and store a lot of digital values in monotonically increasing or falling as a result, each comparator means for x means for comparing x with the digital value stored in the comparator, a device for generating a comparison signal as a function of the comparison, a device for receiving the comparison signal from an immediately adjacent comparator, one on the comparison signal from each comparator and the comparison signal from the adjacent comparator under generation a device responsive to an output signal, means for receiving the plurality of output signals and for generating the digital value output,
means for determining the larger of the two numbers u and v (hereinafter max ( u, v )); and
- A device for summing max ( u, v ) with the digital value output; so that max ( u, v ) + log 2 (1 + 2 - x ) the term u + v in lo-graphical representation and max ( u, v ) + log 2 (1 - 2 - x ) the term u - v in logarithmic representation.
16. Vorrichtung nach Anspruch 15, gekennzeichnet durch
- eine ROM-Tabelleneinrichtung zum Empfang von x und zum Erzeugen eines Digitalwertausganges, in logarithmischer Dar­ stellung, log2 (1 - 2-x );- eine Einrichtung zum Empfang des Ausgangs des ROM und der zweiten CAL-Schaltung und zum Erzeugen eines Digital­ wertausganges;
- eine Einrichtung, die den Digitalwertausgang der Empfangs­ einrichtung an die Summiereinrichtung liefert;
- eine Einrichtung, die bestimmt, ob x ≦ωτ 1,0; und
- eine Einrichtung, die die Empfangseinrichtung auf der Grundlage des Ausganges der Bestimmungseinrichtung steuert;
- so daß der Ausgang des ROM gewählt wird, wenn x ≦ωτ 1,0 und der Ausgang der zweiten CAL-Schaltung gewählt wird, wenn x ≧ 1,0.
16. The apparatus according to claim 15, characterized by
a ROM table device for receiving x and for generating a digital value output, in logarithmic representation, log 2 (1 - 2 - x ); - means for receiving the output of the ROM and the second CAL circuit and for generating a digital value output;
- A device that supplies the digital value output of the receiving device to the summing device;
a device that determines whether x ≦ ωτ 1.0; and
means for controlling the receiving means based on the output of the determining means;
- So that the output of the ROM is selected if x ≦ ωτ 1.0 and the output of the second CAL circuit is selected if x ≧ 1.0.
17. Vorrichtung nach Anspruch 16, gekennzeichnet durch
- eine Einrichtung, die feststellt, wann x null ist und die an die Einrichtung zum Steuern der Empfangseinrichtung einen Ausgang liefert;
- wobei in dem Fall, daß x = 0, der Ausgang max(u,v) auch an die Empfangseinrichtung und die Steuereinrichtung zur Wahl von max(u,v) geliefert wird.
17. The apparatus according to claim 16, characterized by
means for determining when x is zero and providing an output to the means for controlling the receiving means;
- In the event that x = 0, the output max ( u, v ) is also supplied to the receiving device and the control device for selecting max ( u, v ).
18. Digitale Vorrichtung zum Umwandeln einer digitalen binären ganzen Zahl, die eine Vielzahl von Bits enthält, in eine logarithmische Darstellung, gekennzeichnet durch
- eine Einrichtung, die die Bitposition des führenden Bits ungleich null der ganzen Zahl bestimmt;
- eine Einrichtung, die die ganze Zahl so verschiebt, daß das führende Bit ungleich null das am weitesten links stehende Bit ist;
- eine Tabelleneinrichtung, die die stellenversetzte ganze Zahl empfängt und eine Zahl liefert, welche den Mantis­ senteil des Logarithmus der stellenversetzten Zahl reprä­ sentiert, und
- eine Codiereinrichtung, die einen Kommasetzeingabewert und die Zahl der von der Verschiebeeinrichtung verschobe­ nen binären Positionen empfängt und den Exponententeil des Logarithmus der ganzen Zahl erzeugt, wobei der Kommasetz­ eingabewert der Skalenfaktor für die ganze Zahl ist, so daß der Mantissenteil und der Exponententeil die logarithmische Darstellung der ganzen Zahl bilden.
18. A digital device for converting a digital binary integer containing a plurality of bits into a logarithmic representation characterized by
means for determining the leading non-zero bit position of the integer;
means that shifts the integer so that the leading non-zero bit is the left-most bit;
a table device which receives the digitized integer and delivers a number which represents the mantis part of the logarithm of the digited digit, and
an encoder which receives a comma input value and the number of binary positions shifted by the shifter and generates the exponent part of the logarithm of the integer, the comma input value being the scale factor for the integer, so that the mantissa part and the exponent part are the logarithmic Form representation of the integer.
19. Vorrichtung nach Anspruch 18, dadurch gekennzeichnet, daß die Tabellen­ einrichtung eine CAL-Schaltung mit einer Vielzahl unter­ einander verbundener Vergleicher aufweist, die in einem Array angeordnet sind und eine Vielzahl von Digitalwerten in einer monoton steigenden oder fallenden Folge speichern, wobei jeder Vergleicher eine Einrichtung zum Empfang der stellenversetzten ganzen Zahl, eine Einrichtung zum Ver­ gleichen derselben mit dem im Vergleicher gespeicherten Digitalwert, eine Einrichtung zum Erzeugen eines Vergleichs­ signals in Abhängigkeit von dem Vergleich; eine Einrich­ tung zum Empfang des Vergleichssignals von einem unmittel­ bar benachbarten Vergleicher, eine auf das Vergleichssig­ nal von jedem Vergleicher und das Vergleichssignal vom be­ nachbarten Vergleicher unter Erzeugen eines Ausgangssig­ nals ansprechende Einrichtung; eine Einrichtung zum Empfang der Vielzahl von Ausgangssignalen und zum Erzeugen der Zahl aufweist, die den Mantissenteil des Logarithmus der stellenversetzten Zahl darstellt.19. The apparatus according to claim 18, characterized in that the tables setting up a CAL circuit with a variety of below having interconnected comparators in one Arrays are arranged and a variety of digital values save in a monotonically increasing or decreasing sequence, each comparator means for receiving the digitized integer, a device for ver same with the one stored in the comparator Digital value, a device for generating a comparison signals depending on the comparison; a facility device for receiving the comparison signal from an immediate bar neighboring comparator, one on the comparative sig nal from each comparator and the comparison signal from the be neighboring comparators generating an output sig as an attractive facility; a facility for reception the large number of output signals and for generating the Number that has the mantissa part of the logarithm of the represents a staggered number. 20. Digitale Vorrichtung zum Umwandeln der digitalen, logarithmischen, einen Exponententeil und einen Mantissenteil aufweisenden Darstellung einer ganzen Zahl in eine binäre ganze Zahl, gekennzeichnet durch
- eine Tabelleneinrichtung, die den Mantissenteil der lo­ garithmischen Darstellung empfängt und eine erste Zahl liefert;
- eine Decodiereinrichtung, die den Exponententeil der logarithmischen Darstellung und einen Kommasetzausgabe­ wert empfängt und ein Verschiebesignal liefert, wobei der Kommasetzausgabewert der Skalenfaktor für die ganze Zahl ist; und
- eine Verschiebeeinrichtung, die das Verschiebesignal und die erste Zahl empfängt und die erste Zahl mittels des Ver­ schiebesignals zum Erzeugen der ganzen Zahl verschiebt.
20. Digital device for converting the digital, logarithmic, exponent part and a mantissa part representation of an integer into a binary integer, characterized by
a table device which receives the mantissa part of the local representation and supplies a first number;
a decoder which receives the exponent part of the logarithmic representation and a comma set value and delivers a shift signal, the comma set output value being the scale factor for the integer; and
- A shifter that receives the shift signal and the first number and shifts the first number by means of the Ver shift signal to generate the integer.
21. Digitaler Prozessor mit einem Adressenbus und einem Datenbus zur Kommunikation, gekennzeichnet durch
- eine Datenregistereinrichtung zur Kommunikation mit dem Datenbus und zum Empfangen und Speichern von Daten von demselben, wobei die Daten in einer Form vorliegen;
- eine Datenumwandlungseinrichtung, die zur Kommu­ nikation mit der Datenregistriereinrichtung verbindbar ist, um die in der einen Form vorliegenden Daten von der Datenregistereinrichtung in Daten einer anderen Form umzu­ wandeln und um Daten in der anderen Form von der Datenre­ gistereinrichtung zu empfangen und in Daten der einen Form umzuwandeln und um die umgewandelten Daten in der Datenre­ gistereinrichtung zu speichern;
- eine Recheneinrichtung, die zur Kommunikation mit der Da­ tenregistereinrichtung verbindbar ist, um Daten in der an­ deren Form von derselben zu empfangen, an diesen Berech­ nungen vorzunehmen und die Resultate der Berechnungen in der Datenregistereinrichtung zu speichern;
- eine Steuereinrichtung zur Kommunikation mit dem Adressen­ bus und dem Datenbus, die einen Programm-Cache-Speicher aufweist, der Programmbefehle vom Datenbus speichert, eine Einrichtung zum Decodieren der Programmbefehle sowie eine Einrichtung zum Erzeugen interner Befehle; und
- eine interne Buseinrichtung, die die Steuereinrichtung zur Kommunikation mit der Datenregistereinrichtung der Datenumwandlungseinrichtung und der Recheneinrichtung zur Kommunikation der internen Befehle verbindet,
- so daß die Steuereinrichtung den Betrieb des Prozessors über die internen Befehle steuert.
21. Digital processor with an address bus and a data bus for communication, characterized by
data register means for communicating with and receiving and storing data from the data bus, the data being in one form;
- A data conversion device which can be connected for communication with the data registration device, in order to convert the data in one form from the data register device into data of another form and to receive data in the other form from the data register device and into data of the one Convert form and to store the converted data in the data register device;
- A computing device which can be connected for communication with the data register device, in order to receive data in the form thereof, to perform calculations on these and to store the results of the calculations in the data register device;
a control device for communication with the address bus and the data bus, which has a program cache memory which stores program commands from the data bus, a device for decoding the program commands and a device for generating internal commands; and
an internal bus device that connects the control device for communication with the data register device of the data conversion device and the computing device for communication of the internal commands,
- So that the control device controls the operation of the processor via the internal commands.
22. Prozessor nach Anspruch 21, dadurch gekennzeichnet, daß die in der einen Form vorliegenden Daten ganzzahlige Daten sind.22. The processor according to claim 21, characterized in that the in the a form of existing data is integer data. 23. Prozessor nach Anspruch 22, dadurch gekennzeichnet, daß die in der an­ deren Form vorliegenden Daten logarithmische Daten sind.23. The processor according to claim 22,  characterized in that the in the whose form existing data are logarithmic data. 24. Prozessor nach Anspruch 23, dadurch gekennzeichnet, daß die Recheneinrichtung ein logarithmischer Rechner ist.24. The processor according to claim 23, characterized in that the computing device is a logarithmic calculator. 25. Prozessor nach Anspruch 24, dadurch gekennzeichnet, daß die in der anderen Form vorliegenden Daten Gleitkomma-Daten sind.25. Processor according to claim 24, characterized in that in the other Form data is floating point data. 26. Prozessor nach Anspruch 25, dadurch gekennzeichnet, daß die Rechenein­ richtung ein Gleitkomma-Rechner ist.26. Processor according to claim 25, characterized in that the arithmetic direction is a floating point calculator. 27. Digitaler Prozessor mit einem Adressenbus und einem Datenbus zur Kommunikation und mit einer Steuein­ richtung zum Erzeugen von Programmbefehlen zum Steuern des Prozessors, der einen Adressenregisterspeicher zum Speichern von Adressen vom Adressenbus aufweist, gekennzeichnet durch
- eine Indexeinheit, die zur Kommunikation mit dem Adressen­ registerspeicher verbindbar ist;
- wobei diese Einheit eine Einrichtung zum Empfang einer laufenden Adresse vom Speicher aufweist;
- eine Einrichtung zum Empfang einer Prüfadresse vom Speicher;
- eine Einrichtung zum Empfang einer Änderungsadresse vom Speicher;
- eine Einrichtung zum Empfang einer Rücklade- Adresse vom Speicher;
- wobei die Einheit ferner eine Einrichtung zum Ändern der laufenden Adresse durch die Änderungsadresse zur Erzeugung einer Ergebnisadresse, eine Einrichtung zum Vergleich der Ergebnisadresse mit der Prüfadresse und eine Einrichtung zum Speichern der Rücklade-Adresse als laufende Adresse in dem Adressenregisterspeicher auf der Grundlage des Vergleichs zwischen der Ergebnisadresse und der Prüf­ adresse aufweist.
27. Digital processor with an address bus and a data bus for communication and with a control device for generating program instructions for controlling the processor, which has an address register memory for storing addresses from the address bus, characterized by
- An index unit that can be connected for communication with the address register memory;
- This unit has a device for receiving a current address from the memory;
means for receiving a test address from the memory;
means for receiving a change address from the memory;
- A device for receiving a reload address from the memory;
the unit further comprising means for changing the current address by the change address to generate a result address, means for comparing the result address with the check address, and means for storing the reload address as the current address in the address register memory based on the comparison between the result address and the test address.
DE19863622205 1985-07-02 1986-07-02 Integrated digital circuit for logarithmic signal processing Withdrawn DE3622205A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US75127085A 1985-07-02 1985-07-02
US06/751,305 US4626825A (en) 1985-07-02 1985-07-02 Logarithmic conversion apparatus
US06/751,302 US4852038A (en) 1985-07-02 1985-07-02 Logarithmic calculating apparatus
US06/751,304 US4862346A (en) 1985-07-02 1985-07-02 Index for a register file with update of addresses using simultaneously received current, change, test, and reload addresses

Publications (1)

Publication Number Publication Date
DE3622205A1 true DE3622205A1 (en) 1987-01-08

Family

ID=27505655

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19863622205 Withdrawn DE3622205A1 (en) 1985-07-02 1986-07-02 Integrated digital circuit for logarithmic signal processing

Country Status (1)

Country Link
DE (1) DE3622205A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5363321A (en) * 1992-06-03 1994-11-08 International Business Machines Corporation Digital circuit for calculating a logarithm of a number
EP0798947A1 (en) * 1996-03-27 1997-10-01 Siemens Audiologische Technik GmbH Method and circuit for data processing, in particular for signal data in a digital progammable hearing aid

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5363321A (en) * 1992-06-03 1994-11-08 International Business Machines Corporation Digital circuit for calculating a logarithm of a number
EP0798947A1 (en) * 1996-03-27 1997-10-01 Siemens Audiologische Technik GmbH Method and circuit for data processing, in particular for signal data in a digital progammable hearing aid
US5838806A (en) * 1996-03-27 1998-11-17 Siemens Aktiengesellschaft Method and circuit for processing data, particularly signal data in a digital programmable hearing aid

Similar Documents

Publication Publication Date Title
DE69632978T2 (en) Multi-operand adder using parallel counter
DE3144015C2 (en)
DE2724125C2 (en)
DE2755273C2 (en)
DE2524046C2 (en) Electronic data processing system
DE4137515C2 (en) Integrated semiconductor circuit device
DE60313215T2 (en) METHOD AND SYSTEM FOR IMPLEMENTING CALCULATION OPERATIONS AND DEVICE
DE69821408T2 (en) Multiplication method and device
WO1997026603A1 (en) Image-processing processor
DE4302898A1 (en) Arithmetic logic unit with accumulator function - has two memories and counter with selection to reduce delay in processing
DE2421130C2 (en)
CH644461A5 (en) DIGITAL MULTIPLIER.
DE3144563C2 (en)
DE2222197A1 (en) Arrangement for rounding up or down two&#39;s complement numbers
DE102007056104A1 (en) Method and device for multiplication of binary operands
DE19718224A1 (en) Digital neural network processor for consumer goods, games, telecommunications or medical equipment or vehicle
DE3507584A1 (en) ADDRESS CALCULATION SYSTEM FOR DIGITAL PROCESSING DEVICES
EP0628183B1 (en) Circuit arrangement for the digital multiplying of integer numbers
DE2364865A1 (en) EXPANDED MEMORY ADDRESS FORMATION SYSTEM OF A DIGITAL COMPUTER SYSTEM
DE4010735C2 (en)
DE2440390C3 (en)
DE3622205A1 (en) Integrated digital circuit for logarithmic signal processing
DE19644688B4 (en) Circuit arrangement of a digital multiplier module for processing binary numbers and elements made of GF (2m)
DE3936503A1 (en) Digital fuzzy logic controller - has parallel processing stages to operate on specific parameters for fast operation
DE2440390A1 (en) ELECTRONIC CALCULATOR

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee