DE112019000437B4 - Architektur einer resistiven verarbeitungseinheit mit voneinander getrennter gewichtungsaktualisierungs- und inferenzschaltung - Google Patents

Architektur einer resistiven verarbeitungseinheit mit voneinander getrennter gewichtungsaktualisierungs- und inferenzschaltung Download PDF

Info

Publication number
DE112019000437B4
DE112019000437B4 DE112019000437.9T DE112019000437T DE112019000437B4 DE 112019000437 B4 DE112019000437 B4 DE 112019000437B4 DE 112019000437 T DE112019000437 T DE 112019000437T DE 112019000437 B4 DE112019000437 B4 DE 112019000437B4
Authority
DE
Germany
Prior art keywords
unit
weight
rpu
update
weight update
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.)
Active
Application number
DE112019000437.9T
Other languages
English (en)
Other versions
DE112019000437T5 (de
Inventor
Seyoung Kim
Tayfun Gokmen
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 DE112019000437T5 publication Critical patent/DE112019000437T5/de
Application granted granted Critical
Publication of DE112019000437B4 publication Critical patent/DE112019000437B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/04Architecture, e.g. interconnection topology
    • 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
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

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)
  • Semiconductor Memories (AREA)
  • Electronic Switches (AREA)
  • Logic Circuits (AREA)

Abstract

Einheit einer resistiven Verarbeitungseinheit (RPU), aufweisend:eine Gewichtungsaktualisierungs-Akkumulationsschaltung mit einem ersten Eingang, der mit einer Aktualisierungszeilen-Steuerleitung verbunden ist, und mit einem zweiten Eingang, der mit einer Aktualisierungsspalten-Steuerleitung verbunden ist;eine Gewichtungsaktualisierungs-Steuerschaltung, die mit einem Ausgang der Gewichtungsaktualisierungs-Akkumulationsschaltung verbunden ist; undeine einstellbare resistive Einheit, die an die Gewichtungsaktualisierungs-Steuerschaltung gekoppelt ist und mit einer Lesezeilen-Steuerleitung und einer Lesespalten- Steuerleitung verbunden ist;wobei die Gewichtungsaktualisierungs-Akkumulationsschaltung konfiguriert ist, um (i) einen Gewichtungsaktualisierungs-Akkumulationswert hijzu verwalten und den Gewichtungsaktualisierungs-Akkumulationswert hijdurch eine Einheit eines Aktualisierungswerts Δh in Reaktion auf jede erkannte Übereinstimmung von stochastischen Bitströmen von Eingangsvektoren anzupassen, die an die Aktualisierungszeilen- und Aktualisierungsspalten-Steuerleitungen angelegt werden, und (ii) ein Gewichtungsaktualisierungs-Steuersignal an die Gewichtungsaktualisierungs-Steuerschaltung in Reaktion auf den akkumulierten Gewichtungswert hijauszugeben, der einen vordefinierten Schwellenwert erreicht; undwobei die Gewichtungsaktualisierungs-Steuerschaltung konfiguriert ist, um einen Leitfähigkeitspegel der einstellbaren resistiven Einheit durch eine Einheit eines Leitfähigkeitswerts Δg in Reaktion auf das Gewichtungsaktualisierungs-Steuersignal anzupassen, das von der Gewichtungsaktualisierungs-Akkumulationsschaltung ausgegeben wird, wobei die eine Einheit des Leitfähigkeitswerts Δg einer Einheit eines Gewichtungswerts Δw der RPU-Einheit entspricht.

Description

  • Technisches Gebiet
  • Diese Offenbarung betrifft allgemein Frameworks von resistiven Verarbeitungseinheiten (RPU) und insbesondere Techniken zum Aktualisieren und Lesen von Gewichtungswerten, die in RPU-Speicherzellen gespeichert sind.
  • Hintergrund
  • In den letzten Jahren haben Modelle auf Grundlage eines Deep Neural Network (DNN) (tiefes neuronales Netzwerk) erhebliche Fortschritte aufgrund der Verfügbarkeit von großen gekennzeichneten Datensets und ständigen Verbesserungen von Berechnungsressourcen erzielt. DNNs werden in verschiedenen Anwendungen verwendet, darunter zum Beispiel Objekt-/Spracherkennung, Sprachübersetzung, Extrahieren von Mustern und Bildverarbeitung. Die Qualität der DNN-Modelle hängt von der Verarbeitung einer großen Menge von Schulungsdaten und einer höheren Komplexität des neuronalen Netzwerks ab. In diesem Zusammenhang ist ein Schulen eines komplexen DNN-Modells eine zeitaufwendige und rechenintensive Aufgabe, deren Ausführung unter Verwendung von parallelen und verteilten Datenverarbeitungs-Frameworks mit vielen Datenverarbeitungsknoten (z.B. über Rechenzentren skalierte rechnerische Ressourcen) viele Tage oder Wochen in Anspruch nehmen kann, um das Schulen des DNN-Modells zu beenden.
  • Zum Verkürzen der Schulungszeit wurden Techniken zur Hardware-Beschleunigung bei der Verarbeitung von DNN-Arbeitslasten entweder mit herkömmlichen CMOS-Technologien oder unter Verwendung von aufkommenden Technologien für nicht flüchtigen Arbeitsspeicher (NVM) verfolgt. Es hat sich jedoch herausgestellt, dass RPU-Beschleunigereinheiten das Potenzial haben, die DNN-Schulung um mehrere Größenordnungen zu beschleunigen, dabei aber im Vergleich zu konventionellen Techniken zur Hardware-Beschleunigen weniger Energie in Anspruch zu nehmen. Die DNN-Schulung beruht im Allgemeinen auf einem Rückpropagierungs-Algorithmus, der drei sich wiederholende Zyklen umfasst: Vorwärts, Rückwärts und Gewichtungsaktualisierung. Es wurde festgestellt, dass RPU-Beschleunigereinheiten, die auf einer zweidimensionalen (2D) Kreuzschaltanordnung von RPU-Speicherzellen beruhen, konfiguriert werden können, um alle drei Zyklen des Rückpropagierungs-Algorithmus parallel auszuführen, wodurch unter Verwendung von Zentraleinheiten (CPUs) und Grafikverarbeitungseinheiten (GPUs) potenziell eine erhebliche Beschleunigung der DNN-Schulung mit weniger Energie und verringerten Berechnungsressourcen im Vergleich zu Umsetzungen des Stands der Technik bereitgestellt wird. Ein RPU-Beschleuniger kann Gewichtungswerte lokal speichern und aktualisieren, wodurch eine Datenverschiebung während des Schulungsprozesses minimiert und die Lokalität und die Parallelität des DNN-Schulungsprozesses vollständig ausgeschöpft werden.
  • Ein stochastisch geschultes DNN, das Anordnungen von RPU-Zellen aufweist, kann synaptische Gewichtungen haben, die unter Verwendung verschiedener Typen von einstellbaren resistiven Einheiten umgesetzt werden, darunter zum Beispiel memristive Einheiten, Kondensatoren/Lesetransistoren usw. Zum sachgemäßen Schulen eines DNN und Erzielen von hoher Präzision sollten die Betriebseigenschaften der einstellbaren resistiven Einheiten einem strikten Satz von Spezifikationen von akzeptablen Parametern der RPU-Einheit entsprechen, die ein bestimmter DNN-Algorithmus ohne signifikanten Fehlerabzug tolerieren kann. Diese Spezifikationen umfassen zum Beispiel Abweichungen in Schalteigenschaften der RPU-Einheit, wie zum Beispiel minimale inkrementelle Leitfähigkeitsänderung (±Δgmin) aufgrund eines einzelnen Übereinstimmungsereignisses, Asymmetrie in Leitfähigkeitsänderungen nach oben und nach unten, einstellbarer Bereich der Leitfähigkeitswerte usw.
  • Insbesondere ist eine wichtige Spezifikation für die DNN-Schulung, dass die RPU-Zellen eine einstellbare Leitfähigkeit mit einer Auflösung (oder einem dynamischen Bereich) von mindestens 1000 Leitfähigkeitspegeln (oder -stufen) haben, wobei die Leitfähigkeitspegel (mittels 1-ns-Impulse) auf analoge und symmetrisch inkrementelle Weise von einem niedrigsten Leitfähigkeitszustand auf einen höchsten Leitfähigkeitszustand umgeschaltet werden können (mit einer Leitfähigkeitsdifferenz von mindestens einer Größenordnung zwischen dem Höchstwert und dem Mindestwert des Leitfähigkeitszustands (Ein/Aus-Verhältnis). Um eine Symmetrie von Änderungen eines Mindesteinheit-Gewichtungswerts (±Δwmin) nach oben/nach unten in einer RPU-Zelle zu erreichen, sollte jede inkrementelle Erhöhung (Stufe nach oben, Δ g m i n +
    Figure DE112019000437B4_0001
    ) und inkrementelle Verringerung (Stufe nach unten, Δ g m i n
    Figure DE112019000437B4_0002
    ) in dem zugehörigen Leitfähigkeitspegel der RPU-Zelle denselben Betrag oder einen ähnlichen Betrag mit einem Nichtübereinstimmungsfehler von maximal 5 % aufweisen. Mit anderen Worten, einstellbare resistive RPU-Einheiten, die naturgemäß analog sind, sollten symmetrisch auf Leitfähigkeitsänderungen nach oben und nach unten reagieren, wenn derselbe Reizimpuls, nur in entgegengesetzter Richtung, bereitgestellt wird. Trotz dieser Anforderungen kann die einstellbare resistive Einheit jedoch einen begrenzten dynamischen Bereich, Auflösung und Variabilität in Einstellungs-/Programmiereigenschaften aufweisen, wodurch eine Umsetzung der Hardware der RPU-Architektur sich nicht trivial gestaltet.
  • Die US 2017 / 0 011 290 A1 offenbart eine analoge neuromorphe Schaltung mit Widerstandsspeichern, die einem Eingangsspannungssignal einen Widerstand entgegensetzen, wenn sich das Eingangsspannungssignal durch die Widerstandsspeicher ausbreitet und ein erstes Ausgangsspannungssignal erzeugt, und einem ersten Fehlersignal einen Widerstand entgegensetzen, das sich durch die Widerstandsspeicher ausbreitet und ein zweites Ausgangsspannungssignal erzeugt. Ein Komparator erzeugt das erste Fehlersignal, das für eine Differenz zwischen dem ersten Ausgangsspannungssignal und dem gewünschten Ausgangssignal repräsentativ ist, und erzeugt das erste Fehlersignal so, dass sich das erste Fehlersignal durch die Vielzahl der Widerstandsspeicher zurück ausbreitet. Ein Widerstandseinsteller stellt auf der Grundlage des ersten Fehlersignals und des zweiten Ausgangsspannungssignals einen mit jedem Widerstandsspeicher verbundenen Widerstandswert ein, um die Differenz zwischen dem ersten Ausgangsspannungssignal und dem gewünschten Ausgangssignal zu verringern.
  • Die US 2017 / 0 109 628 A1 offenbart eine resistive Verarbeitungseinheit (RPU) mit zwei Anschlüssen, die einen ersten Anschluss, einen zweiten Anschluss und einen aktiven Bereich hat. Der aktive Bereich bewirkt eine nichtlineare Änderung an einem Leitungszustand des aktiven Bereichs aufgrund von mindestens einem an den ersten Anschluss angelegten ersten codierten Signal und mindestens einem an den zweiten Anschluss angelegten zweiten codierten Signal. Der aktive Bereich ist so konfiguriert, dass er einen Datenspeichervorgang einer Trainingsmethodik, der zumindest teilweise auf der nichtlinearen Änderung am Leitungszustand beruht, lokal ausführt. Der aktive Bereich ist außerdem so konfiguriert, dass er einen Datenverarbeitungsvorgang der Trainingsmethodik, der zumindest teilweise auf der nichtlinearen Änderung am Leitungszustand beruht, lokal ausführt.
  • Kurzdarstellung der Erfindung
  • Ausführungsformen der Erfindung umfassen RPU-Zellenarchitekturen und Verfahren zum Ausführen von Gewichtungsaktualisierungs- und Leseoperationen in RPU-Zellen, in denen getrennte Matrizen verwendet werden, um unabhängig voneinander getrennte Gewichtungsaktualisierungs-Akkumulations- und Inferenz- (Gewichtungslese-) Operationen mit einer Kreuzschaltanordnung von RPU-Zellen auszuführen, die einstellbare resistive Einheiten aufweist.
  • Eine Ausführungsform enthält eine RPU-Einheit, die aufweist: eine Gewichtungsaktualisierungs-Akkumulationsschaltung mit einem ersten Eingang, der mit einer Aktualisierungszeilen-Steuerleitung verbunden ist, und mit einem zweiten Eingang, der mit einer Aktualisierungsspalten-Steuerleitung verbunden ist; eine Gewichtungsaktualisierungs-Steuerschaltung, die mit einem Ausgang der Gewichtungsaktualisierungs-Akkumulationsschaltung verbunden ist; und eine einstellbare resistive Einheit, die an die Gewichtungsaktualisierungs-Steuerschaltung gekoppelt ist und mit einer Lesezeilen-Steuerleitung und einer Lesespalten- Steuerleitung verbunden ist. Die Gewichtungsaktualisierungs-Akkumulationsschaltung ist konfiguriert, um (i) einen Gewichtungsaktualisierungs-Akkumulationswert hij zu verwalten und den Gewichtungsaktualisierungs-Akkumulationswert hij um eine Einheit eines Aktualisierungswerts Δh in Reaktion auf jede erkannte Übereinstimmung von stochastischen Bitströmen von Eingangsvektoren anzupassen, die an die Aktualisierungszeilen- und Aktualisierungsspalten-Steuerleitungen angelegt werden, und (ii) ein Gewichtungsaktualisierungs-Steuersignal an die Gewichtungsaktualisierungs-Steuerschaltung in Reaktion auf den akkumulierten Gewichtungswert hij auszugeben, der einen vordefinierten Schwellenwert erreicht. Die Gewichtungsaktualisierungs-Steuerschaltung ist konfiguriert, um einen Leitfähigkeitspegel der einstellbaren resistiven Einheit um eine Einheit eines Leitfähigkeitswerts Δg in Reaktion auf das Gewichtungsaktualisierungs-Steuersignal anzupassen, das von der Gewichtungsaktualisierungs-Akkumulationsschaltung ausgegeben wird, wobei die eine Einheit des Leitfähigkeitswerts Δg einer Einheit eines Gewichtungswerts Δw der RPU-Einheit entspricht.
  • Eine weitere Ausführungsform weist ein Verfahren zum Ausführen einer Gewichtungsaktualisierungsoperation auf, um einen Gewichtungswert einer RPU-Einheit zu aktualisieren, die eine einstellbare resistive Einheit aufweist. Die Gewichtungsaktualisierungsoperation weist auf: ein Verwalten eines Gewichtungsaktualisierungs-Akkumulationswerts hij für die RPU-Einheit; ein Anpassen des Gewichtungsaktualisierungs-Akkumulationswerts hij um eine Einheit eines Aktualisierungswerts Δh in Reaktion auf eine erkannte Übereinstimmung von stochastischen Bitströmen von Eingangsvektoren, die an eine Aktualisierungszeilen- und eine Aktualisierungsspalten-Steuerleitung angelegt wurden, die mit der RPU-Einheit verbunden sind; ein Generieren eines Gewichtungsaktualisierungs-Steuersignals in Reaktion auf den akkumulierten Gewichtungswert hij, der einen vordefinierten Schwellenwert erreicht; und ein Anpassen eines Leitfähigkeitspegels der einstellbaren resistiven Einheit um eine Einheit eines Leitfähigkeitswerts Δg in Reaktion auf das Gewichtungsaktualisierungs-Steuersignal, wobei die eine Einheit des Leitfähigkeitswerts Δg einer Einheit eines Gewichtungswerts Δw der RPU-Einheit entspricht.
  • Andere Ausführungsformen werden in der folgenden ausführlichen Beschreibung von Ausführungsformen beschrieben, die in Verbindung mit den begleitenden Figuren zu lesen ist.
  • Figurenliste
    • 1 veranschaulicht schematisch ein RPU-System, das unter Verwendung von RPU-Zellenarchitekturen gemäß Ausführungsformen der Erfindung umgesetzt werden kann.
    • 2A veranschaulicht schematisch eine Vorwärtsübergabeoperation eines Rückpropagierungsprozesses, die unter Verwendung des RPU-Systems von 1 ausgeführt werden kann.
    • 2B veranschaulicht schematisch eine Rückwärtsübergabeoperation eines Rückpropagierungsprozesses, die unter Verwendung des RPU-Systems von 1 ausgeführt werden kann.
    • 2C veranschaulicht schematisch eine Gewichtungsaktualisierungsoperation eines Rückpropagierungsprozesses, die unter Verwendung des RPU-Systems von 1 ausgeführt werden kann.
    • 3 ist eine schematische Veranschaulichung der höchsten Ebene einer RPU-Zellenarchitektur, in der getrennte Gewichtungsmatrizen umgesetzt sind, um unabhängig voneinander Akkumulations- und Inferenz- (Gewichtungslese-) Operationen für getrennte Gewichtungsaktualisierung gemäß einer Ausführungsform der Erfindung auszuführen.
    • 4 veranschaulicht schematisch eine RPU-Zellenarchitektur, in der getrennte Gewichtungsmatrizen umgesetzt sind, um unabhängig voneinander Akkumulations- und Inferenzoperationen für getrennte Gewichtungsaktualisierung gemäß einer weiteren Ausführungsform der Erfindung auszuführen.
    • 5 veranschaulicht schematisch einen Betriebsmodus der RPU-Zelle von 4 gemäß einer Ausführungsform der Erfindung.
    • 6 veranschaulicht schematisch eine Anordnung von RPU-Zellen eines RPU-Systems, in dem jede RPU-Zelle getrennte Gewichtungsmatrizen umsetzt, um unabhängig voneinander -Akkumulations- und Inferenzoperationen für getrennte Gewichtungsaktualisierung gemäß einer weiteren Ausführungsform der Erfindung auszuführen.
    • 7 veranschaulicht schematisch eine RPU-Zellenarchitektur, in der getrennte Gewichtungsmatrizen umgesetzt sind, um unabhängig voneinander Akkumulations- und Inferenzoperationen für getrennte Gewichtungsaktualisierung gemäß einer weiteren Ausführungsform der Erfindung auszuführen.
  • Ausführliche Beschreibung von Ausführungsformen
  • Ausführungsformen der Erfindung werden im Folgenden ausführlicher in Bezug auf RPU-Zellenarchitekturen und Verfahren beschrieben, in denen getrennte Matrizen verwendet werden, um unabhängig voneinander getrennte Gewichtungsaktualisierungs-Akkumulations- und Inferenz- (Gewichtungslese-) Operationen mit einer Kreuzschaltanordnung von RPU-Zellen auszuführen, die einstellbare resistive Einheiten aufweist. Zu beachten ist, dass dieselben oder ähnliche Bezugszeichen in den Zeichnungen durchgehend verwendet werden, 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.
  • 1 veranschaulicht schematisch ein RPU-System 100, das unter Verwendung von RPU-Zellenarchitekturen gemäß Ausführungsformen der Erfindung umgesetzt werden kann. Das RPU-System 100 weist eine zweidimensionale (2D) Kreuzschaltanordnung von RPU-Zellen 110 auf, 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 (zusammengefasst 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 (zusammengefasst Spalten-Steuerleitungen CL). Jede RPU-Zelle 110 ist an (und zwischen) einem Kreuzungspunkt (oder einer Überschneidung) einer jeweiligen einen der Zeilen- und Spalten Steuerleitungen angeschlossen. In einer beispielhaften Ausführungsform weist das RPU-System 100 eine Anordnung von 4.096 x 4.096 RPU-Zellen 110 auf.
  • Das RPU-System 100 weist ferner getrennte Blöcke von Peripherieschaltungen 120-1, 120-2, 120-3, ..., 120-m auf (zusammengefasst Peripherieschaltung 120), die mit jeweiligen Zeilen-Steuerleitungen RL1, RL2, RL3, ..., RLm verbunden sind, sowie getrennte Blöcke von Peripherieschaltungen 130-1, 130-2, 130-3, ..., 130-n (zusammengefasst Peripherieschaltung 130), die mit jeweiligen Spalten-Steuerleitungen CL1, CL2, CL3, ..., CLn verbunden sind. Ferner ist jeder Block von Peripherieschaltungen 120-1, 120-2, 120-3, ..., 120-m (für die Zeilen) mit einem Block einer Daten-Eingabe/Ausgabe- (E/A) Schnittstelle 125 verbunden. Desgleichen ist jeder Block von Peripherieschaltungen 130-1, 130-2, 130-3, ..., 130-n (für die Spalten) mit einem Block einer Daten- Eingabe/Ausgabe- (E/A) Schnittstelle 135 verbunden. Das RPU-System 100 weist ferner eine Referenzschaltung 140 auf, die verschiedene Typen von Schaltkreisblöcken aufweist, wie beispielsweise Energie-, Takt-, Vorspannungs- und Zeitgeberschaltung, um Energieverteilungs- und Steuersignale und Taktsignale zum Betreiben des RPU-Systems 100 bereitzustellen.
  • In einigen Ausführungsformen ist das RPU-System 100 konfiguriert, um DNN-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 Peripherieschaltung 120 und 130 zugegriffen werden kann (wobei wij einen Gewichtungswert für die i-te Zeile und die j-te Spalte in der Anordnung von RPU-Zellen 110 angibt). Wie oben angegeben, beruht die DNN-Schulung allgemein auf einem Rückpropagierungsprozess, der drei sich wiederholende Zyklen umfasst: einen Vorwärtszyklus, einen Rückwärtszyklus und einen Gewichtungsaktualisierungszyklus. Das RPU-System 100 kann konfiguriert werden, um alle drei Zyklen des Rückpropagierungsprozesses parallel auszuführen, wodurch potenziell eine erhebliche Beschleunigung der DNN-Schulung mit weniger Energie und verringerten Berechnungsressourcen bereitgestellt wird. Das RPU-System 100 kann konfiguriert werden, um Vektor-Matrix-Multiplikationsoperationen im analogen Bereich parallel auszuführen, was zu einer erheblichen Leistungssteigerung (z.B. 10K-fach oder mehr) im Vergleich zu einer entsprechenden CPU/GPU-Umsetzung führt.
  • 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 umfassen kann, die abhängig von der Umsetzung mit den RPU-Zellen 110 in den jeweiligen Zeilen und Spalten verbunden sind. Zum Beispiel weist in einer Ausführungsform jede Zeilen-Steuerleitung RL und jede Spalten-Steuerleitung CL ein Paar von Steuerleitungen auf, die eine „Aktualisierungs“-Steuerleitung und eine „Lese“-Steuerleitung umfassen, wobei die Zellenleitfähigkeit (z.B. Gewichtungswert) einer bestimmten RPU-Zelle 100 jeweils durch die Aktualisierungs- und Lese-Steuerleitungen für eine bestimmte Zeile und Spalte angepasst und abgefühlt werden können, die mit der bestimmten RPU-Zelle 110 verbunden sind.
  • In einigen Ausführungsformen weist jeder Block von Peripherieschaltungen 120 und 130 im Wesentlichen denselben Satz von Schaltungsblöcken auf, die mit den jeweiligen Zeilen und Spalten in der 2D-Anordnung von RPU-Zellen 110 verbunden sind, um Vorwärts-, Rückwärts- und Aktualisierungsoperationen für einen Rückpropagierungsprozess auszuführen. Zum Beispiel weist in einer Ausführungsform jeder Block von Peripherieschaltungen 120 und 130 einen Generatorblock für stochastische Impulse und einen Aktualisierungsimpulsblock zum Unterstützen einer RPU-Zellenaktualisierungsoperation auf (z.B. Aktualisieren eines Gewichtungswerts einer bestimmten RPU-Zelle 110), die auf Aktualisierungsvektoren ansprechen, die während eines Gewichtungsaktualisierungszyklus empfangen werden, um eine Reihe von stochastisch aufgefüllten Impulsen zu generieren und an eine Übereinstimmungserkennungsschaltung (in einer bestimmten RPU-Zelle 110) anzulegen und Operationen zum Aktualisieren des Gewichtungswerts der bestimmten RPU-Zelle 110 auszuführen. Insbesondere, wie im Folgenden ausführlicher erörtert, werden die stochastischen Impulse auf den Aktualisierungszeilen- und Aktualisierungsspalten-Steuerleitungen übertragen, die mit der bestimmten RPU-Zelle 110 verbunden sind und unter Verwendung der Übereinstimmungserkennungsschaltung verarbeitet werden, um verschiedene Operationen (z.B. Multiplikation) zum Aktualisieren eines gespeicherten Gewichtungswerts in der RPU-Zelle 110 auszuführen.
  • Außerdem weist in einer Ausführungsform jeder Block der Peripherieschaltungen 120 und 130 zum Unterstützen von Lese-/Abfühloperationen von RPU-Zellen (z.B. Lesen eines Gewichtungswerts einer bestimmten RPU-Zelle 110) (i) eine Pulsweitenmodulations-(PWM) Schaltung und eine Leseimpuls-Treiberschaltung auf, um PWM-Leseimpulse zu generieren und in Reaktion auf Eingangsvektorwerte (Leseeingangswerte), die während Vorwärts-/Rückwärts-Zyklen empfangen wurden, an die RPU-Zellen 110 anzulegen und weist (ii) eine Stromintegratorschaltung und eine Analog-Digital- (ADC) Schaltung auf, um Leseströme (ILESEN) zu integrieren, die von den verbundenen RPU-Zellen 110 ausgegeben und akkumuliert werden, und die integrierten Ströme in digitale Werte (Leseausgangswerte) zur nachfolgenden Berechnung zu konvertieren.
  • Die Daten-E/A-Schnittstelle 125 stellt eine Schnittstelle bereit, die konfiguriert ist, um (i) externe Steuersignale zu empfangen und Aktualisierungs- und Leseeingangswerte an die Blöcke der Peripherieschaltung 120 anzulegen, und (ii) digitale Leseausgangswerte von den Blöcken der Peripherieschaltung 120 zu empfangen und die digitalen Leseausgangssignale an ein entfernt angeordnetes Element zur Verarbeitung zu senden. Desgleichen stellt die Daten-E/A-Schnittstelle 135 eine Schnittstelle bereit, die konfiguriert ist, um (i) externe Steuersignale zu empfangen und Aktualisierungs- und Leseeingangswerte an die Blöcke der Peripherieschaltung 130 anzulegen, und (ii) digitale Leseausgangswerte von den Blöcken der Peripherieschaltung 130 zu empfangen und die digitalen Leseausgangssignale an ein entfernt angeordnetes Element zur Verarbeitung zu senden.
  • Jede RPU-Zelle 110 in dem RPU-System 100 weist eine widerstandsähnliche Schaltungskomponente mit einer einstellbaren Leitfähigkeit auf, wobei der Leitfähigkeitswert jeder RPU-Zelle 110 ein Matrixelement oder eine Gewichtung darstellt. Zum Beispiel können die RPU-Zellen 110 in einigen Ausführungsformen unter Verwendung einer Einheit mit variablem Widerstand umgesetzt werden, wie zum Beispiel ein resistives Arbeitsspeicherelement, das in resistiven Direktzugriffsspeicher- (RRAM) Systemen verwendet wird. Insbesondere, wie im Stand der Technik bekannt, weist eine resistive Arbeitsspeicherzelle eine Metall-Isolator-Metall- (MIM) Struktur auf, in der die Isolatorschicht (z.B. Metalloxid) durch ein resistives Umschaltverhalten einen variablen Widerstand aufweist.
  • In anderen Ausführungsformen können die RPU-Zellen 110 unter Verwendung eines analogen CMOS-Framework umgesetzt werden, das einen Kondensator und einen oder mehrere Lesetransistoren aufweist, wobei der Kondensator als ein Arbeitsspeicherelement in der RPU-Zelle dient, die einen Gewichtungswert in Form einer Kondensatorspannung speichert. Wie im Folgenden ausführlicher erklärt, wird die Kondensatorspannung oder Gewichtungsspannung Vw direkt an den Gate-Anschluss bzw. die Gate-Anschlüsse des Lesetransistors bzw. der Lesetransistoren angelegt, um den Kanalwiderstand des Lesetransistors bzw. der Lesetransistoren zu modulieren. Auf den in dem Kondensator gespeicherten Ladezustand kann durch Anlegen einer kleinen Vorspannung an den Lesetransistor bzw. die Lesetransistoren zugegriffen werden, um Drain-Ströme zu generieren, die einen Lesestrom ILESEN generieren, der aus der RPU-Zelle fließt und in den jeweiligen Blöcken der Peripherieschaltungen 120 und 130 verarbeitet wird.
  • 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 Gradientenabstiegplans (SGD) geschult, 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 Zyklus 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 Vektormatrixmultiplikation in Vorwärts- und Rückwärtsrichtungen unter Verwendung der 2D-Kreuzschaltanordnung von RPU-Einheitenzellen 110 des in 1 gezeigten RPU-Systems.
  • In dem RPU-System 100 von 1 bilden die Leitfähigkeitswerte gij in der 2D-Kreuzschaltanordnung 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 der 2D-Kreuzschaltanordnung ü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 Vektormatrixprodukt wird auf der Transponierten der Gewichtungsmatrixwerte W berechnet. Im Gegensatz zu Vorwärts- und Rückwärtszyklen erfordert ein Umsetzen der Gewichtungsaktualisierung auf einer 2D-Kreuzschaltanordnung 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 auszuführen sind. 2A, 2B und 2C veranschaulichen schematisch jeweils Vorwärtsübergabe-, Rückwärtsübergabe- und Gewichtungsaktualisierungsoperationen eines Rückpropagierungs-Algorithmus, der unter Verwendung des RPU-Systems 100 von 1 ausgeführt werden kann.
  • Für eine einzelne vollständig verbundene Schicht, in der N Eingangsneuronen mit M Ausgangs- (oder verborgenen) Neuronen verbunden sind, umfasst die Vorwärtsübergabe (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 Ausgabeschicht erreichen, wird ein Fehlersignal berechnet und durch das Netzwerk zurück propagiert. In dem Vorwärtszyklus bilden die gespeicherten Leitfähigkeitswerte in der Kreuzschaltanordnung der RPU-Zellen 110 eine Matrix, wobei der Eingangsvektor als Spannungsimpulse durch jede eine Eingabezeilen R1, R2, R3, ..., Rm übertragen wird.
  • Der Rückwärtszyklus (2B) auf einer einzelnen Schicht umfasst eine Vektor-Matrix-Multiplikation auf der Transponierten einer Gewichtungsmatrix, z = WTδ, 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 Transponierten der Gewichtungsmatrix W berechnet.
  • Schließlich wird in einem Aktualisierungszyklus (2C) die Gewichtungsmatrix W aktualisiert, indem ein äußeres Produkt der beiden Vektoren ausgefü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 einer 2D-Kreuzschaltanordnung von resistiven Einheiten, unabhängig von der Anordnungsgröß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 RPU-System von 1 ausgefü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, δj 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 der 2D-Kreuzschaltanordnung einer zweipoligen RPU-Einheit mit M Zeilen und N Spalten umgesetzt werden, wobei die gespeicherten Leitfähigkeitswerte in der Kreuzschaltanordnung die Matrix W bilden. In dem Vorwärtszyklus wird der Eingangsvektor x als Spannungsimpulse durch jede der Zeilen übertragen, und der sich daraus ergebende Vektor y kann als Stromsignale von den Spalten gelesen werden. Wenn Spannungsimpulse von den Spalten als Eingabe in den Rückwärtszyklus bereitgestellt werden, wird ebenfalls ein Vektor-Matrix-Produkt auf der Transponierten 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 durch, die von der Spalte und der Zeile kommen und somit eine inkrementelle Gewichtungsaktualisierung erreichen.
  • Zum Bestimmen des Produkts aus den Vektoren xi und δj für den Gewichtungsaktualisierungszyklus wird die stochastische Übersetzerschaltung in den Peripherie-Schaltungsblöcken 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 der 2D-Kreuzschaltanordnung 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-Schulungsprozesses zu berechnen. Wie oben angemerkt, kann ein stochastisch geschultes DNN, das Anordnungen von RPU-Zellen aufweist, synaptische Gewichtungen haben, die unter Verwendung verschiedener Typen von einstellbaren resistiven Einheiten umgesetzt werden, darunter zum Beispiel memristive Einheiten, Kondensatoren/Lesetransistoren usw. Zum sachgemäßen Schulen eines DNN und Erzielen von hoher Präzision sollten die Betriebseigenschaften der einstellbaren resistiven Einheiten einem strikten Satz von Spezifikationen entsprechen, einschließlich der Fähigkeit, eine symmetrische inkrementelle (Erhöhungs-/Verringerungs-) Gewichtungswertaktualisierung ±Δwmin in den RPU-Zellen zu erhalten, sie sind jedoch nicht darauf beschränkt. Um eine derartige Symmetrie zu erreichen, sollte das RPU-System so konfiguriert sein, dass die Leitfähigkeitspegel einer bestimmten RPU-Zelle von einem niedrigsten Leitfähigkeitszustand in einen höchsten Leitfähigkeitszustand analog und symmetrisch inkrementell umgeschaltet werden, wobei jede inkrementelle Erhöhung (Schritt nach oben, Δ g m i n +
    Figure DE112019000437B4_0003
    ) und inkrementelle Verringerung (Schritt nach unten, Δ g m i n
    Figure DE112019000437B4_0004
    ) in den Leitfähigkeitspegeln denselben oder einen ähnlichen Betrag mit einem Nichtübereinstimmungsfehler von maximal 5 % aufweisen sollte. Insbesondere sollte die Aufwärts/Abwärts-Symmetrie Δ g m i n + Δ g m i n
    Figure DE112019000437B4_0005
    gleich 1,0 ± 0,05 sein. Es ist anzumerken, dass der Parameter Δ g m i n ±
    Figure DE112019000437B4_0006
    zum Parameter Δ w m i n +
    Figure DE112019000437B4_0007
    durch einen Verstärkungsfaktor proportional ist, der durch die Peripherieschaltung definiert wird. Einstellbare resistive Einheiten wie zum Beispiel memristive Einheiten (oder Memristoren) weisen jedoch typischerweise eine Vielfalt von Einstell-/Programmiereigenschaften auf, die ein Erreichen von symmetrischen Gewichtungsaktualisierungen über den Bereich (Minimum bis Maximum) der Leitfähigkeitspegel erschweren.
  • Um auf die Vielfalt von Einstell-/Programmiereigenschaften von einstellbaren resistiven Einheiten einzugehen und RPU-Systeme unter Verwendung von einstellbaren resistiven Einheiten mit gelockerten Spezifikationen umzusetzen, stellen Ausführungsformen der Erfindung RPU-Zellenarchitekturen bereit, in denen getrennte Matrizen verwendet werden, um Gewichtungsaktualisierungs-Akkumulationsoperationen und Inferenz-(Gewichtungslese-) Operationen auszuführen. Insbesondere, wie in 2C gezeigt, verwendet ein herkömmliches RPU-System eine einzelne Gewichtungsmatrix W zum Ausführen eines Gewichtungsaktualisierungsprozesses: wij ← wij + ηxi × δj, wobei wij den Gewichtungswert für die i-te Zeile und die j-te Spalte darstellt. RPU-Systeme gemäß Ausführungsformen der Erfindung werden unter Verwendung einer Gewichtungsmatrix W sowie einer getrennten Matrix einer „verborgenen Gewichtungsaktualisierungs-Akkumulationsmatrix“ umgesetzt, die mit H bezeichnet wird. Die H-Matrix wird verwendet, um einen Gewichtungsaktualisierungs-Akkumulationsprozess auszuführen: hij ← hij + ηxi × δj, wobei hij einen Gewichtungsaktualisierungs-Akkumulationswert für die i-te Zeile und die j-te Spalte darstellt. Wenn der Gewichtungsaktualisierungs-Akkumulationswert hij in diesem Schema einen vorab festgelegten Schwellenwert HSchwellenwert erfüllt, wird der entsprechende Gewichtungswert wij um eine Einheit ΔWmin erhöht oder verringert. Die akkumulierten Gewichtungsaktualisierungsoperationen werden unter Verwendung der H-Matrix in einem Aktualisierungspfad ausgeführt, der vor dem Inferenzpfad verborgen ist. Die W-Matrix für den Inferenzpfad wird nicht bei jeder Wiederholung der akkumulierten Gewichtungsaktualisierung aktualisiert, statt dessen wird der W-Matrixwert wij für die bestimmte RPU-Zelle 300 aktualisiert, wenn der H-Matrixwert hij der RPU-Zelle den vorab festgelegten Schwellenwert HSchwellenwert erfüllt.
  • 3 ist zum Beispiel eine schematische Veranschaulichung der höchsten Ebene einer RPU-Zellenarchitektur, in der getrennte Gewichtungsmatrizen umgesetzt sind, um unabhängig voneinander getrennte Gewichtungsaktualisierungs-Akkumulations- und Inferenz- (Gewichtungslese-) Operationen gemäß einer Ausführungsform der Erfindung auszuführen. Insbesondere veranschaulicht 3 eine RPU-Zelle 300, die eine Gewichtungsaktualisierungs-Akkumulationsschaltung 310, eine Gewichtungsaktualisierungs-Steuerschaltung 320 und eine einstellbare resistive Einheit 330 aufweist. Die Gewichtungsaktualisierungs-Akkumulationsschaltung 310 hat Eingänge, die mit Update_Row- (Aktualisierungszeilen-) und Update_Col- (Aktualisierungspalten-) Steuerleitungen verbunden sind, und die einstellbare resistive Einheit 330 ist mit Read_Row-(Lesezeilen-) und Read_Col- (Lesespalten-) Steuerleitungen verbunden. Die Gewichtungsaktualisierungs-Akkumulationsschaltung 310 und die Gewichtungsaktualisierungs-Steuerschaltung 320 empfangen als Eingang ein Programmierpolaritäts-Steuersignal (V_Prog), das eine Richtung (Erhöhung oder Verringerung) der inkrementellen Gewichtungswertaktualisierungen steuert. In einigen Ausführungsformen wird die einstellbare resistive Einheit 330 unter Verwendung einer Memristor-Einheit oder anderer Typen von Einheiten mit variablem Widerstand umgesetzt, die für die gegebene Anwendung geeignet sind, wie zum Beispiel resistive Arbeitsspeicherzellen, die in resistivem Direktzugriffsspeicher (RRAM) verwendet werden. Insbesondere, wie im Stand der Technik bekannt, weist eine resistive Arbeitsspeicherzelle eine Metall-Isolator-Metall- (MIM) Struktur auf, in der die Isolatorschicht (z.B. Metalloxid) durch ein resistives Umschaltverhalten einen variablen Widerstand aufweist.
  • In der RPU-Zelle 300 ist die Gewichtungsaktualisierung-Akkumulationsschaltung 310 so konfiguriert, dass sie lokale Multiplikationsoperationen (Vektor-Kreuzproduktoperationen) unter Verwendung eines Verfahrens zur Übereinstimmungserkennung ausführt, um einen Gewichtungsaktualisierungs-Akkumulationsprozess auszuführen. hij ← hij + ηxi × δj. Wie oben angemerkt, wird eine Gewichtungsaktualisierungs-Operation auf Grundlage des Konzepts umgesetzt, dass ein Ausführen einer Übereinstimmungserkennung (z.B. AND-Operation) von stochastischen Bitströmen, die reelle Zahlen darstellen, einer Multiplikationsoperation entspricht. In diesem Zusammenhang wird das Produkt von xi und δj (in hij ← hij + ηxi × δj) durch Eingeben von stochastischen Bitströmen berechnet, die die Vektoren xi und δj für die Gewichtungsaktualisierungs-Akkumulationsschaltung 310 jeweils auf den Update_Row- und Update_Col-Steuerleitungen darstellen, wobei die Gewichtungsaktualisierungs-Akkumulationsschaltung 310 den akkumulierten Gewichtungswert hij abhängig von der Übereinstimmung der beiden eingegebenen stochastischen Bitströme xi und δj aktualisiert.
  • Wenn der Gewichtungsaktualisierungs-Akkumulationswert hij den vorab festgelegten Schwellenwert HSchwellenwert erfüllt, generiert und sendet die Gewichtungsaktualisierungs-Akkumulationsschaltung 310 ein Aktualisierungssteuersignal (Update) an die Gewichtungsaktualisierungs-Steuerschaltung 320. In Reaktion auf das Aktualisierungssteuersignal korrigiert die Gewichtungsaktualisierungs-Steuerschaltung 320 einen Leitfähigkeitspegel der einstellbaren resistiven Einheit 330 um einen Schritt (d.h. erhöht oder verringert den Leitfähigkeitspegel um einen Schritt Δ g m i n ±
    Figure DE112019000437B4_0008
    ). Mit anderen Worten, die Gewichtungsaktualisierungs-Steuerschaltung 320 korrigiert den entsprechenden Gewichtungswert wij der RPU-Zelle 300 um eine Einheit, ΔWmin, wobei ein neuer Gewichtungswert wij durch Addieren oder Subtrahieren ΔWmin zu bzw. von dem aktuell gespeicherten Gewichtungswert wij (d.h. wij ← wij + ±ΔWmin) berechnet wird. Die inkrementellen Änderungen an den akkumulierten Gewichtungsaktualisierungswerten hij und den Inferenz-Gewichtungswerten wij erhöhen sich (nach oben) oder verringern sich (nach unten) abhängig von der Polarität des Programmierpolaritäts-Steuersignals (V_Prog), das in die Schaltungsblöcke 310 und 320 eingegeben wird.
  • Wenn der Inferenz-Gewichtungswert wij der einstellbaren resistiven Einheit 330 in der bestimmten RPU-Zelle 300 aktualisiert wird, generiert und sendet die Gewichtungsaktualisierungs-Steuerschaltung 320 ein Rücksetzsteuersignal (Reset) an die Gewichtungsaktualisierungs-Akkumulationsschaltung 310. In Reaktion auf das Rücksetzsteuersignal setzt die Gewichtungsaktualisierungs-Akkumulationsschaltung 310 den Wert von hij auf einen vordefinierten initialisierten Wert zurück und beginnt einen neuen Gewichtungsaktualisierungs-Akkumulationszyklus für die bestimmte RPU-Zelle.
  • In dem beispielhaften Framework der RPU-Zelle 300 werden die InferenzOperationen (z.B. Vorwärts-/Rückwärtsübergabeoperationen, die in 2A und 2B gezeigt werden) auf der W-Matrix unabhängig von den Gewichtungsaktualisierungs-Akkumulationsoperationen ausgeführt, die auf der H-Matrix über die RPU-Zellenanordnung ausgeführt werden. Der W-Matrixwert wij einer bestimmten RPU-Zelle wird nicht bei jeder Aktualisierungswiederholung auf dem H-Matrixwert hij der bestimmten RPU-Zelle aktualisiert, statt dessen wird der W-Matrixwert wij aktualisiert, wenn der H-Matrixwert hij einem vordefinierten Schwellenwert entspricht. In diesem Framework kann die Anzahl von Zuständen für die W-Matrixwerte wij von z.B. 1200 Zuständen auf 40 Zustände verringert werden, wobei eine Anzahl von Zuständen für die H-Matrixwerte hij z.B. 30 betragen kann. In diesem Zusammenhang kann der W-Matrixwert einer bestimmten RPU-Zelle jedes Mal, wenn die H-Matrixwerte für die bestimmte RPU-Zelle die 30 Zustände durchlaufen, um einen Einheitswert ±ΔWmin aktualisiert werden. Damit wird eine RPU-Zelle mit 1200 Leitfähigkeitspegeln (Zuständen) effektiv emuliert, z.B. 30 H-Matrixwerte für jeden der 40 W-Matrixwerte (30 x 40 = 1200).
  • Mit diesem Framework werden die inkrementellen Aktualisierungen für die W-Matrixwerte weniger häufig ausgeführt als die inkrementellen Aktualisierungen für die H-Matrixwerte, wodurch ermöglicht wird, dass die W-Matrix unter Verwendung von einstellbaren resistiven Einheiten mit gelockerten Spezifikationen und Vorgaben umgesetzt werden kann. Zum Beispiel können die memristiven Einheiten mit einer Leitfähigkeitsauflösung von 40 Pegeln oder weniger umgesetzt werden, statt RPU-Zellen mit memristiven Einheiten mit 1000 oder mehr Leitfähigkeitszuständen umsetzen zu müssen, wodurch gelockerte Einheitenvorgaben bereitgestellt werden. Zum Beispiel kann die einstellbare resistive Einheit 330 in 3 unter Verwendung einer RRAM-Einheit auf Hafniumoxid- (HfOx) Grundlage umgesetzt werden. Außerdem müssen bei diesem RPU-Zellen-Framework die inkrementellen Aktualisierungen für die W-Matrixwerte nicht symmetrisch sein. Außerdem ermöglicht das beispielhafte RPU-Zellen-Framework gleichzeitig auszuführende Vorwärts- und Rückwärts-Operationen und stellt eine höhere Rechengeschwindigkeit bereit, da die Notwendigkeit einer Ausführung eines globalen Aktualisierungszyklus für die W-Matrix entfällt.
  • In einigen Ausführungsformen kann die Anzahl von Zuständen für die H-Matrixwerte abhängig von der Anwendung 30 oder mehr betragen. Mit dem beispielhaften Framework der RPU-Zelle 300 von 3 sollten die inkrementellen Aktualisierungen der H-Matrixwerte symmetrisch sein. In diesem Zusammenhang kann die Gewichtungsaktualisierungs-Akkumulationsschaltung 310 problemlos unter Verwendung verschiedener Schaltungstopologien und Konfigurationen umgesetzt werden, um symmetrische inkrementelle/dekrementelle Aktualisierungen der H-Matrixwerte hij der RPU-Zellen zu ermöglichen. Alternative Ausführungsformen zum Umsetzen der Gewichtungsaktualisierungs-Akkumulationsschaltung 310 und der zugehörigen RPU-Zellenarchitektur werden im Folgenden ausführlicher unter Bezugnahme auf die beispielhaften Ausführungsformen erörtert, die in 4, 5, 6 und 7 gezeigt sind.
  • 4 veranschaulicht zum Beispiel schematisch eine RPU-Zelle 400, in der getrennte Gewichtungsmatrizen umgesetzt werden, um unabhängig voneinander getrennte Inferenz- (Gewichtungslese-) und Gewichtungsaktualisierungs-Akkumulationsoperationen gemäß einer weiteren Ausführungsform der Erfindung auszuführen. Die RPU-Zelle 400 weist eine Gewichtungsaktualisierungs-Akkumulationsschaltung 410, eine Impulsgeneratorschaltung 420, eine einstellbare resistive Einheit 430 und einen ersten und zweiten Schalter S1 und S2 auf. Die Gewichtungsaktualisierungs-Akkumulationsschaltung 410 weist einen Übereinstimmungsdetektor 412 und einen bidirektionalen digitalen Zähler 414 (oder Aufwärts/Abwärts-Zähler) auf. Die Impulsgeneratorschaltung 420 weist eine Steuerschaltung 422 und einen Impulsgenerator 424 auf. Die in 4 gezeigte Gewichtungsaktualisierungs-Akkumulationsschaltung 410 ist eine beispielhafte Ausführungsform der Gewichtungsaktualisierungs-Akkumulationsschaltung 310 von 3, wie oben erörtert. Außerdem stellen die in 4 gezeigte Impulsgeneratorschaltung 420 und der erste und zweite Schalter S1 und S2 gemeinsam eine beispielhafte Ausführungsform der Gewichtungsaktualisierungs-Steuerschaltung von 3 bereit, wie oben erörtert.
  • In einer Ausführungsform weist der Übereinstimmungsdetektor 412 ein AND-Logikgatter mit Eingängen auf, die mit den Update_Row- und Update_Col-Steuerleitungen und einem Ausgang verbunden sind, der mit einem Dateneingang (IN) des bidirektionalen digitalen Zählers 414 verbunden ist. Für einen Gewichtungsaktualisierungsprozess unter Verwendung eines stochastischen Datenverarbeitungsschemas ermöglicht das AND-Logikgatter eine lokale Multiplikationsoperation, wobei eine inkrementelle Aktualisierung des H-Matrixwerts hij der RPU-Zelle 400 jedes Mal ausgeführt wird, wenn stochastische Impulse auf den Update_Row- und Update_Col-Steuerleitungen übereinstimmen (z.B. wenn die AND-Gattereingänge übereinstimmende logische „1“-Impulse aufweisen). Wenn eine Impulsübereinstimmung auf den Update_Row- und Update_Col-Steuerleitungen erkannt wird, gibt der Übereinstimmungsdetektor 412 einen Logikpegel „1“ zum Beispiel an den Dateneingang IN des bidirektionalen digitalen Zählers 414 aus.
  • Der bidirektionale digitale Zähler 414 kann unter Verwendung jeder geeigneten Konfiguration einer digitalen Zählerschaltung umgesetzt werden, die so konfiguriert ist, dass sie in beide Richtungen, entweder aufwärts oder abwärts zählt, was vom Logikpegel des Programmierpolaritäts-Steuersignals V_Prog abhängt 414, das an den Aufwärts/Abwärts-Steuereingang des bidirektionalen digitalen Zählers 414 angelegt wird. Insbesondere ist der bidirektionale digitale Zähler 414 so konfiguriert, dass er über jede beliebige Zählsequenz in jede Richtung (aufwärts oder abwärts) zählt, wobei die Zählrichtung an jedem Punkt innerhalb einer Zählsequenz auf Grundlage des Logikpegels von V_Prog umgekehrt werden kann, das an den Aufwärts/Abwärts-Steuereingang des bidirektionalen digitalen Zählers 414 angelegt wird.
  • Wenn der Zählwert des bidirektionalen digitalen Zählers 414 einen vorab festgelegten Zählwert erreicht, gibt der bidirektionale digitale Zähler 414 ein Steuersignal Carry an einen Eingang der Impulsgeneratorschaltung 420 aus. In Reaktion auf das Carry-Steuersignal generiert die Impulsgeneratorschaltung 420 einen Spannungsimpuls (mit einer vorab festgelegten Dauer) an den positiven (+) und negativen )-) Ausgangsanschlüssen der Impulsgeneratorschaltung 420, der an die einstellbare resistive Einheit 430 angelegt wird, um den Leitfähigkeitspegel der einstellbaren resistiven Einheit 420 um eine Einheit ±Δgmin zu erhöhen oder zu verringern. Die Einheitenänderung ±Δgmin des Leitfähigkeitspegels entspricht einer Einheitenänderung ±ΔWmin des Gewichtungswerts wij der RPU-Zelle 400 (wobei der neue Gewichtungswert durch Addieren oder Subtrahieren ΔWmin zu oder von dem derzeit gespeicherten Gewichtungswert wij berechnet wird (d.h. wij ← wij + ±ΔWmin )). Die Impulsgeneratorschaltung 420 generiert und gibt ein Rücksetzsteuersignal aus, das an einen Reset-Eingang des bidirektionalen digitalen Zählers 414 angelegt wird, um den bidirektionalen digitalen Zähler 414 auf einen vorab festgelegten Initialisierungszählwert zurückzusetzen.
  • Insbesondere, wie in 4 gezeigt, ist die Steuerschaltung 422 der Impulsgeneratorschaltung 420 so konfiguriert, dass sie verschiedene Funktionen ausführt, darunter (i) ein Empfangen und ein Verarbeiten eines Carry-Signalausgangs von dem bidirektionalen digitalen Zähler 414, (ii) ein Generieren und ein Ausgeben eines Reset-Steuersignals zum Zurücksetzen des bidirektionalen digitalen Zählers 414, (iii) ein Generieren und ein Ausgeben eines Pfadaktivierungs-Steuersignals (Path_En), das den ersten und zweiten Schalter S1 und S2 steuert, und (iv) ein Generieren eines Aktivierungssignals an den Impulsgenerator 424, das den Impulsgenerator 424 veranlasst, einen Gewichtungsaktualisierungsimpuls zu generieren und auf den Ausgangsanschlüssen (+) und (-) der Impulsgeneratorschaltung 420 auszugeben.
  • Wie in 4 gezeigt, werden der erste und zweite Schalter S1 und S2 durch das Path_En-Steuersignal gesteuert, das von der Steuerschaltung 422 ausgegeben wird. Abhängig von der Polarität des Path_En-Steuersignals wird die RPU-Zelle 400 in einer Konfiguration als „Aktualisierungspfad“ oder „Inferenzpfad“ konfiguriert. In der Aktualisierungspfad-Konfiguration werden der erste und zweite Schalter S1 und S2 aktiviert, um die einstellbare resistive Einheit 430 mit und zwischen den positiven (+) und negativen (-) Ausgangsanschlüssen der Impulsgeneratorschaltung 420 zu verbinden. In dieser Konfiguration legt die Impulsgeneratorschaltung 420 einen Gewichtungsaktualisierungs-Spannungsimpuls an die einstellbare resistive Einheit 430 an, um den Leitfähigkeitswert der einstellbaren resistiven Einheit 430 um eine Einheit ±Δgmin entweder zu erhöhen oder zu verringern. Die Polarität des Gewichtungsaktualisierungs-Spannungsimpulses ist entweder positiv (+) oder negativ (-) und hängt vom Logikpegel des V_Prog-Steuersignals ab. Zum Beispiel wird ein positiver Impuls (mit einer vorbestimmten Impulsbreite) an den Ausgang der Impulsgeneratorschaltung 420 angelegt, um den Leitfähigkeitspegel der einstellbaren resistiven Einheit 430 um eine Einheit +Δgmin zu erhöhen, und ein negativer Impuls (mit einer vorbestimmten Impulsbreite) wird an den Ausgang der Impulsgeneratorschaltung 420 angelegt, um den Leitfähigkeitspegel der einstellbaren resistiven Einheit 430 um eine Einheit -Δgmin zu verringern.
  • Andererseits werden der erste und zweite Schalter S1 und S2 in der Inferenzpfadkonfiguration aktiviert, um die einstellbare resistive Einheit 430 mit und zwischen den Read_Row- und Read_Col-Steuerleitungen zu verbinden, um den Gewichtungswert wij der RPU-Zelle 400 zu lesen. Zum Beispiel kann in der Inferenzpfadkonfiguration der Gewichtungswert wij der RPU-Zelle 400 in einer Vorwärts- und/oder Rückwärts(lese)operation gelesen werden, indem Spannungsimpulse mit vordefinierten Amplituden an die Read_Row- und Read_Col-Steuerleitungen angelegt werden, und anschließend ein Lesestrom ILesen gelesen wird, der durch die einstellbare resistive Einheit 430 generiert und entweder auf der Read_Row-Steuerleitung (Rückwärtsoperation) oder der Read_Col-Steuerleitung (Vorwärtsoperation) ausgegeben wird. Der Lesestrom ILesen ist in der Peripherieschaltung integriert und digitalisiert (siehe 1) und wird verarbeitet, um Vektor-Matrix-Multiplikationsoperationen auszuführen.
  • Zwar werden der erste und zweite Schalter S1 und S2 allgemein in 4 dargestellt, doch sollte klar sein, dass jeder Schalter S1 und S2 unter Verwendung von einem oder mehreren MOSFET-Transistoren umgesetzt werden kann, um eine Umschalt-Schaltung in der RPU-Zelle 400 bereitzustellen, die auf den Logikpegel des Path_En-Steuersignals reagiert, um entweder den Gewichtungsaktualisierungspfad oder den Gewichtungslese-(Inferenz) Pfad zu konfigurieren. In der in 4 gezeigten beispielhaften Ausführungsform können die Inferenzoperationen zum Lesen des Gewichtungswerts der RPU-Zelle 400 (für Vorwärts- und Rückwärtsübergabeoperationen) gleichzeitig mit den akkumulierten Gewichtungsaktualisierungsoperationen ausgeführt werden, die von der Gewichtungsaktualisierungs-Akkumulationsschaltung 410 ausgeführt werden. Wenn ferner ein Carry-Signal generiert und von dem bidirektionalen digitalen Zähler 414 ausgegeben wird, kann die Impulsgeneratorschaltung 420 damit fortfahren, eine Gewichtungsaktualisierungsoperation für die bestimmte RPU-Zelle 400 auf asynchrone Weise auszuführen, sodass die Gewichtungsaktualisierungsoperation der bestimmten RPU-Zelle 400 lokal ausgeführt werden kann, um den Leitfähigkeitspegel der einstellbaren resistiven Einheit 430 ohne Synchronisierung mit Gewichtungsaktualisierungsoperationen in anderen RPU-Zellen und sogar dann zu korrigieren, wenn Gewichtungslese- (Inferenz) Operationen in der RPU-Anordnung ausgeführt werden. In einer weiteren Ausführungsform kann ein synchrones Gewichtungsaktualisierungs-Framework unter Verwendung eines geeigneten Steuer-/Zeitgebungs-Protokolls umgesetzt werden, sodass eine Mehrzahl von RPU-Zellen mit aktivierten ausstehenden Carry-Signalen konfiguriert wird, um ihre lokalen Gewichtungsaktualisierungsoperationen gleichzeitig auszuführen, indem z.B. die Ausgabe von Programmierimpulsen von der Impulsgeneratorschaltung verzögert wird, bis ein globales Aktualisierungssignal/ein globaler Zyklus generiert/initiiert wird.
  • In einer beispielhaften Ausführungsform kann eine lokale Gewichtungsaktualisierungsoperation der RPU-Zelle wie folgt ausgeführt werden. Während Vorwärts- und Rückwärts-Betriebsmodi des RPU-Systems setzt die Steuerschaltung 422 das Path_En-Steuersignal auf einen ersten Logikpegel (z.B. Path_En = logische „1“), der den ersten und zweiten Schalter S1 und S2 aktiviert, um die einstellbare resistive Einheit 430 mit und zwischen den Read_Row- und Read_Col-Steuerleitungen zu verbinden. In diesem Zustand können Inferenzoperationen durch das RPU-System ausgeführt werden, um den aktuellen Gewichtungswert der RPU-Zelle 400 zu lesen/abzufühlen.
  • Wenn ein Carry-Steuersignal von dem bidirektionalen digitalen Zähler 414 ausgegeben wird, setzt die Steuerschaltung 422 das Path_En-Steuersignal auf einen zweiten Logikpegel (z.B. Path_En = logische „0“), der den ersten und zweiten Schalter S1 und S2 aktiviert, um die einstellbare resistive Einheit 430 mit und zwischen den positiven (+) und negativen (-) Ausgangsanschlüssen der Impulsgeneratorschaltung 420 zu verbinden. In diesem Zustand generiert die Steuerschaltung 422 ein Aktivierungssignal an den Impulsgeneratorblock 424, das den Impulsgeneratorblock 424 veranlasst, einen Gewichtungsaktualisierungs-Programmierimpuls (mit einer vordefinierten Impulsbreite) zu generieren und an die einstellbare resistive Einheit 430 anzulegen und den Leitfähigkeitspegel der einstellbaren resistiven Einheit 430 um eine Einheit eines Leitfähigkeitspegels zu korrigieren. Wenn der Programmierimpuls an die einstellbare resistive Einheit 430 angelegt wird, generiert die Steuerschaltung 422 ein Rücksetzsteuersignal und gibt es an den Reset-Eingangsanschluss des bidirektionalen digitalen Zählers 414 aus. In Reaktion auf das Reset-Steuersignal wird der bidirektionale digitale Zähler 414 auf den Initialisierungszählwert zurückgesetzt, und das Carry-Signal wird deaktiviert (z.B. Übergang von logischer „1“ zu logischer „0“). In Reaktion auf die Deaktivierung des Carry-Steuersignals ändert die Steuerschaltung 422 der Impulsgeneratorschaltung 420 den logischen Zustand des Path_En-Steuersignals, um den ersten und zweiten Schalter S1 und S2 zu veranlassen, die einstellbare resistive Einheit 430 wieder mit den Read_Row- und Read_Col-Steuerleitungen zu verbinden.
  • 5 veranschaulicht schematisch einen Betriebsmodus der RPU-Zelle 400 von 4 gemäß einer Ausführungsform der Erfindung. Insbesondere veranschaulicht 5 schematisch, dass der bidirektionale digitale Zähler 414 einen Bereich von Zählwerten 500 hat, der von einem mindesten Zählwert (C_min) bis zu einem höchsten Zählwert (C_max) reichen kann, und die einstellbare resistive Einheit 430 eine einstellbare Leitfähigkeit 510 hat, die von einer mindesten Leitfähigkeit (G_min) bis zu einer höchsten Leitfähigkeit (G_max) reichen kann. In einer Ausführungsform weist der bidirektionale digitale Zähler 414, abhängig von der Umsetzung, einen 5-Bit-Zähler auf, der einen Bereich von Zählwerten von C_min = 0 und C_max = 31 bereitstellt, wobei der Zähler in Aufwärts- und Abwärtsrichtungen arbeiten kann. Ferner kann ein dynamischer Bereich der einstellbaren Leitfähigkeit in einer Ausführungsform 40 Werte ab dem niedrigsten Leitfähigkeitszustand (G_min) bis zu dem höchsten Leitfähigkeitszustand (G_max) enthalten.
  • Wie ferner in 5 veranschaulicht, wird ein Carry-Steuersignal von dem bidirektionalen digitalen Zähler 414 ausgegeben, wenn der Zählwert C_min oder C_max während einer Zählsequenz erreicht wird. Wie oben angemerkt, erhöht oder verringert sich der Zählwert des bidirektionalen digitalen Zählers 414 in Reaktion auf jedes erkannte Übereinstimmungsereignis der stochastischen Bitströme, die an den Update_Row- und Update_Col-Steuerleitungseingang zu dem Übereinstimmungsdetektor 412 angelegt werden. In Reaktion auf das Carry-Steuersignal arbeiten die Gewichtungsaktualisierungs-Steuerschaltung (z.B. der Impulsgenerator 420 und die Schalter S1 und S2) der RPU-Zelle 400 so, dass sie die Leitfähigkeit der einstellbaren resistiven Einheit 430 entweder um eine Einheit ±Δgmin erhöhen oder verringern. Wie oben angemerkt, ist die Einheit der Leitfähigkeitsparameter Δgmin proportional zur Einheit der Gewichtungsparameter Δwmin durch einen Verstärkungsfaktor, der in der Peripherieschaltung definiert ist. Wie ferner in 5 gezeigt, wird in Reaktion auf ein Reset-Steuersignal der Zählwert des bidirektionalen digitalen Zählers 414 auf einen vordefinierten Zählrücksetzwert (C_Reset) zurückgesetzt und mit einem nächsten Zählzyklus begonnen, um Gewichtungsaktualisierungen ausgehend von C_Reset zu akkumulieren. In einer Ausführungsform wird der C_Reset-Wert so ausgewählt, dass er ein Mittenpunkt der Zählsequenz ist. Für einen 5-Bit-Zähler kann der C-Reset-Wert zum Beispiel so ausgewählt werden, dass er 15 oder 16 ist.
  • Mit dem in 5 gezeigten Prozess wird der Leitfähigkeitspegel der einstellbaren resistiven Einheit 430 auf analoge und inkrementelle Weise jedes Mal angepasst, wenn ein Zählwert C_max oder C_min erreicht. In diesem Zusammenhang emuliert das Erhöhen/Verringern der Zählsequenz des bidirektionalen digitalen Zählers in Reaktion auf ein Übereinstimmungserkennungsereignis den Gewichtungsaktualisierungs-Akkumulationsprozess: hij ← hij + ηxi × δj sodass Δhmin jeder Erhöhung oder Verringerung eines Zählwerts entspricht. Da die Aufwärts- und Abwärtsänderungen im Zählwert eines digitalen Zählers von Natur aus symmetrisch verlaufen, folgt daraus notwendigerweise, dass in den Aufwärts- (Δhmin+) und Abwärts- (Δhmin-) Änderungen in dem Gewichtungsaktualisierungs-Akkumulationswert hij eine Symmetrie vorliegt, wobei die Aufwärts-/Abwärtssymmetrie Δ h m i n + Δ n m i n 1,0
    Figure DE112019000437B4_0009
    entspricht.
  • Die hierin erörterten RPU-Zellen-Frameworks ermöglichen eine Lockerung der Spezifikation für die einstellbare resistive Einheit, die in den RPU-Zellen verwendet wird, in Bezug auf z.B. eine Symmetrie zwischen Aufwärts- und Abwärtsänderungen in dem Leitfähigkeitswert der einstellbaren resistiven Einheit, da eine derartige resistive Einheit mit einer niedrigeren Anzahl von Leitfähigkeitszuständen (z.B. 40 Zustände im Gegensatz zu mehr als 1000 Zuständen) umgesetzt werden kann, wobei der Leitfähigkeitszustand der einstellbaren Widerstandseinheit (der die W-Matrix definiert) nur in Reaktion auf eine akkumulierte Gewichtungsaktualisierung (definiert durch die H-Matrix) inkrementell (nach oben oder unten) geändert wird, wenn ein vordefinierter Zählschwellenwert erreicht wird. Im Wesentlichen stellen die H-Matrixwerte die niedrigstwertigen Bits (LSBs) der Gewichtungswerte der RPU-Zellen dar, und die W-Matrixwerte stellen die höchstwertigen Bits (MSBs) der Gewichtungswerte der RPU-Zellen dar. Dies ermöglicht, dass das RPU-System mit DNN-Anwendungen genutzt werden kann, die konfiguriert sind, um DNN-Schulungsoperationen an RPU-Zellen mit mehr als 1000 verschiedenen Gewichtungswerten auszuführen, wobei derzeit RPU-Einheiten mit einer Leitfähigkeitsauflösung von 40 Pegeln oder weniger (nicht 1000+) verwendet werden, wodurch gelockerte Einheitenvorgaben bereitgestellt werden.
  • 6 veranschaulicht schematisch eine Anordnung von RPU-Zellen eines RPU-Systems, in dem jede RPU-Zelle getrennte Gewichtungsmatrizen umsetzt, um unabhängig voneinander getrennte Inferenz- (Gewichtungslese-) und Gewichtungsaktualisierungs-Akkumulationsoperationen gemäß einer weiteren Ausführungsform der Erfindung auszuführen. Insbesondere veranschaulicht 6 eine untergeordnete RPU-Anordnung 600 mit vier RPU-Zellen 600-1, 600-2, 600-3 und 600-4 einer RPU-Zellenanordnung. Die RPU-Zellen 600-1, 600-2, 600-3 und 600-4 sind mit jeweiligen Update_Row-, Update_Col-, Read_Row- und Read_Col-Steuerleitungen verbunden. Wie in 6 gezeigt, weist jede Zeile (i) und (i+1) der Steuerleitungen ein Paar von Update_Row- und Read_Row-Steuerleitungen auf, und jede Spalte (i) und (i+1) der Steuerleitungen weist ein Paar von Update_Col- und Read_Col-Steuerleitungen auf.
  • Wie ferner in 6 gezeigt, weist jede RPU-Zelle 600-1, 600-2, 600-3 und 600-4 die Gewichtungsaktualisierungs-Akkumulationsschaltung 410, eine einstellbare resistive Einheit 430 und einen ersten und zweiten Schalter S1 und S2 auf, ähnlich der in 4 gezeigten RPU-Zelle 400. In der beispielhaften Ausführungsform von 6 wird jedoch allgemein ein globaler Impulsgenerator 610 von jeder RPU-Zelle 600-1, 600-2, 600-3 und 600-4 in der untergeordneten Anordnung 600 verwendet, um dieselben oder ähnliche Funktionen wie die lokale Impulsgeneratorschaltung 420 in der RPU-Zelle 400 von 4 auszuführen. Die Ausführungsform von 6 stellt eine effizientere Bereichs- (Größen-) Umsetzung bereit, in der die globale Impulsgeneratorschaltung 610 von einer Mehrzahl von RPU-Zellen verwendet wird, im Gegensatz zu jeder RPU-Zelle, die eine lokale dedizierte Impulsgeneratorschaltung aufweist.
  • Wie in 6 schematisch veranschaulicht, weist der globale Impulsgenerator 610 eine Steuerschaltung 612 und einen Impulsgenerator 614 auf, die dieselben oder ähnliche Funktionen wie die jeweiligen Komponenten der lokalen Impulsgeneratorschaltung 420 von 4 haben. Eine Mehrzahl von Steuerleitungen 620 (oder ein Steuerbus) sind umgesetzt, um die Steuerschaltung 612 des globalen Impulsgenerators 610 mit den Reset-Signaleingangsanschlüssen und den Carry-Signalausgangsanschlüssen von bidirektionalen digitalen Zählern 414 in jeder der RPU-Zellen 600-1, 600-2, 600-3 und 600-4 der untergeordneten RPU-Zellenanordnung 600 zu verbinden. Außerdem ist eine Mehrzahl von Steuerleitungen 622 umgesetzt, um die Ausgangsanschlüsse des globalen Impulsgenerators 610 mit Steueranschlüssen (Global PG+, Global PG-) in der RPU-Zellen 600-1, 600-2, 600-3 und 600-4 der untergeordneten RPU-Zellenanordnung 600 zu verbinden. Während die beispielhafte Ausführungsform von 6 zeigt, dass die globale Impulsgeneratorschaltung 610 von einer 2 x 2 untergeordneten Anordnung von RPU-Zellen 600 in einer RPU-Zellenanordnung gemeinsam genutzt wird, kann die globale Impulsgeneratorschaltung 610 in anderen Ausführungsformen, abhängig von der Anordnungskonfiguration und den Layoutspezifikationen, von einer größeren untergeordneten Anordnung von RPU-Zellen (z.B. 10 x 10 untergeordneten Anordnung) gemeinsam genutzt werden.
  • In einer Ausführungsform können die Schalter S1 und S2 in jeder der RPU-Zellen 600-1, 600-2, 600-3 und 600-4 der untergeordneten RPU-Zellenanordnung 600 unter Verwendung des Carry-Steuersignals lokal gesteuert werden, das durch den bidirektionalen digitalen Zähler 414 generiert wird (im Gegensatz zu dem Path_En-Signal, das durch die lokale Impulsgeneratorschaltung 420 in dem RPU-Zellen-Framework von 4 generiert wird). Wenn ein Carry-Steuersignal (z.B. logische „1“) durch einen bidirektionalen digitalen Zähler 414 in einer bestimmten der RPU-Zellen 600-1, 600-2, 600-3 und 600-4 aktiviert ist, werden die logischen Schalter S1 und S2 in der bestimmten RPU-Zelle aktiviert, um die zugehörige einstellbare resistive Einheit 430 mit und zwischen den lokalen Steueranschlüssen (Global PG+, Global PG-) in der bestimmten RPU-Zelle zu verbinden. Mit dieser Konfiguration kann eine bzw. können mehrere oder alle der RPU-Zellen 600-1, 600-2, 600-3 und 600-4 der untergeordneten RPU-Zellenanordnung 600 mit ihrer jeweiligen resistiven Einheit 430 zu einem bestimmten Zeitpunkt mit den Ausgangsanschlüssen des globalen Impulsgenerators 610 verbunden sein.
  • Ferner legt die Steuerschaltung 612 des globalen Impulsgenerators 610 in Reaktion auf das Carry-Steuersignal, das von einer oder mehreren der Steuerleitungen 620 (von einem oder mehreren bidirektionalen Zählern 414 in der untergeordneten Anordnung von RPU-Zellen 600) empfangen wurde, ein Aktivierungssteuersignal an den Impulsgeneratorblock 614 an, das verursacht, dass der Impulsgeneratorblock 614 einen Programmierimpuls auf den Steuerleitungen 622 zu jeder RPU-Zelle 600-1, 600-2, 600-3 und 600-4 in der untergeordneten RPU-Zellenanordnung 600 generiert und ausgibt. Während jede RPU-Zelle 600-1, 600-2, 600-3 und 600-4 bei dieser Konfiguration einen Programmierimpulsausgang von dem Impulsgenerator 614 empfängt, führen nur diejenigen RPU-Zellen mit einem aktivierten ausstehenden Carry-Signal und somit eine an die Ausgangsanschlüsse (Global PG+, Global PG-) des globalen Impulsgenerators 610 lokal verbundene jeweilige einstellbare Einheit 430 eine Gewichtungsaktualisierungsoperation aus, indem der Leitfähigkeitspegel der einstellbaren resistiven Einheit 430 in Reaktion auf den Programmierimpuls geändert wird. Bei dieser Konfiguration wird angenommen, dass der globale Impulsgenerator 610 über eine ausreichende Stromtreiberleistung verfügt, um einen Programmierimpuls zu generieren, der fähig ist, die Gewichtungswerte aller RPU-Zellen in der bestimmten untergeordneten Anordnung 600 gleichzeitig zu aktualisieren.
  • Nach dem Anlegen des Programmierimpulses an die resistiven Einheiten 430 der RPU-Zellen generiert die Steuerschaltung 612 ein Reset-Steuersignal, das über die Steuerleitungen 620 an die Reset-Eingangsanschlüsse der bidirektionalen Zähler 414 in den verbundenen RPU-Zellen übertragen wird. In Reaktion auf das Reset-Steuersignal setzen nur diejenigen bidirektionalen Zähler 414 in den verbundenen RPU-Zellen, die ein aktiviertes Carry-Steuersignal aufweisen, ihre Zählwerte zurück und deaktivieren anschließend die jeweiligen Carry-Steuersignale. Die Deaktivierung des Carry-Steuersignals in einer bestimmten RPU-Zelle verursacht, dass die lokalen Schalter S1 und S2 in der bestimmten RPU-Zelle die einstellbare resistive Einheit 430 wieder mit den jeweiligen Read_Row- und Read_Col-Steuerleitungen verbindet.
  • Während die beispielhaften Ausführungsformen von 4, 6 und 7 auf einem RPU-Zellen-Framework beruhen, das einstellbare resistive Einheiten wie zum Beispiel Memristoren oder resistive Speicherzellen (z.B. RRAM-Einheiten) verwendet, können die hierin erörterten Techniken in RPU-Zellen umgesetzt werden, die auf einem analogen Framework auf CMOS-Grundlage beruhen, in dem z.B. Gewichtungsspeicherkondensatoren und Lesetransistoren zum Speichern und Lesen von RPU-Zellengewichtungswerten verwendet werden. 7 veranschaulicht zum Beispiel schematisch eine RPU-Zelle 700, in der getrennte Gewichtungsmatrizen genutzt werden, um unabhängig voneinander getrennte Inferenz- (Gewichtungslese-) und Gewichtungsaktualisierungs-Akkumulationsoperationen gemäß einer weiteren Ausführungsform der Erfindung auszuführen. Wie in 7 gezeigt, weist die RPU-Zelle 700 eine Gewichtungsaktualisierungs-Akkumulationsschaltung 710, einen ersten Schalter S1, einen zweiten Schalter S2, einen dritten Schalter S3, eine Steuerschaltung 715, eine erste Stromquelle 720, eine zweite Stromquelle 722, einen Gewichtungsspeicherkondensator 730 und einen Lesetransistor 740 auf.
  • Die Gewichtungsaktualisierungs-Akkumulationsschaltung 710 weist einen Übereinstimmungsdetektor 412 und einen bidirektionalen digitalen Zähler 414 auf, die dieselben oder ähnliche Funktionen ausführen, wie in den oben im Kontext von 4, 5 und 6 erörterten beispielhaften Ausführungsformen. In einer Ausführungsform kann die erste Stromquelle 720 unter Verwendung eines PMOS-Transistors umgesetzt werden, und die zweite Stromquelle 722 kann unter Verwendung eines NMOS-Transistors umgesetzt werden. Die erste und die zweite Stromquelle 720 und 722 sind zwischen Stromversorgungsknoten VDD und VSS in Reihe geschaltet. Der Gewichtungsspeicherkondensator 730 ist zwischen einem Knoten N1 und dem Stromversorgungsknoten VSS verbunden. Der Lesetransistor 740 weist einen Gate-Anschluss auf, der mit dem Knoten N1 und Source/Drain-Anschlüssen verbunden ist, die mit Read_Row- und Read_Col-Steuerleitungen verbunden sind. Die Steuerschaltung 715 weist einen Eingangsanschluss zum Empfangen eines Carry-Steuersignals von dem bidirektionalen Zähler 414, einen Ausgangsanschluss zum Senden eines Reset-Steuersignals an den bidirektionalen Zähler 414 und einen Ausgangsanschluss zum Ausgeben eines Path_En-Impulses auf.
  • Wie in 7 gezeigt, werden der erste und der zweite Schalter S1 und S2 selektiv in Reaktion auf ein Programmierpolaritätssignal V_Prog aktiviert. In einer Ausführungsform wird der Schalter S1 in Reaktion auf ein V-Programmierpolaritätssignal einer logischen „1“ (V_Prog = 1) aktiviert, und der Schalter S2 wird in Reaktion auf ein Programmierpolaritätssignal einer logischen „0“ (V_Prog = 0) aktiviert. Außerdem, wie oben angemerkt, wird die Zählrichtung des bidirektionalen digitalen Zählers 414 durch das Programmierpolaritätssignal V_Prog gesteuert, wobei der bidirektionale digitale Zähler 414 in Reaktion auf ein Programmierpolaritätssignal einer logischen „1“ (V_Prog = 1) in einer „Aufwärts-‟Richtung zählt, und in Reaktion auf ein Programmierpolaritätssignal einer logischen „0“ (V_Prog = 0) in einer „Abwärts“-Richtung zählt. Ferner wird der Schalter S3 selektiv in Reaktion auf den Path_En-Steuerimpuls aktiviert, der durch die Steuerschaltung 715 generiert wird.
  • In der Ausführung der RPU-Zelle 700 dient der Gewichtungsspeicherkondensator 730 als ein Speicherelement, das den Gewichtungswert der RPU-Zelle in Form einer elektrischen Ladung speichert. Die Kondensatorspannung oder Gewichtungsspannung Vw wird zum Ausführen einer Gewichtungsleseoperation direkt an den Gate-Anschluss des Lesetransistors 740 angelegt, um den Kanalwiderstand des Lesetransistors 740 zu modulieren. Auf den im Kondensator 730 gespeicherten Ladungszustand kann durch Anlegen einer kleinen Vorspannung über die Source/Drain-Anschlüsse des Lesetransistors 730 und Messen des Stroms ILESEN zugegriffen werden. Wie oben angemerkt, werden für Vorwärts- und Rückwärts-(Lese)-Operationen Spannungsimpulse mit einer vordefinierten Amplitude, z.B. VDD und VDD - 0,1, an den Lesetransistor 740 von den Read_Row- und Read_Col-Steuerleitungen angelegt, wobei die kleine Source-Drain-Spannung verursacht, dass der Lesetransistor 740 in einem Triodenbereich arbeitet, in dem der Einschaltwiderstand von der Gewichtungsspannung Vw abhängt, die direkt an den Gate-Anschluss des Lesetransistors 740 angelegt wird.
  • Die RPU-Zelle 700 setzt einen Gewichtungsaktualisierungsprozess unter Verwendung von voneinander getrennten H- und W-Matrixwert-Aktualisierungsoperationen wie folgt um. Wie in den beispielhaften Ausführungsformen oben erörtert, verwendet die RPU-Zelle 700 ein stochastisches Datenverarbeitungsschema, wobei der Übereinstimmungsdetektor 412 ein Signal mit dem logischen Pegel „1“ ausgibt, zum Beispiel an den Dateneingang IN des bidirektionalen digitalen Zählers 414 für jedes stochastische Impulsübereinstimmungs-Erkennungsereignis der stochastischen Bitströme auf den Update_Row- und Update_Col-Steuerleitungen. Wenn der Zählwert des bidirektionalen digitalen Zählers 414 einen vorab festgelegten Zählwert erreicht (z.B. C_min oder C_max, 5), gibt der bidirektionale digitale Zähler 414 ein Carry-Steuersignal aus. In Reaktion auf das Carry-Steuersignal generiert die Steuerschaltung 715 einen Path_En-Programmierimpuls (mit einer vordefinierten Impulsbreite TIMPULS), um den dritten Schalter S3 zu aktivieren (zu schließen) und den Knoten N1 mit dem Speicherkondensator 730 für die Programmierperiode (Dauer) zu verbinden, die durch TIMPULS definiert wird.
  • Abhängig vom Logikpegel des Programmierpolaritätssignals V_Prog wird entweder der erste Schalter S1 aktiviert (wenn V_Prog =1), um die erste Stromquelle 720 mit dem Knoten N1 zu verbunden, oder der zweite Schalter S2 wird aktiviert (wenn V_Prog = 0), um die zweite Stromquelle 722 mit dem Knoten N1 zu verbinden. Wenn der erste Schalter S1 aktiviert (geschlossen) ist, und der zweite Schalter S2 nicht aktiviert (offen) ist, lädt ein Strom (IEREIGNIS), der durch die erste Stromquelle 720 generiert wird, den Gewichtungsspeicherkondensator 730 (für die Dauer der Programmierperiode TIMPULS) und erhöht die Gewichtungsspannung Vw des Kondensators 730 um eine Minimumeinheit einer Spannungsänderung +ΔV. Wenn andererseits der erste Schalter S1 nicht aktiviert (offen) ist und der zweite Schalter aktiviert (geschlossen) ist, entlädt ein Strom (IEREIGNIS), der durch die zweite Stromquelle 722 generiert wird, den Gewichtungsspeicherkondensator 730 (für die Dauer der Programmierperiode TIMPULS) und verringert die Gewichtungsspannung Vw des Kondensators 730 um eine Minimumeinheit einer Spannungsänderung -ΔV. Der dritte Schalter S3 wird für die Dauer der Programmierperiode (TIMPULS) des Programmiersteuersignals Path_En aktiviert. Wenn das Programmiersteuersignal Path_En deaktiviert wird, generiert und gibt die Steuerschaltung 715 ein Reset-Steuersignal zum Zurücksetzen des bidirektionalen digitalen Zählers 414 aus.
  • In der RPU-Zelle von 7 wird der Betrag einer Mindestspannungsänderung pro Aktualisierung bestimmt als: Δ V min = I EREIGNIS × T IMPULS ,min C ,
    Figure DE112019000437B4_0010
    wobei IEREIGNIS jeweils den Lade- und Entladestrom von der ersten und der zweiten Stromquelle 720 und 722 angibt, und wobei TIMPULS,min eine Mindestprogrammierimpulsbreite des Programiersteuersignals Path_En angibt. In herkömmlichen Systemen mit 1200 Zuständen (Leitfähigkeitspegel des Lesetransistors 740) würde die RPU-Zelle einen relativ großen Gewichtungsspannungs-Speicherkondensator 730 erfordern oder einen sehr kleinen IEREIGNIS erforderlich machen, der unterhalb eines bestimmten Bereichs schwer zu steuern ist. Das beispielhafte Framework der RPU-Zelle 700, gezeigt in 7, das ein voneinander getrenntes Aktualisierungs-Akkumulationsschema unter Verwendung einer verborgenen H-Matrix implementiert, ermöglicht für die RPU-Zelle jedoch eine geringere Anzahl von Zuständen (z.B. 40) für die Gewichtungsmatrix W, was einer Lockerung der Spezifikationen für die Kondensator- 730 und Lesetransistor- 740 Einheiten dient. Außerdem ermöglicht die Umsetzung der H-Matrix seltenere Aktualisierungen der W-Matrix, wodurch die RPU-Einheiten mit begrenzter Lebensdauer wie beispielsweise Memristoren und Kondensatoren/Transistoren einer geringeren Belastung ausgesetzt werden, die zum Umsetzen der RPU-Zellen-Gewichtungswerte dienen, wodurch die Lebensdauer der RPU-Zellen verlängert wird.

Claims (20)

  1. Einheit einer resistiven Verarbeitungseinheit (RPU), aufweisend: eine Gewichtungsaktualisierungs-Akkumulationsschaltung mit einem ersten Eingang, der mit einer Aktualisierungszeilen-Steuerleitung verbunden ist, und mit einem zweiten Eingang, der mit einer Aktualisierungsspalten-Steuerleitung verbunden ist; eine Gewichtungsaktualisierungs-Steuerschaltung, die mit einem Ausgang der Gewichtungsaktualisierungs-Akkumulationsschaltung verbunden ist; und eine einstellbare resistive Einheit, die an die Gewichtungsaktualisierungs-Steuerschaltung gekoppelt ist und mit einer Lesezeilen-Steuerleitung und einer Lesespalten- Steuerleitung verbunden ist; wobei die Gewichtungsaktualisierungs-Akkumulationsschaltung konfiguriert ist, um (i) einen Gewichtungsaktualisierungs-Akkumulationswert hij zu verwalten und den Gewichtungsaktualisierungs-Akkumulationswert hij durch eine Einheit eines Aktualisierungswerts Δh in Reaktion auf jede erkannte Übereinstimmung von stochastischen Bitströmen von Eingangsvektoren anzupassen, die an die Aktualisierungszeilen- und Aktualisierungsspalten-Steuerleitungen angelegt werden, und (ii) ein Gewichtungsaktualisierungs-Steuersignal an die Gewichtungsaktualisierungs-Steuerschaltung in Reaktion auf den akkumulierten Gewichtungswert hij auszugeben, der einen vordefinierten Schwellenwert erreicht; und wobei die Gewichtungsaktualisierungs-Steuerschaltung konfiguriert ist, um einen Leitfähigkeitspegel der einstellbaren resistiven Einheit durch eine Einheit eines Leitfähigkeitswerts Δg in Reaktion auf das Gewichtungsaktualisierungs-Steuersignal anzupassen, das von der Gewichtungsaktualisierungs-Akkumulationsschaltung ausgegeben wird, wobei die eine Einheit des Leitfähigkeitswerts Δg einer Einheit eines Gewichtungswerts Δw der RPU-Einheit entspricht.
  2. RPU-Einheit nach Anspruch 1, wobei die Gewichtungsaktualisierungs-Akkumulationsschaltung konfiguriert ist, um akkumulierte Gewichtungsaktualisierungsoperationen gleichzeitig mit einer Leseoperation auszuführen, in der ein Gewichtungswert wij der RPU-Einheit durch Anlegen von Lesesteuerspannungen an die Lesezeilen- und Lesespalten-Steuerleitungen abgefühlt wird, die mit der einstellbaren resistiven Einheit verbunden sind.
  3. RPU-Einheit nach Anspruch 1, wobei die Gewichtungsaktualisierungs-Akkumulationsschaltung und die Gewichtungsaktualisierungs-Steuerschaltung konfiguriert sind, um ein Programmierpolaritäts-Steuersignal zu empfangen und den Gewichtungsaktualisierungs-Akkumulationswert und den Leitfähigkeitspegel der einstellbaren resistiven Einheit durch (i) ein Erhöhen und (ii) ein Verringern des Gewichtungsaktualisierungs-Akkumulationswerts und des Leitfähigkeitspegels abhängig von einer Polarität des Programmierpolaritäts-Steuersignals anzupassen.
  4. RPU-Einheit nach Anspruch 1, wobei die Gewichtungsaktualisierungs-Akkumulationsschaltung aufweist: einen Übereinstimmungsdetektor mit Eingängen, die mit den Aktualisierungszeilen- und Aktualisierungsspalten-Steuerleitungen verbunden sind; und einen bidirektionalen digitalen Zähler mit einem Dateneingangsanschluss, der mit einem Ausgang des Übereinstimmungsdetektors verbunden ist; wobei der Übereinstimmungsdetektor konfiguriert ist, um ein Erkennungssignal an den Dateneingangsanschluss des bidirektionalen digitalen Zählers in Reaktion auf jede erkannte Übereinstimmung der stochastischen Bitströme der Eingangsvektoren auszugeben, die an die Aktualisierungszeilen- und Aktualisierungsspalten-Steuerleitungen angelegt wurden; und wobei der bidirektionale digitale Zähler konfiguriert ist, um (i) einen Zählwert in Reaktion auf die Erkennungssignaleingabe in den Dateneingangsanschluss anzupassen und (ii) das Gewichtungsaktualisierungs-Steuersignal an die Gewichtungsaktualisierungs-Steuerschaltung in Reaktion auf den Zählwert auszugeben, der einen vordefinierten Schwellenwert erreicht
  5. RPU-Einheit nach Anspruch 4, wobei die Gewichtungsaktualisierungs-Steuerschaltung eine Impulsgeneratorschaltung aufweist, die konfiguriert ist, um einen Programmierspannungsimpuls zu generieren, um einen Leitfähigkeitspegel der einstellbaren resistiven Einheit um eine Einheit eines Leitfähigkeitswerts Δg anzupassen.
  6. RPU-Einheit nach Anspruch 5, wobei die Impulsgeneratorschaltung konfiguriert ist, um ein Rücksetzsteuersignal zu generieren, das in einen Rücksetzsteueranschluss des bidirektionalen digitalen Zählers eingegeben wird, um einen Zählwert des bidirektionalen digitalen Zählers nach einer Anpassung des Leitfähigkeitspegels der einstellbaren resistiven Einheit auf einen vordefinierten Initialisierungszählwert zurückzusetzen.
  7. RPU-Einheit nach Anspruch 4, wobei der vordefinierte Zählwert einen Minimumzählwert oder einen Maximumzählwert des bidirektionalen digitalen Zählers aufweist.
  8. RPU-Einheit nach Anspruch 4, wobei der Übereinstimmungsdetektor eine AND-Logikschaltung aufweist.
  9. RPU-Einheit nach Anspruch 1, wobei die Gewichtungsaktualisierungs-Steuerschaltung eine Impulsgeneratorschaltung aufweist, und wobei die einstellbare resistive Einheit eine einstellbare memristive Einheit aufweist, wobei die Impulsgeneratorschaltung konfiguriert ist, um einen Programmierspannungsimpuls über die einstellbare memristive Einheit anzulegen, um einen Leitfähigkeitspegel der einstellbaren memristiven Einheit um eine Einheit des Leitfähigkeitswerts Δg anzupassen.
  10. RPU-Einheit nach Anspruch 9, wobei die Gewichtungsaktualisierungs-Steuerschaltung einen ersten Schalter und einen zweiten Schalter aufweist, wobei der erste Schalter und der zweite Schalter auf ein Pfadaktivierungs-Steuersignal ansprechen, um die einstellbare memristive Einheit über erste und zweite Ausgangsanschlüsse der Impulsgeneratorschaltung selektiv zu verbinden, um einen Gewichtungsaktualisierungsprozess auszuführen und die einstellbare memristive Einheit selektiv mit den Lesezeilen- und Lesespalten-Steuerleitungen zu verbinden, um eine Gewichtungsleseoperation auszuführen.
  11. RPU-Einheit nach Anspruch 9, wobei die Impulsgeneratorschaltung eine lokale dedizierte Impulsgeneratorschaltung aufweist, die sich innerhalb eines Größenbereichs der RPU-Einheit befindet.
  12. RPU-Einheit nach Anspruch 9, wobei die Impulsgeneratorschaltung eine globale Impulsgeneratorschaltung aufweist, die sich außerhalb eines Größenbereichs der RPU-Einheit befindet, wobei die globale Impulsgeneratorschaltung mit mindestens einer anderen RPU-Einheit in einer Anordnung von RPU-Einheiten gemeinsam genutzt wird.
  13. RPU-Einheit nach Anspruch 1, wobei die Gewichtungsaktualisierungs-Steuerschaltung eine erste Stromquelle, eine zweite Stromquelle und einen Kondensator aufweist, und wobei die einstellbare resistive Einheit einen Lesetransistor aufweist; wobei der Kondensator konfiguriert ist, um eine Gewichtungsspannung für die RPU-Einheit zu speichern; wobei der Lesetransistor einen Gate-Anschluss, einen ersten Source/Drain-Anschluss und einen zweiten Source/Drain-Anschluss aufweist, wobei der Gate-Anschluss mit dem Kondensator verbunden ist, wobei der erste Source/Drain-Anschluss mit der Lesezeilen-Steuerleitung verbunden ist, und wobei der zweite Source/Drain-Anschluss mit der Lesespalten-Steuerleitung verbunden ist; wobei der Lesetransistor konfiguriert ist, um einen Gewichtungsstrom in Reaktion auf die Gewichtungsspannung des Kondensators zu generieren, die an den Gate-Anschluss des Lesetransistors in Reaktion auf Lesesteuersignale angelegt wird, die an die Lesezeilen- und Lesespalten-Steuerleitungen angelegt wurden; wobei in Reaktion auf das Gewichtungsaktualisierungs-Steuersignal, das von der Gewichtungsaktualisierungs-Akkumulationsschaltung ausgegeben wird, die Gewichtungsaktualisierungs-Steuerschaltung konfiguriert ist, um (i) die erste Stromquelle selektiv zu aktivieren, um einen Ladestrom an den Kondensator anzulegen, um eine Gewichtungsspannung des Kondensators um eine Einheit einer Spannungsänderung +ΔV zu erhöhen und (ii) die zweite Stromquelle selektiv zu aktivieren, um einen Entladestrom an den Kondensator anzulegen, um eine Gewichtungsspannung des Kondensators um eine Einheit einer Spannungsänderung -ΔV zu verringern.
  14. RPU-Kreuzschaltanordnungssystem, das die RPU-Einheit nach Anspruch 1 aufweist.
  15. Verfahren, aufweisend: ein Ausführen einer Gewichtungsaktualisierungsoperation zum Aktualisieren eines Gewichtungswerts einer Einheit einer resistiven Verarbeitungseinheit (RPU), die eine einstellbare resistive Einheit aufweist, wobei die Gewichtungsaktualisierungsoperation aufweist: ein Verwalten eines Gewichtungsaktualisierungs-Akkumulationswerts hij für die RPU-Einheit; ein Anpassen des Gewichtungsaktualisierungs-Akkumulationswerts hij um eine Einheit eines Aktualisierungswerts Δh in Reaktion auf eine erkannte Übereinstimmung von stochastischen Bitströmen von Eingangsvektoren, die an eine Aktualisierungszeilen- und eine Aktualisierungsspalten-Steuerleitung angelegt wurden, die mit der RPU-Einheit verbunden sind; ein Generieren eines Gewichtungsaktualisierungs-Steuersignals in Reaktion auf den akkumulierten Gewichtungswert hij, der einen vordefinierten Schwellenwert erreicht; und ein Anpassen eines Leitfähigkeitspegels der einstellbaren resistiven Einheit um eine Einheit eines Leitfähigkeitswerts Δg in Reaktion auf das Gewichtungsaktualisierungs-Steuersignal, wobei die eine Einheit des Leitfähigkeitswerts Δg einer Einheit eines Gewichtungswerts Δw der RPU-Einheit entspricht.
  16. Verfahren nach Anspruch 15, ferner aufweisend ein Ausführen einer Gewichtungsleseoperation, um einen Gewichtungswert wij der RPU-Einheit zu lesen, wobei die Gewichtungsleseoperation aufweist: ein Anlegen von Lesesteuerspannungen an Lesezeilen- und Lesespalten-Steuerleitungen, die mit der einstellbaren resistiven Einheit verbunden sind; und ein Verarbeiten eines Lesestroms, der durch die einstellbare resistive Einheit in Reaktion auf die Lesesteuerspannungen generiert wird, wobei der Lesestrom einem Gewichtungswert wij der RPU-Einheit entspricht; wobei die Gewichtungsleseoperation gleichzeitig mit dem Schritt des Anpassens des Gewichtungsaktualisierungs-Akkumulationswerts der Gewichtungsaktualisierungsoperation ausgeführt wird.
  17. Verfahren nach Anspruch 15, wobei ein Anpassen des Gewichtungsaktualisierungs-Akkumulationswerts ein Anpassen eines Zählwerts eines bidirektionalen digitalen Zählers aufweist, und wobei ein Generieren des Gewichtungsaktualisierungs-Steuersignals ein Generieren eines Carry-Steuersignals aufweist, wenn der Zählwert einen vordefinierten Zählerwert erreicht.
  18. Verfahren nach Anspruch 15, wobei ein Generieren des Gewichtungsaktualisierungs-Steuersignals ein Generieren eines Programmierspannungsimpulses in Reaktion auf das Carry-Steuersignal und ein Anlegen des Programmierspannungsimpulses an die einstellbare resistive Einheit aufweist, um den Leitfähigkeitspegel der einstellbaren resistiven Einheit um eine Einheit des Leitfähigkeitswerts Δg anzupassen.
  19. Verfahren nach Anspruch 18, ferner aufweisend ein Generieren eines Reset-Steuersignals, das in einen Rücksetzsteueranschluss des bidirektionalen digitalen Zählers eingegeben wird, um einen Zählwert des bidirektionalen digitalen Zählers nach einer Anpassung des Leitfähigkeitspegels der einstellbaren resistiven Einheit auf einen vordefinierten Initialisierungszählwert zurückzusetzen.
  20. Verfahren nach Anspruch 15, wobei die einstellbare resistive Einheit einen Lesetransistor und einen Kondensator aufweist, der mit einem Gate-Anschluss des Lesetransistors verbunden ist, wobei der Kondensator konfiguriert ist, um eine Gewichtungsspannung für die RPU-Einheit zu speichern; und wobei ein Anpassen eines Leitfähigkeitspegels der einstellbaren resistiven Einheit in Reaktion auf das Gewichtungsaktualisierungs-Steuersignal mindestens aufweist: ein selektives Aktivieren der ersten Stromquelle, um einen Ladestrom an den Kondensator anzulegen, um eine Gewichtungsspannung des Kondensators um eine Einheit einer Spannungsänderung +ΔV zu erhöhen; oder ein selektives Aktivieren einer zweiten Stromquelle, um einen Entladestrom an den Kondensator anzulegen, um eine Gewichtungsspannung des Kondensators um eine Einheit einer Spannungsänderung -ΔV zu verringern.
DE112019000437.9T 2018-04-16 2019-04-01 Architektur einer resistiven verarbeitungseinheit mit voneinander getrennter gewichtungsaktualisierungs- und inferenzschaltung Active DE112019000437B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/954,170 US11157810B2 (en) 2018-04-16 2018-04-16 Resistive processing unit architecture with separate weight update and inference circuitry
US15/954,170 2018-04-16
PCT/IB2019/052663 WO2019202427A1 (en) 2018-04-16 2019-04-01 Resistive processing unit architecture with separate weight update and inference circuitry

Publications (2)

Publication Number Publication Date
DE112019000437T5 DE112019000437T5 (de) 2020-10-01
DE112019000437B4 true DE112019000437B4 (de) 2022-10-20

Family

ID=68161777

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019000437.9T Active DE112019000437B4 (de) 2018-04-16 2019-04-01 Architektur einer resistiven verarbeitungseinheit mit voneinander getrennter gewichtungsaktualisierungs- und inferenzschaltung

Country Status (6)

Country Link
US (1) US11157810B2 (de)
JP (1) JP7119109B2 (de)
CN (1) CN112005252B (de)
DE (1) DE112019000437B4 (de)
GB (1) GB2585992B (de)
WO (1) WO2019202427A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7259253B2 (ja) * 2018-10-03 2023-04-18 株式会社デンソー 人工ニューラルネットワーク回路
CN110796241B (zh) * 2019-11-01 2022-06-17 清华大学 基于忆阻器的神经网络的训练方法及其训练装置
JP7356393B2 (ja) * 2020-04-10 2023-10-04 ルネサスエレクトロニクス株式会社 半導体装置
US11366876B2 (en) * 2020-06-24 2022-06-21 International Business Machines Corporation Eigenvalue decomposition with stochastic optimization
US20220101084A1 (en) * 2020-09-29 2022-03-31 International Business Machines Corporation Pipelining for analog-memory-based neural networks with all-local storage
US20220188628A1 (en) * 2020-12-15 2022-06-16 International Business Machines Corporation Dynamic configuration of readout circuitry for different operations in analog resistive crossbar array
CN112669893B (zh) * 2020-12-30 2022-08-16 杭州海康存储科技有限公司 确定待使用读电压的方法、系统、装置及设备
JP7438994B2 (ja) 2021-01-07 2024-02-27 株式会社東芝 ニューラルネットワーク装置及び学習方法
US20220327375A1 (en) * 2021-04-09 2022-10-13 International Business Machines Corporation Training dnn by updating an array using a chopper
CN113517016B (zh) * 2021-07-21 2023-04-18 清华大学 计算装置及其鲁棒性处理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170011290A1 (en) 2015-07-06 2017-01-12 University Of Dayton On-chip training of memristor crossbar neuromorphic processing systems
US20170109628A1 (en) 2015-10-20 2017-04-20 International Business Machines Corporation Resistive processing unit

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI244264B (en) 2004-09-20 2005-11-21 Faraday Tech Corp Current comparator with hysteresis
US7286429B1 (en) 2006-04-24 2007-10-23 Taiwan Semiconductor Manufacturing Company, Ltd. High speed sensing amplifier for an MRAM cell
EP2215825A4 (de) 2007-10-30 2012-08-08 Paceco Corp Verfahren und vorrichtung zum betreiben mindestens einer kamera aus einer positionsschätzung eines containers zur schätzung seines containercodes
CN102033146A (zh) 2009-09-29 2011-04-27 致茂电子(苏州)有限公司 具有模拟发光二极管特性的电子负载及其模拟方法
US9070424B2 (en) 2012-06-29 2015-06-30 Samsung Electronics Co., Ltd. Sense amplifier circuitry for resistive type memory
US9256823B2 (en) * 2012-07-27 2016-02-09 Qualcomm Technologies Inc. Apparatus and methods for efficient updates in spiking neuron network
US9087578B2 (en) 2013-09-30 2015-07-21 Micron Technology, Inc. Configurable reference current generation for non volatile memory
US9715655B2 (en) 2013-12-18 2017-07-25 The United States Of America As Represented By The Secretary Of The Air Force Method and apparatus for performing close-loop programming of resistive memory devices in crossbar array based hardware circuits and systems
US9472245B2 (en) 2013-12-31 2016-10-18 Taiwan Semiconductor Manufacturing Company, Ltd. Sense amplifier and related method
US9224464B2 (en) 2014-02-10 2015-12-29 Taiwan Semiconductor Manufacturing Company, Ltd. Memory circuit and related method
US20150278681A1 (en) * 2014-04-01 2015-10-01 Boise State University Memory controlled circuit system and apparatus
US9617011B2 (en) 2014-06-24 2017-04-11 Sikorsky Aircraft Corporation Probabilistic safe landing area determination
US9224277B1 (en) 2014-08-06 2015-12-29 Belkin International, Inc. Detector devices for presenting notifications and supporting context inferences
US9940577B2 (en) * 2015-07-07 2018-04-10 Adobe Systems Incorporated Finding semantic parts in images
TWI668698B (zh) 2016-01-26 2019-08-11 聯華電子股份有限公司 記憶體電流感測器
CN107533668B (zh) * 2016-03-11 2021-01-26 慧与发展有限责任合伙企业 用于计算神经网络的节点值的硬件加速器和方法
KR101912881B1 (ko) 2016-03-18 2018-10-30 국민대학교 산학협력단 신경모방 멤리스터 크로스바 회로
US10839292B2 (en) * 2016-06-29 2020-11-17 International Business Machines Corporation Accelerated neural network training using a pipelined resistive processing unit architecture
US11263521B2 (en) * 2016-08-30 2022-03-01 International Business Machines Corporation Voltage control of learning rate for RPU devices for deep neural network training
US9852790B1 (en) 2016-10-26 2017-12-26 International Business Machines Corporation Circuit methodology for highly linear and symmetric resistive processing unit
US9934838B1 (en) 2017-05-10 2018-04-03 International Business Machines Corporation Pulse shaping unit cell and array for symmetric updating

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170011290A1 (en) 2015-07-06 2017-01-12 University Of Dayton On-chip training of memristor crossbar neuromorphic processing systems
US20170109628A1 (en) 2015-10-20 2017-04-20 International Business Machines Corporation Resistive processing unit

Also Published As

Publication number Publication date
US11157810B2 (en) 2021-10-26
US20190318239A1 (en) 2019-10-17
CN112005252B (zh) 2023-06-13
GB2585992B (en) 2021-06-09
JP7119109B2 (ja) 2022-08-16
JP2021518008A (ja) 2021-07-29
WO2019202427A1 (en) 2019-10-24
GB2585992A (en) 2021-01-27
CN112005252A (zh) 2020-11-27
GB202016348D0 (en) 2020-12-02
DE112019000437T5 (de) 2020-10-01

Similar Documents

Publication Publication Date Title
DE112019000437B4 (de) Architektur einer resistiven verarbeitungseinheit mit voneinander getrennter gewichtungsaktualisierungs- und inferenzschaltung
DE112018005726B4 (de) Resistive verarbeitungseinheit auf zählerbasis für programmierbare und rekonfigurierbare künstliche neuronale netzwerke
DE112018002950B4 (de) System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit
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
DE68928385T2 (de) Neuronenrechner
DE102019116305A1 (de) Pipelining zur verbesserung der inferenzgenauigkeit neuronaler netze
DE69030778T2 (de) Ein Lernsystem in einem neuronalen Rechner
DE112015003033T5 (de) Referenzarchitektur in einem kreuzungspunktarbeitsspeicher
DE112011101370T5 (de) Neuronales Netz mit kanonischen gepulsten Neuronen für einen raumzeitlichen Assoziativspeicher
WO2013170843A1 (de) Verfahren zum trainieren eines künstlichen neuronalen netzes
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
DE112019005119T5 (de) Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen
DE112017004156T5 (de) Speicherzellenstruktur
DE112017008040T5 (de) Rechenoperationsschaltung, rechenoperationsverfahren und programm
DE102022100920A1 (de) Compute-in-memory-akkumulator
DE102021101727A1 (de) Sram-basierte zelle für in-memory-computing und hybride rechen-/speicherarchitektur
DE102022100200A1 (de) Compute-In-Memory-Speicherarray, CIM-Speicherarray
DE112021006459T5 (de) Dynamische konfiguration einer auslese-schaltungsanordnung für verschiedene operationen in einem analogen resistiven kreuzschienen-array
DE112021006006T5 (de) VERWENDUNG FERROELEKTRISCHER FELDEFFEKTTRANSISTOREN (FeFETs) ALS KAPAZITIVE VERARBEITUNGSEINHEITEN FÜR IN-MEMORY-COMPUTING
DE112020005613T5 (de) Neuromorphe Einheit mit Kreuzschienen-Array-Struktur
DE112019003764B4 (de) Von der lage der zellen unabhängiges, in bezug auf die gewichtung linear aktualisierbares synaptisches cmos-array
DE102020205623A1 (de) Speichervorrichtung mit neuronaler netzwerk-verarbeitungsschaltung
DE102020113902A1 (de) Dac/adc-architektur für ai in speicher
DE112020002547T5 (de) Rausch- und signalverwaltung für rpu-array

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R084 Declaration of willingness to licence