DE69032680T2 - Neuronaler Rechner - Google Patents

Neuronaler Rechner

Info

Publication number
DE69032680T2
DE69032680T2 DE69032680T DE69032680T DE69032680T2 DE 69032680 T2 DE69032680 T2 DE 69032680T2 DE 69032680 T DE69032680 T DE 69032680T DE 69032680 T DE69032680 T DE 69032680T DE 69032680 T2 DE69032680 T2 DE 69032680T2
Authority
DE
Germany
Prior art keywords
circuit
neurons
address
signal
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69032680T
Other languages
English (en)
Other versions
DE69032680D1 (de
Inventor
Mitsuo Nishikoigakubo-4-Chome Kokubunji-Shi Asai
Toshio Kokubunji-Shi Doi
Takehisa Kodaira-Shi Hayashi
Yuzo Tsukuba-Shi Hirai
Kenichi Kokubunji-Shi Ishibashi
Akira Musashino-Shi Masaki
Noboru Kokubunji-Shi Masuda
Masayoshi Kokubunji-Shi Yagyu
Minoru Hanno-Shi Yamada
Moritoshi Kawaguchi-Shi Yasunaga
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 JP64000299A external-priority patent/JPH02181258A/ja
Priority claimed from JP64000297A external-priority patent/JP2765903B2/ja
Priority claimed from JP89300A external-priority patent/JPH02181284A/ja
Priority claimed from JP1056458A external-priority patent/JP2804069B2/ja
Priority claimed from JP26310389A external-priority patent/JPH03125256A/ja
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE69032680D1 publication Critical patent/DE69032680D1/de
Application granted granted Critical
Publication of DE69032680T2 publication Critical patent/DE69032680T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Multi Processors (AREA)
  • Complex Calculations (AREA)
  • Small-Scale Networks (AREA)

Description

    HINTERGRUND DER ERFINDUNG
  • Die Erfindung betrifft allgemein ein Informationsverarbeitungssystem mit einer Anzahl von Neuronen. Genauer gesagt, betrifft die Erfindung einen Neuralcomputer wie einen Analogcomputer, ein neurales Netzwerk oder dergleichen, die dazu in der Lage sind, Informationsverarbeitungsvorgänge mit hohem Ausmaß paralleler Verarbeitung auszuführen.
  • Ein sogenannter Analogcomputer umfasst eine Anzahl von Funktionsblöcken wie Addierer, Integrierer und andere, wobei jeder der Funktionsblöcke von einem anderen Funktionsblock oder anderen Funktionsblöcke ausgegebene Signale unmittelbar oder über eine Skalierschaltung mit Multiplikationsfunktion, einen Vorzeicheninverter und Anderes empfängt. Der Funktionsblock führt dann arithmetische Operationen wie eine Addition, eine Integration und Anderes für ein empfangenes Signal aus, um dadurch den eigenen Ausgangswert zu bestimmen, der dann an den anderen Funktionsblock oder andere Funktionsblöcke übertragen wird. Im Allgemeinen wird durch eine Bedienperson entsprechend Problemen bestimmt, welches Ausgangssignal eines Funktionsblocks in welchen der Funktionsblöcke einzugeben und welcher Zahlenwert in die Skalierschaltung einzutragen ist.
  • Bei einem als neurales Netz oder Netzwerk bekannten Netzwerk ist, wie es in Fig. 1 der beigefügten Zeichnungen dargestellt ist, eine Anzahl von Zellenkörpern und Funktionsschaltungen 10, die als Dendriten bezeichnet werden, vorhanden, wobei jede der Funktionsschaltungen über einen Skalierer 11 die Signale empfängt, wie sie von der anderen Funkti onsschaltung ausgegeben werden. Jeder der Funktionsblöcke, von denen jeder aus der Funktionsschaltung 10 und der Skalierschaltung 11 besteht, bestimmt arithmetisch die Gesamtsumme der durch die Signale repräsentierten Werte als eigenen internen Wert, und er gibt ein dem internen Wert entsprechendes Signal an die anderen Funktionsblöcke aus. Die Auswahl der Koeffizienten (nachfolgend als Gewichtungskoeffizienten bezeichnet) für die einzelnen Skalierer werden automatisch durch einen Prozess bestimmt, der im Allgemeinen als Lernen bezeichnet wird. Ein Beispiel für diesen Typ eines neuralen Netzwerk ist in der japanischen Zeitschrift "NIKKEI ELECTRONICS", No. 427 (10. August 1987), S. 115- 124, offenbart.
  • Ein Versuch zum Realisieren eines neuralen Netzwerks in Form einer integrierten Halbleiterschaltung ist in der japanischen Zeitschrift "NIKKEI MICRODEVICE", Juli 1988, S. 44- 89, offenbart. Eine derartige integrierte Halbleiterschaltung für ein neurales Netzwerk ist auch in "A CMOS ASSOCIATIVE MEMORY CHIP BASED ON NEURAL NETWORKS"; 1987 ISSCC DIGEST OF TECHNICAL PAPERS, S. 304-305, offenbart. In "NIKKEI MICRODEVICE", Juli 1988, S. 72 bis 78, ist ein neurales Netzwerk unter Verwendung digitaler Schaltungen vorgeschlagen. Die digitalen Schaltungen können leicht integriert werden, und sie können dadurch für hohe Genauigkeit bei Operationen sorgen, dass sie gegen Störsignale und Herstelltoleranzen stark unempfindlich sind. Nachteilig ist eine digitale Schaltung jedoch dahingehend, dass im Vergleich mit einer Analogschaltung eine größere Anzahl von Teilen oder Elementen erforderlich ist. Unter diesen Umständen werden, im Fall der oben genannten Vorgehensweise, Zahlenwerte, die im Allgemeinen durch Impulscodes ausgedrückt werden, zum Vereinfachen der Schaltungskonfiguration als Impulszahlen ausgedrückt.
  • Wenn unter Verwendung eines Analogcomputers und eines neuralen Netzwerks eine komplizierte Informationsverarbeitung auszuführen ist, wird es erforderlich, die Anzahl der Funktionsblöcke wie Addierer, Integrierer und andere zu erhöhen, was wiederum bedeutet, dass die Menge an Verdrahtungsleitern zum Verbinden der Funktionsblöcke und der Anzahl von Skalierern und anderer Blöcke entsprechend erhöht werden muss. Wenn mit N die Anzahl von Funktionsblöcken repräsentiert wird, beläuft sich die Anzahl der Schaltungspunkte zum wechselseitigen Verbinden der Funktionsblöcke auf N · (N - 1). Anders gesagt, ist ein Umfang an Hardware für die Verdrahtungsleiter, Skalierer usw. erforderlich, der sich ungefähr proportional zur zweiten Potenz der Anzahl der Funktionsblöcke ändert. Demgemäß nimmt, wenn die Anzahl von Funktionsblöcken einen bestimmten Wert überschreitet, der Umfang an Hardware in nicht hinnehmbarer Weise zu, was es praktisch unmöglich macht, das System zu realisieren. Insbesondere dann, wenn das System unter Verwendung digitaler Schaltungen, die hohe Betriebsgenauigkeit und Störsignalbeständigkeit gewährleisten und für Integration geeignet sind, zu integrieren ist, wird das oben genannte Problem schwerwiegender, da eine große Anzahl von Elementen zum Aufbauen der Skalierer und anderer Schaltungen erforderlich ist. Außerdem benötigt eine Vorgehensweise zum Ausdrücken von Zahlenwerten durch Impulszahlen, um den Hardwareumfang zu verringern, in nicht hinnehmbarer Weise viel Zeit zur Verarbeitung. Beispielsweise erfordert ein Zahlenwert dritter Größenordnung für seine Wiedergabe ungefähr tausend mal soviel Zeit, wie es zur Wiedergabe durch einen Impulscode erforderlich ist.
  • Die Realisierung eines neuralen Netzwerks in einem digitalen Mehrprozessorsystem ist in "The Fifteenth Annual International Symposium On Computer Architecture", 30. Mai bis 02. Juni 1988, Honolulu, Hawaii, Seiten 3 bis 11, offenbart, wovon der erste Oberbegriffsteil von Anspruch 1 ausgeht. Jeder Prozessor emuliert durch Software eine Anzahl von Neuronen. Die Verbindung zwischen Neuronen verschiedener Prozessoren erfolgt durch eine Übertragung von Paketdaten in einem die Prozessoren verbindenden Netzwerk. Mehr Details zur Datenübertragung über einen Netzwerkbus sind im Dokument EP-A- 200 365 offenbart, das ein System zum Steuern von Kommunikationsvorgängen in einem Netzwerk betrifft, das programmierbare Steuerungen in einer Industrieanlage verbindet. Aktiven Steuerungen werden Zeitschlitze zugeordnet, so dass sie ihre Daten über den Netzwerkbus an eine andere spezielle Steuerung übertragen können, um Peer-to-Peer-Kommunikation zu erzielen.
  • Im Allgemeinen überwindet der Stand der Technik das Problem nicht, dass die praktische Realisierung eines neuralen Netzwerks entweder extrem kompliziert ist oder relativ langsam arbeitet.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist eine Aufgabe der Erfindung, ein Informationsverarbeitungssystem mit einer Anzahl von Neuronen zu schaffen, das einen einfachen Aufbau aufweist, bei dem der erforderliche Hardwareumfang nicht schnell ansteigt, wenn die Anzahl von Neuronen zunimmt.
  • Diese Aufgabe ist durch das im Anspruch 1 dargelegte System gelöst. Die Unteransprüche sind auf bevorzugte Merkmale praktischer Realisierungen der Erfindung gerichtet.
  • Ein erfindungsgemäßes Informationsverarbeitungssystem kann ein als Analogcomputer realisiertes neurales Netzwerk oder ein neurales Netzwerk großen Umfangs sein, das unter Verwendung z. B. digitaler Schaltungen realisiert ist.
  • Eine Realisierung der Erfindung kann ein neurales Netzwerk großen Umfangs trotz einer Erhöhung der Anzahl von Neuronen ohne Verringerung der Nutzungsrate strukturieren.
  • Eine andere Realisierung der Erfindung kann ein neurales Hochgeschwindigkeitsnetzwerk großen Umfangs realisieren, während sie eine Beeinträchtigung der Betriebsgeschwindigkeit hervorgerufen durch eine Erhöhung der Anzahl von Neuronen unterdrückt.
  • Eine Realisierung der Erfindung kann ein neurales Netzwerk großen Umfangs unter Verwendung einer relativ kleinen Anzahl verschiedener Photomasken realisieren.
  • Eine Realisierung der Erfindung ist ein neurales Netzwerk für einen Analogcomputer für digitale Kommunikation, in dem Gewichtungskoeffizienten wie auch die Ausgabewerte der Neuronenschaltungen durch mehrere Bits ausgedrückt werden können, und das Datenverarbeitungsvorgänge großen Umfangs ermöglicht, ohne dass die Fläche zum Realisieren des neuralen Netzwerks zu erhöhen ist.
  • Auch ermöglicht es eine Realisierung der Erfindung, einen Lernprozess selbst dann normal auszuführen, wenn ein Fehler in einem Lernschaltungssystem auftritt, und sie ermöglicht es, ein neurales Netzwerk mit hervorragend hoher Integrationsdichte zu realisieren.
  • Eine Realisierung der Erfindung ist ein Informationsverarbeitungssystem mit mehreren Funktionsblöcken (Neuronen) und einem Bus zum gemeinsamen Übertragen der Ausgangssignale der einzelnen Funktionsblöcke (Neuronen), wobei die Datenübertragen zwischen den Funktionsblöcken (Neuronen) im Zeitmultiplex über den Datenbus ausgeführt wird. Um einen Konflikt oder Wettbewerb der Ausgangssignale zu verhindern, werden den einzelnen Blöcken (Neuronen) jeweils Adressen zugeordnet, so dass nur derjenige Funktionsblock (Neuron), dessen eigene Adresse durch das über einen Adressenbus gelieferte Adressensignal bezeichnet wird, ein Datensignal auf den Datenbus ausgeben kann, wohingegen die anderen Funktionsblöcke (Neuronen) Information auf dem Datenbus als Signal empfangen, das von demjenigen Funktionsblock herrührt, dessen Adresse zu diesem Zeitpunkt bezeichnet ist. Die Adressen werden sequentiell geändert. Auf diese Weise können im Verlauf einer Runde des Adressensignals die Daten von vorgegebenen Funktionsblöcken (Neuronen) an andere vorgegebene Funktionsblöcke (Neuronen) übertragen werden. Durch diese Anordnung kann der Funktionsblock (Neuron) zum Empfangen der Signale den Skalierer (Synapse) und andere Schaltungen gemeinsam für eine große Anzahl von Komplement- oder Mitgliedsblöcken benutzen, wodurch sich der Hardwareumfang für die Schaltung im Wesentlichen proportional zur Anzahl der Funktionsblöcke verhält, wodurch eine Erhöhung der Anzahl der Funktionsblöcke (Neuronen) nicht mehr mit einer schnellen oder plötzlichen Zunahme des Hardwareumfangs einhergeht.
  • Es ist bevorzugt, einen Halbleiterspeicher zum Einspeichern der Gewichtungskoeffizienten nur mit vorbestimmter Anzahl sequentiell in der Reihenfolge ausgehend vom maximalen Absolutwert der Gewichtungskoeffizienten zu speichern. Durch Einspeichern der Gewichtungskoeffizienten in einem Halbleiterspeicher kann der Austausch von Gewichtungskoeffizienten erleichtert werden. Ferner kann durch Einspeichern nur einer vorbestimmten Anzahl von Gewichtungskoeffizienten ausgehend vom größten Wert der Hardwareumfang entsprechend verringert werden. Außerdem ist es durch Einspeichern der Gewichtungskoeffizienten in der Reihenfolge, in der auf sie zugegriffen wird, möglich, vorab den Gewichtungskoeffizient auszulesen, auf den als nächstes zugegriffen werden soll, wodurch die Betriebsgeschwindigkeit erhöht werden kann.
  • Gemäß einer speziellen Realisierung der Erfindung ist der Bus zum wechselseitigen Verbinden der Funktionsblöcke mit hierarchischer Struktur realisiert. Dank dieses Merkmals ist es möglich, zu verhindern, dass die Belastung, der ein Bus unterliegt, dann größer wird, wenn die Anzahl von Neuronen zunimmt, wodurch ein neurales Netzwerk großen Umfangs realisiert werden kann. In diesem Zusammenhang wird darauf hingewiesen, dass dann, wenn das neurale Netzwerk in Form einer WSI (integrierte Schaltung mit Waferumfang) realisiert wird, mit der hierarchischen Strukturierung der Busse ein Problem dahingehend einhergeht, dass das Auftreten von Fehlern wie Unterbrechungen, Kurzschlüssen und dergleichen in einem Bus mit höherem hierarchischem Niveau nachteiligen Einfluss auf einen großen Bereich hat, was die Nutzungsrate senkt. Dieses Problem kann dadurch überwunden werden, dass die Breite der Verdrahtungsleiter für den Bus mit höherem hierarchischem Niveau und auch der Zwischenraum zwischen den Busleitern erhöht werden, um den Fehleranteil zu verringern.
  • Durch Pipelinebetrieb bei der Signalübertragung über den Bus wird es möglich, Signale von mehreren Neuronen innerhalb einer Zeit, in der ein Signal von einem Neuron an andere Neuronen gesendet wird, an die anderen Neuronen zu senden, wodurch die Betriebsgeschwindigkeit erhöht werden kann.
  • Bei einer bevorzugten Ausführungsform der Erfindung sind Teile der Busse positionsmäßig zur Verbindung mit benachbarten Blöcken versetzt. Durch diese Anordnung können in einem Array angeordnete integrierte Schaltungen mit genau derselben Konfiguration mit Signalen versorgt werden, die von einer integrierten Schaltung zur nächsten verschieden sind. Anders gesagt, ist es möglich, eine WSI (integrierte Schaltung mit Waferumfang) dadurch zu realisieren, dass unter Verwendung derselben Maske hergestellte Funktionsblöcke (Neuronen) angeordnet werden.
  • Bei einer verbesserten Ausführungsform der Erfindung ist eine Lernschaltung gesondert von den einzelnen Neuronen (Funktionsblöcken) gemeinsam für diese vorhanden und mit einer Struktur realisiert, durch die Fehler beseitigt werden können.
  • Bei einer anderen bevorzugten Ausführungsform der Erfindung erfolgt die Datenübertragung zwischen Neuronen unter Verwendung eines Analogsignals, wobei die Ermittlung von Produkten und Summen derselben (Multiplikations- und Additionsoperation) durch analoge Berechnung ausgeführt wird oder alternativ die Multiplikation durch eine analoge Berechnung ausgeführt wird, wobei die Addition durch digitale Berechnung ausgeführt wird. Durch diese Anordnung kann die Neuronenschaltung mit einer kleineren Anzahl von Bestandteilen realisiert werden. Wegen der Datenübertragung zwischen Neuronen mittels eines digitalen Signals tritt kein Problem dahingehend auf, dass das Signal durch den Widerstand der Verdrahtungsleiter eine Schwächung erfährt, wie im Fall der Datenübertragung eines analogen Signals, und zwar selbst dann, wenn in einem neuralen Netzwerk großen Umfangs ein großer Abstand zwischen den einzelnen Neuronen (Funktionsblöcken) liegt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein schematisches Schaltbild, das den Aufbau eines bekannten Informationsverarbeitungssystems zeigt;
  • Fig. 2 ist ein schematisches Blockdiagramm, das die allgemeine Anordnung eines Informationsverarbeitungssystems (Vorrichtung) gemäß einer beispielhaften Ausführungsform der Erfindung zeigt;
  • Fig. 3 ist ein Blockdiagramm, das den Aufbau eines Funktionsblocks (100), der aus einer Funktionsschaltung, einer Skalierschaltung und einer Zeitmultiplex-Steuerschaltung besteht, im Einzelnen zeigt;
  • Fig. 4A und 4B sind Diagramme, die jeweils Schaltkonfigurationen von Adressendecodierern zeigen, wie sie im in Fig. 2 dargestellten System verwendbar sind;
  • Fig. 5 ist ein zeitbezogenes Diagramm zum Veranschaulichen des Betriebs einer beispielhaften Ausführungsform der Erfindung;
  • Fig. 6A und 6B sind Diagramme, die jeweils Beispiele einer Funktionstransformationsschaltung zeigen, wie sie erforderlich ist, wenn eine erfindungsgemäße Informationsverarbeitungsvorrichtung als neurales Netzwerk zu verwenden ist;
  • Fig. 7 ist ein Diagramm, das ein neurales Netzwerk zeigt, das durch Anwenden des Informationsverarbeitungssystems gemäß einem Ausführungsbeispiel der Erfindung realisiert ist;
  • Fig. 8 ist ein zeitbezogenes Diagramm zum Veranschaulichen des Betriebs des in Fig. 7 dargestellten neuralen Netzwerks;
  • Fig. 9 ist ein schematisches Schaltbild, das einen verbesserten Teil des in Fig. 2 oder Fig. 7 dargestellten Informationsverarbeitungssystems gemäß einem anderen Ausführungsbeispiel der Erfindung zeigt, bei dem Busse mit hierarchischer Struktur realisiert sind;
  • Fig. 10 ist ein schematisches Schaltbild zum Veranschaulichen eines Verfahrens zum wechselseitigen Verbinden von Bussen mit hierarchischer Struktur gemäß einem Ausführungsbei spiel der Erfindung;
  • Fig. 11 zeigt ein neurales Netzwerk mit verbesserter Struktur gemäß einem anderen Ausführungsbeispiel der Erfindung, das so ausgebildet ist, dass die Verarbeitungszeit verkürzt ist;
  • Fig. 12 ist ein schematisches Diagramm, das einen verbesserten Aufbau des neuralen Netzwerks mit hierarchischer Struktur gemäß noch einem anderen Ausführungsbeispiel der Erfindung zeigt;
  • Fig. 13 ist eine schematische Ansicht, die ein erfindungsgemäßes Informationsverarbeitungssystem zeigt, das in Form einer WSI (integrierte Schaltung von Wafergröße) realisiert ist;
  • Fig. 14 ist ein zeitbezogenes Diagramm zum Veranschaulichen der Funktion desselben;
  • Fig. 15 ist ein Schaltbild, das einen Teil des in Fig. 13 dargestellten Ausführungsbeispiel im Einzelnen zeigt;
  • Fig. 16 ist eine Ansicht, die den Aufbau eines Informationsverarbeitungssystems gemäß noch einem anderen Ausführungsbeispiel der Erfindung zeigt, das in Form einer WSI integriert ist;
  • Fig. 17 zeigt einen Adressensignal-Übersetzungsblock im in Fig. 16 dargestellten System;
  • Fig. 18A und 18B zeigen Funktionsblöcke im in Fig. 16 dargestellten System;
  • Fig. 19 ist eine Ansicht, die zum Veranschaulichen der Funk tion des in Fig. 16 dargestellten Systems;
  • Fig. 20 zeigt ein anderes Beispiel für den Aufbau eines Funktionsblocks;
  • Fig. 21 zeigt den Aufbau einer Gewichtungskoeffizient-Speicherschaltung (101), die im in den Fig. 3 und 7 dargestellten Funktionsblock oder Neuron (100) enthalten ist;
  • Fig. 22 ist ein Blockdiagramm, das den Aufbau des in den Fig. 3 und 7 dargestellten Funktionsblocks oder Neurons (100) detaillierter zeigt;
  • Fig. 23 zeigt einen verbesserten Aufbau des Informationsverarbeitungssystems mit Multiplexbusstruktur gemäß einem weiteren Ausführungsbeispiel der Erfindung als schematisches Schaltbild;
  • Fig. 24A ist ein schematisches Schaltbild, das beispielhaft den Aufbau des Funktionsblocks oder Neurons zeigt, das für die Multiplexbusstruktur gemäß einem weiteren Ausführungsbeispiel der Erfindung geeignet ist;
  • Fig. 24B ist ein schematisches Schaltbild eines in Fig. 24A dargestellten Adressendecodierers;
  • Fig. 25 ist ein schematisches Diagramm zum Veranschaulichen eines Lernalgorithmus auf Grundlage eines Verfahrens mit Fortschreiten in Rückwärtsrichtung;
  • Fig. 26 ist ein schematisches Diagramm zum Veranschaulichen des Konzepts, wie es einer gesondert vorhandenen Lernschaltung im Informationsverarbeitungssystem gemäß einem anderen Ausführungsbeispiel der Erfindung zugrundeliegt;
  • Fig. 27 ist ein Diagramm zum detaillierteren Veranschaulichen eines beispielhaften Aufbaus des in Fig. 26 dargestellten Lernschaltungssystems;
  • Fig. 28 ist ein Schaltbild zum Veranschaulichen von Einzelheiten des in Fig. 27 dargestellten Neurons (100);
  • Fig. 29 ist ein Schaltbild zum Veranschaulichen von Einzelheiten des in Fig. 27 dargestellten Lernschaltungssystems (999);
  • Fig. 30 ist ein Diagramm, das einen beispielhaften Aufbau zum Beseitigen eines Fehlers in der Lernschaltung zeigt;
  • Fig. 31 bis 34 sind schematische Diagramme, die andere verbesserte beispielhafte Ausführungsformen zum jeweiligen Beseitigen eines Fehlers zeigen;
  • Fig. 35 ist ein schematisches Diagramm, das noch ein anderes Ausführungsbeispiel der Erfindung zeigt, bei dem mehrere Wafer aufgestapelt sind;
  • Fig. 36A ist ein schematisches Diagramm, das eine beispielhafte Ausführungsform eines neuralen Netzwerks zeigt, bei dem die Datenübertragung zwischen Neuronen dadurch ausgeführt wird, dass ein digitales Signal genutzt wird, während eine Produkt-Summen-Berechnung zwischen Neuronen unter Verwendung analoger Signale ausgeführt wird;
  • Fig. 36B ist ein Schaltbild, das eine Modifizierung des in Fig. 36A dargestellten Ausführungsbeispiels zeigt;
  • Fig. 37A ist eine Ansicht zum Veranschaulichen des Konzepts einer Schaltung für nichtlineare Übersetzung oder Umwandlung;
  • Fig. 37B zeigt eine Speicherkarte zum beispielhaften Veranschaulichen des Aufbaus derselben;
  • Fig. 38 ist ein schematisches Schaltbild, das beispielhaft die Schaltungskonfiguration eines digitalen PWM-Umsetzers zeigt;
  • Fig. 39 ist ein schematisches Schaltbild, das ein neurales Netzwerk gemäß einer anderen beispielhaften Ausführungsform der Erfindung zeigt;
  • Fig. 40A ist ein Schaltbild, das die Konfiguration einer Halbvoraufladeschaltung zeigt;
  • Fig. 40B ist ein zeitbezogenes Diagramm zum Veranschaulichen der Funktion der Halbvoraufladeschaltung; und
  • Fig. 41, 42, 43, 44, 45 und 46 sind Ansichten zum Veranschaulichen jeweiliger anderer beispielhafter Ausführungsformen der Erfindung.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • Fig. 2 ist ein schematisches Blockdiagramm, das die allgemeine Anordnung eines Informationsverarbeitungssystems gemäß einer beispielhaften Ausführungsform der Erfindung zeigt. In dieser Figur bezeichnet die Bezugszahl 10 eine Funktionseinheit, die Zahl 11 eine Skalierschaltung, die Zahl 12 eine Zeitmultiplex-Steuerschaltung, die Zahl 300 einen Daten-Eingabe/Ausgabe-Bus, die Zahl 302 einen Adressenbus, die Zahl 303 einen Taktbus, und die Bezugszahl 120 bezeichnet eine Zeitsteuersignal-Erzeugungsschaltung. Fig. 3 ist ein Blockdiagramm, das den Aufbau eines Funktionsblocks (auch als Neuron bezeichnet) 100 detaillierter zeigt, der aus der Funktionsschaltung 10, der Skalierschaltung 11 und der Zeitmultiplex-Steuerschaltung 12 besteht. Wie es aus Fig. 3 erkennbar ist, besteht die Funktionsschaltung 10 aus einem Addierer 103, einer Latchstufe 104 und 105 sowie einer Pufferschaltung 106 mit Ausgangssignalen von drei Zuständen. Die Skalierschaltung 11 besteht aus einem Multiplizierer 102. Die Zeitmultiplex-Steuerschaltung 12 besteht aus Adressendecodierern 107 und 107' sowie einer Speicherschaltung 101.
  • Der Adressedecodierer 107' dient dazu, zu erkennen, dass das über den Adressenbus 302 gelieferte Adressensignal einen Umlauf vollzogen hat, während der Adressendecodierer 107 dazu dient, eine Entscheidung dahingehend zu treffen, ob das Adressensignal für den betrachteten Funktionsblock bestimmt ist oder nicht. Genauer gesagt, werden, wenn angenommen wird, dass die Anzahl der Funktionsblöcke durch N repräsentiert ist, beispielsweise die Adressen "1", "2", "3", ..., "N" Blöcken 100 zugeordnet, die jeweils aus der Funktionsschaltung 10, der Skalierschaltung 11 und der Zeitmultiplexschaltung 12 bestehen, wobei die Adressensignale in der Abfolge "0", "1", "2", "3", ..., "N", "0", "1", "2", "3" usw. wiederholt werden, wobei die Adresse "0" keinem der Funktionsblöcke zugeordnet wird, sondern dazu verwendet wird, zu erkennen, dass die oben aufgelisteten Adressensignale einen Umlauf vollzogen haben. Wenn das Adressensignal "0" ist, wird ein Ausgangssignal erzeugt, das anzeigt, dass die Adressendecodierer 107' in allen Zeitmultiplex-Steuerschaltungen 12 ausgewählt sind. Wenn das Adressensignal einen anderen Wert als "0" einnimmt, wird ein Signal ausgegeben, das anzeigt, dass nur derjenige Adressendecodierer 107 ausgewählt ist, der sich in derjenigen Zeitmultiplex-Steuerschaltung befindet, der diese eine Adresse zugeordnet ist, wobei die paarig mit dem Adressendecodierer 107 vorhandene und in der Funktionsschaltung eingebaute Pufferschaltung 106 aktiviert wird, um ein Signal auf den Datenbus auszugeben. Die Ausgangssignale der Pufferschaltungen 106 der anderen Funktionsblöcke verbleiben im Zustand mit hohem Widerstand.
  • Die Speicherschaltung 101 dient zum Einspeichern von Koeffizienten (Gewichtungskoeffizienten) für Kopplung zwischen dem mit der Speicherschaltung 101 gepaarten Funktionsblock und anderen Funktionsblöcken, und sie gibt den Kopplungskoeffizient (Gewichtungskoeffizient) aus, wenn das Ausgangssignal eines Funktionsblocks, wie er zu einem vorgegebenen Zeitpunkt durch das Adressensignal bezeichnet wird, in den mit der Speicherschaltung gepaarten Funktionsblock eingegeben wird. Zu diesem Zeitpunkt ist das Ausgangssignal des durch das Adressensignal bezeichneten Funktionsblocks auf dem Datenbus 300 vorhanden. Demgemäß gibt der Multiplizierer 102 das Produkt aus dem Signal vom oben genannten Funktionsblock und dem Kopplungskoeffizient (Gewichtungskoeffizient) aus, wobei das Produktsignal auf den Addierer 103 gegeben wird. Wenn zu diesem Zeitpunkt das Taktsignal über den Taktbus 303 geliefert wird, wird das in der Latchstufe 104 bis zu diesem Zeitpunkt angesammelte Additionsergebnis zum Ausgangssignal des Multiplizierers 102 addiert, wobei die so erhaltene Summe dann als aktualisierter Summationswert in die Latchstufe 104 eingespeichert wird. Demgemäß wird, wenn das Adressensignal einen Umlauf vollzogen hat, die Summe der Ausgangssignale aller Funktionsblöcke, die jeweils mit den Kopplungskoeffizienten gewichtet sind, am Ausgang der Latchstufe 104 erhalten. Das Ausgangssignal der Latchstufe 104 zu diesem Zeitpunkt wird dann in die Latchstufe 105 eingespeichert, um in dieser als interner Wert des zugeordneten Funktionsblocks während einer Periode aufrechterhalten zu werden, bis das Adressensignal einen folgenden Umlauf ausführt. Übrigens sei darauf hingewiesen, dass durch Zurücksetzen des Inhalts der Latchstufe 104 jedesmal dann, wenn die Adressen einen Umlauf vollzogen haben, der betrachtete Funktionsblock sozusagen als Addierer eines Analogcomputers arbeitet, wäh rend er, wenn nicht rückgesetzt wird, er durch Aufsummieren der Inhalte der Latchstufe 104 als Integrierer arbeitet. Die Fig. 4A und 48 zeigen nur beispielhaft Schaltungskonfigurationen jeweiliger Adressendecodierer. Genauer gesagt, wird die in Fig. 4A dargestellte Schaltung als oben genannter Adressendecodierer 107' verwendet, dessen Ausgangssignal nur dann hohen Pegel einnimmt, wenn alle Eingangssignale "0" sind, d. h., wenn das Adressensignal die Adresse "0" anzeigt, während es andernfalls niedrigen Pegel einnimmt. Andererseits wird die in Fig. 4B dargestellte Schaltung als Adressendecodierer 107 verwendet, dessen Ausgangssignal nur dann hohen Pegel einnimmt, wenn das Adressensignal seine eigene Adresse anzeigt (d. h. die diesem Decodierer 107 zugeordnete Adresse), während es andernfalls niedrigen Pegel einnimmt. Die betreffende Adresse kann dadurch auf beliebige Weise erstellt werden, dass an mindestens einer vorgegebener Bitposition des Adressensignals jeweils ein invertiertes Bit angeordnet wird.
  • Im Fall des Informationsverarbeitungssystems gemäß dem veranschaulichten Ausführungsbeispiel der Erfindung kann die Anzahl (N - 1) der Skalierschaltungen, die bisher in jeden der Funktionsblöcke mit einer Anzahl eingebaut werden mussten, die derjenigen der anderen Funktionsblöcke im bekannten System entsprach, auf eine Schaltung pro Funktionsblock verringert werden. Außerdem kann, gemäß dem veranschaulichten Ausführungsbeispiel, die Anzahl der Adressen, die bisher mit der Anzahl (N - 1), entsprechend derjenigen der anderen Funktionsblöcke, in jeden der Funktionsblöcke einzubauen war, für jeden der Funktionsblöcke bis auf eins herabgesetzt werden. Im Ergebnis kann der durch eine Anzahl vom Impulsen wiedergegebene Zahlenwert in Form eines Impulscodes ausgedrückt werden. Dies bedeutet wiederum, dass mit großem Vorteil eine Erhöhung der Verarbeitungszeit, wie sie bisher zu einem Problem bei Verarbeitung im Zeitmultiplex führte, auf gehoben werden kann.
  • Als nächstes erfolgt eine genaue Beschreibung für die Anwendung des oben klargestellten Systems auf einen Analogcomputer. In diesem Zusammenhang sei beispielsweise angenommen, dass die folgenden gleichzeitigen Differentialgleichungen zu lösen sind:
  • (d/dt)X = aX + bY (1)
  • (d/dt)Y = cX + dY (2)
  • In diesem Fall werden zwei Funktionsblöcke 100 verwendet, von denen jeder aus der Funktionsschaltung 10, der Skalierschaltung 11 und der Zeitmultiplexschaltung 12 besteht, wobei einem der Funktionsblöcke 100 die Adresse "1" zugeordnet wird, während dem anderen die Adresse "2" zugeordnet wird. Da beide Funktionsblöcke 100 jeweils als Integrierer betrieben werden, wird die Latchstufe 104 in diesen Funktionsblöcken 100a im Berechnungsverlauf nicht rückgesetzt. Ferner wird festgelegt, dass das Ausgangssignal des Funktionsblocks, dem die Adresse "1" zugeordnet ist, X ist, während festgelegt ist, dass dasjenige des Funktionsblocks mit der Adresse "2" Y ist. Unter diesen Bedingungen sind die Eingangssignale in die Funktionsblöcke oder Integrierer durch die Differentiale der jeweiligen Ausgangssignale repräsentiert. Demgemäß gelten die folgenden Ausdrücke:
  • (d/dt)X, (d/dt)Y
  • Demgemäß kann die Anordnung dergestalt sein, dass das Signal, das über die Skalierschaltung 11 auf die Funktionsschaltung 10 gegeben wird, durch die rechte Seite des oben genannten Ausdrucks (1) oder (2) gegeben ist. Genauer gesagt, erhält, wenn der Takt oder die Rate (Schritt) der Zeit für die Integrationsberechnung durch τ repräsentiert ist, die Speicherschaltung 101, der die Adresse "1" zugeordnet ist, an der Adresse null den Wert "0", an der ersten Adresse den Wert τa und an der zweiten Adresse den Wert τb, während die Speicherschaltung, der die Adresse "2" zugeordnet ist, an der Adresse null den Wert "0" erhält, τc an der ersten Adresse und τd an der zweiten Adresse. Anschließend werden die Latchstufen 104 mit den Anfangswerten von X bzw. Y versehen. Nun ist die Vorbereitung für die Integration abgeschlossen. Die Operation zur Berechnung wird dadurch ausgeführt, dass durch die Zeitsteuersignal-Erzeugungsschaltung 102 die Adressensignale erzeugt werden, die sich mit jedem Rahmen auf dem Adressenbus 302 und dem Taktsignal, das einen Impuls pro Rahmen auf dem Taktbus 303 enthält, als "0", "1", "2", "0", "1", "2", "0", "1" usw. wiederholt werden. Unter diesen Bedingungen hat das Adressensignal im ersten Rahmen den Wert "0". Demgemäß haben die Ausgangssignale der beiden Speicherschaltungen 101, von denen eine in Fig. 3 dargestellt ist, den Wert "0". Demgemäß haben auch die Ausgangssignale der beiden Multiplizierer 102 den Wert "0". Das Ausgangssignal des Addierers 103 entspricht dem Ausgangssignal der zugehörigen Latchstufe 104, d. h. dem Anfangswert von X oder Y. Zu diesem Zeitpunkt ändert ein Anlegen des Taktsignals an die Latchstufe 104 den Zustand der Latchstufe 104, in der der Anfangswert von X oder Y aufrechterhalten ist, nicht, d. h., dass der Anfangswert von X oder Y unverändert verbleibt. Andererseits erfasst die Latchstufe 105 das Ausgangssignal der Latchstufe 104, d. h. den Anfangswert von X oder Y, auf das im momentanen Rahmen enthaltene Taktsignal hin. Anschließend wird das Adressensignal im zweiten Rahmen "1", was dazu führt, dass die Pufferschaltung 106 des Funktionsblocks, dem die Blockadresse "1" zugeordnet ist, aktiviert wird, während der Inhalt der Latchschaltung 105 mit der Blockadresse "1", d. h. der Anfangswert von X auf den Datenbus ausgegeben wird. Ferner gibt, da das Adressensignal "1" ist, die Speicherschaltung 101 aus der Blockadresse "1" den Wert "τa" aus, und die Speicherschaltung 101 gibt an der Blockadresse "2" den Wert "τc" aus. Demgemäß sind die Ausgangssignale der Multiplizierer 102 "τaX" bzw. "τcX". Demgemäß sind die Ausgangssignale der Addierer 103 "X + τaX" bzw. "Y + τcX", die dann auf das Taktsignal innerhalb des momentanen Rahmens durch die Latchstufen 104 erfasst werden. Da an die Latchstufen 105 kein Taktsignal gegeben wird, verbleiben sie im Zustand, in dem die ursprünglichen Werte X und Y unverändert aufrechterhalten werden. Als nächstes wird, im dritten Rahmen, das Adressensignal "2", und der Anfangswert Y wird auf den Datenbus ausgegeben, was zur Folge hat, dass die Speicherschaltungen 101 die Werte "τb" bzw. "τd" ausgeben. Demgemäß addiert der Addierer 301 "τbY" oder "τdY" zum Ausgangssignal der zugehörigen Latchstufe 104, um dadurch "X + τ (aX + bY)" oder "Y + τ (cX + dY)" auszugeben. Wie es aus den Ausdrücken (1) und (2) ersichtlich ist, repräsentiert der obige Wert den Wert von X oder Y nach dem Verstreichen der winzigen Zeit τ ausgehend vom Anfangszustand. Innerhalb des momentanen Rahmens (dritter Rahmen) werden diese Werte durch die Latchstufen 104 erfasst, um anschließend, innerhalb des vierten Rahmens, als aktualisierte Werte von X bzw. Y durch die Latchstufen 105 erfasst zu werden. Danach wird eine ähnliche Berechnung wiederholt. Auf diese Weise können die gleichzeitigen Differentialgleichungen (1) und (2) mit dem Takt der Zeit τ gelöst werden. Durch Verkleinern des Zeittakts oder der Dauer τ nimmt natürlich die Berechnungszeit zu. Jedoch kann die Genauigkeit der Berechnung entsprechend verbessert werden. Ferner wird, wenn es hinsichtlich des Addierers erforderlich ist, der in diesem Sinn in Verbindung mit dem Analogcomputer verwendet wird, ein neuer Wert in die Latchstufe 105 eingeschrieben, wobei der Wert in der Latchstufe 104 innerhalb des Rahmens auf null rückgesetzt wird, für den das Adressensignal "0" ist. Dann kann der Funktionsblock 10 als Addierer betrieben werden. So ist es ersichtlich, dass ein und dieselbe Schal tung als Integrierer oder alternativ dadurch als Addierer verwendet werden kann, dass die Erzeugung des oben genannten Rücksetzsignals entsprechend gesteuert wird. Außerdem können auch selbstverständlich der Multiplizierer 102 und der Addierer 103 so betrieben werden, dass sie negative Zahlen durch entsprechende Komplementärzahlen handhaben können. Ferner sei hinzugefügt, dass die Latchstufe 105 nicht notwendigerweise erforderlich ist, wenn der Zeittakt T für die Integration ausreichend klein gewählt wird.
  • Die Schaltungen des oben beschriebenen Analogcomputers selbst sind durch digitale Schaltungen realisiert. Demgemäß muss, obwohl eine Instabilität wie Drift oder Effekte, wie sie Analogschaltungen inne wohnen, vermieden werden können, der Instabilität Berücksichtigung geschenkt werden, die dem Prinzip eines Analogcomputers zuzuschreiben ist, wie Rückkopplung und anderen Effekten. Bei bisher bekannten Analogcomputern sind die Schaltungen selbst als Analogschaltungen realisiert. Aus diesem Grund nehmen die Kosten eines Analogcomputers abrupt zu, wenn eine Genauigkeit dritter oder höherer Größenordnung zu realisieren ist. Tatsächlich war es unrealistisch oder unpraktisch, eine Genauigkeit in dritter oder höherer Größenordnung zu realisieren. Jedoch kann im Fall des veranschaulichten Ausführungsbeispiels der Erfindung die Genauigkeit leicht dadurch erhöht werden, dass lediglich die Bitanzahl erhöht wird, da die Schaltungen selbst digitale Schaltungen sind. Außerdem ist die Integration der Schaltungen aufgrund der digitalen Art erleichtert. Bisher wurde die Verdrahtung von Funktionsblöcken miteinander dadurch von Hand ausgeführt, dass Steckverbinder oder dergleichen benutzt wurden, und zwar wegen Schwierigkeiten, wie sie bei der Integration von Verbinderteilen auftraten. Unter diesen Umständen kann die Anzahl der miteinander verbindbaren Funktionsblöcke höchstens einhundert nicht überschreiten. Demgegenüber kann beim vorliegenden Ausführungsbeispiel der Erfindung die Verdrahtung von Funktionsblöcken miteinander dadurch erfolgen, dass lediglich Verdrahtungsinformation in die Speicherschaltungen 104 eingeschrieben wird, die leicht integriert werden können. Außerdem kann die Verdrahtungsinformation in einem Speichermedium wie einer Magnetplatte oder dergleichen gesichert werden. Selbstverständlich kann die Verdrahtungsinformation auch automatisch erzeugt werden, um automatisch in die Einzelspeicher oder Speicheranordnung eingeschrieben zu werden. Ferner sei hinzugefügt, dass im Fall eines Computers gemäß dem vorliegenden Ausführungsbeispiel mehrere Funktionsblöcke gleichzeitig arbeiten, was hinsichtlich der Zeit von Vorteil ist, die mit der Berechnung einhergeht, um gleichzeitige Gleichungen zu lösen, die eine große Anzahl von Variablen enthalten.
  • Als nächstes wird die Beschreibung auf die Verwendung des Systems als sogenanntes neurales Netz gerichtet. In diesem Fall entspricht der in Fig. 3 dargestellte Funktionsblock 100 sozusagen einer einzelnen, als Neuron bezeichneten Einheit, während die Skalierschaltung 11 einer Synapse zum Empfangen von Signalen von den anderen Neuronen entspricht, wobei die Kombination aus dem Addierer 103 und der Latchstufe 104 einem sogenannten Dendron (des Zellenkörpers) entspricht. Die Gewichtung der einzelnen Synapsen wird dadurch realisiert, dass die Gewichtungskoeffizienten in die Speicherschaltungen 101 eingespeichert werden. Ein negativer Gewichtungskoeffizient sorgt für einen Unterdrückungseffekt, während ein positiver Gewichtungskoeffizient für einen Anregungseffekt sorgt. Wenn der Absolutwert des Koeffizients zunimmt, wird die Gewichtung deutlicher. So ist durch Umschreiben des Inhalts der Speicher 101 eine Funktion ermöglicht, die als Lernen bezeichnet wird, was später beschrieben wird. Im Fall eines Analogcomputers wird der durch das Ausgangssignal der Latchstufe 104 repräsentierte Zahlenwert unverändert (oder unter Verwerfen der weniger signifikanten Bits) als Ausgangswert des zugehörigen Funktionsblocks verwendet. Jedoch wird im Fall eines neuralen Netzes der Ausgangswertes des Neurons 100 als Ergebnis der numerischen Transformation des Ausgangssignals der Latchstufe gemäß der wie folgt ausgedrückten Sigmoidfunktion angesehen:
  • F(X) = 1/(1 + e-kX) (3)
  • oder dies gilt entsprechend einer Funktion, die wie folgt die Sigmoidfunktion durch Polygonlinien annähert:
  • Die Schaltung zum Ausführen der numerischen Transformation ist zwischen den Latchstufen 104 und 105 oder zwischen der Latchstufe 105 und der Pufferschaltung 106 vorhanden. Alternativ kann die numerische Transformation durch eine (nicht dargestellte) Steuervorrichtung zum Steuern des gesamten Systems realisiert werden. Die Schaltung für die numerische Transformation gemäß der durch den Ausdruck (4) gegebenen Polygonfunktion kann beispielsweise durch eine Schaltungskonfiguration realisiert sein, wie sie in Fig. 6A dargestellt ist. In dieser Figur bezeichnet die Bezugszahl 610 einen Eingangsanschluss, und 611 bezeichnet einen Ausgangsanschluss. Auf jeweils einen Eingang von Komparatoren 601 und 602, eines Multiplizierers 603, Selektoren 604 und 605 sowie eines Addierers 603 werden Signale gegeben, die die Zahlenwerte in "a", "-a", "1/2a", "1", "0" bzw. "1/2" repräsentieren. Wenn der Zahlenwert, wie er durch das auf den Eingangssignal 610 gegebene Eingangssignal repräsentiert ist, größer als "a" ist, steuert der Komparator 601 den Selektor 604 so an, dass das "1" repräsentierende Signal am Ausgangsanschluss 611 ausgegeben wird. Wenn der durch das Eingangssignal repräsentierte Zahlenwert nicht größer als "-a" ist, steuert der Komparator 602 den Selektor 605 so, dass ein den Zahlenwert "0" repräsentierendes Signal am Ausgangsanschluss 611 ausgegeben wird. Wenn der durch das Eingangssignal repräsentierte Zahlenwert zwischen "a" und "-a" liegt, wird das Signal, das durch den Multiplizierer 603 und den Addierer 606 gelaufen ist, am Ausgangsanschluss 611 ausgegeben. Auf diese Weise kann eine numerische Transformation gemäß der durch den Ausdruck (4) gegebenen Funktion unter Verwendung der in Fig. 6A dargestellten Schaltung realisiert werden. Die numerische Transformation gemäß der durch den Ausdruck (3) gegebenen Sigmoidfunktion oder gemäß anderen komplizierten Funktionen kann leicht unter Verwendung einer Speicherschaltung 603 realisiert werden, wie schematisch in Fig. 6B dargestellt. In diesem Fall werden für die Eingangswerte vorab jeweilige Ausgangswerte berechnet und in der Speicherschaltung 608 an durch die Eingangssignale bezeichneten Adressen abgespeichert, wobei die in der Speicherschaltung 608 abgespeicherten Daten durch Adressieren des Speichers mit den Eingangssignalen 610 als zu verwendende Ausgangswerte 611 ausgelesen werden. Durch diese Anordnung kann eine numerische Transformation unabhängig davon realisiert werden, wie kompliziert die Funktionen sind, auf die man sich stützen will.
  • Nun erfolgt unter Bezugnahme auf Fig. 7 eine detaillierte Beschreibung eines neuralen Netzwerks, das gemäß einem Ausführungsbeispiel der Erfindung realisiert ist. In dieser Figur ist ein Neuron allgemein durch die Bezugszahl 100 gekennzeichnet. Zum Vereinfachen der Beschreibung sind in Fig. 7 nur vier miteinander verbundene Neuronen dargestellt. Wie es oben in Verbindung mit Fig. 3 beschrieben ist, umfasst jedes der Neuronen einen Speicher 101 zum Einspeichern des Gewichtungskoeffizients, einen Multiplizierer 102 zum Multiplizieren seines Eingangssignals mit dem Gewichtungskoeffizient, einen Addierer 103 sowie eine Latchstufe 104 zum Bestimmen der Gesamtsumme der durch den Multiplizierer 102 erzeugten Produkte, eine Latchstufe 105 zum Speichern der vorstehenden genannten Summe, eine Pufferschaltung 106 mit Ausgangssignalen von drei Zuständen sowie einen Decodierer 107 zum Entscheiden, ob das zugehörige Neuron 100 ausgewählt ist oder nicht. Jedes der Neuronen 100 ist über einen Bus mit einer Steuervorrichtung 200 verbunden. Im Fall des vorliegenden Ausführungsbeispiels sind der in Fig. 2 dargestellte Zeitsteuersignal-Generator 120 und die in Fig. 6A oder 6B dargestellte Funktionstransformationsschaltung in der Steuervorrichtung oder Steuerung 200 enthalten. Ferner bezeichnen die Bezugszahlen 301, 302, 303 und 304 Busse zum Liefern des Eingangssignals, des Adressensignals, des Taktsignals und des Zyklussignals an jedes Neuron 100 ausgehend von der Steuerung 200. Die Zahl 305 bezeichnet einen Bus zum Liefern des Ausgangssignals von jedem der Neuronen 100 an die Steuerung 200. Obwohl in Fig. 7 dargestellt ist, dass der oben angegebene Datenbus 300 in den Eingangsbus 301 für das Eingangssignal und den Ausgangsbus 305 für das Ausgangssignal aufgeteilt ist, ist zu beachten, dass der oben in Verbindung mit den Fig. 2 und 3 beschriebene gemeinsame Datenbus 300 anstelle derselben verwendet werden kann. Ferner kann das Zyklussignal 304 auf Grundlage des Taktsignals 303 und des Adressensignals 302 innerhalb jedes Funktionsblocks (Neurons) 100 erzeugt werden, wie im Fall der in den Fig. 2 und 3 veranschaulichten Ausführungsbeispiele. Gemäß dem vorliegenden Ausführungsbeispiel ist die Latchstufe 104 so realisiert, dass sie die Daten auf die Flanke des über den Taktbus 303 gelieferten Taktsignals erfasst. Jedem der Neuronen 100 ist eine ihm eigene Adresse zugeordnet (die auch als Neuronenadresse oder Blockadresse bezeichnet wird). Beim Auftreten von Übereinstimmung zwischen der Neuronenadresse und dem von der Steuervorrichtung 200 gelieferten Adressensignal gibt der Decodierer 107 ein Signal aus, das die Adressenübereinstimmung anzeigt.
  • Als nächstes wird unter Bezugnahme auf das in Fig. 8 dargestellte zeitbezogene Diagramm die Beschreibung auf die Funktion des in Fig. 7 dargestellten neuralen Netzwerks gerichtet. Gemäß Fig. 8 sendet die Steuerung 200 das Adressensignal aus, das wiederholt eine Abfolge der Adressen der einzelnen Neuronen realisiert. Sie sendet die Taktsignale, die es ermöglichen, dass die Latchstufen 104 die Daten jedesmal dann erfassen, wenn die relevanten Adressen bezeichnet werden, und sie sendet das Zyklussignal, das die Latchstufe 105 dazu veranlasst, die Daten jedesmal dann zu erfassen, wenn die Abfolge der Adressen einen Umlauf vollzogen hat. Das Adressensignal, das von der Steuervorrichtung 200 über den Adressenbus 302 gleichzeitig an die einzelnen Neuronen 100 gesendet wird, wird an die Decodierschaltungen 107 gegeben, wobei nur die Pufferschaltung 106 des durch das Adressensignal bezeichneten Neutrons das Signal auf den Ausgangsbus 305 ausgibt. Die Pufferschaltungen 106 der anderen Neuronen verbleiben im Zustand mit hohem Widerstand (Impedanz). Auf diese Weise wird der Inhalt der Latchstufe 105 des durch das Adressensignal bezeichneten Neutrons 100 an die Steuervorrichtung 200 gesendet. Die Steuervorrichtung 200 sendet das betreffende Signal unverändert oder nach Transformation entsprechend der Sigmoidfunktion oder einer annähernden Polygonfunktion über den Eingangsbus 301 an jedes der Neuronen 100. In jedem der Neuronen 100 wird der Gewichtungskoeffizient für das durch das Adressensignal zu diesem Zeitpunkt bezeichnete komplementäre Neuron aus dem Speicher 101 ausgelesen, wobei das Produkt aus dem Gewichtungskoeffizient und dem von der Steuervorrichtung 200 über den Eingangsbus 301 gelieferten Eingangssignal durch den Multiplizierer 102 bestimmt wird. Anschließend wird durch den Addierer 103 die Summe aus dem vom Multiplizierer 102 ausgegebenen Produkt und dem in der Latchstufe 104 bis zu diesem Zeitpunkt aufsummierten Zahlenwert bestimmt. Das so erzeugte Summensignal wird dann an die Latchstufe 104 gegeben. Die Letztere erfasst auf das Anlegen des über den Taktbus 303 gelieferten Taktsignals den Summendatenwert. So werden während einer Periode, in der die Adressen einen Umlauf vollziehen, die Gesamtsumme der Signale von allen Neuronen sowie der Gewichtungskoeffizient in der Latchstufe 104 bestimmt. Beim Anlegen des Zyklussignals vom Bus 304 wird die Gesamtsumme durch die Latchstufe 105 erfasst, die den aktualisierten Ausgangswert des zugehörigen Neurons 100 repräsentiert. Auf diese Weise arbeitet das in Fig. 7 dargestellte System als neurales Netzwerk.
  • Übrigens ist eine große Anzahl von Funktionsblöcken (Neuronen) erforderlich, wenn eine Gleichung mit vielen unabhängigen Variablen zu lösen ist, oder wenn komplizierte Informationsverarbeitung auszuführen ist. In einem solchen Fall ist eine Verbindung im neuralen Netzwerk, wie in den Fig. 2 und 7 dargestellt, dahingehend von Nachteil, dass der Datenbus 300 (301, 305), der Adressenbus 302 und die Taktbusse 303, 305 übermäßigen Belastungen unterliegen, was es mehr oder weniger erschwert, das System zu steuern. Fig. 9 ist ein schematisches Schaltbild, das einen Teil eines verbesserten Informationsverarbeitungssystems gemäß einem anderen Ausführungsbeispiel zeigt, bei dem Busse in hierarchischer Struktur realisiert sind, um das oben genannte Problem zu umgehen. In dieser Figur ist eine von Funktionsblockgruppen oder Neuronengruppen dargestellt. Durch Verbinden einer großen Anzahl von Schaltungen mit jeweils der in Fig. 9 dargestellten Konfiguration auf solche Weise, wie es nachfolgend unter Bezugnahme auf die Fig. 10 bis 13 beschrieben wird, kann ein neurales Netzwerk großen Umfangs realisiert werden. Es wird nun auf Fig. 9 Bezug genommen, in der die Bezugszahlen 100 jeweils Neuronen repräsentieren, während 301 bis 305 Busse eines ersten hierarchischen Niveaus (des untersten Niveaus) bezeichnen. Dieser Teil kann in ähnlicher Weise wie die in den Fig. 3 und 7 dargestellten Neuronen (Funktionsblöcke) und Busse 301 bis 305 realisiert sein. Jedoch müssen die Bitzahl für den Adressenbus 302 und das Speichervermögen des Speichers 101 zum Speichern der Gewichtungskoeffizienten gegenüber denjenigen Werten erhöht werden, die oben in Verbindung mit den Fig. 3 und 7 angegeben sind, um dazu in der Lage zu sein, ein neurales Netzwerk großen Umfangs zu realisieren. Ferner bezeichnen in Fig. 9 die Bezugszahlen 311, 312, 313, 314 und 315 Busse eines zweiten hierarchischen Niveaus zum Übertragen des Eingangssignals, des Adressensignals, des Taktsignals, des Zyklussignals bzw. der Ausgangssignale. Die Busse 311 bis 314 unter denen des zweiten hierarchischen Niveaus senden die Signale über eine Pufferschaltung 153 jeweils an die Busse 301 bis 304 des ersten hierarchischen Niveaus aus, während der Ausgangsbus 315 des zweiten hierarchischen Niveaus das Signal vom Ausgangsbus 305 des ersten hierarchischen Niveaus über eine Pufferschaltung 156 mit drei Zuständen empfängt. Ein Decodierer 157 dient zum Entscheiden, ob das durch das Adressensignal bezeichnete Neuron (Funktionsblock) 100 in der betrachteten Neuronengruppe (Funktionsblockgruppe) 700 existiert oder nicht. Wenn die Antwort auf diese Entscheidungsfrage bejahend ist, wird der Datenwert auf dem Ausgangsbus 305 des ersten hierarchischen Niveaus auf den Ausgangsbus 315 des zweiten hierarchischen Niveaus ausgegeben. Andererseits wird, wenn die obige Entscheidungsfrage zu einer negativen Antwort führt, der Ausgang des Puffers 156 mit drei Zuständen in den Zustand mit hohem Widerstand versetzt. Durch Bereitstellen einer großen Anzahl von Neuronengruppen (Funktionsblockgruppen) 700 mit jeweils der in Fig. 9 dargestell ten Struktur und durch Verbinden derselben über die Busse 311 bis 315 des zweiten hierarchischen Niveaus miteinander, ist es möglich, eine große Anzahl von Neuronen (Funktionsblöcken) 100 miteinander zu verbinden, ohne die Kapazitäten übermäßig zu erhöhen, die mit den einzelnen Bussen einhergehen.
  • Fig. 10 ist eine schematische Schaltung zum Veranschaulichen eines Verfahrens zum gegenseitigen Verbinden der Busse mit hierarchischer Struktur. In Fig. 10 bezeichnen die Bezugszahlen 701 bis 706 Funktionsblockgruppen (Neuronengruppen), die jeweils mehrere Funktionsblöcke (Neuronen) 100 enthalten. Die Verbindung innerhalb jedes der Funktionsblöcke wie auch die gegenseitige Verbindung derselben sind so bewerkstelligt, wie es in den Fig. 2 und 7 dargestellt ist. In Fig. 10 bezeichnen die Bezugszahlen 300, 302 und 303 einen Datenbus (der einen Eingangsbus 301 und einen Ausgangsbus 305 umfasst), einen Adressenbus bzw. einen Taktbus. Ferner bezeichnen die Bezugszahlen 310, 312 und 313 einen Datenbus auf dem hohen Niveau (Eingangsbus 311 und Ausgangsbus 315), einen Adressenbus hohen Pegels bzw. einen Taktbus hohen Pegels. Obwohl die Beschreibung des nun betrachteten Ausführungsbeispiels auf der Annahme beruht, dass das Zyklussignal 304 innerhalb jedes Funktionsblocks (Neuron) 100 auf Grundlage des Taktsignals (303) und des Adressensignals (302) erzeugt wird, wie im Fall des in Fig. 3 dargestellten Ausführungsbeispiels, ist zu beachten, dass der Zyklussignalbus auch in der in Fig. 9 veranschaulichten hierarchischen Struktur realisiert sein kann. Nun wird auf Fig. 10 Bezug genommen, gemäß der das Adressensignal und das Taktsignal vom Zeitsteuersignal-Generator 120 auf den Adressenbus 312 hohen Pegels bzw. den Taktbus 313 hohen Pegels ausgegeben werden, und sie auch über Treiberschaltungen 722 bzw. 723 auch an den Adressenbus 302 bzw. den Taktbus 303 geliefert werden. (Jede der Treiberschaltungen 722 und 723 entspricht dem in Fig. 9 dargestellten Puffer.) Im Fall des in Fig. 10 dargestellten Systems sind den einzelnen Funktionsblöcken (Neuronen) verschiedene Adressen zugeordnet, so dass ein Funktionsblock (Neuron) durch die ihm zugeordnete Adresse eindeutig bestimmt werden kann. Andererseits wird das Datensignal vermittels bidirektionaler Treiberschaltungen 751 bis 756 (von denen jede dem in Fig. 9 dargestellten Puffer 158 oder 156 entspricht), die durch das Adressensignal gesteuert werden, auf den Datenbus 310 auf dem hohen Niveau gegeben, wobei nur die bidirektionale Treiberschaltung (eine der Schaltungen 751 bis 756), die ein Paar mit derjenigen Funktionsblockgruppe oder Neuronengruppe (eine der Gruppen 701 bis 706) ein Paar bildet, die den durch das Adressensignal bezeichneten Funktionsblock (Neuron) 100 enthält, das Signal auf dem Datenbus 300 auf dem niedrigen Niveau auf den Datenbus 310 auf dem hohen Niveau überträgt, während die andere bidirektionale Treiberschaltung das Signal vom Datenbus 310 auf dem hohen Niveau auf den Datenbus 300 auf dem niedrigen Niveau überträgt. Demgemäß wird auch im Fall des in Fig. 10 dargestellten Ausführungsbeispiels das Ausgangssignal des durch das Adressensignal spezifizierten Funktionsblocks (- Neuron) gleichzeitig an alle Funktionsblöcke (d. h. alle Neuronen) übertragen. Übrigens kann, wenn die Anzahl von Funktionsblöcken (Neuronen) weiter zu erhöhen ist, dies dadurch bewerkstelligt werden, dass eine Funktionsblockgruppe (Neuronengruppe), die der gesamten in Fig. 10 dargestellten Schaltungsstruktur entspricht (mit Ausnahme des Zeitsteuersignal-Generators 120) als Struktur mit einem hierarchisch hohen Niveau zusammen mit einem Datenbus für das höhere Niveau, einem Adressenbus und einem Taktbus bereitgestellt wird. Durch Vertiefen der hierarchischen Struktur auf diese Weise ist es möglich, die Anzahl von Funktionsblöcken (Neuronen) zu erhöhen, während der obere Grenzwert für die Last am Datenbus und anderen unter einem vorbestimmten Wert gehalten wird. Die Steuerung der bidirektionalen Treiberschal tung auf die oben beschriebene Weise kann z. B. dadurch realisiert werden, dass das Adressensignal so bestimmt wird, dass seine signifikanteren Bits die Funktionsblockgruppe (Neuronengruppe) bezeichnen, während die weniger signifikanten Bits die einzelnen Funktionsblöcke (Neuronen) bezeichnen, wobei nur die signifikanteren Bits an den Adressendecodierer, wie den in Fig. 4 dargestellten, gegeben werden, um das Steuersignal zu erhalten.
  • Es wird darauf hingewiesen, dass dann, wenn die Anzahl funktioneller Blöcke oder Neuronen erhöht wird, ein weiteres Problem dahingehend auftritt, dass die Verarbeitungszeit anwächst. Genauer gesagt, geht beim erfindungsgemäßen System die Berechnung jedesmal dann um einen Schritt weiter, wenn das Adressensignal einen Umlauf vollzieht. Selbstverständlich nimmt, wenn die Anzahl von Funktionsblöcken oder Neuronen zunimmt, der obere Grenzwert für das Adressensignal entsprechend zu. Dies bedeutet wiederum, dass die Periode entsprechend länger wird, die das Adressensignal zum Vollziehen eines Umlaufs benötigt. Dieses Problem kann nicht umgangen werden, wenn alle betroffenen Funktionsblöcke oder Neuronen mit allen anderen Funktionsblöcken oder Neuronen zu verbinden sind. In diesem Zusammenhang wird jedoch darauf hingewiesen, dass bei vielen praktischen Anwendungen eine Begrenzung des Bereichs der wechselseitigen Verbindungen auf ein bestimmtes Ausmaß nicht mit irgendwelchen bedeutenden Problemen einhergeht. Als Beispiel sei angenommen, dass Temperaturänderungen in individuellen Abschnitten oder Punkten eines Objekts durch Lösen der Wärmediffusionsgleichungen zu bestimmen sind. In diesem Fall unterliegt zwar die momentane Temperaturänderung an den einzelnen Punkten auf dem Objekt dem Temperatureinfluss an einem Punkt in der Nähe, jedoch ist sie im Wesentlichen unempfindlich gegenüber dem direkten Einfluss der Temperaturen an den entfernten Punkten. Im Allgemeinen erfährt die momentane Änderung bei vielen physika lischen Größen, wie z. B. die Ausbreitung einer elektromagnetischen Welle, kaum direkten Einfluss aus Situationen, wie sie an entfernten Punkten herrschen, sondern sie wird nur durch den Zustand oder die Situation an Punkten beeinflusst, die in der Nähe des betrachteten Punkts liegen. Demgemäß existieren, wenn das erfindungsgemäße System als Analogcomputer betrieben wird, praktisch keine Probleme, insoweit jeder Funktionsblock mit demjenigen Funktionsblock verbunden werden kann, der logisch in der Nachbarschaft des ersteren liegt. Fig. 11 zeigt ein neurales Netzwerk mit verbesserter Struktur gemäß einem anderen Ausführungsbeispiel der Erfindung, bei dem die Verarbeitungszeit unter Berücksichtigung der oben genannten Tatsachen verkürzt ist.
  • Es wird nun auf Fig. 11 Bezug genommen, in der die Bezugszahlen 701 bis 706 jeweils Funktionsblockgruppen oder Neuronengruppen mit einem Aufbau ähnlich denjenigen zeigt, wie sie in den Fig. 9 und 10 dargestellt sind. Das Adressensignal und die Taktsignale werden vom Zeitsteuersignal-Generator 120 an einen Adressenbus 312 bzw. einen Taktbus 313 auf hohem Niveau, und demgemäß über Treiberschaltung 722 bzw. 723 an einen Adressenbus 302 bzw. einen Taktbus 303 geliefert, wie im Fall der in den Fig. 9 und 10 dargestellten Systeme. Ein Unterschied der in Fig. 11 dargestellten Struktur gegen diejenigen, wie sie in den Fig. 9 und 10 dargestellt sind, ist im Anschluss des Datenbusses 300 zu erkennen. Genauer gesagt, ist jeder der Datenbusse 300 nur mit den beiden benachbarten Datenbussen über bidirektionale Treiberschaltungen 851 bis 856 verbunden, wobei eine bidirektionale Treiberschaltung das Signal von der Funktionsblockgruppe oder Neuronengruppe einschließlich des durch das Adressensignal bezeichneten Funktionsblocks oder Neurons nur an die zwei benachbarten Funktionsblockgruppen oder Neuronengruppen überträgt. Als Beispiel sei angenommen, dass derjenige Funktionsblock oder das Neuron 100, wie durch Schraffierung in der Funktionsblockgruppe oder Neuronengruppe 702 des in Fig. 11 dargestellten neuralen Netzwerks gekennzeichnet, durch das Adressensignal bezeichnet wird. Dann überträgt die bidirektionale Treiberschaltung 852 das Signal von der Funktionsblockgruppe (Neuronengruppe) 702 an die Funktionsblockgruppe (Neuronengruppe) 852, während die bidirektionale Treiberschaltung 853 das Signal von der Funktionsblockgruppe (Neuronengruppe) 702 an die Funktionsblockgruppe (Neuronengruppe) 703 überträgt. Andererseits übertragen die bidirektionalen Treiberschaltungen 851 und 854 kein Signal in keiner Richtung. Die vorstehend genannte Steuerung kann dadurch erzielt werden, dass jede der Treiberschaltung 851 bis 856 durch ein Paar Pufferschaltungen mit Ausgangssignalen von drei Zuständen gebildet wird, die auf der Eingangsseite und der Ausgangsseite miteinander verbunden sind. In diesem angenommenen Fall wird das Ausgangssignal des Funktionsblocks oder Neurons, wie durch das Adressensignal bezeichnet, an die einzelnen Funktionsblöcke oder Neuronen übertragen, die in den Funktionsblockgruppen (Neuronengruppen) 701, 702 und 703 liegen, jedoch nicht an diejenigen in den Funktionsblockgruppen (Neuronengruppen) 704, 705 und 706. Wenn erneut angenommen wird, dass einer der Funktionsblöcke oder eines der Neuronen in der Funktionsblockgruppe (Neuronengruppe) 705 (z. B. derjenige Funktionsblock oder dasjenige Neutron, wie durch Schraffierung in der in Fig. 11 dargestellten Funktionsblockgruppe oder Neuronengruppe 705 gekennzeichnet) dieselbe Adresse zugeordnet ist, wie sie oben genannt ist, kann das Ausgangssignal dieses Funktionsblocks oder dieses Neurons durch dasselbe Adressensignal, wie es oben genannt ist, an die einzelnen Funktionsblöcke oder Neuronen innerhalb der Funktionsblockgruppen (Neuronengruppen) 704, 705 und 706 übertragen werden. Auf ähnliche Weise kann durch Zuordnen derselbe Adresse zu einem der Funktionsblöcke oder Neuronen in der Funktionsblockgruppe (Neuronengruppe) 701 und einem der Funktionsblöcke oder Neu ronen in der Funktionsblockgruppe (Neuronengruppe) 704 das Ausgangssignal des Funktionsblocks (Neurons) in der Funktionsblockgruppe (Neuronengruppe) 701 an die Funktionsblöcke (Neuronen) übertragen werden, die in den Funktionsblockgruppen (Neuronengruppen) 701, 702 und 706 enthalten sind, während das Ausgangssignal des Funktionsblocks (Neurons) in der Funktionsblockgruppe (Neuronengruppe) 704 an die einzelnen Funktionsblöcke (Neuronen) der Funktionsblockgruppen (Neuronengruppen) 703, 704 und 705 übertragen werden kann. Auf ähnliche Weise kann durch Zuordnen derselben Adresse zu einem der Funktionsblöcke (Neuronen) in der Funktionsblockgruppe (Neuronengruppe) 703 und einem der Funktionsblöcke (Neuronen) in der Funktionsblockgruppe (Neuronengruppe) 706 eine Signalübertragung zwischen den Funktionsblockgruppen (Neuronengruppen) 705, 706 und 701 und auch parallel mit einer Signalübertragung unter den Funktionsblockgruppen (Neuronengruppen) 702, 703 und 704 erfolgen. Durch die oben beschriebene Anordnung ist der obere Grenzwert des Adressensignals so bestimmt, dass er konstant dreimal so groß wie die Anzahl der in einer einzelnen Funktionsblockgruppe (Neuronengruppe) enthaltenen Funktionsblöcke oder Neuronen ist, und zwar unabhängig von der Gesamtanzahl der Funktionsblöcke oder Neuronen im neuralen Netzwerk. Demgemäß kann die Zeit, die das Adressensignal dazu benötigt, einen Umlauf zu vollziehen, unabhängig von der Gesamtanzahl der Funktionsblöcke oder Neuronen konstant sein. Vorstehend ist angenommen, dass Daten nur an benachbarte Funktionsblockgruppen (Neuronengruppen) zu übertragen sind. Es ist jedoch zu beachten, dass die Datenübertragung so ausgeführt werden kann, dass sie nicht nur zwischen unmittelbar benachbarten Funktionsblockgruppen (Neuronengruppen) stattfindet, sondern auch mit den diesen benachbarten Gruppen, also demgemäß zwischen insgesamt fünf Funktionsblockgruppen, wenn das Verfahren zum Steuern der bidirektionalen Treiberschaltungen 851 bis 856 entsprechend modifiziert wird. In diesem Fall ist zwar der obere Grenzwert des Adressensignals fünfmal so groß wie die Anzahl der Funktionsblöcke (Neuronen) in einer einzelnen Funktionsblockgruppe (Neuronengruppe), jedoch kann die Anzahl der Funktionsblöcke oder Neuronen, an die Daten unmittelbar von einem einzelnen Funktionsblock oder Neuron übertragen werden können, um den Faktor "5/3" erhöht werden. Wenn es erwünscht ist, die Anzahl der Funktionsblöcke oder Neuronen innerhalb einer Funktionsblockgruppe (Neuronengruppe) zu erhöhen, kann dies dadurch erzielt werden, dass jede der Funktionsblockgruppen (Neuronengruppen) 701 bis 706 durch das gesamte System ersetzt wird, wie es in Fig. 10 dargestellt ist (ausschließlich des Zeitsteuersignal-Generators 120), das dann als eine Funktionsblockgruppe (Neuronengruppe) angesehen wird.
  • Beim in Fig. 11 dargestellten Aufbau sind diejenigen Funktionsblöcke (Neuronen) miteinander verbunden, die eindimensional dicht beieinander liegen. Es kann jedoch an eine Anordnung gedacht werden, bei der die Funktionsblöcke oder Neuronen, die zweidimensional dicht beieinander liegen, miteinander verbunden sind. Fig. 12 ist ein schematisches Diagramm, das einen verbesserten Aufbau eines neuralen Netzwerks zeigt, bei dem Funktionsblöcke (Neuronen) miteinander verbunden sind, die zweidimensional dicht beieinander liegen. In Verbindung mit Fig. 12 sei darauf hingewiesen, dass nur die Rahmen der Funktionsblockgruppen (Neuronengruppen) zusammen mit dem Datenbus und den bidirektionalen Treiberschaltungen dargestellt sind, wobei Einzelheiten des Innenaufbaus der Funktionsblockgruppe (Neuronengruppe), des Adressenbusses, des Taktbusses und des Zeitsteuersignal-Generators aus der Darstellung weggelassen sind, wobei zu beachten ist, dass sie denen ähnlich sind, die zuvor unter Bezugnahme auf die Fig. 9, 10 und 11 beschrieben wurden. Die Steuerung der bidirektionalen Treiberschaltungen im in Fig. 12 dargestellten neuralen Netzwerk wird auf solche Weise ausgeführt, dass dann, wenn die Adresse eines Funktionsblocks oder eines Neurons in einer vorgegebenen der Funktionsblockgruppen (Neuronengruppen) bezeichnet wird, Daten nicht nur von der Spalte, die diese vorgegebene Funktionsblockgruppe (Neuronengruppe) enthält, an die benachbarten Spalten übertragen werden, sondern auch von der Zeile, die diese vorgegebene Funktionsblockgruppe (Neuronengruppe) enthält, an die benachbarten Zeilen. Genauer gesagt, werden gemäß Fig. 12, und wenn beispielsweise angenommen wird, dass einer der Funktionsblöcke oder Neuronen in der in Fig. 12 dargestellten Funktionsblockgruppe (Neuronengruppe) bezeichnet wird, Daten an diejenigen Funktionsblöcke (Neuronen) übertragen, die jeweils in den Funktionsblockgruppen (Neuronengruppen) 701 bis 709 enthalten sind. Durch diese Anordnung ist es möglich, die Funktionsblöcke oder Neuronen miteinander zu verbinden, die zweidimensional dicht beieinander liegen.
  • Als nächstes erfolgt eine Beschreibung zur Art, auf die das erfindungsgemäße Informationsverarbeitungssystem in Form einer integrierten Halbleiterschaltung von Wafergröße (nachfolgend abgekürzt auch als WSI bezeichnet) integriert ist. Der Satz "integrierte Halbleiterschaltung von Wafergröße oder WSI-Schaltung" soll eine integrierte Halbleiterschaltung bedeuten, die auf einer gesamten Oberfläche von Wafergröße integriert ist, wodurch ein höherer Integrationsgrad erzielt werden kann als bei einer chipmäßig integrierten Schaltung, die durch Zerschneiden eines Wafers erhalten wird.
  • Fig. 13 ist eine schematische Ansicht, die eine erfindungsgemäße Informationsverarbeitungsvorrichtung zeigt, die in einem einzelnen Halbleitersubstrat 500 in Form einer WSI (integrierte Schaltung von Wafergröße) realisiert ist. In Fig. 13 bezeichnen die Bezugszahlen 700 die Funktionsblock gruppen oder Neuronengruppen, die oben unter Bezugnahme auf die Fig. 9 bis 12 beschrieben wurden, wobei in Fig. 13 60 Funktionsblockgruppen oder Neuronengruppen dargestellt sind. Beispielhaft ist angenommen, dass jede der Neuronengruppen (Funktionsblockgruppen) neun Neuronen (Funktionsblöcke) enthält, so dass insgesamt in einem einzelnen Wafer 540 Neuronen (Funktionsblöcke) integriert sind. In Fig. 13 bezeichnen die Bezugszahlen 311 bis 315 horizontal ausgebildete Busse auf dem zweiten Hierarchieniveau. Mehrere der Busse sind auf der gesamten Oberfläche des Substrats vorhanden. Die Bezugszahlen 321 bis 325 bezeichnen Busse eines dritten Hierarchieniveaus, die in vertikaler Richtung ausgebildet sind. Es ist zu beachten, dass im mittleren Bereich des Substrats nur ein Satz der vertikalen Busse vorhanden ist. Im Fall des vorliegenden Ausführungsbeispiels sind die Neuronengruppen (Funktionsblöcke) 700 durch die Busse 311 bis 315 auf dem zweiten Hierarchieniveau mit einer Anzahl im Bereich von zwei bis vier verbunden, wobei die Busse 311 bis 315 des zweiten Hierarchieniveaus über einen Pufferteil mit den Bussen 321 bis 325 des dritten Hierarchieniveaus verbunden sind. Der Pufferteil 350 verfügt über einen Aufbau, der der Verbindung zwischen den Bussen 301 bis 305 des ersten Hierarchieniveaus und den Bussen 311 bis 315 des zweiten Hierarchieniveaus ähnlich ist und, wie im Fall der in den Fig. 9 bis 12 dargestellten Strukturen, einen Eingangspuffer, einen Decodierer und einen Ausgangspuffer enthält. An einem der Enden der Busse 321 bis 325 ist die Steuervorrichtung 200 vorhanden, die den Zeitsteuersignal-Generator 120 und die Funktionstransformationsschaltung, wie in Fig. 6A oder 6b dargestellt, enthält. Durch diese Anordnung ist es möglich, ein neurales Netzwerk zu realisieren, bei dem alle Neuronen (Funktionsgruppen) miteinander verbunden sind, während die maximale Buslänge auf höchstens den Substratdurchmesser herabgedrückt ist. Betreffend die Spannungsversorgungsquelle kann ein Spannungsversorgungsbus (nicht darge stellt) so ausgebildet sein, dass er parallel zu den Bussen 311 bis 315 des zweiten Hierarchieniveaus verläuft, so dass von den an den beiden Enden vorhandenen Spannungsquellenteilen 450 Spannung geliefert werden kann, wodurch eine große Anzahl von Spannungsquellenpunkten gewährleistet ist.
  • Die für den Spannungsversorgungsbus (nicht dargestellt), die Busse 311 bis 315 des zweiten Hierarchieniveaus und die Busse 321 bis 325 des dritten Hierarchieniveaus zu verwendenden Verdrahtungsleiter sollten größere Breite als die Verdrahtungsleiter 301 bis 305 aufweisen, die innerhalb der Neuronengruppen (Funktionsblockgruppen) 700 verwendet werden, und der Puffer 350 sollte mit größerem Zwischenraum verdrahtet sein. Dies, da darauf geachtet werden muss, dass diese Busse 311 bis 315 sowie 321 bis 325 mit großer Länge keinen hohen Verdrahtungswiderstand aufweisen und dass das Fehlerverhältnis gesenkt werden sollte, da andernfalls das Auftreten von Fehlern wie Unterbrechungen, Kurzschlüssen und anderen in den Bussen mit hohem Hierarchieniveau viele mit diesen Bussen verbundene Neuronen (Funktionsblöcke) funktionsunfähig machen würde. Hinsichtlich eines Ausfalls, der nur auf eine kleine Anzahl von Neuronen (Funktionsblöcken) Einfluss ausübt, ist es möglich, Neuronen, für die die Wahrscheinlichkeit einer Beeinflussung durch den Ausfall besteht, dadurch auszuschließen, dass ihre Gewichtungskoeffizienten seitens der normalen Neuronen (Funktionsblöcke) auf null gesetzt werden.
  • Ferner ist es auch möglich, auf dem Wafer 500 an der Position der Steuervorrichtung 200 an deren Stelle eine Pufferschaltung (nicht dargestellt) anzubringen, die mit einer Steuervorrichtung 200 verbunden ist, die außerhalb des Wafers vorhanden ist. Sollte in der Steuervorrichtung 200 ein Fehler auftreten, wird das gesamte System funktionsunfähig. Demgemäß kann, wenn die Steuervorrichtung 200 außerhalb des Wafers angebracht wird, wie oben beschrieben, eine unter einem Fehler leidende Steuervorrichtung leicht ausgetauscht oder repariert werden. Außerdem kann das Fehlerverhältnis dadurch verringert werden, dass ein Multiplexvorgang für die Pufferschaltung für externen Anschluss oder für Anschluss der Steuervorrichtung ausgeführt wird. Alternativ kann die Pufferschaltung im mittleren Teil vorhanden sein, in dem zu erwarten ist, dass die Ausbeute hoch ist. Ferner können mehrere Substrate 500 vorhanden sein und mit den Bussen des vierten Hierarchieniveaus über die oben genannte Pufferschaltung verbunden sein, um dadurch die mehreren Wafer 500 miteinander zu verbinden, um ein neurales Netzwerk mit größerem Umfang zu realisieren, wie dies später beschrieben wird.
  • Wenn die Anzahl der Hierarchieniveaus für die Busse erhöht wird, nimmt die Verzögerungszeit zu, wie sie bei der Übertragung eines Signals (von Daten) auftritt, wie es durch ein endständiges der Neuronen (Funktionsblöcke) 100 an ein anderes endständiges Neuron (Funktionsblock) 100 durch die Steuervorrichtung 200 erzeugt wird. In diesem Zusammenhang sei erwähnt, dass durch Einfügen einer Latchstufe in die Schaltungsanordnung mit dem Puffer zum Verbinden der Busse auf hohem und niedrigem Hierarchieniveau zum Synchronisieren der Signalübertragung eine Pipelineverarbeitung ausgeführt werden kann, um zu verhindern, dass die Verarbeitungszeit zunimmt. Ein Beispiel für eine Zeitliche Steuerung zu diesem Zweck wird unter Bezugnahme auf Fig. 14 unter der Annahme im Einzelnen dargelegt, dass die Anzahl der Neuronen (Funktionsblöcke) 100 ist, um die Beschreibung zu vereinfachen. Hinsichtlich des Taktsignals ist es bevorzugt, eine Schaltung zu verwenden, die für eine möglichst hohe Übertragungsrate sorgt, so dass das Taktsignal vom Bus 323 des vierten Hierarchieniveaus zum Bus 313 des zweiten Hierarchieniveaus und dann zum Bus 313 des ersten Hierarchieniveaus mit der kürzest möglichen Ausbreitungs-Verzögerungszeit laufen kann. Alle anderen Signale werden synchron mit den Taktsignalen der relevanten Hierarchieniveaus übertragen. Das Adressensignal wird auf eine Weise geliefert, bei der die Adressen "1" bis "100", wie zum Bezeichnen der einzelnen Neuronen (Funktionsblöcke) erforderlich, sowie die Adressen "101" bis "105", wie zur Zeitmultiplexsteuerung erforderlich, mit einem Intervall entsprechend einem Takt wiederholt werden, das bei Rückkehr des maximalen Adressenwerts ("105") zum minimalen Adressenwert "1" eingefügt wird. Zur Übertragung synchron mit dem Taktsignal werden die Adressen bei der Ausbreitung vom zweiten Hierarchieniveau zum ersten Hierarchieniveau um einen Takt verschoben. Da die einzelnen Neuronen (einzelnen Funktionsblöcke) mit dem Adressenbus 302 des ersten Hierarchieniveaus verbunden sind (siehe die Fig. 3, 7 und 9), wird der Ausgangswert des durch die Adresse auf dem Bus 302 bezeichneten Neurons (Funktionsblocks) 100 auf den Ausgangsbus 305 des ersten Hierarchieniveaus ausgegeben. Dabei wird das oben genannte Ausgangssignal an den Ausgangsbus 315 des zweiten Hierarchieniveaus und dann an den Ausgangsbus 325 des dritten Hierarchieniveaus geliefert, während es synchron mit dem Taktsignal um einen Takt verschoben wird. Das Ausgangssignal wird über die Steuerschaltung 200 auf den Eingangsbus 321 gegeben. In diesem Fall wird, wenn Synchronisierung des Taktsignals innerhalb der Steuerschaltung 200 erfolgt, das Signal um einen Takt verschoben. Dann wird das Signal an den Eingangsbus 311 des zweiten Hierarchieniveaus und dann an den Eingangsbus 301 des ersten Hierarchiniveaus gesendet, während es erneut um einen Takt verschoben wird. Auf diese Weise kann, nachdem ab dem Eintreffen des Adressensignals am Adressenbus 305 des ersten Hierarchieniveaus eine fünf Takten entsprechende Zeit verstrichen ist, das Signal vom durch dieses Adressensignal spezifizierten Neuron (Funktionsblock) 100 alle Neuronen (Funktionsblöcke) erreichen. So wird in jedem der Neuronen (Funktionsblöcke) dadurch kumulative Addition für das Signal ausgeführt, dass beachtet wird, dass das Signal vom Neuron (Funktionsblock) mit der Adresse herrührt, die um fünf kleiner als der durch das Adressensignal angezeigte Zahlenwert ist. Dank der oben beschriebenen Anordnung kann die Periode des Taktsignals im Vergleich mit dem Fall verkürzt werden, bei dem bei Übertragung zwischen Bussen keine Synchronisierung realisiert ist.
  • Wenn die integrierte Schaltung auf der gesamten Oberfläche des Halbleitersubstrats 500 mit einem Durchmesser von bis zu einigen Zoll herzustellen ist, wie in Fig. 13 dargestellt, ist das Auflösungsvermögen unvermeidlich beeinträchtigt, wenn eine Bestrahlung zur Belichtung auf einmal in einem Schritt zur Musterherstellung durch Bestrahlen einer auf das Substrat 500 aufgetragenen Photoresistschicht auszuführen ist. Demgemäß ist es allgemeine Vorgehensweise, das Substrat in unterteilter Weise mittels mehrerer Bestrahlungsschritte dadurch zu belichten, dass eine Neuronengruppe (Funktionsblockgruppe) als Belichtungseinheit verwendet wird. In diesem Zusammenhang sei darauf hingewiesen, dass dann, wenn die Muster der einzelnen Neuronengruppen (Funktionsblockgruppen) auch nur in einem einzelnen Bit voneinander verschieden sind, das Erfordernis entsteht, Masken für alle Muster oder die Neuronengruppen herzustellen. Dies bedeutet, dass eine enorme Anzahl verschiedener Masken erstellt werden muss, was zu teuer und unwirtschaftlich ist. Andererseits sind den einzelnen Neuronen (Funktionsblöcken) Adressen zugeordnet, die jeweils speziell für die Neuronen bestimmt sind, und jedes benötigt die Funktion, die ihm zugeordnete spezielle Adresse unterscheidend zu erkennen. Anders gesagt, ist es erforderlich, in der Lage zu sein, einzelne, spezielle Adressen unterscheidend zu erkennen, ohne dass die gesamten Innenstrukturen der einzelnen Neuronengruppen (Funktionsblockgruppen) gewechselt oder geändert werden. Fig. 15 ist ein schematisches Schaltbild, das den Aufbau eines neuralen Netzwerks zeigt, das die oben genannten Probleme erfolgreich meistern kann.
  • Fig. 15 zeigt die rechte Hälfte einer Zeile von Neuronengruppen (Funktionsblockgruppen), wie in Fig. 13 dargestellt. In Fig. 15 bezeichnet die Bezugszahl 700 allgemein die jeweiligen Neuronengruppen (Funktionsblockgruppen). Ferner bezeichnet die Zahl 100 ein Neuron oder einen Funktionsblock, die Zahlen 311 bis 315 bezeichnen Busse des zweiten Hierarchieniveaus, die Zahl 156 bezeichnet einen Puffer mit drei Zuständen und die Zahl 158 bezeichnet eine Pufferschaltung. Diese Bestandteile sind auf die in Fig. 9 veranschaulichte Weise miteinander verbunden. Die Zahl 350 bezeichnet einen Teil zum wechselseitigen Verbinden der Busse 321 bis 325 des dritten Hierarchieniveaus und der Busse 311 bis 315 des zweiten Hierarchieniveaus, und die Zahl 166 bezeichnet einen Puffer mit drei Zuständen, während 168 eine Pufferschaltung bezeichnet. Es sei darauf hingewiesen, dass der in jeder der Neuronengruppen (Funktionsblockgruppen) im in Fig. 9 dargestellten Netzwerk enthaltenen Decodierer 157 im Verbindungsteil 350 zum wechselseitigen Verbinden der Busse des dritten und zweiten Hierarchieniveaus angebracht ist. Das Ausgangssignal des Decodierers 158 wird über einen Bus 316 für vier Bits an jede der Neuronengruppen (Funktionsblockgruppen) 700 gesendet. Dieser Bus 316 ist so ausgebildet, dass bei jedem Durchlauf durch die Neuronengruppen (Funktionsblockgruppen) 700 eine Verschiebung um 1 Bit erfolgt, wie dies aus Fig. 15 erkennbar ist. Der Decodierer 157 erzeugt ein Ausgangssignal hohen Pegels nur für diejenigen Neuronengruppen (Funktionsblockgruppen) 700, die das durch das Adressensignal bezeichnete Neuron (Funktionsblock) 100 enthalten. Durch eine derartige Realisierung ist es möglich, nur die beabsichtigte der Neuronengruppen (Funktionsblockgruppen) 700 auszuwählen, obwohl alle Neuronengruppen (Funktionsblockgruppen) 700 ge nau dieselbe Konfiguration haben. Jedes der Neuronen 100 innerhalb jeder Neuronengruppe (jeder Funktionsblockgruppe) kann mit Hilfe der zwei weniger signifikanten Bits des Adressensignals sowie des vom Decodierer 157 gesendeten Signals entscheiden, ob das Neuron selbst ausgewählt ist oder nicht. Demgemäß kann auch für den Verbindungsteil 150 ein ähnlicher Vorgang angewandt werden, um nur eine beabsichtigte Zeile auszuwählen. In diesem Fall wird das Ergebnis der Decodierung der signifikanteren Bits des Adressensignals über den Bus 326 für 9 Bits an jedes der Verbindungsteile 350 gesendet. Da der Bus 326 für 9 Bits so ausgebildet ist, dass für jede Zeile eine Verschiebung um 1 Bit auftritt, ist es möglich, unabhängig davon, dass für die Verbindungsteile 350 genau dieselbe Konfiguration vorliegt, nur die beabsichtigte eine Zeile auszuwählen. Gemäß der oben unter Bezugnahme auf Fig. 15 beschriebenen Lehre der Erfindung kann die Anzahl der zum Herstellen der in Fig. 13 dargestellten Neuro-WSI erforderliche Anzahl von Photomasken auf fünf Sätze verringert werden, nämlich einen für die Neuronengruppen (Funktionsblockgruppen) 700 auf der rechten Seite, einen anderen für die Neuronengruppen (Funktionsblockgruppen) 700 auf der linken Seite, einen anderen für die Verbindungsteile 350, einen anderen für die Steuerschaltung 200 oder die Schaltung für externen Anschluss, sowie ein anderer für die Spannungsversorgungs-Kontaktflecke 450. Übrigens ist zu beachten, dass dann, wenn die oben angegebene Vorgehensweise unter Verwendung des Halbleitersubstrats 500 von Kreisform verwendet wird, leere Adressennummern auftreten können. Dieses Problem kann dadurch gemeistert werden, dass die leeren Adressennummern übersprungen werden, wenn das Adressensignal von der Steuervorrichtung 200 gesendet wird. Auf diese Weise kann selbstverständlich eine Erhöhung der Verarbeitungszeit vermieden werden. Außerdem können die Decodierer 107, anstatt dass sie in den Neuronen oder Funktionsblöcken 100 (siehe die Fig. 3 und 7) vorhanden sind, als Block oder Satz in jeder Neuronengruppe (jeder Funktionsblockgruppe) 700 vorhanden sein. In diesem Fall können die einzelnen Neuronen (Funktionsblöcke) mit derselben Schaltungskonfiguration realisiert sein, was das Schaltungsdesign offensichtlich erleichtert.
  • Als nächstes erfolgt eine Beschreibung zu einer verbesserten Informationsverarbeitungsvorrichtung, die dadurch in WSI- Form realisiert ist, dass die Fehlertoleranz des neuralen Netzwerks und die hervorragende Wiederholbarkeit der Funktionsblöcke (Neuronen) genutzt ist.
  • Fig. 16 ist eine Ansicht, die eine verbesserte Struktur einer Informationsverarbeitungsvorrichtung, die in WSI-Form integriert ist, gemäß noch einem anderen Ausführungsbeispiel der Erfindung zeigt. Obwohl die folgende Beschreibung auf der Annahme beruht, dass 16 Funktionsblöcke (Neuronen) integriert sind, ist der Aufbau in keiner Weise auf eine spezielle Anzahl von Funktionsblöcken oder Neuronen beschränkt. Bei praktischen Anwendungen können 500 oder mehr Funktionsblöcke (Neuronen) auf einem einzelnen Wafer 500 integriert sein. In Fig. 16 bezeichnen 100R und 100L die Funktionsblöcke (Neuronen), und in die Blöcke eingesetzte Zahlen repräsentieren die Adressen der einzelnen Funktionsblöcke oder Neuronen 100R und 100L. Die Bezugszahl 350 bezeichnet einen Pufferteil mit einer Adressenübersetzungseinrichtung 90 (siehe Fig. 17) zum Übersetzen des Eingangsadressensignals in ein davon verschiedenes Signal für die Ausgabe. Die Zahl 370 bezeichnet einen Adresseneingangsanschluss, an dem das Adressensignal eingegeben wird. Ferner bezeichnet die Zahl 200 eine Steuervorrichtung mit einem Adressenzeiger, und 38 bezeichnet einen vom Adressenzeiger der Steuervorrichtung 200 ausgegebenen Adressenzeigerwert. In Fig. 16 sind die Adressen der einzelnen Funktionsblöcke (Neuronen) 100R und 100L zum Zeitpunkt, zu dem der Adressenzeigerwert 38 "0000" ist, durch jeweilige Zahlen innerhalb der zugehörigen Blöcke angegeben. Betreffend Einzelheiten der Adressensignal-Übersetzungseinrichtung 900 und der einzelnen Funktionsblöcke (Neuronen) 100R und 100L erfolgt eine Beschreibung unter Bezugnahme auf Fig. 17 bzw. Fig. 18.
  • Gemäß Fig. 16 liegen insgesamt 16 Funktionsblöcke (Neuronen) 100R und 100L vor. Demgemäß reichen für jede Funktionsblockadresse zum Zuordnen der charakteristischen oder speziellen Adressen zu diesen Neuronen oder Funktionsblöcken 4 Bits aus. Im Fall des in Fig. 16 dargestellten Beispiels sind die zwei höher signifikanten Bits der 4 Bits als Zeilenadresse 3R verwendet, während die zwei weniger signifikanten Bits als Spaltenadresse 3L verwendet sind. Übrigens kann die Bitzahl m für das aktuelle Adressensignal wie folgt bestimmt werden:
  • 2m-1 < N &le; 2m (5),
  • wobei N die Anzahl der Funktionsblöcke oder Neuronen repräsentiert.
  • Fig. 17 zeigt die im Pufferteil 350 enthaltene Adressenübersetzungseinrichtung 90. Obwohl der Pufferteil 350 notwendigerweise die Busse zum Übertragen des Taktsignals und des Datensignals sowie die Puffer enthält, wie oben beschrieben, sind sie zur Vereinfachung aus der Darstellung in Fig. 16 weggelassen, wobei nur die Adressensignal-Übersetzungseinrichtung 90 dargestellt ist. Diese Adressenübersetzungseinrichtung 90 entspricht einem durch den Adressenbus 326 und den Decodierer 157, wie in Fig. 15 dargestellt, gebildeten Teil. In Fig. 17 bezeichnet die Bezugszahl 370 einen Eingangsanschluss für das Adressensignal, 6R bezeichnet einen rechten Ausgangsanschluss für das Adressensignal, 6L bezeichnet einen linken Ausgangsanschluss für das Adressensi gnal, 6U bezeichnet einen oberen Ausgangsanschluss für das Adressensignal, 108 bezeichnet eine 1-Inkrementierstufe und 110 bezeichnet eine Inverterschaltung zum Ausgeben des eingegebenen Logiksignals nach Umkehrung desselben. Im Fall des aktuellen Ausführungsbeispiels der Adressensignal-Übersetzungseinrichtung oder des Blocks 90 wird zur Zeilenadresse 3R, die aus den zwei höher signifikanten Bits des über den Adressensignal-Eingangsanschluss 370 eingegebenen Adressensignals durch die 1-Inkrementierstufe 108 der Wert "1" addiert, um es dann am oberen Ausgangsanschluss 6U für das Adressensignal auszugeben. Die 1-Inkrementierstufe 108 verfügt über Eingänge für 2 Bits und Ausgänge für 2 Bits, und sie realisiert Übersetzungen oder Umwandlungen von "00" in "01", "01" in "10", "10" in "11" und "11" in "00". Die anderen Bits werden mit unveränderten Eingangswerten ausgegeben. Das über den Adressensignal-Eingangsanschluss 370 eingegebene Adressensignal wird unverändert am rechten Ausgangsanschluss 6R für das Adressensignal 6R ausgegeben. Vom linken Ausgangsanschluss 6L für das Adressensignal wird ein Signal ausgegeben, das dem zweit-geringstsignifikanten Bit der Spaltenadresse 3C des über den Adressensignal-Eingangsanschluss 370 eingegebenen Adressensignals entspricht und die logische Umkehrung in der Inverterschaltung 110 erfahren hat.
  • Die Fig. 18A und 18B zeigen die Funktionsblöcke (Neuronen) 100L bzw. 100R. Die Bezugszahl 20 bezeichnet eine Funktionsschaltung, die abhängig von der ins Auge gefassten oder beabsichtigten Anwendung der WSI konzipiert ist. Im Fall einer WSI für z. B. einen Neuronencomputer ist die Funktionsschaltung 20 so konzipiert, dass sie Neuronenmodelle berechnet, demgemäß entsprechend dem Funktionsblock oder Neuron 100, wie vorstehend beschrieben. In den Fig. 18A und 18B ist eine Anordnung betreffend den Adressenbus im Funktionsblock 100 dargestellt, wobei die anderen Einzelheiten durch die Funk tionsschaltung 20 repräsentiert sind. In den Figuren bezeichnen die Bezugszahlen 306 und 307 Adressensignal-Eingangsanschlüsse, und 308 und 309 bezeichnen jeweils Adressensignal-Ausgangsanschlüsse. Der Funktionsblock 100L empfängt das über den rechten Adressensignal-Eingangsanschluss 106 eingegebene Adressensignal, und er gibt über den linken Adressensignal-Ausgangsanschluss 308 ein Signal aus, das dem geringstsignifikanten Bit der Spaltenadresse 3C im eingegebenen Adressensignal entspricht und durch die Inverterschaltung 110 logisch umgekehrt wurde. Die Funktionsschaltung 20 empfängt das Adressensignal über den Adressensignal-Eingangsanschluss 306. Auf ähnliche Weise empfängt der Funktionsblock 100R auch das über den linken Adressensignal-Eingangsanschluss 307 eingegebene Adressensignal, und er gibt über den rechten Adressensignal-Ausgangsanschluss 309 ein Signal aus, das dem geringstsignifikanten Bit der Spaltenadresse 3C des eingegebenen Adressensignals entspricht, das in der Inverterschaltung 110 eine logische Umkehrung erfahren hat. Die Funktionsschaltung 20 wird über den Adressensignal-Eingangsanschluss 307 mit dem Adressensignal versorgt.
  • Die vier Pufferteile 350 mit Adressensignal-Übersetzungsfunktion, die acht Funktionsblöcke 100R sowie die acht Funktionsblöcke 100L, wie in Fig. 16 dargestellt, sind auf die unten angegebene Weise verbunden. In horizontaler Richtung (d. h. in der Zeilenrichtung) sind der rechte Adressensignal- Ausgangsanschluss 6R des im Pufferteil 350 enthaltenen Adressensignal-Übersetzungsblocks 90 sowie der Adressensignal-Eingangsanschluss 307 der Funktionsblöcke 100R miteinander verbunden. Der Adressensignal-Ausgangsanschluss 307 dieses Funktionsblocks 100R ist mit dem Adressensignal-Eingangsanschluss 307 eines anderen Funktionsblocks 100R verbunden. Der linke Adressensignal-Ausgangsanschluss 6L des Adressensignal-Übersetzungsblocks 90 ist mit dem Adressensignal-Eingangsanschluss 306 des Funktionsblocks 111 verbun den. Der Adressensignal-Ausgangsanschluss 308 dieses Funktionsblocks 100L ist mit dem Adressensignal-Eingangsanschluss 306 eines anderen Funktionsblocks 100L verbunden. In vertikaler (Spalten-)Richtung ist der Adressensignal-Eingangsanschluss 370 des Adressensignal-Übersetzungsblocks 90 mit dem oberen Adressensignal-Ausgangsanschluss 6U des unteren Adressensignal-Übersetzungsblocks 90 verbunden. Mit dem Adressensignal-Eingangsanschluss 370 des ganz unten liegenden Adressensignal-Übersetzungsblocks 90 ist der Ausgang des in der Steuerschaltung 200 vorhandenen Adressenzeigers verbunden. Die Funktionsblockadressen der einzelnen Funktionsblöcke 100R und 100L, die auf die oben beschrieben Weise verbunden sind, sind in Fig. 16 unter der Annahme dargestellt, dass der durch den Adressenzeiger in der Steuerschaltung 200 ausgegebene Adressenzeigerwert 38 "0000" ist.
  • Fig. 19 zeigt die Funktionsblockadressen der einzelnen Funktionsblöcke 100R und 100L zum Zeitpunkt, zu dem der Adressenzeigerwert 38 "0111" ist. Wie es so zu erkennen ist, variieren, wenn der Adressenzeiger der Steuervorrichtung 200 verschiedene Werte angibt, die gesonderten, in die einzelnen Funktionsblöcke 100R und 100L eingegebenen Adressen entsprechend abhängig von den Adressenzeigerwerten. Demgemäß ist es, wenn der Funktionsblock, in den eine vorbestimmte Adresse (z. B. "0000") eingegeben wird, der ausgewählte Funktionsblock sein soll, möglich, den Funktionsblock ziemlich wahlfrei dadurch auszuwählen, dass der Adressenzeigerwert 38 entsprechend variiert wird. Im Fall des in Fig. 16 dargestellten Beispiels entspricht der Funktionsblock 100R, der in der untersten Zeile und der zweiten Spalte, gezählt von rechts, liegt, dem ausgewählten Funktionsblock. Ferner ist, im Fall des in Fig. 19 dargestellten Beispiels, der Funktionsblock 100L, der in der obersten Zeile und der ersten Spalte, gezählt von links liegt, der ausgewählte Funktionsblock.
  • Fig. 20 zeigt einen Funktionsblock 100'L, der dem in Fig. 18B dargestellten Funktionsblock 100L für den Fall entspricht, dass für die Spaltenadresse mehr als 3 Bits erforderlich sind. In diesem Funktionsblock 100'L wird zur Spaltenadresse 3C des über einen Adressensignal-Eingangsanschluss 342 eingegebenen Adressensignals durch eine 1-Inkrementierstufe 141 der Wert "1" addiert, wobei das sich aus der obigen Übersetzung oder Umwandlung ergebende Adressensignal an einem Adressensignal-Ausgangsanschluss 343 ausgegeben wird. Der Funktionsblock 100'L kann unter Verwendung der 1-Inkrementierstufe 141 anstelle der in Fig. 18 dargestellten Inverterschaltung 110 realisiert werden.
  • Bei der obigen Beschreibung des Ausführungsbeispiels erfolgt die Übersetzung oder Umwandlung des Adressensignals durch Addition von "1". Jedoch kann die Übersetzung des Adressensignals in gleicher Weise durch Subtraktion von "1" erfolgen.
  • Durch Strukturieren der Funktionsblöcke mit einer solchen Anordnung, dass die Adressensignale Pfaden mit baumähnlicher Konfiguration folgen, wie im Fall der in Fig. 16 dargestellten Struktur, führt eine Unterbrechung in Verdrahtungsleitern für die Adressensignale in den Funktionsblöcken 100L und/oder 100R oder ein anderer Fehler nur zu einer Verringerten Anzahl von Funktionsblöcken, die funktionsunfähig werden. Beispielsweise entstehen im Fall der in Fig. 16 dargestellten Struktur beim Auftreten eines Fehlers in einem der Funktionsblöcke 100L höchstens zwei Funktionsblöcke, die funktionsunfähig werden.
  • Im Gegensatz hierzu macht im Fall einer Struktur, bei der die 16 Funktionsblöcke in Reihe geschaltet sind, das Auftreten eines Fehlers in einem der Funktionsblöcke alle Funk tionsblöcke funktionsunfähig, die stromabwärts bezüglich des unter dem Fehler leidenden Blocks liegen. In den Fig. 16 bis 20 sind der Datenbus und der Taktbus für die Kommunikation zwischen den Funktionsblöcken nur zum Vereinfachen der Darstellung weggelassen. Ferner ist in der vorstehenden Beschreibung zwar angenommen, dass die Anzahl der wiederholt vorhandenen Funktionsblöcke 16 ist, jedoch ist es leicht zu erkennen, dass die Erfindung in keiner Weise auf irgendeine spezielle Anzahl von Funktionsblöcken beschränkt ist. Anders gesagt, können die oben beschriebenen Strukturen bei einer beliebigen Anzahl von Funktionsblöcken durch einfache Modifizierungen angewandt werden, die der Fachmann leicht erkennt, ohne vom Grundgedanken und Schutzumfang der Erfindung abzuweichen.
  • Gemäß der bekannten Technik erfordert die Realisierung einer großen Anzahl von Funktionsblöcken auf einer WSI, wobei den einzelnen Funktionsblöcken jeweils spezielle oder charakteristische Adressen zugeordnet sind, die gesonderte Herstellung von Halbleiter-Photoplattenmasken für Verdrahtungsleiterschichten für jeden der Funktionsblöcke. Wenn eine Belichtung oder Bestrahlung mit einer Halbleiter-Photoplattenmaske für jeden der Funktionsblöcke ausgeführt werden muss, ist eine große Anzahl von Halbleiter-Photoplattenmasken erforderlich. Im Gegensatz hierzu wird gemäß der Lehre der Erfindung, wie sie in den dargestellten beispielhaften Ausführungsformen verkörpert ist, bei denen jeder der Funktionsblöcke 100R und 100L so aufgebaut ist, dass er eine vorbestimmte Übersetzung der Eingangsadresse ausführt, um dadurch ein von der Eingangsadresse verschiedenes Adressensignal auszugeben, in jeden Funktionsblock, das für ihn charakteristische Adressensignal eingegeben, so dass jeder beliebige der Funktionsblöcke durch die ihm zugeordnete Adresse ausgewählt werden kann, wodurch die Adressendecodierer der einzelnen Funktionsblöcke mit genau derselben Struktur reali siert werden können. Demgemäß ist es nur erforderlich, drei Lagen von Halbleiter-Photoplattemasken für den Funktionsblock 100L, den Funktionsblock 100R und den Pufferteil 350 mit dem Adressensignal-Übersetzungsblock 90 herzustellen. So können die Kosten, die mit der Herstellung der Halbleiter- Photoplattemasken einhergehen, merklich verringert werden.
  • Ferner ist im Fall der oben beschriebenen veranschaulichten Ausführungsbeispiele ein verteiltes Steuersystem verwendet, bei dem die Adressendecodierung in jedem der Funktionsblöcke ausgeführt wird. Durch dieses Merkmal kann ebenfalls die Anzahl der Signalleitungen beträchtlich verringert werden, da es nicht erforderlich ist, eine große Anzahl von Auswählsignalleitungen zum Bestimmen oder Auswählen eines Funktionsblocks ausgehend von der Steuerschaltung bereitzustellen, wie im Fall eines konzentrierten Steuersystems.
  • Wie es aus der vorstehenden Beschreibung ersichtlich ist, ist gemäß einem Ausführungsbeispiel der Erfindung eine integrierte Halbleiterschaltung von Wafergröße mit einer Struktur geschaffen, die unter Verwendung von Funktionsblöcken in wiederholtem Muster realisiert ist, wobei ein erstes Adressensignal in einen ersten Funktionsblock eingegeben wird, um eine vorbestimmte Übersetzung zu erfahren, z. B. durch Addition oder Subtraktion von "1" zu oder von mindestens einem Bit, und ein zweites Adressensignal, das vom ersten Adressensignal verschieden ist, erzeugt wird, um an einen zweiten Funktionsblock ausgegeben zu werden. Anders gesagt, wird bei einer WSI mit einer Anzahl von Funktionsblöcken mit derselben Funktion, das außerhalb des Wafers oder durch eine Schaltung auf dem Wafer erzeugte Adressensignal in einem Teil der Funktionsblöcke eingegeben, wobei jeder der Funktionsblöcke das in ihn eingegebene Adressensignal in ein davon verschiedenes Adressensignal übersetzt, das dasjenige ist, das an einen anderen Funktionsblock ausgegeben wird.
  • Durch diese Anordnung werden die einzelnen Funktionsblöcke mit jeweils voneinander verschiedenen Adressensignalen versorgt. Wenn das in den einen Teil der Funktionsblöcke eingegebene Adressensignal modifiziert oder geändert wird, werden auch die in die anderen Funktionsblöcke eingegebenen Adressensignale entsprechend modifiziert oder geändert. Demgemäß ist es möglich, wenn angenommen wird, dass ein vorbestimmtes Signal in einen der Funktionsblöcke eingegeben wird, so dass ein Funktionsblock ausgewählt wird, einen beliebigen Funktionsblock dadurch auszuwählen, dass das in einen Teil der Funktionsblöcke eingegebene Adressensignal modifiziert wird. Anders gesagt, ist es möglich, die durch ein wiederholtes Muster realisierten Funktionsblöcke unterscheidend dadurch zu erkennen, dass das eingegebene Adressensignal gesteuert wird. Das betrachtete Ausführungsbeispiel der Erfindung kann nicht nur bei einer Neuronencomputer-WSI sondern allgemein bei WSIs angewandt werden.
  • Es sei darauf hingewiesen, dass dann, wenn die Anzahl der zu verbindenden Neuronen (Funktionsblöcke) zunimmt, auch die Anzahl der in jedem der Speicher der einzelnen Neuronen (einzelnen Funktionsblöcke) zu speichernden Gewichtungskoeffizienten zunimmt, was es erfordert, zu diesem Zweck einen Speicher mit größerem Speichervermögen zu verwenden. Fig. 21 zeigt eine verbesserte Struktur zum Verkleinern des Speichers für Gewichtungskoeffizienten.
  • Diese Speicherschaltung 101 ist so strukturiert, dass sie nur eine vorbestimmte Anzahl von Gewichtungskoeffizienten geordnet ausgehend vom maximalen Absolutwert paarweise mit den zugehörigen Mitgliedsadressen speichert, wobei die anderen Gewichtungskoeffizienten als 0 (null) angesehen werden, um dadurch den Speicherumfang zu verringern. In Fig. 21 bezeichnen die Bezugszahlen 111 und 112 Speicherzellenarrays, die Zahl 113 bezeichnet einen Zeiger, die Zahl 114 bezeich net einen Komparator und die Bezugszahl 115 bezeichnet einen Selektor. Von den Speicherzellenarrays 111 und 112 ist das Array 111 dazu bestimmt, die zugehörigen oder Mitgliedsadressen zu speichern, und das Array 112 dient zum Speichern der Gewichtungskoeffizienten, wobei die Mitgliedsadressen und die jeweiligen Gewichtungskoeffizienten paarweise auf Zeilenbasis in die Speicherzellenarrays eingespeichert sind. Dabei ist die Reihenfolge der zeilenweisen Speicherung so ausgewählt, dass die Adressen in aufsteigender Reihenfolge angeordnet sind. Ferner werden die von der Steuervorrichtung 200 an die einzelnen Neuronen oder Funktionsblöcke 100 über den Bus 302 und andere Elemente gelieferten Adressensignale in aufsteigender Reihenfolge gesendet. Der Zeiger 113 wird so eingestellt, dass er anfangs auf die erste Zeile der Speicherzellenarrays 111, 112 zeigt. Dann wird der in der ersten Zeile gespeicherte Inhalt ausgelesen, woraufhin die zugehörige Adresseninformation an einen Eingangsanschluss 122 des Komparators 114 gegeben wird, während die Gewichtungskoeffizient-Information an einen Eingangsanschluss 124 des Selektors 115 gegeben wird. Zu diesem Zeitpunkt hat die an den Komparator gegebene Adresseninformation den kleinsten Wert der im Speicheradressen-Zellenarray 111 gespeicherten Adresseninformation. Andererseits wird das Adressensignal, das über den Adressenbus 302 von der Steuervorrichtung 200 über den Puffer eintrifft, auf den anderen Eingangsanschluss des Komparators 114 gegeben. Da die Adressensignale in aufsteigender Reihenfolge des Adressenwerts geliefert werden, hat das Adressensignal dauernd einen kleinen Wert, bis die erste Übereinstimmung mit dem an den Komparator 114 gelegten Signal 122 auftritt, welcher Wert so im Speicherzellenarray 111 fehlt. Demgemäß nimmt der Ausgang 123 des Komparators 114 niedrigen Pegel ein, was das Ergebnis hat, dass am Ausgangsanschluss 126 des Selektors 115 der Zahlenwert "0" auftritt, der an den anderen Eingangsanschluss 125 des Selektors 115 gegeben wird. Dieses Ausgangssignal des Selektors 115 repräsentiert den Gewichtungskoeffizient für das durch das Adressensignal 302 zu diesem Zeitpunkt spezifizierte zugehörige Element. In diesem Fall ist die Adresse des zugehörigen Elements nicht im Speicherzellenarray 111 gespeichert. Anders gesagt, hat die entsprechende Gewichtung einen kleinen Absolutwert, der als 0 (null) angesehen wird, wie oben angegeben. Solange sich der Ausgang 123 des Komparators 114 auf niedrigem Pegel befindet, befindet sich auch der Ausgang 127 einer UND-Schaltung 116 dauernd auf niedrigem Pegel, wobei der Zeiger 114 im Zustand verbleibt, der auf dieselbe Zeile zeigt. Jedoch tritt zwischen der an den Anschluss 122 des Komparators 114 gegebenen Adresseninformation und dem über den Adressenbus 302 gesendeten Adressensignal Übereinstimmung, und der Ausgang 123 des Komparators 114 nimmt den hohen Pegel ein, was dazu führt, dass die an den Anschluss 124 des Selektors 115 gegebene Gewichtungskoeffizient-Information am Ausgangsanschluss 126 dieses Selektors 115 auftritt. Diese Gewichtungsinformation repräsentiert den Gewichtungskoeffizient für das zu diesem Zeitpunkt durch das Adressensignal bezeichnete zugehörige Element. Synchron mit dem über den Bus 303 gelieferten Taktsignal wird der Zeiger 114 so umgeschaltet, dass er auf die nächste oder zweite Zeile zeigt. Auch in diesem Fall gibt der Selektor 114 dauernd "0" aus, bis zwischen der in der zweiten Zeile im Speicherzellenarray 111 gespeicherten Adresseninformation und dem über den Bus 302 gelieferten Adressensignal Übereinstimmung auftritt, woraufhin eine ähnliche Operation wie die oben beschriebene wiederholt wird. Wenn das Zyklussignal über den Bus 304 geliefert wird, nimmt der Zeiger 113 wieder die Position ein, in der er auf die erste Zeile zeigt. Wie es nun ersichtlich ist, arbeitet die in Fig. 21 dargestellte Schaltung so, dass sie die Gewichtungen mit großen Absolutwerten, die im Speicherzellenarray 112 gespeichert sind, genau liest, während die Werte der anderen Gewichtungen als "0" angesehen werden. Da das Auslesen aus dem in Fig. 21 dargestellten Speicher notwendigerweise in aufsteigender Reihenfolge erfolgt, kann eine Entscheidung dahingehend, ob relevante Information vorhanden ist oder nicht, momentan auf das Adressensignal hin erfolgen. So kann der Speicherauslesevorgang ausgeführt werden, ohne dass damit irgendeine nennenswerte Zunahme der Zugriffszeit einhergeht.
  • Fig. 22 ist ein Blockdiagramm, das mit weiteren Details den Aufbau des Neurons 100 (Funktionsblock) gemäß einem weiteren Ausführungsbeispiel der Erfindung zeigt. Gemäß Fig. 22 arbeiten der Speicher 101 zum Speichern der Gewichtungskoeffizienten, der Multiplizierer 102, der Addierer 103, die Latchstufen 104 und 105, der Puffer 106 mit drei Zuständen, der Decodierer 107 sowie die Busse 301 bis 305 des ersten Hierarchieniveaus auf dieselbe Weise, wie es bereits unter Bezugnahme auf die Fig. 3 und 7 beschrieben wurde. Um für stabilen Betrieb zu sorgen, sind ein Schieber 807 und ein Selektor 803 vorhanden. Ferner sind ein Decodierer 801, ein Selektor 802, ein Puffer 804 mit drei Zuständen, eine Latchstufe 805, Selektoren 806 und 808 sowie Busse 831 bis 838 vorhanden, um es zu ermöglichen, dass das neurale Netzwerk einen selbstständigen Lernvorgang ausführt.
  • Die Schieberschaltung 807 ist so aufgebaut, dass der Ausgangswert der Latchstufe 104 um einen Faktor 1/2, 1/4 oder 1/8 oder ähnlich verschoben wird. Der Selektor 803 ist so realisiert, dass er normalerweise das Ausgangssignal des Multiplizierers 102 an den Addierer 103 überträgt, und er das Ausgangssignal der Schieberschaltung 807 an den Addierer 103 überträgt, und zwar auf das Anlegen des Zyklussignals hin (Bus 304). Ferner ist eine solche Anordnung verwendet, dass dann, wenn der Selektor 803 das Ausgangssignal der Schieberschaltung 807 überträgt, der Addierer 103 einen Subtraktionsvorgang ausführt. Der Selektor 808 gibt das Aus gangssignal der Latchstufe 104 außer in der Periode des selbstständigen Lernmodus an den Addierer 103. So arbeitet der Addierer 103 so mit der Latchstufe 104 zusammen, dass er normalerweise die oben beschriebene kumulative Addition ausführt. Wenn jedoch das Zyklussignal angelegt wird, wird das Ausgangssignal der Latchstufe 104 durch die Latchstufe ererfasst und mit 1/2 oder 3/4 oder 7/8 oder ähnlich multipliziert, um anschließend an den Eingang der Latchstufe 104 gegeben zu werden und durch diese Latchstufe 104 synchron mit dem Taktsignal (wie über den Bus 303 geliefert) erfasst zu werden, woraufhin eine neue kumulative Addition gestartet wird. In diesem Fall wird das Gewichtungsmittel aus dem im vorangegangenen Zyklus berechneten Wert und dem im momentanen Zyklus berechneten Wert arithmetisch bestimmt. Obwohl es etwas Zeit benötigt, bis das Ergebnis konvergiert, können kaum Schwingungen auftreten.
  • Der selbstständige Lernvorgang wird auf die unten beschriebene Weise unter der Annahme ausgeführt, dass der Algorithmus zum selbstständigen Lernen auf einer Ausbreitung in Rückwärtsrichtung beruht (die zugehörige mathematische Grundlage ist im Einzelnen z. B. in der japanischen Zeitschrift "Nikkei Electronics", veröffentlicht am 10. August 1987, S. 115 und folgende beschrieben). Als erstes wird der Vorgang der kumulativen Addition wiederholt, um die Ausgangswerte der Neuronen zu bestimmen und sie in die jeweiligen Latchstufen 105 einzuspeichern. Als nächstes werden die Adressen der zur Ausgabeschicht gehörenden Neuronen sequentiell von der Steuervorrichtung 200 über den Adressenbus 302 ausgegeben, um den Inhalt der Latchstufen 105 in die Steuervorrichtung einzulesen, um die Differenz gegenüber einem erwarteten Ausgabewert (dieser Differenzwert wird nachfolgend als &delta;-Wert bezeichnet) zu bestimmen, wobei der Differenz- oder &delta;-Wert über den Bus 823 in die Latchstufe 805 des relevanten Neurons eingeschrieben wird. Hinsichtlich derje nigen Neuronen, die nicht zur Ausgabeschicht gehören, wird das Signal auf dem Adressenbus 302 auf die Adresse desjenigen Neurons fixiert, für das der &delta;-Wert zu bestimmen ist, woraufhin der betreffende &delta;-Wert durch kumulative Addition der Produkte der Gewichtungskoeffizienten der einzelnen Neuronen für das betreffende Neuron und dem &delta;-Wert des ersteren bestimmt wird. Der Gewichtungskoeffizient wird aus dem in jedem Neuron enthaltenen Speicher 101 ausgelesen, wobei der &delta;-Wert aus der Latchstufe 805 ausgelesen wird, woraufhin beide Werte über die Selektoren 802 bzw. 806 an den Multiplizierer 102 jedes Neurons gegeben werden. Auf diese Weise werden als erstes die Produkte bestimmt. Anschließend werden die Adressen der einzelnen Neuronen von der Steuervorrichtung 200 über den Bus 831 ausgesendet, und die oben genannten Produkte werden über den Bus 832 in die Steuervorrichtung 200 eingelesen, um kumulativ addiert zu werden, um den &delta;-Wert zu bestimmen, der dann in die Latchstufe 805 des betrachteten Neurons eingeschrieben wird. Wenn die &delta;-Werte auf diese Weise für alle Neuronen bestimmt wurden, wird das Produkt aus dem in der Latchstufe 805 gespeicherten &delta;-Wert und einem geeigneten, über den Bus 837 gelieferten Koeffizient durch den Multiplizierer 102 bestimmt, um anschließend an einen Eingangsanschluss des Addierers 103 gegeben zu werden. Durch Aktualisieren einer Runde der über den Adressenbus 302 zugeführten Adressen, wird das Ergebnis, wie es durch Addition des im Speicher 101 gespeicherten Gewichtungskoeffizients und des an den einen Eingang des Addierers 103 gegebenen Wert erhalten wird, als aktualisierter oder neuer Gewichtungskoeffizient eingetragen. Durch Wiederholen des oben beschriebenen Ablaufs kann der selbständige Lernvorgang realisiert werden.
  • Selbstverständlich ist es auch möglich, den Lernvorgang auf einem anderen Computer auszuführen, wobei der dadurch erhaltene Gewichtungskoeffizient unmittelbar in den Speicher 103 eingeschrieben wird, so dass im neuralen Netzwerk nur die normale Operation ausgeführt wird.
  • Als Faktor, der zu einer Erhöhung der Herstellkosten einer WSI beiträgt, kann ein Problem einer niedrigen Ausbeute genannt werden. Maßnahmen zum Überwinden dieses Problems bei einer WSI für einen Neurocomputer werden unten erörtert. Durch Bereitstellen einer Anzahl von Neuronen und durch gegenseitiges Verbinden derselben kann eine Vielzahl neuraler Netzwerke realisiert werden. Durch Einstellen geeigneter Gewichtungskoeffizienten (wi,j) ist es möglich, verschiedene Informationsverarbeitungsvorgänge auszuführen. Wenn ein neurales Netzwerk dieses Typs in einer WSI realisiert wird, kann die Situation auftreten, dass einige der Neuronenschaltungen aufgrund von Kristallfehlern oder wegen des Vorliegens von Fremdstoffen nicht normal arbeiten. Diese fehlerhaften Neuronen können dadurch abgetrennt werden, dass die Gewichtungswerte derjenigen Neuronen auf null gesetzt werden, in die die Ausgangssignale der fehlerhaften Neuronen eingegeben werden. So kann das neurale System als ganzes selbst dann normal arbeiten, wenn ein Ausfall oder Fehler vorliegt. Außerdem ist das neurale Netzwerk, da es von Natur aus redundant ist und hohe Fehlertoleranz zeigt, zur WSI- Realisierung geeignet.
  • Es sei jedoch darauf hingewiesen, dass dann, wenn die einzelnen Neuronen auf der WSI durch die Busse miteinander verbunden werden, es das Auftreten eines Fehlers im Bus und im Adressedecodierer unmöglich machen, Kommunikationsvorgänge zwischen den Neuronen auszuführen. Anders gesagt, verringert sich die Ausbeute einer WSI insgesamt, was zu einem teuren Preis derselben führt. In extremen Fällen kann kein Produkt mit zufriedenstellender Qualität hergestellt werden. Fig. 23 zeigt durch ein schematisches Schaltbild eine verbesserte Struktur eines neuralen Netzwerks, das die Ausbeute einer WSI gemäß einem weiteren Ausführungsbeispiel der Erfindung verbessern kann.
  • In Fig. 23 bezeichnet die Bezugszahl 203 Multiplex-Taktsignalleitungen, 351 bezeichnet Multiplex-Datenbusse, 100 bezeichnet jeweils Neuronen (Funktionsblöcke), 203 bezeichnet Multiplex-Adressensignaleingangsanschlüsse und 204 bezeichnet Multiplex-Adressensignalausgangsanschlüsse. Die Multiplex-Taktsignalleitungen 355 sind dadurch realisiert, dass die Taktsignalleitung 303 beim oben beschriebenen Ausführungsbeispiel mehrfach ausgeführt ist. Auf ähnliche Weise sind die Multiplex-Datenbusse 351 dadurch realisiert, dass der Datenbus 300 des bereits beschriebenen Ausführungsbeispiels mehrfach ausgeführt ist. Hinsichtlich der Adressenbusse ist das oben unter Bezugnahme auf die Fig. 15 bis 20 beschriebene dezentralisierte oder verteilte Steuer-Adressen-System verwendet. Die Multiplex-Adressenbusse sind dadurch realisiert, dass die die einzelnen Neuronen (Funktionsblöcke) verbindende Adressensignalleitung mehrfach ausgeführt ist. Die Zahl 201 bezeichnet Multiplex-Datenbusverbindungsanschlüsse, und 202 bezeichnet Multiplex-Taktsignaleingangsanschlüsse. Die Multiplex-Adressensignaleingangsanschlüsse 204 eines vorgegebenen der Neuronen sind mit den Multiplex-Adressensignal-Eingangsanschlüssen 203 des benachbarten Neurons (Funktionsblocks) 100 verbunden. Die Multiplex-Adressensignaleingangsanschlüsse 203 desjenigen Neurons (Funktionsblocks) 100, das am Eingangsende des Netzwerks liegt, sind mit dem in der Steuervorrichtung 200 vorhandenen Adressenzeiger verbunden. Selbstverständlich kann der Adressenzeiger des Wafers vorhanden sein. Die Multiplex-Datenbusverbindungsanschlüsse 201 jedes Neurons (Funktionsblocks) 100 sind mit den Multiplex-Datenbussen 351 verbunden. Die Multiplex-Taktsignaleingangsanschlüsse 202 jedes Neurons (Funktionsblocks) 100 sind mit den Multiplex-Taktsignalleitungen 355 verbunden. Übrigens kann eine derartige Anordnung in gleicher Weise dahingehend verwendet werden, dass der Pufferteil 350 mit dem Adressensignal-Übersetzungsblock im Zentrum der Neuronen (Funktionsblöcke) 100 vorhanden ist, wie zuvor in Verbindung mit den Fig. 13 und 16 beschrieben. Die in Fig. 23 dargestellte Struktur dient nur zum Zweck des Vereinfachens der Beschreibung.
  • Fig. 24A ist ein schematisches Schaltbild, das eine beispielhafte Struktur des Neurons (Funktionsblocks) 100 zeigt, wie für die Multiplex-Busstruktur gemäß einem weiteren Ausführungsbeispiel der Erfindung geeignet. Gemäß Fig. 24A bezeichnet die Bezugszahl 211 eine Majoritätsschaltung, die Zahl 231 einen Dateneingangsanschluss, die Zahl 232 einen Datenausgangsanschluss, die Zahl 233 einen Taktsignal-Eingangsanschluss, die Zahl 234 jeweilige Adressendecodierer, und die Zahl 212 bezeichnet jeweils Ausgangspuffer mit drei Zuständen. Jeder der Ausgangspuffer mit drei Zuständen verfügt über einen Signaleingangsanschluss für ein Eingangssignal, einen Signalausgangsanschluss zum Ausgeben eines Ausgangssignals sowie einen Steuersignal-Eingangsanschluss, an den ein Steuersignal gegeben wird, wobei der Ausgangspuffer mit drei Zuständen abhängig vom Steuersignal das Eingangssignal an den Ausgangssignalanschluss ausgibt oder am Ausgangsanschluss den Zustand hoher Impedanz zeigt. Ferner bezeichnet die Zahl 221 Adressendecodierer-Eingangsanschlüsse, und 222 bezeichnet einen Adressendecodierer-Ausgangsanschluss. Die über die Multiplex-Datenbusse 351, die Multiplex-Taktsignalleitungen 355 und die Multiplex-Adressensignaleingangsanschlüsse 303, wie in Fig. 23 dargestellt, gelieferten Signale erfahren in den jeweils zugehörigen Majoritätsschaltungen 211 eine logische Majoritätsentscheidung auf Bit bezogener Basis, wobei die Ergebnisse der Majoritätsentscheidung an einen Dateneingangsanschluss 231, einen Taktsignal-Eingangsanschluss 233 bzw. einen Adressensignal- Eingangsanschluss 234 einen Neuronenmodell-Berechnungsein heit 220 geliefert werden. Andererseits wird das Ausgangssignal der Neuronenmodell-Berechnungseinheit 220 am Datenausgangsanschluss 232 erzeugt und über die Ausgangspuffer 212 mit drei Zuständen an die Multiplex-Datenbusverbindungsanschlüsse 201 ausgegeben. Ferner werden drei über die Multiplex-Adressensignaleingangsanschlüsse 203 eingegebene Signale jeweils an drei 1-Inkrementierstufen 108 geliefert, um eine Adressenübersetzung zu erfahren, wobei die zugehörigen Ergebnisse über die Multiplex-Adressensignalausgangsanschlüsse 204 ausgegeben werden. In diesem Zusammenhang reicht es aus, wenn die Neuronen mit der in Fig. 23 dargestellten allgemeinen Anordnung angeschlossen sind, nur die Spaltenadresse um 1 (eins) zu inkrementieren. Beispielsweise kann, wenn das Ausgangssignal des Neurons (Funktionsblocks) 100 auf den Datenbus 351 für die Adressensignale, alle mit dem Wert "0", ausgegeben werden, der Adressendecodierer 210 in Form einer NOR-Schaltung realisiert sein, wie in Fig. 24B dargestellt. Ferner sind die Steuersignal-Eingangsanschlüsse der Ausgangspuffer 212 mit drei Zuständen auf solche Weise angeschlossen, wie es in Fig. 22A dargestellt ist. Wenn der Ausgangswert des Adressendecodierers 210 "wahr" ist, gibt der zugehörige Ausgangspuffer 212 mit drei Zuständen das Eingangssignal aus, während er andernfalls am Ausgangsanschluss den Zustand hoher Impedanz zeigt.
  • Die Neuronenmodell-Berechnungseinheit 220 ist mit derselben Struktur wie der oben unter Bezugnahme auf die Fig. 3 und 7 beschriebene Funktionsblock (Neuron) 100 realisiert. Genauer gesagt, verfügt die Neuronenmodell-Berechnungseinheit über einen dem Eingangsbus 301 entsprechenden Anschluss 231, einen dem Ausgangsbus 305 entsprechenden Anschluss 232, einen dem Taktbus 303 und dem Zyklusbus 304 entsprechenden Anschluss 233 sowie einen dem Adressenbus 302 entsprechenden Anschluss 234.
  • Die in Fig. 23 dargestellten einzelnen Neuronen 100 werden entsprechend den jeweiligen Adressenzeigerwerten 38, wie sie durch den Adressenzeiger angezeigt werden, einzeln ausgewählt, um den Ausgangswert auf die Multiplex-Datenbusse 351 zu geben. Im nichtausgewählten Neuron werden die Signale der Multiplex-Datenbusse 351 der Mehrheitslogik auf Bitbasis durch die in Fig. 24 dargestellte Majoritätsschaltung 211 unterzogen, wobei das Ergebnis der Majoritätslogik an die Neuronenmodell-Berechnungseinheit 220 ausgegeben wird. Auf ähnliche Weise wird die Majoritätslogikoperation auf jedes der im Multiplex über die in Fig. 23 dargestellte Multiplex- Taktsignalleitung 355 gelieferten Taktsignale ausgeführt, woraufhin die Ergebnisse an die Neuronenmodell-Berechnungseinheit 220 ausgegeben werden. Das durch die in Fig. 23 dargestellte Steuervorrichtung 200 ausgegebene Adressensignal erfährt in jedem der Neuronen 100 eine Adressenübersetzung, um an das folgende Neuron 100 ausgegeben zu werden. Im Fall des dargestellten Ausführungsbeispiels erfolgt die Adressenübersetzung durch die 1-Inkrementierstufe 108. Die Signale werden, bevor sie die Adressenübersetzung erfahren, auf Bitbasis der Majoritätslogikoperation in der Majoritätsschaltung 211 unterzogen, wobei die zugehörigen Ergebnisse an die Neuronenmodell-Berechnungseinheit 220 ausgegeben werden. Durch die durch den Adressendecodierer 210 gesteuerten Ausgangspuffer 212 mit drei Zuständen erfolgt eine Entscheidung, ob der am Datenausgangsanschluss 232 erzeugte Ausgangswert der Neuronenmodell-Berechnungseinheit 220 auf die Multiplex-Datenbusse 351 ausgegeben wird oder nicht. Im Fall der dargestellten Struktur wird das Ausgangssignal dieses Neurons 100 an den Multiplex-Datenbus 351 ausgesendet, um an das andere Neuron 100 gesendet zu werden, wenn die eingegebenen Adressensignale alle "0" sind.
  • Wenn die WSI mit Hilfe eines Elektronenstrahl-Zeichensystems ohne Verwendung einer Halbleiter-Strichplattemaske herzu stellen ist, kann die Anzahl der zu konzipierenden Funktionsblöcke (Neuronen) verringert werden, was wiederum bedeutet, dass die Anzahl der Designschritte entsprechend verringert werden kann.
  • Vorstehend ist Multiplexausbildung der Busstruktur beschrieben. Selbstverständlich ist auch eine Multiplexausbildung des Lernschaltungssystems möglich, wie dies unten in Verbindung mit einem Verfahren mit Ausbreitung in Rückwärtsrichtung, das eines der Lernprozeduren ist, beschrieben wird.
  • Fig. 25 ist ein schematisches Diagramm zum Veranschaulichen des Lernalgorithmus auf Grundlage des Verfahrens mit Ausbreitung in Rückwärtsrichtung, in dem eines der Neuronen (Funktionsblöcke) dargestellt ist. Die Bezugssymbole 11, 12 und 13 kennzeichnen die Ausgangssignale der einzelnen Neuronen (Funktionsblöcke) der vorangehenden Schicht oder Stufe, und das Bezugssymbol AUS bezeichnet das Ausgangssignal des betrachtenden Neurons (Funktionsblock), wobei dieses Signal in die Synapsen 11 der Neuronen (Funktionsblöcke) der folgenden Schicht oder Stufe eingegeben wird. In Fig. 25 kennzeichnen durchgezogene Linien Signalflüsse bei normalem Betrieb, wohingegen gestrichelte Linien Signalflüsse im Lernmodus mit Ausbreitung in Rückwärtsrichtung kennzeichnen. Den einzelnen Synapsen 11 sind jeweils charakteristische Gewichtungskoeffizienten W zugeordnet, jeweils entsprechend einem Schritt, bei dem das Eingangssignal mit dem Gewichtungskoeffizient W multipliziert wird, um dadurch das zugehörige Produkt auszugeben. Die Bezugszahl 10 repräsentiert einen Schritt zum Berechnen der Gesamtsumme der mit den Gewichtungskoeffizienten W multiplizierten Eingangswerte. Dieser Schritt 10 entspricht der in Fig. 3 dargestellten Funktionsschaltung. Ferner repräsentiert die Bezugszahl 50 einen Schritt zum Ausgeben eines Werts, wie er sich aus der Umwandlung oder Übersetzung des Eingangswerts entsprechend ei ner Funktion f ergibt. Übrigens sind als im Schritt 50 verwendete Funktion die Sigmoidfunktion und andere bekannt. Die Bezugszahl 60 bezeichnet einen Umschalter, der dazu dient, zwischen dem normalen Betriebsmodus und dem Lernmodus umzuschalten. Die Bezugszahl 70 repräsentiert einen Schritt zum Berechnen einer Änderung d(n) des Synapsengewichtungskoeffizients im Lernmodus. Das Bezugssymbol D(n+1) bezeichnet Lernsignale aus der folgenden Stufe. Genauer gesagt, ist die Beziehung zwischen d(n) und D(n+1) durch den folgenden Ausdruck (6) gegeben:
  • d(n) = a · f'(s) · I · Gesamtsumme von D(n+1) (6),
  • wobei s das Ausgangssignal des Schritts 10 repräsentiert, f' den Differenzwert der Funktion f im oben genannten Schritt 50 repräsentiert, I die Eingangssignale (I1-I3) in die Synapsen repräsentiert und d eine Konstante repräsentiert. In Fig. 25 repräsentiert die Bezugszahl 80 einen Schritt zum Berechnen des an die vorangehende Stufe zu liefernden Lernsignals D(n), das wie folgt berechnet werden kann:
  • D(n) = W · d(n) (7)
  • Durch Wiederholen des normalen Betriebs und des Lernbetriebs, wie oben erläutert, können die Gewichtungskoeffizienten W der Synapsen abhängig von d(n) geändert oder gewechselt werden, wodurch das gesamte Netzwerk so strukturiert werden kann, dass es die gewünschte Eingangs/Ausgangs- Entsprechung realisiert.
  • Wie es aus der obigen Beschreibung erkennbar ist, sorgen die Netzwerkstruktur vom musterassoziativen Typ und der Lernalgorithmus mit Ausbreitung in Rückwärtsrichtung für einen großen Vorteil nicht nur hinsichtlich der Simulation auf einem Computersystem, sondern es kann auch die Realisierung als integrierte Halbleiterschaltung stark vereinfacht werden. Genauer gesagt, ist es, in Fig. 25, leicht möglich, den Teil 11 in Form einer Multiplizierschaltung mit einer Speicherschaltung, den Teil 10 als Addierschaltung, den Teil 50 als Speicherschaltung, den Teil 60 als Umschaltstufe, den Teil 70 in Form einer Kombination aus einer Multiplizierschaltung, einer Addierschaltung und einer Speicherschaltung sowie den Teil 80 als Multiplizierschaltung zu realisieren.
  • Andererseits kann eine Schwierigkeit dann auftreten, wenn im Lernschaltungssystem ein Fehler auftritt. In diesem Fall setzt das Neuron in der Folgestufe den Gewichtungskoeffizient der Synapse durch Lernen auf "0". Da jedoch das fehlerhafte Neuron ein fehlerhaftes Lernsignal an das Neuron in der vorangehenden Stufe überträgt, werden beim Ausführen eines korrekten Lernvorgangs große Schwierigkeiten angetroffen. Demgemäß ist im Fall des oben genannten Fehlermodus ein automatisches Heilen des Fehlers unmöglich. Unter diesen Umständen trifft eine Realisierung in einem Halbleiterchip einer üblichen Größe von ungefähr 1 cm² auf Schwierigkeiten beim Erzielen einer Ausbeute nahe 100%. Außerdem bleibt bei Realisierung in einer integrierten Schaltung von Wafergröße die Verbesserung der Ausbeute im Wesentlichen auf 0%, da die vom Lernschaltungssystem belegte Fläche sehr groß wird.
  • Angesichts des oben skizzierten Stands der Technik sind gemäß noch anderen Ausführungsbeispielen der Erfindung solche verbesserten Strukturen geschaffen, bei denen das Lernschaltungssystem von den einzelnen Neuronen (Funktionsblöcken) getrennt ist und gleichzeitig gemeinsam für die Neuronen vorhanden ist, wobei das gesonderte Lernschaltungssystem durch eine Vorrichtung gebildet ist, die Fehler heilen kann.
  • Fig. 26 ist ein schematisches Diagramm zum Veranschaulichen des Konzepts, das der erfindungsgemäßen Lernschaltung zu grundeliegt. In Fig. 26 bezeichnet die Bezugszahl 99 ein Lernschaltungssystem, das gesondert von den einzelnen Neuronen 100 gemeinsam für diese vorhanden ist, und die Zahlen 998 repräsentieren Signalsysteme zum Lernen. Das innerhalb eines gestrichelten Blocks eingeschlossene neurale Netzwerk hat dieselbe Struktur wie die oben beschriebenen, mit der Ausnahme, dass keines der Neuronen 100 eine Lernschaltung aufweist. Das durch den Block mit gestrichelter Linie umschlossenen neurale Netzwerk führt normalerweise einen Lernvorgang trotz des Auftretens eines Fehlers solange aus, wie das Lernschaltungssystem 999 normal arbeitet, um dadurch ein fehlerhaftes Neuron auszuschließen. Da ein Fehler in der Lernschaltung gemäß dem vorliegenden Ausführungsbeispiel vorab geheilt wird, wird kein fehlerhaftes Lernsignal an das neurale Netzwerk übertragen. Der Lernvorgang wird z. B. auf die unten beschriebene Weise ausgeführt. D. h. dass die Synapsen-Gewichtungskoeffizienten der Neuronen einer Schicht Lm durch das Lernschaltungssystem 999 erfasst werden und wieder in die ursprünglichen Synapsen zurückgeschrieben werden, nachdem der Gewichtungskoeffizient geändert wurde. Diese Verarbeitung wird einzeln für die Neuronen der Schicht Lm ausgeführt, woraufhin eine ähnliche Verarbeitung für die Neuronen einer Schicht Ln ausgeführt wird.
  • Da alle Neuronen (Funktionsblöcke) 100 mit derselben Schaltungskonfiguration realisiert sind, wie oben beschrieben, ist es möglich, die Lernschaltung gemeinsam für die Neuronen anzubringen. Das Lernschaltungssystem 999 gemäß dem vorliegenden Ausführungsbeispiel der Erfindung besteht nur aus den Schaltungen 11, 10, 60, 70 und 80 sowie einer Steuerschaltung zum gemeinsamen Zuordnen dieser Schaltungen zu den einzelnen Neuronen oder Funktionsblöcken. Demgemäß kann das Lernschaltungssystem mit hoher Integrationsdichte realisiert werden.
  • Fig. 27 ist ein Diagramm zum Veranschaulichen einer beispielhaften Struktur mit dem gemeinsam vorhandenen Lernschaltungssystem und einem Neuron 100, von dem die Lernschaltung weggenommen wurde. Übrigens werden Einzelheiten der Funktionsblöcke, die der in dieser Figur dargestellten Struktur entsprechen, später unter Bezugnahme auf die Fig. 28 und 29 erläutert. Ferner wird nachfolgend eine beispielhafte Ausführungsform des Fehlerheilsystems für die Lernschaltung beschrieben. In Fig. 27 bezeichnet die Bezugszahl 990 die Lernschaltung, die gemeinsam für die Neuronen (Funktionsblöcke) vorhanden ist, und 100 bezeichnet ein Neuron, aus dem die Lernschaltung weggenommen wurde. Die Synapsen (Kombination aus einer Multiplizierschaltung und einer Speicherschaltung 50) entsprechen denen, die in Fig. 25 dargestellt sind. Die Zahl 920 bezeichnet eine Multiplizier- und Addierschaltung zum Multiplizieren der Eingangssignale 11 bis In in die einzelnen Systemsynapsen mit den zugehörigen Gewichtungskoeffizienten W sowie zum Bestimmen der Gesamtsumme der sich aus der Multiplikation ergebenden Produkte. Diese Schaltung 920 entspricht der oben beschriebenen Schaltung 11 und 10. Die Bezugszahl 921 bezeichnet eine Speicherschaltung zum Ausgeben eines Differenzwerts hinsichtlich der Funktion f, wie oben unter Bezugnahme auf Fig. 25 beschrieben. Die Zahl 922 bezeichnet eine Multiplizier- und Addierschaltung zum Bestimmen von D(n) und d(n), wie oben unter Bezugnahme auf Fig. 25 beschrieben. Schaltungen 921 und 922 stimmen mit denen überein, die in Fig. 25 mit 70 bzw. 80 bezeichnet sind. Die Schaltungen 920, 921 und 922 werden gemeinsam für die einzelnen Neuronen (Funktionsblöcke) verwendet. Die Zahl 923 bezeichnet eine Steuerschaltung zum Steuern einer sequentiellen Zuordnung der Lernschaltung zu den einzelnen Neuronen auf konsolidierte Weise. Die Schaltungen 920, 921 und 922 haben jeweils eine so kleine Größe, dass sie in einem einzelnen Neuron, wie in Fig. 25 dargestellt, enthalten sein können. Die Lernschaltung 999 erfordert selbst dann, wenn die Steuerschaltung 923 enthalten ist, nur eine kleine Fläche in der Größenordnung von 0,5 cm². Demgemäß liegt die Ausbeute für die Lernschaltung 999 in der Größenordnung von 60%. Da im Netzwerk kein Fehler vorliegt, dessen Ausbeute demgemäß 100% ist, entspricht die Ausbeute des Halbleiterbauteils mit integrierter Schaltung insgesamt der Ausbeute der Lernschaltung 99, die gesondert von den Neuronen gemeinsam für diese vorhanden ist, von 60%. Durch Anwenden des vorliegenden Ausführungsbeispiels auf ein integriertes Schaltungsbauteil von Wafergröße ist es möglich, die Ausbeute für die integrierte Schaltung von Wafergröße auf ungefähr 60% zu erhöhen, ohne dass eine Fehlerheilstruktur erforderlich ist. Anders gesagt, kann die Ausbeute überraschend sehr deutlich dadurch erhöht werden, dass lediglich die Lernschaltung gesondert und gemeinsam angebracht wird, wie oben beschrieben. In Fig. 27 repräsentieren Bezugssymbole Ix und Wx Verdrahtungsleitungen, die mit den Gewichtungskoeffizienten bzw. Ausgangswerten der anderen Neuronen verbunden sind.
  • Fig. 28 ist ein Schaltbild zum Veranschaulichen von Einzelheiten der in Fig. 27 dargestellten Schaltungen 11, 10 und 50. Gemäß Fig. 28 werden aus den Eingangssignalen 11 bis 13 in die Synapsen 11 sowie den in den zugehörigen Gewichtungskoeffizientregistern 1111 gespeicherten Gewichtungskoeffizienten W durch I · W berechnete jeweilige Produkte durch die Multiplizierer 1100 berechnet. Die Multiplikationsergebnisse werden anschließend durch eine Selektorschaltung 1112 ausgewählt, um durch einen Addierer 1113 sequentiell addiert zu werden. Das Additionsergebnis wird in eine Tabellen-E/A- (Eingabe/Ausgabe)-Schaltung 1114 eingegeben, in der ein dem Additionsergebnis entsprechender Funktionswert f aus einer f-Funktionstabelle (Speicher) 1115 ausgewählt und als Ausgangssignal der sogenannten Zelle ausgegeben wird.
  • Fig. 29 ist ein Schaltbild zum Veranschaulichen von Einzelheiten der in Fig. 27 dargestellten Schaltungen 920 bis 923. Mit den Selektorschaltungen 1010 und 1110 sind die Ausgangssignale I1 bis In der einzelnen Neuronen bzw. die Gewichtungskoeffizienten W1 bis Wn der einzelnen Synapsen verbunden. Von Adressenerzeugungsschaltungen 1000 und 1001, die in der Steuerschaltung 923 enthalten sind, werden Auswählsignale 2000 bzw. 2001 ausgegeben. Das Ausgangssignal des Neurons und der Gewichtungskoeffizient, wie durch die Selektorschaltung 1010 und 1011 ausgewählt, werden durch Registerschaltungen 1007 und 1012 gehalten, wobei das zugehörige, durch I · W gegebene Produkt durch einen Multiplizierer 1008 bestimmt wird. Die Zahl 1013 bezeichnet eine Pufferschaltung zum Einschreiben und Auslesen des Synapsen-Gewichtungskoeffizients. Die Ergebnisse der Multiplikationen durch den Multiplizierer 1008 werden durch einen Addierer 1009 aufeinanderfolgend addiert. Das Ergebnis dieser Addition entspricht dem im Ausdruck (1) auftretenden Wert s. Das Additionsergebnis s wird in eine Tabellen-E/A(Eingabe/Ausgabe)-Schaltung 1014 eingegeben, woraufhin eine dem Additionsergebnis s entsprechende Funktion f' aus einer Tabelle 1015 für die Funktion f' ausgewählt wird. Ein Multiplizierer 1017 ist dazu bestimmt, die durch den oben gegebenen Ausdruck (6) vorgegebene Multiplikation auszuführen. Das Ergebnis d(n) dieser Multiplikation wird in einen Addierer 1016 eingegeben, um zum nichtaktualisierten, im Gewichtungskoeffizientregister 1012 gehaltenen Gewichtungskoeffizient W addiert zu werden. Das Ergebnis dieser Addition repräsentiert den aktualisierten Synapse-Gewichtungskoeffizient, d. h. einen neuen Synapse-Gewichtungskoeffizient nach dem Lernen. Der aktualisierte Wert W wird in die einzelnen Synapse-Gewichtungskoeffizientregister (in Fig. 28 mit 111 bezeichnet) im Netzwerk über das Gewichtungskoeffizientregister 1012, den Lese/Schreib- (R/W)-Puffer 1013 und die Selektorschaltung 1011 eingeschrieben. Ein Multiplizierer 1020 dient zum Bestimmen des Produkts aus dem im Gewichtungskoeffizientregister 1012 gespeicherten Wert W und d/n gemäß dem oben angegebenen Ausdruck (7). Der Addierer 1021 und das Register 1022 arbeiten so zusammen, dass sie die vom Multiplizierer 1020 erzielten Multiplikationsergebnisse sequentiell addieren, um dadurch die Gesamtsumme D(n) zu bestimmen und diesen bestimmten Wert aufrechtzuerhalten, bis der Lernvorgang für die zur folgenden Schicht gehörenden Schicht Neuronen ausgeführt wird, woraufhin der Wert D(n) an das Register 1019 übertragen wird. Vorstehend erfolgte eine Beschreibung zu den Strukturen und Funktionen der Schaltungen 920, 921 und 922. Die Bezugszahl 923 bezeichnet eine Steuerschaltung zum Steuern des oben beschriebenen Lernprozesses (Gewichtungskoeffizient-Aktualisierungsprozesses). Die Steuerung wird synchron mit dem an einem Anschluss 1005 eingegebenen Taktsignal ausgeführt. Obwohl in der Figur dargestellt ist, dass das Taktsignal von außerhalb der Steuerschaltung 923 zugeführt wird, kann die Steuerschaltung 923 selbstverständlich einen Taktsignaloszillator enthalten, anstatt dass sie von außen mit einem Taktsignal versorgt wird. Die Zahl 1004 bezeichnet eine Verteilerschaltung zum Liefern des Taktsignals an einzelne, die Teile der Steuerschaltung 923 bildende Schaltungsblöcke. Unter Verwendung dieses Taktsignals erzeugt eine Zeitsteuersignal-Erzeugungsschaltung 1003 ein Zeitsteuersignal. Gemäß diesem Zeitsteuersignal werden eine Reihe von Lernprozessen, d. h. eine Datenübertragung an das Register aufeinanderfolgende oder sequentielle Additionen und Multiplikationen ausgeführt. Obwohl in der Figur dargestellt ist, dass das Zeitsteuersignal 2000 nur auf die Schaltungen 920, 921 und 922 gegeben wird, ist zu beachten, dass tatsächlich das Zeitsteuersignal an die einzelnen Schaltungsblöcke geliefert wird. Die Bezugszahl 1002 bezeichnet eine E/A-Schnittstellenschaltung für Verbindung mit den externen Schaltungen. Ein externes Steuersignal sowie andere, die über einen Eingabe/Ausgabe-Stift 1006 eingegeben werden, wird durch die E/A-Schaltung 1002 decodiert, die ihrerseits Steuersignale an eine Synapsenadressen-Erzeugungsschaltung 1000, eine Neuronenausgangssignalleitungs-Adressenerzeugungsschaltung 1001 und die Zeitsteuersignal-Erzeugungsschaltung 1003 sendet. Entsprechend den von der Synapsenadressen-Erzeugungsschaltung 1000 und der Neuronenausgangssignalleitungs-Adressenerzeugungsschaltung 1001 gesendeten Auswählsignalen wird die Auswahl der Werte I und W, wie bereits beschrieben, ausgeführt.
  • Fig. 30 ist ein Diagramm, das eine beispielhafte Struktur zum Heilen von Fehlern der Lernschaltung zeigt. In der Figur bezeichnet die Bezugszahl 999' eine Lernschaltung, die gesondert und gemeinsam vorhanden ist, wie z. B. diejenige, die in Fig. 9 dargestellt ist. Im Fall des vorliegenden Ausführungsbeispiels ist die Lernschaltung 999' fünffach vorhanden. Die Zahl 997 bezeichnet eine Umschaltstufe zum Auswählen eines der Ausgangssignale D(n) der fünffachen Lernschaltungen 999'. Nach Abschluss des Bauteil-Herstellprozesses wird jede der Lernschaltungen 999' hinsichtlich Ausfällen oder Fehlern untersucht oder überprüft, wobei durch die Umschaltstufe 997 der Ausgang derjenigen Lernschaltung 999' ausgewählt wird, für die entschieden ist, dass kein Fehler vorliegt. Wenn die Ausbeute einer Lernschaltung 999' 60% beträgt, wie oben beschrieben, ist die Wahrscheinlichkeit, dass mindestens eine der fünffachen Lernschaltungen fehlerfrei ist (d. h. die Ausbeute der Lernschaltung) 99%. Es ist möglich, die Ausbeute weiter dadurch zu erhöhen, dass die Anzahl der mehrfach hergestellten Lernschaltungen erhöht wird. Übrigens ist die Größe einer Lernschaltung 999' nicht größer als ungefähr 0,5 cm². Demgemäß beträgt die für die fünf Lernschaltungen insgesamt erforderliche Fläche nicht mehr als ungefähr 2,5 cm², und höchstens 3 cm², einschließlich der Umschaltstufe 997. Die Fläche beträgt nur ungefähr 5% des Bauteile-Herstellbereichs eines 5-Zoll-Wafers. Fig. 31 ist ein schematisches Diagramm, das die Beziehung zwischen dem neuralen Netzwerk und einer auf einem Wafer gemäß dem Ausführungsbeispiel ausgebildeten Lernschaltung zeigt. In dieser Figur bezeichnet die Bezugszahl 800 ein Lernschaltungssystem, das aus den mehrfach vorhandenen Lernschaltungen 999' und der oben unter Bezugnahme auf Fig. 30 beschriebenen Umschaltstufe 997 besteht. Die Zahl 100 bezeichnet ein Neuron ohne Lernschaltung, wie im unteren Halbteil von Fig. 27 dargestellt.
  • Vorstehend sind Maßnahmen zum Heilen oder Meistern eines Ausfalls oder Fehlers der Lernschaltung in Verbindung mit einer Struktur beschrieben, bei der die Lernschaltung oder -schaltungen gleichzeitig mit der Herstellung von Neuronen auf ein und demselben Wafer hergestellt werden. Ferner ist es auch möglich, einen Fehler der Lernschaltung dadurch zu heilen, dass man sich auf eine sogenannte Hybridmaßnahme stützt. Fig. 32 ist ein schematisches Diagramm zum beispielhaften Veranschaulichen einer weiteren Maßnahme zum Meistern eines Fehlers einer Lernschaltung. In dieser Figur bezeichnet die Bezugszahl 500 einen Waferabschnitt, in dem ein Netzwerk von Neuronen ohne Lernschaltung ausgebildet ist und 800' bezeichnet einen geschnittenen Halbleiterchip mit integrierter Schaltung, in dem eine Lernschaltung 999' ausgebildet ist. Es ist zu beachten, dass diese Lernschaltung nicht mehrfach vorhanden ist. Der am Wafer 500 angebrachte Chip 800' ist ein fehlerfreier Chip, der aus mehreren der auf einem Wafer ausgebildeten Chips 800', wie in Fig. 33 dargestellt, ausgewählt ist und daraus ausgeschnitten ist. Die elektrische Verbindung zwischen dem Wafer 500 und dem Chip 800', wie in Fig. 32 dargestellt; wird dadurch erzielt, dass man sich auf ein Flipflop-Verbindungsverfahren stützt, bei dem ein Lötmittel verwendet wird, wie durch 30 gekennzeichnet. Die Größe des Chips 800' beträgt 1 cm². Fig. 34 ist ein schematisches Diagramm, das noch eine andere beispielhafte Ausführungsform zum Realisieren einer Lernschaltung 999 mit fehlerfreier Struktur zeigt. Im Fall dieses Ausführungsbeispiels ist die Schaltung 999 mit Hilfe eines Computers 550 realisiert, für den bereits klargestellt wurde, dass er normal arbeitet. Auf einem Substrat 532 ist ein Wafer angebracht, auf dem ein neurales Netzwerk ausgebildet ist. Die Verbindung zwischen dem Substrat 532 und dem Wafer 500 ist durch Drahtbonden erzielt, wie durch 530 gekennzeichnet, während elektrische Verbindung zwischen dem Substrat 532 und dem Computer 550 unter Verwendung eines Verbinders 533 und eines Kabels 534 errichtet ist. Da die Lernschaltung 999 beim vorliegenden Ausführungsbeispiel durch Zusammenwirken des Computers 550 und eines auf ihm laufenden Programms realisiert ist, kann das Lernschaltungssystem sicher fehlerfrei fertiggestellt werden. Im Fall des vorliegenden Ausführungsbeispiels wird nicht nur das Signal zum Lernen, sondern es werden auch die Eingangs/Ausgangs-Signale vom Computer 550 über die Medien 531, 532, 533 und 534 übertragen.
  • Die vorstehende Beschreibung erfolgte unter der Annahme, dass der Chip oder Wafer einzeln vorliegt. Fig. 35 ist ein schematisches Diagramm, das noch ein anderes Ausführungsbeispiel der Erfindung zeigt, bei dem mehrere der oben genannten Wafer in vertikaler Richtung aufgestapelt sind. In dieser Figur bezeichnet die Zahl 500 Wafer, von denen jeder mit einem erfindungsgemäßen Lernschaltungssystem 800 versehen ist, das gesondert von den Neuronen gemeinsam für diese vorhanden ist. Es sei darauf hingewiesen, dass vertikal zehn oder mehr Lagen von Wafern 500 aufgestapelt sind. Gemäß dem vorliegenden Ausführungsbeispiel können die Wafer sehr dicht aneinandergepackt werden, wodurch neurale Netzwerkschaltungen großen Umfangs mit extrem hoher Dichte gepackt werden können. Obwohl die Lernschaltung 800 in jedem der Wafer ausgebildet ist, kann die erstere gemeinsam, gruppenweise für mehrere Wafer vorhanden sein. Außerdem kann die Lernschal tung 800 auch dadurch realisiert sein, dass der Lernschaltungschip 800', wie in Fig. 32 dargestellt, durch das Hybridverfahren als Baustein ausgebildet wird. Zusätzlich kann das Lernschaltungssystem mit dem in Fig. 34 dargestellten Computer 550 über den am Substrat 532 angebrachten Verbinder 533 verbunden sein, um dadurch eine Lernsteuerung mit Hilfe des Computers 550 auszuführen. Als Maßnahme zum elektrischen Verbinden der in vertikaler Richtung aufgestapelten Wafer miteinander kann als Beispiel ein Verfahren genannt werden, wie es in JP-A-56-2662 offenbart ist.
  • Im Fall des insoweit beschriebenen Ausführungsbeispiels sind die Informationsverarbeitungssysteme insgesamt unter Verwendung digitaler Schaltungen realisiert. Es wird jedoch darauf hingewiesen, dass dann, wenn unter Verwendung einer Analogschaltung nur eine Multiplikations- und Additionsberechnung oder eine Multiplikation ausgeführt wird, die Anzahl der ein Neuron bildenden Elemente verringert werden kann, wodurch ein neurales Netzwerk großen Umfangs realisiert werden kann. Wenn ein neurales Netzwerk großen Umfangs herzustellen ist, bei dem die Gewichtungskoeffizienten und die Ausgangswerte der Neuronen durch mehrere Bits ausgedrückt werden können, benötigt eine enorme Anzahl von Neuronenschaltungen natürlich erhöht Fläche für die Bausteinbildung, und zwar selbst dann, wenn die Anzahl der eine einzelne Neuronschaltung bildenden Elemente verringert wird. Demgemäß nimmt, wenn ein neurales Netzwerk z. B. mit WSI (Integration von Waferumfang) realisiert wird, der Interneuronenabstand zu. Wenn jedoch die Interneuronen-Datenübertragung digital ausgeführt wird, kann im Vergleich zum Fall, bei dem analoge Signale zur Kommunikation verwendet werden, eine Datenübertragung über einen großen Weg realisiert werden.
  • Die folgende Beschreibung ist auf Neuronen gemäß anderen Ausführungsbeispielen der Erfindung gerichtet.
  • Ein gemäß einem Zellenmodell und einem Synapsenmodell aufgebautes Neuron empfängt als Eingangssignale die Ausgangssignale der anderen und ordnet dem letzteren die Gewichtungen zu, woraufhin das erstgenannte Neuron die unten angegebene Berechnung ausführt, um einen Ausgangswert xi zu erzeugen. Wenn die Ausgangssignale von N Neuronen mit den Kennzahlen "0" bis "N - 1" durch x&sub0;, x&sub1; ...., xj, ..., XN-1 repräsentiert werden, führt jedes Neuron die wie folgt gegebene Berechnung aus:
  • wobei die Funktion f die wie folgt gegebene Sigmoidfunktion repräsentiert:
  • f(S) = 1/(1 + exp( - S)/T)) (9),
  • wobei einen Schwellenwert repräsentiert und T eine Konstante repräsentiert, die im Allgemeinen 1 (eins) ist.
  • Im Fall der nachfolgend beschriebenen beispielhaften Ausführungsformen der Erfindung erfolgt die Interneuronen-Datenübertragung unter Verwendung eines digitalen Signals, wobei die Multiplikations- und Additionsberechnung innerhalb jedes Neurons dadurch ausgeführt wird, dass man sich auf eine Analogtechnik stützt und wobei das Ergebnis der Analogberechnung dann in ein digitales Signal umgesetzt wird. Wenn das Ausgangssignal der analogen Neuronenschaltung mit digitaler Schnittstelle viele Werte hat, wird die Eingabe/Ausgabe hinsichtlich des digitalen Signals unempfindlicher gegenüber Störsignalen als im Fall eines analogen Signals ausgeführt. Ferner kann, da die Multiplikations- und Additionsbe rechnung unter Verwendung der Analogtechnik ausgeführt wird, die Berechnung mit einer kleineren Anzahl von Neuronenbildungselementen im Vergleich mit dem Fall realisiert werden, in dem digitale Signale verarbeitet werden.
  • Fig. 36A ist ein schematisches Diagramm, das eine beispielhafte Ausführungsform eines Neurons zeigt, bei dem die Interneuronen-Datenübertragung dadurch ausgeführt wird, dass ein digitales Signal genutzt wird, während Intraneuronen- Multiplikations- und Additionsberechnung unter Verwendung analoger Signale ausgeführt wird. Im Fall des in Fig. 36A dargestellten Ausführungsbeispiels besteht ein einzelnes Neuron 100 aus einem Zellenkörper oder einer Zellenschaltung (Funktionsschaltung) 10 sowie einer Synapsenschaltung (skalare Schaltung) 11. Es ist jedoch zu beachten, dass die Synapsenschaltung in beliebiger Anzahl nicht kleiner als eins, einschließlich, vorhanden sein kann. In diesem Fall sind alle Ausgänge der Synapsenschaltung 11 mit einem Eingangsknoten 803 des Zellenkörpers oder der Zellenschaltung (Funktionsschaltung) 10 verbunden. Der Ausgangsanschluss 71 der Zellenschaltung (Funktionsschaltung) bildet auch den Ausgang des Neurons 100.
  • Der Ausgang jedes der anderen einzelnen Neuronen 100 ist mit einem Eingangsanschluss 61 einer digitalen PWM(Impulsbreitenmodulations)-Wandlerschaltung 13 verbunden, um dadurch eine Umsetzung in ein Impulssignal mit einer Impulsbreite oder -dauer proportional zum Eingangswert zu erzielen, das an einen Eingangsknoten der Synapsenschaltung 11 ausgegeben wird. Die Synapsenschaltung 11 gewichtet die Ausgangssignale der einzelnen Neuronen 100. Zu diesem Zweck ist eine Gewichtungsstrom-Generatorschaltung 501 vorhanden, die am Eingang mit den Gewichtungskoeffizienten wij für die Neuronenausgangssignale von einer digitalen Gewichtungskoeffizient- Ausgabeschaltung 36, die aus einem Speicher oder Register oder dergleichen bestehen kann, wobei die Gewichtungskoeffizienten Wij vorab in den Speicher oder das Register eingeschrieben werden können, versorgt wird. Die Gewichtungsstrom-Erzeugungsschaltung 501 enthält eine mit einem internen Knoten 802 der Synapsenschaltung 11 verbundene Stromquelle 701, die einen Strom mit einer Stärke proportional zum Gewichtungskoeffizient erzeugt. Ein Umschalter 504 dient zum Umschalten des internen Knotens 802 und des Eingangsknotens der Zellenschaltung (Funktionsschaltung) 10 zwischen dem leitenden Zustand und dem nichtleitenden Zustand. Dieser Umschalter 504 wird durch das Impulssteuersignal gesteuert, das von der digitalen PWM-Wandlerschaltung 13 an den Eingangsknoten 51 gelegt wird. Genauer gesagt, versetzt der Umschalter 504 den internen Knoten 802 und den Zelleneingangsknoten 803 nur für eine Zeit, die der Impulsbreite des am Eingangsknoten 51 eingegebenen Impulssignals entspricht, in den leitenden Zustand. Die in den Zelleneinqangsknoten 803 zu diesem Zeitpunkt fließ ende Ladung wird durch die Gewichtungsstrom-Erzeugungsschaltung 501 bestimmt. Demgemäß verhält sich das Ausmaß der zum Zelleneingangsknoten 803 fließenden elektrischen Änderung proportional zum Produkt wij, xj aus dem Neuronenausgangswert xj und dem zugehörigen Gewichtungskoeffizient wij. Mit dem Zelleneingangsknoten 803 ist eine Kapazität 507 verbunden, wodurch das Potential am Zelleneingangsknoten 803 eine Änderung proportional zum Produkt wij, xj erfährt. Durch Ausführen der oben beschriebenen Operation für die Ausgangswerte der anderen Neuronen 100 erfährt das Potential am Zelleneingangsknoten 803 eine Änderung, die wie folgt gegeben ist:
  • Eine derartige Potentialänderung kann gleichzeitig für meh rere mit dem Zelleneingangsknoten 803 verbundene Synapsenschaltungen 2 bewerkstelligt werden. Wie es oben in Verbindung mit den in den Fig. 1 sowie 7 bis 20 dargestellten beispielhaften Ausführungsformen beschrieben ist, kann die Multiplikations- und Additionsoperation unter Verwendung der einzelnen Synapsenschaltung 11 auf Zeitmultiplexbasis ausgeführt werden. Es sei angegeben, dass die Kapazität 507 nicht die parasitäre Kapazität ist, sondern sie auf die unten angegebene Weise konzipiert ist. Wenn nämlich mit QMAX die Maximalgröße der elektrischen Ladung repräsentiert wird, wie sie am Zelleneingangsknoten 803 durch alle mit diesem einzelnen Zelleneingangsknoten 803 verbundenen Synapsenschaltungen 11 eingespeichert wird, wird die Kapazität 507 so ausgewählt, dass sie die folgende Bedingung erfüllt:
  • C = QMAX/&Delta;MAX (10)
  • Alternativ kann die Kapazität 507 im Fall einer LSI durch eine entsprechende Verdrahtung realisiert sein, oder dadurch, dass die Gatekapazität eines vorhandenen MOSFET verwendet wird oder zusätzlich ein MOSFET bereitgestellt wird, um die Kapazität 507 einzustellen.
  • Anschließend werden innerhalb des Zellenkörpers oder der Zellenschaltung (Funktionsschaltung) 10 eine Analog/Digital- Umsetzung (A/D-Umsetzung) und eine nichtlineare Transformation oder Umsetzung (entsprechend der Sigmoidfunktion) ausgeführt, wobei das zugehörige Ergebnis am Ausgangsanschluss in Form eines digitalen Werts ausgegeben wird. Genauer gesagt, wird das Potential am Zelleneingangsknoten 803 durch einen Analog-Digital-Wandler 3 in ein digitales Signal umgesetzt, das dann auf eine interne Datenleitung 804 ausgegeben wird und anschließend in eine Schaltung 26 für nichtlineare Umsetzung eingegeben wird, um eine Transformation entsprechend der Sigmoidfunktion zu erfahren, wobei das Ergebnis schließlich am Ausgangsanschluss 71 ausgegeben wird.
  • Gemäß der Lehre der Erfindung, wie sie im oben beschriebenen Ausführungsbeispiel verkörpert ist, wird die Multiplikations- und Additionsoperation durch Einspeicherung oder Entnahme elektrischer Ladung in die bzw. aus der Kapazität 507 realisiert, wobei dieser Vorgang demgemäß mit niedrigem Energieverbrauch realisiert werden kann. Ferner kann, da die elektrische Ladung in einer statischen Kapazität eingespeichert wird, die Additionsoperation entweder parallel oder auf Zeitmultiplexbasis ausgeführt werden. In diesem Zusammenhang sei beispielsweise angenommen, dass die Gewichtung durch Widerstände realisiert wird, die zwischen die Ausgänge der Neuronenschaltungen und die Eingänge der folgenden Neuronenschaltungen geschaltet sind, wobei die anfängliche Multiplikations- und Additionsoperation dadurch erfolgt, dass die durch die Widerstände fließenden Ströme aufsummiert werden. In diesem Fall beläuft sich, wenn der durch die Signalsynapsenschaltung fließende Strom bei einer Quellenspannung von 4 V zu 100 ua im Mittel angenommen wird, der Energieverbrauch aller Synapsenschaltungen auf 100 W, wenn die Anzahl der Neuronenschaltungen 500 ist, wobei jede Neuronenschaltung 500 Synapsenschaltungen enthält. Demgegenüber hat im Fall des vorliegenden Ausführungsbeispiels, bei dem die Anzahl der Neuronenschaltungen 500 beträgt, von denen jede 500 Synapsenschaltungen enthält, der Energieverbrauch in allen Synapsenschaltungen den Niedrigen Wert von 5 W, wenn der durch eine Gewichtungsstrom-Erzeugungsschaltung eingestellte Strom im Mittel 50 ua beträgt, die zum Zuführen des Stroms zur Kapazität über den Umschalter 504 aufgebrachte Zeit im Mittel 20 ns beträgt, die für die Berechnung hinsichtlich einer Neuronenschaltung gemäß dem Ausdruck (8) benötigte Zeit 200 ns beträgt und die Quellenspannung 4 V beträgt. Anders gesagt, kann der Energieverbrauch gemäß der erfindungsgemäßen Lehre merklich verringert werden.
  • Wie es nun aus der obigen Beschreibung ersichtlich ist, kann eine Neuronenschaltung realisiert werden, bei der die Eingabe/Ausgabe-Operation mit einem digitalen Signal ausgeführt wird, während die Multiplikations/Additions-Operation mit analogen Größen ausgeführt wird.
  • Es sei hinzugefügt, dass, anstatt ein Impulssignal mit einer Impulsbreite proportional zum Eingangswert als Eingangssignal für die Synapsenschaltung 11 zu verwenden, ein Impulssignal mit einer Impulsdichte proportional zum Eingangswert für im Wesentlichen dieselbe Wirkung verwendet werden kann.
  • Fig. 36B ist ein Schaltbild, das eine Modifizierung des in Fig. 36A dargestellten Ausführungsbeispiels zeigt, mit einer Konzeption für Realisierung in einer CMOS-LSI.
  • In der folgenden Funktionsbeschreibung wird die Funktion zum Erhöhen des Potentials an einen Zelleneingangsknoten 803 als "erregende" Funktion oder "Erregung" bezeichnet, während die Funktion zum Absenken des Potentials am Zelleneingangsknoten 803 als "unterdrückende" Funktion oder "Unterdrückung" bezeichnet wird. Die Erregung und die Unterdrückung werden abhängig von einem Vorzeichenbit &omega;s des von einer digitalen Gewichtungskoeffizient-Ausgabeschaltung 36 ausgegebenen Gewichtungskoeffizients gesteuert. In Fig. 3GB ist angenommen, dass die Erregungsfunktion dann wirkt, wenn das codierte Gewichtungskoeffizientenbit &omega;s das Potential VVS (niedriger Pegel oder "0") einnimmt, während die Unterdrückungsfunktion wirksam ist, wenn das codierte Gewichtungskoeffizientenbit das Potential VVD (hoher Pegel oder "1" einnimmt).
  • Die Beschreibung wird als erstes auf eine beispielhafte Schaltungskonfiguration der Gewichtungskoeffizient-Stromgenerator 501 und des Umschalters 504 gerichtet. Sourceelek troden mehrerer (z. B. vier) PMOSFETs, die mit P&sub1; bis P&sub4; bezeichnet sind, sind mit einer Spannungsquelle VDD verbunden, ihre Drainelektroden sind mit einem internen Knoten 810 verbunden, und ihre Gateelektroden sind jeweils mit den Vorzeichenbits &omega;&sub1; bis &omega;&sub4; verbunden. Ferner sind mit N&sub1; bis N&sub4; bezeichnete MOSFETs vorhanden, deren jeweilige Sourceelektroden mit einer Spannungsquelle VSS verbunden sind, deren Drainelektroden mit einem internen Knoten 811 verbunden sind und deren Gateelektroden mit den Vorzeichenbits &omega;&sub1; bis &omega;&sub4; der Gewichtungskoeffizient-Ausgabeschaltung 36 verbunden sind. Zusätzlich vorhanden ist ein mit P&sub0; bezeichneter PMOSFET, dessen Drainelektrode mit dem Zelleneingangsknoten 803 verbunden ist, dessen Sourceelektrode mit einem internen Knoten 810 verbunden ist und dessen Gateelektrode mit einem internen Knoten 812 verbunden ist. Auch ist ein mit N&sub0; bezeichneter NMOSFET vorhanden, dessen Drainelektrode mit dem Zelleneingangsknoten 803 verbunden ist, dessen Sourceelektrode mit dem internen Knoten 811 verbunden ist und dessen Gateelektrode mit einem internen Knoten 813 verbunden ist. Die Umschaltstufe 504 ist so konzipiert, dass dann, wenn sich das codierte Gewichtungskoeffizientenbit &omega;s auf niedrigem Pegel befindet, das in den Synapseneingangsknoten 51 eingegebene Impulssignal in ein Impulssignal umgesetzt wird, das den PMOSFET P&sub0; einschaltet, wobei das Impulssignal an den internen Knoten 812 ausgegeben wird, während dann, wenn sich das Vorzeichenbit &omega;s auf hohem Pegel befindet, das oben genannte Impulssignal in ein Impulssignal umgesetzt wird, das den NMOSFET N&sub0; einschaltet, wobei das Impulssignal dann an den internen Knoten 813 ausgegeben wird. Zu diesem Zweck sind eine Inverterschaltung 22, deren Eingang das Vorzeichenbit &omega;s des Gewichtungskoeffizienten erhält und die den zugehörigen logischen Umkehrwert ausgibt, eine NAND-Schaltung 24 mit zwei Eingängen zum Ausführen einer NAND-Operation an den Ausgangssignalen des Synapsenschaltung-Eingangsknoten 51 und dem Ausgangssignal der Inverterschaltung 22, wobei das Ergebnis der NAND-Operation an den internen Knoten 812 ausgegeben wird, und eine UND-Schaltung 24 mit zwei Eingängen vorhanden, um an den Ausgangssignalen des Synapsenschaltung-Eingangsknoten und dem Vorzeichenbit &omega;s des Gewichtungskoeffizients eine UND-Operation auszuführen, deren Ergebnis an den internen Knoten 813 ausgegeben wird.
  • Durch Einstellen der Gatebreiten der PMOSFETs P&sub1; bis P&sub4; sowie der NMOSFETs N&sub1; bis N&sub4; in der Größenordnung der Potenz "2" können 16 Gewichtungsgrade realisiert werden. Wenn die Leitfähigkeiten der PMOSFETs P&sub0; bis P&sub4; im EIN-Zustand durch durch Gp0 bis Gp4 repräsentiert werden, werden Gp2 bis Gp4 wie folgt eingestellt:
  • Gp2 = 2¹ · Gp1 (11)
  • Gp3 = 2² · Gp1 (11)
  • Gp4 = 2³ · Gp1 (11)
  • Nun ist, wenn die Ausgangsbits der digitalen Gewichtungskoeffizient-Ausgabeschaltung 36, die mit den Gates der PMOSFETs P&sub1; bis P&sub4; verbunden ist, mit &omega;&sub1; bis &omega;&sub4; repräsentiert werden, der Leitfähigkeitswert zwischen VDD und dem Zelleneingangsknoten 803 durch den folgenden Ausdruck (12) gegeben, wenn das Vorzeichenbit &omega;&sub5; des Gewichtungskoeffizients "0" ist. D. h., es gilt:
  • 1/(1/Gp0 + 1(Cp1 · ( &sub1; · 2&sup0; + &omega;&sub2; · 2¹ + &omega;&sub3; · 2¹ + &omega;&sub4; · 2³)) (12)
  • Wenn
  • Gp0 > > Gp1 · (2&sup0; + 2¹ + 2² + 2³) (13)
  • gilt, kann der Leitfähigkeitswert zwischen VDD und dem Zelleneingangsknoten 803 durch den folgenden Ausdruck angenähert werden:
  • &omega;s · Gp1 ( &sub1; · 2&sup0; + &sub2; · 2¹ + &sub3; · 2² + &sub4; · 2³) (14)
  • So wird die Gatebreite des PMOSFET P&sub0; größer als diejenigen der PMOSFETs P&sub1; bis P&sub4; eingestellt, so dass die durch den Ausdruck (13) gegebene Bedingung erfüllt sein kann. Auf ähnliche Weise sind die Leitfähigkeitswerte der NMOSFETs N&sub0; bis N&sub4; durch Gn0 bis Gn4 repräsentiert:
  • Gn2 = 2¹ · Gn1
  • Gn3 = 2² · Gn1 (15)
  • Gn4 = 2³ · Gn1
  • Wenn die folgende Einstellung erfolgt:
  • Gn0 > > Gn1 · (2&sup0; + 2¹ + 2² + 2³) (16)
  • kann der Leitfähigkeitswert zwischen Zellenschaltungs-Eingangsknoten 803 und VSS durch den folgenden Ausdruck angenähert werden:
  • &omega;s · Gn1(&omega;&sub1; · 2&sup0; + &omega;&sub2; · 2¹ + &omega;&sub3; · 2² + &omega;&sub4; · 2³) (17)
  • Durch Betreiben der PMOSFETs P&sub1; bis P&sub4; und der NMOSFETs N&sub1; und N&sub2; im Sättigungsbereich, dient die Gewichtungskoeffizientenstrom-Erzeugungsschaltung 501 als Stromquelle, die einen Strom mit einer Stärke im Wesentlichen proportional zum Gewichtungskoeffizient liefern kann. Obwohl der Gewichtungskoeffizient im Fall des in Fig. 36B dargestellen Ausführungsbeispiels durch 5 Bits einschließlich des Vorzeichenbits ausgedrückt ist, ist es selbstverständlich möglich, zu diesem Zweck eine andere Anzahl von Bits zu verwenden.
  • Nachdem die Gewichtungskoeffizientenstrom-Erzeugungsschaltung 501 eingestellt wurde, liefert die Synapsenschaltung 11 das Impulssignal an den Eingangsknoten 51 der Synapsenschaltung. Wenn das Vorzeichenbit &omega;&sub3; des Gewichtungskoeffizients auf niedrigem Pegel steht, wird der PMOSFET P&sub0; für eine Periode, die der Impulsbreite des Impulssignals entspricht, wie das Vorzeichenbit repräsentierend, in den EIN- oder leitenden Zustand versetzt, während der NMOSFET N&sub0; für eine Periode entsprechend der oben genannten Impulsbreite in den EIN- oder leitenden Zustand versetzt wird, wenn sich das Gewichtungskoeffizient-Vorzeichenbit &omega;s auf hohem Pegel befindet, wodurch elektrische Ladung in den Zelleneingangsknoten 803 eingespeist wird.
  • Als nächstes wendet sich die Beschreibung der AD-Wandlerschaltung 3 zu. Als erstes wird der Auf-Ab-Zähler 81 zurückgesetzt, bevor die Synapsenschaltung 11 betrieben wird. Ferner werden der Zelleneingangsknoten und der interne Knoten 805 der Zellenschaltung 1 auf jeweils ein Potential von (VDD + VSS)/2 Volt voraufgeladen. Anschließend wird die oben angegebene Multiplikations- und Additionsoperation ausgeführt, was zur Folge hat, dass das Potential am Zelleneingangsknoten 803 einen Ladevorgang erfährt, der dem Wert entspricht, wie er sich aus der Multiplikations- und Additionsoperation ergibt. Bei Abschluss der Arithmetikoperation der Synapsenschaltung 11 vergleicht die Zellenschaltung 1 unter Verwendung des Komparators 20 das Potential VN am Zelleneingangsknoten 803 mit dem Potential VR am internen Knoten 805. Die Impulssteuerschaltung 18 gibt das Taktsignal auf den Taktsignal-Eingangsanschluss 201, und sie reagiert dadurch auf das vom Komparator 20 ausgegebene Steuersignal, dass sie den Taktsignalimpuls an den internen Knoten 2002 legt, so dass der PMOSFET P&sub1;&sub0; auf EIN geschaltet wird, wenn VN > VR gilt, während dann, wenn VN < VRgilt, der Taktsignalimpuls so umgesetzt wird, dass der FET N&sub1;&sub0; eingeschaltet wird, mit anschließendem Anlegen an den internen Knoten 2003. Es sind ein PMOSFET P&sub1;&sub0; mit einer mit dem internen Knoten 805 ver bundenen Drainelektrode, einer mit VDD verbundenen Sourceelektrode und einer mit dem internen Knoten 2002 verbundenen Gateelektrode sowie ein NMOSFET N&sub1;&sub0; mit einer mit dem internen Knoten 805 verbundenen Drainelektrode, einer mit VSS verbundenen Sourceelektrode und einer mit dem internen Knoten 2003 verbundenen Gateelektrode vorhanden. Im Ergebnis erfährt, wenn ein Impuls mit konstanter Impulsbreite an den internen Knoten 2002 oder den internen Knoten 2003 einmal oder mehrmals angelegt wird, dass Potential VR am internen Knoten eine Änderung proportional zur Anzahl der übertragenen Impulse. Demgemäß werden die Potential VN und VR einander im Wesentlichen gleich, was schließlich zur Umkehrung des Ausgangssignals des Komparators 20 führt. Zu diesem Zeitpunkt beendet die Impulssteuerschaltung 18 die Übertragung der Impulse. Die von der Impulssteuerschaltung 18 ausgegebenen Impulse werden auch an den Auf-Ab-Zähler 81 geliefert. Die Eingänge dieses Auf-Ab-Zählers 81 sind mit dem internen Knoten 2002 bzw. dem internen Knoten 2003 verbunden. Dabei zählt der Auf-Ab-Zähler beim Anlegen eines Impulses an den internen Knoten 2002, der dafür sorgt, dass der PMOSFET P&sub1;&sub0; eingeschaltet wird, um +1 hoch während er beim Anlegen eines Impulses an den internen Knoten 2003, der dafür sorgt, dass der NMOSFET N&sub1;&sub0; einschaltet, um -1 nach unten zählt. Nachdem die oben beschriebene Operation für die von allen Neuronenschaltungen eintreffenden Daten ausgeführt wurde, repräsentiert der Inhalt des Auf-Ab-Zählers 81 das Ergebnis der Multiplikations/Additions-Operation. Dieses Ergebnis wird dann an eine interne Datenleitung 804 ausgegeben.
  • Es ist auch möglich, eine solche Anordnung zu treffen, dass jedesmal dann, wenn die Synapsenschaltung 11 das Ausgangssignal von einer jeweiligen der einzelnen Neuronenschaltungen 100 empfängt, der Zelleneingangsknoten 803 auf die Hälfte voraufgeladen wird, wie oben beschrieben, um dadurch den Multiplikationsvorgang auszuführen. In diesem Fall wird kein Rücksetzen des Auf-Ab-Zählers 81 ausgeführt, was bewirkt, dass er als Akkumulator arbeitet.
  • Als nächstes wird eine konkrete Schaltungskonfiguration der Schaltung für nichtlineare Transformation oder Umsetzung im Einzelnen unter Bezugnahme auf die Fig. 37A und 37B beschrieben, wobei Fig. 37A graphisch entlang der Ordinate aufgezeichnete Werte, wie sie die Sigmoidfunktion einnimmt, darstellt, wobei Eingangswerte entlang der Abszisse aufgetragen sind, und Fig. 37B zeigt eine Speicherkarte.
  • Es wird zunächst auf Fig. 37A Bezug genommen, gemäß der Werte der Sigmoidfunktion, wie sie für die eingebenen Adressen auszugeben sind, an denjenigen Adressen in den Speicher eingeschrieben sind, die den Werten entsprechen, die sich aus der Multiplikations- und Additionsoperation ergeben. Die Schaltung 26 für nichtlineare Umsetzung enthält intern den Speicher, und sie empfängt an ihrem Eingang das Ergebnis der Multiplikations- und Additionsoperation, um dadurch den Wert an den Ausgangsanschluss 71 auszugeben, der an er entsprechenden Adresse eingetragen ist. Der Ausgangswert ist ein digitaler Wert.
  • Eine Anzahl der oben beschriebenen Neuronenschaltungen 100 ist miteinander verbunden, um ein neurales Netzwerk zu bilden, in dem die vorstehend beschriebene Operation wiederholt wird. Die arithmetische Operation wird ausgeführt, bis alle Ausgangssignale der Neuronenschaltungen 100 stabilisiert sind (ausreichend konvergiert haben). Jedoch tritt manchmal der Fall auf, dass die Ausgangssignale nicht auf die optimale Lösung konvergieren (Problem mit einem örtlichen Minimum). In einem solchen Fall kann eine Konvergenz auf die optimale Lösung dadurch erzielt werden, dass ein simuliertes Reassoziieren ausgeführt wird, das dadurch erzielt werden kann, dass die Konstante T (Temperatur) in der durch den Ausdruck (9) gegebenen Sigmoidfunktion geändert wird. Da die Schaltung 26 für nichtlineare Übersetzung oder Umsetzung eine derartige Struktur aufweist, dass die Funktionen in den Speicher eingeschrieben sind, wobei der Speicherinhalt an der dem Eingangswert entsprechenden Adresse ausgegeben wird, kann das simulierte Reassoziieren auf vereinfachte Weise dadurch ausgeführt werden, dass der Inhalt des durch einen RAM (Direktzugriffsspeicher) gebildeten Speichers umgeschrieben wird.
  • Gemäß dem nun betrachteten Ausführungsbeispiel der Erfindung wird der Gewichtungskoeffizient als digitales Signal gehandhabt. In diesem Zusammenhang kann daran gedacht werden, dass ein analoges Signal auf den Gateanschluss des MOSFET gegeben wird, um die Leitfähigkeit des Drain-Source-Pfads des MOSFET zu steuern, um dadurch den Gewichtungskoeffizient und den Eingangswert in Form einer Größe mit vielen Werten auszudrücken. Wenn jedoch das Ergebnis der arithmetischen Operation in Form einer Größe mit vielen Werten auszugeben ist, ist es wegen der nichtlinearen Eigenschaften eines MOSFET schwierig, die oben genannte Leitfähigkeit des MOSFET durch die Gatespannung einzustellen.
  • Im Fall des neuralen Netzwerks gemäß dem vorliegenden Ausführungsbeispiel der Erfindung wird die Multiplikations/Additions-Operation innerhalb der Neuronenschaltung dadurch ausgeführt, dass ein analoger Prozess genutzt wird, während die Eingabe/Ausgabe-Operation der Neuronenschaltung digital ausgeführt wird. Durch eine solche Anordnung kann die Neuronenschaltung mit einer beachtlich kleinen Anzahl von Bauelementen im Vergleich mit einer Neuronenschaltung realisiert werden, die nur aus digitalen Schaltungsanordnungen besteht. Ferner können, da die Eingabe/Ausgabe-Operation unter Verwendung eines digitalen Signals ausgeführt wird, Probleme wie Störsignaltoleranzen und Signalschwächung aufgrund des Leitungswiderstands hinsichtlich eines analogen Signals umgangen werden, wie sie auftreten können, wenn die Datenübertragung zwischen den Neuronenschaltungen unter Verwendung eines analogen Signals ausgeführt wird, wodurch das Design stark vereinfacht werden kann.
  • Fig. 38 ist ein schematisches Schaltbild, das eine Schaltungskonfiguration des digitalen PWM-Wandlers 13 zeigt. In dieser Figur bezeichnet die Bezugszahl 2101 einen Eingangsanschluss für ein Umsetzungs-Startsignal, die Zahl 2102 bezeichnet einen Taktsignal-Eingangsanschluss, die Zahlen 2103 bis 2106 bezeichnen jeweils Dateneingangsanschlüsse, die Zahl 2110 bezeichnet einen 4-Bit-Zähler, die Zahl 2111 bezeichnet ein RS-Flipflop, die Zahl 2112 bezeichnet eine UND- Schaltung mit vier Eingängen, und die Bezugszahl 2110 bezeichnet eine Inverterschaltung. Der Zähler 2110 wird jedesmal dann um eins dekrementiert, wenn der Impuls des Taktsignals vom Knoten eingegeben wird. Wenn die Daten als erstes auf die Eingangsanschlüsse 2103 bis 2106 gegeben werden und dann ein Impuls an den Umsetzungsstartsignal-Eingangsanschluss 2101 gegeben wird, wird das Ausgangssignal des Flipflops 2111 hoch. Gleichzeitig wird die Übertragung des Taktsignals an den Knoten 2102 gestartet. Der bereits im Zähler 2110 vorhandene Datenwert wird jedesmal dann um eins dekrementiert, wenn der Taktsignalimpuls eingegeben wird. Wenn der Zähler schließlich "0" ausgibt, wird das Ausgangssignal der UND-Schaltung 2112 mit vier Eingängen hoch, wobei der Ausgang des RS-Flipflops 2111 auf den niedrigen Pegel rückgesetzt wird. Das Ausgangssignal des RS-Flipflops 2111 wird für eine Zeitspanne ab der Eingabe des Umsetzstartsignals bis zur Eingabe einer Anzahl von Taktsignalimpulsen auf hohem Pegel gehalten, wobei Eingangswerte in die Eingangsanschlüsse 2103 bis 2106 eingegeben werden. Durch Ausführen des oben beschriebenen Vorgangs kann ein digitales Signal in ein PWM-Signal umgesetzt werden.
  • Fig. 39 ist ein schematisches Schaltbild, das ein neurales Netzwerk vom Hopfieldtyp zeigt, das unter Verwendung von N Neuronenschaltungen 100 realisiert ist und eine andere beispielhafte Ausführungsform der Erfindung bildet. Gemäß Fig. 39 besteht jede der Neuronenschaltungen 100 aus einer Synapsenschaltung 11 und einer Zellenkörperschaltung 10. Jeweils zwei dieser Neuronenschaltungen 100 sind zu einem Paar kombiniert, wobei die Zelleneingangsknoten 803a und 803b der paarigen Neuronenschaltungen 100 mit einer Halbvoraufladeschaltung 41 verbunden sind, die dazu dient, die Zelleneingangsknoten 803a und 803b auf Spannungspegel von (VDD + VSS)/2 Volt voraufzuladen. Alle Ausgangsanschlüsse der N Neuronenschaltungen 100 sind mit einem im Zeitmultiplex arbeitenden Rundruf-Netzwerk 35 verbunden. Wenn die von den Ausgangsanschlüssen 71 der einzelnen Neuronenschaltung 4 ausgegebenen Ausgangswerte mit x&sub0;, x&sub1;, x&sub2;, ..., xN-1 bezeichnet werden, wählt das im Zeitmultiplex arbeitende Rundruf-Netzwerk 35 einen dieser Ausgangswerte aus, um dadurch die Werte x&sub0; bis xN-1 sequentiell in dieser Reihenfolge an den digitalen PWM-Wandler 13 auszugeben. Der digitale PWM- Wandler 13 setzt den Ausgangswert jeder Neuronenschaltung 100 in ein Impulssignal mit einer Impulsbreite oder Impulsdichte proportional zum Eingangswert (d. h. dem Ausgangssignal der Neuronenschaltung) um, um dadurch das Impulssignal an die Eingangsanschlüsse 51 aller Neuronenschaltungen 100 zu senden. Durch N-maliges Ausführen des oben beschriebenen Vorgangs treffen alle von der Neuronenschaltung 100 erforderlichen Daten an den einzelnen Neuronenschaltungen 100 ein. Da die Multiplikations- und Additionsoperation im Fall des in Fig. 39 dargestellten Ausführungsbeispiels auf Zeitmultiplexbasis ausgeführt wird, erfordert eine Neuronenschaltung 100 nicht mehr als eine Synapsenschaltung 11, wodurch der Hardwareumfang sehr deutlich verringert werden kann.
  • Fig. 40A ist ein Schaltbild, das eine Konfiguration der Halbvoraufladeschaltung 41 zeigt, und Fig. 40B ist ein zeitbezogenes Diagramm zum Veranschaulichen des Betriebs der Halbvoraufladeschaltung. In Fig. 40A bezeichnen die Bezugszahlen 150 und 151 Taktsignal-Eingangsanschlüsse, und 803a und 803b bezeichnen Eingangsanschlüsse, die jeweils mit den Zellenkörper-Eingangsknoten 803 zweier Neuronenschaltungen 100 verbunden sind. Die Zahlen 507a und 507b bezeichnen mit den Zellenkörper-Eingangsknoten 803a bzw. 803b verbundene Kapazitäten. Die Bezugszahlen 71a und 71b bezeichnen die Ausgangsanschlüsse der Zellenkörperschaltung 10. In Verbindung mit den zwei Zellenkörper-Eingangsknoten 803a und 803b wird der Voraufladevorgang auf solche Weise ausgeführt, dass der Taktsignal-Eingangsanschluss 150 auf hohen Pegel gesetzt wird, während der Taktsignal-Eingangsanschluss 151 mit niedrigem Pegel versorgt wird, wodurch der eine Zellenkörper- Eingangsknoten 803a auf hohen Pegel geladen wird, während der andere Zellenkörper-Eingangsknoten 803b auf den niedrigen Pegel geladen wird. Anschließend werden, wenn der niedrige Pegel an den Taktsignal-Eingangsanschluss 150 gelegt wird, während der hohe Pegel an den Taktsignal-Eingangsanschluss 151 gelegt wird, der PMOSFET P21 und der NMOSFET N21 in den EIN- oder leitenden Zustand geschaltet, wodurch zwischen den zwei Zellenkörper-Eingangsknoten 803a und 803b ein Kurzschluss ausgebildet ist. So können, wenn die Kapazitäten 507a und 507b im Wesentlichen einander gleich realisiert werden, die zwei Zellenkörper-Eingangsknoten 803a und 803b auf jeweils die Hälfte, d. h. (VDD + VSS)/2 Volt voraufgeladen werden.
  • Fig. 41 ist ein schematisches Schaltbild, das ein neurales Netzwerk vom Hopfieldtyp zeigt, das unter Verwendung von N Neuronenschaltungen 100 realisiert ist, von denen jede aus einer Zellenkörper (Zellen)schaltung 10 und (N - 1)Synapsen schaltungen 11 besteht. Innerhalb einer Neuronenschaltung 100 sind die Ausgänge aller Synapsenschaltungen 11 mit einem Knoten der Zellenkörper-Eingangsknoten 803 verbunden (durch eine verdrahtete ODER-Verbindung). In jede Synapsenschaltung 11 wird das Ausgangssignal jeder Neuronenschaltung 100 eingegeben, woraufhin die Eingangssignale entsprechend gewichtet werden und eine Ladungsmenge, die ungefähr proportional zum Produkt ist, wird in jeden Zellenkörper-Eingangsknoten 803 (803a-803c, ..., 803z) eingespeist. So werden die Multiplikations- und Additionsoperationen durch die einzelnen Neuronenschaltungen 100 parallel ausgeführt. In der Zellenkörperschaltung 10 jeder Neuronenschaltung 100 werden eine AD-Umsetzung und eine nichtlineare Transformation ausgeführt, gefolgt von einer Umsetzung in ein Impulssignal durch die digitale PWM-Wandlerschaltung 13, wobei das Impulssignal dann an den Eingangsanschluss 51 der Synapsenschaltung 11 jeder Neuronenschaltung 100 ausgegeben wird. Der Zellenkörper-Eingangsknoten 803 (803a bis 803c, ..., 803z) jeder Neuronenschaltung 100 ist mit der Halbvoraufladeschaltung 41, wie der in Fig. 39 dargestellten, verbunden.
  • Der oben beschriebene Vorgang wird wiederholt, bis alle Ausgangswerte stabil werden.
  • Im Fall des in Fig. 41 dargestellen Ausführungsbeispiels werden die Multiplikations- und Additionsoperation wie auch die nichtlineare Transformation parallel zueinander ausgeführt. Demgemäß kann die Operationsgeschwindigkeit auf ungefähr das N-fache erhöht werden, obwohl der Hardwareumfang erhöht ist, da ungefähr das N-fache an Synapsenschaltungen im Vergleich zu denen beim in Fig. 39 dargestellten Netzwerk erforderlich ist.
  • Fig. 42 ist ein schematisches Schaltbild, das ein neurales Netzwerk vom Hopfieldtyp zeigt, das dem in Fig. 41 darge stellten ähnlich ist, sich vom letzteren jedoch dadurch unterscheidet, dass das Ausgangssignal jeder Neuronenschaltung 100 durch ein einzelnes Bit mit "0" oder "1" ausgedrückt ist. Da der Ausgangswert des Neurons durch ein einzelnes Bit ausgedrückt ist, kann die Zellenkörperschaltung 10 im Vergleich mit der oben beschriebenen vereinfacht werden. Genauer gesagt, ist eine Inverterschaltung 21 mit dem Zellenkörper-Eingangsknoten (803a-803c, ..., 803z) verbunden, wobei die zwei Eingänge einer UND-Schaltung 24 mit zwei Eingängen mit dem Ausgangsanschluss der Inverterschaltung 21 und dem Taktsignal-Eingangsanschluss 202 verbunden sind, während der Ausgangsanschluss der UND-Schaltung 24 mit dem Synapseneingangsknoten 51 jeder Synapsenschaltung 11 verbunden ist.
  • Wenn der logische Schwellenwert des Inverters 21 der Zellenkörperschaltung 10 durch VTHL repräsentiert ist, kann das von jeder Neuronenschaltung 100 erzeugte Ausgangssignal wie folgt repräsentiert werden:
  • Jede Neuronenschaltung 100 erzeugt ihr Ausgangssignal nur dann, wenn sich der Taktsignal-Eingangsanschluss 202 auf hohem Pegel befindet.
  • Im Fall der in den Fig. 41 und 42 dargestellten Ausführungsbeispiele sind die Ausgänge aller Synapsenschaltungen 11 innerhalb einer einzelnen Neuronenschaltung 100 über die verdrahtete ODER-Verbindung am Zellenkörper-Eingangsknoten 803 verbunden. In diesem Zusammenhang sei darauf hingewiesen, dass dann, wenn eine extrem große Anzahl von Synapsenschaltungen, z. B. einige hundert Synapsenschaltungen 11 mit einem Zellenkörper-Eingangsknoten 803 verbunden sind, Verdrahtungsleiter mit jeweils entsprechend erhöhter Länge erforderlich sind, was zum Ergebnis hat, dass das Signal aufgrund des Leitungswiderstands und durch Lecks geschwächt sein kann. So kann eine Situation auftreten, bei der ein Signal nicht am Zellenkörper-Eingangsknoten eintreffen kann oder es durch Störsignale beeinflusst wird oder durch Störsignale geändert wird. Um die vorstehend angegebenen Probleme zu meistern, wird durch die Erfindung ferner gelehrt, die Neuronenschaltungen 100Q mit vier Eingängen, als Neuronengrundschaltungen, in einer zweistufen Baumstruktur zu verbinden, um dadurch eine Neuronenschaltung 4T16 mit 16 Eingängen oder eine Neuronenschaltung größeren Umfangs mit einer größeren Anzahl von Eingängen dadurch zu schaffen, dass dies Neuronenschaltungen 4T16 mit 16 Eingängen in mehreren Stufen verbunden werden, wie es in Fig. 43 dargestellt ist. In dieser Figur bezeichnen die Bezugszahlen 1301 bis 1316 Eingangsanschlüsse der Synapsenschaltungen. Die in Fig. 43 dargestellte Struktur kann unter Verwendung der Neuronengrundschaltungen realisiert werden, von denen jede aus einer Neuronenschaltung mit acht Eingängen oder einer Neuronenschaltung mit zwei Eingängen besteht, wie es im Bedarfsfall erforderlich ist. In diesem Fall wird in jeder der Zwischenstelle- Zellenkörperschaltungen 10, mit Ausnahme der Zellenkörperschaltung 10 in der abschließenden Ausgangsstufe, eine lineare Transformation (Umsetzung) anstelle einer nichtlinearen Transformation ausgeführt.
  • Fig. 44 zeigt ein anderes Ausführungsbeispiel der Erfindung. Diese Schaltung ist dem in Fig. 36B dargestellten Ausführungsbeispiel hinsichtlich der Synapsenschaltung 11 ähnlich, und sie unterscheidet sich von der letzteren nur hinsicht lich der Struktur der Zellenkörperschaltung geringfügig.
  • In Fig. 44 bezeichnet das Bezugssymbol P&sub5; einen PMOSFET, und N&sub5; bezeichnet einen NMOSFET.
  • In der Zellenkörperschaltung 1b wird der Zellenkörper-Eingangsknoten 803 durch die Halbvoraufladeschaltung (nicht dargestellt) auf (VDD + VSS)/2 (V) voraufgeladen, wobei ein Auf-Ab-Zähler 81 rückgesetzt wird. Ferner ist ein Zellenkörper-Eingangsknoten vorhanden, um das Potential (VDD + VSS)/2 (V) an den Bezugsspannungs-Eingangsanschluss 806 zu legen. Der PMOSFET P&sub5; verfügt über eine mit dem Zellenkörper-Eingangsknoten 803 verbundene Drainelektrode, eine mit VDD verbundene Sourceelektrode und eine mit dem internen Knoten 2004 verbundene Gateelektrode. Andererseits verfügt der NMOSFET N&sub5; über eine mit dem Zellenkörper-Eingangsknoten 803 verbundene Drainelektrode, eine mit VSS verbundene Sourceelektrode und eine mit dem internen Knoten 2005 verbundene Gateelektrode. Das Taktsignal wird an den Taktsignal-Eingangsanschluss 201 gegeben, und das Ausgangssignal des Komparators 20 wird als Steuersignal verwendet. Genauer gesagt, wird, wenn das Ergebnis des vom Komparator 20 ausgeführten Vergleichs VN < VR2 ist, der Taktsignalimpuls an den internen Knoten 2004 gegeben, der den PMOSFET P&sub5; in den EIN- Zustand versetzt, werden dann, wenn VN > VR2 gilt, der Impuls an den internen Knoten 2005 ausgegeben wird, um den NMOSFET N&sub5; einzuschalten. Dieser Vorgang wird durch eine Impulssteuerschaltung 18 gesteuert. Nachdem der Impuls einmal oder mehrmals an den internen Knoten 2004 oder 2005 ausgegeben wurde, erhält VN ungefähr den Wert VR2, wodurch das Ausgangssignal des Komparators 200 schließlich umgekehrt wird. Zu diesem Zeitpunkt beendet die Impulssteuerschaltung 18 die Übertragung des Impulssignals. Mit dem internen Knoten 2004 und dem internen Knoten 2005 ist ein Auf-Ab-Zähler 81 verbunden, um auf das Anlegen des Impulses an den internen Kno ten 2004, der den PMOSFET P&sub5; einschaltet, "-1" zu zählen, wohingegen er auf das Anlegen des Impulses an den internen Knoten 2005, der den NMOSFET N&sub5; einschaltet, "+1" zählt. Wenn der obige Vorgang für die Daten von allen Neuronenschaltungen 100 ausgeführt wurde, zeigt der Wert des Auf-Ab- Zählers 81 das Ergebnis der Multiplikations- und Additionsoperation an, das dann einer nichtlinearen Transformation durch die Schaltung für nichtlineare Transformation unterzogen wird, wobei das zugehörige Ergebnis an den Ausgangsanschluss 11 ausgegeben wird.
  • Jedesmal dann, wenn das Ausgangssignal jeder Neuronenschaltung 100 eingegeben wird, kann der Halbvoraufladevorgang am Zellenkörper-Eingangsknoten 803 ausgeführt werden, um dadurch die Multiplikationsoperation zu realisieren. In diesem Fall wird der Auf-Ab-Zähler 810 nicht rückgesetzt, so dass er als Akkumulator arbeitet.
  • Fig. 45A zeigt eine andere Zellenkörperschaltung 1c zum Realisieren der AD-Wandlerschaltung und der Schaltung 26 für nichtlineare Transformation gemäß noch einem weiteren Ausführungsbeispiel der Erfindung. Unter Bezugnahme auf Fig. 45 erfolgt eine Beschreibung zum Betrieb, wie er folgend auf eine Potentialänderung am Zellenkörper-Eingangsknoten 803 infolge von der Synapsenschaltung 11 ausgeführten Multiplikations/Additions-Operation erfolgt.
  • Um das Potential VN am Zellenkörper-Eingangsknoten 803 mit einem Potential VR3 an einem Stufensignal-Ausgangsknoten 807 einer Stufensignal-Erzeugungsschaltung 25 auftritt, zu vergleichen, ist ein Komparator 20 vorhanden. Ferner ist ein Zähler 19 zum Zählen der Anzahl der an den Impulsausgangsknoten 808 der Stufensignal-Erzeugungsschaltung 25 unter Steuerung des Ausgangssignals des Komparators 20 ausgegebenen Impulse vorhanden. Der Zähler 19 wird rückgesetzt, bevor AD-Umsetzung und nichtlineare Transformation erfolgen. Anschließend wird das Potential VN durch den Komparator 20 mit VR3 verglichen. Der Zähler 19 fährt damit fort, die Anzahl der an den Impulsausgangsknoten 808 ausgegebenen Impulse zu zählen, bis sich das Ausgangssignal des Komparators 20 umkehrt. Der durch den Zähler 19 bei Umkehr des Ausgangssignals des Komparators 20 angezeigte Wert repräsentiert das Ergebnis der nichtlinearen Transformation oder Umsetzung. Zur nichtlinearen Transformation der Sigmoidfunktion f wird das Stufensignal VR2 in Form der Umkehrfunktion f&supmin;¹(k) der Sigmoidfunktion f für die Anzahl k der an den Impulsausgangsknoten 808 ausgegebenen Impulse ausgegeben.
  • Vorstehend wurden neurale Netzwerke vom Hopfieldtyp beschrieben. Es ist zu beachten, dass auch ein neurales Netzwerk vom Hierarchietyp realisiert werden kann. Fig. 46 zeigt ein Beispiel eines neuralen Netzwerks mit Hierarchiestruktur. Gemäß der Figur besteht die Neuronenschaltung 100 aus den Synapsenschaltungen 11 und der Zellenkörperschaltung 10. Gemäß Fig. 46 erfährt ein Eingangsmuster, das so eingegeben wird, wie es durch 2001 gekennzeichnet ist, durch die Neuronen einer Eingangsschicht 2100, einer Zwischenschicht 2200 und einer Ausgangsschicht 2300 eine arithmetische Operation, deren Ergebnis über die Neuronen der Ausgangsschicht 2300 ausgegeben wird, wie durch 2002 gekennzeichnet.

Claims (11)

1. Informationsverarbeitungssystem, aufweisend
mehrere Neuronen (100); die jeweils einen in Bezug zu den anderen Neuronen festgelegten Gewichtungskoeffizienten aufweisen und entsprechend der Gesamtsumme von Produkten des zugeordneten Gewichtungskoeffizienten und der Ausgabewerte anderer Neuronen einer Neuronengruppe einen Ausgabewert aussenden können,
gekennzeichnet durch:
einen Adressbus (302) zur Übertragung eines die Neuronen sequentiell bezeichnenden Adressignals,
einen Datenbus (300) zur Übertragung der von den Neuronen abgegebenen Ausgabewerte, und
eine Einrichtung (107, 107', 105, 106), um den Neuronen jeweils nur dann zu gestatten, ihren Ausgabewert abzugeben, wenn sie von dem Adressignal bezeichnet werden.
2. System nach Anspruch 1, das einen Zustand aufweist, in dem in einem Zyklus des Adressignals keines der Neuronen bezeichnet wird.
3. System nach Anspruch 2, wobei die Neuronen jeweils eine Schaltung (106) zur Zwischenspeicherung ihres Ausgabewerts aufweisen.
4. System nach einem der Ansprüche 1 bis 3, wobei die Neuronen in mehrere Gruppen (700, 701 bis 709) unterteilt sind und der Adressbus und der Datenbus jeweils in erste Busse (301 bis 305) zur jeweiligen Verbindung der Neuronen innerhalb einer Gruppe und einen zweiten Bus (311 bis 315) zur Verbindung der ersten Busse unterteilt sind.
5. System nach Anspruch 4, wobei der zweite Bus mittels eines Leiters größerer Breite als ein Leiter für einen ersten Bus verdrahtet ist.
6. System nach Anspruch 4, mit einem Taktbus (303) zur Lieferung eines Taktsignals an die Neuronen, so daß eine Übertragung zwischen einem ersten Bus und dem zweiten Bus synchron mit dem Taktsignal vorgenommen wird.
7. System nach einem der Ansprüche 1 bis 6, wobei einige der Neuronen auf einem Halbleiterwafer (500) ausgebildet sind.
8. System nach einem der Ansprüche 1 bis 7, wobei die Neuronen jeweils eine Adressübersetzungseinrichtung (90) zur Ausgabe eines von dem eingegebenen Adressignal verschiedenen Adressignals auf den Adressbus aufweisen, um ein eingegebenes Adressignal in für einzelne Verbindungsrichtungen des Neurons vorbestimmte einzelne Ausgangsadressignale zu übersetzen.
9. System nach Anspruch 8, wobei die Adressübersetzungseinrichtung aus einer Einrichtung (108) zum Hinzuzählen oder Abziehen mindestens eines Bits zu oder von dem eingegebenen Adressignal aufweist.
10. System nach Anspruch 8, wobei die Neuronen jeweils einen Adressdecoder (107) aufweisen, der darauf anspricht, daß das Adressignal ein vorbestimmtes Signal ist.
11. System nach einem der Ansprüche 1 bis 10, wobei die Neunonen (100) jeweils eine Speichereinrichtung (101) zur Speicherung einer kleineren Anzahl an Gewichtungskoeffizienten als Neuronen in mit dem größten Absolutwert der Gewichtungskoeffizienten beginnender Reihenfolge aufweisen.
DE69032680T 1989-01-06 1990-01-04 Neuronaler Rechner Expired - Fee Related DE69032680T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP64000299A JPH02181258A (ja) 1989-01-06 1989-01-06 ニューロネットワークを用いた半導体集積回路装置,その製造方法及びニューロネットワーク装置
JP64000297A JP2765903B2 (ja) 1989-01-06 1989-01-06 情報処理装置
JP89300A JPH02181284A (ja) 1988-02-18 1989-02-10 ニューラルネットワーク
JP1056458A JP2804069B2 (ja) 1989-03-10 1989-03-10 情報処理装置
JP26310389A JPH03125256A (ja) 1989-10-11 1989-10-11 ウェハスケール半導体集積回路

Publications (2)

Publication Number Publication Date
DE69032680D1 DE69032680D1 (de) 1998-11-05
DE69032680T2 true DE69032680T2 (de) 1999-06-02

Family

ID=27517940

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69032680T Expired - Fee Related DE69032680T2 (de) 1989-01-06 1990-01-04 Neuronaler Rechner

Country Status (3)

Country Link
US (1) US5165010A (de)
EP (1) EP0378115B1 (de)
DE (1) DE69032680T2 (de)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414865A (en) * 1985-09-17 1995-05-09 Beran; James T. Self-programming with limited sequential memory capacity
US5167006A (en) * 1989-12-29 1992-11-24 Ricoh Company, Ltd. Neuron unit, neural network and signal processing method
US5581662A (en) * 1989-12-29 1996-12-03 Ricoh Company, Ltd. Signal processing apparatus including plural aggregates
JP3260357B2 (ja) 1990-01-24 2002-02-25 株式会社日立製作所 情報処理装置
KR930009066B1 (ko) * 1990-08-18 1993-09-22 정호선 다층신경회로망 및 그 회로설계방법
JP2785155B2 (ja) * 1990-09-10 1998-08-13 富士通株式会社 ニューロコンピュータの非同期制御方式
EP0482375A3 (en) * 1990-10-22 1993-12-01 Motorola Inc Digital processing element in an artificial neural network
US5214747A (en) * 1990-12-24 1993-05-25 Eastman Kodak Company Segmented neural network with daisy chain control
JP3088171B2 (ja) * 1991-02-12 2000-09-18 三菱電機株式会社 自己組織型パタ−ン分類システム及び分類方法
US5295227A (en) * 1991-07-09 1994-03-15 Fujitsu Limited Neural network learning system
US5636327A (en) * 1991-09-18 1997-06-03 Matsushita Electric Industrial Co., Ltd. Neural network circuit
US5278945A (en) * 1992-01-10 1994-01-11 American Neuralogical, Inc. Neural processor apparatus
JPH05242065A (ja) * 1992-02-28 1993-09-21 Hitachi Ltd 情報処理装置及びシステム
JPH05251789A (ja) * 1992-03-06 1993-09-28 Ezel Inc ニューロデバイス
GB9214514D0 (en) * 1992-07-08 1992-08-19 Massachusetts Inst Technology Information processing
JPH06195322A (ja) * 1992-10-29 1994-07-15 Hitachi Ltd 汎用型ニューロコンピュータとして用いられる情報処理装置
TW230246B (de) * 1993-03-03 1994-09-11 Philips Electronics Nv
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5479574A (en) * 1993-04-01 1995-12-26 Nestor, Inc. Method and apparatus for adaptive classification
US5473731A (en) * 1993-07-20 1995-12-05 Intel Corporation Lattice based dynamic programming classification system
US5621862A (en) * 1993-07-29 1997-04-15 Matsushita Electric Industrial Co., Ltd. Information processing apparatus for implementing neural network
US5548771A (en) * 1993-11-02 1996-08-20 Motorola Inc. Multi-processor data processing system having multiple ports coupled to multiple interface circuits
US5603046A (en) * 1993-11-02 1997-02-11 Motorola Inc. Method for complex data movement in a multi-processor data processing system
US5542054A (en) * 1993-12-22 1996-07-30 Batten, Jr.; George W. Artificial neurons using delta-sigma modulation
EP0694856B1 (de) * 1994-07-28 2002-05-02 International Business Machines Corporation Daisy-Chain-Schaltung für die serielle Verbindung von Neuronalschaltungen
EP0694853B1 (de) * 1994-07-28 2002-05-02 International Business Machines Corporation Schaltung für das Vorladen von Eingangsvektorbestandteilen in eine freie Neuronalschaltung während der Erkennungsphase
DE69430528T2 (de) * 1994-07-28 2003-01-02 International Business Machines Corp., Armonk Such/Sortier-Schaltung für Neuronalnetzwerke
DE69430744T2 (de) * 1994-07-28 2003-01-30 International Business Machines Corp., Armonk Verbesserte Neuronalhalbleiterchipsarchitekturen und Neuronalnetzwerke darin
DE69430870T2 (de) * 1994-07-28 2003-03-13 International Business Machines Corp., Armonk Innovative Neuronalschaltungsarchitektur
WO1996030855A1 (fr) * 1995-03-24 1996-10-03 Tadashi Shibata Circuit arithmetique a semiconducteurs
US5956703A (en) * 1995-07-28 1999-09-21 Delco Electronics Corporation Configurable neural network integrated circuit
US6167391A (en) * 1998-03-19 2000-12-26 Lawrence Technologies, Llc Architecture for corob based computing system
RU2131145C1 (ru) * 1998-06-16 1999-05-27 Закрытое акционерное общество Научно-технический центр "Модуль" Нейропроцессор, устройство для вычисления функций насыщения, вычислительное устройство и сумматор
DE19923622A1 (de) * 1998-08-31 2000-03-02 Ralf Steiner Neuronales Netz zum rechnergestützten Wissenmanagement
US6192374B1 (en) 1998-10-10 2001-02-20 Lawrence Technologies, Llc Efficient implementations of constructs such as feature tables
US6535862B1 (en) * 1998-11-26 2003-03-18 International Business Machines Corporation Method and circuit for performing the integrity diagnostic of an artificial neural network
GB9902115D0 (en) * 1999-02-01 1999-03-24 Axeon Limited Neural networks
ATE322723T1 (de) 1999-05-24 2006-04-15 Ipcentury Ag Neuronales netz zum computergestützten wissensmanagement
US6754645B2 (en) * 2001-03-20 2004-06-22 Winbond Electronics Corp. Voltage-mode pulse width modulation VLSI implementation of neural networks
WO2002080095A2 (en) * 2001-03-30 2002-10-10 International Business Machines Coporation Circuits for pre-charging global resources in all the free neurons of an artifical neural network
US7085749B2 (en) * 2001-05-31 2006-08-01 Canon Kabushiki Kaisha Pulse signal circuit, parallel processing circuit, pattern recognition system, and image input system
US6662091B2 (en) 2001-06-29 2003-12-09 Battelle Memorial Institute Diagnostics/prognostics using wireless links
US6889165B2 (en) 2001-07-02 2005-05-03 Battelle Memorial Institute Application specific intelligent microsensors
US6947913B1 (en) 2001-08-23 2005-09-20 Lawrence Technologies, Llc Systems and methods for generating string correlithm objects
US7031969B2 (en) 2002-02-20 2006-04-18 Lawrence Technologies, Llc System and method for identifying relationships between database records
EP1408384B1 (de) * 2002-10-09 2006-05-17 STMicroelectronics S.r.l. Anordnung zur Steuerung des Betriebs eines physikalischen Systems wie zum Beispiel einer Brennstoffzelle in elektrischen Fahrzeugen
ATE542176T1 (de) * 2003-10-16 2012-02-15 Canon Kk Betriebsschaltung und betriebssteuerverfahren dafür
US9373073B2 (en) * 2012-12-21 2016-06-21 International Business Machines Corporation Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a universal substrate of adaptation
US9239984B2 (en) 2012-12-21 2016-01-19 International Business Machines Corporation Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network
JP6773970B2 (ja) * 2016-09-09 2020-10-21 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
CN110764444A (zh) 2019-10-10 2020-02-07 苏州浪潮智能科技有限公司 控制***、交换机以及对执行装置进行控制的方法
US11038520B1 (en) * 2020-04-15 2021-06-15 International Business Machines Corporation Analog-to-digital conversion with reconfigurable function mapping for neural networks activation function acceleration

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1469300A (en) * 1973-12-22 1977-04-06 Olympia Werke Ag Circuit arrangement for an integrated data processing system
JPS562662A (en) * 1979-06-22 1981-01-12 Hitachi Ltd Laminated electric circuit
US4254474A (en) * 1979-08-02 1981-03-03 Nestor Associates Information processing system using threshold passive modification
BG35575A1 (en) * 1982-04-26 1984-05-15 Kasabov Multimicroprocessor system
US4680753A (en) * 1985-04-03 1987-07-14 Texas Instruments Incorporated System and method for controlling network bus communications for input-output interlocking information among distributed programmable controllers
EP0286235B1 (de) * 1987-04-09 1996-10-16 Tandem Computers Incorporated Automatische Bestimmung der Anzahl von Prozessormodulen für Multiprozessorsysteme
GB2206428A (en) * 1987-06-15 1989-01-05 Texas Instruments Ltd Computer
WO1988010474A1 (en) * 1987-06-18 1988-12-29 University Of West Virginia State analog neural network and method of implementing same
US4943931A (en) * 1988-05-02 1990-07-24 Trw Inc. Digital artificial neural processor
US4893255A (en) * 1988-05-31 1990-01-09 Analog Intelligence Corp. Spike transmission for neural networks
JP2679730B2 (ja) * 1988-08-31 1997-11-19 富士通株式会社 階層構造ニューラルネット
JPH0264788A (ja) * 1988-08-31 1990-03-05 Fujitsu Ltd ニューロンアーキテクチャ
GB2224139A (en) * 1988-10-24 1990-04-25 Philips Electronic Associated Digital data processing apparatus
US4974169A (en) * 1989-01-18 1990-11-27 Grumman Aerospace Corporation Neural network with memory cycling

Also Published As

Publication number Publication date
DE69032680D1 (de) 1998-11-05
EP0378115A3 (de) 1993-12-22
US5165010A (en) 1992-11-17
EP0378115B1 (de) 1998-09-30
EP0378115A2 (de) 1990-07-18

Similar Documents

Publication Publication Date Title
DE69032680T2 (de) Neuronaler Rechner
DE68928385T2 (de) Neuronenrechner
DE69030778T2 (de) Ein Lernsystem in einem neuronalen Rechner
DE112017000855B4 (de) Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze
DE3854663T2 (de) Neurorechnersystem zur lösung von optimierungsproblemen.
EP0010173B1 (de) Halbleiterplättchen mit verbesserter Prüfbarkeit der monolithisch hochintegrierten Schaltungen
DE4042139C2 (de) Neuron-Einheit
DE69028617T2 (de) Halbleiterspeicher benutzendes neuronales Netzwerk
DE112016003245T5 (de) Resistive Verarbeitungseinheit
DE68927474T2 (de) Neuro-Rechner
DE69314824T2 (de) Neuronaler Prozessor mit verteilten synaptischen Zellen
DE112019000226T5 (de) Neuromorpher chip zum aktualisieren präziser synaptischer gewichtswerte
DE69019211T2 (de) Analoges programmierbares neuronales Netzwerk.
DE112019005119T5 (de) Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
DE68925625T2 (de) Verfahren zur Rückführung von Fehlern und neuronale Netzstruktur
DE69130633T2 (de) Asynchrones Steuerungssystem für einen Neurorechner
EP3502974A1 (de) Verfahren zur realisierung eines neuronalen netzes
DE102022100200A1 (de) Compute-In-Memory-Speicherarray, CIM-Speicherarray
DE2647262A1 (de) Multiplizierschaltung
CH657487A5 (de) Funktionsgenerator zur erzeugung einer anzahl von sich wiederholenden digitalen wellenformen.
DE2732008A1 (de) Einrichtung zur reduzierung von fibonacci-p-codes auf die minimalform
DE112020005613T5 (de) Neuromorphe Einheit mit Kreuzschienen-Array-Struktur
DE69713247T2 (de) Lernverfahren in Binärsystemen
EP0548127B1 (de) Neuronales Netzwerk und Schaltungsanordnung zur Bool&#39;schen Realisierung neuronaler Netze vom ADALINE-Typ

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee