DE112021006459T5 - Dynamische konfiguration einer auslese-schaltungsanordnung für verschiedene operationen in einem analogen resistiven kreuzschienen-array - Google Patents

Dynamische konfiguration einer auslese-schaltungsanordnung für verschiedene operationen in einem analogen resistiven kreuzschienen-array Download PDF

Info

Publication number
DE112021006459T5
DE112021006459T5 DE112021006459.2T DE112021006459T DE112021006459T5 DE 112021006459 T5 DE112021006459 T5 DE 112021006459T5 DE 112021006459 T DE112021006459 T DE 112021006459T DE 112021006459 T5 DE112021006459 T5 DE 112021006459T5
Authority
DE
Germany
Prior art keywords
circuit
rpu
circuitry
readout
cells
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.)
Pending
Application number
DE112021006459.2T
Other languages
English (en)
Inventor
Malte Johannes Rasch
Tayfun Gokmen
Seyoung Kim
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112021006459T5 publication Critical patent/DE112021006459T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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/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
    • G06N3/065Analogue means

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)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Analogue/Digital Conversion (AREA)
  • Logic Circuits (AREA)
  • Electronic Switches (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)

Abstract

Eine Einheit, die ein Array von Zellen einer resistiven Verarbeitungseinheit (RPU), erste Steuerleitungen, die sich in einer ersten Richtung über das Array von RPU-Zellen erstrecken, und zweite Steuerleitungen, die sich in einer zweiten Richtung über das Array von RPU-Zellen erstrecken, aufweist. Eine Peripherie-Schaltungsanordnung, die eine Auslese-Schaltungsanordnung aufweist, ist mit den ersten und den zweiten Steuerleitungen verbunden. Ein Steuersystem generiert Steuersignale, um die Peripherie-Schaltungsanordnung zu steuern, eine erste Operation und eine zweite Operation an dem Array von RPU-Zellen durchzuführen. Die Steuersignale umfassen ein erstes Konfigurationssteuersignal, um die Auslese-Schaltungsanordnung für eine erste Hardware-Konfiguration zu konfigurieren, wenn die erste Operation an dem Array von RPU-Zellen durchgeführt wird, und ein zweites Konfigurationssteuersignal, um die Auslese-Schaltungsanordnung für eine zweite Hardware-Konfiguration zu konfigurieren, die sich von der ersten Hardware-Konfiguration unterscheidet, wenn die zweite Operation an dem Array von RPU-Zellen durchgeführt wird.

Description

  • HINTERGRUND
  • Die Offenbarung betrifft im Allgemeinen analoge resistive Verarbeitungssysteme für neuromorphe Datenverarbeitung und Techniken zum Steuern einer Peripherie-Schaltungsanordnung eines analogen resistiven Verarbeitungssystems zum Durchführen verschiedener Operationen an einem Array von Zellen einer resistiven Verarbeitungseinheit (RPU) des analogen resistiven Verarbeitungssystems. Informationsverarbeitungssysteme wie zum Beispiel neuromorphe Datenverarbeitungssysteme und künstliche neuronale Netzwerk-(ANN) Systeme werden in verschiedenen Anwendungen genutzt, wie zum Beispiel Maschinenlernen und Inferenzverarbeitung für kognitive Erkennung und Datenverarbeitung. Derartige Systeme sind Systeme auf Hardware-Grundlage, die im Allgemeinen eine große Anzahl von hochgradig vernetzten Verarbeitungselementen aufweisen (die als „künstliche Neuronen“ bezeichnet werden), die zum Durchführen verschiedener Typen von Berechnungen parallel arbeiten. Die künstlichen Neuronen (z.B. präsynaptische Neuronen und postsynaptische Neuronen) sind durch Verwenden von künstlichen synaptischen Einheiten verbunden, die synaptische Gewichtungen bereitstellen, die Verbindungsstärken zwischen den künstlichen Neuronen darstellen. Die synaptischen Gewichtungen können durch Verwenden eines Arrays von RPU-Zellen mit abstimmbaren resistiven Arbeitsspeichereinheiten umgesetzt werden, wobei die Leitfähigkeitszustände der RPU-Zellen encodiert oder den synaptischen Gewichtungen anderweitig zugeordnet werden.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Ausführungsformen der Offenbarung weisen analoge resistive Verarbeitungssysteme für neuromorphe Datenverarbeitung und Techniken für dynamisches Konfigurieren einer Hardware-Konfiguration einer Peripherie-Schaltungsanordnung auf, wie zum Beispiel eine Auslese-Schaltungsanordnung, eines analogen resistiven Verarbeitungssystems beim Durchführen von verschiedenen Operationen an einem Array von RPU-Zellen des analogen resistiven Verarbeitungssystems.
  • Eine beispielhafte Ausführungsform weist eine Einheit auf, die ein RPU-Array, erste Steuerleitungen, die sich in einer ersten Richtung über das Array von RPU-Zellen erstrecken, und zweite Steuerleitungen aufweist, die sich in einer zweiten Richtung über das Array von RPU-Zellen erstrecken. Jede RPU-Zelle ist an einem Kreuzungspunkt von einer der ersten Steuerleitungen und einer der zweiten Steuerleitungen verbunden. Eine Peripherie-Schaltungsanordnung ist mit den ersten Steuerleitungen und mit den zweiten Steuerleitungen verbunden, wobei die Peripherie-Schaltungsanordnung eine Auslese-Schaltungsanordnung aufweist. Ein Steuersystem ist mit der Peripherie-Schaltungsanordnung funktionsmäßig verbunden. Das Steuersystem generiert Steuersignale, um die Peripherie-Schaltungsanordnung zu steuern, eine erste Operation an dem Array von RPU-Zellen durchzuführen und eine zweite Operation an dem Array von RPU-Zellen durchzuführen. Die Steuersignale weisen ein erstes Konfigurationssteuersignal zum Konfigurieren der Auslese-Schaltungsanordnung für eine erste Hardware-Konfiguration, wenn die erste Operation an dem Array von RPU-Zellen durchgeführt wird, und ein zweites Konfigurationssteuersignal zum Konfigurieren der Auslese-Schaltungsanordnung für eine zweite Hardware-Konfiguration auf, die sich von der ersten Hardware-Konfiguration unterscheidet, wenn die zweite Operation an dem Array von RPU-Zellen durchgeführt wird.
  • Andere Ausführungsformen werden in der folgenden ausführlichen Beschreibung von beispielhaften Ausführungsformen beschrieben, die in Verbindung mit den begleitenden Figuren zu lesen ist.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
    • 1 veranschaulicht schematisch ein Datenverarbeitungssystem, das ein Array von Zellen einer resistiven Verarbeitungseinheit gemäß einer beispielhaften Ausführungsform der Offenbarung aufweist.
    • 2A veranschaulicht schematisch eine Vorwärtsrechenoperation eines Rückpropagierungsprozesses, die unter Verwendung des Datenverarbeitungssystems von 1 ausgeführt werden kann.
    • 2B veranschaulicht schematisch eine Rückwärtsrechenoperation eines Rückpropagierungsprozesses, die unter Verwendung des Datenverarbeitungssystems von 1 ausgeführt werden kann.
    • 2C veranschaulicht schematisch eine Gewichtungsaktualisierungsoperation eines Rückpropagierungsprozesses, die unter Verwendung des Datenverarbeitungssystems von 1 ausgeführt werden kann.
    • 3A veranschaulicht schematisch ein Verfahren zum Konfigurieren eines Datenverarbeitungssystems, das ein Array von Zellen einer resistiven Verarbeitungseinheit zum Durchführen einer Vorwärtsrechenoperation gemäß einer beispielhaften Ausführungsform der Offenbarung aufweist.
    • 3B veranschaulicht schematisch Verfahren zum Konfigurieren eines Datenverarbeitungssystems, das ein Array von Zellen einer resistiven Verarbeitungseinheit zum Durchführen einer Rückwärtsrechenoperation gemäß einer beispielhaften Ausführungsform der Offenbarung aufweist.
    • 4A und 4B veranschaulichen schematisch Verfahren zum Konfigurieren eines Datenverarbeitungssystems, das ein Array von Zellen einer resistiven Verarbeitungseinheit zum Durchführen einer Vorwärtsrechenoperation durch Verwenden von Gewichtungswerten mit Vorzeichen gemäß beispielhaften Ausführungsformen der Offenbarung aufweist.
    • 5A und 5B veranschaulichen schematisch Verfahren zum Konfigurieren eines Datenverarbeitungssystems, das ein Array von Zellen einer resistiven Verarbeitungseinheit zum Durchführen einer Rückwärtsrechenoperation durch Verwenden von Gewichtungswerten mit Vorzeichen gemäß einer beispielhaften Ausführungsform der Offenbarung aufweist.
    • 6 veranschaulicht schematisch ein System zum dynamischen Konfigurieren einer Auslese-Schaltungsanordnung für verschiedene Operationen, die an einem Array von Zellen einer resistiven Verarbeitungseinheit gemäß einer beispielhaften Ausführungsform der Offenbarung durchgeführt werden.
    • 7A veranschaulicht schematisch ein System zum dynamischen Konfigurieren einer Auslese-Schaltungsanordnung für verschiedene Operationen, die an einem Array von Zellen einer resistiven Verarbeitungseinheit gemäß einer weiteren beispielhaften Ausführungsform der Offenbarung durchgeführt werden.
    • 7B veranschaulicht schematisch ein System zum dynamischen Konfigurieren einer Auslese-Schaltungsanordnung für verschiedene Operationen, die an einem Array von Zellen einer resistiven Verarbeitungseinheit gemäß einer weiteren beispielhaften Ausführungsform der Offenbarung durchgeführt werden.
    • 8 veranschaulicht schematisch ein System zum dynamischen Konfigurieren einer Auslese-Schaltungsanordnung für verschiedene Operationen, die an einem Array von Zellen einer resistiven Verarbeitungseinheit gemäß einer weiteren beispielhaften Ausführungsform der Offenbarung durchgeführt werden.
    • 9A und 9B veranschaulichen schematisch ein System zum dynamischen Konfigurieren einer Peripherie-Schaltungsanordnung mit einer Auslese-Schaltungsanordnung für verschiedene Operationen, die an einem Array von Zellen einer resistiven Verarbeitungseinheit gemäß einer weiteren beispielhaften Ausführungsform der Offenbarung durchgeführt werden.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführungsformen der Erfindung werden im Folgenden ausführlicher mit Bezug auf analoge resistive Verarbeitungssysteme für neuromorphe Datenverarbeitung und Techniken für dynamisches Konfigurieren einer Peripherie-Schaltungsanordnung, wie zum Beispiel eine Auslese-Schaltungsanordnung, eines analogen resistiven Verarbeitungssystems zum Durchführen von verschiedenen Operationen an einem Array von Zellen einer resistiven Verarbeitungseinheit (RPU) des analogen resistiven Verarbeitungssystems beschrieben. Zum Beispiel, wie im Folgenden ausführlicher erklärt, wird die Hardware-Konfiguration der Auslese-Schaltungsanordnung eines analogen resistiven Verarbeitungssystems in einigen Ausführungsformen dynamisch konfiguriert, um über verschiedene Betriebssignalbereiche für verschiedene Operationen (z.B. Vorwärts- und Rückwärtsrechenoperationen eines Trainingsprozesses eines neuronalen Netzwerks) zu verfügen, die an dem Array von RPU-Zellen des analogen resistiven Verarbeitungssystems durchgeführt werden.
  • Es sollte klar sein, dass die verschiedenen Merkmale, wie in den begleitenden Zeichnungen gezeigt, schematische, nicht maßstabsgetreu dargestellte Veranschaulichungen sind. Des Weiteren werden dieselben oder ähnliche Bezugszeichen in den Zeichnungen durchgehend verwendet, um dieselben oder ähnliche Merkmale, Elemente oder Strukturen anzugeben, und daher wird eine ausführliche Erklärung derselben oder ähnlicher Merkmale, Elemente oder Strukturen nicht für jede der Zeichnungen wiederholt. Ferner bedeutet der hierin verwendete Begriff „beispielhaft“, dass „etwas als Beispiel, Variante oder zur Veranschaulichung dient“. Jede hierin als „beispielhaft“ beschriebene Ausführungsform oder Auslegung muss nicht als gegenüber anderen Ausführungsformen oder Auslegungen bevorzugt oder vorteilhaft aufgefasst werden.
  • Zu beispielhaften Ausführungsformen der Offenbarung zählen arbeitsspeicherinterne Datenverarbeitungssysteme oder computergestützte Arbeitsspeichersysteme, die ein Array von RPU-Zellen für einen doppelten Zweck nutzen, Daten zu speichern und die Daten zum Durchführen von einigen Rechenaufgaben zu verarbeiten. In einigen Ausführungsformen setzen die RPU-Zellen resistive Arbeitsspeichereinheiten um, wie zum Beispiel resistive Direktzugriffsspeicher- (ReRAM) Einheiten, Phasenänderungsspeicher-(PCM) Einheiten usw., die eine abstimmbare Leitfähigkeit (G) mit variablen Leitfähigkeitszuständen über einen Bereich von einer Mindest-Leitfähigkeit (Gmin) bis zu einer maximalen Leitfähigkeit (Gmax) haben. Wie oben angemerkt, sind neuromorphe Datenverarbeitungssysteme und ANN-Systeme Typen von arbeitsspeicherinternen Datenverarbeitungssystemen, in denen künstliche Neuronen durch Verwenden von künstlichen synaptischen Einheiten verbunden sind, um synaptische Gewichtungen bereitzustellen, die die Verbindungsstärke zwischen zwei künstlichen Neuronen darstellen. Die synaptischen Gewichtungen können durch Verwenden von abstimmbaren resistiven Arbeitsspeichereinheiten umgesetzt werden, wobei die variablen Leitfähigkeitszustände verwendet werden, um die synaptischen Gewichtungen darzustellen und Datenverarbeitungen (z.B. Vektor-Matrix-Multiplikation) durchzuführen. Die Leitfähigkeitszustände der analogen resistiven Arbeitsspeichereinheiten sind encodiert oder synaptischen Gewichtungen anderweitig zugeordnet.
  • Verschiedene Typen von künstlichen neuronalen Netzwerken, wie zum Beispiel tiefe neuronale Netzwerke (DNNs) und neuronale Faltungsnetzwerke (CNNs) setzen neuromorphe Datenverarbeitungs-Architekturen für Maschinenlern-Anwendungen um, wie zum Beispiel Bilderkennung, Objekterkennung, Spracherkennung usw. Die arbeitsspeicherinternen Datenverarbeitungen, die derartigen neuronalen Netzwerken zugehörig sind, umfassen z.B. Trainings-Datenverarbeitungen, in denen die synaptischen Gewichtungen der resistiven Arbeitsspeicherzellen durch Verarbeiten eines Trainings-Datensatzes und von Vorwärtsinferenz-Datenverarbeitungen optimiert werden, in denen die trainierten neuronalen Netzwerke zum Verarbeiten von Eingangsdaten beispielweise zum Zweck eines Klassifizierens der Eingangsdaten, eines Vorhersagens von Ereignissen auf Grundlage der Eingangsdaten usw. verwendet werden.
  • Eine DNN-Training hängt im Allgemeinen von einem Rückpropagierungs-Algorithmus ab, der drei sich wiederholende Zyklen umfasst: Vorwärts, Rückwärts und Gewichtungsaktualisierung, die mehrmals wiederholt werden, bis ein Konvergenzkriterium erfüllt ist. Die Vorwärts- und Rückwärtszyklen umfassen hauptsächlich eine Vektor-Matrix-Multiplikation in Vorwärts- und Rückwärts-Richtung. Diese Operation kann an einem 2D-Array von analogen resistiven Arbeitsspeicherzellen durchgeführt werden. In einem Vorwärtszyklus bilden gespeicherte Leitfähigkeitswerte der resistiven Arbeitsspeichereinheit in dem 2D-Array eine Matrix, und ein Eingangsvektor wird in Form von Spannungsimpulsen durch alle Eingabezeilen in dem 2D-Array übertragen. In einem Rückwärtszyklus werden Spannungsimpulse von Spalten in Form einer Eingabe bereitgestellt, und ein Vektor-Matrix-Produkt wird auf der Spiegelung einer Matrix berechnet. Zum Aktualisieren der Gewichtung gehört ein Berechnen eines äußeren Vektor-Vektor-Produkts, das aus einer Multiplikationsoperation und einer inkrementellen Gewichtungsaktualisierung besteht, die lokal in jeder resistiven Arbeitsspeicherzelle in dem 2D-Array durchgeführt werden müssen.
  • Ein stochastisch trainiertes DNN, das Arrays von RPU-Zellen aufweist, kann synaptische Gewichtungen haben, die durch Verwenden von abstimmbaren resistiven Einheiten umgesetzt wurden. In einigen Ausführungsformen weist jede RPU-Zelle 110 in dem Datenverarbeitungssystem 100 ein resistives Element mit einem Leitfähigkeitswert auf, der ein Matrix-Element oder eine Gewichtung der RPU-Zelle 110 darstellt. In einigen Ausführungsformen werden die resistiven Elemente der RPU-Zellen 110 durch Verwenden von resistiven Einheiten umgesetzt, wie zum Beispiel resistive Schalteinrichtungen (Zwischenflächen- oder filamentartige Schalteinrichtungen), ReRAM-Einheiten, Memristor-Einheiten, PCM-Einheiten usw. und andere Typen von Einheiten, die eine abstimmbare Leitfähigkeit (oder abstimmbare Widerstandsstufe) haben, die innerhalb eines Bereichs einer Mehrzahl von verschiedenen Leitfähigkeitsstufen programmatisch angepasst werden kann, um die Gewichtung der RPU-Zelle 110 abzustimmen. In einigen Ausführungsformen können die variablen Leitfähigkeitselemente der RPU-Zellen 110 durch Verwenden von ferroelektrischen Einheiten umgesetzt werden, wie zum Beispiel ferroelektrische Feldeffekttransistor-Einheiten. Des Weiteren können die RPU-Zellen 110 in einigen Ausführungsformen durch Verwenden einer analogen Struktur auf CMOS-Grundlage umgesetzt werden, in der jede RPU-Zelle 110 einen Kondensator und einen Lesetransistor aufweist. Mit der Struktur dient der Kondensator als ein Arbeitsspeicherelement der RPU-Zelle 110 und speichert einen Gewichtungswert in der Form einer Kondensatorspannung, wobei die Kondensatorspannung an einen Gate-Anschluss des Lesetransistors angelegt wird, um einen Kanalwiderstand des Lesetransistors auf Grundlage des Pegels der Kondensatorspannung zu modulieren, und wobei der Kanalwiderstand des Lesetransistors die Leitfähigkeit der RPU-Zelle darstellt und mit einem Pegel eines Lesestroms korreliert ist, der auf Grundlage des Kanalwiderstands generiert wird.
  • Um ein DNN einwandfrei zu trainieren und eine hohe Genauigkeit zu erzielen, sollten die Betriebsmerkmale der abstimmbaren resistiven Einheiten einen strengen Satz von Spezifikationen von akzeptierbaren RPU-Einheitenparametern erfüllen, die ein bestimmter DNN-Algorithmus ohne signifikante Fehlerbestrafung tolerieren kann. Diese Spezifikationen umfassen zum Beispiel Variationen in den Schaltmerkmalen der resistiven Arbeitsspeichereinheit, wie zum Beispiel minimale inkrementelle Leitfähigkeitsänderung (±Δgmin) aufgrund eines einzelnen Potenzierungsimpulses, Symmetrie in Leitfähigkeitsänderungen nach oben und nach unten, abstimmbarer Bereich der Leitfähigkeitswerte usw.
  • 1 veranschaulicht schematisch ein Datenverarbeitungssystem, das ein Array von Zellen einer resistiven Verarbeitungseinheit gemäß einer beispielhaften Ausführungsform der Offenbarung aufweist. Insbesondere veranschaulicht 1 schematisch ein Datenverarbeitungssystem 100 (z.B. ein neuromorphes Datenverarbeitungssystem), das ein zweidimensionales (2D) Kreuzschienen-Array von RPU-Zellen 110 aufweist, die in einer Mehrzahl von Zeilen R1, R2, R3, ..., Rm und einer Mehrzahl von Spalten C1, C2, C3, ..., Cn angeordnet sind. Die RPU-Zellen 110 in jeder Zeile R1, R2, R3, ..., Rm sind allgemein mit jeweiligen Zeilen-Steuerleitungen RL1, RL2, RL3, ..., RLm verbunden (allgemein Zeilen-Steuerleitungen RL). Die RPU-Zellen 110 in jeder Spalte C1, C2, C3, ..., Cn sind allgemein mit jeweiligen Spalten-Steuerleitungen CL1, CL2, CL3, ..., CLn verbunden (allgemein Spalten-Steuerleitungen CL). Jede RPU-Zelle 110 ist an (und zwischen) einem Kreuzungspunkt (oder einer Überschneidung) einer jeweiligen einen der Zeilen- und Spalten-Steuerleitungen verbunden. In einer beispielhaften Ausführungsform weist das RPU-System 100 ein Array von 4.096 x 4.096 RPU-Zellen 110 auf.
  • Das Datenverarbeitungssystem 100 weist ferner eine Peripherie-Schaltungsanordnung 120, die mit den Zeilen-Steuerleitungen RL1, RL2, RL3, ..., RLm verbunden ist, sowie eine Peripherie-Schaltungsanordnung 130 auf, die mit den Spalten-Steuerleitungen CL1, CL2, CL3, ..., CLn verbunden ist. Ferner ist die Peripherie-Schaltungsanordnung 120 mit einem Daten-Eingabe/Ausgabe- (E/A) Schnittstellenblock 125 verbunden, und die Peripherie-Schaltungsanordnung 130 ist mit einem Daten-Eingabe/Ausgabe- (E/A) Schnittstellenblock 135 verbunden. Das Datenverarbeitungssystem 100 weist ferner eine Steuersignal-Schaltungsanordnung 140 auf, die verschiedene Typen von Schaltungsblöcken aufweist, wie beispielsweise Energie-, Takt-, Vorspannungs- und Zeitgeber-Schaltungsanordnung, um Energieverteilungs- und Steuersignale und Taktsignale zum Betreiben der Peripherie-Schaltungsanordnung 120 und 130 des Datenverarbeitungssystems 100 bereitzustellen.
  • In einer neuromorphen Datenverarbeitungsanwendung weisen die RPU-Zellen 110 künstliche Synapsen auf, die gewichtete Verbindungen zwischen präsynaptischen Neuronen und postsynaptischen Neuronen bereitstellen. Mehrere präsynaptische Neuronen und postsynaptische Neuronen werden durch das 2D-Kreuzschienen-Array von RPU-Zellen 110 verbunden, das logischerweise ein vollständig vernetztes neuronales Netzwerk ausdrückt. In einigen Ausführungsformen ist das Datenverarbeitungssystem 100 konfiguriert, um DNN- oder CNN-Berechnungen auszuführen, wobei eine Leitfähigkeit jeder RPU-Zelle 100 ein Matrixelement oder eine Gewichtung wij darstellt, die aktualisiert oder auf die durch Operationen der Peripherie-Schaltungsanordnung 120 und 130 zugegriffen werden kann (wobei wij einen Gewichtungswert für die i-te Zeile und die j-te Spalte in dem Array von RPU-Zellen 110 angibt). Wie oben angegeben, beruht die DNN-Training allgemein auf einem Rückpropagierungsprozess, der drei sich wiederholende Zyklen umfasst: einen Vorwärtszyklus, einen Rückwärtszyklus und einen Gewichtungsaktualisierungszyklus. Das Datenverarbeitungssystem 100 kann konfiguriert werden, um alle drei Zyklen des Rückpropagierungsprozesses parallel auszuführen, wodurch potenziell eine erhebliche Beschleunigung der DNN-Training mit weniger Energie und verringerten Rechenressourcen bereitgestellt wird. Das Datenverarbeitungssystem 100 kann konfiguriert werden, um Operationen einer Vektor-Matrix-Multiplikation in dem analogen Bereich parallel durchzuführen.
  • Zwar werden die Zeilen-Steuerleitungen RL und die Spalten-Steuerleitungen CL in 1 zur besseren Veranschaulichung jeweils als eine einzelne Leitung gezeigt, es sollte aber klar sein, dass jede Zeilen- und Spalten-Steuerleitung zwei oder mehr Steuerleitungen aufweisen kann, die abhängig von der Umsetzung und der spezifischen Architektur der RPU-Zellen 110 mit den RPU-Zellen 110 in den jeweiligen Zeilen und Spalten verbunden sind. Zum Beispiel kann jede Zeilen-Steuerleitung RL in einigen Ausführungsformen ein komplementäres Paar von Wortleitungen für eine bestimmte RPU-Zelle 110 aufweisen. Des Weiteren kann jede Spalten-Steuerleitung CL mehrere Steuerleitungen aufweisen, die z.B. eine oder mehrere Quellenleitungen (SL) und eine oder mehrere Bit-Leitungen (BL) umfassen.
  • Die Peripherie-Schaltungsanordnung 120 und 130 weist verschiedene Schaltungsblöcke auf, die mit den jeweiligen Zeilen und Spalten in dem 2D-Array der RPU-Zellen 110 verbunden sind, und die konfiguriert sind, um Funktionen einer Vektor-Matrix-Multiplikation, Funktionen einer Matrix-Vektor-Multiplikation und äußere Produktaktualisierungsoperationen durchzuführen, um die Vorwärts-, Rückwärts- und Gewichtungsaktualisierungs-Operationen eines Rückpropagierungsprozesses (zum Trainieren [bzw. Schulen] eines neuronalen Netzwerks) sowie eine Inferenzverarbeitung durch Verwenden eines trainierten neuronalen Netzwerks durchzuführen. Zum Beispiel weist die Peripherie-Schaltungsanordnung 120 und 130 in einigen Ausführungen zum Unterstützen von Lese-/Abtastoperationen von RPU-Zellen (z.B. Lesen eines Gewichtungswerts einer bestimmten RPU-Zelle 110) eine Pulsweitenmodulations- (PWM) Schaltungsanordnung und eine Leseimpuls-Treiber-Schaltungsanordnung auf, um PWM-Lesepulse zu generieren und an die RPU-Zellen 110 in Reaktion auf Eingangsvektorwerte (Leseeingangswerte) anzulegen, die während Vorwärts-/Rückwärts-Zyklen empfangen wurden.
  • Insbesondere weist die Peripherie-Schaltungsanordnung 120 und 130 in einigen Ausführungsformen eine Digital-Analog- (D/A) Wandler-Schaltungsanordnung auf, die konfiguriert ist, um digitale Eingangsvektoren zu empfangen (die auf Zeilen oder Spalten angewendet werden sollen), und den digitalen Eingangsvektor in analoge Eingangsvektoren umzuwandeln, die durch Spannungen einer Eingangsspannung mit variierender Impulsbreite dargestellt werden. In einigen Ausführungsformen wird ein Zeit-Encodierungsschema verwendet, wenn Eingangsvektoren durch Impulse mit fester Amplitude Vin = 1 V mit einer abstimmbaren Dauer dargestellt werden (z.B. beträgt eine Impulsdauer ein Vielfaches von 1 ns und ist proportional zu dem Wert des Eingangsvektors). Die an Zeilen (oder Spalten) angelegten Eingangsspannungen generieren Ausgangsvektorwerte, die durch Ausgangsströme dargestellt werden, wobei die Gewichtungen der RPU-Zellen 110 durch Messen der Ausgangsströme ausgelesen werden.
  • Die Peripherie-Schaltungsanordnung 120 und 130 weist ferner eine Stromintegrator-Schaltungsanordnung und eine Analog-Digital- (A/D) Wandler-Schaltungsanordnung auf, um Leseströme (IREAD) zu integrieren, die von den verbundenen RPU-Zellen 110 ausgegeben und akkumuliert werden und die integrierten Ströme in digitale Werte (gelesene Ausgangswerte) für eine anschließende Berechnung umzuwandeln. Insbesondere werden die von den RPU-Zellen 110 generierten Ströme auf den Spalten (oder Zeilen) summiert, und dieser Gesamtstrom wird über eine Messdauer, tmeas, durch die Strom-Auslese-Schaltungsanordnung der Peripherie-Schaltungsanordnung 120 und 130 integriert. Die Strom-Auslese-Schaltungsanordnung weist Stromintegratoren und Analog-Digital- (A/D) Wandler auf. In einigen Ausführungsformen weist jeder Stromintegrator einen Operationsverstärker auf, der den von einer bestimmten Spalte (oder Zeile) ausgegebenen Strom (oder Differenzströme von Paaren von RPU-Zellen, die negative und positive Gewichtungen umsetzen) an einem Kondensator integriert, und ein Analog-Digital- (A/D) Wandler wandelt den integrierten Strom (z.B. einen analogen Wert) in einen digitalen Wert um.
  • Die Daten-E/A-Schnittstellen 125 und 135 sind so konfiguriert, dass sie eine Schnittstelle mit einem digitalen Verarbeitungskern bilden, wobei der digitale Verarbeitungskern so konfiguriert ist, dass er Eingaben/Ausgaben in das bzw. aus dem Datenverarbeitungssystem 100 (neuronaler Kern) verarbeitet und Daten zwischen verschiedenen RPU-Arrays weiterleitet. Die Daten-E/A-Schnittstellen 125 und 135 sind so konfiguriert, dass sie (i) externe Steuersignale und Daten von einem digitalen Verarbeitungskern empfangen und die empfangenen Steuersignale und Daten der Peripherie-Schaltungsanordnung 120 und 130 bereitstellen, und (ii) digitale gelesene Ausgangswerte von der Peripherie-Schaltungsanordnung 120 und 120 empfangen und die digitalen gelesenen Ausgangswerte zur Verarbeitung an einen digitalen Verarbeitungskern senden. In einigen Ausführungsformen setzt der digitale Verarbeitungskern eine nicht lineare Funktionsschaltung um, die Aktivierungsfunktionen (z.B. Sigmoid-Neuronenfunktion, Softmax usw.) und andere arithmetische Operationen an Daten berechnet, die für eine nächste oder eine vorherige Schicht eines neuronalen Netzwerks bereitgestellt werden sollen.
  • Wie im Stand der Technik bekannt, weisen verbundene DNNs Stacks von vollständig verbundenen Schichten auf, sodass sich ein Signal von einer Eingangsschicht zu einer Ausgangsschicht durch ein Durchlaufen einer Reihe von linearen und nicht linearen Transformationen verbreitet. Das gesamte DNN drückt eine einzelne differenzierbare Fehlerfunktion aus, die die Eingangsdaten an der Ausgangsschicht zu Klassen-Scores zuordnet. Typischerweise wird ein DNN unter Verwendung eines einfachen stochastischen Gradientenabstiegsplans (SGD) trainiert, bei dem ein Fehlergradient in Bezug auf jeden Parameter unter Verwendung des Rückpropagierungs-Algorithmus berechnet wird. Der Rückpropagierungs-Algorithmus setzt sich aus drei Zyklen zusammen, Vorwärts, Rückwärts und Gewichtungsaktualisierung, die mehrmals wiederholt werden, bis ein Konvergenzkriterium erfüllt ist. Die Vorwärts- und Rückwärts-Zyklen umfassen hauptsächlich Datenverarbeitungsoperationen zur Vektor-Matrix-Multiplikation in Vorwärts- und Rückwärtsrichtungen unter Verwendung des 2D-Kreuzschienen-Arrays von RPU-Einheitenzellen 110 des in 1 gezeigten Datenverarbeitungssystems.
  • In dem Datenverarbeitungssystem 100 von 1 bilden die Leitfähigkeitswerte gij in dem 2D-Kreuzschienen-Array von RPU-Zellen eine Matrix W von Gewichtungswerten wij. In einem Vorwärtszyklus (2A) wird ein Eingangsvektor (in der Form von Spannungsimpulsen) über jede der Eingangszeilen in dem 2D-Kreuzschienen-Array übertragen, um eine Vektor-Matrix-Multiplikation in den RPU-Zellen 110 auszuführen. In einem Rückwärtszyklus (2B) werden von den Spalten bereitgestellte Spannungsimpulse in die RPU-Zellen 110 eingegeben, und ein Vektor-Matrix-Produkt wird auf der Spiegelung der Gewichtungsmatrixwerte W berechnet. Im Gegensatz zu Vorwärts- und Rückwärtszyklen erfordert ein Umsetzen der Gewichtungsaktualisierung auf einem 2D-Kreuzschienen-Array ein Berechnen eines äußeren Vektor-Vektor-Produkts, das aus einer Multiplikationsoperation und einer inkrementellen Gewichtungsaktualisierung besteht, die lokal an jeder RPU-Einheit auf einem Kreuzungspunkt in der Anordnung durchzuführen sind. 2A, 2B und 2C veranschaulichen schematisch jeweils Vorwärtsrechnungs-, Rückwärtsrechnungs- und Gewichtungsaktualisierungsoperationen eines Rückpropagierungs-Algorithmus, die unter Verwendung des Datenverarbeitungssystems 100 von 1 durchgeführt werden können.
  • Für eine einzelne vollständig verbundene Schicht, in der N Eingangsneuronen mit M Ausgangs- (oder verborgenen) Neuronen verbunden sind, umfasst die Vorwärtsrechnung (2A) ein Berechnen einer Vektor-Matrix-Multiplikation y = Wx, wobei der Vektor x mit der Länge N die Aktivitäten der Eingangsneuronen darstellt, und die Matrix W mit der Größe M × N die Gewichtungswerte zwischen jedem Paar von Eingangs- und Ausgangsneuronen speichert. Der sich daraus ergebende Vektor y mit einer Länge M wird weiter verarbeitet, indem eine nicht lineare Aktivierung auf jedem der Elemente erfolgt und anschließend an die nächste Schicht übergeben wird. Wenn die Informationen die letzte Ausgangsschicht erreichen, wird ein Fehlersignal berechnet und durch das Netzwerk zurück propagiert. In dem Vorwärtszyklus bilden die gespeicherten Leitfähigkeitswerte in dem Kreuzschienen-Array der RPU-Zellen 110 eine Matrix, wobei der Eingangsvektor in Form von Spannungsimpulsen durch jede der Eingangszeilen R1, R2, R3, ..., Rm übertragen wird.
  • Der Rückwärtszyklus (2B) auf einer einzelnen Schicht weist ebenfalls eine Vektor-Matrix-Multiplikation auf der Transponierten einer Gewichtungsmatrix z = WTδ auf, wobei W die Gewichtungsmatrix bezeichnet, wobei der Vektor δ mit einer Länge M den Fehler darstellt, der durch die Ausgangsneuronen berechnet wurde, und wobei der Vektor z mit einer Länge N weiter unter Verwendung der Ableitung von Neuronen-Nichtlinearität verarbeitet und anschließend an die vorherigen Schichten übergeben wird. In einem Rückwärtszyklus werden Spannungsimpulse an die RPU-Zellen 110 von den Spalten CL1, CL2, CL3, ..., CLn als eine Eingabe bereitgestellt, und das Vektor-Matrix-Produkt wird auf der Spiegelung der Gewichtungsmatrix W berechnet.
  • Schließlich wird in einem Aktualisierungszyklus (2C) die Gewichtungsmatrix W aktualisiert, indem ein äußeres Produkt der beiden Vektoren durchgeführt wird, die in dem Vorwärts- und dem Rückwärtszyklus verwendet werden. Insbesondere erfordert ein lokales und insgesamt paralleles Umsetzen der Gewichtungsaktualisierung auf einem 2D-Kreuzschienen-Array von resistiven Einheiten, unabhängig von der Array-Größe, ein äußeres Vektor-Vektor-Produkt, das aus einer Multiplikationsoperation und einer inkrementellen Gewichtungsaktualisierung besteht, die lokal an jedem Kreuzungspunkt (RPU-Zelle 110) in dem Datenverarbeitungssystem von 1 durchgeführt werden müssen. Wie in 2C schematisch dargestellt, wird der Gewichtungsaktualisierungsprozess berechnet als: wij ← wij + ηxi × δj, wobei wij den Gewichtungswert für die i-te Zeile und die j-te Spalte darstellt (der Einfachheit halber wurde der Schichtenindex weggelassen), wobei xi die Aktivität an dem Eingangsneuron ist, δi der Fehler ist, der durch das Ausgangsneuron berechnet wurde, und wobei η die globale Lernrate bezeichnet.
  • Kurz gesagt können alle Operationen an der Gewichtungsmatrix W unter Verwendung des 2D-Kreuzschienen-Arrays einer zweipoligen RPU-Einheit mit M Zeilen und N Spalten umgesetzt werden, wobei die gespeicherten Leitfähigkeitswerte in dem Kreuzschienen-Array die Matrix W bilden. In dem Vorwärtszyklus wird der Eingangsvektor x in Form von Spannungsimpulsen durch jede der Zeilen übertragen, und der sich daraus ergebende Vektor y kann als Stromsignale von den Spalten gelesen werden. Desgleichen, wenn Spannungsimpulse von den Spalten als Eingabe in den Rückwärtszyklus bereitgestellt werden, wird ein Vektor-Matrix-Produkt auf der Spiegelung der Gewichtungsmatrix WT berechnet. Schließlich werden in dem Aktualisierungszyklus Spannungsimpulse, die die Vektoren x und δ darstellen, gleichzeitig von den Zeilen und den Spalten bereitgestellt. In dem Aktualisierungszyklus führt jede RPU-Zelle 110 eine lokale Multiplikations- und Summierungsoperation durch Verarbeiten der Spannungsimpulse, die von der Spalte und der Zeile kommen und somit ein Erreichen einer inkrementellen Gewichtungsaktualisierung durch.
  • Zum Bestimmen des Produkts aus den Vektoren xi und δj für den Gewichtungsaktualisierungszyklus wird die stochastische Übersetzer-Schaltungsanordnung in den Peripherie-Schaltungsanordnungen 120 und 130 verwendet, um stochastische Bitströme zu generieren, die die Eingangsvektoren xi und δj darstellen. Die stochastischen Bitströme für die Vektoren xi und δj werden durch Zeilen und Spalten in dem 2D-Kreuzschienen-Array von RPU-Zellen zugeführt, wobei sich die Leitfähigkeit einer bestimmten RPU-Zelle abhängig von der Übereinstimmung der stochastischen Bitströme von xi und δj ändert, die in die bestimmte RPU-Zelle eingegeben werden. Die Vektor-Kreuzproduktoperationen für die Gewichtungsaktualisierungsoperation werden auf Grundlage des bekannten Konzepts umgesetzt, dass die Übereinstimmungserkennung (unter Verwendung einer AND-Logikgatteroperation) von stochastischen Strömen, die reelle Zahlen darstellen, einer Multiplikationsoperation entspricht. Alle drei der oben beschriebenen Betriebsmodi ermöglichen den RPU-Zellen, die das neuronale Netzwerk bilden, in allen drei Zyklen aktiv zu sein und somit eine sehr effiziente Umsetzung des Rückpropagierungs-Algorithmus zu ermöglichen, um aktualisierte Gewichtungswerte der RPU-Zellen während eines DNN-Trainingsprozesses zu berechnen.
  • Während der Vorwärts- und Rückwärtsrechenoperationen, in denen Vektor-Matrix-Multiplikationen an dem RPU-Array durchgeführt werden, werden die digitalen Eingangsvektoren (x oder δ) in analoge Eingangsvektoren umgewandelt, die als Spannungsimpulse mit einer festen Amplitude und abstimmbaren Dauern über die Zeilen und Spalten übertragen werden. In einigen Ausführungsformen stellt die maximale Impulsdauer eine Einheit in Bezug auf eine Integrationszeit (Tmeas → 1) dar, wobei alle Impulsdauern entsprechend in Abhängigkeit von den Werten von xioder δj skaliert werden. Dieses Schema funktioniert optimal für den Vorwärtszyklus, in dem alle xi in x in einem bestimmten Bereich liegen, z.B. [-1,1]. Dieses Schema wird jedoch für den Rückwärtszyklus problematisch, da es keine Garantien für den Bereich der Fehlersignalwerte in δ gibt. Zum Beispiel können alle δj in δ signifikant kleiner als die Einheit (δ << 1) werden, wenn ein Trainingsprozess fortschreitet und die Klassifizierungsfehler immer kleiner werden. In diesem Fall kann die Signalstärke der Ausgangssignale, die während einer Rückwärtsberechnungsoperation als Ergebnis einer niedrigen Signalstärke der Eingangsfehlersignale δj eines Eingangsvektors δ generiert werden, zu klein und nicht kompatibel mit den vollen Betriebsbereichen der Auslese-Schaltungsanordnung sein.
  • In einigen Ausführungsformen kann ein Rauschmanagementsystem in dem RPU-Array umgesetzt werden, um die Eingangsfehlersignale δj eines Eingangsfehlervektors δ auf Grundlage des maximalen Eingangsfehlersignals δj des Eingangsfehlervektors δ zu skalieren, sodass die Eingangsfehlersignale δj z.B. zwischen [-1,1] fallen, ähnlich dem vollen Eingangsbereich der Eingangssignale xi eines Eingangsvektors, der auf das RPU-Array während einer Vorwärtsrechenoperation angewendet wird. In einigen Fällen kann der Prozess eines Abgleichens der Eingangssignalbereiche für die Vorwärts- und Rückwärtsrechenoperationen jedoch unzureichend sein, um die sich daraus ergebenden Ausgangssignalbereiche für die Vorwärts- und Rückwärtsrechenoperationen abzugleichen, zum Beispiel aufgrund der Art und Weise, in der neuronale Netzwerke (z.B. DNNs) trainiert werden.
  • Insbesondere ist die Verteilung von Wx für eine Vorwärtsrechenoperation groß, weil die Werte des Eingangsvektors x und die Gewichtungswerte der Gewichtungsmatrix W in der Regel korreliert sind (z.B. erreicht durch das DNN-Lernen, was derartige Korrelationen verstärken soll), wogegen für WTδ für die Rückwärtsrechenoperation der Fehlervektor δ und die Matrix WT in der Regel unkorrelierte Vektoren sind und somit ein Ergebnis nahe Null aufweisen. Infolgedessen sind die Ausgangssignalstärken der Vorwärts- und Rückwärtsrechenoperationen signifikant unterschiedlich. Ferner sind weitere Gründe, warum schwache Ausgangssignale während einer Rückwärtsrechenoperation generiert werden, dass viele Elemente δj eines Eingangsfehlervektors δ für viele DNNs in der Regel Null oder nahe Null sind. In diesem Fall kann ein Skalieren der Werte δj des Eingangsfehlervektors δ die Signalstärke der Ausgangssignale nicht signifikant verstärken, die durch die Rückwärtsrechenoperation generiert werden, selbst wenn der Eingangsbereich der Werte δj des Eingangsfehlervektors δ mit dem Eingangsbereich (z.B. [-1,1]) der Eingangssignale xi des Eingangsvektors x für die Vorwärtsrechenoperation abgestimmt werden.
  • Zumindest aus den oben angemerkten Gründen können die Ausgangssignale, die als Ergebnis von Vektor-Matrix-Multiplikationen generiert werden, die während der Rückwärtsrechenoperation durchgeführt werden, zu klein und nicht problemlos erkennbar oder quantisierbar in Fällen sein, in denen die Auslese-Schaltungsanordnung (die für die Vorwärts- und Rückwärtsrechenoperation gemeinsam genutzt werden) so konfiguriert ist, dass sie eine feste Ausgangssignalgrenze b (z.B. Betriebssignalbereich) hat, die für den Bereich von Ausgangssignalen optimaler ist, die während der Vorwärtsrechenoperationen generiert werden. Zum Beispiel ist die feste Ausgangssignalgrenze b ein Ergebnis der Stromintegratorschaltungen der gemeinsam genutzten Auslese-Schaltungsanordnung mit einem Integrationskondensator von fester Größe oder der ADC-Schaltung der gemeinsamen genutzten Auslese-Schaltungsanordnung mit einer festen ADC-Auflösung usw. In derartigen Fällen werden die analogen Ausgangssignale, die relativ klein sind (z.B. nahe Null) wegen der finiten ADC-Auflösung auf null quantisiert.
  • Dieser Effekt ist besonders gravierend, wenn die gemeinsam genutzte ADC-Schaltung so konfiguriert ist, dass sie eine relativ kleine Auflösung hat (z.B. 3-Bit-, 4-Bit-, 5-Bit-Auflösung), wobei die ADC-Korbgröße (d.h. die Spannung mit dem niedrigstwertigen Bit (LSB)) relativ groß ist. Die Verwendung der gemeinsam genutzten Auslese-Schaltungsanordnung (für Vorwärts- und Rückwärtsrechenoperationen) mit einer festen Ausgangsgrenze b (z.B. der Integrationskondensator mit derselben Größe und/oder derselben ADC-Auflösung usw.) kann ausreichend sein, um die Spannungssignale effektiv auszulesen und zu quantisieren, die während der en generiert wurden, kann aber unzureichend sein, um die Spannungssignale effektiv auszulesen und zu quantisieren, die während der Rückwärtsrechenoperationen generiert werden (die Fehlersignale darstellen, die durch die Schichten des neuronalen Netzwerks während der Rückwärtsrechenoperationen propagiert werden). Da die Rückwärtspropagierungs-Fehlersignale eine viel niedrigere Signalstärke als die Vorwärtspropagierungssignale haben, kann die feste Ausgangssignalgrenze b der gemeinsam genutzten Auslese-Schaltungsanordnung zu einer unzureichenden Quantisierung der Rückwärtspropagierungssignale führen, was zu einem Effekt führt, der als „verschwindende Gradienten“ bezeichnet wird.
  • Wie im Stand der Technik bekannt, wandelt eine ADC-Schaltung ein analoges Signal (zeitkontinuierliches analoges Signal oder analoges Signal mit kontinuierlicher Amplitude) durch einen Quantisierungsprozess in ein digitales Signal um. Die Auflösung eines ADC bezieht sich auf eine Anzahl von diskreten Werten, die der ADC über einen erlaubten Bereich von analogen Eingangswerten generieren kann. Zum Beispiel kann ein ADC mit einer 8-Bit-Auflösung ein analoges Eingangssignal auf eine von 256 verschiedenen Ebenen encodieren (28 = 256), wodurch ein dynamischer Bereich von 256:1 bereitgestellt wird. Die Werte können die Bereiche von [0 bis 255] (d.h. als Ganzzahlen ohne Vorzeichen) oder von [-128 bis 127] (d.h. als Ganzzahlen mit Vorzeichen) darstellen, was von der Anwendung abhängt. Die Auflösung des ADC wird auch durch eine Spannung mit niedrigstwertigem Bit (LSB) angegeben (die auch als „Spannungsauflösung“ bezeichnet wird). Das LSB des ADC stellt das kleinste Intervall dar, das erkannt werden kann, und im Fall eines 8-Bit-ADC beträgt das LSB ungefähr 1/256 oder 3,9 × 10-3. Die LSB-Spannung (oder Spannungsauflösung) betrifft eine Spannungsänderung, die notwendig ist, um eine Änderung in der Ausgangscode-Ebene zu garantieren. Die Spannungsauflösung eines ADC entspricht dem erlaubten Bereich von analogen Eingangsspannungswerten (z.B. voller Umfang des Betriebsspannungsbereichs) geteilt durch die Anzahl von diskreten Intervallen.
  • Wenn zum Beispiel angenommen wird, dass der volle Umfang des Betriebsspannungsbereichs des ADC von -10 V bis +10 V reicht, (wobei V Mikrovolt (µV), Millivolt (mV) usw. sein kann), würde die Spannungsauflösung eines 8-Bit-ADC 20/256 betragen, was ungefähr 0,078 V entspricht. Wenn die analogen Spannungswerte für eine bestimmte Operation (z.B. eine Rückwärtsrechnung) in einen viel kleineren Spannungsbereich fallen, z.B. [-0,1 V bis +0,1 V] im Vergleich zu dem vollen Umfang des Betriebsspannungsbereichs [-10 V bis +10 V] des ADC, würde die effektive Spannungsauflösung für den kleineren Spannungsbereich aufgrund des LSB von 0,078 V signifikant begrenzt werden, was verursachen würde, dass jedes analoge Spannungssignal mit einer absoluten Größe von weniger als 0,078 V als null quantisiert würde. Mit anderen Worten, der 8-Bit-ADC wäre mit dem kleineren Spannungsbereich [-0,1 V bis +0,1 V] nicht fähig, Spannungsdifferenzen optimal aufzulösen, die kleiner als 0,078 V sind. In diesem Szenario wäre es für den 8-Bit-ADC wünschenswerter, die Spannungsauflösung des 8-Bit-ADC auf eine größere Anzahl von diskreten Ebenen (z.B. 256 Ebenen) zu erweitern, um die Spannungswerte in dem kleineren Spannungsbereich (-0,1 V bis +0,1 V) effektiver zu quantisieren. In einigen Ausführungsformen kann eine niedrigere Bit-Auflösung mit einem kleineren Messbereich umgesetzt werden, um kleinere Spannungen zu messen.
  • Beispielhafte Ausführungsformen der Offenbarung setzen Grenz-Management-Techniken um, die in dem analogen Bereich durch dynamisches Ändern einer Konfiguration (z.B. Hardware-Konfiguration) der gemeinsam genutzten Auslese-Schaltungsanordnung umgesetzt werden, um verschiedene Signalgrenzen für verschiedene Betriebsmodi bereitzustellen, z.B. Vorwärts- und Rückwärtsrechenoperationen des analogen RPU-Kreuzschienen-Arrays. Zum Verstärken des Ausgangssignals für die Rückwärtsrechenoperation im Fall von (δ << 1) können verschiedene Techniken verwendet werden, um die gemeinsam genutzte Auslese-Schaltungsanordnung dynamisch so zu konfigurieren, dass eine erste Konfiguration während der Vorwärtsrechenoperation vorliegt und eine zweite Konfiguration während der Rückwärtsrechenoperation vorliegt. Insbesondere wird in der Vorwärtsrechenoperation die gemeinsam genutzte Auslese-Schaltungsanordnung so konfiguriert, dass eine erste Konfiguration vorliegt, in der die Auslese-Schaltungsanordnung mit einer ersten Ausgangssignalgrenze b1 (z.B. einem ersten Betriebssignalbereich) arbeitet, und in der Rückwärtsrechenoperation die gemeinsam genutzte Auslese-Schaltungsanordnung so konfiguriert wird, dass sie mit einer zweiten Ausgangssignalgrenze b2 arbeitet (z.B. einem zweiten Betriebssignalbereich), wobei b2 < b1.
  • 3A veranschaulicht schematisch ein Verfahren zum Konfigurieren eines Datenverarbeitungssystems, das ein Array von Zellen einer resistiven Verarbeitungseinheit zum Durchführen einer Vorwärtsrechenoperation gemäß einer beispielhaften Ausführungsform der Offenbarung aufweist. Insbesondere veranschaulicht 3A schematisch ein Datenverarbeitungssystem 300, das ein Kreuzschienen-Array von RPU-Zellen 305 aufweist, wobei jede RPU-Zelle 310 in dem Array 305 ein analoges, nicht flüchtiges resistives Element (dargestellt als ein veränderlicher Widerstand mit einer abstimmbaren Leitfähigkeit G) an dem Kreuzungspunkt jeder Zeile (R1, R2, ..., Rm) und Spalte (C1, C2, ..., Cn) aufweist. Wie in 3A dargestellt, stellt das Array von RPU-Zellen 305 eine Matrix von Leitfähigkeitswerten Gij bereit, die einer Matrix von synaptischen Gewichtungen wij zugeordnet sind, die durch Leitfähigkeitswerte Gij (wobei i einen Zeilenindex darstellt und j einen Spaltenindex darstellt) der jeweiligen RPU-Zellen 310 encodiert sind. Das Array von RPU-Zellen 305 stellt ein Array von künstlichen programmierbaren synaptischen Elementen dar, die die Knoten (künstliche Neuronen) einer stromaufwärts befindlichen Schicht (z.B. Eingangsschicht oder Zwischenschicht) eines künstlichen neuronalen Netzwerks mit den Knoten (künstliche Neuronen) einer nächsten stromabwärts befindlichen Schicht (Zwischenschicht oder Ausgangsschicht) des künstlichen neuronalen Netzwerks verbinden.
  • Für die Vorwärtsrechenoperation werden Multiplexer in der Peripherie-Schaltungsanordnung des Datenverarbeitungssystems 300 aktiviert, um eine Zeilenleitungstreiber-Schaltungsanordnung 320 mit den Zeilenleitungen R1, R2, ..., Rm selektiv zu verbinden. Die Zeilenleitungstreiber-Schaltungsanordnung 320 weist eine Mehrzahl von DAC-Schaltungsblöcken 322-1, 322-2, ..., 322-m auf, (allgemein DAC-Schaltungsblöcke 322), die mit jeweiligen Zeilenleitungen R1, R2, ..., Rm verbunden sind. Außerdem werden Multiplexer in der Peripherie-Schaltungsanordnung des Datenverarbeitungssystems 300 aktiviert, um eine Auslese-Schaltungsanordnung 330 mit den Spaltenleitungen C1, C2, ..., Rm selektiv zu verbinden. Die Auslese-Schaltungsanordnung 330 weist eine Mehrzahl von Auslese-Schaltungsblöcken 330-1, 330-2, ..., 330-n auf, die mit jeweiligen Spaltenleitungen C1, C2, ..., Cn verbunden sind. Die Auslese-Schaltungsblöcke 330-1, 330-2, ..., 330-n weisen eine jeweilige Stromintegrator-Schaltungsanordnung 332-1, 332-2, ..., 332-n und jeweilige ADC-Schaltungsanordnung 334-1, 334-2, ..., 334-n auf.
  • Die Vorwärtsrechenoperation in einem neuronalen Netzwerk wird durchgeführt, um Neuronen-Aktivierungen einer stromabwärts befindlichen Schicht (z.B. verborgene Schicht oder Ausgangsschicht) auf Grundlage von Neuronen-Aktivierungen einer stromaufwärts befindlichen Schicht (z.B. Eingangsschicht oder verborgene Schicht) und die synaptischen Gewichtungen zu berechnen, die die Neuronen der stromaufwärts befindlichen Schicht mit den Neuronen der stromabwärts befindlichen Schicht verbinden. In 3A generieren die stromaufwärts befindlichen Neuronen digitale Signale x = [x1, x2, ..., xm] (die als Eingangsvektor bezeichnet werden), die die stromaufwärts befindlichen Neuronen-Anregungen darstellen, wobei die digitalen Signale x1, x2, ..., xm in jeweilige DAC-Schaltungsblöcke 322-1, 322-2, ..., 322-m eingegeben werden, die analoge Spannungs- V(t) (Spannung als eine Funktion von Zeit) Signale auf den Zeilenleitungen R1, R2, ..., Rm generieren, die proportional zu der stromaufwärts befindlichen Neuronenanregung x = [x1, X2, ..., xm] sind.
  • In einigen Ausführungsformen weisen die DAC-Schaltungsblöcke 322-1, 322-2, ..., 322-m jeweils eine Pulsweitenmodulations-Schaltungsanordnung und Treiber-Schaltungsanordnung auf, die konfiguriert ist, um pulsweitenmodulierte (PWM) Leseimpulse V1, V2, ..., Vm zu generieren, die an die jeweiligen Zeilenleitungen R1, R2, ..., Rm angelegt werden. Insbesondere werden die DAC-Schaltungsblöcke 322-1, 322-2, ..., 322-m in einigen Ausführungsformen so konfiguriert, dass sie einen Digital-Analog-Umwandlungsprozess durch Verwenden eines Zeit-Encodierungsschemas durchführen, wobei die Eingangsvektoren durch feste Amplitudenimpulse (z.B. V = 1V) mit einer abstimmbaren Dauer dargestellt werden, wobei die Impulsdauer ein Vielfaches eines vorab spezifizierten Zeitraums (z.B. 1 Nanosekunde) und proportional zu dem Wert des Eingangsvektors ist. Zum Beispiel kann ein bestimmter digitaler Eingangswert von 0,5 durch einen Spannungsimpuls von 4 ns dargestellt werden, während ein digitaler Eingangswert von 1 durch einen Spannungsimpuls von 80 ns dargestellt werden kann (z.B. kann ein digitaler Eingangswert von 1 in einen analogen Spannungsimpuls mit einer Impulsdauer encodiert werden, die der Integrationszeit Tmeas entspricht). Wie in 3A gezeigt, werden die sich daraus ergebenden analogen Eingangsspannungen V1, V2, ..., Vm (z.B. Leseimpulse) an die Zeilenleitungen R1, R2, ..., Rm angelegt.
  • Während einer Vorwärtsrechenoperation werden die analogen Eingangsspannungen V1, V2, ..., Vm (z.B. Leseimpulse) an die Zeilenleitungen R1, R2, ..., Rm angelegt, wobei jede RPU 310 einen entsprechenden Lesestrom IREAD = Vi × Gij (auf Grundlage des Ohmschen Gesetzes) generiert), wobei Vi die analoge Eingangsspannung bezeichnet, die an die bestimmte RPU-Zelle 310 auf der bestimmten Zeile i angelegt wird, und wobei Gij den Leitfähigkeitswert der bestimmten RPU-Zelle 310 (auf der bestimmten Zeile i und der Spalte j) bezeichnet. Wie in 3A gezeigt, werden die durch die RPU-Zellen 310 auf jeder Spalte j generierten Leseströme (auf Grundlage des Kirchhoffschen Gesetzes) aufsummiert, um die jeweilige Ströme I1, I2, ..., In an den Ausgang der jeweiligen Spalten C1, C2, ..., Cn zu generieren. Auf diese Weise stellen die sich daraus ergebenden Spaltenströme I1, I2, ..., In das Ergebnis einer Operation einer Vektor-Matrix-Multiplikation dar, die in der Vorwärtsrechenoperation durchgeführt wird, wobei der Eingangsspannungsvektor [V1, V2, ..., Vm] mit der Leitfähigkeitsmatrix G (der Leitfähigkeitswerte Gij) multipliziert wird, um einen Ausgangsstromvektor [I1, I2, ..., In], zu generieren, wie in 3A veranschaulicht. Insbesondere wird ein bestimmter Spaltenstrom Ij als I j = i = 1 m V i G ij
    Figure DE112021006459T5_0001
    berechnet. Zum Beispiel wird der Spaltenstrom I1 für die erste Spalte C1 als I1 = (V1 G11 + V2 G21 +, ..., + Vm Gm1) bestimmt.
  • Die sich daraus ergebenden aggregierten Leseströme I1, I2, ..., In an dem Ausgang der jeweiligen Spalten C1, C2, ..., Cn werden in jeweilige Auslese-Schaltungsblöcke 330-1, 330-2, ..., 330-n der Auslese-Schaltungsanordnung 330 eingegeben. Die aggregierten Leseströme I1, I2, ..., In werden durch die jeweiligen Stromintegrator-Schaltungsanordnungen 332-1, 332-2, ..., 332-n integriert, um jeweilige Ausgangsspannungen zu generieren, die durch die jeweiligen ADC-Schaltungen 334-1, 334-2, ..., 334-n quantisiert werden, um jeweilige digitale Ausgangssignale y1, y2, ..., yn eines Ausgangsvektors y zu generieren. Die digitalen Ausgangssignale y1, y2, ..., yn werden verarbeitet und zu der nächsten stromabwärts befindlichen Schicht übertragen, um die Vorwärtsrechenoperation fortzusetzen. Während die Daten durch das neuronale Netzwerk vorwärts propagiert werden, werden Vektor-Matrix-Multiplikationen durchgeführt, wobei die verborgenen Neuronen/Knoten die Eingaben aufnehmen, eine nicht lineare Transformation durchführen und die Ergebnisse anschließend an die nächste Gewichtungsmatrix senden. Dieser Prozess wird fortgesetzt, bis die Daten die Ausgangsschicht erreichen, die Ausgangsneuronen/-knoten aufweist. Die Ausgangsneuronen/-knoten werten Klassifizierungsfehler aus und generieren Klassifizierungsfehlersignale δ, die durch das neuronale Netzwerk durch Verwenden von Rückwärtsrechenoperationen rückpropagiert werden. Die Fehlersignale δ können als eine Differenz zwischen den Ergebnissen der Vorwärts-Inferenzklassifizierung (geschätzte Bezeichnungen) und den korrekten Bezeichnungen an der Ausgangsschicht des neuronalen Netzwerks bestimmt werden.
  • 3B veranschaulicht schematisch Verfahren zum Konfigurieren eines Datenverarbeitungssystems, das ein Array von Zellen einer resistiven Verarbeitungseinheit zum Durchführen einer Rückwärtsrechenoperation gemäß einer beispielhaften Ausführungsform der Offenbarung aufweist. Insbesondere veranschaulicht 3B schematisch eine Konfiguration des Datenverarbeitungssystems 300 beim Durchführen einer Rückwärtsrechenoperation, wobei Multiplexer in der Peripherie-Schaltungsanordnung des Datenverarbeitungssystems 300 aktiviert werden, um die Spaltenleitungstreiber-Schaltungsanordnung 340 selektiv mit den Spaltenleitungen C1, C2, ..., Cn zu verbinden, und um die gemeinsam genutzte Auslese-Schaltungsanordnung 330 mit den Zeilenleitungen R1, R2, ..., Rm zu verbinden. Die Spaltenleitungstreiber-Schaltungsanordnung 340 weist eine Mehrzahl von DAC-Schaltungsblöcken 342-1, 342-2, ..., 342-m auf, (allgemein DAC-Schaltungsblöcke 342), die mit jeweiligen Spaltenleitungen C1, C2, ..., Cn verbunden sind.
  • In einigen Ausführungsformen, wie oben angemerkt, nutzen die Zeilen und Spalten die DAC-Schaltung nicht gemeinsam, sodass jede Zeile und jede Spalte einen dedizierten DAC-Schaltungsblock aufweist, wie in 3A und 3B veranschaulicht. Andererseits nutzen die Zeilen und Spalten in einigen Ausführungsformen die Auslese-Schaltungsanordnung 330 gemeinsam (z.B. die Zeile R1 und die Spalte C1 nutzen den Auslese-Schaltungsblock 330-1 gemeinsam, die Zeile R2 und die Spalte C2 nutzen den Auslese-Schaltungsblock 330-2 gemeinsam, usw.). In einigen Ausführungsformen, in denen die Anzahl von Zeilen und die Anzahl von Spalten dieselbe ist (d.h. n = m), ist die Anzahl von Auslese-Schaltungsblöcken der gemeinsam genutzten Auslese-Schaltungsanordnung gleich n = m. Wenn andererseits die Anzahl von Zeilen und Spalten nicht dieselbe ist (d.h. n ≠ m), ist die Anzahl der Auslese-Schaltungsblöcke der Auslese-Schaltungsanordnung 330 gleich oder größer als n und m.
  • Wie in 3B gezeigt, wird die an dem Array der RPU-Zellen 306 des Datenverarbeitungssystems 300 durchgeführte Rückwärtsrechenoperation auf eine Weise durchgeführt, die der Vorwärtsrechenoperation ähnlich ist (3A), mit Ausnahme dessen, dass das Datenverarbeitungssystem 300 einen Vektor von Fehlersignalen δ = [δ1, δ2 ..., δn] empfängt, der von einer stromabwärts befindlichen Schicht des neuronalen Netzwerks rückpropagiert wird. Die digitalen Fehlersignale δ1, δ2, ..., δn werden in die jeweiligen DAC-Schaltungsblöcke 342-1, 342-2, ..., 342-n eingegeben, die mit den jeweiligen Spalten C1, C2, ..., Cn verbunden sind. Die DAC-Schaltungsblöcke 342-1, 342-2, ..., 342-n generieren analoge Spannungen V1, V2, ..., Vn durch Verwenden derselben oder ähnlicher Zeit-Encodierungstechniken, wie oben erörtert, um impulsmodulierte Spannungsimpulse (mit einer selben Amplitude, aber abstimmbarer Impulsbreite) zu generieren, die den Werten der jeweiligen digitalen Fehlersignale δ1, δ2 ..., δ" entsprechen. Wie im Folgenden ausführlicher erklärt wird, werden in einigen Ausführungsformen die analogen Spannungssignale V1, V2, ..., Vn für die Rückwärtsrechenoperation auf Grundlage einer Integrationszeit T2meas generiert, die größer als die Integrationszeit T1meas ist, die für die Vorwärtsrechenoperation verwendet wird.
  • Während einer Rückwärtsrechenoperation werden die analogen Spannungssignale V1, V2, ..., Vm (z.B. Leseimpulse, die Fehlersignale darstellen) an die Spaltenleitungen C1, C2, ..., Cn angelegt, wobei jede RPU 310 einen entsprechenden Lesestrom IREAD = Vj × Gij (auf Grundlage des Ohmschen Gesetzes) generiert, wobei Vj die analoge Eingangsspannung bezeichnet, die an die bestimmte RPU-Zelle 310 auf der bestimmten Spalte j angelegt wird, und wobei Gij den Leitfähigkeitswert der bestimmten RPU-Zelle 310 (auf der bestimmten Zeile i und der Spalte j) bezeichnet. Wie in 3B gezeigt, werden die durch die RPU-Zellen 310 auf jeder Zeile i generierten Leseströme (auf Grundlage des Kirchhoffschen Gesetzes) aufsummiert, um die jeweilige Zeilenströme I1, I2, ..., In an dem Ausgang der jeweiligen Zeilen R1, R2, ..., Rm zu generieren. Auf diese Weise stellen die Zeilenströme I1, I2, ..., In das Ergebnis einer Operation einer Vektor-Matrix-Multiplikation dar, die in der Rückwärtsrechenoperation durchgeführt wird, wobei die Leitfähigkeitsmatrix G (mit den Leitfähigkeitswerten Gij) mit dem Eingangsspannungsvektor [V1, V2, ..., Vm] multipliziert wird, um einen Ausgangsstromvektor [I1, I2, ..., Im], zu generieren, wie in 3B veranschaulicht. Insbesondere wird ein bestimmter Zeilenstrom I1 als I i = j = 1 n V j G ij
    Figure DE112021006459T5_0002
    berechnet. Zum Beispiel wird der Spaltenstrom I1 für die erste Spalte R1 als I1 = (V1 G11 + V2 G12 +, ..., + Vn G1n) bestimmt.
  • Die sich daraus ergebenden aggregierten Leseströme I1, I2, ..., Im an dem Ausgang der jeweiligen Zeilen R1, R2, ..., Rm werden in die jeweiligen Auslese-Schaltungsblöcke 330-1, 330-2, ..., 330-n der gemeinsam genutzten Auslese-Schaltungsanordnung 330 eingegeben. Die aggregierten Leseströme I1, I2, ..., Im werden durch die jeweiligen Stromintegrator-Schaltungsanordnungen 332-1, 332-2, ..., 332-m integriert, um jeweilige Ausgangsspannungen zu generieren, die durch die jeweiligen ADC-Schaltungsanordnungen 334-1, 334-2, ..., 334-m quantisiert werden, um jeweilige digitale Ausgangssignale z1, z2, ..., zn eines Ausgangsvektors z zu generieren. Die digitalen Ausgangssignale z1, z2, ..., zn werden anschließend verarbeitet und zu der nächsten stromaufwärts befindlichen Schicht übertragen, um die Rückwärtsrechenoperation fortzusetzen. Dieser Prozess wird fortgesetzt, bis die Fehlersignale die Eingangsschicht erreichen.
  • Nach Abschluss der Rückwärtsrechenoperation an dem Array der RPU-Zellen 305 des Datenverarbeitungssystems 300 wird ein Prozess zur Gewichtungsaktualisierung durchgeführt, um Leitfähigkeitswerte der RPU-Zellen 310 (die die Leitfähigkeitsmatrix G des Arrays von RPU-Zellen 305 darstellen) auf Grundlage der vorwärtspropagierten digitalen Signale x1, x2, ..., xm und der rückwärtspropagierten digitalen Fehlersignale δ1, δ2 ..., δn abzustimmen, die von dem Array von RPU-Zellen 305 während der Vorwärts- und Rückwärtsrechenoperationen empfangen wurden. Sobald die Fehlersignalwerte (oder Delta-Werte) für eine bestimmte Neuronenschicht integriert worden sind, ist diese Schicht für eine Gewichtungsaktualisierung bereit. Der Aktualisierungsprozess, der an dem Array von RPU-Zellen 305 des Datenverarbeitungssystems 300 durchgeführt wird, kann in eine Pipeline mit der Rückwärtspropagierung des Fehlervektors 6 durch zusätzliche stromaufwärts befindliche Schichten des Datenverarbeitungssystems 300 gestellt werden. In einigen Ausführungsformen wird die Rückwärtspropagierung von der ersten verborgenen Schicht zurück zu den Eingangsschicht-Neuronen durchgeführt, sie ist aber nicht erforderlich, da die Eingangsneuronen keine stromaufwärts befindlichen Synapsen haben, sodass die oberste Schicht, die die δ-Fehlerwerte verwendet, eine erste verborgene Schicht ist.
  • Wie ferner in 3A und 3B veranschaulicht, ist ein Modussteuersystem 350 (mode switch control) konfiguriert, um Steuersignale zu generieren, die die Konfiguration (z.B. die Hardware-Konfiguration) der gemeinsam genutzten Auslese-Schaltungsanordnung 330 für verschiedene Ausgangssignalgrenzen für verschiedene Operationen dynamisch ändern, z.B. Vorwärts- und Rückwärtsrechenoperationen, die an einem Array von RPU-Zellen 304 des Datenverarbeitungssystems 300 durchgeführt werden. Wie zum Beispiel in 3A gezeigt, generiert das Modussteuersystem 350 ein oder mehrere Steuersignale, um die gemeinsam genutzte Auslese-Schaltungsanordnung 330 dynamisch so zu konfigurieren, dass sie eine erste Konfiguration CONFIG_1 hat, die für die Vorwärtsrechenoperation optimiert ist. Insbesondere wird die gemeinsam genutzte Auslese-Schaltungsanordnung 330 in der Vorwärtsrechenoperation so konfiguriert, dass sie mit einer ersten Ausgangssignalgrenze b1 arbeitet (z.B. einem ersten Betriebssignalbereich), die auf Grundlage des erwarteten Bereichs bestimmt wird (z.B. Signalstärke) der Spannungssignale und Stromsignale, die von dem RPU-Array 305 und der Peripherie-Schaltungsanordnung 320 und 330 während der Vorwärtsrechenoperationen empfangen und generiert werden.
  • Des Weiteren, wie in 3B gezeigt, generiert das Modussteuersystem 350 ein oder mehrere Steuersignale, um die gemeinsam genutzte Auslese-Schaltungsanordnung 330 für eine zweite Konfiguration CONFIG_2 dynamisch zu konfigurieren, die für die Rückwärtsrechenoperation optimiert ist. Insbesondere wird die gemeinsam genutzte Auslese-Schaltungsanordnung 330 in der Rückwärtsrechenoperation so konfiguriert, dass sie mit einer zweiten Ausgangssignalgrenze b1 arbeitet (z.B. einem zweiten Betriebssignalbereich), die auf Grundlage des erwarteten Bereichs der Signalstärke der Spannungssignale und Stromsignale bestimmt wird, die von dem RPU-Array 305 und den Peripherie-Schaltungsanordnungen 340 und 330 während der Rückwärtsrechenoperationen empfangen und generiert werden. Wie oben angemerkt, können die Fehlersignale δ in der Rückwärtsrechenoperation niedrige Signalstärken (z.B. δ << 1) haben, wobei die Ausgangssignalgrenze b1 (z.B. ein erster Betriebssignalbereich) der gemeinsam genutzten Auslese-Schaltungsanordnung 330 für die Vorwärtsrechenoperation unzureichend ist, um die aggregierten Stromsignale angemessen zu verarbeiten und zu quantisieren, die von dem Array von RPU-Zellen 310 wie während einer Rückwärtsrechenoperation ausgegeben werden. Wie im Folgenden ausführlicher erklärt, können verschiedene Techniken umgesetzt werden, um die Peripherie-Schaltungsanordnung (z.B. die gemeinsam genutzte Auslese-Schaltungsanordnung 330) für einen zweiten Betriebssignalbereich dynamisch zu konfigurieren, um die Signalverarbeitung und Quantisierung der aggregierten Stromsignale zu verbessern, die von den RPU-Zellen 310 des RPU-Arrays 305 während der Rückwärtsrechenoperation ausgegeben werden.
  • Es sollte klar sein, dass das Modussteuersystem 350, das in 3A und 3B gezeigt ist (sowie in 6, 7A, 7B, 8 und 9 gezeigte beispielhafte Modussteuersysteme) allgemein ein Steuersystem darstellt, das in einigen Ausführungsformen allgemein verschiedene Typen von Steuerschaltungsanordnungen, Prozessoren und zugehörigen Funktionalitäten umfasst (die in Software, Firmware und/oder Hardware umgesetzt sind), um die Peripherie-Schaltungsanordnung eines neuronalen Kerns (z.B. die Peripherie-Schaltungsanordnung 120 und 130 des Datenverarbeitungssystems 100 (1), die Peripherie-Schaltungsanordnung 320, 330, 340 des Datenverarbeitungssystems 300 usw.) zu steuern, um damit verschiedene Operationen zu steuern (z.B. Vorwärts-, Rückwärts- und Aktualisierungsoperationen), die von dem Datenverarbeitungssystem durchgeführt werden. Zum Beispiel umfasst das Modussteuersystem 350 die Steuersignal-Schaltungsanordnung 140 (1) sowie die Steuerschaltungsanordnung, Prozessoren usw. von einem oder mehreren digitalen Verarbeitungskernen, die funktionsmäßig mit den neuronalen Kernen verbunden sind, wobei der eine oder die mehreren digitalen Verarbeitungskerne Daten und Steuersignale zum Steuern von Operationen bereitstellt bzw. bereitstellen, die durch die neuronalen Kerne durchgeführt werden.
  • Zwar veranschaulichen 3A und 3B beispielhafte Verfahren zum Generieren der aggregierten Spalten- und Zeilenströme während Vorwärts- und Rückwärtsrechenoperationen, doch können anderen Techniken umgesetzt werden, um die aggregierten Spalten- und Zeilenströme durch Verwenden von Differenzstrom-Techniken zu generieren, die „Gewichtungen mit Vorzeichen“ ermöglichen. Zum Beispiel veranschaulichen 4A und 4B schematisch Verfahren zum Konfigurieren eines Datenverarbeitungssystems, das ein Array von Zellen einer resistiven Verarbeitungseinheit zum Durchführen einer Vorwärtsrechenoperation durch Verwenden von Gewichtungswerten mit Vorzeichen gemäß beispielhaften Ausführungsformen der Offenbarung aufweist. Des Weiteren veranschaulichen 5A und 5B schematisch Verfahren zum Konfigurieren eines Datenverarbeitungssystems, das ein Array von Zellen einer resistiven Verarbeitungseinheit zum Durchführen einer Rückwärtsrechenoperation durch Verwenden von Gewichtungswerten mit Vorzeichen gemäß einer beispielhaften Ausführungsform der Offenbarung aufweist.
  • Insbesondere veranschaulicht 4A schematisch ein Verfahren zum Generieren eines aggregierten Spaltenstroms während einer Vorwärtsrechenoperation durch Verwenden eines Referenzstroms (IREF), der durch eine Referenzstromschaltung 400 generiert wird, um „Gewichtungen mit Vorzeichen“ zu ermöglichen. Zur besseren Veranschaulichung zeigt 4A nur die erste Spalte C1 und den zugehörigen Auslese-Schaltungsblock 330-1 der gemeinsam genutzten Auslese-Schaltungsanordnung 330. 4A veranschaulicht schematisch ein Differenz-Leseschema, in dem ein aggregierter Spaltenstrom ICOL1, der in den Auslese-Schaltungsblock 330-1 eingegeben wird, als ICOL1 = I1-IREF bestimmt wird. Mit diesem Differenzschema gibt die Größe von ICOL1 einen Gewichtungswert an, und das Gewichtungsvorzeichen ist davon abhängig, ob I1 größer als, gleich oder kleiner als der Referenzstrom IREF ist. Ein positives Vorzeichen (ICOL1 > 0) wird erhalten, wenn I1 > 1 IREF. Ein Nullwert (ICOL1 > 0) wird erhalten, wenn I1 = IREF. Ein negatives Vorzeichen (ICOL1 < 0) wird erhalten, wenn I1< IREF. Zwar wird die Referenzstrom-Schaltungsanordnung 400 allgemein in 4A veranschaulicht, die Referenzstrom-Schaltungsanordnung kann aber durch Verwenden von bekannten Techniken umgesetzt werden. Zum Beispiel weist die Referenzstrom-Schaltungsanordnung 400 in einigen Ausführungsformen eine feste Stromquelle auf, die konfiguriert ist, um einen Referenzstrom IREF mit einer festen Größe zu generieren, die für die bestimmte Anwendung ausgewählt wird.
  • Als Nächstes veranschaulicht 4B schematisch ein Verfahren zum Generieren eines aggregierten Spaltenstroms ICOL1 während einer Vorwärtsrechenoperation durch Verwenden von verschiedenen Spaltenströmen I1 + und I1 - von entsprechenden Spalten C1+ und C1- von zwei separaten RPU-Arrays 410-1 und 410-2, wobei die Leitfähigkeit als (G+ - G-) bestimmt wird. Insbesondere in der beispielhaften Ausführungsform von 4B weist jede RPU-Zelle 310 (künstliche Synapse) zwei Einheiten von RPU-Zellen 310-1 und 310-2 mit jeweiligen Leitfähigkeitswerten Gij + and Gij - auf, wobei der Leitfähigkeitswert einer bestimmten RPU-Zelle als die Differenz zwischen den jeweiligen Leitfähigkeitswerten bestimmt wird, d.h. Gij = Gij + - Gij -, wobei i und j Indices in dem 2D-Array von Synapsen sind. Auf diese Weise können negative und positive Gewichtungen problemlos durch Verwenden von nur positiven Leitfähigkeitswerten encodiert werden.
  • Mit anderen Worten, da die Leitfähigkeitswerte von RPU-Einheiten nur positiv sein können, setzt ein Differenzschema in 4B ein Paar von identischen Arrays von RPU-Einheiten zum Encodieren von positiven (wij +) und negativen (wij -) Gewichtungswerten um, wobei der Gewichtungswert (wij) proportional zu einer Differenz von zwei Leitfähigkeitswerten ist, die in zwei entsprechenden Einheiten (Gij + bis Gij -) gespeichert sind, die sich auf identischen Positionen eines Paars von RPU-Arrays 410-1 und 410-2 befinden (wobei die beiden RPU-Arrays 410-1 und 410-2 in einer Back-End-of-Line Metallisierungsstruktur eines Chips übereinander gestapelt werden können). In diesem Fall wird eine einzelne RPU-Kachel als ein Paar von RPU-Arrays mit den Peripherie-Schaltungsanordnungen betrachtet, die den parallelen Betrieb des Arrays in allen drei Zyklen unterstützen.
  • Wie in 4B gezeigt, werden positive Spannungsimpulse (V1, V2, ..., Vm) und entsprechende negative Spannungsimpulse (-V1, -V2, ..., -Vm) den RPU-Zellen 310-1 und 310-2 in entsprechenden Zeilen in den identischen RPU-Arrays 410-1 und 410-2 separat zugeführt, die zum Encodieren von positiven und negativen Gewichtungen verwendet werden. Die aggregierten Spaltenströme I1 + und I1 -, die von den entsprechenden ersten Spalten C1+ und C1- in den jeweiligen RPU-Arrays 410-1 und 410-2 ausgegeben werden, werden kombiniert, um einen aggregierten Differenzstrom COL1 zu generieren, der in den Auslese-Schaltungsblock 330-1 eingegeben wird, der mit den ersten Spalten C1+ und C1- verbunden ist.
  • 5A und 5B sind 4A und 4B ähnlich, veranschaulichen aber schematisch alternative Ausführungsformen eines Generierens der Ausgangsströme auf den Zeilen während einer Rückwärtsrechenoperation. Insbesondere veranschaulicht 5A schematisch ein Verfahren zum Generieren eines aggregierten Zeilenstroms während einer Rückwärtsrechenoperation durch Verwenden eines Referenzstroms (IREF), der von einer Referenzstromschaltung 500 generiert wird, um „Gewichtungen mit Vorzeichen“ zu ermöglichen. Zur besseren Veranschaulichung zeigt 5A nur die erste Zeile R1 und den zugehörigen Auslese-Schaltungsblock 330-1 der gemeinsam genutzten Auslese-Schaltungsanordnung 330. 5A veranschaulicht schematisch ein Differenz-Leseschema, in dem ein aggregierter Zeilenstrom IROW1, der in den Auslese-Schaltungsblock 330-1 eingegebenen wird, als IROW1 = I1- IREF bestimmt wird. Mit diesem Differenzschema gibt die Größe von IROW1 einen Gewichtungswert an, und das Gewichtungsvorzeichen ist davon abhängig, ob I1 größer als, gleich oder kleiner als der Referenzstrom IREF ist. Ein positives Vorzeichen (IR0W1 > 0) wird erhalten, wenn I1 > IREF. Ein Nullwert (IROW1 > 0) wird erhalten, wenn I1 = IREF. Ein negatives Vorzeichen (IROW1 < 0) wird erhalten, wenn I1 < IREF. Zwar wird die Referenzstrom-Schaltungsanordnung 500 allgemein in 5A veranschaulicht, die Referenzstrom-Schaltungsanordnung 500 kann aber durch Verwenden von bekannten Techniken umgesetzt werden. Zum Beispiel weist die Referenzstromschaltung 500 in einigen Ausführungsformen eine feste Stromquelle auf, die konfiguriert ist, um einen Referenzstrom IREF mit einer festen Größe zu generieren, die für die bestimmte Anwendung ausgewählt wird.
  • Als Nächstes veranschaulicht 5B schematisch ein Verfahren zum Generieren eines aggregierten Zeilenstroms Irow1 während einer Rückwärtsrechenoperation durch Verwenden von Differenz-Zeilenströmen I1 + und I1 - von entsprechenden Zeilen R1+ und RI- der beiden separaten RPU-Arrays 410-1 und 410-2. Wiederum weist in der beispielhaften Ausführungsform von 5B jede RPU-Zelle 310 (künstliche Synapse) zwei Einheiten von RPU-Zellen 310-1 und 310-2 mit jeweiligen Leitfähigkeitswerten Gij + and Gij - auf, wobei der Leitfähigkeitswert einer bestimmten RPU-Zelle 310 als die Differenz zwischen den jeweiligen Leitfähigkeitswerten bestimmt wird, d.h. Gij = Gij + - Gjj -, wobei i und j Indices in den jeweiligen RPU-Arrays 410-1 und 410-2 sind. Auf diese Weise können negative und positive Gewichtungen problemlos durch Verwenden von nur positiven Leitfähigkeitswerten encodiert werden.
  • Wie in 5B gezeigt, werden positive Spannungsimpulse (V1, V2, ..., Vm) und entsprechende negative Spannungsimpulse (-V1, -V2, ..., -Vm) separat an die RPU-Zellen 310-1 und 310-2 in entsprechenden Spalten in den identischen RPU-Arrays 510-1 und 510-2 angelegt, die zum Encodieren von positiven und negativen Gewichtungen verwendet werden. Die aggregierten Zeilenströme I1 + und I1 -, die von den entsprechenden ersten Zeilen R1+ und R1- in den jeweiligen RPU-Arrays 410-1 und 410-1 ausgegeben werden, werden kombiniert, um einen aggregierten Differenzstrom ICOL1 zu generieren, der in den Auslese-Schaltungsblock 330-1 eingegeben wird, der mit den ersten Spalten C1+ und C1- verbunden ist.
  • Beispielhafte Ausführungsformen werden im Folgenden ausführlicher in Verbindung mit 6, 7A, 7B, 8, 9A und 9B erörtert, die schematisch Grenz-Managementtechniken veranschaulichen, die in dem analogen Bereich durch dynamisches Ändern der Konfiguration (z.B. Hardware-Konfiguration) der gemeinsam genutzten Auslese-Schaltungsanordnung umgesetzt werden, um verschiedene Signalgrenzen für verschiedene Betriebsmodi bereitzustellen, z.B. Vorwärts- und Rückwärtsrechenoperationen des analogen RPU-Kreuzschienen-Arrays. Insbesondere veranschaulichen 6, 7A, 7B, 8, 9A und 9B verschiedene Techniken zum dynamischen Konfigurieren der Peripherie-Schaltungsanordnung (z.B. der gemeinsam genutzten Auslese-Schaltungsanordnung 330), um über spezialisierte Konfigurationen (z.B. asymmetrische Hardware-Konfigurationen) für die verschiedenen Betriebsmodi (z.B. Vorwärts- und Rückwärtsrechenoperationen) zu verfügen, um damit die Signalverarbeitung und Quantisierung der aggregierten Stromsignale zu optimieren, die von den Zeilen und Spalten des analogen RPU-Kreuzschienen-Arrays für die verschiedenen Betriebsmodi ausgegeben werden. Dies steht im Gegensatz zu herkömmlichen Schemas, in denen die Peripherie-Schaltungsanordnung des analogen RPU-Kreuzschienen-Arrays eine „symmetrische Konfiguration“ hat, um die Ausleseoperationen für die Rückwärts- und Vorwärtsrechenoperationen durchzuführen.
  • 6 veranschaulicht schematisch ein System zum dynamischen Konfigurieren einer Auslese-Schaltungsanordnung für verschiedene Operationen, die an einem Array von Zellen einer resistiven Verarbeitungseinheit gemäß einer beispielhaften Ausführungsform der Offenbarung durchgeführt werden. Insbesondere veranschaulicht 6 schematisch ein System 600 zum dynamischen Konfigurieren von Integrationskondensatoren von Stromintegrator-Schaltungsanordnungen, um die Verstärkung der Stromintegrator-Schaltungsanordnungen abhängig vom Betriebsmodus (z.B. Vorwärtsrechenoperation oder Rückwärtsrechenoperation) des analogen RPU-Kreuzschienen-Arrays zu ändern. Das System 600 weist ein Modussteuersystem 610 und einen Auslese-Schaltungsblock 620 auf. Das Modussteuersystem 610 wird konfiguriert, um verschiedene Steuersignale 612 zu generieren, die an alle Auslese-Schaltungsblöcke der gemeinsam genutzten Auslese-Schaltungsanordnung angelegt werden (z.B. die gemeinsam genutzte Auslese-Schaltungsanordnung 330, 3A und 3B), die während Vorwärts- und Rückwärtsrechenoperationen genutzt werden. In einer beispielhaften Ausführungsform umfassen die Steuersignale 612 Steuersignale, die als F_Mode, B_Mode, CAP_Select und C A P _ S e l e c t ¯
    Figure DE112021006459T5_0003
    bezeichnet werden.
  • Zur besseren Veranschaulichung stellt 6 schematisch einen bestimmten Auslese-Schaltungsblock 620 dar, der den i-ten Auslese-Schaltungsblock der Mehrzahl von Auslese-Schaltungsblöcken der gemeinsam genutzten Auslese-Schaltungsanordnung 330 darstellt. In der beispielhaften Ausführungsform von 6 wird angenommen, dass jeder Auslese-Schaltungsblock der gemeinsam genutzten Auslese-Schaltungsanordnung 330 dieselbe Schaltungskonfiguration wie der Auslese-Schaltungsblock 620 hat, und dass jeder Auslese-Schaltungsblock der gemeinsam genutzten Auslese-Schaltungsanordnung 330 die Steuersignale 612 empfängt, die von dem Modussteuersystem 610 während Vorwärts- und Rückwärtsrechenoperationen ausgegeben werden, die auf dem zugehörigen RPU-Kreuzschienen-Array durchgeführt werden.
  • Wie in 6 schematisch veranschaulicht, weist der Auslese-Schaltungsblock 620 eine Multiplexer-Schaltungsanordnung 630, eine Stromintegratorschaltung 640 und eine ADC-Schaltung 650 auf. Die Stromintegratorschaltung 640 weist einen Operationsverstärker 642, einen ersten integrierenden Kondensator 644-1, einen zweiten integrierenden Kondensator 644-2, einen ersten Schalter 646-1 und einen zweiten Schalter 646-2 auf. Der Operationsverstärker 642 weist einen nicht invertierenden Eingang auf, der mit einer Masse-(GND) Spannung verbunden ist, einen invertierenden Eingang (als Knoten N1 bezeichnet), der mit einem Ausgang der Multiplexer-Schaltung 630 verbunden ist, und einen Ausgang (als Knoten N2 bezeichnet), der mit einem Eingang der ADC-Schaltung 650 verbunden ist. Der erste integrierende Kondensator 644-1 und der erste Schalter 646-1 sind zwischen den Knoten N1 und N2 seriell verbunden, und der zweite integrierende Kondensator 644-2 und der zweite Schalter 646-2 sind seriell zwischen den Knoten N1 und N2 verbunden.
  • Wie ferner in 6 gezeigt wird, hat die Multiplexer-Schaltung 630 einen ersten und einen zweiten Eingang, die mit einer entsprechenden Zeilenleitung ROW(i) und einer Spaltenleitung COL(i) des RPU-Kreuzschienen-Arrays verbunden sind. Die Multiplexer-Schaltung 630 weist Steuereingänge auf, die die Steuersignale F_Mode, B_Mode empfangen. Das Steuersignal F_Mode weist ein Steuersignal auf, das von dem Modussteuersystem 610 ausgegeben wird, wenn das RPU-Kreuzschienen-Array eine Vorwärtsrechenoperation durchführt, und das Steuersignal B_Mode weist ein Steuersignal auf, das von dem Modussteuersystem 610 ausgegeben wird, wenn das RPU-Kreuzschienen-Array eine Rückwärtsrechenoperation durchführt. In einigen Ausführungsformen ist die Multiplexer-Schaltung 630 konfiguriert, um (i) die Zeilenleitung ROW(i) mit dem Eingangsknoten N1 der Stromintegratorschaltung 640 in Reaktion auf eine Bestätigung des B_Mode-Steuersignals zu verbinden und (ii) die Spaltenleitung COL(i) mit dem Eingangsknoten N1 der Stromintegratorschaltung 640 in Reaktion auf eine Bestätigung des F_Mode-Steuersignals zu verbinden.
  • In dieser Konfiguration ist die Multiplexer-Schaltung 630 so konfiguriert, dass sie die gemeinsame Nutzung des Auslese-Schaltungsblocks 630 für Vorwärts- und Rückwärtsrechenoperationen steuert, die von dem RPU-Kreuzschienen-Array durchgeführt werden. Zum Beispiel stellen in der beispielhaften Ausführungsform von 3A und 3B die Multiplexer-Schaltung 630 und die zugehörigen Steuersignale F_Mode und B_Mode (umgesetzt in jedem der Auslese-Schaltungsblöcke der gemeinsam genutzten Auslese-Schaltungsanordnung 339) einen Mechanismus zum selektiven Verbinden der Spaltenleitungen C1, C2, ..., Cn des RPU-Arrays 305 mit der gemeinsam genutzten Auslese-Schaltungsanordnung 330 während einer Vorwärtsrechenoperation (3A) und zum selektiven Verbinden der Zeilenleitungen R1, R2, ..., Rm des RPU-Arrays 305 mit der gemeinsam genutzten Auslese-Schaltungsanordnung 330 während einer Rückwärtsrechenoperation (3A) bereit.
  • Die Stromintegratorschaltung 640 führt eine Integrationsfunktion über einen Integrationszeitraum (Tmeas) durch, um einen Eingangsstrom an dem Eingangsknoten N1 der Stromintegratorschaltung 640 in eine analoge Spannung VOUT an dem Ausgangsknoten N2 der Stromintegratorschaltung 640 umzuwandeln. Am Ende des Integrationszeitraums führt die ADC-Schaltung 650 eine Sperre in der Ausgangsspannung VOUT aus und quantisiert die Ausgangsspannung VOUT, um ein digitales Signal zu generieren, das der analogen Ausgangsspannung VOUT entspricht. Der Eingangsstrom kann (i) ein aggregierter Spaltenstrom sein, der von der Spaltenleitung COL(i) ausgegeben wird, die selektiv (durch eine Operation der Multiplexer-Schaltung 630) mit dem Eingangsknoten N1 der Stromintegratorschaltung 640 während einer Vorwärtsrechenoperation verbunden wird, oder (ii) ein aggregierter Zeilenstrom sein, der von der Zeilenleitung ROW(i) ausgegeben wird, die selektiv (durch eine Operation der Multiplexer-Schaltung 630) mit dem Eingangsknoten N1 der Stromintegratorschaltung 640 während einer Rückwärtsrechenoperation verbunden wird.
  • Die Stromintegratorschaltung 640 ist als ein Transkonduktanz-Operationsverstärker (OTA) mit einer wählbaren kapazitiven Rückkopplung konfiguriert, der von einem des ersten und des zweiten integrierenden Kondensators 644-1 und 644-2 bereitgestellt wird, um den Eingangsstrom (aggregierter Zeilenstrom oder aggregierter Spaltenstrom) in eine Ausgangsspannung VOUT auf dem Ausgangsknoten N2 der Stromintegratorschaltung 640 umzuwandeln. In der beispielhaften Konfiguration von 6 weist der erste integrierende Kondensator 644-1 einen Kapazitätswert CINT1 auf, und der zweite integrierende Kondensator 644-2 weist einen Kapazitätswert CINT2 auf, wobei CINT1 größer als CINT2 ist Der erste und der zweite integrierende Kondensator 644-1 und 644-2 werden in dem Rückkopplungspfad des Operationsverstärkers 642 für verschiedene Betriebsmodi (z.B. Vorwärts- und Rückwärtsrechenoperationen) selektiv verbunden, um den Betrag der Rückkopplungskapazität zu ändern und somit die Verstärkung der Stromintegratorschaltung 640 abhängig von dem aktuellen Betriebsmodus zu ändern.
  • Der erste und der zweite Schalter 646-1 und 646-2 werden durch die jeweiligen Steuersignale CAP_Select und CAP_Select gesteuert, die von dem Modussteuersystem 610 ausgegeben werden. In einigen Ausführungsformen werden der erste und der zweite Schalter 646-1 und 646-2 durch Verwenden von MOSFET-Schaltern (z.B. MOSFET-Einheiten des n-Typs) mit Gate-Anschlüssen umgesetzt, die die jeweiligen Steuersignale CAP_Select und CAP_Select empfangen. Die Steuersignale CAP_Select und CAP_Select sind komplementäre Signale, sodass, wenn das Steuersignal CAP_Select auf eine logische „1“ gesetzt ist, das komplementäre Steuersignal CAP_Select eine logische „0“ ist, und wenn das Steuersignal CAP_Select auf eine logische „0“ gesetzt ist, ist das komplementäre Steuersignal CAP_Select eine logische „1“.
  • Wenn in dieser Konfiguration das Steuersignal CAP_Select auf eine logische „1“ gesetzt ist, wird der erste Schalter 646-1 aktiviert (geschlossen), und der erste Integrationskondensator 644-1 wird in dem Rückkopplungspfad zwischen dem Eingangsknoten N1 und dem Ausgangsknoten N2 des Operationsverstärkers 642 selektiv verbunden. In diesem Fall ist das komplementäre Steuersignal CAP_Select auf eine logische „0“ gesetzt, sodass der zweite Schalter 646-2 deaktiviert (geöffnet) wird, und die Verbindung des zweiten Integrationskondensators 644-2 zu dem Rückkopplungspfad zwischen dem Eingangsknoten N1 und dem Ausgangsknoten N2 des Operationsverstärkers 642 wird aufgelöst. In dieser Konfiguration hat der Operationsverstärker 642 eine erste Verstärkung auf Grundlage des Werts CINT1 des ersten integrierenden Kondensators 644-1. Wenn das Steuersignal CAP_Select andererseits auf eine logische „0“ gesetzt ist, wird der erste Schalter 646-1 deaktiviert (geöffnet), und die Verbindung des ersten Integrationskondensators 644-1 zu dem Rückkopplungspfad zwischen dem Eingangsknoten N1 und dem Ausgangsknoten N2 des Operationsverstärkers 642 wird aufgelöst. In diesem Fall ist das komplementäre Steuersignal CAP_Select auf eine logische „1“ gesetzt, sodass der zweite Schalter 646-2 aktiviert (geschlossen) wird, und die Verbindung des zweiten Integrationskondensators 644-2 in dem Rückkopplungspfad zwischen dem Eingangsknoten N1 und dem Ausgangsknoten N2 des Operationsverstärkers 642 wird selektiv verbunden. In dieser Konfiguration hat der Operationsverstärker 642 eine zweite Verstärkung auf Grundlage des Werts CINT2 des zweiten integrierenden Kondensators 644-2, wobei die zweite Verstärkung größer als die erste Verstärkung ist.
  • In der beispielhaften Ausführungsform von 6 weist die Stromintegratorschaltung 640 eine konfigurierbare Verstärkung auf, die dynamisch zwischen einer Konfiguration mit hoher Verstärkung und einer Konfiguration mit geringer Verstärkung umgeschaltet werden kann, indem selektiv einer des ersten und des zweiten Strom integrierenden Kondensators 644-1 und 644-2 in dem kapazitiven Rückkopplungspfad des Operationsverstärkers 632 verbunden wird. Zum Beispiel kann die Stromintegratorschaltung 640 so konfiguriert werden, dass sie eine Konfiguration mit niedriger Verstärkung aufweist, um die Ausgangsspannung VOUT auf dem Ausgangsknoten N2 zu generieren, und während einer Rückwärtsrechenoperation kann die Stromintegratorschaltung 640 mit einer Konfiguration mit hoher Verstärkung generiert werden, um die Ausgangsspannung VOUT auf dem Ausgangsknoten N2 zu generieren.
  • Im Allgemeinen wird die Ausgangsspannung VOUT, die durch die Stromintegratorschaltung 640 generiert wird, bestimmt als: V O U T = 1 R × C I N T 0 T M E A S V I N . d t ,
    Figure DE112021006459T5_0004
    wobei R die jeweiligen Widerstandswerte (oder Leitfähigkeitswerte) der RPU-Zellen bezeichnet, die zu dem aggregierten Strom (Zeilenstrom oder Spaltenstrom) an dem Eingangsknoten N1 der Stromintegratorschaltung 640 beitragen, wobei CINT den Kapazitätswert des integrierenden Kondensators bezeichnet, der selektiv in dem Rückkopplungspfad zwischen dem Eingangs- und Ausgangsknoten N1 und N2 des Operationsverstärkers 642 verbunden ist, wobei VIN die jeweiligen Eingangsspannungsimpulse bezeichnet, die zu der Generierung des aggregierten Zeilen- oder Spaltenstroms beitragen, und wobei TMEAS die Integrationszeit bezeichnet. Wie gezeigt, ist die Größe der Ausgangsspannung VOUT indirekt proportional zu dem Kapazitätswert CINT des integrierenden Kondensators. Daher erhöht sich die Ausgangsspannung VOUT für bestimmte Werte von R, TMEAS und VIN, wenn sich die Kapazität CINT des Feedback integrierenden Kondensators verringert.
  • In einer beispielhaften Ausführungsform der in 6 gezeigten Systemkonfiguration ist der Kapazitätswert CINT1 des ersten integrierenden Kondensators 644-1 größer als der Kapazitätswert CINT2 des zweiten integrierenden Kondensators 644-2. In diesem Beispiel wird der erste integrierende Kondensator 644-1 während einer Vorwärtsrechenoperation in dem Rückkopplungspfad zwischen dem Eingangs- und Ausgangsknoten N1 und N2 des Operationsverstärkers 642 selektiv verbunden, um die Stromintegratorschaltung 640 mit einer Konfiguration von geringer Verstärkung zu konfigurieren. Andererseits ist der zweite integrierende Kondensator 644-2 während einer Rückwärtsrechenoperation, unter der Voraussetzung, dass erwartet wird, dass die Impulsbreiten der Eingangsspannungen eine signifikant kürzere Dauer als die Impulsbreiten der Eingangsspannungen für die Vorwärtsrechenoperation haben, selektiv mit dem Rückkopplungspfad zwischen dem Eingangs- und Ausgangsknoten N1 und N2 des Operationsverstärkers 642 verbunden, um die Stromintegratorschaltung 640 für eine Konfiguration mit hoher Verstärkung zu konfigurieren und dadurch Ausgangsspannungen VOUT mit ausreichender Größe zur Verarbeitung durch die ADC-Schaltung 650 zu generieren. Die Kapazitätswerte CINT1 und CINT2 des ersten und des zweiten integrierenden Kondensators 644-1 und 644-1 werden ausgewählt, um eine ausreichende Verstärkung während der Vorwärts- und Rückwärtsrechenoperationen bereitzustellen, wobei die Möglichkeit einer Sättigung des Operationsverstärkers 642 während der Stromintegrationsoperationen verhindert oder auf andere Weise minimiert wird.
  • 7A und 7B veranschaulichen schematisch Systeme zum dynamischen Konfigurieren einer Auslese-Schaltungsanordnung für verschiedene Operationen, die an einem Array von Zellen einer resistiven Verarbeitungseinheit gemäß beispielhaften Ausführungsformen der Offenbarung durchgeführt werden. Insbesondere veranschaulichen 7A und 7B schematisch alternative beispielhafte Ausführungsformen von Systemen zum dynamischen Konfigurieren der gemeinsam genutzten Ausleseschaltung für eine Auswahl zwischen zwei verschiedenen ADC-Schaltungen mit verschiedenen Auflösungen, die von dem Betriebsmodus (Vorwärtsrechnung oder Rückwärtsrechnung) des RPU-Kreuzschienen-Arrays abhängig sind. Unter Bezugnahme auf 7A weist das System 700 ein Modussteuersystem 710 und einen Auslese-Schaltungsblock 720 auf. Das Modussteuersystem 710 wird konfiguriert, um verschiedene Steuersignale 712 zu generieren, die an alle Auslese-Schaltungsblöcke der gemeinsam genutzten Auslese-Schaltungsanordnung angelegt werden (z.B. die gemeinsam genutzte Auslese-Schaltungsanordnung 330, 3A und 3B), die während Vorwärts- und Rückwärtsrechenoperationen genutzt werden. In einer beispielhaften Ausführungsform umfassen die Steuersignale 712 Steuersignale, die als F_Mode, B_Mode, ADC_H und ADC_L bezeichnet werden.
  • Zur besseren Veranschaulichung stellt 7A schematisch einen bestimmten Auslese-Schaltungsblock 720 dar, der den i-ten Auslese-Schaltungsblock der Mehrzahl von Auslese-Schaltungsblöcken der gemeinsam genutzten Auslese-Schaltungsanordnung 330 darstellt. In der beispielhaften Ausführungsform von 7A wird angenommen, dass jeder Auslese-Schaltungsblock der gemeinsam genutzten Auslese-Schaltungsblöcke 720 dieselbe Schaltungskonfiguration wie der Auslese-Schaltungsblock 620 hat, und dass jeder Auslese-Schaltungsblock der gemeinsam genutzten Auslese-Schaltungsanordnung 330 die Steuersignale 712 empfängt, die von dem Modussteuersystem 710 während Vorwärts- und Rückwärtsrechenoperationen ausgegeben werden, die auf dem zugehörigen RPU-Kreuzschienen-Array durchgeführt werden.
  • Wie in 7A schematisch veranschaulicht, weist der Auslese-Schaltungsblock 720 eine Multiplexer-Schaltung 730, eine Stromintegratorschaltung 740, eine Auswahlschaltung 760, eine erste ADC-Schaltung 750-1 und eine zweite ADC-Schaltung 750-2 auf. Die Stromintegratorschaltung 740 weist einen Operationsverstärker 742 und einen integrierenden Kondensator 744 auf, der zwischen dem Eingangs- und dem Ausgangsknoten N1 und N2 des Operationsverstärkers verbunden ist. Die Multiplexer-Schaltung 730 weist Steuereingänge auf, die die Steuersignale F_Mode, B_Mode empfangen. Die Multiplexer-Schaltung 730 ist so konfiguriert, dass sie auf dieselbe Weise wie die Multiplexer-Schaltung 630 von 6 arbeitet, wobei die entsprechenden Details hier nicht wiederholt werden.
  • Die Stromintegratorschaltung 740 führt eine Integrationsfunktion über einen Integrationszeitraum (TMEAS) durch, um einen Eingangsstrom an dem Eingangsknoten N1 der Stromintegratorschaltung 740 in eine analoge Spannung VOUT an dem Ausgangsknoten N2 der Stromintegratorschaltung 740 umzuwandeln. Der Eingangsstrom kann (i) ein aggregierter Spaltenstrom sein, der von der Spaltenleitung COL(i) ausgegeben wird, die selektiv (durch eine Operation der Multiplexer-Schaltung 730) mit dem Eingangsknoten N1 der Stromintegratorschaltung 740 während einer Vorwärtsrechenoperation verbunden ist, oder (ii) ein aggregierter Zeilenstrom sein, der von der Zeilenleitung ROW(i) ausgegeben wird, die selektiv (durch eine Operation der Multiplexer-Schaltung 730) mit dem Eingangsknoten N1 der Stromintegratorschaltung 740 während einer Rückwärtsrechenoperation verbunden ist. In der beispielhaften Ausführungsform von 7 weist die Stromintegratorschaltung 740 eine feste Verstärkung auf, die auf einem Kapazitätswert CINT1 des integrierenden Kondensators 744 beruht. In einigen Ausführungsformen wird der Kapazitätswert CINT1 des integrierenden Kondensators 744 für die Ausgangssignalgrenze für Vorwärtsrechenoperationen gewählt, um z.B. eine ausreichende Verstärkung für den Stromintegrator 740 zum Generieren von Ausgangsspannungen VOUT auf dem Ausgangsknoten N2 während Vorwärtsrechenoperationen bereitzustellen, wobei die Möglichkeit einer Sättigung des Operationsverstärkers 742 während der Stromintegrationsoperationen verhindert oder auf andere Weise minimiert wird.
  • Wie ferner in 7A gezeigt wird, weist die Auswahl-Schaltungsanordnung 760 (i) einen Eingang auf, der mit dem Ausgangsknoten N2 auf der Stromintegratorschaltung 740 verbunden ist, (ii) Steuereingänge, die die Steuersignale ADC_H und ADC_L empfangen, und (iii) einen ersten und einen zweiten Ausgang, die jeweils mit Eingängen der ersten und der zweiten ADC-Schaltung ADC 750-1 und 750-2 verbunden sind. In einigen Ausführungsformen weist die erste ADC-Schaltung 750-1 eine ADC-Schaltung mit hoher Auflösung auf, die während Rückwärtsrechenoperationen verwendet wird, um die Ausgangsspannungen VOUT, die an dem Ausgangsknoten N2 der Stromintegratorschaltung 740 generiert werden, zu digitalisieren, und die zweite ADC-Schaltung 750-2 weist eine ADC-Schaltung mit niedriger Auflösung auf, die während Vorwärtsrechenoperationen verwendet wird, um die Ausgangsspannungen VOUT, die an dem Ausgangsknoten N2 der Stromintegratorschaltung 740 generiert werden, zu digitalisieren.
  • Das Steuersignal ADC_L weist ein Steuersignal auf, das von dem Modussteuersystem 710 ausgegeben wird, wenn das RPU-Kreuzschienen-Array eine Vorwärtsrechenoperation durchführt, und das Steuersignal ADC_H weist ein Steuersignal auf, das von dem Modussteuersystem 710 ausgegeben wird, wenn das RPU-Kreuzschienen-Array eine Rückwärtsrechenoperation durchführt. In einigen Ausführungsformen ist die Auswahl-Schaltungsanordnung 760 konfiguriert, um (i) den Ausgangsknoten N2 der Stromintegratorschaltung 740 mit dem Eingang der ersten ADC-Schaltung 750-1 in Reaktion auf eine Bestätigung des Steuersignals ADC_H selektiv zu verbinden, und (ii) den Ausgangsknoten N2 der Stromintegratorschaltung 740 mit dem Eingang der zweiten ADC-Schaltung 750-2 in Reaktion auf eine Bestätigung des Steuersignals ADC_L selektiv zu verbinden.
  • In einigen Ausführungsformen weist die erste ADC-Schaltung 750-1 eine erste Auslösung auf und die zweite ADC-Schaltung 750-2 weist eine zweite Auflösung auf, wobei die erste Auflösung höher als die zweite Auflösung ist. In einigen Ausführungsformen weisen die erste und die zweite ADC-Schaltung 750-1 und 750-2 dieselbe Bit-Auflösung auf, wobei die erste und die zweite ADC-Schaltung 750-1 und 750-2 jeweils eine n-Bit-ADC-Auflösung aufweisen, wobei z.B. n = 3, 4, 5, 6, 7, 8, wobei aber die erste und die zweite ADC-Schaltung 750-1 und 750-2 konfiguriert sind, um verschiedene Spannungsauflösungen mit niedrigstwertigem Bit (LSB) für die bestimmte n-Bit-Auflösung aufzuweisen.
  • Zum Beispiel soll angenommen werden, dass die erste und die zweite ADC-Schaltung 750-1 und 750-1 ADCs mit 8-Bit-Auflösung sind, wobei aber die erste ADC-Schaltung 750-1 so konfiguriert ist, dass sie einen vollen Umfang des Betriebsspannungsbereichs aufweist, z.B. [-0,1 V bis +0,1 V], und die zweite ADC-Schaltung 750-2 so konfiguriert ist, dass die einen vollen Umfang des Betriebsspannungsbereichs aufweist, z.B.[-10 V bis +10 V] (wobei V Mikrovolt (µV),Millivolt (mV), usw. sein kann). In diesem Fall würde die Spannungsauflösung (erste Auflösung) der ersten ADC-Schaltung 750-1 (8-Bit-ADC) 0,2/256 betragen, was ungefähr 0,000078 V entspricht, während die Spannungsauflösung (zweite Auflösung) der zweiten ADC-Schaltung 750-2 (8--Bit-ADC) 20/256 betragen würde, was ungefähr 0,078 V entspricht. In dem Beispiel stellt die erste Spannungsauflösung (0,000078 V) der ersten ADC-Schaltung 750-1 eine höhere Spannungsauflösung als die zweite Spannungsauflösung (0,078 V) der zweiten ADC-Schaltung 750-2 (8-Bit-ADC) bereit. Die bessere Spannungsauflösung der ersten ADC-Schaltung 750-1 wäre effizienter, um die Ausgangsspannungen VOUT mit niedrigerem Pegel zu digitalisieren, die an dem Ausgangsknoten N2 der Stromintegratorschaltung 740 während Rückwärtsrechenoperationen generiert werden, während eine Spannungsauflösung der zweiten ADC-Schaltung 750-2 effektiver wäre, um die Ausgangsspannungen VOUT mit höherem Pegel zu digitalisieren, die an dem Ausgangsknoten N2 der Stromintegratorschaltung 740 während Vorwärtsrechenoperationen generiert werden.
  • In anderen Ausführungsformen können die erste und die zweite ADC-Schaltung 750-1 und 750-2 so konfiguriert werden, dass sie verschiedene Verstärkungen aufweisen, wobei eine erste Verstärkung der ersten ADC-Schaltung 750-1 größer als eine zweite Verstärkung der zweiten ADC-Schaltung 750-2 ist. Zum Beispiel können in einigen Ausführungsformen die erste und die zweite ADC-Schaltung 750-1 und 750-2 so konfiguriert werden, dass sie eine ADC-Umwandlungs-Schaltungsanordnung mit derselben Bit-Auflösung, derselben Spannungsauflösung und demselben Bereich einer Betriebseingangsspannung aufweisen, der für den erwarteten Spannungsbereich der Ausgangsspannungen VOUT durch Vorwärtsrechenoperationen generiert wurde, wobei aber die erste ADC-Schaltung 750-1 ein analoges Front-End mit einem Verstärker und/oder einer Pegelverschiebungs-Schaltungsanordnung aufweist, die konfiguriert ist, um eine ordnungsgemäße Verstärkung und Pegelverschiebung der Ausgangsspannungen VOUT mit niedrigem Pegel bereitzustellen (die während Rückwärtsrechenoperationen generiert wurden), um dem Betriebseingangsbereich der ADC-Umwandlungs-Schaltungsanordnung zu entsprechen.
  • Als Nächstes veranschaulicht 7B schematisch ein System 701 zum dynamischen Konfigurieren der gemeinsam genutzten Ausleseschaltung gemäß einer beispielhaften Ausführungsform der Offenbarung, um zwischen zwei verschiedenen ADC-Schaltungen mit verschiedenen Auflösungen zu wählen, die von dem Betriebsmodus (Vorwärtsrechnung oder Rückwärtsrechnung) des RPU-Kreuzschienen-Arrays abhängig sind. Wie oben angemerkt, ist das System 701 von 7B eine alternative Ausführungsform des Systems 700 von 7A. Unter Bezugnahme auf 7B weist das System 701 ein Modussteuersystem 711 und einen Auslese-Schaltungsblock 721 auf. Das Modussteuersystem 711 wird konfiguriert, um eine Mehrzahl von Steuersignalen 713 zu generieren, die an alle Auslese-Schaltungsblöcke der gemeinsam genutzten Auslese-Schaltungsanordnung angelegt werden (z.B. die gemeinsam genutzte Auslese-Schaltungsanordnung 330, 3A und 3B), die während Vorwärts- und Rückwärtsrechenoperationen genutzt werden. In einer beispielhaften Ausführungsform umfassen die Steuersignale 713 Steuersignale, die als F_Mode und B_Mode bezeichnet werden.
  • Zur besseren Veranschaulichung stellt 7B schematisch einen bestimmten Auslese-Schaltungsblock 721 dar, der den i-ten Auslese-Schaltungsblock der Mehrzahl von Auslese-Schaltungsblöcken der gemeinsam genutzten Auslese-Schaltungsanordnung 330 darstellt. In der beispielhaften Ausführungsform von 7B wird angenommen, dass jeder Auslese-Schaltungsblock der gemeinsam genutzten Auslese-Schaltungsanordnung 330 dieselbe Schaltungskonfiguration wie der Auslese-Schaltungsblock 721 hat, und dass jeder Auslese-Schaltungsblock der gemeinsam genutzten Auslese-Schaltungsanordnung 330 die Steuersignale 713 empfängt, die von dem Modussteuersystem 711 während Vorwärts- und Rückwärtsrechenoperationen ausgegeben werden, die auf dem zugehörigen RPU-Kreuzschienen-Array durchgeführt werden.
  • Wie in 7B schematisch veranschaulicht, weist der Auslese-Schaltungsblock 721 eine Multiplexer-Schaltungsanordnung 730, eine erste Stromintegratorschaltung 740-1, eine zweite Stromintegratorschaltung 740-2, eine erste ADC-Schaltung 750-1 und eine zweite ADC-Schaltung 750-2 auf. Die erste Stromintegratorschaltung 740-1 ist mit einem Eingang mit einem Ausgang der Auswahl-Schaltungsanordnung 731 verbunden, und mit einem Ausgang mit einem Eingang der ersten ADC-Schaltung 750-1 verbunden. Die zweite Stromintegratorschaltung 740-2 weist einen Eingang, der mit einem Ausgang der Auswahl-Schaltungsanordnung 731 verbunden ist, und einen Ausgang auf, der mit einem Eingang der zweiten ADC-Schaltung 750-1 verbunden ist. In einigen Ausführungsformen sind die erste und die zweite Stromintegratorschaltung 740-1 und 740-2 der Stromintegratorschaltung 740 in 7A ähnlich, wobei die Details hier nicht wiederholt werden. Ferner setzen in einigen Ausführungsformen die erste und die zweite ADC-Schaltung 750-1 und 750-2 dieselben Schaltungsarchitekturen und dieselbe Funktion um wie oben in der beispielhaften Ausführungsform von 7B erörtert, wobei die Details hier nicht wiederholt werden.
  • Die Auswahl-Schaltungsanordnung 731 ist so konfiguriert, dass sie auf eine Weise arbeitet, die den Multiplexer-Schaltungen 630 und 730 von 7A und 7B ähnlich ist. Die Auswahl-Schaltungsanordnung 731 hat jedoch zwei Ausgänge, wobei in einigen Ausführungsformen die Auswahl-Schaltungsanordnung 731 konfiguriert ist, um (i) die Zeilenleitung ROW(i) mit dem Eingang der ersten Stromintegratorschaltung 740-1 in Reaktion auf eine Bestätigung des B_Mode-Steuersignals zu verbinden, und (ii) die Spaltenleitung COL(i) mit dem Eingang der zweiten Stromintegratorschaltung 740-2 in Reaktion auf eine Bestätigung des F_Mode-Steuersignals zu verbinden. In dieser Konfiguration empfangen, integrieren und quantisieren die erste Stromintegratorschaltung 740-1 und die erste ADC-Schaltung 750-1 ein aggregiertes Zeilenstromsignal, das von der Zeilenleitung ROW(i) während einer Rückwärtsrechenoperation ausgegeben wird, und die zweite Stromintegratorschaltung 740-2 und die zweite ADC-Schaltung 750-2 empfangen, integrieren und quantisieren ein aggregiertes Spaltenstromsignal, das von der Spaltenleitung COL(i) während einer Vorwärtsrechenoperation ausgegeben wird.
  • In einer alternativen Ausführungsform von 7B sind der erste und der zweite Stromintegrator 740-1 und 740-2 so konfiguriert, dass sie verschiedene, aber feste Verstärkungen aufweisen, und die erste und die zweite ADC-Schaltung 750-1 und 750-2 sind so konfiguriert, dass sie dieselbe Auflösung haben. In dieser Ausführungsform hätten der erste und der zweite Stromintegrator 740-1 und 740-2 jeweils einen einzelnen Integrationskondensator, jedoch mit verschiedenen Größen, in den jeweiligen Rückkopplungspfaden der jeweiligen Operationsverstärker, derart, dass der erste Stromintegrator 740-1 eine feste erste Verstärkung hat und die zweite Stromintegratorschaltung 740-2 eine zweite feste Verstärkung hat, die kleiner als die erste feste Verstärkung ist. Bei dieser Konfiguration würde die erste Stromintegratorschaltung 740-1 mit einer Ausgangssignalgrenze für Rückwärtsrechenoperationen ausgelegt, indem sie eine höhere Verstärkung zum Generieren von Ausgangsspannungen VOUT mit Pegeln mit Spannungsbereichen hat, die dem Betriebs-Eingangsspannungsbereich der ersten ADC-Schaltung 750-1 entsprechen.
  • 8 veranschaulicht schematisch ein System zum dynamischen Konfigurieren einer Auslese-Schaltungsanordnung für verschiedene Operationen, die an einem Array von Zellen einer resistiven Verarbeitungseinheit gemäß einer weiteren beispielhaften Ausführungsform der Offenbarung durchgeführt werden. Insbesondere veranschaulicht 8 schematisch ein System 800 zum dynamischen Konfigurieren einer ADC-Schaltung mit verschiedenen Auflösungen oder verschiedenen Verstärkungen abhängig von dem Betriebsmodus (z.B. Vorwärtsrechenoperation oder Rückwärtsrechenoperation) des RPU-Kreuzschienen-Arrays. Das System 800 weist ein Modussteuersystem 810 und einen Auslese-Schaltungsblock 820 auf. Das Modussteuersystem 810 wird konfiguriert, um verschiedene Steuersignale 812 zu generieren, die an alle Auslese-Schaltungsblöcke der gemeinsam genutzten Auslese-Schaltungsanordnung angelegt werden (z.B. die gemeinsam genutzte Auslese-Schaltungsanordnung 330, 3A und 3B), die während Vorwärts- und Rückwärtsrechenoperationen genutzt werden. In einer beispielhaften Ausführungsform umfassen die Steuersignale 812 Steuersignale, die als F_Mode, B_Mode, ADC_H und ADC_L bezeichnet werden.
  • Zur besseren Veranschaulichung stellt 8 wiederum schematisch einen bestimmten Auslese-Schaltungsblock 820 dar, der den i-ten Auslese-Schaltungsblock der Mehrzahl von Auslese-Schaltungsblöcken der gemeinsam genutzten Auslese-Schaltungsanordnung 330 darstellt. In der beispielhaften Ausführungsform von 8 wird angenommen, dass jeder Auslese-Schaltungsblock der gemeinsam genutzten Auslese-Schaltungsanordnung 330 dieselbe Schaltungskonfiguration wie der Auslese-Schaltungsblock 820 hat, und dass jeder Auslese-Schaltungsblock die Steuersignale 812 empfängt, die von dem Modussteuersystem 810 während Vorwärts- und Rückwärtsrechenoperationen ausgegeben werden, die auf dem zugehörigen RPU-Kreuzschienen-Array durchgeführt werden.
  • Wie in 8 schematisch veranschaulicht, weist der Auslese-Schaltungsblock 820 eine Multiplexer-Schaltung 830, eine Stromintegratorschaltung 840 und eine konfigurierbare ADC-Schaltung 850 auf. Der Multiplexer 830 und die Stromintegratorschaltung 840 weisen eine selbe Konfiguration auf und führen dieselben oder ähnliche Funktionen wie die Multiplexer-Schaltung 630 von 6 und die Stromintegratorschaltung 740 von 7A durch, wobei die Details hier nicht wiederholt werden. Wie ferner in 8 gezeigt, weist die konfigurierbare ADC-Schaltung 850 Steuereingänge auf, die die Steuersignale ADC_H und ADC_L empfangen.
  • In einigen Ausführungsformen weist die konfigurierbare ADC-Schaltung 850 eine konfigurierbare LSB-Spannungsauflösung auf, die in Reaktion auf die Steuersignale ADC_H und ADC_L dynamisch angepasst wird. Zum Beispiel wird die ADC-Schaltung 850 in Reaktion auf eine Bestätigung des Steuersignals ADC_H während einer Rückwärtsrechenoperation dynamisch konfiguriert, um die Spannungsauflösung auf einen Pegel zu erhöhen, der ausreichend ist, um die Ausgangsspannung VOUT mit niedrigem Pegel effektiv zu quantisieren, die auf dem Ausgangsknoten N2 der Stromintegratorschaltung 840 während einer Rückwärtsrechenoperation generiert wird. Ferner wird die konfigurierbare ADC-Schaltung 850 in Reaktion auf eine Bestätigung des Steuersignals ADC_L während einer Vorwärtsrechenoperation dynamisch konfiguriert, um die Spannungsauflösung auf einen Pegel zu verringern, der ausreichend ist, um die Ausgangsspannung VOUT mit hohem Pegel effektiv zu quantisieren, die auf dem Ausgangsknoten N2 der Stromintegratorschaltung 840 während der Vorwärtsrechenoperation generiert wird. In diesem Zusammenhang wird die konfigurierbare ADC-Schaltung 850 dynamisch für eine erste Auflösung für eine Rückwärtsrechenoperation konfiguriert, und dynamisch für eine zweite Auflösung für eine Vorwärtsrechenoperation konfiguriert, wobei die erste Auflösung größer als die zweite Auflösung ist.
  • Die ADC-Schaltung 850 mit der konfigurierbaren ADC-Auflösung kann durch Verwenden von geeigneten ADC-Umwandlungsschaltungen und -techniken auf Zeitgrundlage umgesetzt werden. Zum Beispiel kann die ADC-Schaltung 850 durch Verwenden einer ADC-Architektur mit Single-Slope- (Ein-Flanken-) oder Dual-Slope-(Doppel-Flanken-) Integration umgesetzt werden, wobei die ADC-Umwandlung auf der Integration der Ausgangsspannung VOUT, einer Referenzspannung oder der Ausgangsspannung VOUT und einer Referenzspannung beruht. In dieser beispielhaften Ausführungsform kann die LSB-Spannungsauflösung dynamisch modifiziert werden, indem ein oder mehrere Betriebsparameter des integrierenden ADC geändert wird bzw. werden, einschließlich des Pegels der Referenzspannung, der Integrationszeit des Integrations-ADC usw., sie sind aber nicht darauf beschränkt.
  • In anderen Ausführungsformen weist die konfigurierbare ADC-Schaltung 850 eine konfigurierbare Verstärkung auf, die in Reaktion auf die Steuersignale ADC_H und ADC_L dynamisch angepasst wird. Zum Beispiel kann die konfigurierbare ADC-Schaltung 850 eine feste (nicht konfigurierbare) Auflösung haben, die für die Ausgangssignalgrenze für Vorwärtsrechenoperationen ausgelegt ist, aber dennoch eine programmierbare Verstärkungsschaltung und eine Pegelverschiebungs-Schaltungsanordnung in einem analogen Front-End der ADC-Schaltung 850 umsetzen, um eine Verstärkung der programmierbaren Verstärkungsschaltung abhängig vom Betriebsmodus (z.B. Vorwärtsrechnungs- oder Rückwärtsrechenoperationen) dynamisch anzupassen.
  • Zum Beispiel wird in einigen Ausführungsformen in Reaktion auf eine Bestätigung des Steuersignals ADC_H während einer Rückwärtsrechenoperation die analoge Front-End-Schaltungsanordnung der ADC-Schaltung 850 dynamisch mit einer höheren Verstärkung konfiguriert, um die Ausgangsspannung VOUT auf einen Pegel zu verstärken, der in den Bereich der höheren Betriebseingangsspannung der Umwandlungs-Schaltungsanordnung der ADC-Schaltung 850 fällt, wodurch ermöglicht wird, dass die Ausgangsspannung VOUT mit niedrigem Pegel auf Grundlage der festen Auflösung der ADC-Schaltung 850 genauer quantisiert werden kann. Ferner wird in Reaktion auf eine Bestätigung des Steuersignals ADC_H während einer Vorwärtsrechenoperation die analoge Front-End-Schaltungsanordnung der ADC-Schaltung 850 dynamisch auf eine niedrigere Verstärkung konfiguriert (z.B. Verstärkungsfaktor von 1), sodass die Ausgangsspannung VOUT (die von dem Ausgangsknoten der Stromintegratorschaltung 840 in die ADC-Schaltung 850 aufgeschaltet wird) auf einem Pegel gehalten wird, der in den Bereich der Betriebseingangsspannung der Umwandlungs-Schaltungsanordnung der ADC-Schaltung 850 fällt.
  • 9A und 9B veranschaulichen schematisch ein System zum dynamischen Konfigurieren einer Peripherie-Schaltungsanordnung mit einer Auslese-Schaltungsanordnung für verschiedene Operationen, die an einem Array von Zellen einer resistiven Verarbeitungseinheit gemäß einer weiteren beispielhaften Ausführungsform der Offenbarung durchgeführt werden. Insbesondere veranschaulichen 9A und 9B schematisch ein System zum dynamischen Konfigurieren einer Peripherie-Schaltungsanordnung eines analogen RPU-Kreuzschienen-Arrays auf verschiedene Betriebssignalbereiche für verschiedene Betriebsmodi des RPU-Kreuzschienen-Arrays gemäß einer weiteren beispielhaften Ausführungsform der Offenbarung. 9A und 9B veranschaulichen schematisch ein System 900 zum dynamischen Konfigurieren der Peripherie-Schaltungsanordnung (z.B. die gemeinsam genutzte Auslese-Schaltungsanordnung 330 und die Spaltenleitungstreiber-Schaltungsanordnung 340 (die DAC-Schaltungsblöcke 342)), um verschiedene Integrationszeiten bereitzustellen, die von dem Betriebsmodus (Vorwärtsrechnung oder Rückwärtsrechnung) des RPU-Kreuzschienen-Arrays abhängen.
  • Unter Bezugnahme auf 9A weist das System 900 ein Modussteuersystem 910 und einen Auslese-Schaltungsblock 920 auf. Das Modussteuersystem 910 wird konfiguriert, um verschiedene Steuersignale 912 zu generieren, die an alle Auslese-Schaltungsblöcke der gemeinsam genutzten Auslese-Schaltungsanordnung angelegt werden (z.B. die gemeinsam genutzte Auslese-Schaltungsanordnung 330, 3A und 3B), die während Vorwärts- und Rückwärtsrechenoperationen genutzt werden. In einer beispielhaften Ausführungsform weisen die Steuersignale 912 Steuersignale auf, die als F_Mode, B_Mode, T1MEAS_Mode und T2MEAS_Mode bezeichnet werden. Zur besseren Veranschaulichung stellt 9A wiederum schematisch einen bestimmten Auslese-Schaltungsblock 920 dar, der den i-ten Auslese-Schaltungsblock der Mehrzahl von Auslese-Schaltungsblöcken der gemeinsam genutzten Auslese-Schaltungsanordnung 330 darstellt. In der beispielhaften Ausführungsform von 9A wird angenommen, dass jeder Auslese-Schaltungsblock der gemeinsam genutzten Auslese-Schaltungsanordnung 330 dieselbe Schaltungskonfiguration wie der Auslese-Schaltungsblock 920 hat, und dass jeder Auslese-Schaltungsblock die Steuersignale 912 empfängt, die von dem Modussteuersystem 910 während Vorwärts- und Rückwärtsrechenoperationen ausgegeben werden, die auf dem zugehörigen RPU-Kreuzschienen-Array durchgeführt werden.
  • Wie in 9A schematisch veranschaulicht, weist der Auslese-Schaltungsblock 920 eine Multiplexer-Schaltung 930, eine Stromintegratorschaltung 940 und eine ADC-Schaltung 950 auf. In einigen Ausführungsformen weist der Multiplexer 930 eine selbe Konfiguration auf und führt dieselben oder ähnliche Funktionen wie die Multiplexer-Schaltung 630 von 6 durch, wobei die Details hier nicht wiederholt werden. Außerdem weist die ADC-Schaltung 950 in einigen Ausführungsformen eine selbe Konfiguration auf und führt dieselben oder ähnliche Funktionen wie die ADC-Schaltung 650 von 6 durch, wobei die Details hier nicht wiederholt werden. In dieser beispielhaften Ausführungsform weist die ADC-Schaltung 950 eine feste Konfiguration auf, die so ausgelegt ist, dass sie einen Auflösungs- und Betriebssignalbereich aufweist, der die erwarteten Ausgangsspannungen VOUT mit höherem Pegel digitalisiert, die an dem Ausgangsknoten N2 der Stromintegratorschaltung 940 während Vorwärtsrechenoperationen generiert wurden.
  • Die Stromintegratorschaltung 940 weist einen Operationsverstärker 942, einen integrierenden Kondensator 944, der zwischen dem Eingangs- und dem Ausgangsknoten N1 und N2 des Operationsverstärkers verbunden ist, und eine Steuerschaltung 946 auf, die einen Integrationszeitzähler und eine Reset-Steuerschaltung umfasst. Die Stromintegratorschaltung 940 führt eine Integrationsfunktion durch, um einen Eingangsstrom an dem Eingangsknoten N1 der Stromintegratorschaltung 940 in eine analoge Spannung VOUT an dem Ausgangsknoten N2 der Stromintegratorschaltung 940 umzuwandeln, wobei die Stromintegrationsoperation über einen konfigurierbaren Integrationszeitraum durchgeführt wird, der für eine erste Integrationszeit T1MEAs oder eine zweite Integrationszeit T2MEAS abhängig von einem Betriebsmodus (z.B. Vorwärtsrechnungs- oder Rückwärtsrechenoperation) des RPU-Kreuzschienen-Arrays dynamisch angepasst werden kann. Die zweite Integrationszeit T2MEAS ist größer als die erste Integrationszeit T1MEAS. Zum Beispiel beträgt in einigen Ausführungsformen die erste Integrationszeit T1MEAs 80 Nanosekunden (ns), während die zweite Integrationszeit T2MEAS größer als 80 ns ist (z.B. T2MEAS = 2 × T1MEAS).
  • In der beispielhaften Ausführungsform von 9 hat die Stromintegratorschaltung 940 eine feste Verstärkung, die auf einem Kapazitätswert CINT1 des integrierenden Kondensators 944 beruht. In einigen Ausführungsformen wird der Kapazitätswert CINT1 des integrierenden Kondensators 944 zum Bereitstellen der Ausgangssignalgrenze für Vorwärtsrechenoperationen gewählt, um z.B. eine ausreichende Verstärkung für den Stromintegrator 940 zum Generieren einer Ausgangsspannung VOUT auf dem Ausgangsknoten N2 während Vorwärtsrechenoperationen für den Integrationszeitraum T1MEAs bereitzustellen, wobei die Möglichkeit einer Sättigung des Operationsverstärkers 942 während der Stromintegrationsoperationen verhindert oder auf andere Weise minimiert wird.
  • Andererseits wird die Stromintegratorschaltung 940 während einer Rückwärtsrechenoperation dynamisch konfiguriert, um den Eingangsstrom über den zweiten Integrationszeitraum T2MEAS zu integrieren, um zu ermöglichen, dass eine größere Ausgangsspannung VOUT auf dem Ausgangsknoten N2 der Stromintegratorschaltung 940 generiert wird, wobei die Möglichkeit einer Sättigung des Operationsverstärkers 942 während der Stromintegrationsoperation für die Rückwärtsrechenoperation verhindert oder auf andere Weise minimiert wird. Wie in 9A schematisch veranschaulicht, wird die Integrationszeit der Stromintegratorschaltung 940 durch die Steuerschaltungsanordnung 946 in Reaktion auf die Integrationszeit-Steuersignale T1MEAS_Mode und T2MEAS_Mode, die in die Steuerschaltungsanordnung 946 eingegeben werden, dynamisch konfiguriert. Zum Beispiel bestätigt das Modussteuersystem 910 das Steuersignal T1MEAS_Mode während einer Vorwärtsrechenoperation, das die Steuerschaltungsanordnung 946 anweist, die Stromintegratorschaltung 940 zu konfigurieren, um eine Stromintegrationsoperation über die erste Integrationszeit T1MEAs durchzuführen. Andererseits bestätigt das Modussteuersystem 910 das Steuersignal T2MEAS_Mode während einer Rückwärtsrechenoperation, das die Steuerschaltungsanordnung 946 anweist, die Stromintegratorschaltung 940 zu konfigurieren, um eine Stromintegrationsoperation über die zweite Integrationszeit T2MEAS durchzuführen.
  • Zwar wird die Steuerschaltungsanordnung 946 allgemein in 9A dargestellt, doch kann die Steuerschaltungsanordnung 946 durch Verwenden von verschiedenen Steuerschaltungs-Architekturen und -Techniken umgesetzt werden, um Funktionen wie beispielsweise Steuern des Integrationszeitraums der Stromintegratorschaltung 940, Senden eines Steuersignals (z.B. ADC_EN) an die ADC-Schaltung 950, um die ADC-Schaltung 950 zu veranlassen, die Ausgangsspannung VOUT auf dem Ausgangsknoten N2 am Ende des Stromintegrations-Zeitraums aufzuschalten, Zurücksetzen der Stromintegratorschaltung 940, indem z.B. die Spannung an dem Ausgangsknoten auf einen anfänglichen Spannungspegel gesetzt wird (z.B. 0 V), um die Stromintegrationsschaltung 940 in Vorbereitung auf ein Durchführen eines nächsten Stromintegrationsprozesses zu initialisieren usw. In diesem Zusammenhang kann die Steuerschaltungsanordnung 946 auf verschiedene Art und Weise konfiguriert werden, die von der spezifischen Schaltungsstruktur der Stromintegrationsschaltung 940 und der Hardware-Schnittstelle und der Konfiguration zwischen der Stromintegratorschaltung 940 und der ADC-Schaltung 950 abhängig ist.
  • In einer beispielhaften Ausführungsform weist die Steuerschaltung 946 einen Integrationszeitzähler auf, der eine Anzahl von Taktimpulsen zählt, die in den Integrationszeitzähler eingegeben werden, wobei die Integrationszeit mit einer spezifischen Anzahl von empfangenen Taktimpulsen korreliert ist, wie dem Fachmann klar sein wird. In diesem Zusammenhang wird in einigen Ausführungsformen die Integrationszeit der Stromintegratorschaltung 940 angepasst, indem die Integrationszeit-Zählerschaltungsanordnung der Steuerschaltungsanordnung konfiguriert wird, um in Reaktion auf die Integrationszeit-Steuersignale T1MEAS_Mode und T2MEAS_Mode (i) einen ersten Zählprozess, der mit der ersten Integrationszeit T1MEAs korreliert und/oder (ii) einen zweiten Zählprozess, der mit der zweiten Integrationszeit T2MEAS korreliert, durchzuführen.
  • Zusätzlich zum Erhöhen der Integrationszeit (z.B. T2MEAS) der Stromintegratorschaltung 940 für die Rückwärtsrechenoperation werden in einigen Ausführungsformen die DAC-Schaltungsblöcke der Leitungstreiber-Schaltungsanordnung (z.B. die DAC-Schaltungsblöcke 342 der Spaltenleitungstreiber-Schaltungsanordnung 340, 3B) dynamisch konfiguriert, um die Impulsdauer der impulsmodulierten Spannungsimpulse zu erhöhen, die für die digitalen Fehlersignale δ1, δ2 ..., δn, proportional zu der Erhöhung der Integrationszeit von T2MEAS auf T2MEAS generiert werden. Zum Beispiel veranschaulicht 9B schematisch einen Prozess zum Erhöhen der Impulsdauern von analogen Spannungen V1, V2, ..., Vn, die von den DAC-Schaltungsblöcken generiert und an die jeweiligen Spalten C1, C2, ..., Cn während einer Rückwärtsrechenoperation angelegt werden.
  • In der beispielhaften Ausführungsform von 9B wird angenommen, dass die zweite Integrationszeit T2MEAS für die Rückwärtsrechenoperation das Doppelte der ersten Integrationszeit T1MEAS für die Vorwärtsrechenoperation ist. In diesem Zusammenhang haben die analogen Spannungen V1, V2, ..., Vn, die für die Rückwärtsrechenoperation generiert werden, (die den Werten der jeweiligen digitalen Fehlersignale δ1, δ2 ..., δn entsprechen), mit der erhöhten Integrationszeit T2MEAS jeweilige Impulsbreiten W1_2, W2_2, ..., Wn_2, die doppelt so groß sind wie die jeweiligen Impulsbreiten W1_1, W2_1, ..., Wn_1, die ansonsten (in herkömmlichen Schemas) für eine Rückwärtsrechenoperation generiert würden, wenn dieselbe Integrationszeit T1MEAS sowohl für die Vorwärts- als auch die Rückwärtsrechenoperationen verwendet wird. In diesem Zusammenhang führt die erhöhte Integrationszeit T2MEAS zusammen mit den erhöhten Impulsbreiten der analogen Spannungen V1, V2, ..., Vn für die jeweiligen digitalen Fehlersignale δ1, δ2 ..., δn, zu einer Erhöhung der Ausgangsspannungen VOUT, die auf den Ausgangsknoten N2 der Stromintegratorschaltungen der gemeinsam genutzten Auslese-Schaltungsanordnung für eine Rückwärtsrechenoperation generiert werden. Dieses Schema stellt erhöhte Ausgangsspannungen VOUT und ein verbessertes Auslesen der digitalen Fehlersignale mit niedrigem Pegel δ1, δ2 ..., δn, bereit, ungeachtet dessen, dass die Stromintegratorschaltungen der gemeinsam genutzten Auslese-Schaltungsanordnung Integrationskondensatoren mit fester Größe haben, die eine feste Verstärkung der Kondensatoren der Stromintegratorschaltungen bereitstellen, was für die Vorwärtsrechenoperation optimal ist.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung wurden zum Zweck der Veranschaulichung erstellt, sie sollen aber keineswegs erschöpfend oder auf die offenbarten Ausführungsformen eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzumfang und Erfindungsgedanken der beschriebenen Ausführungsformen abweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt gefundenen Technologien bestmöglich zu erklären oder es anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.

Claims (20)

  1. Einheit, die aufweist: ein Array von Zellen einer resistiven Verarbeitungseinheit (RPU); erste Steuerleitungen, die sich in einer ersten Richtung über das Array von RPU-Zellen erstrecken, und zweite Steuerleitungen, die sich in einer zweiten Richtung über das Array von RPU-Zellen erstrecken, wobei jede RPU-Zelle an einem Kreuzungspunkt mit einer der ersten Steuerleitungen und mit einer der zweiten Steuerleitungen verbunden ist; eine Peripherie-Schaltungsanordnung, die mit den ersten Steuerleitungen und mit den zweiten Steuerleitungen verbunden ist, wobei die Peripherie-Schaltungsanordnung eine Auslese-Schaltungsanordnung aufweist; und ein Steuersystem, das funktionsmäßig mit der Peripherie-Schaltungsanordnung verbunden ist, wobei das Steuersystem Steuersignale generiert, um die Peripherie-Schaltungsanordnung zu steuern, eine erste Operation an dem Array von RPU-Zellen durchzuführen und eine zweite Operation an dem Array von RPU-Zellen durchzuführen; wobei die Steuersignale aufweisen: ein erstes Konfigurationssteuersignal, um die Auslese-Schaltungsanordnung für eine erste Hardware-Konfiguration zu konfigurieren, wenn die erste Operation an dem Array von RPU-Zellen durchgeführt wird; und ein zweites Konfigurationssteuersignal, um die Auslese-Schaltungsanordnung für eine zweite Hardware-Konfiguration zu konfigurieren, die sich von der ersten Hardware-Konfiguration unterscheidet, wenn die zweite Operation an dem Array von RPU-Zellen durchgeführt wird.
  2. Einheit nach Anspruch 1, wobei: wobei die Peripherie-Schaltungsanordnung ferner eine Treiber-Schaltungsanordnung für eine Steuerleitungsspannung und eine Multiplexer-Schaltungsanordnung aufweist; und die Steuersignale ferner ein Multiplexer-Steuersignal aufweisen, um die Multiplexer-Schaltungsanordnung zu veranlassen, die Auslese-Schaltungsanordnung mit den ersten Steuerleitungen und die Treiber-Schaltungsanordnung für die Steuerleitungsspannung mit den zweiten Steuerleitungen selektiv zu verbinden, um die erste Operation durchzuführen, und die Multiplexer-Schaltungsanordnung zu veranlassen, die Auslese-Schaltungsanordnung mit den zweiten Steuerleitungen und die Treiber-Schaltungsanordnung für die Steuerleitungsspannung mit den ersten Steuerleitungen selektiv zu verbinden, um die zweite Operation durchzuführen.
  3. Einheit nach Anspruch 2, wobei: die erste Operation eine Vorwärtsrechenoperation eines Trainingsprozesses eines neuronalen Netzwerks aufweist, der an dem Array von RPU-Zellen durchgeführt wird, wobei das Array von RPU-Zellen ein Array von künstlichen synaptischen Elementen aufweist, die eine stromaufwärts befindliche Schicht von künstlichen Neuronen und eine stromabwärts befindliche Schicht von künstlichen Neuronen verbinden; die zweite Operation eine Rückwärtsrechenoperation des Trainingsprozesses des neuronalen Netzwerks aufweist, der auf dem Array von RPU-Zellen durchgeführt wird; die Treiber-Schaltungsanordnung der Steuerleitungsspannung für die erste Operation erste Spannungsimpulse an eine oder mehrere der zweiten Steuerleitungen anlegt, wobei die Spannungsimpulse ein digitales Eingangssignal darstellen, das von der stromaufwärts befindlichen Schicht des neuronalen Netzwerks empfangen wurde, und die Auslese-Schaltungsanordnung mit der ersten Hardware-Konfiguration erste Stromsignale empfängt, die von den RPU-Zellen generiert und auf den ersten Steuerleitungen in Reaktion auf die ersten Spannungsimpulse ausgegeben werden, und ein erstes digitales Ausgangssignal generiert, das die ersten Stromsignale darstellt, die von den ersten Steuerleitungen ausgegeben werden; die Treiber-Schaltungsanordnung der Steuerleitungsspannung für die zweite Operation zweite Spannungsimpulse an eine oder mehrere der ersten Steuerleitungen anlegt, wobei die zweiten Spannungsimpulse ein digitales Fehlersignal darstellen, das von der stromabwärts befindlichen Schicht des neuronalen Netzwerks empfangen wurde, und die Auslese-Schaltungsanordnung mit der zweiten Hardware-Konfiguration zweite Stromsignale empfängt, die von den RPU-Zellen generiert und auf den zweiten Steuerleitungen in Reaktion auf die zweiten Spannungsimpulse ausgegeben werden, und ein zweites digitales Ausgangssignal generiert, das die zweiten Stromsignale darstellt, die von den zweiten Steuerleitungen ausgegeben werden.
  4. Einheit nach Anspruch 1, wobei die Auslese-Schaltungsanordnung eine Mehrzahl von Auslese-Schaltungsblöcken aufweist, wobei jeder Auslese-Schaltungsblock aufweist: eine Stromintegratorschaltung, die einen Eingangsknoten und einen Ausgangsknoten aufweist; und eine Analog-Digital-Wandlerschaltung mit einem Eingang, der mit dem Ausgangsknoten der Stromintegratorschaltung verbunden ist; wobei die Stromintegratorschaltung aufweist: einen Operationsverstärker mit einem invertierenden Eingangsanschluss, der mit dem Eingangsknoten verbunden ist, und einem Ausgangsanschluss, der mit dem Ausgangsknoten verbunden ist; einen ersten integrierenden Kondensator und einen ersten Schalter, die in einem ersten Rückkopplungspfad zwischen dem Eingangsknoten und dem Ausgangsknoten der Stromintegratorschaltung in Reihe geschaltet sind, wobei der erste integrierende Kondensator eine erste Kapazität aufweist; einen zweiten integrierenden Kondensator und einen zweiten Schalter, die in einem zweiten Rückkopplungspfad zwischen dem Eingangsknoten und dem Ausgangsknoten der Stromintegratorschaltung in Reihe geschaltet sind, wobei der zweite integrierende Kondensator eine zweite Kapazität aufweist, die kleiner als die erste Kapazität ist; wobei das erste Konfigurationssteuersignal den ersten Schalter aktiviert und den zweiten Schalter deaktiviert, um die Stromintegratorschaltung für eine erste Verstärkung auf Grundlage der ersten Kapazität des ersten integrierenden Kondensators zu konfigurieren, der in dem ersten Rückkopplungspfad zwischen dem Ausgangsknoten und dem Eingangsknoten der Stromintegratorschaltung verbunden ist; und wobei das zweite Konfigurationssteuersignal den zweiten Schalter aktiviert und den ersten Schalter deaktiviert, um die Stromintegratorschaltung für eine zweite Verstärkung, die größer als die erste Verstärkung ist, auf Grundlage der zweiten Kapazität des zweiten integrierenden Kondensators zu konfigurieren, der in dem zweiten Rückkopplungspfad zwischen dem Ausgangsknoten und dem Eingangsknoten der Stromintegratorschaltung verbunden ist.
  5. Einheit nach Anspruch 1, wobei die Auslese-Schaltungsanordnung eine Mehrzahl von Auslese-Schaltungsblöcken aufweist, wobei jeder Auslese-Schaltungsblock aufweist: eine Stromintegratorschaltung, die einen Eingangsknoten und einen Ausgangsknoten aufweist; eine Auswahlschaltung, die mit dem Ausgangsknoten der Stromintegratorschaltung verbunden ist; eine erste Analog-Digital-Wandlerschaltung, die mit einem ersten Ausgang der Auswahlschaltung verbunden ist, wobei die erste Analog-Digital-Wandlerschaltung eine erste Spannungsauflösung mit niedrigstwertigem Bit (LSB) aufweist; und eine zweite Analog-Digital-Wandlerschaltung, die mit einem zweiten Ausgang der Auswahlschaltung verbunden ist, wobei die zweite Analog-Digital-Wandlerschaltung eine zweite LSB-Spannungsauflösung aufweist, die größer als die erste LSB-Auflösung ist; wobei das erste Konfigurationssteuersignal die Auswahlschaltung veranlasst, den Ausgangsknoten der Stromintegratorschaltung selektiv mit der ersten Analog-Digital-Wandlerschaltung zu verbinden; und wobei das zweite Konfigurationssteuersignal die Auswahlschaltung veranlasst, den Ausgangsknoten der Stromintegratorschaltung selektiv mit der zweiten Analog-Digital-Wandlerschaltung zu verbinden.
  6. Einheit nach Anspruch 1, wobei die Auslese-Schaltungsanordnung eine Mehrzahl von Auslese-Schaltungsblöcken aufweist, wobei jeder Auslese-Schaltungsblock aufweist: eine Stromintegratorschaltung, die einen Eingangsknoten und einen Ausgangsknoten aufweist; eine Auswahlschaltung, die mit dem Ausgangsknoten der Stromintegratorschaltung verbunden ist; eine erste Analog-Digital-Wandlerschaltung, die mit einem ersten Ausgang der Auswahlschaltung verbunden ist, wobei die erste Analog-Digital-Wandlerschaltung eine erste Verstärkung aufweist; eine zweite Analog-Digital-Wandlerschaltung, die mit einem zweiten Ausgang der Auswahlschaltung verbunden ist, wobei die zweite Analog-Digital-Wandlerschaltung eine zweite Verstärkung aufweist, die größer als die erste Verstärkung ist; wobei das erste Konfigurationssteuersignal die Auswahlschaltung veranlasst, den Ausgangsknoten der Stromintegratorschaltung selektiv mit der ersten Analog-Digital-Wandlerschaltung zu verbinden; und wobei das zweite Konfigurationssteuersignal die Auswahlschaltung veranlasst, den Ausgangsknoten der Stromintegratorschaltung selektiv mit der zweiten Analog-Digital-Wandlerschaltung zu verbinden.
  7. Einheit nach Anspruch 1, wobei die Auslese-Schaltungsanordnung eine Mehrzahl von Auslese-Schaltungsblöcken aufweist, wobei jeder Auslese-Schaltungsblock aufweist: eine Auswahlschaltung, die einen ersten Eingang, der mit einer ersten Steuerleitung der ersten Steuerleitungen verbunden ist, einen zweiten Eingang, der mit einer zweiten Steuerleitung der zweiten Steuerleitungen verbunden ist, aufweist; eine erste Stromintegratorschaltung, die einen Eingangsknoten und einen Ausgangsknoten aufweist; eine erste Analog-Digital-Wandlerschaltung, die mit dem Ausgangsknoten der ersten Stromintegratorschaltung verbunden ist, wobei die erste Analog-Digital-Wandlerschaltung eine erste Spannungsauflösung mit niedrigstwertigem Bit (LSB) aufweist; eine zweite Stromintegratorschaltung, die einen Eingangsknoten und einen Ausgangsknoten aufweist; und eine zweite Analog-Digital-Wandlerschaltung, die mit dem Ausgangsknoten der zweiten Stromintegratorschaltung verbunden ist, wobei die zweite Analog-Digital-Wandlerschaltung eine zweite LSB-Spannungsauflösung aufweist, die größer als die erste LSB-Auflösung ist; wobei das erste Konfigurationssteuersignal die Auswahlschaltung veranlasst, die erste Steuerleitung selektiv mit dem Eingangsknoten der ersten Stromintegratorschaltung zu verbinden; und wobei das zweite Konfigurationssteuersignal die Auswahlschaltung veranlasst, die zweite Steuerleitung selektiv mit dem Eingangsknoten der zweiten Stromintegratorschaltung zu verbinden.
  8. Einheit nach Anspruch 1, wobei: die erste Stromintegratorschaltung einen ersten Operationsverstärker mit einem invertierenden Eingangsanschluss, der mit dem Eingangsknoten verbunden ist, und mit einem Ausgangsanschluss, der mit dem Ausgangsknoten der ersten Stromintegratorschaltung verbunden ist, und einen ersten integrierenden Kondensator aufweist, der in einem Rückkopplungspfad zwischen dem Eingangsknoten und dem Ausgangsknoten der ersten Stromintegratorschaltung verbunden ist, wobei der erste integrierende Kondensator eine erste Kapazität hat; und die zweite Stromintegratorschaltung einen zweiten Operationsverstärker mit einem invertierenden Eingangsanschluss, der mit dem Eingangsknoten verbunden ist, und mit einem Ausgangsanschluss, der mit dem Ausgangsknoten der zweiten Stromintegratorschaltung verbunden ist, und einen zweiten integrierenden Kondensator aufweist, der in einem Rückkopplungspfad zwischen dem Eingangsknoten und dem Ausgangsknoten der zweiten Stromintegratorschaltung verbunden ist, wobei der zweite integrierende Kondensator eine zweite Kapazität aufweist, die im Wesentlichen gleich der ersten Kapazität ist.
  9. Einheit nach Anspruch 1, wobei die Auslese-Schaltungsanordnung eine Mehrzahl von Auslese-Schaltungsblöcken aufweist, wobei jeder Auslese-Schaltungsblock aufweist: eine Auswahlschaltung, die einen ersten Eingang, der mit einer ersten Steuerleitung der ersten Steuerleitungen verbunden ist, einen zweiten Eingang, der mit einer zweiten Steuerleitung der zweiten Steuerleitungen verbunden ist, aufweist; eine erste Stromintegratorschaltung, die einen Eingangsknoten und einen Ausgangsknoten aufweist; eine erste Analog-Digital-Wandlerschaltung, die mit dem Ausgangsknoten der ersten Stromintegratorschaltung verbunden ist, wobei die erste Analog-Digital-Wandlerschaltung eine erste Verstärkung aufweist; eine zweite Stromintegratorschaltung, die einen Eingangsknoten und einen Ausgangsknoten aufweist; und eine zweite Analog-Digital-Wandlerschaltung, die mit dem Ausgangsknoten der zweiten Stromintegratorschaltung verbunden ist, wobei die zweite Analog-Digital-Wandlerschaltung eine zweite Verstärkung aufweist, die größer als die erste Verstärkung ist; wobei das erste Konfigurationssteuersignal die Auswahlschaltung veranlasst, die erste Steuerleitung selektiv mit dem Eingangsknoten der ersten Stromintegratorschaltung zu verbinden; und wobei das zweite Konfigurationssteuersignal die Auswahlschaltung veranlasst, die zweite Steuerleitung selektiv mit dem Eingangsknoten der zweiten Stromintegratorschaltung zu verbinden.
  10. Einheit nach Anspruch 1, wobei die Auslese-Schaltungsanordnung eine Mehrzahl von Auslese-Schaltungsblöcken aufweist, wobei jeder Auslese-Schaltungsblock aufweist: eine Stromintegratorschaltung, die einen Eingangsknoten und einen Ausgangsknoten aufweist; und eine Analog-Digital-Wandlerschaltung, die mit einem ersten Ausgang der Auswahlschaltung verbunden ist, wobei die Analog-Digital-Wandlerschaltung eine konfigurierbare Spannungsauflösung mit niedrigstwertigem Bit (LSB) aufweist, die eine erste LSB-Spannungsauflösung und eine zweite LSB-Spannungsauflösung aufweist, die größer als die erste LSB-Auflösung ist; wobei das erste Konfigurationssteuersignal die Analog-Digital-Wandlerschaltung so konfiguriert, dass sie die erste LSB-Spannungsauflösung aufweist; und wobei das zweite Konfigurationssteuersignal die Analog-Digital-Wandlerschaltung so konfiguriert, dass sie die zweite LSB-Spannungsauflösung aufweist.
  11. Einheit nach Anspruch 1, wobei die Auslese-Schaltungsanordnung eine Mehrzahl von Auslese-Schaltungsblöcken aufweist, wobei jeder Auslese-Schaltungsblock aufweist: eine Stromintegratorschaltung, die einen Eingangsknoten und einen Ausgangsknoten aufweist; und eine Analog-Digital-Wandlerschaltung, die mit einem ersten Ausgang der Auswahlschaltung verbunden ist, wobei die Analog-Digital-Wandlerschaltung eine konfigurierbare Verstärkung aufweist, die eine erste Verstärkung und eine zweite Verstärkung aufweist, die größer als die erste Verstärkung ist; wobei das erste Konfigurationssteuersignal die Analog-Digital-Wandlerschaltung so konfiguriert, dass sie die erste Verstärkung aufweist; und wobei das zweite Konfigurationssteuersignal die Analog-Digital-Wandlerschaltung so konfiguriert, dass sie die zweite Verstärkung aufweist.
  12. Einheit nach Anspruch 11, wobei die Auslese-Schaltungsanordnung eine Mehrzahl von Auslese-Schaltungsblöcken aufweist, wobei jeder Auslese-Schaltungsblock aufweist: eine Stromintegratorschaltung, die einen Eingangsknoten und einen Ausgangsknoten aufweist; und eine Analog-Digital-Wandlerschaltung, die mit einem ersten Ausgang der Auswahlschaltung verbunden ist; wobei die Stromintegratorschaltung einen konfigurierbaren Integrationszeitraum aufweist, der einen ersten Integrationszeitraum und einen zweiten Integrationszeitraum aufweist, der größer als der erste Integrationszeitraum ist; wobei das erste Konfigurationssteuersignal die Stromintegratorschaltung konfiguriert, um einen Stromintegrationsprozess mit dem ersten Integrationszeitraum durchzuführen; und wobei das zweite Konfigurationssteuersignal die Stromintegratorschaltung konfiguriert, um einen Stromintegrationsprozess mit dem zweiten Integrationszeitraum durchzuführen.
  13. Einheit nach Anspruch 1, wobei die Peripherie-Schaltungsanordnung ferner eine Treiber-Schaltungsanordnung für die Steuerleitungsspannung aufweist, wobei die Treiber-Schaltungsanordnung für die Steuerleitungsspannung eine konfigurierbare Impulsbreiten-Modulationsschaltungsanordnung aufweist, die auf das erste Konfigurationssteuersignal anspricht, um Spannungsimpulse mit ersten Impulsdauern zu generieren, die proportional zu dem ersten Integrationszeitraum sind, und die auf das zweite Konfigurationssteuersignal anspricht, um Spannungsimpulse mit zweiten Impulsdauern zu generieren, die proportional zu dem zweiten Integrationszeitraum sind.
  14. Verfahren, das aufweist: Durchführen einer ersten Operation an einem Array von Zellen einer resistiven Verarbeitungseinheit (RPU); Konfigurieren einer Auslese-Schaltungsanordnung für eine erste Hardware-Konfiguration, um die erste Operation an dem Array von RPU-Zellen durchzuführen; Durchführen einer zweiten Operation an dem Array von RPU-Zellen; und Konfigurieren der Auslese-Schaltungsanordnung für eine zweite Hardware-Konfiguration, um die zweite Operation an dem Array von RPU-Zellen durchzuführen, wobei die zweite Hardware-Konfiguration der Auslese-Schaltungsanordnung sich von der ersten Hardware-Konfiguration der Auslese-Schaltungsanordnung unterscheidet.
  15. Verfahren nach Anspruch 14, wobei: die erste Operation eine Vorwärtsrechenoperation eines Trainingsprozesses eines neuronalen Netzwerks aufweist, der an dem Array von RPU-Zellen durchgeführt wird, wobei das Array von RPU-Zellen ein Array von künstlichen synaptischen Elementen aufweist, die eine stromaufwärts befindliche Schicht von künstlichen Neuronen und eine stromabwärts befindliche Schicht von künstlichen Neuronen verbinden; die zweite Operation eine Rückwärtsrechenoperation des Trainingsprozesses des neuronalen Netzwerks aufweist, der auf dem Array von RPU-Zellen durchgeführt wird.
  16. Verfahren nach Anspruch 14, wobei: Konfigurieren der Auslese-Schaltungsanordnung für eine erste Hardware-Konfiguration ein Konfigurieren einer Stromintegratorschaltung der Auslese-Schaltungsanordnung für eine erste Integrationskapazität aufweist; und Konfigurieren der Auslese-Schaltungsanordnung für eine zweite Hardware-Konfiguration ein Konfigurieren der Stromintegratorschaltung der Auslese-Schaltungsanordnung für eine zweite Integrationskapazität aufweist, die kleiner als die erste Integrationskapazität ist.
  17. Verfahren nach Anspruch 14, wobei: Konfigurieren der Auslese-Schaltungsanordnung für eine erste Hardware-Konfiguration ein Konfigurieren einer Analog-Digital-Wandlerschaltung der Auslese-Schaltungsanordnung für eine erste Spannungsauflösung mit niedrigstwertigem Bit (LSB) aufweist; und Konfigurieren der Auslese-Schaltungsanordnung für eine zweite Hardware-Konfiguration ein Konfigurieren der Analog-Digital-Wandlerschaltung der Auslese-Schaltungsanordnung für eine zweite LSB-Spannungsauflösung aufweist, die größer als die erste LSB-Spannungsauflösung ist.
  18. Verfahren nach Anspruch 14, wobei: Konfigurieren der Auslese-Schaltungsanordnung für eine erste Hardware-Konfiguration ein Konfigurieren einer Analog-Digital-Wandlerschaltung der Auslese-Schaltungsanordnung für eine erste Verstärkung aufweist; und Konfigurieren der Auslese-Schaltungsanordnung für eine zweite Hardware-Konfiguration ein Konfigurieren der Analog-Digital-Wandlerschaltung der Auslese-Schaltungsanordnung für eine zweite Verstärkung aufweist, die größer als die erste Verstärkung ist.
  19. System, das aufweist: ein neuromorphes Datenverarbeitungssystem, das aufweist: ein Array von Zellen einer resistiven Verarbeitungseinheit (RPU), erste Steuerleitungen, die sich in einer ersten Richtung über das Array von RPU-Zellen erstrecken, und zweite Steuerleitungen, die sich in einer zweiten Richtung über das Array von RPU-Zellen erstrecken, wobei jede RPU-Zelle an einem Kreuzungspunkt mit einer der ersten Steuerleitungen und mit einer der zweiten Steuerleitungen verbunden ist, wobei das Array von RPU-Zellen ein Array von künstlichen synaptischen Elementen aufweist, die synaptische Gewichtungen speichern, die Verbindungsstärken zwischen künstlichen Neuronen einer stromaufwärts befindlichen Schicht des neuromorphen Datenverarbeitungssystems und künstlichen Neuronen einer stromabwärts befindlichen Schicht des neuromorphen Datenverarbeitungssystems darstellen, wobei die synaptischen Gewichtungen durch Leitfähigkeitswerte von resistiven Einheiten von RPU-Zellen encodiert sind; eine Peripherie-Schaltungsanordnung, die mit den ersten Steuerleitungen und mit den zweiten Steuerleitungen verbunden ist, wobei die Peripherie-Schaltungsanordnung eine Auslese-Schaltungsanordnung aufweist; und ein Steuersystem, das funktionsmäßig mit der Peripherie-Schaltungsanordnung verbunden ist, wobei das Steuersystem Steuersignale generiert, um die Peripherie-Schaltungsanordnung zu steuern, eine erste Operation an dem Array von RPU-Zellen durchzuführen und eine zweite Operation an dem Array von RPU-Zellen durchzuführen; wobei die Steuersignale aufweisen: ein erstes Konfigurationssteuersignal, um die Auslese-Schaltungsanordnung für eine erste Hardware-Konfiguration zu konfigurieren, wenn die erste Operation an dem Array von RPU-Zellen durchgeführt wird, wobei die erste Operation eine Vorwärtsrechenoperation eines Trainingsprozesses eines neuronalen Netzwerks aufweist; und ein zweites Konfigurationssteuersignal, um die Auslese-Schaltungsanordnung für eine zweite Hardware-Konfiguration zu konfigurieren, die sich von der ersten Hardware-Konfiguration unterscheidet, wenn die zweite Operation an dem Array von RPU-Zellen durchgeführt wird, wobei die zweite Operation eine Rückwärtsrechenoperation des Trainingsprozesses des neuronalen Netzwerks aufweist.
  20. System nach Anspruch 19, wobei: die Peripherie-Schaltungsanordnung ferner eine Treiber-Schaltungsanordnung für ein Steuerleitungsspannung und eine Multiplexer-Schaltungsanordnung aufweist; wobei die Steuersignale ferner ein Multiplexer-Steuersignal aufweisen, um die Multiplexer-Schaltungsanordnung zu veranlassen, die Auslese-Schaltungsanordnung mit den ersten Steuerleitungen und die Treiber-Schaltungsanordnung für die Steuerleitungsspannung mit den zweiten Steuerleitungen selektiv zu verbinden, um die erste Operation durchzuführen, und um die Multiplexer-Schaltungsanordnung zu veranlassen, die Auslese-Schaltungsanordnung mit den zweiten Steuerleitungen und die Treiber-Schaltungsanordnung für die Steuerleitungsspannung mit den ersten Steuerleitungen selektiv zu verbinden, um die zweite Operation durchzuführen; die Treiber-Schaltungsanordnung der Steuerleitungsspannung für die erste Operation erste Spannungsimpulse an eine oder mehrere der zweiten Steuerleitungen anlegt, wobei die Spannungsimpulse ein digitales Eingangssignal darstellen, das von der stromaufwärts befindlichen Schicht empfangen wurde, und die Auslese-Schaltungsanordnung mit der ersten Hardware-Konfiguration erste Stromsignale empfängt, die von den RPU-Zellen generiert und auf den ersten Steuerleitungen in Reaktion auf die ersten Spannungsimpulse ausgegeben werden, und ein erstes digitales Ausgangssignal generiert, das die ersten Stromsignale darstellt, die von den ersten Steuerleitungen ausgegeben werden; die Treiber-Schaltungsanordnung der Steuerleitungsspannung für die zweite Operation zweite Spannungsimpulse an eine oder mehrere der ersten Steuerleitungen anlegt, wobei die zweiten Spannungsimpulse ein digitales Fehlersignal darstellen, das von der stromabwärts befindlichen Schicht empfangen wurde, und die Auslese-Schaltungsanordnung mit der zweiten Hardware-Konfiguration zweite Stromsignale empfängt, die von den RPU-Zellen generiert und auf den zweiten Steuerleitungen in Reaktion auf die zweiten Spannungsimpulse ausgegeben werden, und ein zweites digitales Ausgabesignal generiert, das die zweiten Stromsignale darstellt, die von den zweiten Steuerleitungen ausgegeben werden.
DE112021006459.2T 2020-12-15 2021-10-25 Dynamische konfiguration einer auslese-schaltungsanordnung für verschiedene operationen in einem analogen resistiven kreuzschienen-array Pending DE112021006459T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/121,930 US20220188628A1 (en) 2020-12-15 2020-12-15 Dynamic configuration of readout circuitry for different operations in analog resistive crossbar array
US17/121,930 2020-12-15
PCT/CN2021/125968 WO2022127381A1 (en) 2020-12-15 2021-10-25 Dynamic configuration of readout circuitry for different operations in analog resistive crossbar array

Publications (1)

Publication Number Publication Date
DE112021006459T5 true DE112021006459T5 (de) 2023-09-28

Family

ID=81942595

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021006459.2T Pending DE112021006459T5 (de) 2020-12-15 2021-10-25 Dynamische konfiguration einer auslese-schaltungsanordnung für verschiedene operationen in einem analogen resistiven kreuzschienen-array

Country Status (6)

Country Link
US (1) US20220188628A1 (de)
JP (1) JP2024500737A (de)
CN (1) CN116601710A (de)
DE (1) DE112021006459T5 (de)
GB (1) GB2618232A (de)
WO (1) WO2022127381A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11823037B1 (en) * 2023-02-28 2023-11-21 PolyN Technology Limited Optocoupler-based flexible weights in neuromorphic analog signal processors
CN116189732B (zh) * 2023-04-21 2023-07-21 南京大学 读出电路优化的存算一体芯片及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10134472B1 (en) * 2017-06-30 2018-11-20 International Business Machines Corporation Floating gate architecture for deep neural network application
US10340002B1 (en) * 2018-03-30 2019-07-02 International Business Machines Corporation In-cell differential read-out circuitry for reading signed weight values in resistive processing unit architecture
US11157810B2 (en) * 2018-04-16 2021-10-26 International Business Machines Corporation Resistive processing unit architecture with separate weight update and inference circuitry
US10896242B2 (en) * 2019-03-01 2021-01-19 International Business Machines Corporation Resistive memory device for matrix-vector multiplications
CN110648706B (zh) * 2019-09-02 2021-03-23 中国科学院微电子研究所 三维阻变存储器及其读出电路

Also Published As

Publication number Publication date
WO2022127381A1 (en) 2022-06-23
US20220188628A1 (en) 2022-06-16
CN116601710A (zh) 2023-08-15
GB202310291D0 (en) 2023-08-16
GB2618232A (en) 2023-11-01
JP2024500737A (ja) 2024-01-10

Similar Documents

Publication Publication Date Title
DE112019000437B4 (de) Architektur einer resistiven verarbeitungseinheit mit voneinander getrennter gewichtungsaktualisierungs- und inferenzschaltung
DE112018000272T5 (de) Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze
DE112018004992B4 (de) Übertragung synaptischer gewichte zwischen leitfähigkeitspaaren mitpolaritätsumkehr zum verringern fester einheitenasymmetrien
DE112021006459T5 (de) Dynamische konfiguration einer auslese-schaltungsanordnung für verschiedene operationen in einem analogen resistiven kreuzschienen-array
DE102019116305A1 (de) Pipelining zur verbesserung der inferenzgenauigkeit neuronaler netze
DE68925156T2 (de) Integrierte Halbleiterschaltung für neurales Netzwerk
DE112018002950B4 (de) System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit
DE4042139C2 (de) Neuron-Einheit
DE3689030T2 (de) Schaltung zur Bestimmung der besten Anpassung an Eingangssignale.
DE69030778T2 (de) Ein Lernsystem in einem neuronalen Rechner
DE112016003245T5 (de) Resistive Verarbeitungseinheit
DE102021207661A1 (de) Ratiometrische zeitdomänen-auslesungschnittstellen für speicherinterne, analoge mischsignal-rechen-crossbar-netzwerke
US20210049448A1 (en) Neural network and its information processing method, information processing system
DE112019005119T5 (de) Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen
CN109448068B (zh) 一种基于忆阻器交叉阵列的图像重构系统
DE69119172T2 (de) Neuronalnetzwerkschaltung
DE102021208010A1 (de) Hardware-rechenstruktur für tiefe gleichgewichtsmodelle
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
DE102021101727A1 (de) Sram-basierte zelle für in-memory-computing und hybride rechen-/speicherarchitektur
CN114742218A (zh) 基于忆阻器阵列的数据处理方法和数据处理装置
DE112021001968T5 (de) Driftregularisierung zum entgegenwirken einer variation in driftkoeffizienten für analoge beschleuniger
DE102021108823A1 (de) System für eine flexible leitwerttraverse
DE112020005613T5 (de) Neuromorphe Einheit mit Kreuzschienen-Array-Struktur
DE112020002547T5 (de) Rausch- und signalverwaltung für rpu-array
DE102020113902A1 (de) Dac/adc-architektur für ai in speicher

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence