Beschreibung
Verfahren zur Fuzzifizierung von an Eingängen eines Fuzzypro- zessors anliegenden Eingangssignalen unter Verwendung von Eingangszugehörigkeitsfunktionen
Der Aufbau und die Arbeitsweise von Fuzzyprozessoren sind bekannt (siehe z.B. H.Eichfeld. T.Künemund, M. Klimke "An 8b Fuzzy Coprocessor for Fuzzy Control" ISSCC 93, San Franciso, 24. bis 26.2.1993, Seiten 180, 181, 286). Ein solcher Fuzzy- prozessor enthält eine FuzzySchaltung, auch Fuzzyfier ge¬ nannt, deren Aufgabe darin besteht, für ein digitales Ein¬ gangssignal, das fuzzifiziert werden soll, mit Hilfe von in einem Speicher - auch Knowledge Base Memory (KBM) genannt - gespeicherten Eingangszugehörigkeitsfunktionen die Zugehörig¬ keitswerte zu ermitteln. Dazu muß zunächst festgestellt wer¬ den, welche Eingangszugehörigkeitsfunktionen (im folgenden Zugehörigkeitsfunktion genannt) vom Eingangssignal getroffen werden. Anschließend können dann die dem Eingangssignal zuge- ordneten Zugehörigkeitswerte aus dem Speicher geholt werden.
Bisher war es üblich, die Zugehörigkeitsfunktionen punktweise abzuspeichern. Unter der Voraussetzung, daß das Eingangs¬ signal mit 8 Bit aufgelöst ist, wurden die Zugehörigkeits- funktionen punktweise mit 256 Punkten abgespeichert. Dies hat Vorteile. Die Berechnung der Zugehörigkeitswerte erfolgt % durch einen Speicherzugriff (Abtastverfahren) . Jede beliebige Form der Funktion ist erlaubt. Der Nachteil liegt aber darin, daß der benötigte Speicherplatz exponentiell von der Auflö- sung der Eingangssignale abhängt, so daß das Abtastverfahren bei z.B. einer Auflösung mit 12 Bit zu einem großen Speicher¬ platzbedarf führt.
Bei der Suche nach anderen Möglichkeiten der Abspeicherung der Zugehörigkeitsfunktionen, bei denen der Speicherbedarf geringer ausfällt, muß aber immer beachtet werden, daß der
Rechenzeitaufwand zur Errechnung der Zugehörigkeitswerte nicht zu groß wird.
Das der Erfindung zugrunde liegende Problem besteht somit darin, ein Fuzzifizierungsverfahren anzugeben, bei dem der Speicherbedarf zur Speicherung der Zugehόrigkeitsfunktionen nicht zu groß wird und trotzdem die Rechenzeit zur Errechnung der Zugehörigkeitswerte im vertretbaren Rahmen bleibt. Wei¬ terhin besteht das Problem darin, eine Schaltungsanordnung zur Durchführung des Verfahrens anzugeben.
Das Problem wird durch ein Verfahren gemäß den Merkmalen des Patentanspruchs 1 gelöst. Eine Schaltungsanordnung zur Durch¬ führung des Verfahrens ergibt sich aus den Merkmalen des Anspruchs 14.
Der Speicherplatzbedarf für die Abspeicherung der Zugehö¬ rigkeitswerte kann dadurch verringert werden, daß eine die Form der Zugehörigkeitsfunktion erfassende Forminformation abgespeichert wird. Diese Forminformation enthält Merkmale, die die Form der Zugehörigkeitsfunktion definieren, wie z.B. Stützstellen, an denen sich die Steigungen der Funktion än¬ dern, und die Steigungen zwischen den Stützstellen.
Die Zugriffszeit zu der Forminformation von vom Eingangssi¬ gnal getroffenen Zugehörigkeitsfunktionen kann dadurch ver¬ ringert werden, daß der von der Auflösung abhängige Grundbe¬ reich der Eingangssignale in Elementarintervalle eingeteilt wird. Dann kann das Elementarintervall mit Hilfe der Most Significant Bits (MSB) des Eingangssignales ausgewählt wer¬ den. Dabei kann der Speicherbedarf weiterhin verringert wer¬ den, wenn die Elementarintervalle derart gewählt werden, daß innerhalb jeden Elementarintervalls höchstens vier Zugehörig¬ keitsfunktionen bzw. Teile von Zugehörigkeitsfunktionen lie- gen und/oder als Aufteilungsbedingung jeder innerhalb eines Elementarintervalls liegende Teil einer Zugehörigkeitsfunkti¬ on durch genau eine Stützstelle sowie Steigungen nach rechts
und nach links von dieser Stützstelle aus beschrieben werden kann. Da aber auch Stützstellen an den Intervallgrenzen vor¬ liegenden können, muß somit neben eventuell zwei Stützstellen an den Intervallgrenzen eine dritte Stützstelle innerhalb des Elementarintervalls zur eindeutigen Beschreibung der Zugehö¬ rigkeitsfunktion innerhalb dieses Elementarintervalls ausrei¬ chen. Die Zugehörigkeitsfunktionen können dabei Polygone beliebiger Form sein.
Die Unterteilung kann in jeweils gleich große Elementarinter¬ valle erfolgen, wobei die Unterteilung so ist, daß es kein Elementarintervall gibt, das die Aufteilungsbedingung nicht erfüllt. Es ist jedoch zur Einsparung von Speicherplatz mög¬ lich, den Grundbereich nacheinander in verschieden große Elementarintervalle zu unterteilen, wobei nur die nach einer vorhergehenden Unterteilung gewonnenen Intervalle weiter unterteilt werden, die die Aufteilungsbedingung nicht erfül¬ len. Die Intervalle, die die Aufteilungsbedingung erfüllen, bleiben dagegen unverändert und bilden ein Elementarinter- vall.
Der Speicherplatzbedarf zur Speicherung der Forminformation der Zugehörigkeitsfunktionen kann weiterhin verringert wer¬ den, wenn die Forminformation folgendes enthält: Eine Nummer der Zugehörigkeitsfunktion, die Stützstellenwerte in x- und in y-Richtung und eine Steigungsinformation.
Die Steigungsinformation kann dabei aus zwei Teilen bestehen, bei der der erste Teil die Bitstelle der führenden '1' vor dem Komma des Absolutbetrages der Steigung angibt oder an¬ gibt, daß alle Stellen vor dem Komma '0' sind, bei der der zweite Teil aus dem auf die führende '1' vor dem Komma fol¬ genden Bits gewonnen wird oder, falls es vor dem Komma keine führende '1' gibt, aus den Stellen nach dem Komma des Abso- lutbetrages gewonnen wird.
Weiterhin ist es zweckmäßig, den unterschiedlichen Formen der Zugehörigkeitsfunktionen innerhalb eines Elementarintervalls
eine Typennummer derart zuzuordnen, daß das Most Significant Bit der Typennummer angibt, ob innerhalb des Elementarinter¬ valls der von der Stützstelle ausgehende Kurventeil der Zuge¬ hörigkeitsfunktion nur eine Steigung oder zwei unterschiedli- ehe Steigungen aufweist und daß zwei weitere Bits die Vorzei¬ chen der Steigungen angeben.
Diese Forminformation wird in einem Speicher, dem Knowledge Base Memory, hintereinander für jedes Elementarintervall und für jeden Eingang so abgespeichert, daß sie sehr schnell über drei Speicherworte adressierbar ist. In einem ersten Spei¬ cherwort steht dabei die Adresse eines zweiten Speicherwor¬ tes, in dem für jeden Eingang kodiert die Anzahl der Elemen¬ tarintervalle gespeichert ist. Mit Hilfe dieser Angabe und der Most Significant Bits des Eingangssignales wird ein drit¬ tes Speicherwort adressiert, in dem die Startadresse eines Speichersektors mit den Zugehörigkeitsfunktionen enthalten ist, und zwar pro Eingang und pro Elementarintervall.
Andere Weiterbildungen der Erfindung ergeben sich aus den Unteransprüchen.
Anhand von Ausführungsbeispielen, die in den Figuren darge¬ stellt sind, wird die Erfindung weiter erläutert. Es zeigen
Figur 1 ein Blockschaltbild eines Fuzzyprozessors,
Figur 2 die Darstellung des Grundbereiches eines Eingangs- Signals und dessen Aufteilung in Elementarinterval- le,
Figur 3 eine Darstellung der Speicherorganisation des Know¬ ledge Base Memory (KBM)
Figur 4 eine Schaltungsanordnung zur Adressengenerierung, die geeignet ist, die Speicher gemäß Figur 3 zu adressieren,
Figuren 5 und 6 Formen der Zugehörigkeitsfunktionen, deren
Typennummern, deren Vorzeichen und die im KBM-Spei- cher abzuspeichernden Speicherworte,
Figur 7 ein Diagramm zur Erläuterung der Steigungsinforma¬ tion,
Figur 8 eine Fuzzifier-Schaltung im Übersichtsbild,
Figur 9 eine Rechenschaltung der Fuzzifier-Schaltung,
Figur 10 die beim Betrieb der Fuzzifier-Schaltung erforder¬ lichen Signale, erzeugt von einem Steuerwerk,
Figur 11 einen Zustandsgraph, der den die Fuzzifikation be¬ treffenden Teil des Steuerwerkes beschreibt,
Figur 12 eine Schaltungsanordnung zur Bildung eines Absolut- betrages,
Figur 13 eine weitere Schaltungsanordnung zur Bildung eines Absolutbetrages,
Figur 14 und 15 Komponenten der Schaltungsanordnung nach Figur 13.
Figur 16 ein zweites Beispiel der Aufteilung des Grundbe¬ reiches in Elementarintervalle,
Figur 17 die Speicherorganisation des KBM für das Beispiel der Figur 16,
Figur 18 ein Algorithmus zum Adressieren der Zugehörig- keitsfunktionen für den Fall der Figur 17.
Figur 1 zeigt ein Blockschaltbild eines Fuzzyprozessors. Der Fuzzyprozessor enthält eine Fuzzifier-Schaltung FUZ, in der die Zugehörigkeitswerte ye für sog. scharfe Eingangssignale xe gebildet werden. Dazu arbeitet die Fuzzifier-Schaltung FUZ mit dem Speicher KBM zusammen, in dem die Zugehörigkeitsfunk¬ tionen abgespeichert sind. Der Zugehörigkeitswert ye wird weitergegeben an die Fuzzyinferenzschaltung FIN und dort auf bekannte Weise weiterverarbeitet. Weiterhin ist zum Betrieb der Fuzzifier-Schaltung FUZ ein Steuerwerk STW erforderlich, ein Microcontroller Interface MIF, das eine Verbindung zu einem Hostrechner herstellt, ein Knowledge Base Memory In¬ terface KIF, das zum Betrieb des Knowledge Base Memories KBM notwendig ist. Die einzelnen Einheiten des Fuzzyprozessors, außer dem Steuerwerk, sind über einen gemeinsamen Bus IKAD miteinander verbunden.
Zur Fuzzifizierung von Eingangssignalen xe, die vom Hostrech¬ ner dem Microcontroller Interface MIF geliefert werden, wird die Fuzzifierschaltung FUZ verwendet, die feststellt, welche Zugehörigkeitsfunktionen, die im Speicher KBM gespeichert sind, von dem Eingangssignal xe getroffen sind und daraus die Zugehörigkeitswerte ye berechnet und diese an die Fuzzyinfe¬ renzschaltung FIN weitergibt. Im folgenden soll diese Fuzzi¬ fier-Schaltung und die Art und Weise, wie die Zugehörigkeits- funktionen im Speicher KBM abgespeichert sind, geschildert werden, die weiteren Bestandteile des Fuzzyprozessors, wie MIF, KIF und STW werden nur insoweit in die Erläuterung ein¬ bezogen, als sie zum Verständnis des Betriebes der Fuzzifier- Schaltung FUZ erforderlich sind.
Bei der Darstellung der Erfindung wird davon ausgegangen, daß das digitale Eingangssignal xe mit ae = 12 Bit aufgelöst ist. Das gleiche gilt für die Zugehörigkeitswerte ye, die eben¬ falls mit 12 Bit aufgelöst sind. Weiterhin soll bei der Dar- Stellung davon ausgegangen werden, daß pro Eingang maximal 15 verschiedene Zugehörigkeitsfunktionen zugelassen sind und daß im Speicher 16 Bit breite Worte zur Verfügung stehen.
Selbstverständlich ist die Erfindung nicht auf dieses Aus¬ führungsbeispiel mit diesen Randbedingungen begrenzt, diese Begrenzung ist nur gewählt worden, um die Erfindung klarer darstellen zu können.
Figur 2 zeigt die Aufteilung des Grundbereiches für die mit ae Bit aufgelösten EingangsSignale. Figur 2 zeigt dabei die Zugehörigkeitsfunktionen IMF, aufgetragen über xe, und zwar jeweils die Zugehörigkeitswerte ye. Dabei ist der maximale Wert ye der Zugehörigkeitsfunktionen auf 1 normiert. Es ist gezeigt, wie der Grundbereich des Eingangssignals xe in vier Elementarintervalle EI aufgeteilt ist, wobei die Aufteilung derart ist, daß innerhalb jedes Elementarintervalls EI höch¬ stens vier Zugehörigkeitsfunktionen liegen und jeder inner- halb eines Elementarintervalls liegende Teil einer Zugehörig¬ keitsfunktion genau durch eine Stützstelle STS sowie die Steigungen nach rechts und nach links von der Stützstelle STS beschreibbar ist. In Figur 2 ist eine Stützstelle angegeben, die mit xs3 und ys3 gekennzeichnet ist. Die einzelnen Zugehö- rigkeitsfunktionen sind durchnumeriert von IMFO bis IMF4. Es wird darauf hingewiesen, daß neben dieser Stützstelle inner¬ halb eines Elementarintervalls weitere Stützstellen an der Intervallgrenze eines Elementarintervalls EI vorliegen kön¬ nen. Somit kann jede Zugehörigkeitsfunktion pro Elementarin- tervall mit höchstens drei Stützstellen eindeutig beschrieben werden. Von der Stützstelle STS3 gehen Kurventeile aus, die eine unterschiedliche Steigung haben. Dazu wird im folgenden die Steigung des Kurventeils links der Stützstelle STS3 mit sl, die Steigung des Kurventeils rechts der Stützstelle mit sr bezeichnet. An der Stützstelle selbst tritt eine Änderung dieser Steigung auf.
Die Aufteilung des Grundbereiches für das Eingangssignal xe, das ist der Wertebereich, der von dem Eingangssignale xe eingenommen werden kann, in Elementarintervalle EI erfolgt auf folgender Weise:
Von den ae bit des aufgelösten Eingangssignales xe werden aei Most Significant Bits zur Festlegung herangezogen. Dabei gilt für die flexible Anzahl der Elementarintervalle:
nei = 2aei, 0 < aei < ae-1
wobei nei die Anzahl der Elementarintervalle pro Eingang darstellt. Die Zugehörigkeitswerte ye sind in Figur 2 auf 1 normiert, jedoch kann ye bei einer Auflösung mit 12 Bit Werte zwischen 0 und 2-1-2-1 annehmen.
In einem zweiten Beispiel werden die Elementarintervalle folgendermaßen gewonnen:
Der Grundbereich der Zugehörigkeitsfunktionen eines Eingangs- signales wird in einer ersten Stufe solange in gleichgroße Intervalle (deren Anzahl eine Potenz von 2 ist) unterteilt, bis mindestens eines dieser Intervalle die Aufteilungsbedin¬ gungen für ein Elementarintervall erfüllt (im Gegensatz dazu müssen in Figur 2 alle Intervalle diese Bedingung erfüllen) . Für diese Elementarintervalle der Stufe I können dann die
Adressen-Deskriptoren und Daten der Zugehörigkeitsfunktionen bestimmt und im Speicher KBM abgelegt werden.
Die zweite Stufe besteht nun darin, alle übrigen Intervalle der Stufe I -also diejenigen, die die Bedingungen für ein Elementarintervall nicht erfüllen, und nur diese- jeweils unabhängig voneinander weiter zu unterteilen, und zwar genau¬ so wie in Stufe I. Mit anderen Worten wird in Stufe II jedes der übriggebliebenen Intervalle der Stufe I genauso behandelt wie der Grundbereich in Stufe I : für die Elementarintervalle der Stufe II werden dann die Adressen-Deskriptoren und Daten der Zugehörigkeitsfunktionen bestimmt, und alle übrigen In¬ tervalle der Stufe II werden in Stufe III unabhängig vonein¬ ander weiter unterteilt wie oben beschrieben. Gleiches gilt für alle etwa noch notwendigen weiteren Stufen.
In Figur 16 ist ein Beispiel angegeben. Stufe I besteht in der Unterteilung des Grundbereiches von drei Zugehörigkeits¬ funktionen IMFO, IMF1 und IMF2 in vier Intervalle, wobei das erste und das vierte Intervall die Bedingungen für ein Ele- mentarintervall erfüllen.
Das zweite Intervall der Stufe I wird weiter in zwei Inter¬ valle der Stufe II unterteilt, deren erstes ein Elementarin¬ tervall der Stufe II ist und deren zweites in zwei weitere Intervalle der Stufe III, die beide Elementarintervalle sind, unterteilt wird.
Das dritte Intervall von Stufe I wird in zwei Intervalle unterteilt, deren zweites ein Elementarintervall der Stufe II ist und deren erstes in vier weitere Intervalle der Stufe III, die alle Elementarintervalle sind, unterteilt wird.
Für dieses Beispiel ergeben sich also zwei Elementarinterval¬ le der Stufe I, zwei der Stufe II und sechs der Stufe III. Die Daten für die Zugehörigkeitsfunktionen müssen also für 10 Elementarintervalle abgespeichert werden.
Gegenüber der Unterteilung des Grundbereiches in gleich große Elementarintervalle besteht der Vorteil dieses mehrstufigen Elementarintervall-Verfahrens darin, daß der Grundbereich nun nur noch dort feiner unterteilt werden muß, wo die Struktur, d.h. dicht beeinanderliegende Stützstellen der Zugehörig¬ keitsfunktionen, dies auch verlangt. Dadurch, daß Bereiche mit "wenig Struktur" nun gröber unterteilt werden können, ergibt sich -jedenfalls für Fälle, in denen die Struktur über den Grundbereich variiert -eine beträchtliche Einsparung an Speicherplatz. Der zusätzliche Aufwand an Rechenzeit läßt sich durch eine erweiterte Speicherorganisation begrenzen (siehe unten) . Die Zugehörigkeitsfunktionen IMF sind nun im Speicher KBM gespeichert. Für jedes Eingangssignal ist es somit erforder¬ lich, die vom Eingangssignal xe getroffenen Zugehörigkeitsfu-
nktionen IMF festzustellen und dann die Zugehörigkeitswerte zu berechnen. Dazu muß auf den Speicher KBM zugegriffen wer¬ den. Im folgenden wird die Speicherorganisation, die Ermitt¬ lung des getroffenen Elementarintervalls sowie des Speicher- sektors, in dem die Zugehörigkeitsfunktionen des getroffenen Elementarintervalls liegen, geschildert.
Es wird dabei davon ausgegangen, daß im Speicher KBM w Wis¬ sensbasen abgespeichert sind, daß i Eingänge und k Elementar- intervalle EI vorliegen. Die jeweiligen Bereiche für i, k ergeben sich aus Figur 3.
Wie üblich werden zunächst die Adressendeskriptoren KBDO und KBDl aus dem KBM ausgelesen und in das Speicherinterface KIF geschrieben. Im Adressendeskriptor KBDl steht eine Adresse des sog. Elementarintervall-Adressendiskriptors EAD. Über diese Adresse kann der Elementarintervall-Adressendiskriptor EAD angesteuert werden. Im Elementarintervall-Adressendis- kriptor EAD ist mit jeweils z.B. vier Bit kodiert der Expo- nent aei gespeichert, aus dem die Anzahl der Elementarin¬ tervalle pro Eingang berechnet werden kann. Es gilt:
nei.i = 2aei-i , 0 < aei.i ≤ 11
Aus dem in EAD gespeicherten aei und den aei Most Significant Bits des Eingangssignales xe wird dann nach i-l adr(EIA) = adr(EAD) + ∑ nei.h + rad(EIA)+" 0000000000000001" h=l die Adresse eines Speicherwortes EIA ermittelt, in dem pro Eingang und pro Elementarintervall EI die Startadresse des Speichersektors angegeben ist, in dem die einem Elementarin¬ tervall zugeordneten Zugehörigkeitsfunktionen gespeichert sind. Dieser Speichersektor wird mit IMFD bezeichnet. rad(EIA) ist eine Relativadresse, die durch aei.i und die aei Most Significant Bits von xe.i festgelegt ist.
Aus Figur 3 ergibt sich diese Speicherorganisation mit den einzelnen Speicherbereichen sowie die Art und Weise, wie diese Speicherbereiche adressiert werden. Hier gibt es zu¬ nächst einen Speicherbereich für die Speicherworte KBD pro Wissensbasis, darauf folgt der Elementarintervall-Adressen- diskriptor EAD pro Wissensbasis, anschließend die Speicher¬ worte EIA, die jeweils die Startadresse des Speichersektors IMFD pro Elementarintervall und pro Eingang enthalten und schließlich die Speichersektoren IMFD für die Zugehörigkeits- funktionen, in denen die Forminformation pro Zugehörigkeits¬ funktion enthalten ist. Der Inhalt dieser Speichersektoren IMFD wird weiter unten erläutert.
Eine Schaltungsanordnung, mit der eine Adressierung dieses Speicherbereiches möglich ist, zeigt die Figur 4. Diese
Schaltung ist im KIF enthalten. Die angegebenen Steuersignale werden entweder direkt vom Steuerwerk geliefert oder ihre Erzeugung im KIF vom Steuerwerk veranlaßt. Der Ablauf der Adressengenerierung wird im folgenden schrittweise erläutert. Dabei sind in Figur 4 die Breite der einzelnen Signale ange¬ geben:
1. Zuerst werden die im KIF, und zwar über ein Steuerregister CTRL, erzeugten und jeweils an dem Adressbus KBDADR anliegen- den Adressen von KBDO und KBDl mit dem Steuersignal adail_sel an einen Eingang II eines Addierers ADDl geschaltet. Dessen zweiter Eingang 12 ist durch das Steuersignal adai2_sel mit einem Zähler CNT4U verbunden, der zu diesem Zeitpunkt rückge¬ setzt ist. Außerdem gilt ada_ci = '0' für den Carry-Eingang des Addierers ADDl. Damit gelangen die Werte des Adressbusses KBDADR unverändert über ein Masterslave-Register MSR2 und einen aktivierten Treiber TRB auf den Bus IKAD.
2. Der ausgelesene Wert von KBDO wird in das mit kbd0_clk zum entsprechenden Zeitpunkt geöffnete Latch LATO geschrieben.
3. Dann wird der ausgelesene Wert von KBDl, gleich der Adres¬ se von EAD, über das mit stad_clk rechtzeitig geöffnete Latch LAT1 und das mit adail_sel angesteuerte Schaltnetz MUX2 an den Eingang II des Addierers ADDl gelegt; 12 liegt weiterhin auf Null und es gilt ada_ci = '0'. Damit gelangt die Adresse von EAD in das zu diesem Zeitpunkt mit adaol_en geöffnete Ma- sterslave-Register MSR1 sowie über das Masterslave-Register MSR2 und den Treiber TRB im folgenden Takt auf den Bus IKAD.
4. Im folgenden Takt wird auch der Inhalt von EAD auf dem Bus IKAD gültig und mit ead_clk in das Latch LAT2 geschrieben. Ein Multiplexer MUX1 wählt daraus mit dem Signal nri den dem jeweiligen Eingang zugeordneten Wert von aei aus, womit sich einerseits über den Decoder DEC der Wert von nei ergibt und mit dem andererseits im Schaltnetz RAD aus aei und xe eine
Relativadresse gebildet wird, die dazu verwendet wird, um das von den Most Significant Bits des Eingangssignales xe adres¬ sierte Elementarintervall und das diesem zugeordnete Spei¬ cherwort EIA im Speicher KBM zu ermitteln. Zur Bildung der Adresse von EIA legt der Multiplexer MUX2 mit dem Steuer¬ signal adail_sel den um fünf führende Nullen ergänzten Wert der Relativadresse an den Eingang II und der Multiplexer MUX3 mit dem Steuersignal adai2_sel den im Register MSR1 gespei¬ cherten Wert der Adresse von EAD an den Eingang 12 des Addie- rers ADDl. Außerdem gilt dann ada_ci = '1'. Der somit gebil¬ dete Wert der Adresse von EIA gelangt über das Register MSR2 und den Treiber TRB im folgenden Takt auf den Bus IKAD.
5. Der ausgelesene Wert von EIA, also die Adresse stad des ersten Wortes in IMFD, wird mit dem Steuersignal stad_clk in das Latch LAT1 geschrieben und mit dem Steuersignal adai_sel über den Multiplexer MUX2 an den Eingang II des Addierers ADDl gelegt. Dessen zweiter Eingang 12 erhält mit dem Steuer¬ signal adai2_sel den Wert '0' und es gilt ada_ci = '0'. Somit gelangt stad unverändert über das Register MSR2 und den Trei¬ ber TRB im folgenden Takt auf den Bus IKAD.
6. Die Adressen für die folgenden maximal sechzehn noch zu erfolgenden Zugriffe auf die Zugehörigkeitsfunktionen IMFD ergeben sich analog zu 5: Zum einen für die ersten fünfzehn Zugriffe als Summe des am Ausgang des Latch LAT1 liegenden stad und dem jeweils um 1 erhöhten Inhalt des Zählers CNT4U sowie ada_ci = '0' , und schließlich, falls ein sechzehnter Zugriff erforderlich ist, aus der Summe von stad und dem letzten Zählerstand sowie ada_ci = '1'.
7. Während der auf die Fuzzifikation einer Eingangsgröße folgenden Fuzzyinferenz, also der Auswertung der Fuzzyregeln, wird der im Register MSR1 gespeicherte Wert immer aktuali¬ siert, d.h. der alte Wert
i-l adr(EIA) + nei.h h-1
wird über MUX3 an den Eingang 12 von ADDl gelegt und der jeweils um vier führende '0' ergänzte Wert von nei.i über MUX2 an den Eingang II..
Beim zweiten Beispiel der Figur 16 läßt sich die Rechenzeit durch eine erweiterte Speicherorganisation im Sinne eines hierarchischen Systems von Elementarintervall-Adressen-Des¬ kriptoren auf einen Speicherzugriff pro Stufe begrenzen, da die eigentliche Berechnung der Funktionswerte der Eingangszu¬ gehörigkeitsfunktionen nur für das vom scharfen Eingangssi¬ gnal xe jeweils letztlich getroffene Elementarintervall durchgeführt wird.
Ein Beispiel für das eben erwähnte hierarchische System von Elementarintervall-Adressen-Deskriptoren soll nun mit Figur 17 erläutert werden (siehe dazu auch Figur 3) . Dazu werde angenommen, daß alle Speicherworte 16 Bit breit sind. Wie in Figur 3 enthält das Speicherwort EAD mit der Adresse adr (EAD) die Information aei über die Anzahl der Intervalle der Stufe I, in die der Grundbereich unterteilt wurde. Aus aei
und dem scharfen Wert xe des Eingangssignales ergibt sich dann die Relativadresse r(aei, xe) für den Adressen-Des¬ kriptor EIA.k des von xe getroffenen k-ten Intervalls der Stufe I. Für dessen absolute Adresse adr(EIA.k) gilt
adr(EIA.k) = adr(EAD) + r(aei,xe)
Gegenüber Figur 3 erhalten die Speicherworte EIA.k = EIA.k [15:0] nun aber eine geänderte Bedeutung:
• für EIA.k[15] = 0 erfolgt keine weitere Unterteilung, d.h. das vorliegende k-te Intervall der Stufe I ist ein Elementar¬ intervall, und die Bits EIA.k[14:0] bedeuten die Startadresse für den Speichersektor IMFD.k, in dem die ei-= gentlichen Daten der Zugehörigkeitsfunktionen innerhalb die¬ ses Elementarintervalls abgelegt sind.
• für EIA.k[15] = 1 jedoch bedeuten die Bits EIA.k[14:13] den binären Wert des Exponenten aei.k der Zahl nei.k = 2aeUc+1 von für dieses Beispiel maximal 16 Intervallen, in die das k-te In¬ tervall der Stufe I weiter unterteilt wird. Die Bits EIA.kf 12:0] bilden nun eine Relativadresse für das erste Wort eines zusätzlichen (dem Elementarintervall-Adressen-Deskriptorblock EIAD der Stufe I entsprechenden) Blockes EIAD.k von Elemen- tarintervall-Adressen-Deskriptoren der Stufe II bezüglich des k-ten Intervalls der Stufe I.
Welches 1-te Intervall der Stufe II durch den scharfen Wert xe des Eingangssignales getroffen wird, kann - analog zu dem in Figur 3 angegebenen Vorgehen - aus aei, aei.k sowie den aei+aei.k+1 MSB von xe bestimmt werden. Damit liegt dann auch die Relativadresse r(aei, aei.k, xe) für das Speicherwort EIA.k.l innerhalb von EIAD.k fest.
Die Speicherworte EIA.k.l sowie alle weiteren Hierarchiestu¬ fen sind genauso definiert wie EIA.k.
In Figur 17 ist diese Speicherorganisation für das Beispiel von Figur 16 angegeben. Die Abfolge der Speicherzugriffe is mit den gestrichelten Linien angedeutet, wobei ein scharfer Wert xe des Eingangssignales innerhalb des zweiten Elementa intervalls der Stufe III angenommen wurde. Da dieses Elemen tarintervall in dem zum dritten Intervall der Stufe I gehö¬ renden ersten Intervall der Stufe II liegt, folgen nach dem Speicherzugriff auf EAD also zunächst der auf EIA.3 und dan die auf EIA.3.1 sowie EIA.3.1.2, dessen 15 LSB EIA.3.1.2[14: ] die Startadresse von IMFD.3.1.2 bedeuten.
Der bei der Adressierung verwendete Algorithmus kann auch Figur 18 entnommen werden. Zur schaltungstechnischen Reali¬ sierung der Adressengenerierung für das mehrstufige Verfahr ist die in Figur 4 angegebene Anordnung für das einstufige Verfahren zu erweitern.
Zur Fuzzifikation der weiteren Eingangsgrößen müssen nur di Schritte 4) - 6) und ggf. 7) durchlaufen werden.
Im Speichersektor IMFD stehen die Daten für die Zugehörig¬ keitsfunktionen der einzelnen Elementarintervalle EI pro Eingang für die einzelnen Wissensbasen. Dabei enthält das erste Speicherwort von IMFD die mit zwei Bit kodierte Anzah ZIMF der Zugehörigkeitsfunktionen innerhalb eines Elemen¬ tarintervalls sowie mit jeweils drei Bit kodierte sog. Type nummern t für die maximal vier Zugehörigkeitsfunktionen IMF im Elementarintervall EI. Die den Typennummern zugeordneten IMF-Formen sind in den Figuren 5 und 6 dargestellt. Mit Hil dieser Informationen können dann die Zugehörigkeitswerte ye für jedes xe berechnet werden.
Figur 5 und 6 zeigen die einzelnen Formen der Zugehörigkeit funktionen, ihre Typennummern und die im Speichersektor IMF abzuspeichernden Speicherworte zur Beschreibung der IMF-For men. Es ist jeweils die Kurvenform innerhalb eines Elemen- tarintervalles gezeigt. Die Typennummern sind so gewählt, d
in ihnen bereits die Vorzeichen der Steigung s enthalten sind, während das Most Significant Bit von t angibt, ob von der Stützεtelle STS jeweils zwei Kurventeile mit unterschied licher Steigung ausgehen, die zu speichern sind. Mit einer solchen Wahl der Typennummern wird der Speicherplatzbedarf verringert, da bereits in der Typennummer Information enthal ten ist, die später bei der Berechnung des Zugehörigkeitswer tes verwendet werden kann.
In Figur 5 sind die IMF-Formen dargestellt, bei denen das
Most Significant Bit '0' ist. Es ist zu sehen, daß die Stütz stellen STS jeweils entweder durch ein xs oder durch ein ys festgelegt ist. Der andere Wert ist entweder '0' bei ys oder wird durch die Grenzen des Elementarintervalls festgelegt, die ja mit den Most Significant Bits des Eingangssignales xe erkannt werden können. Wie ein Vergleich der Spalte für die Vorzeichenbits mit den Stellen 0 und 1 der Typennummer t zeigt, enthalten die Stellen 0 und 1 der Typennummer t die Vorzeichenbitε. Die IMF-Formen werden bei den Typennummern, bei denen das Most Significant Bit '0' ist, mit Hilfe von zwei Speicherwörtern SW gespeichert. Im ersten Speicherwort SW1 steht die Nummer nimf der Zugehörigkeitsfunktion und der Wert der Stützstelle, also xs oder ys, im zweiten Speicher¬ wort SW2 steht eine datenkomprimierte Steigungsinformation DKS, bestehend aus zwei Teilen p und g, die unten erläutert wird.Bei den IMF-Formen nach Figur 5 werden also nur zwei Speicherwörter zur Speicherung der IMF-Daten pro Elementarin tervall benötigt, da die weiteren Werte für ys oder xs bzw. oder g durch die Kurvenform festgelegt sind.
Anders ist die Lage bei den Kurvenformen der Figur 6. Hier ist das Most Significant Bit der Typennummer eine '1'. Es sind vier Speicherworte SW erforderlich, um die IMF-Form zu speichern. Das erste Speicherwort SWl enthält die Nummer nimf der Zugehörigkeitsfunktion und den Wert xs der Stützstelle i bitweise invertierter Form xs, das zweite Speicherwort SW2 enthält die Werte für pr und qr, das dritte Speicherwort SW3
die Werte für pl und ql und das vierte Speicherwort SW4 den Wert für ys der Stützstelle. Hier sind die Kurvenformen so, daß die Stützstelle innerhalb des Elementarintervalls EI liegt, und somit einen zu speichernden Wert xs und ys auf- weist. Damit gehen auch von dieser Stützstelle STS auf beiden Seiten Kurven aus, deren Steigungsinformation DKS gespeichert sein müssen, um aus diesen Daten den Zugehörigkeitswert be¬ rechnen zu können. Dabei werden die Vorzeichenbits, die in der Spalte der Vorzeichenbits der Figur 5 und 6 gezeigt sind, natürlich nicht mit abgespeichert, da sie in der Typennummer t enthalten sind. Die hinter den einzelnen Werten angegebenen Zahlen geben die Bitstellen des jeweiligen Wertes an, wobei davon ausgegangen wird, daß die Werte für die Stützstelle mit zwölf Bit aufgelöst sind und ein Speicherwort 16 Bit hat.
Die datendatenkomprimierte Steigungsinformation wird folgen¬ dermaßen gebildet (Figur 7) :
Ausgangspunkt ist der Absolutwert sa der Steigung s zwischen den benachbarten Stützstellen (x^, y^) und x.2 > z 2 ^ '•
Da die x- und y-Werte mit 12 Bit aufgelöst sind, ergibt sich für sa eine positive Binärzahl mit 12 Stellen vor dem Komma und beliebig vielen Stellen nach dem Komma. Zur Fuzzifizie¬ rung (d.h. zur Berechnung des der scharfen 12 Bit Eingangs¬ größe xe entsprechenden 12 Bit Zugehörigkeitswertes ye) ge¬ nügt es aber, statt sa eine datenkomprimierte Steigungsinfor- mation (DKS) zu speichern, deren Zustandekommen anhand eines Beispiels verdeutlicht werden soll: Es sei
11 10 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 sa= 0 0 0 0 0 0 0 1 0 0 0 1 , 1 0 1 0 1 0 1 0 1 0 1 0 1
Dabei gibt die obere Zeile die Bitstelle, die untere Zeile die zugeordneten Werte an.
In einem ersten Schritt wird nun geprüft, ob mindestens eine der Bitstellen vor dem Komma den Wert 1 aufweist. Falls dies, wie in dem angegebenen Beispiel, der Fall ist, wird als er¬ ster Teil der DKS die Bitstelle p der führenden 1 vor dem Komma von sa binär kodiert; wegen
≤ p < Hdezimal genügen dazu 4 Bit. Für das angegebene Beispiel ergibt sich
P = dezimal = 0100
Der zweite Teil q der DKS besteht aus weiteren 12 Bit, die durch Runden der auf die führende 1 vor dem Komma von sa unmittelbar folgenden Bitstellen auf 12 Bit Genauigkeit ge¬ wonnen werden; für das angegebene Beispiel sind dazu die Bitstellen 3, 2, ..., -9 mit den Werten
0001101010101, auf den Wert q = 000110101011 zu runden.
Damit sind insgesamt 16 Bit (p(3), ..., p(0), q(ll), ..., q(0)) zur Kodierung des Absolutbetrages sa einer Steigung erforderlich, falls eine der Bitstellen vor dem Komma von sa den Wert 1 aufweist, also für sa > 1.
Der Fall sa < 1, d.h. alle Bitstellen vor dem Komma von sa haben den Wert 0, wird folgendermaßen codiert:
Für den ersten Teil p der DKS wird eine der noch "freien" Bitkombinationen
p(3) = p(2) = 1, p(l), p(0)
beliebig für p gewählt, während sich der zweite Teil q der DKS durch Runden der Bitstellen nach dem Komma von sa auf 12
Bit Genauigkeit gewonnen werden. Werden in dem oben angegebe¬ nen Beispiel alle Stellen vor dem Komma gleich Null gesetzt, so gilt zunächst
sa = 0 0 .. 0, 1 0 1 0 1 0 1 0 1 0 1 0 1 und damit q = 1 0 1 0 1 0 1 0 1 0 1 1
Auch im Fall sa < 1 werden also insgesamt 16 Bit zur Kodie¬ rung von sa verwendet.
Aus p und q ergibt sich dann der Absolutwert sa der Steigung nach: o sa = δ • 2P + 2δp_12 • ∑s(σ + δ • p - 12) • 2σ,mitδ = 1 - p(3) • p(2) σ-n
Aus den in Figur 5 und 6 angegebenen IMF-Formen muß nun für die Eingangssignale xe der entsprechende Zugehörigkeitswert ye berechnet werden. Dazu ist es zweckmäßig, folgende Defini¬ tionen zu geben:
Mit vdx wird das Vorzeichenbit von dx angegeben, dx ist die Differenz von xe - xs, also die Differenz zwischen dem Ein¬ gangssignal xe und dem x-Wert der Stützstelle innerhalb des Elementarintervalls, das von dem Eingangssignal xe getroffen worden ist. Diese Differenz kann > 0 oder < 0 sein, je nach dem, ob xe rechts oder links von dem x-Wert der Stützstelle liegt. Also gilt: vdx = 0 für xe-xs > 0
vdx = 1 für xe-xs < 0
Der Absolutbetrag der Differenz xe-xs wird mit dxa bezeich¬ net. Es gilt:
dxa = Ixe-xsI
Das Vorzeichenbit für den Wert dy wird mit vdy bezeichnet, dy ist dabei das Produkt aus Steigung und xe-xs und entspricht ye-ys. vdy ergibt sich dann aus vdx sowie den in den Typen¬ nummern t implizit enthaltenen Vorzeichenbits vsr, vsl der Steigungen nach rechts bzw. nach links von der Stützstelle aus. Es kann der folgenden Tabelle entnommen werden:
Tabelle 1:
vdy = '0' für t(2) '0 vdy = vdx für t = "1001 vdy = '1' für t = "1011 vdy = '0 ' für t = "HO1 vdy = vdx für t = "111'
Mit diesen Definitionen ergibt sich für den Zugehörigkeits¬ wert ye die folgende Formel:
ye = ysθ(-l)vdy-(sa®dxa)
ys ist dabei der y-Wert der Stützstelle STS, vdy das Vorzei¬ chen von dy, sa der Absolutbetrag der Steigung und dxa der Absolutbetrag der Differenz dx.
Es muß beachtet werden, daß die Werte, die ye einnehmen kann, also auch das Produkt von sa mit dxa und die Summe von ys mit diesem Produkt durch die Auflösung des Zugehörigkeitswertes ye begrenzt wird. Somit hat ye die Grenzen 0 und, unter der Voraussetzung, daß das Signal ye mit m Bit aufgelöst ist, die zweite Grenze 2m~l. Wenn sich bei der Berechnung ergibt, daß entweder ye = 0 sein muß oder die untere Grenze 0 unter¬ schreitet oder die obere Grenze 2m_1 überschreitet, ist die genaue Berechnung entsprechend der angegebenen Formel nicht mehr erforderlich. Diese Begrenzung wird beim Produkt mit ® und bei der Summe mit θ in der Formel für ye angegeben.
Eine Fuzzifier-Schaltung FUZ, mit der ye berechnet werden kann, ergibt sich aus Figur 8 und Figur 9. Figur 8 zeigt dabei die Schaltung, bei der die Rechenschaltung YEC nur als Block dargestellt ist, Figur 9 die Ausführung der Rechen- Schaltung YEC.
Die Berechnung von ye kann erfolgen, sobald die Daten der getroffenen Zugehörigkeitsfunktionen aus dem Speicher KBM ausgelesen worden sind, und in Latchspeicher LAT3 bis LAT7 eingeschrieben worden sind. In den Latchspeicher LAT3 wird dabei das erste Speicherwort SWO des dem Elementarintervall zugeordneten Speichersektors eingeschrieben, in dem die An¬ zahl der getroffenen Zugehörigkeitsfunktionen und deren Ty¬ pennummern enthalten sind. In den Latchspeicher LAT4 werden die 12 niedrigstwertigsten Bits des Speicherwortes SW1 einge schrieben, in dem die Nummer der Zugehörigkeitsfunktion und der bitweise invertierte xs-Wert enthalten sind, in den Latchspeicher LAT5 pr und gr, in den Latchspeicher LAT6 pl und ql und in den Latchspeicher LAT7 ys. pr und qr, pl und q und ys sind jeweils eigene Speicherworte SW , die im Speiche KBM gespeichert sind.
Über einen Multiplexer MUX4 werden nun nacheinander die im ersten Speicherwort SWO enthaltenen Typennummern t herausge- filtert und der Rechenschaltung YEC zugeführt. Zur Ansteue- rung des Multiplexers MUX4 ist dabei ein Zähler CNT2U vorge¬ sehen, der hochgezählt wird bis zu einem Wert, der der Zahl zimf entspricht, die die Anzahl der Zugehörigkeitsfunktionen für das getroffene Elementarintervall angibt. Diese Anzahl zimf ist ebenfalls im ersten Speicherwort SWO enthalten. Aus den Typennummern t, den Werten in den weiteren Speicherwor¬ ten, die von den Latchspeichern LAT4 bis LAT6 der Rechen¬ schaltung YEC zugeführt werden und aus dem Eingangssignal xe, das ebenfalls an der Rechenschaltung YEC anliegt, kann dann diese den Zugehörigkeitswert ye entsprechend der oben angege benen Formel berechnen. Wenn für das getroffene Elementar¬ intervall EI alle Zugehörigkeitsfunktionen bzw. deren Typen-
nummern t abgearbeitet sind, dann gibt eine Komparatorschal- tung KOM, die die Anzahl zimf mit dem Zählerstand von CNT2U vergleicht, ein Signal ciz ab, das dem Steuerwerk STW zuge¬ führt wird und dieses veranlaßt, die Berechnung der Zugehö¬ rigkeitswerte zu beenden. Die Typennummer t, und zwar deren Stellen 1 und 2, wird ebenfalls dem Steuerwerk zugeführt, da diese für den Ablauf der Berechnung von ye von Bedeutung sind. Der Wert von nimf geht zur Inferenzeinheit FIN und wird dort zur Auswertung von ye mit herangezogen.
Die genauere Ausführung der Rechenschaltung kann Figur 9 entnommen werden. Mit Hilfe des Schaltnetzes XSEQ und der Addiererschaltung XADD wird die Differenz dx berechnet. Dabei wird zur Vereinfachung der Berechnung dx folgendermaßen um- formuliert:
dx = xe-xs = xe+xse+1-2^
wobei -xs = xse+1-2^ ist und xse das Einerkomplement von xs. Dies entspricht einer Zweierkomplementschreibweise für -xs.
Dementsprechend wird dem Schaltnetz XSEQ, xs, xe, aei und t zugeführt und es bildet xse. aei und t werden dem Schaltnetz XSEQ zugeführt, um xse berechnen zu können, wenn in den Speicherworten der Wert von xs nicht gespeichert werden muß, wenn also, wie es z.B. bei Figur 5 teilweise der Fall ist, die x-Koordinate xs der Stützstelle mit einer der Intervall¬ grenzen zusammenfällt.
Der Addierer XADD ist als Subtrahierer geschaltet (CI = ■1') und bildet aus xse und xe den Wert dx. Weiterhin erzeugt er das Vorzeichenbit vdx, das sich aus dem invertierten Über¬ tragsignal cox ergibt. Dabei ist cox = '1* für xe-xs > 0 cox = '0 ' für xe-xs < 0.
Das Schaltnetz ABX bildet nun aus dx den Absolutbetrag von dx. Eine Schaltung, mit der dies durchgeführt werden kann,
zeigt Figur 12, bei der das Schaltnetz ABX mit Hilfe von Halbaddierern HA realisiert wird bzw. die Figuren 13 bis 15. Die Funktion dieser Schaltungen kann den Figuren entnommen werden.
Das Ausgangssignal dxa von ABX wird an einen von zwei Eingän¬ gen eines Multiplizierers PROD angelegt. An dessen zweitem Eingang liegen die 12 Least Significant Bits von sa, des jeweiligen Absolutbetrages der Steigung s an, das vom Schalt- netz SEL geliefert wird. Es wird aus qr oder ql ausgewählt. Das Schaltnetz SEL wählt weiterhin p aus pr oder pl aus, erzeugt das Vorzeichen von y, vdy, unter Verwendung der Ty¬ pennummer t und von vdx entsprechend der Tabelle 1. Es er¬ zeugt weiterhin ein Signal yeiO, das angibt, ob der Zugehö- rigkeitswert bereits bekannt ist, was z.B. aus dem Wert von xe und der Typennummer t entnehmbar ist. Z.B. gilt für t = "000" und xe < xs oder t = "001" und xe > xs, daß ye = 0 ist. Dann ist nämlich eine Berechnung des Zugehörigkeitswertes nicht erforderlich, d.h. die Fuzzifier-Schaltung kann mit der Berechnung des Zugehörigkeitswertes für die nächste Zuge¬ hörigkeitsfunktion beginnen bzw. die Inferenzeinheit kann, wenn alle Zugehörigkeitsfunktionen pro Elementarintervall bearbeitet sind, mit seiner Arbeit beginnen.
Das Schaltnetz SHIFT erfüllt zwei Aufgaben: Zum einen wird mit Hilfe eines Steuersignales dya_sel = '1' die Multiplika¬ tion von dxa mit 2P durchgeführt und zum anderen wird für dya_sel = '0' das Ergebnis sxa des Multiplizierers PROD unter Verwendung von p an die richtige Stelle geschoben. Die Be- rechnung von dxa-2P kann sehr schnell durchgeführt werden.
Die Arbeitsweise von SHIFT in Abhängigkeit des Steuersignals dya_sel zeigen Tabellen 2 und 3.
Tabelle 2 :
dya[ll. . Q]
0 dya_ sei • sxa[23.. 12] + dya_ sei • dxa[ll.. 0]
1 dya_ sei ■ εxaf 22.. 11] + r-ya_ sei ■ {dxa[lO.. 0]& • 0' }
2 dya_ sei • sxa[21.. 10] + dya_ sei • {dxa[9. . 0]i • 00' }
11 dya_ sei • sxa[l2.. 1] + dya_ sei ■ {dxa(0)i ■ 00000000000}
> 12 dya_ sei • sxa[23.. 12]
In Tabelle 2 ist eine Spalte für p, eine Spalte für den Aus¬ gangswert dya, in Tabelle 3 eine Spalte für p und eine Spalte für ein Rundungsbit rb angegeben. Dabei wird vorausgesetzt, daß jeweils 12 Bit breite Zahlen dxa und sa miteinander mul- tipliziert werden und das Ergebnis sxa 24 Bit breit ist. Nach Tabelle 2 wird z.B. für p = 0, bei dem die führende '1' di¬ rekt vor dem Komma liegt, vom Ergebnis sxa die Stellen 23 bis 12 als dya abgegeben, für den Fall, daß p = 11 ist, die Stel¬ len 12 bis 1. Es ist also zu erkennen, wie das Produkt sxa im Schaltnetz SHIFT verschoben werden muß, um den richtigen Wert von dya abzugeben. Der Fall, daß p > 12 ist, zeigt an, daß keine führende '1' vor dem Komma vorhanden ist, da eine füh¬ rende '1' vor dem Komma die Bitstellen 11..0 einnehmen kann. Für den Fall, daß dya_sel = 1 ist, wird die Multiplikation von dxa mit 2P durchgeführt, d.h. das Ergebnis sxa des Multi¬ plizierers wird nicht verwendet. Dazu genügt, daß dxa im Schaltnetz SHIFT verschoben wird. Dementsprechend wird dxa dem Schaltnetz SHIFT zugeführt. Das Ausmaß der Verschiebung kann ebenfalls Tabelle 2 entnommen werden. Für den Fall, daß p = 0 ist, findet überhaupt keine Verschiebung statt, für den Fall, daß p = 1 ist, wird dxa um eine Stelle nach links ver¬ schoben, es werden also die Stellen 0 bis 10
von dxa verwendet und um eine Null ergänzt, für den Fall, daß p = 11 ist, wird von dxa nur noch die nullte Stelle verwen¬ det, und die übrigen Stellen durch Nullen ergänzt.
In Tabelle 3 wird angegeben, ob eine Rundung erfolgen muß. Dies ist nur dann der Fall, wenn sxa ausgewertet wird. Es ist zu sehen, welche Stellen von sxa für die Rundung herangezogen werden. Das Rundungsbit rb ergibt sich aus den Stellen nach dem Komma des mit SHIFT an die richtige Stelle geschobenen Produktes sxa. rb wird für positive dy, d.h. für vdy = '0' liefert MUX 5 dy = dya, bei der Bestimmung von yeO in YADD berücksichtigt, da in diesem Fall für rb = '1' aufgerundet werden muß. Für vdy = '1' dagegen muß in YADD eine Subtrak¬ tion durchgeführt werden, d.h. der Carry-Eingang ci = vdy + rb erhält unabhängig von rb den Wert '1'. Die für rb = '1' erforderliche Rundung wird deshalb, zusammen mit der Bestim¬ mung von dy, in MUX5 vorgenommen, d.h. MUX5 liefert für vdy =
dy(0) = rb-dya(0)+rb- ya(0)
dy(l) = rb-dya(0)-dya(l)+rb-dya(0)dya(l)
dy(l1) =rb•dya(0)•dya(l)-...-dya(10)•dya(l1)+ -i-rb•dya(0)•dya(l)-...-dya(10)•dya(l1)
ERSATZBLÄΓΓ
Tabelle 3
Das Schaltnetz OF, dem dxa und p zugeführt wird, erzeugt ein Signal of, wenn ein Überlauf bei der Multiplikation von dxa mit 2P auftritt. Damit wird angezeigt, daß der Zugehörig¬ keitswert schon bekannt ist und das Ergebnis des Multiplizie¬ rers nicht abgewartet zu werden braucht. Es gilt:
ye = 0 für of = '1' und vdy = '1' ye = 212-1 fur 0f - >ι« uncj vdy =
Der weitere Addierer YADD addiert bzw. subtrahiert in einem ersten Schritt das Ergebnis der Multiplikation von dxa mit 2P zu dem mit dem Steuersignal yse_sel durchgeschalteten Wert von ys. Dazu wird ein Multiplexer MUX6 verwendet. Sobald das Ergebnis dieser Operation in ein Register YREG für ye zwi¬ schengespeichert ist, wird es mit yse_sel an den Eingang yse
Wert von dya, der durch Verschiebung von sxa entsprechend Tabelle 2 entstanden ist, zum Endergebnis yeO verarbeitet und im Register YREG abgelegt, es sei denn, daß aus vdy und dem Übertragbit coy ein Überlauf vom Addierer YADD festgestellt wird, bei dem der Zugehörigkeitswert wie folgt festgelegt ist:
ye = 0 für vdycoy = '1' ye = 2^-2-1 fur vdy-coy = '1
Die für den zeitlichen Ablauf der Berechnung des Zugehörig¬ keitswertes ye erforderlichen Steuersignale und Zustände können anhand eines Zustandsgraphen (Figur 11) für das Steu¬ erwerk STW (Figur 10) verfolgt werden. Das Steuerwerk ist dabei als Schaltwerk bzw. Finite State Machine realisiert.
Die Zustände wfpO, wfpl und wfp2 entsprechen Takten, die zur Multiplikation zweier Zahlen im Multiplizierer PROD erforder¬ lich sind. Dabei ist angenommen, daß für eine Multiplikation zweier 12 Bit Zahlen drei Takte aus Gründen der Leistungs- und Flächenersparnis erforderlich sind.
Mit dem Zustand rdeia (read EIA) wird die Startadresse des Speichersektors IMFD aus dem Speicher KBM ausgelesen. Mit dem Zustand rdzt wird das dieser Startadresse entsprechende erste Speicherwort SWO in IMFD ausgelesen. Das erste Speicherwort SWO enthält die Anzahl zimf der getroffenen Zugehörigkeitsfu¬ nktionen pro Elementarintervall sowie deren Typennummern. Der Zähler CNT2U wird geladen, das Register YREG für ye wird zurückgesetzt.
Im Zustand rdnxy (read x oder y) wird das erste Wort SWl des Speichersektors, das die IMF-Daten enthält, ausgelesen, näm¬ lich nimf sowie xs oder ys, und in die Latchspeicher LAT4 oder LAT7 eingeschrieben. Der Zähler CNT2U wird um eine Ein- heit weiter gezählt, um aus dem Speicherwort SWO die Typen¬ nummer zu entnehmen.
Der Zustand rdnxy kann im Zuge der Berechnung vorhergehender IMF-Werte auch von rdpql oder wfa oder wfpl aus erreicht worden sein.
Im nächsten Zustand rdpql wird das zweite Wort SW2 aus dem Speichersektor für die IMF-Daten ausgelesen, in dem pl und ql oder pr und qr steht. Diese werden in die Latchspeicher 5 und 6 eingeschrieben.
Im Zustand wfa wird ein in rdpql berechneter Zugehörigkeits- wert der vorhergehenden Zugehörigkeitsfunktion an die Infe- renzeinheit FIN weitergegeben. Gleichzeitig wird für den folgenden Zustand die Weitergabe eines schon bekannten Wertes ye der aktuellen Zugehörigkeitsfunktion vorbereitet, und die Statusbits des Multiplizierers pal und pa2 werden rückge¬ setzt. Abhängig vom Wert des Signals ciz wird entweder rdnxy oder rdkbd2 als nächster Zustand ausgewählt.
Im Zustand wfpO wird die Addition von 2P-dxa und ys durchge- führt und das Ergebnis im Register YREG abgelegt.
Im Zustand rdqp2 wird das dritte Wort SW3 des Speichersektors von IMF-Daten mit pl und ql ausgelesen und in den Latchspei¬ cher LAT6 geschrieben.
Im Zustand rdy wird das vierte Wort SW4 des Speichersektors, also ys, ausgelesen und in den Latchspeicher LAT7 einge¬ schrieben.
Im Zustand wfpl hängen die Aktionen und die nächsten Zustände von der Vorgeschichte ab, wie Figur 11 dies auch zeigt. Falls wfpl von wfpO aus erreicht wurde, ist der Multiplizierer PROD weiterhin aktiv, wenn bei der Addition von 2P-dxa und ys kein Überlauf aufgetreten ist (dies wird mit of angezeigt) . Falls wfpl von rdy aus erreicht wurde, bleibt der Multiplizierer PROD ebenfalls aktiv und es wird die Addition von 2P-dxa und ys durchgeführt und das Ergebnis in YREG abgelegt. Auf wfpl
können der Zustand rdnxy für ciz = 0 folgen, wenn noch weite¬ re IMF-Daten auszuwerten sind oder der Zustand rdkbd2, mit dem der Wert ye an die Einheit FIN weitergegeben wird, oder der Zustand wfp2, der im folgenden behandelt wird. Im Zustand wfp2 bleibt der Multiplizierer PROD aktiv. Sein Ergebnis sxa wird mit Beginn des nächsten Zustandes rdkbd2 gültig und kann dann zum Endergebnis ye weiterverarbeitet werden.
Im Zustand rdkbd2 werden das Ergebnis sxa und das in YREG gespeicherte Zwischenergebnis zum Endergebnis ye weiterverar¬ beitet und an die Einheit FIN weitergegeben. Falls rdkbd2 von rdpql, wfa oder wfpl aus erreicht wurde, wird der schon be¬ kannte Zugehörigkeitswert ye der letzten Zugehörigkeitsfunk- tion an FIN weitergegeben.
Die Erläuterung der Figur 11 beschränkte sich auf die wesent¬ lichen Zustände des Steuerwerkes. Aus den Angaben zu den Übergängen zwischen den Zuständen kann unter Verwendung der Erläuterung der Fuzzifier-Schaltung erkannt werden, wie die einzelnen Zustände ablaufen. Dabei sind die Signale pal und pa2 Statussignale für den Multiplizierer PROD, mit rd ist das Wort read abgekürzt. Mit dem Wert '1' der Signale pal oder pa2 (pa entspricht prod active) wird angezeigt, daß der Mul- tiplizierer PROD im jeweils vorausgehenden Zustand aktiviert wurde oder noch aktiv war. Zusätzlich wird mit pal = '1' an¬ gezeigt, daß PROD im Zustand wfpo aktiviert wurde, und mit pa2 = '1', daß PROD im Zustand rdy aktiviert wurde.